$(document).ready(function() { 

	$("#nav-explore a").attr('alt',$.validator.messages.ExploreHelp);
	$("#nav-explore a").mouseover(function(e) {		
		var sizeofTooltip = (($(this).attr('alt').length < 200 ) ? ($(this).attr('alt').indexOf("img") > 0 ? '300px' : '180px') : ('300px'));
		$("div.tooltip_explore_widget").show().css({
			position:'absolute',
			top: (e.pageY-30)+'px',
			left:(e.pageX+20)+'px',
			width: sizeofTooltip
		}).children('span').eq(0).html($(this).attr('alt').split('\n').join('<br />'));
		if(sizeofTooltip!="180px") {
			$("div.tooltip_explore_widget").show().css({
				top: (e.pageY-30)+'px'
			});
			
			$("div.tooltip_explore_widget span").find("div").css({
			width:"308px",
			'text-align':'center'
			});
		}
		return false;
	});
		
	$("#nav-explore a").mouseout(function(e) {				
		$("div.tooltip_explore_widget").hide();
		return false;
	});
	

$("#login_submit_button").click(function(){
		
		document.getElementById("error_msg_id_footer").innerHTML='';
		
		$.metadata.setType("attr", "validate");
		$("#frmLogin").validate({
		   rules:{
					emailaddress:{
						required:true,
						email:true
					}
				}
		});
		
		if (($("#frmLogin").valid())){				
			return login_submit_footer();
		}
		else{
			return false;
		}
	});
	
	$("#forgot_password_submit_button_footer").click(function(){		
		document.getElementById("forgot_password_error_msg_id_footer").innerHTML='';
		$.metadata.setType("attr", "validate");
		$("#frmForgotPassword").validate({
		   rules:{
				emailaddress:{
						required:true,
						email:true
					}
				}
		});
		
		if (($("#frmForgotPassword").valid()))
		{		
			return forgot_submit_footer();
		}
		else{
			return false;
		}
	});
	
	//Login Pop-Up
	$("#forgot_password_link").click(function() {		
		document.getElementById("login_header_text").innerHTML=$.validator.messages.footerForgotPasswordHeaderText;
		$("#frmLogin").hide();
		$("#frmForgotPassword").show();
		document.getElementById("error_msg_id_footer").innerHTML='';
		$("#emailaddres_footer").focus();
		return false;
	});
	
	$("#back_to_login").click(function() {
		document.getElementById("login_header_text").innerHTML=$.validator.messages.footerLoginHeaderText;
		$("#frmForgotPassword").hide();
		$("#frmLogin").show();
		document.getElementById("forgot_password_error_msg_id_footer").innerHTML='';
		$("#emailaddress_footer").focus();
		return false;
	});
	$("#view_login_panel").click(function() {
		document.getElementById("login_header_text").innerHTML=$.validator.messages.footerLoginHeaderText;	
		$("#frmLogin").show();
		$("#thankyou_panel").hide();
		return false;
	});
	$("#login_popup_overlay_link").click(function() {
		$("#frmForgotPassword").hide();
		$("#thankyou_panel").hide();
		$("#frmLogin").show();
		document.getElementById("error_msg_id_footer").innerHTML=' ';
		document.getElementById("login_header_text").innerHTML=$.validator.messages.footerLoginHeaderText;
		//$('#frmLogin')[0].reset();$('#frmForgotPassword')[0].reset();
		return false;
	});
	$("#emailaddres_footer").keypress(function(e){
		$("#forgot_password_error_msg_id_footer").css("display","none");		
	});
	$("#emailaddress_footer").keypress(function(e){
		$("#error_msg_id_footer").css("display","none");		
	});
	
});
		
		var fromLgn_footer = false;

        function login_submit_footer()
		{			
			var Email = document.getElementById("emailaddress_footer").value;			
			var Password = document.getElementById("password_footer").value;
			fromLgn_footer = true;
			var loginStatus = false;
	        var CompleteUrl = footeruri+"?emailaddress="+escape(Email)+"&password="+escape(Password)+"&login="+fromLgn_footer+"&Action_Value=true&isAjax=true";
					  
			$.ajax({
			type: "GET",
				async: false,
				cache: false,
				timeout: 30000,
				url: CompleteUrl ,
			dataType: "xml",
			success: function(xml)
			{ 			
			loginStatus = parse_footer_xml(xml); 
			}   			
			});			
			return loginStatus;
		}
		
		function parse_footer_xml(result)
		{  	
			var statusMessage;
			var loginForgot = result.getElementsByTagName("LoginAndForgot");
					
				statusMessage = loginForgot[0].childNodes[0].nodeValue;		
				var error_div=document.getElementById("error_msg_id_footer");
				error_div.style.display='block';
				if(statusMessage == 'true')
				{		
					error_div.style.display='none';
					statusMessage = "";
				}
				error_div.innerHTML=statusMessage;
			
			if(statusMessage.length == 0)
			{				
					return true;
			}
			else
			{
				return false;
			}		
		}

	function forgot_submit_footer()
	{	
			fromLgn_footer = false;
			var Email = document.getElementById("emailaddres_footer").value;
			var CompleteUrl = footeruri+"?emailaddress="+escape(Email)+"&login="+fromLgn_footer+"&Action_Value=true&isAjax=true";
			var loginStatus;

				$.ajax({
						type: "GET",
							async: false,
							cache: false,
							timeout: 30000,
							url: CompleteUrl ,
						dataType: "xml",
						success: function(xml)
						{
						loginStatus = parse_footer_xml_1(xml); 
						}
						});

					return loginStatus;
	}
			function parse_footer_xml_1(result)
			{
						var statusMessage;
						var loginForgot = result.getElementsByTagName("LoginAndForgot");
					
						//try{
							statusMessage = loginForgot[0].childNodes[0].nodeValue;		
							var error_div=document.getElementById("forgot_password_error_msg_id_footer");
							error_div.style.display='block';
							if(statusMessage == 'true')
							{		
								error_div.style.display='none';
								statusMessage = "";
							}
							error_div.innerHTML=statusMessage ;				
						//}
						//catch(e)
						//{
						//	alert(e);
						//}
						if(statusMessage.length == 0)
						{				
							document.getElementById("thankyou_panel").style.display = 'block';
							document.getElementById("frmForgotPassword").style.display = 'none';
							return false;
						}
						else
						{
							document.getElementById("thankyou_panel").style.display = 'none';
							document.getElementById("frmForgotPassword").style.display = 'block';
							return false;
						}
			}
			
			function Enter_Pressed_For_Forgot_Password()
			{
				if(event.keyCode == 13 )
				{
					var forgot_password_status = login_submit_footer();
					if(forgot_password_status)
					{
						document.frmForgotPassword.submit();
					}	
					return forgot_submit_footer();  
				}
			}
			function Enter_Pressed_For_Login()
			{				
				if(event.keyCode == 13 )
				{					
					var login_status = login_submit_footer();					
					if(login_status)
					{
						document.frmLogin.submit();
					}					
					return login_status;  
				}
			}	  
	  
	function checkBrowser(){
		//alert("entered here");
		var browser = navigator.appName
		var ver = navigator.appVersion
		var thestart = parseFloat(ver.indexOf("MSIE"))+1;
		var brow_ver = parseFloat(ver.substring(thestart+4,thestart+7));
		if ((browser=="Microsoft Internet Explorer") && (brow_ver <= 6))
		{
			redirectURL="/ie6.page";				
			window.location.href = redirectURL;					
			//window.location="http://www.yourdomain.com/redirectfile.html";
		}
	}
