function getLatLaong(addressField, radiusField, latitudeField, longitudeField, formName, pageName){
	var latitude;
	var longitude;
	var radius;
	var geocoder = null;
	var isTireDetail = null;
	var search_address = document.getElementById(addressField).value;
	isValidated = validateSearchAddress(search_address);
	if(pageName == 'dealer locator'){
		$("#search_address_error_message").hide();
	}else if(pageName == 'header'){
		$("#search_address_error_message_header").hide();
	}else if(pageName == 'quicklinks'){
		$("#search_address_error_message_quicklinks").hide();
	}else if(pageName == 'tireDetail'){
		$("#search_address_error_message_tire_results").hide();
	}else if(pageName == 'home'){
		$("#search_address_error_message_homepage").hide();
	}
	
	if(isValidated == false){
		$.metadata.setType("attr", "validate");		
		$("#"+formName).validate({
		   
		});		
		if (($("#"+formName).valid()))
		{			
			return true;
		}
	}else if(isValidated == true){
		if( null != document.getElementById(radiusField) ){
			radius = document.getElementById(radiusField).value;
		}	
		geocoder = new google.maps.Geocoder();
		if (geocoder) {
			geocoder.geocode( {'address' : search_address}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					latitude = results[0].geometry.location.lat();
					longitude = results[0].geometry.location.lng();
					document.getElementById(latitudeField).value = latitude;
					document.getElementById(longitudeField).value = longitude;
					var formattedAddress = results[0].formatted_address;
					// document.getElementById(addressField).value = formattedAddress; // commented for artf1237447
					var zipcode = "";
					for(var i=0; i < results.length; i++){
							for(var j=0;j < results[i].address_components.length; j++){
								for(var k=0; k < results[i].address_components[j].types.length; k++){
									if(results[i].address_components[j].types[k] == "postal_code"){
										zipcode = results[i].address_components[j].short_name;
									}
								if(zipcode != ""){
									if (document.getElementById('dl_postal_code') != null){
										document.getElementById('dl_postal_code').value = zipcode;
									}
									break;
								}
								}
							}
					}
					
					if(document.getElementById("finddealerajaxloadercategory")!=undefined)
					{
						document.getElementById("finddealerajaxloadercategory").style.display="block";
						document.getElementById("find_dealer_submit_disable").style.display="block";
						document.getElementById("search_dropdowns_submit").style.display="none";
					}
					if(document.getElementById("dealerlocatorsearch")!=undefined)
					{
						document.getElementById("dealerlocatorsearch").style.display="none";
						document.getElementById("dealerlocatorsearchdisabled").style.display="block";
					}
					if(document.getElementById("dealerlocatorsearchTS")!=undefined)
					{
						document.getElementById("dealerlocatorsearchTS").style.display="none";
						document.getElementById("dealerlocatorsearchdisabledTS").style.display="block";
					}
					if(pageName == 'dealer locator'){
						document.getElementById(formName).submit();
					}else if(pageName == 'header' || pageName == 'quicklinks' || pageName == 'home'){
						isTireDetail = false;
						isYMMOSearch = false;
						redirectURL = "/dealer-locator/dealer-locator.page?stringRadius="+radius+"&searchAddress="+search_address+"&latitude="+latitude+"&longitude="+longitude+"&isTireDetail="+isTireDetail+"&isYMMOSearch="+isYMMOSearch+"&dl_postal_code="+zipcode;
						document.getElementById(formName).action=redirectURL;
						document.getElementById(formName).submit();
					}else if(pageName == 'tireDetail'){
						brandline = document.getElementById("hiddenTireLineID").value;
						var tireLegalName = document.getElementById("hiddenTireLegalName").value;
						isTireDetail = true;
						redirectURL = "/dealer-locator/dealer-locator.page?stringRadius="+radius+"&searchAddress="+search_address+"&latitude="+latitude+"&longitude="+longitude+"&brandLineCode="+brandline + "&tireName=" + tireLegalName + "&isTireDetail=" + isTireDetail+"&dl_postal_code="+zipcode;
						document.getElementById(formName).action=redirectURL;
						document.getElementById(formName).submit();	
					}else if(pageName == 'mobile'){
						document.getElementById("searchAddress").value = search_address;
						redirectURL = "/dealer-locator/dealer-locator.page";						
						document.getElementById(formName).action=redirectURL;
						document.getElementById(formName).submit();	
					}
					
				} else if(status == google.maps.GeocoderStatus.ZERO_RESULTS || status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT || status == google.maps.		GeocoderStatus.REQUEST_DENIED|| status == google.maps.GeocoderStatus.INVALID_REQUEST ){
					if(pageName == 'dealer locator'){
						$("#search_address_error_message").show();
						$("#search_address_error_message").html("Error: Could not find your searched location. Please try again.");
						return false;
					}else if(pageName == 'header'){
						$("#search_address_error_message_header").css({"display":"block","clear":"both","text-align":"left"});
						$("#search_address_error_message_header").html("Error: Could not find your searched location. Please try again.");
						return false;
					}else if(pageName == 'quicklinks'){
						$("#search_address_error_message_quicklinks").show();
						$("#search_address_error_message_quicklinks").html("Error: Could not find your searched location. Please try again.");
						return false;
					}else if(pageName == 'home'){
						$("#search_address_error_message_homepage").show();
						$(".mi-dealerLocator").addClass("mi_dealerLocator_error");
						$("#search_address_error_message_homepage").html("Error: Could not find your searched location. Please try again.");
						return false;
					}else if(pageName == 'tireDetail'){
						$("#search_address_error_message_tire_results").show();
						$("#search_address_error_message_tire_results").html("Error: Could not find your searched location. Please try again.");
						return false;
					}
				}
			});		
		}
	}
}
	
