dojo.require("dojo.back");
dojo.require("dojox.timing._base");

function callPartSubmission(formName, evt) {

    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
        ((evt.which) ? evt.which : 0));

    //override form submission when the enter key is pressed
    if (charCode == 13) {
    		
		//for IE
		if (navigator.appVersion.indexOf("MSIE")!= -1) {
			evt.returnValue = false;
		}
		
		//for Firefox
		if(navigator.userAgent.indexOf("Firefox") != -1) {
		    evt.preventDefault();
		}

		if (dojo.byId("searchButton").disabled == false) {
			submitPartSubmission(formName);
		}
    }    
}

function findDupes( ta )
{
	var data = ta.split( /\r\n|\r|\n/ );	
	if(data.length > 5)  {
		alert("Number of Parts entered exceeds maximum 5 allowed." );
		return false;
	}	
	
	return true;

}

function submitPartSubmission(formName, whereFrom) {
	
	var form = document.forms[formName];
	
	form.partNumber.value = trim(form.partNumber.value);
	
	form.tcpn.value = "";
	var partNumber = form.partNumber.value;
	
	if(!findDupes( partNumber))  {
			return false;
	}
	
	var region = document.getElementById("regionsList").value;

	if (partNumber == "") {
	   return false;
	}
	
	var fadeOut = dojo.fadeOut({node: "output",duration: 250});	
	fadeOut.play();	
	
	disableSearch(true);
	
	if (pageLoadPopup1 != null) {		
		pageLoadPopup1.show();
	}
	
	var timeout = document.forms[formName].timeout.value;
		
	dojo.xhrPost({
			url: 'submit_distributor_inventory.do',
			form: form,
			timeout: timeout,
			load: function(data){								
				hideProgressMessage();			         			         	
			 	disableSearch(false);
			 	resetArray();
			 	handleServerResponseData(data);	
			},
			error: function(response, ioArgs) { 
            	dojo.xhrPost({
					url: 'error.do',
					load: function(data){
						hideProgressMessage();								       	    
			       	    disableSearch(false);
					 	resetArray();									 	
					 	handleServerResponseData(data);
					}			
				});	
            }					
	});						
    
}

function disableSearch(flag) {

	dojo.byId("searchButton").disabled = flag;
	
	var exactmatch = document.forms["dist_inv_form"].queryTypeExactMatch;
	var startswith = document.forms["dist_inv_form"].queryTypeStartsWith;
	
	if (exactmatch.checked == false) {
	   exactmatch.disabled = flag;
	}
	
	if (startswith.checked == false) {
       startswith.disabled = flag;
	}

}

function hideProgressMessage() {

	if (pageLoadPopup1 != null) {		
		pageLoadPopup1.hide();
	}	
}

function handleServerResponseData(data) {

	var appState = new ApplicationState(data, "output", "output");	
	appState.showStateData();
	
	if (redirect == true) {
		//alert("redirect true; init appstate");
		dojo.back.setInitialState(appState);				
		redirect = false;
	}
	else{
		//alert("redirect false; addToHistory");
		dojo.back.addToHistory(appState);		
	}
}
		
dojo.addOnLoad(function() {

	pageLoadPopup1 = new te.PageLoadPopup("searchButton");

	if (redirect == false) { 
		var appState = new ApplicationState(dojo.byId("output").innerHTML, "output", "output");
		//alert("redirect false; init appstate");
		dojo.back.setInitialState(appState);		
	}
	
});
