var showNewsAdvancedSearch = false;
var usaValue;

function validateNewsSearchForm()
{
	var keyword =  trimAll(document.getElementById('newsSearchForm').keyword.value);
	document.getElementById('newsSearchForm').keyword.value = keyword;
	var fromDate =  document.getElementById('newsSearchForm').fromDate.value;
	var toDate =  document.getElementById('newsSearchForm').toDate.value;
	if(isEmptyKeyword(keyword)&& fromDate == '' && toDate == '' )
	{
		alert('Please enter either search keyword or date range');
		 return false;
	}
	if(!isValidKeyword(keyword))
	{
		return false;
	}
	if(fromDate != '' && toDate == '')
	{
		 alert("Please choose To date");
	      return false;
	}
	if(toDate != '' && fromDate == '')
	{
		 alert("Please choose From date");
	      return false;
	}
	if(!validateDates(fromDate,toDate))
	{
		return false;
	}
	document.getElementById('newsSearchForm').pageNumber.value = 1;
	document.getElementById('newsSearchForm').submit();
}
function updateNewsForm(keyword,matchType,fromDate,toDate)
{
	if(document.getElementById('newsSearchForm'))
	{
		document.getElementById('newsSearchForm').keyword.value = keyword;
		elemMatch  = document.getElementById('newsSearchForm').matchType;
		for(var i = 0 ; i<elemMatch.length ; i++){
			if ( elemMatch[i].value == matchType )
			{
				elemMatch[i].checked = "1";
			}
		}
		document.getElementById('newsSearchForm').fromDate.value = fromDate;
		document.getElementById('newsSearchForm').toDate.value = toDate;
	}
}
function doNewsPagination(keyword,matchType,fromDate,toDate,pageNumber)
{
	if(document.getElementById('newsSearchForm'))
	{
		document.getElementById('newsSearchForm').pageNumber.value = pageNumber;
		updateNewsForm(keyword,matchType,fromDate,toDate);
		document.getElementById('newsSearchForm').submit();
	}
}
function updateModelProductValue(taxonomyArrayIds,taxonomyArrayValues){	
	var productElement;
	for(var l=0 ; l<taxonomyArrayIds.length ; l++){
		if(taxonomyArrayIds[l] == 'taxProduct')
		{
			productElement = l;
		}
	}
	var elemTax  = document.getElementsByName('taxProduct')[0];
	for(var i = 0 ; i<elemTax.options.length ; i++){
		if (elemTax.options[i].value.indexOf(taxonomyArrayValues[productElement])!=-1){
			elemTax.selectedIndex = i;
		}
	}
}
function updateModelForm(keyword,matchType,taxonomyArrayIds,taxonomyArrayValues){
	if(document.getElementById('modelSearchForm')){
		if(keyword!="")
		{
			document.getElementById("keywordLabelId").style.display="none";
		}
		document.getElementById('modelSearchForm').keyword.value = keyword;		
		var elemMatch  = document.getElementById('modelSearchForm').matchType;
		for(var i = 0 ; i<elemMatch.length ; i++){
			if ( elemMatch[i].value == matchType){
				elemMatch[i].checked = "1";
			}
		}		
		for(var l=0 ; l<taxonomyArrayIds.length ; l++){
			var elemTax  = document.getElementsByName(taxonomyArrayIds[l])[0];
			for(var i = 0 ; i<elemTax.options.length ; i++){
				if (elemTax.options[i].value.indexOf(taxonomyArrayValues[l])!=-1){
					elemTax.selectedIndex = i;
				}
			}
		}
	}
}
function doModelPagination(keyword,matchType,taxonomyArrayIds,taxonomyArrayValues,pageNumber){
	if(document.getElementById('modelSearchForm')){
		document.getElementById('modelSearchForm').pageNumber.value = pageNumber;
		
		var sortTypeSelect =  document.getElementById('sortTypeSelect').value;
		document.getElementById('modelSearchForm').sortType.value = sortTypeSelect;
		resetCurveResults();
		
		
		updateModelForm(keyword,matchType,taxonomyArrayIds,taxonomyArrayValues);
		
		if(document.getElementById('modelCompareForm')){
			getComparedModels();
		}
		
		document.getElementById('modelSearchForm').submit();
	}
}

