/* Filename: ordersearch.js for Web OE
 *
 *
 * @author Chris Kuhn, Systems Alliance, itconsultant@comcast.net
 * @version 1.0 09/2003
 *
 * Modification History
 * --------------------
 *
 */
 function resetForm() {

  var f = document.OrderSearchForm;
  for (var i = 0; i < f.length; i++) {
  
    if(f.elements[i].type == 'text'){
      f.elements[i].value = '';
	 }
	 else if (f.elements[i].type == 'select-one'){
	    f.elements[i].selectedIndex = 0;
	 }
  }
  
  //fillDispositionsByStatus( "" ) //STR 137.
  f.repId.focus();
  
}

function loadValues() {
	var f = document.OrderSearchForm;
	if( f.webOrderId.value == '0' ) { f.webOrderId.value = ""; }
}

var isNN = (navigator.appName.indexOf("Netscape")!=-1);

//Next 3 functions handle the autotabbing for the ssn and dates. 
function autoTab(input,len, e) {
	var keyCode = (isNN) ? e.which : e.keyCode; 
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	if(input.value.length >= len && !containsElement(filter,keyCode)) {
		input.value = input.value.slice(0, len);
		input.form[(getIndex(input)+1) % input.form.length].focus();
	}
}

function containsElement(arr, ele) {
	var found = false, index = 0;
	while(!found && index < arr.length)
		if(arr[index] == ele)
			found = true;
		else
			index++;
	return found;
}

function getIndex(input) {
	var index = -1, i = 0, found = false;
	while (i < input.form.length && index == -1)
		if (input.form[i] == input)index = i;
		else i++;
	return index;
}
//to here for autotabbing...

function validateForm(){

	var f = document.OrderSearchForm;
	 
	if( f.theFromDate != null ) {
		f.theFromDate.value = Trim(f.fromDateMonth.value) + "/" + Trim(f.fromDateDay.value) + "/" + Trim(f.fromDateYear.value);
		if( f.theFromDate.value == "//" ) { f.theFromDate.value = ""; }
	}
	if( f.theToDate != null ) {
		f.theToDate.value = Trim(f.toDateMonth.value) + "/" + Trim(f.toDateDay.value) + "/" + Trim(f.toDateYear.value);
		if( f.theToDate.value == "//" ) { f.theToDate.value = ""; }
	}
	
	if(verify(f)) {
		//Check for entry into one at least one of the fields...
		if( ( f.repId == null || 			(Trim(f.repId.value).length) == 0) &&
			( f.firstName == null ||		(Trim(f.firstName.value).length) == 0) &&
			( f.lastName == null ||			(Trim(f.lastName.value).length) == 0) &&		
			( f.webOrderId == null ||		(Trim(f.webOrderId.value).length) == 0) &&
		 	( f.orderStatus == null ||		f.orderStatus.selectedIndex == 0) &&
		 	( f.dispositionId == null ||	f.dispositionId.selectedIndex == 0) &&			
		 	( f.theFromDate == null ||		f.theFromDate.value.length == 0) &&
		 	( f.theToDate == null ||		f.theToDate.value.length == 0) &&	 
			( f.sourceCode == null ||		(Trim(f.sourceCode.value).length) == 0) &&
			( f.referenceCode == null ||	(Trim(f.referenceCode.value).length) == 0) &&
			( f.shipZip == null ||			(Trim(f.shipZip.value).length) == 0) &&
			( f.phoneNumber == null ||		(Trim(f.phoneNumber.value).length) == 0) ){
			var fv = new FormValidator(f);
			fv.addValidationError("\t"  + "One entry must be entered or selected before performing a Search." + "\n");
			alert(fv.showErrors());
			return;
		}
		
		if( !validateOrderSearchParams() ) {
			return;
		}else{
			// additional validation not performed in tag
			if( f.webOrderId != null && f.webOrderId.value == "0" ){
				alert("Web Order Id is invalid");
				return;
			}else if( f.shipZip != null && (Trim(f.shipZip.value).length) > 0 && (Trim(f.shipZip.value).length) < 5 ){
				alert("Ship Zip Code is invalid");
				return;
			}
		}
		
		// clear the search list
		document.getElementById("orderList").innerHTML='<b>Searching ...</b>';
		document.getElementById("orderList").style.visibility='VISIBLE';
		
		//If edits pass build query string and perform the search...
		var qs = "?";
		if( f.repId != null ) { qs += "&repId=" + f.repId.options[f.repId.selectedIndex].value; }
		if( f.firstName != null ) { qs += "&firstName=" + Trim(f.firstName.value); }
		if( f.lastName != null ) { qs += "&lastName=" + Trim(f.lastName.value); }
		if( f.webOrderId != null ) { qs += "&webOrderId=" + Trim(f.webOrderId.value); }
		if( f.orderStatus != null ) { qs += "&orderStatus=" + f.orderStatus.options[f.orderStatus.selectedIndex].value; }
		if( f.disposition != null ) { qs += "&disposition=" + f.dispositionId.options[f.dispositionId.selectedIndex].value; }
		if( f.theFromDate != null ) { qs += "&fromDate=" + Trim(f.theFromDate.value); }
		if( f.theToDate != null ) { qs += "&toDate=" + Trim(f.theToDate.value); }
		if( f.sourceCode != null ) { qs += "&sourceCode=" + Trim(f.sourceCode.value); }
		if( f.referenceCode != null ) { qs += "&referenceCode=" + Trim(f.referenceCode.value); }
		if( f.shipZip != null ) { qs += "&shipZip=" + Trim(f.shipZip.value); }
		if( f.phoneNumber != null ) { qs += "&phoneNumber=" + Trim(f.phoneNumber.value); }
				
		var ws = new WebServer();
		ws.setTimeout( 10000 );
		ws.setTimeoutMessage( 'Your action takes a couple of seconds. Please wait...' );
		ws.url= partnerPath + "/do/tracking/orderTracking" + qs;
		ws.getPage();
		
	}
}

function sortOrderSearchData( sortType, sortColumn ) {

	var ws = new WebServer();
	ws.url= partnerPath  + "/do/tracking/sortOrderSearchData?sortType=" + sortType + "&sortColumn=" + sortColumn;
	ws.getPage();
	
}

function clearDispositions(){
	var d = document.OrderSearchForm.disposition;
	for (var x=d.length-1; x>=0; x--){
		d[x] = null;
	}
}

function addDisposition(value, text){
	var d = document.OrderSearchForm.disposition;
	d[d.length] = new Option(text,value);
}

//End of ordersearch.js

