var defaultSearchval = "Service";
var defaultSearchLocation = "City, State, or Zip";

function Search() {
	var terms 	= encodeURIComponent(document.search_terms_form.searchterms.value);
	var searchType = "keyword";
	var currentLocation = encodeURIComponent(document.search_terms_form.currentLocation.value);
	
	for(i=0; i<document.search_terms_form.searchBy.length;i++){
		if(document.search_terms_form.searchBy[i].checked){
			searchType = document.search_terms_form.searchBy[i].value;
		}
	}
	
	var isThirdParty = false;
	
	if ( typeof thirdParty === "undefined"  || thirdParty == false ) {
		isThirdParty = false;
	}
	else {
		isThirdParty = true;
	}
	
	if ( isThirdParty == true ) {
		if( document.search_terms_form.searchterms.value == "" || document.search_terms_form.searchterms.value == defaultSearchval) {
	          alert( "Please enter a word or phrase to search for" );
	          document.search_terms_form.searchterms.focus();
		}
		else if( document.search_terms_form.currentLocation.value == "" || document.search_terms_form.currentLocation.value == defaultSearchLocation) {
	        alert( "Please provide a location" );
	        document.search_terms_form.currentLocation.focus();
		}
		else {
			var curLoc 		= document.search_terms_form.currentLocation.value;	    
		
		    // Create new url with property search and dimension search
		    //
			var removeterms = ["fromEmail", "adEmailId", "categoryId", "localeId", "bmsPPC", "bmsSE", "keyphrase", "type", "hash", "item","guidename","articleID","coupon","rdrt","An","A","Au","N","Ns","Ne","Nf","No","Nao","Ntk","Ntt","D","Nty","Ntx","Dx","in_dym","in_dim_search", "partner", "currentLocation", "distFilter", "searchVal", "domap", "searchType", "categoryID", "articleName", "groupDealId" ];
			var addterms 	= ["N=0","searchVal=" + terms, "currentLocation=" + currentLocation, "searchType=" + searchType,"Ns=P_PremiumPlacement" ];
			var newurl 		= ConstructURL("CURRENTURL", removeterms, addterms);

			self.location = "/controller.jsp" + newurl;
		}
	}
	else {
	    var curLoc 		= document.search_terms_form.currentLocation.value;	    
		
	    // Create new url with property search and dimension search
	    //
		var removeterms = ["fromEmail", "adEmailId", "categoryId", "localeId", "bmsPPC", "bmsSE", "keyphrase", "type", "hash", "item","guidename","articleID","coupon","rdrt","An","A","Au","N","Ns","Ne","Nf","No","Nao","Ntk","Ntt","D","Nty","Ntx","Dx","in_dym","in_dim_search", "partner", "currentLocation", "distFilter", "searchVal", "domap", "searchType", "categoryID", "articleName", "groupDealId" ];
		var addterms 	= ["N=0","searchVal=" + terms, "currentLocation=" + currentLocation, "searchType=" + searchType,"Ns=P_PremiumPlacement" ];
		var newurl 		= ConstructURL("CURRENTURL", removeterms, addterms);

	    ValidateSearchParameters.validate( terms, curLoc, function( data ) { 	
	    	var locationStatusEl = document.getElementById( "locationStatus" );
	    	if ( data.error == true ) {				
				if ( locationStatusEl != null ) {
					locationStatusEl.innerHTML = "Please enter a valid location";
					document.search_terms_form.currentLocation.style.border = "1px solid red";
				}
				else {
					alert( "Please enter a valid location" );
				}				
				return false;
			}
			else {
				if ( locationStatusEl != null ) {
					locationStatusEl.innerHTML = "";
					document.search_terms_form.currentLocation.style.border = "1px solid #999999";
				}
				
				if ( !isValidSearchValue( terms ) && !isValidLocation( curLoc ) ) {					
					if ( locationStatusEl != null ) {
						locationStatusEl.innerHTML = "Please enter a valid location";	
						document.search_terms_form.currentLocation.style.border = "1px solid red";
					}
					else {
						alert( "Please enter a valid location" );
					}		
					return false;
				}
				else
				if ( isValidSearchValue( terms ) && !isValidLocation( curLoc ) ) {		
					if ( data.cookiedLocation == true ) {
						addterms 	= ["N=0","searchVal=" + terms, "currentLocation=" + data.cookiedZip, "searchType=" + searchType,"Ns=P_PremiumPlacement" ];
						newurl 		= ConstructURL("CURRENTURL", removeterms, addterms);
						self.location = "/controller.jsp" + newurl;
					}
					else {
						if ( locationStatusEl != null ) {
							locationStatusEl.innerHTML = "Please enter a valid location";
							document.search_terms_form.currentLocation.style.border = "1px solid red";
						}
						else {
							alert( "Please enter a valid location" );
						}				
						return false;	
					}
				}
				else
				if ( !isValidSearchValue( terms ) && isValidLocation( curLoc ) ) {	
					if ( thirdParty ) {
						 alert( "Please enter a word or phrase to search for" );
					}
					else {
						self.location = "?currentLocation=" + encodeURI(data.city) + "," + data.state
					}
				}
				else {
					self.location = "/controller.jsp" + newurl;
				}
				
				return true;
			}
	    });			
	}
}

function isValidSearchValue( val ) {
	return val != null && val.length > 0 && val != defaultSearchval;
}

function isValidLocation( val ) {
	return val != null && val.length > 0 && val != defaultSearchLocation;
}