var redirectURL;
var brandline;
var isValidated = false;	

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();
	}
	
	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 
					document.getElementById("findDealerLoader").style.display="block";
					document.getElementById("searchHeaderGoButton").style.display="none";
					
					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'){
						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($.validator.messages.dealerLocatorErrorMessage);
						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($.validator.messages.dealerLocatorErrorMessage);
						return false;
					}else if(pageName == 'quicklinks'){
						$("#search_address_error_message_quicklinks").show();
						$("#search_address_error_message_quicklinks").html($.validator.messages.dealerLocatorErrorMessage);
						return false;
					}else if(pageName == 'tireDetail'){
						$("#search_address_error_message_tire_results").show();
						$("#search_address_error_message_tire_results").html($.validator.messages.dealerLocatorErrorMessage);
						return false;
					}
				}
			});		
		}
	}
}


function logout_submit_footer()
{	
	document.frmLogin.submit();  
}

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 validateSearchAddress(address){
	var tempAddress = trim(address);
	address = tempAddress;
	if("" == address || null == address){
		return false;
	}
	else{
		return true;
	}
}
// remove multiple, leading or trailing spaces
function trim(s) {
	s = s.replace(/(^\s*)|(\s*$)/gi,"");
	s = s.replace(/[ ]{2,}/gi," ");
	s = s.replace(/\n /,"\n");
	return s;
}
function disableHeaderFormSubmit(event){
	$("#search_address_error_message_header").hide();
	if ( event.keyCode == 13 ){	
		getLatLaong('search_address_header','range_header', 'latitude_header','longitude_header','searchFormHeader', 'header');		
		event.returnValue=false; 
		return false;
	}
}
function disableFormSubmitFromQuickLinks(event){
	$("#search_address_error_message_quicklinks").hide();
	if ( event.keyCode == 13 ){	
		getLatLaong('search_address_quicklink', 'range_quicklink', 'latitude_quicklink', 'longitude_quicklink', 'searchForm_QL' , 'quicklinks');		
		event.returnValue=false; 
		return false;
	}
}

function disableFormSubmitFromTireResults(event){	
	$("#search_address_error_message_tire_results").hide();
	if ( event.keyCode == 13 ){	
		getLatLaongTS();
		event.returnValue=false; 
		return false;
	}
	
}

function disableFormSubmitFromTirDetail(event, searchTypeDL){	
	$("#search_address_error_message_tire_results").hide();
	if ( event.keyCode == 13 ){	
		if('vehicle' != searchTypeDL){
			getLatLaong('search_address_TS','range_TS','latitude_TS','longitude_TS','searchForm_TS','tireDetail');
		}else if('vehicle' == searchTypeDL){
			getLatLaongTS();
		}
		event.returnValue=false; 
		return false;
	}
	
}

