// AdvancedSearchValidation.js
//This function sets initial focus to Business name field

function setFoucs() {
	document.NameAddressSearchForm.busName.focus();
}

//This function Validates NameAddressForm before sumbitting. 
//This is called by prepareSubmit(thisForm) funcion.

function validateForm(thisForm) {	
	if (thisForm.busName.value == null || thisForm.busName.value == ""){		
		alert("Please enter the name of the company that you are searching for.");
		thisForm.busName.focus();		
		return false;	
	}else if(thisForm.country.options[thisForm.country.selectedIndex].value=="US") {
		var us = document.getElementById("usState");
		if(us.options[us.selectedIndex].value == null || us.options[us.selectedIndex].value == ""){		
			alert("Please specify a state or you may search nationwide by choosing Nationwide option.");		
			us.focus();		
			return false;
		}else {
			thisForm.state.value=us.options[us.selectedIndex].value;
		}		
	}else if(thisForm.country.options[thisForm.country.selectedIndex].value=="CA") {
		var ca = document.getElementById("caState");
		if(ca.options[ca.selectedIndex].value == null || ca.options[ca.selectedIndex].value == ""){		
			alert("Please select a Province for Canada");		
			ca.focus();		
			return false;
		}else {
			thisForm.state.value=ca.options[ca.selectedIndex].value;
		}				
	}
	return true;	 		
}

//This function submits the page, if the user enters the valid data
//This funciton calls validateForm(thisForm) function

function prepareSubmit(thisForm) {		
	if(validateForm(thisForm))	{
		thisForm.submit();
		//return false;
	} else {
	 	return false;				
	}				
}

//This function Validates PhoneSearchForm before sumbitting. 
//This is called by preparePhoneSubmit(thisForm) funcion.

function validatPhoneForm(thisForm) {
	if (thisForm.phone.value == null || thisForm.phone.value == "" ||
	    isNaN(thisForm.phone.value) || thisForm.phone.value.length != 10){
		    var phoneNum, prefix;
		    if(thisForm.phone.value.length == 11){
				phoneNum = thisForm.phone.value;
				prefix = phoneNum.substring(0,1);
				if(prefix == 1){
				 	return true;
				} else{
					alert("Please enter the Telephone Number of the company that you are searching for.\nPlease include the 3 digit area code and 7 digit local extension.");
					thisForm.phone.focus();		
					return false;	
				}
			} else{						
				alert("Please enter the Telephone Number of the company that you are searching for.\nPlease include the 3 digit area code and 7 digit local extension.");
				thisForm.phone.focus();		
				return false;
			}	
	  } else {
	    phoneno = thisForm.phone.value;
		prefix1 = phoneno.substring(0,1);
	    if(prefix1 != 1){
			return true;
		} else{
			alert("Please enter the Telephone Number of the company that you are searching for.\nPlease include the 3 digit area code and 7 digit local extension.");
			thisForm.phone.focus();		
			return false;
		}
	}
	return true;	
}

//This function submits the page, if the user enters the valid telephone number
//This funciton calls validatePhoneForm(thisForm) function

function preparePhoneSubmit(thisForm) {	
	if(validatPhoneForm(thisForm))	{
		thisForm.submit();
		//return false;
	} else {
	 	return false;				
	}				
}

//This function Validates DunsSearchForm before sumbitting. 
//This is called by prepareDunsSubmit(thisForm) funcion.

function validateDunsForm(thisForm) {
	var dunsNumber = thisForm.dunsNumber.value;	
	dunsNumber = dunsNumber.replace("-", "");
	dunsNumber = dunsNumber.replace("-", "");
	thisForm.dunsNumber.value = dunsNumber;
	var errMessage = " is an invalid DUNS number. Please check your number and try again.";
	if (dunsNumber == null || dunsNumber == ""){		
		alert("Please enter the D-U-N-S"+String.fromCharCode("0174")+ " number of the company that you are searching for.")
		thisForm.dunsNumber.focus();		
		return false;
	} else if(dunsNumber.length != 9 || isNaN(dunsNumber)){
		if(thisForm.fromView.value == "MmbcDunsSearch"){
			alert("Please specify a 9 digit, numeric DUNS Number.");
			thisForm.dunsNumber.focus();		
			return false;
		}else{
			alert("'"+dunsNumber+"'" + errMessage);
			thisForm.dunsNumber.focus();		
			return false;
		}
	}
	
	//added below block of code to display alert message if no country is selected 
	//for duns search by Harivital for EPLTFM-10866 on 06-Aug-2010
	if(thisForm.dunsCountry != null){
		var country = thisForm.dunsCountry.value;
		if(country == null || country == ""){
			alert('Please select country');
			thisForm.dunsCountry.focus();
			return false;
		}
	}
	return true;			
}

