var now = new Date(); 
var endDate = new Date();
endDate.setMonth(endDate.getMonth() + 4 );        
endDate.setDate(1); 
endDate.setDate( endDate.getDate() - 1); 

var startDate = new Date();
startDate.setDate(startDate.getDate() + 2); 

var modEffectiveDateCalendar = new CalendarPopup("calDiv");   
modEffectiveDateCalendar.setCssPrefix("POPUPCAL"); 

var modEndDateCalendar = new CalendarPopup("calDiv");    
modEndDateCalendar.setCssPrefix("POPUPCAL"); 

var stccFullDescReq=new ajaxObject('GetStccFullDesc',loadStccFull);
function loadStccFull(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('stccFullDescContentId').innerHTML=responseText;
    }
} 

function showFullStccDescPopup(evt,elemId)
{
	document.getElementById('stccFullDescContentId').innerHTML = "";
	if (IsFieldEmpty(document.getElementById('stcc'+elemId).value)) { //for now just checking empty string
		document.getElementById('stccErrText'+elemId).style.display = "";
		document.getElementById('stccErrText'+elemId).innerHTML = "Enter STCC to retrieve full description";
	} else {
		//clear any validation errors and retrieve full desc
		document.getElementById('stccErrText'+elemId).innerHTML = "";
		passStcc=encodeURIComponent(document.getElementById('stcc'+elemId).value);
		sendString = 'stccSearchString='+passStcc;
		Popup.show(evt, "stccFullDescId");
		stccFullDescReq.update(sendString);
	}

	
}

function forwardTo(eventName) {

	document.PriceSearchForm.action = eventName;   
	document.PriceSearchForm.submit(); 

}

//begin carrier script for origin/dest #1
var oCarrierRequest1=new ajaxObject('GetCarriers',loadOCR1);
function loadOCR1(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('oCarrierSelection1').innerHTML=responseText;
    	document.getElementById('indoCarrier1').style.display = "none";
    	document.getElementById('oCarrier1').focus();
    }
} 

function getOCarrierList1() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('origSt1').value);
	passCity=encodeURIComponent(document.getElementById('origCity1').value);
	passCarrierTabIndex=document.getElementById("oCarrier1").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=oCarrier1&carrierErrFieldName=oCarrierErr1&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidOCity1').value != document.getElementById('origCity1').value
		|| document.getElementById('hidOSt1').value != document.getElementById('origSt1').value) {
		
		document.getElementById('hidOCity1').value = document.getElementById('origCity1').value;
		document.getElementById('hidOSt1').value = document.getElementById('origSt1').value;
		document.getElementById('indoCarrier1').style.display = "";
		oCarrierRequest1.update(sendString);
			
	}
}

var dCarrierRequest1=new ajaxObject('GetCarriers',loadDCR1);
function loadDCR1(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('dCarrierSelection1').innerHTML=responseText;
    	document.getElementById('inddCarrier1').style.display = "none";
    	document.getElementById('dCarrier1').focus();
    }
} 

function getDCarrierList1() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('destSt1').value);
	passCity=encodeURIComponent(document.getElementById('destCity1').value);
	passCarrierTabIndex=document.getElementById("dCarrier1").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=dCarrier1&carrierErrFieldName=dCarrierErr1&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidDCity1').value != document.getElementById('destCity1').value
		|| document.getElementById('hidDSt1').value != document.getElementById('destSt1').value) {
		
		document.getElementById('hidDCity1').value = document.getElementById('destCity1').value;
		document.getElementById('hidDSt1').value = document.getElementById('destSt1').value;
		document.getElementById('inddCarrier1').style.display = "";
		dCarrierRequest1.update(sendString);
			
	}
}
//end carrier script for origin/dest #1

//begin carrier script for origin/dest #2
var oCarrierRequest2=new ajaxObject('GetCarriers',loadOCR2);
function loadOCR2(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('oCarrierSelection2').innerHTML=responseText;
    	document.getElementById('indoCarrier2').style.display = "none";
    	document.getElementById('oCarrier2').focus();
    }
} 

function getOCarrierList2() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('origSt2').value);
	passCity=encodeURIComponent(document.getElementById('origCity2').value);
	passCarrierTabIndex=document.getElementById("oCarrier2").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=oCarrier2&carrierErrFieldName=oCarrierErr2&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidOCity2').value != document.getElementById('origCity2').value
		|| document.getElementById('hidOSt2').value != document.getElementById('origSt2').value) {
		
		document.getElementById('hidOCity2').value = document.getElementById('origCity2').value;
		document.getElementById('hidOSt2').value = document.getElementById('origSt2').value;
		document.getElementById('indoCarrier2').style.display = "";
		oCarrierRequest2.update(sendString);
			
	}
}