function getComparedModels(){
	var modelForm = document.getElementById('modelSearchForm');
	var compareForm = document.getElementById('modelCompareForm');
	for(var i=0;i<6;i++){
	   var index = i+1;
	   var modelName = "model"+index;
	   if(compareForm.elements[i]){
	   	modelForm.elements[modelName].value = compareForm.elements[i].value;
	   }
	}
}

function updateModelSearchWithSortType(sortType){
	if(document.getElementById('sortTypeSelect')){
		elemSortTypeSelect =  document.getElementById('sortTypeSelect');
		for(var i = 0 ; i<elemSortTypeSelect.length ; i++){
			if ( elemSortTypeSelect[i].value == sortType ){
				elemSortTypeSelect[i].selected = "true";
				break;
			}
		}
	}
}
function validateModelSearchFormWithSortType(keyword,matchType,taxonomyArrayIds,taxonomyArrayValues)
{
	if(document.getElementById('modelSearchForm')){
		var sortTypeSelect =  document.getElementById('sortTypeSelect').value;
		document.getElementById('modelSearchForm').sortType.value = sortTypeSelect;
		updateModelForm(keyword,matchType,taxonomyArrayIds,taxonomyArrayValues);
		resetCurveResults();
		document.getElementById('modelSearchForm').submit();
	}
}