//This function submits the page, if the user enters the valid duns number
//This funciton calls validateDunseForm(thisForm) function

function prepareDunsSubmit(thisForm) {		
	if(validateDunsForm(thisForm))	{			
		thisForm.submit();		
	} else {				
	 	return false;				
	}
}

//This function disables if the selected country is non-US or non-Canada

function isStateRequired(thisForm, selectedValue) {
	if(selectedValue == "US" || selectedValue == "CA") {
		if (selectedValue == "US") {
        		var us = document.getElementById("usStates");
				var ca = document.getElementById("caStates");
				var no = document.getElementById("noStates");
				if(us.style.display == "none") {
					us.style.display = "block";
					ca.style.display = "none";
					no.style.display = "none";
				} else {
					us.style.display = "block";
					ca.style.display = "none";
					no.style.display = "none";
				}
       	 } else {
	    	var us = document.getElementById("usStates");
			var ca = document.getElementById("caStates");
			var no = document.getElementById("noStates");			
			if(ca.style.display == "none") {
				ca.style.display = "block";
				us.style.display = "none";
				no.style.display = "none";
			} else {
				ca.style.display = "block";				
				us.style.display = "none";
				no.style.display = "none";					
			}
		 }
	} else {
		var us = document.getElementById("usStates");
		var ca = document.getElementById("caStates");
		var no = document.getElementById("noStates");
		if(no.style.display == "none") {
			no.style.display = "block";
			us.style.display = "none";
			ca.style.display = "none";
		} else {
			no.style.display = "block";
			us.style.display = "none";
			ca.style.display = "none";					
		}
	}
}

function clearThis(form){

	for (var e = 0; e < form.elements.length; e++) {
	    var el = form.elements[e];
	    if (el.type == 'text') {
			el.value = "";
		}
		else if(el.type == 'select-one'){
			el.selectedIndex =0
			document.getElementById("usStates").style.display = "block";
			document.getElementById("caStates").style.display = "none";
			document.getElementById("noStates").style.display = "none";
		}
		else if(el.type == 'checkbox'){
			el.checked = false
		}
		else if(el.type == 'radio'){
			el.checked = false
		}
		else if(el.type == 'textarea'){
			el.value = "";
		}
	}
}

//Function used to control enter event in the forms. "Enter" keystroke is 13.
//It internally calls prepare submits of respective forms.

function submitWithEnter(thisForm, indicator){

	var netscape = "";
	var ver = navigator.appVersion;
	var len = ver.length;
	for(var i = 0; i < len; i++) if (ver.charAt(i) == "(") break;
	netscape = (ver.charAt(i+1).toUpperCase() != "C");

	// determines whether Netscape or Internet Explorer
	k = (netscape) ? DnEvents.which : window.event.keyCode;

	if (k == 13) { // enter key pressed
		// created funtion for DUNS Number lookup, EPLTFM-9990 by Harivital
		submitTheForm(thisForm,indicator);
		return false;
	} else {
		if (netscape) document.captureEvents(Event.KEYDOWN|Event.KEYUP);
		return true;
	}
}

// seperated from funtion submitWithEnter for DUNS Number lookup, EPLTFM-9990 by Harivital
function submitTheForm(thisForm,indicator){
	if(indicator == 1) {
		prepareSubmit(thisForm);
		return false;
	}else if (indicator == 2) {			
		preparePhoneSubmit(thisForm);
		return false;
	}else if (indicator == 3) {			
		prepareDunsSubmit(thisForm);
		return false;
	}
}

//Function used to open popup window for duns number link