var dCarrierRequest2=new ajaxObject('GetCarriers',loadDCR2);
function loadDCR2(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('dCarrierSelection2').innerHTML=responseText;
    	document.getElementById('inddCarrier2').style.display = "none";
    	document.getElementById('dCarrier2').focus();
    }
} 

function getDCarrierList2() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('destSt2').value);
	passCity=encodeURIComponent(document.getElementById('destCity2').value);
	passCarrierTabIndex=document.getElementById("dCarrier2").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=dCarrier2&carrierErrFieldName=dCarrierErr2&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidDCity2').value != document.getElementById('destCity2').value
		|| document.getElementById('hidDSt2').value != document.getElementById('destSt2').value) {
		
		document.getElementById('hidDCity2').value = document.getElementById('destCity2').value;
		document.getElementById('hidDSt2').value = document.getElementById('destSt2').value;
		document.getElementById('inddCarrier2').style.display = "";
		dCarrierRequest2.update(sendString);
	}

}
//end carrier script for origin/dest #2

//begin carrier script for origin/dest #3
var oCarrierRequest3=new ajaxObject('GetCarriers',loadOCR3);
function loadOCR3(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('oCarrierSelection3').innerHTML=responseText;
    	document.getElementById('indoCarrier3').style.display = "none";
    	document.getElementById('oCarrier3').focus();
    }
} 

function getOCarrierList3() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('origSt3').value);
	passCity=encodeURIComponent(document.getElementById('origCity3').value);
	passCarrierTabIndex=document.getElementById("oCarrier3").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=oCarrier3&carrierErrFieldName=oCarrierErr3&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidOCity3').value != document.getElementById('origCity3').value
		|| document.getElementById('hidOSt3').value != document.getElementById('origSt3').value) {
		
		document.getElementById('hidOCity3').value = document.getElementById('origCity3').value;
		document.getElementById('hidOSt3').value = document.getElementById('origSt3').value;
		document.getElementById('indoCarrier3').style.display = "";
		oCarrierRequest3.update(sendString);
			
	}
}

var dCarrierRequest3=new ajaxObject('GetCarriers',loadDCR3);
function loadDCR3(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('dCarrierSelection3').innerHTML=responseText;
    	document.getElementById('inddCarrier3').style.display = "none";
    	document.getElementById('dCarrier3').focus();
    }
} 

function getDCarrierList3() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('destSt3').value);
	passCity=encodeURIComponent(document.getElementById('destCity3').value);
	passCarrierTabIndex=document.getElementById("dCarrier3").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=dCarrier3&carrierErrFieldName=dCarrierErr3&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidDCity3').value != document.getElementById('destCity3').value
		|| document.getElementById('hidDSt3').value != document.getElementById('destSt3').value) {
		
		document.getElementById('hidDCity3').value = document.getElementById('destCity3').value;
		document.getElementById('hidDSt3').value = document.getElementById('destSt3').value;
		document.getElementById('inddCarrier3').style.display = "";
		dCarrierRequest3.update(sendString);
	}
}
//end carrier script for origin/dest #3

//begin carrier script for origin/dest #4
var oCarrierRequest4=new ajaxObject('GetCarriers',loadOCR4);
function loadOCR4(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('oCarrierSelection4').innerHTML=responseText;
    	document.getElementById('indoCarrier4').style.display = "none";
    	document.getElementById('oCarrier4').focus();
    }
} 

function getOCarrierList4() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('origSt4').value);
	passCity=encodeURIComponent(document.getElementById('origCity4').value);
	passCarrierTabIndex=document.getElementById("oCarrier4").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=oCarrier4&carrierErrFieldName=oCarrierErr4&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidOCity4').value != document.getElementById('origCity4').value
		|| document.getElementById('hidOSt4').value != document.getElementById('origSt4').value) {
		
		document.getElementById('hidOCity4').value = document.getElementById('origCity4').value;
		document.getElementById('hidOSt4').value = document.getElementById('origSt4').value;
		document.getElementById('indoCarrier4').style.display = "";
		oCarrierRequest4.update(sendString);
			
	}
}