function validatePhotoSearchForm()
{
	var keyword =  trimAll(document.getElementById('photoSearchForm').keyword.value);
	document.getElementById('photoSearchForm').keyword.value = keyword;
	var classificationId =  document.getElementById('photoSearchForm').classificationId.value;
	if(isEmptyKeyword(keyword)&& classificationId == '')
	{
		alert('Please either enter search keyword or select category');
		 return false;
	}
	if(!isValidKeyword(keyword))
	{
		return false;
	}
	document.getElementById('photoSearchForm').pageNumber.value = 1;
	document.getElementById('photoSearchForm').submit();
}
function updatePhotoForm(keyword,matchType,classificationId)
{
	if(document.getElementById('photoSearchForm'))
	{
		document.getElementById('photoSearchForm').keyword.value = keyword;
		if(document.getElementById('photoSearchForm').keyword.value == '')
		{
			document.getElementById('photoSearchForm').keyword.value = "Keyword search";
		}
		elemMatch  = document.getElementById('photoSearchForm').matchType;
		for(var i = 0 ; i<elemMatch.length ; i++){
			if ( elemMatch[i].value == matchType){
				elemMatch[i].checked = "1";
			}
		}
		elemClassification  = document.getElementById('photoSearchForm').classificationId;
		for(var i = 0 ; i<elemClassification.length ; i++){
			if ( elemClassification[i].value == classificationId ){
				elemClassification[i].selected = "true";
			}
		}
	}
}
function doPhotoPagination(keyword,matchType,classificationId,pageNumber)
{
	if(document.getElementById('photoSearchForm'))
	{
		document.getElementById('photoSearchForm').pageNumber.value = pageNumber;
		updatePhotoForm(keyword,matchType,classificationId);
		document.getElementById('photoSearchForm').submit();
	}
}
function validateDocumentsSearchFormWithSortType(keyword,matchType,classificationId,taxonomyArrayIds,taxonomyArrayValues,modelsList,updateBeforeSubmit)
{
	if(document.getElementById('documentsSearchForm'))
	{
		var sortTypeSelect =  document.getElementById('sortTypeSelect').value;
		document.getElementById('documentsSearchForm').sortType.value = sortTypeSelect;
		updateDocumentsForm(keyword,matchType,classificationId,taxonomyArrayIds,taxonomyArrayValues,modelsList,updateBeforeSubmit);
		document.getElementById('documentsSearchForm').submit();		
	}
}
function validateDocumentsSearchForm()
{
	var keyword =  trimAll(document.getElementById('documentsSearchForm').keyword.value);
	document.getElementById('documentsSearchForm').keyword.value = keyword
	var classificationId =  document.getElementById('documentsSearchForm').classificationId.value;
	var elemModelsList  = document.getElementById('documentsSearchForm').modelsList;
	var modelsListExist = false ;
	var modelSelectedNumber = 0;
	if(elemModelsList){
		if(elemModelsList.length){
			for(var i = 0 ; i<elemModelsList.length ; i++){
				if ( elemModelsList[i].checked == true ){
					modelsListExist = true;
					modelSelectedNumber++;
				}
			}
		}else{
			if ( document.getElementById('documentsSearchForm').modelsList.checked == true ){
				modelsListExist = true;
				modelSelectedNumber++;
			}
		}
	}	
	if(isEmptyKeyword(keyword)&& classificationId == '' && modelsListExist == false)
	{
		alert('Please either enter search keyword or select category or select model(s)');
		 return false;
	}
	if(!isValidKeyword(keyword))
	{
		return false;
	}
	if(modelSelectedNumber > 6){
		alert("Maximum number of models to select is six");
		return false;
	}
	document.getElementById('documentsSearchForm').pageNumber.value = 1;
	document.getElementById('documentsSearchForm').submit();
}
function updateDocumentsSearchWithSortType(sortType)
{
	if(document.getElementById('sortTypeSelect'))
	{
		elemSortTypeSelect =  document.getElementById('sortTypeSelect');
		for(var i = 0 ; i<elemSortTypeSelect.length ; i++){
			if ( elemSortTypeSelect[i].value == sortType ){
				elemSortTypeSelect[i].selected = "true";
				break;
			}
		}
	}
}
function updateDocumentsForm(keyword,matchType,classificationId,taxonomyArrayIds,taxonomyArrayValues,modelsList,updateBeforeSubmit)
{
	if(document.getElementById('documentsSearchForm'))
	{
		document.getElementById('documentsSearchForm').keyword.value = keyword;
		if(keyword != ''){
			$("label[for='keyword']").css("text-indent","-10000px");
		}
		elemMatch  = document.getElementById('documentsSearchForm').matchType;
		for(var i = 0 ; i<elemMatch.length ; i++){
			if ( elemMatch[i].value == matchType){
				elemMatch[i].checked = "1";
				break;
			}
		}
		elemClassification  = document.getElementById('documentsSearchForm').classificationId;
		for(var i = 0 ; i<elemClassification.length ; i++){
			if ( elemClassification[i].value == classificationId ){
				elemClassification[i].selected = "true";
				break;
			}
		}
		var toggleFlag = false;
		for(var l=0 ; l<taxonomyArrayIds.length ; l++){
			var elemTax  = document.getElementsByName(taxonomyArrayIds[l])[0];
			for(var i = 0 ; i<elemTax.options.length ; i++){
				if (elemTax.options[i].value.indexOf(taxonomyArrayValues[l])!=-1){
					elemTax.selectedIndex = i;
					toggleFlag = true;
				}
			}
		}
		if(updateBeforeSubmit == true)
		{
			drawSelectedModels(modelsList);
		}
		else if(modelsList.length > 0)
		{
			findModelInstances(modelList);
		}
		if(toggleFlag == true){
			$('.btnSearch').toggle();
			$(".advancedSearch").show();
			$(".advancedToggler").toggleClass("togglerActive");
		}
	}
}
function doDocumentsPagination(keyword,matchType,classificationId,taxonomyArrayIds,taxonomyArrayValues,modelsList,updateBeforeSubmit,pageNumber)
{
	if(document.getElementById('documentsSearchForm'))
	{
		document.getElementById('documentsSearchForm').pageNumber.value = pageNumber;
		var sortTypeSelect =  document.getElementById('sortTypeSelect').value;
		if(sortTypeSelect && sortTypeSelect != ""){
			document.getElementById('documentsSearchForm').sortType.value = sortTypeSelect;
		}
		updateDocumentsForm(keyword,matchType,classificationId,taxonomyArrayIds,taxonomyArrayValues,modelsList,updateBeforeSubmit);
		document.getElementById('documentsSearchForm').submit();
	}
}
function updateExecutiveForm(regionName,location) {
	if(document.getElementById('executiveSearchForm')) {	
		if (regionName != null && regionName != "null") {
			document.getElementById('executiveSearchForm').executiveRegion.value = regionName;
		}		
		if (location != null && location.length == 40 ) {
			document.getElementById('executiveSearchForm').executiveLocation.value = location;
		}		
	}
}
function handleInnerHtml(){
	if(document.forms['modelSearchForm']!= null)
	{
		var optionValue = document.forms['modelSearchForm'].elements['product'].value;
		if(optionValue!=0){	
			document.getElementById('noproducts').innerHTML = "";
		} else {
			document.getElementById('noproducts').innerHTML = "Please Select a product category";
		}
	}
}
function validateModelSearchForm(){
	var keyword =  trimAll(document.getElementById('modelSearchForm').keyword.value);
	if(!isValidKeyword(keyword))
	{
		return false;
	}
	var optionValue = document.forms['modelSearchForm'].elements['product'].value;
	if(optionValue!=0){
		resetCurveResults();
		document.getElementById('modelSearchForm').pageNumber.value = 1;
		document.getElementById('modelSearchForm').submit();
	}
	else{
		alert("Please select a product category");
		return false;
	}
}