function openPopup(strUrl,strWinName,features){	
	window.open(strUrl,strWinName,features);
}
function advancedSearch(AdvancedSearchForm){
	if(validateAdvSearchForm(AdvancedSearchForm))	{
		if(AdvancedSearchForm.phoneNumber!=null && AdvancedSearchForm.phoneNumber.value != null && AdvancedSearchForm.phoneNumber.value != ''){
			if(validatAdvSearchPhoneForm(AdvancedSearchForm))
			{
				if(AdvancedSearchForm.dunsNumber!=null && AdvancedSearchForm.dunsNumber.value != null &&  AdvancedSearchForm.dunsNumber.value != ''){
					if(validateAdvSearchDunsForm(AdvancedSearchForm)){
						AdvancedSearchForm.searchType.value='DSF';
						emptyAdvanceSearchFormFields(AdvancedSearchForm);
						AdvancedSearchForm.searchPerform.value='true';
						AdvancedSearchForm.submit();
						return true;							
					}else{
						return false;
					}
				}
				AdvancedSearchForm.searchType.value='PSF'; 
				emptyAdvanceSearchFormFields(AdvancedSearchForm);				
				AdvancedSearchForm.searchPerform.value='true';
				AdvancedSearchForm.submit();
				return;					
			}
			else{
				return false;
			}
		}else if(AdvancedSearchForm.dunsNumber!=null && AdvancedSearchForm.dunsNumber.value != null &&  AdvancedSearchForm.dunsNumber.value != ''){
			if(validateAdvSearchDunsForm(AdvancedSearchForm)){
				AdvancedSearchForm.searchType.value='DSF';
				emptyAdvanceSearchFormFields(AdvancedSearchForm);				
				AdvancedSearchForm.searchPerform.value='true';
				AdvancedSearchForm.submit();
				return true;					
			}else{
				return false;
			}
		}
		AdvancedSearchForm.searchType.value='NSF';
		emptyAdvanceSearchFormFields(AdvancedSearchForm);		 
		AdvancedSearchForm.searchPerform.value='true';
		AdvancedSearchForm.submit();
		return;			
	}else{
	 return false;
	}
	
}
// EPLTFM-8371: New Function added for new international advanced search page
function internationalAdvancedSearch(AdvancedSearchForm){
	if(validateIntlAdvSearchForm(AdvancedSearchForm))	{
		if(AdvancedSearchForm.dunsNumber!=null && AdvancedSearchForm.dunsNumber.value != null &&  AdvancedSearchForm.dunsNumber.value != ''){
			if(validateAdvSearchDunsForm(AdvancedSearchForm)){
				AdvancedSearchForm.searchType.value='DSF';
				emptyIntlAdvanceSearchFormFields(AdvancedSearchForm);				
				AdvancedSearchForm.searchPerform.value='true';
				AdvancedSearchForm.submit();
				return true;					
			}else{
				return false;
			}
		}
		AdvancedSearchForm.searchType.value='NSF';
		emptyIntlAdvanceSearchFormFields(AdvancedSearchForm);		 
		AdvancedSearchForm.searchPerform.value='true';
		AdvancedSearchForm.submit();
		return;			
	}else{
	 return false;
	}
	
}


function emptyAdvanceSearchFormFields(AdvancedSearchForm){
	if(AdvancedSearchForm.searchType.value=='DSF' || AdvancedSearchForm.searchType.value=='PSF'){
		AdvancedSearchForm.busName.value ='';
		AdvancedSearchForm.state.value ='';
		AdvancedSearchForm.country.value ='';
		AdvancedSearchForm.busNameAdv.value ='';
		AdvancedSearchForm.address.value ='';
		AdvancedSearchForm.city.value ='';
		AdvancedSearchForm.zipCode.value ='';
		if(AdvancedSearchForm.searchType.value=='DSF'){
			AdvancedSearchForm.phoneNumber.value ='';
		}else{
			AdvancedSearchForm.dunsNumber.value ='';
		}
	}else{
		AdvancedSearchForm.phoneNumber.value ='';
		AdvancedSearchForm.dunsNumber.value ='';
	}
}

// EPLTFM-8371: New Function added for new international advanced search page to reset fields
function emptyIntlAdvanceSearchFormFields(AdvancedSearchForm){
	if(AdvancedSearchForm.searchType.value=='DSF' || AdvancedSearchForm.searchType.value=='PSF'){
		AdvancedSearchForm.busName.value ='';
		AdvancedSearchForm.country.value ='';
		AdvancedSearchForm.busNameAdv.value ='';
		AdvancedSearchForm.address.value ='';
		AdvancedSearchForm.city.value ='';
		AdvancedSearchForm.zipCode.value ='';
	}else{
		AdvancedSearchForm.dunsNumber.value ='';
	}
}