var dCarrierRequest4=new ajaxObject('GetCarriers',loadDCR4);
function loadDCR4(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('dCarrierSelection4').innerHTML=responseText;
    	document.getElementById('inddCarrier4').style.display = "none";
    	document.getElementById('dCarrier4').focus();
    }
} 

function getDCarrierList4() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('destSt4').value);
	passCity=encodeURIComponent(document.getElementById('destCity4').value);
	passCarrierTabIndex=document.getElementById("dCarrier4").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=dCarrier4&carrierErrFieldName=dCarrierErr4&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidDCity4').value != document.getElementById('destCity4').value
		|| document.getElementById('hidDSt4').value != document.getElementById('destSt4').value) {
		
		document.getElementById('hidDCity4').value = document.getElementById('destCity4').value;
		document.getElementById('hidDSt4').value = document.getElementById('destSt4').value;
		document.getElementById('inddCarrier4').style.display = "";
		dCarrierRequest4.update(sendString);
	}

}
//end carrier script for origin/dest #4

//begin carrier script for origin/dest #5
var oCarrierRequest5=new ajaxObject('GetCarriers',loadOCR5);
function loadOCR5(responseText,responseStatus) {
	  
	if (responseStatus==200) {
    	document.getElementById('oCarrierSelection5').innerHTML=responseText;
    	document.getElementById('indoCarrier5').style.display = "none";
    	document.getElementById('oCarrier5').focus();
    }
} 

function getOCarrierList5() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('origSt5').value);
	passCity=encodeURIComponent(document.getElementById('origCity5').value);
	passCarrierTabIndex=document.getElementById("oCarrier5").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=oCarrier5&carrierErrFieldName=oCarrierErr5&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidOCity5').value != document.getElementById('origCity5').value
		|| document.getElementById('hidOSt5').value != document.getElementById('origSt5').value) {
		
		document.getElementById('hidOCity5').value = document.getElementById('origCity5').value;
		document.getElementById('hidOSt5').value = document.getElementById('origSt5').value;
		document.getElementById('indoCarrier5').style.display = "";
		oCarrierRequest5.update(sendString);
			
	}
}

var dCarrierRequest5=new ajaxObject('GetCarriers',loadDCR5);
function loadDCR5(responseText,responseStatus) {  
	  
	if (responseStatus==200) {
    	document.getElementById('dCarrierSelection5').innerHTML=responseText;
    	document.getElementById('inddCarrier5').style.display = "none";
    	document.getElementById('dCarrier5').focus();
    }
} 

function getDCarrierList5() {   
	//validate city/state selection 
	
	passSt=encodeURIComponent(document.getElementById('destSt5').value);
	passCity=encodeURIComponent(document.getElementById('destCity5').value);
	passCarrierTabIndex=document.getElementById("dCarrier5").tabIndex;
	sendString = 'state='+passSt+'&city='+passCity+'&carrierFieldName=dCarrier5&carrierErrFieldName=dCarrierErr5&carrierTabIndex='+passCarrierTabIndex;
	
	if (document.getElementById('hidDCity5').value != document.getElementById('destCity5').value
		|| document.getElementById('hidDSt5').value != document.getElementById('destSt5').value) {
		
		document.getElementById('hidDCity5').value = document.getElementById('destCity5').value;
		document.getElementById('hidDSt5').value = document.getElementById('destSt5').value;
		document.getElementById('inddCarrier5').style.display = "";
		dCarrierRequest5.update(sendString);
	}

}
//end carrier script for origin/dest #5


function IsFieldEmpty(aTextField) {
   if ((aTextField.length==0) || (aTextField==null)) {
      return true;
   } else { return false; }
}	