function selectInputSelection(selectInput,value)
{
		for(var i = 0 ; i<selectInput.length ; i++){
			if ( selectInput[i].value == value ){
				selectInput[i].selected = "true";
				break;
			}
		}
}
function updatePartnerLocatorForm(country,state,zipCode,partnerName,productCategory)
{
	document.getElementById('zipCodeID').value=zipCode;
	document.getElementById('partnerName').value=decodeURIComponent(partnerName);
	if(partnerName!="")
	{
		document.getElementById("partnerNameLabelId").style.display="none";
	}	
	if(zipCode!="")
	{
		document.getElementById("ZipCodeLabelId").style.display="none";
	}	
	selectInputSelection(document.getElementById('productCategoryId'));
	selectInputSelection(document.getElementById('productCategoryId'),productCategory);
	selectInputSelection(document.getElementById('countryId'),country);	
	if(country==usaValue)
	{
		document.getElementById("zipCodeID").style.display="";
	}   
	if(country==usaValue ||country=='Canada' || country=='Mexico')
	{
		
		var countryDDL=document.getElementById("countryId");
		if(document.all)
		{
			countryDDL.fireEvent("onchange");
		}
		else
		{
			var changeEvt = document.createEvent('HTMLEvents');
			changeEvt.initEvent('change', true, true);
			countryDDL.dispatchEvent(changeEvt);
		}

		document.getElementById("stateId").style.display="";
	}
	selectInputSelection(document.getElementById('stateId'),state);
}
function checkFieldValue(field,value)
{
	if(trimAll(document.getElementById(field).value)==value)
	{
		return true;
	}
	return false;
}
function submitPartnerLocatorForm()
{
	var validSearchCriteria=new Boolean(true);
	var validKW=new Boolean(true);	   
	var message="You have to ";	    
	var noEntries = new Boolean (false);
	
	if(checkFieldValue("productCategoryId","")   && checkFieldValue("countryId","") && checkFieldValue("partnerName","")  )
	{
		message+="select Product Category, or Country  or enter Partner Name";
		validSearchCriteria=false;
		noEntries = true;
	}
	if(noEntries == false)
	{
		 if(!isValidKeyword(document.getElementById('partnerName').value))
		 {
			validKW=false;
		 }
		   
		  if(checkFieldValue("countryId",usaValue) || checkFieldValue("countryId","Canada") || checkFieldValue("countryId","Mexico"))
		 {
			
			if(checkFieldValue("stateId","")){
				message+="select State, ";
				validSearchCriteria=false;  
			}
			if(checkFieldValue("zipCodeID","") && checkFieldValue("countryId",usaValue) && checkFieldValue("utype", "1")){
				message+="enter zip code, ";
				validSearchCriteria=false;  
			}
			
		 }
		if(!checkFieldValue('zipCodeID',""))
		{
			if(!/^\d{5}([\-]\d{4})?$/.test(document.getElementById('zipCodeID').value))
			 {
			    validSearchCriteria=false;
			    message+="enter 5 or 9 digit zip code";
			 }
		}
	}		
	if(!validSearchCriteria)
	{	
		if(message.length==message.lastIndexOf(',')+2)
		{
			message=message.substring(0,message.lastIndexOf(','));
			var lastMessage=message.substring(message.lastIndexOf(','),message.length);
			var repalcedMessage=lastMessage.replace(', select'," and");
			message=message.replace(lastMessage,repalcedMessage);
		}
		alert(message);
		return false;
	}
	 if(validSearchCriteria && validKW)
	{
		document.getElementById('partnerLocatorSearchForm').submit();
	}
	else
	 {
		return false;
	}
}	
function submitExecutiveForm() {      
	   if ( document.getElementById('executiveLocation').value  == "" &&  
			document.getElementById('executiveRegion').value == "") {
			alert ("You have to select at least Region Or Location.");
			return false;
		} else {              
			document.getElementById('executiveSearchForm').submit();
		}
}  
function validateDates(fromDate, toDate) {                   
	if (fromDate !=null && fromDate!="" && toDate != null && toDate != "") {
		if((new Date(toDate)) < (new Date(fromDate)))
		{
		     alert("To Date must be greater than or equal to From Date");
		     return false;
		 }				
	}
	return true;	
}
function submitTrainingForm() {	
	 var productCatIndex = document.getElementById('trainingProductCategory').selectedIndex;	  
	 var trainingTypeIndex = document.getElementById('trainingType').selectedIndex;	 
	 var fromDate = document.getElementById('trainingFromDate').value;	  
	 var toDate = document.getElementById('trainingToDate').value;	        	 
	 if (productCatIndex == 0 && trainingTypeIndex == 0) {
		 alert ("You have to select at least Product Category Or Training Type.");
		 return false;	
	 } else if (fromDate != '' && toDate == '') {
		 alert("Please select To date");
	     return false;	
	 } else if(toDate != '' && fromDate == ''){
		 alert("Please select From date");
	     return false;	
	 } else if (!validateDates(document.getElementById("trainingFromDate").value, document.getElementById("trainingToDate").value)){
	     return false;	 
	 } else {
		 document.getElementById('trainingSearchForm').pageNumber.value = 1;
		 document.getElementById('trainingSearchForm').submit();
	}	
}	
function submitSearchForm(formName,textFieldName,pageNumFound) {     
var keyword =document.forms[''+formName+''].elements[''+textFieldName+''].value;     
   if(isEmptyKeyword(keyword) || (keyword == 'Enter Keyword') || (keyword.length == 0)){   
		alert('Please enter search keyword.');
		 return false;	
   } else if(!isValidKeyword(keyword)) {
		return false;	
   } else {
	   if(pageNumFound)
	   {
		   document.getElementById(formName).pageNumber.value = 1;
	   }
	   document.getElementById(formName).submit();         
   }
}
function updateTrainingForm(trainingType, trainingProductCategory, trainingFromDate, trainingToDate) {      
	if(document.getElementById('trainingSearchForm')) {	
		if (trainingType != null && trainingType != "null") {
			document.getElementById('trainingSearchForm').trainingType.value = trainingType;
		}		
		if (trainingProductCategory != null && trainingProductCategory != "null") {
			document.getElementById('trainingSearchForm').trainingProductCategory.value = trainingProductCategory;
		}
		if (trainingFromDate != null && trainingFromDate != "null") {
			document.getElementById('trainingSearchForm').trainingFromDate.value = trainingFromDate;
		}		
		if (trainingToDate != null && trainingToDate != "null") {
			document.getElementById('trainingSearchForm').trainingToDate.value = trainingToDate;
		}				
	}
}
function isValidKeyword(keyword)
{
	if(!isEmptyKeyword(keyword))
	{
		if(keyword.length == 1){
			alert('Searching with single character is not allowed, Please enter a valid search keyword.');
			return false;
		}
		if(keyword.indexOf('*') > -1 || keyword.indexOf('?') > -1)
		{
			alert('Wildcard search is not allowed');
			return false;
		}
		var specialChars   = '[^`\\[]~!%=<>|{}]&"'+String.fromCharCode(174)+String.fromCharCode(8482)+String.fromCharCode(169);
	    for (var i = 0; i < specialChars.length; i++) 				
	    {					
		    if (keyword.indexOf(specialChars.charAt(i)) != -1) 					
		    {						
		    	alert("Keyword contains banned special characters");
		    	return false;
		    }
	    }
	}
	return true;
}
function isEmptyKeyword(keyword)
{
	if(trimAll(keyword) =='' || keyword == 'Keyword search')
	{
		 return true;
	}
	return false;
}
function trimAll(sString) 
{
	return leftTrim(rightTrim(sString));
}
function rightTrim(sString) 
{
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }
    return sString;
}  
function leftTrim(sString) 
{
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
    return sString;
}
function updateSiteForm(keyword, matchType) {   
	if (keyword != null && keyword != "null") {
			document.getElementById('siteSearchForm').searchKeyword.value = keyword;		
	}	         
	if (matchType != null && matchType != "null") {
			document.getElementById('siteSearchForm').matchType.value = matchType;
		var elemMatch  = document.getElementById('siteSearchForm').matchType;	
				for(var i = 0 ; i<elemMatch.length ; i++){
			if ( elemMatch[i].value == matchType )
			{
				elemMatch[i].checked = "1";
			}         
		}		
	}
}