function validateAdvSearchForm(thisForm) {
if (thisForm.phoneNumber.value == '' && thisForm.dunsNumber.value == ''){ 
if(document.getElementById("prod_adv_search")!=null && document.getElementById("prod_adv_search").style.display == "block"){
		if (thisForm.busNameAdv.value == null || thisForm.busNameAdv.value == ""){		
			alert("Please enter the name of the company that you are searching for.");
			thisForm.busNameAdv.focus();		
			return false;	
		}else if(thisForm.country.options[thisForm.country.selectedIndex].value=="US") {
			var us = document.getElementById("usStateAdv");
			if(us.options[us.selectedIndex].value == null || us.options[us.selectedIndex].value == ""){		
				alert("Please specify a state or you may search nationwide by choosing Nationwide option.");		
				us.focus();		
				return false;
			}else {
				thisForm.state.value=us.options[us.selectedIndex].value;
			}		
		}else if(thisForm.country.options[thisForm.country.selectedIndex].value=="CA") {
			var ca = document.getElementById("caStateAdv");
			if(ca.options[ca.selectedIndex].value == null || ca.options[ca.selectedIndex].value == ""){		
				alert("Please select a Province for Canada");		
				ca.focus();		
				return false;
			}else {
				thisForm.state.value=ca.options[ca.selectedIndex].value;
			}		
		}
		thisForm.busName.value= thisForm.busNameAdv.value;
		return true;
}	
}else{
return true;
}	
}

//EPLTFM-8371: New Function added for new international advanced search page validation
function validateIntlAdvSearchForm(thisForm) {
	
	if (thisForm.dunsNumber.value == ''){ 
	var vCountry = document.getElementById("countryAdv");
		if (thisForm.busNameAdv.value == null || thisForm.busNameAdv.value == ""){		
			alert("Please enter the name of the company that you are searching for.");
			thisForm.busNameAdv.focus();		
			return false;	
		}else if(vCountry.options[vCountry.selectedIndex].value=="-") {
				alert("Please select the country that you are searching for.");		
				return false;
		}
		thisForm.busName.value= thisForm.busNameAdv.value;
		thisForm.country.value = vCountry.options[vCountry.selectedIndex].value;
		return true;
	}else{
	return true;
	}		
}


function validatAdvSearchPhoneForm(thisForm) {
	if (thisForm.phoneNumber.value == null || thisForm.phoneNumber.value == "" ||
	    isNaN(thisForm.phoneNumber.value) || thisForm.phoneNumber.value.length != 10){
		    var phoneNum, prefix;
		    if(thisForm.phoneNumber.value.length == 11){
				phoneNum = thisForm.phoneNumber.value;
				prefix = phoneNum.substring(0,1);
				if(prefix == 1){
				 	return true;
				} else{
					alert("Please enter the Telephone Number of the company that you are searching for.\nPlease include the 3 digit area code and 7 digit local extension.");
					thisForm.phoneNumber.focus();		
					return false;	
				}
			} else{						
				alert("Please enter the Telephone Number of the company that you are searching for.\nPlease include the 3 digit area code and 7 digit local extension.");
				thisForm.phoneNumber.focus();		
				return false;
			}	
	  } else {
	    phoneno = thisForm.phoneNumber.value;
		prefix1 = phoneno.substring(0,1);
	    if(prefix1 != 1){
			return true;
		} else{
			alert("Please enter the Telephone Number of the company that you are searching for.\nPlease include the 3 digit area code and 7 digit local extension.");
			thisForm.phoneNumber.focus();		
			return false;
		}
	}
	return true;	
}

function validateAdvSearchDunsForm(thisForm) {
	var dunsNumber = thisForm.dunsNumber.value;	
	dunsNumber = dunsNumber.replace("-", "");
	dunsNumber = dunsNumber.replace("-", "");
	thisForm.dunsNumber.value = trim(dunsNumber);
	dunsNumber = trim(dunsNumber);
	var errMessage = " is an invalid DUNS number. Please check your number and try again.";
	if (dunsNumber == null || dunsNumber == ""){		
		alert("Please enter the D-U-N-S"+String.fromCharCode("0174")+ " number of the company that you are searching for.")
		thisForm.dunsNumber.focus();		
		return false;
	} else if(dunsNumber.length != 9){
			alert("Please specify a 9 digit, numeric DUNS Number.");
			thisForm.dunsNumber.focus();		
			return false;
	}else if(isNaN(dunsNumber)){		
			alert("'"+dunsNumber+"'" + errMessage);
			thisForm.dunsNumber.focus();		
			return false;
	}
	return true;			
}