function copyFromPrevious(copyFrom, copyTo) {

	hasStcc = false;
	hasPriceAuth = false;
	hasPriceList = false;
	hasOptional = false;
	
	//clearErrorIndicators(copyFrom);  //not currently used

	//if (!validateSearch(copyFrom)) {
	//	document.getElementById('copySearchError'+copyFrom).innerHTML = "Some entries in the previous section are missing.";
	//} else {

		if (!IsFieldEmpty(document.getElementById('stcc'+copyFrom).value)) { hasStcc = true; }
		if (!IsFieldEmpty(document.getElementById('priceAuth'+copyFrom).value)) { hasPriceAuth = true; }
		if (!IsFieldEmpty(document.getElementById('competitivePriceList'+copyFrom).value)) { hasPriceList = true; }
		
		if (!IsFieldEmpty(document.getElementById('carOwner'+copyFrom).value) ||
			!IsFieldEmpty(document.getElementById('equipmentType'+copyFrom).value) ||
			!IsFieldEmpty(document.getElementById('effectiveDate'+copyFrom).value) ||
			!IsFieldEmpty(document.getElementById('endDate'+copyFrom).value)) {
			hasOptional = true;	
		}	
		
		//copy selected values from state selections
		copySelected('origSt'+copyFrom,'origSt'+copyTo);
		copySelected('destSt'+copyFrom,'destSt'+copyTo); 
		//copy selected values from city input
		copyInput('origCity'+copyFrom,'origCity'+copyTo);
		copyInput('destCity'+copyFrom,'destCity'+copyTo);
		//copy carrier values
		removeOptions('oCarrier'+copyTo);
		addOptions('oCarrier'+copyFrom, 'oCarrier'+copyTo);
		removeOptions('dCarrier'+copyTo);
		addOptions('dCarrier'+copyFrom, 'dCarrier'+copyTo);
		//copy search methods and display appropriate element
		if (hasStcc) {
			copyInput('stcc'+copyFrom,'stcc'+copyTo);
			new Effect.BlindUp('showStcc'+copyTo);new Effect.BlindDown('stccSearch'+copyTo);
			new Effect.BlindDown('showPriceAuth'+copyTo);new Effect.BlindUp('priceAuthSearch'+copyTo);
			new Effect.BlindDown('showPriceList'+copyTo);new Effect.BlindUp('priceListSearch'+copyTo);
		}
		if (hasPriceAuth) {
			copyInput('priceAuth'+copyFrom,'priceAuth'+copyTo);
			new Effect.BlindUp('showPriceAuth'+copyTo);new Effect.BlindDown('priceAuthSearch'+copyTo);
			new Effect.BlindDown('showStcc'+copyTo);new Effect.BlindUp('stccSearch'+copyTo);
			new Effect.BlindDown('showPriceList'+copyTo);new Effect.BlindUp('priceListSearch'+copyTo);
		}	
		if (hasPriceList) {
			copySelected('competitivePriceList'+copyFrom,'competitivePriceList'+copyTo); 
			new Effect.BlindUp('showPriceList'+copyTo);new Effect.BlindDown('priceListSearch'+copyTo);
			new Effect.BlindDown('showPriceAuth'+copyTo);new Effect.BlindUp('priceAuthSearch'+copyTo);
			new Effect.BlindDown('showStcc'+copyTo);new Effect.BlindUp('stccSearch'+copyTo);
		}
		//copy optional values and display appropriate element
		if (hasOptional) {
			copySelected('carOwner'+copyFrom,'carOwner'+copyTo); 
			copySelected('equipmentType'+copyFrom,'equipmentType'+copyTo); 
			copyInput('effectiveDate'+copyFrom,'effectiveDate'+copyTo);
			copyInput('endDate'+copyFrom,'endDate'+copyTo);
			new Effect.BlindDown('showOptional'+copyTo);
		}
	//} //end validation
}

function removeOptions(eleId)
{
 var el = document.getElementById(eleId);
 var i;
 for (i = el.length-1; i>=1; i--) {
     el.remove(i);
 }
 
}

function addOptions(fromEleId,toEleId)
{
 	var elfrom = document.getElementById(fromEleId);
 	var elto = document.getElementById(toEleId);
 	var i;
 	for (i = elfrom.length - 1; i>=0; i--) {
 		elto.options[i] = new Option(elfrom.options[i].text,elfrom.options[i].value);
 		if (elfrom.options[i].selected) {
 			elto.options[i].selected = true;
 		}
 	}
}

function copySelected(fromEleId,toEleId)
{
 	var elfrom = document.getElementById(fromEleId);
 	var elto = document.getElementById(toEleId);
 	var i;
 	for (i = elfrom.length - 1; i>=0; i--) {
 		if (elfrom.options[i].selected) {
 			elto.options[i].selected = true;
 		}
 	}
}

function copyInput(fromEleId,toEleId)
{
 	var elfrom = document.getElementById(fromEleId);
 	var elto = document.getElementById(toEleId);
	elto.value = elfrom.value;
}