function validateSearchAddress(address){
	var tempAddress = trim(address);
	address = tempAddress;
	if("" == address || null == address){
		return false;
	}
	else{
		return true;
	}
}

function trim(s) {
	s = s.replace(/(^\s*)|(\s*$)/gi,"");
	s = s.replace(/[ ]{2,}/gi," ");
	s = s.replace(/\n /,"\n");
	return s;
}

function getLatLaongTS(){
	
	var geocoder;	 
	var search_address;
	var stringRadius;
	var latitude;
	var longitude;
	var isYMMOSearch = true;
	year = document.getElementById("yearVal").value;
	make = document.getElementById("makeVal").value;
	model = document.getElementById("modelVal").value;
	options = document.getElementById("optionVal").value;	
	search_address = document.getElementById("search_address_TS").value;
	stringRadius = document.getElementById("range_TS").value;
	isValidated = validateSearchAddress(search_address);
	$("#search_address_error_message_tire_results").hide();
	if(isValidated == false){
		$.metadata.setType("attr", "validate");		
		$("#searchForm_TS").validate({
		   
		});		
		if (($("#searchForm_TS").valid()))
		{			
			return true;
		}
	}else if(isValidated == true){
		geocoder = new google.maps.Geocoder();
		if (geocoder) {
			geocoder.geocode( {'address' : search_address}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					if(document.getElementById("dealerlocatorsearchTS")!=undefined)
					{
						document.getElementById("dealerlocatorsearchTS").style.display="none";
						document.getElementById("dealerlocatorsearchdisabledTS").style.display="block";
					}
					latitude = results[0].geometry.location.lat();
					longitude = results[0].geometry.location.lng();
					document.getElementById("latitude_TS").value = latitude;
					document.getElementById("longitude_TS").value = longitude;
					var zipcode = "";
					for(var i=0; i < results.length; i++){
							for(var j=0;j < results[i].address_components.length; j++){
								for(var k=0; k < results[i].address_components[j].types.length; k++){
									if(results[i].address_components[j].types[k] == "postal_code"){
										zipcode = results[i].address_components[j].short_name;
									}
								if(zipcode != null || zipcode != ""){
									if (document.getElementById('dl_postal_code') != null){
										document.getElementById('dl_postal_code').value = zipcode;
									}
									break;
								}
								}
							}
					}
					
					var formattedAddress = results[0].formatted_address;
					//document.getElementById("search_address_TS").value = formattedAddress; // commented for artf1237447
					brandline = document.getElementById("hiddenTireLineID").value;
					var tireLegalName = document.getElementById("hiddenTireLegalName").value;
					if("" != year || "" != make || "" != model || "" != options){
						redirectURL = "/dealer-locator/dealer-locator.page?stringRadius="+stringRadius+"&searchAddress="+search_address+"&latitude="+latitude+"&longitude="+longitude+"&brandLineCode="+brandline+"&year="+year+"&make=" + make + "&model="+model+"&options="+options + "&tireName=" + tireLegalName + "&isYMMOSearch=" + isYMMOSearch+"&dl_postal_code="+zipcode;
					}else{
						isYMMOSearch = false;
						redirectURL = "/dealer-locator/dealer-locator.page?stringRadius="+stringRadius+"&searchAddress="+search_address+"&latitude="+latitude+"&longitude="+longitude+"&brandLineCode="+brandline+"&isYMMOSearch=" + isYMMOSearch+"&dl_postal_code="+zipcode;
					}
					document.searchForm_TS.action=redirectURL
					document.searchForm_TS.submit();												
				} else if(status == google.maps.GeocoderStatus.ZERO_RESULTS || status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT || status == google.maps.		GeocoderStatus.REQUEST_DENIED|| status == google.maps.GeocoderStatus.INVALID_REQUEST ){
					$("#search_address_error_message_tire_results").show();
					$("#search_address_error_message_tire_results").html("Error: Could not find your searched location. Please try again.");
					return false;
				}
			});		
		}
	}
}