function validateSearch(copyFrom) {  
	//we may not need to validate they have both origin/dest info in order to perform the copy
	//validation removed per Vicki Burton on 6/28/07
	var isValid = true;
	if (IsFieldEmpty(document.getElementById('origSt'+copyFrom).value)) {
		document.getElementById('origStErr'+copyFrom).style.display = "";isValid=false;
	}
	if (IsFieldEmpty(document.getElementById('origCity'+copyFrom).value)) {
		document.getElementById('origCityErr'+copyFrom).style.display = "";isValid=false;
	}
	if (IsFieldEmpty(document.getElementById('destSt'+copyFrom).value)) {
		document.getElementById('destStErr'+copyFrom).style.display = "";isValid=false;
	}
	if (IsFieldEmpty(document.getElementById('destCity'+copyFrom).value)) {
		document.getElementById('destCityErr'+copyFrom).style.display = "";isValid=false;
	}
	if (IsFieldEmpty(document.getElementById('oCarrier'+copyFrom).value)) {
		document.getElementById('oCarrierErr'+copyFrom).style.display = "";isValid=false;
	}
	if (IsFieldEmpty(document.getElementById('dCarrier'+copyFrom).value)) {
		document.getElementById('dCarrierErr'+copyFrom).style.display = "";isValid=false;
	}
	if (IsFieldEmpty(document.getElementById('stcc'+copyFrom).value) && 
		IsFieldEmpty(document.getElementById('priceAuth'+copyFrom).value) && 
		IsFieldEmpty(document.getElementById('competitivePriceList'+copyFrom).value)) { 
		isValid = false; 
		document.getElementById('stccErr'+copyFrom).style.display = "";
		document.getElementById('priceAuthErr'+copyFrom).style.display = "";
		document.getElementById('competitivePriceListErr'+copyFrom).style.display = "";
	}
	
	
	
	return isValid;
}

function clearErrorIndicators(copyFrom) {
	document.getElementById('copySearchError'+copyFrom).innerHTML = "";
	document.getElementById('origStErr'+copyFrom).style.display = "none";
	document.getElementById('origCityErr'+copyFrom).style.display = "none";
	document.getElementById('destStErr'+copyFrom).style.display = "none";
	document.getElementById('destCityErr'+copyFrom).style.display = "none";
	document.getElementById('oCarrierErr'+copyFrom).style.display = "none";
	document.getElementById('dCarrierErr'+copyFrom).style.display = "none";
	
	document.getElementById('stccErr'+copyFrom).style.display = "none";
	document.getElementById('priceAuthErr'+copyFrom).style.display = "none";
	document.getElementById('competitivePriceListErr'+copyFrom).style.display = "none";

}

function clearSearch(elemId) {

	document.getElementById('origSt'+elemId).options[0].selected = true;
	document.getElementById('destSt'+elemId).options[0].selected = true;
	document.getElementById('origCity'+elemId).value = "";
	document.getElementById('destCity'+elemId).value = "";
	removeOptions('oCarrier'+elemId);
	removeOptions('dCarrier'+elemId);
	document.getElementById('stcc'+elemId).value = "";
	document.getElementById('priceAuth'+elemId).value = "";
	document.getElementById('competitivePriceList'+elemId).options[0].selected = true;
	document.getElementById('carOwner'+elemId).options[0].selected = true;
	document.getElementById('equipmentType'+elemId).options[0].selected = true;
	document.getElementById('effectiveDate'+elemId).value = "";
	document.getElementById('endDate'+elemId).value = "";
	new Effect.BlindUp('showOptional'+elemId);
}

function clearAll() {
	for (i=1; i<6; i++) {
		clearSearch(i);
	}
}

function resetSearch() {
	clearAll();
	forwardTo('PriceSearchReset');
}

function getPriceQuery() {
	
	var sub = false;
	var sel = document.getElementById('recentPriceInq');
	for (var i = sel.length - 1; i>=0; i--) {
 		if (sel.options[i].selected) {
 			if (!IsFieldEmpty(sel.options[i].value)) {
 				sub = true;
 				break;
 			}
 		}
 	}
 	if (sub) {
 		document.getElementById('recentPriceQueryLoading').style.display = "";
		forwardTo("GetRecentPriceInquiry"); 			
 	} else {
 		document.getElementById('recentPriceQueryLoading').style.display = "none";
 	}

}

function getProductDetail(event,elemId, elemNum) {
	var sel = document.getElementById(elemId).options[document.getElementById(elemId).selectedIndex].value;
	if (!IsFieldEmpty(sel)) {
		document.getElementById('competitivePriceListErr'+ elemNum).style.display = "none";
		forwardTo(event + "?id=" + sel);
	} else {
		document.getElementById('competitivePriceListErr'+ elemNum).style.display = "";
	}

}