function getLatLaongTSRedirectURL(callback){
	var geocoder;	 
	var search_address;
	var stringRadius;
	var latitude;
	var longitude;
	var isYMMOSearch = true;
	year = document.getElementById("yearVal").value;
	make = document.getElementById("makeVal").value;
	model = document.getElementById("modelVal").value;
	options = document.getElementById("optionVal").value;	
	search_address = document.getElementById("search_address_TS").value;
	stringRadius = document.getElementById("range_TS").value;
	isValidated = validateSearchAddress(search_address);
	$("#search_address_error_message_tire_results").hide();
	var result = "";
	if(isValidated == false){
		$.metadata.setType("attr", "validate");		
		$("#searchForm_TS").validate({
		   
		});		
		if (($("#searchForm_TS").valid()))
		{			
			return true;
		}
	}else if(isValidated == true){
		geocoder = new google.maps.Geocoder();
		if (geocoder) {
			geocoder.geocode( {'address' : search_address}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					if(document.getElementById("dealerlocatorsearchTS")!=undefined)
					{
						document.getElementById("dealerlocatorsearchTS").style.display="none";
						document.getElementById("dealerlocatorsearchdisabledTS").style.display="block";
					}
					latitude = results[0].geometry.location.lat();
					longitude = results[0].geometry.location.lng();
					document.getElementById("latitude_TS").value = latitude;
					document.getElementById("longitude_TS").value = longitude;
					var zipcode = "";
					for(var i=0; i < results.length; i++){
							for(var j=0;j < results[i].address_components.length; j++){
								for(var k=0; k < results[i].address_components[j].types.length; k++){
									if(results[i].address_components[j].types[k] == "postal_code"){
										zipcode = results[i].address_components[j].short_name;
									}
								if(zipcode != null || zipcode != ""){
									if (document.getElementById('dl_postal_code') != null){
										document.getElementById('dl_postal_code').value = zipcode;
									}
									break;
								}
								}
							}
					}
					
					var formattedAddress = results[0].formatted_address;
					document.getElementById("search_address_TS").value = formattedAddress;
					brandline = document.getElementById("hiddenTireLineID").value;
					var tireLegalName = document.getElementById("hiddenTireLegalName").value;
	
					if("" != year || "" != make || "" != model || "" != options){
						result = "/dealer-locator/dealer-locator.page?stringRadius="+stringRadius+"&searchAddress="+search_address+"&latitude="+latitude+"&longitude="+longitude+"&brandLineCode="+brandline+"&year="+year+"&make=" + make + "&model="+model+"&options="+options + "&tireName=" + tireLegalName + "&isYMMOSearch=" + isYMMOSearch+"&dl_postal_code="+zipcode;
					}else{
						isYMMOSearch = false;
						result = "/dealer-locator/dealer-locator.page?stringRadius="+stringRadius+"&searchAddress="+search_address+"&latitude="+latitude+"&longitude="+longitude+"&brandLineCode="+brandline+"&isYMMOSearch=" + isYMMOSearch+"&dl_postal_code="+zipcode;
					}
					callback(result);
				} else if(status == google.maps.GeocoderStatus.ZERO_RESULTS || status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT || status == google.maps.		GeocoderStatus.REQUEST_DENIED|| status == google.maps.GeocoderStatus.INVALID_REQUEST ){
					result = false;
				}
			});
			return result;
		}
	}
}
