var menu_timer;

function RestoreMenu()
{
	clearTimeout( menu_timer );
}


function CloseMenuInit(id)
{
	menu_timer = setTimeout("CloseMenu("+id+")",700);
}

function CloseMenu(id)
{
	if (document.getElementById("sub_"+id))
		document.getElementById("sub_"+id).style.display = "none";
		
}

function ShowMenu(id)
{
	RestoreMenu();
	
	if (document.getElementById("sub_"+id))
		document.getElementById("sub_"+id).style.display = "";
}


function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   	if (sText=="") return false; 
	
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}
   return IsNumber;
}
   

function TireSearchByVehicle()
{
	var e_display = document.getElementById("error_display");
	var e_count = 0;
	if (document.getElementById("year").value=="")
	{	
		e_count++;
		document.getElementById("year_label").style.color = "red";
	} else 
	{
		document.getElementById("year_label").style.color = "#000";
	}
	
	if (document.getElementById("make").value=="")
	{
		e_count++;
		document.getElementById("make_label").style.color = "red";
	} else 
	{
		document.getElementById("make_label").style.color = "#000";
	}
	
	if (document.getElementById("model").value=="")
	{
		e_count++;
		document.getElementById("model_label").style.color = "red";
	} else 
	{
		document.getElementById("model_label").style.color = "#000";
	}

	
	if (e_count>0)
	{
		//e_display.innerHTML = "The red fields are required.";
		return false;
	} else 
	{
		//e_display.innerHTML = "";
		return true;
	}
}


function CheckProductVehicleSearch()
{
	var err_count = 0;
	if (document.getElementById("make_id").value=="")
	{
		err_count++;
		document.getElementById("make_id_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("make_id_arr").style.visibility = "hidden";
	}
	
	if (document.getElementById("model_id"))
	{
		if (document.getElementById("model_id").value=="")
		{
			err_count++;
			document.getElementById("model_id_arr").style.visibility = "visible";
		} else 
		{
			document.getElementById("model_id_arr").style.visibility = "hidden";
		}
	} else
	{
		err_count++;
		//document.getElementById("model_id_arr").style.visibility = "visible";
	}
	
	
	if (document.getElementById("year_id") )
	{
		if (document.getElementById("year_id").value=="")
		{
			err_count++;
			document.getElementById("year_id_arr").style.visibility = "visible";
		} else 
		{
			document.getElementById("year_id_arr").style.visibility = "hidden";
		}
	} else 
	{
		err_count++;
	//document.getElementById("year_id_arr").style.visibility = "visible";
	}
	
	
	if (err_count==0)
	{
		return true;
	} else 
	{
		return false;
	}
}


function TireSearchBySize()
{
	var e_display = document.getElementById("error_display");
	var e_count = 0;

	if (document.getElementById("width").value=="")
	{
		e_count++;
		document.getElementById("width_label").style.color = "red";
	} else 
	{
		document.getElementById("width_label").style.color = "#000";
	}
	
	if (document.getElementById("ratio").value=="")
	{
		e_count++;
		document.getElementById("ratio_label").style.color = "red";
	} else 
	{
		document.getElementById("ratio_label").style.color = "#000";
	}
	
	if (document.getElementById("diameter").value=="")
	{
		e_count++;
		document.getElementById("diameter_label").style.color = "red";
	} else 
	{
		document.getElementById("diameter_label").style.color = "#000";
	}
	
	
	
	if (e_count>0)
	{
		//e_display.innerHTML = "The red fields are required.";
		return false;
	} else 
	{
		//e_display.innerHTML = "";
		return true;
	}
}





/* HOMEPAGE TIRE SEARCH AJAX */

function GrabVehicleModels(make_name,model_name) {
	
	var ajaxRequest;  // The variable that makes Ajax possible!
	var ajaxDisplay = document.getElementById("models");
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			ajaxDisplay.innerHTML = ajaxRequest.responseText;
		}
	}
	var queryString = "?make_name="+make_name+"&model_name="+model_name;
	ajaxRequest.open("GET", "/global/ajax/products_grab_models.php" + queryString, true);
	ajaxRequest.send(null);
}


function SearchTiresByVehicle() {
	var make_id = document.getElementById("make_id").value;
	var model_id = document.getElementById("model_id").value;
	var err = "";
	
	if (make_id=="")
		err += "Please Select Vehicle Make\n";
		
	if (model_id=="")
		err += "Please Select Vehicle Model\n";
	
	if (err.length>0)
	{
		alert(err);
		return false;
	} else
	{
		return true;
	}
}

function GrabVehicleYear(make, model, yr)
{
		var ajaxRequest;  // The variable that makes Ajax possible!
	var ajaxDisplay = document.getElementById("years");
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			ajaxDisplay.innerHTML = ajaxRequest.responseText;
		}
	}
	var queryString = "?make_name="+make+"&model_name="+model+"&yr="+yr;
	ajaxRequest.open("GET", "/global/ajax/products_grab_years.php" + queryString, true);
	ajaxRequest.send(null);
}

function NarrowSearch(s)
{
	if (s!='')
		document.narrow_tire_size.submit();
}


function CheckStoreLogin()
{
	document.getElementById("overlay_cotent_box").innerHTML = "Email and Password are required.";
	$("#overlay_cotent_box").fadeIn("slow");
	
	return false;
}

function CheckDealer() 
{
	var zip = document.getElementById('zip').value;
	if (zip == '')
	{
		alert("Please provide a Zip Code.");
	} else
	{
		document.getElementById('zip_search').submit();
	}
}

var zip_pass = "no";

function ShowZipBox()
{
	$("#overlay_content_box").fadeIn("slow");
}



function CheckVehicleZip()
{
	if (IsZip(document.getElementById("vehicle_zip_code").value))
	{
		document.getElementById("vehicle_search_zip").value = document.getElementById("vehicle_zip_code").value;
		zip_pass = "yes";
		
		document.search_by_vehicle.submit();
	}
}



function IsZip(field) 
{
	var valid = "0123456789-";
	var hyphencount = 0;
	
	if (field.length!=5 && field.length!=10) 
	{
		alert("Please enter your 5 digit or 5 digit+4 zip code.");
		return false;
	}
	
	for (var i=0; i < field.length; i++) 
	{
		temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") 
		{
			alert("Invalid characters in your zip code.  Please try again.");
			return false;
		}
		
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) 
		{
			alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
			return false;
		}
	}
	
	//
	
	return true;
}



function CheckVehicleSearch()
{
	var form_err = "";
	
	if (document.getElementById("make_id").value=="") 
	{
		form_err += "    Choose a Make\n";
	}
	
	if (document.getElementById("model_id"))
	{
		if (document.getElementById("model_id").value=="") 
			form_err += "    Choose a Model\n";
	} else 
	{
		form_err += "    Choose a Model\n";
	}
	
	if (document.getElementById("year_id"))
	{
		if (document.getElementById("year_id").value=="") 
			form_err += "    Choose a Year\n";
	} else 
	{
		form_err += "    Choose a Year\n";
	}
	
	if (form_err!="")
	{
		alert("Fix the following to continue:\n\n"+form_err);
		return false;
	} else
	{
		
			return true;
		
	}
}






function QuickInfo(tid,sel_size,toi)
{
	var ajaxRequest;  // The variable that makes Ajax possible!
	var ajaxDisplay = document.getElementById("tire_detail_pop");
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			ajaxDisplay.innerHTML = ajaxRequest.responseText;
			$("#tire_detail_pop").fadeIn("slow");
			
			QuickInfoGrabSpec(tid,sel_size,toi);
		}
	}
	var queryString = "?tid="+tid+"&sz="+sel_size+"&toi="+toi
	ajaxRequest.open("GET", "/global/ajax/tire_quick_info.php" + queryString, true);
	ajaxRequest.send(null);
}

function QuickInfoGrabSpec(tid,sz,toi)
{
	var ajaxRequest;  // The variable that makes Ajax possible!
	var ajaxDisplay = document.getElementById("tire_quick_spec");
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			ajaxDisplay.innerHTML = ajaxRequest.responseText;
			
			
		}
	}
	var queryString = "?tid="+tid+"&sz="+sz+"&toi="+toi;
	ajaxRequest.open("GET", "/global/ajax/tire_quick_info_spec.php" + queryString, true);
	ajaxRequest.send(null);
}



function QuickInfo_Close()
{
	$("#tire_detail_pop").fadeOut("fast");
}


function ProductRequestQuote()
{
	$("#tire_request_quote").fadeIn("slow");
}


function ProductRequestQuote_Close()
{
	$("#tire_request_quote").fadeOut("slow");
}




function CheckQuickRFQ()
{
	var err = "";
	if (document.getElementById("zip_code"))
	{
		if (!IsNumeric(document.getElementById("zip_code").value))
		{
			err += "    Zip Code\n";
		}
	}
	
	if (document.getElementById("tire_size").value=="")
	{
		err += "    Tire Size\n";
	}
	
	if (!IsNumeric(document.getElementById("quantity").value))
	{
		err += "    Quantity\n";
	}
	
	if (err!="")
	{
		alert("These fields are required to continue:\n\n"+err);
		return false;
	} else 
	{
		return true;
	}
	
}


function CheckQuote()
{
	var err_count = 0;
	if (document.getElementById("first_name").value=="")
	{
		err_count++;
		document.getElementById("first_name_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("first_name_arr").style.visibility = "hidden";
	}
	
	if (document.getElementById("last_name").value=="")
	{
		err_count++;
		document.getElementById("last_name_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("last_name_arr").style.visibility = "hidden";
	}
	
	
	if (document.getElementById("email").value=="")
	{
		err_count++;
		document.getElementById("email_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("email_arr").style.visibility = "hidden";
	}
	
	if (document.getElementById("phone_num").value=="")
	{
		err_count++;
		document.getElementById("phone_num_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("phone_num_arr").style.visibility = "hidden";
	}
	
	if (document.getElementById("address").value=="")
	{
		err_count++;
		document.getElementById("address_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("address_arr").style.visibility = "hidden";
	}
	
	if (document.getElementById("city").value=="")
	{
		err_count++;
		document.getElementById("city_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("city_arr").style.visibility = "hidden";
	}
	
	if (document.getElementById("state").value=="")
	{
		err_count++;
		document.getElementById("state_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("state_arr").style.visibility = "hidden";
	}
	
	if (document.getElementById("zip_code").value=="")
	{
		err_count++;
		document.getElementById("zip_code_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("zip_code_arr").style.visibility = "hidden";
	}
	
	
	
	if (document.getElementById("make_id").value=="")
	{
		err_count++;
		document.getElementById("make_id_arr").style.visibility = "visible";
	} else 
	{
		document.getElementById("make_id_arr").style.visibility = "hidden";
	}
	
	if (document.getElementById("model_id"))
	{
		if (document.getElementById("model_id").value=="")
		{
			err_count++;
			document.getElementById("model_id_arr").style.visibility = "visible";
		} else 
		{
			document.getElementById("model_id_arr").style.visibility = "hidden";
		}
	} else
	{
		err_count++;
		document.getElementById("model_id_arr").style.visibility = "visible";
	}
	
	
	if (document.getElementById("year_id") )
	{
		if (document.getElementById("year_id").value=="")
		{
			err_count++;
			document.getElementById("year_id_arr").style.visibility = "visible";
		} else 
		{
			document.getElementById("year_id_arr").style.visibility = "hidden";
		}
	} else 
	{
		err_count++;
		document.getElementById("year_id_arr").style.visibility = "visible";
	}
	
	
	if (err_count==0)
	{
		return true;
	} else 
	{
		return false;
	}
}


function QuoteRemoveItem(qiid)
{
	if ( confirm("Are you sure you want to remove this tire?") )
	{
		var ajaxRequest;  // The variable that makes Ajax possible!
		var ajaxDisplay = document.getElementById("row_"+qiid);
		
		try{
			// Opera 8.0+, Firefox, Safari
			ajaxRequest = new XMLHttpRequest();
		} catch (e){
			// Internet Explorer Browsers
			try{
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try{
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e){
					// Something went wrong
					alert("Your browser broke!");
					return false;
				}
			}
		}
		
		// Create a function that will receive data sent from the server
		ajaxRequest.onreadystatechange = function(){
			if(ajaxRequest.readyState == 4)
			{
				$("#row_"+qiid).fadeOut("slow");
			}
		}
		var queryString = "?qiid="+qiid;
		ajaxRequest.open("GET", "/global/ajax/quote_remove_item.php" + queryString, true);
		ajaxRequest.send(null);
	}
}



function QuoteUpdateItem(qiid)
{
		var ajaxRequest;  // The variable that makes Ajax possible!
		var qty_new = document.getElementById("qty_"+qiid).value;
		
		if (qty_new=="")
		{
			alert("Please enter a number to continue.");
		} else 
		{
			try{
				// Opera 8.0+, Firefox, Safari
				ajaxRequest = new XMLHttpRequest();
			} catch (e){
				// Internet Explorer Browsers
				try{
					ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try{
						ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e){
						// Something went wrong
						alert("Your browser broke!");
						return false;
					}
				}
			}
			
			// Create a function that will receive data sent from the server
			ajaxRequest.onreadystatechange = function(){
				if(ajaxRequest.readyState == 4)
				{
					//$("#row_"+qiid).fadeOut("slow");
				}
			}
			var queryString = "?qiid="+qiid+"&qty="+qty_new;
			ajaxRequest.open("GET", "/global/ajax/quote_update_item.php" + queryString, true);
			ajaxRequest.send(null);
		}
}


function DealerContact()
{
	var e_display = document.getElementById("error_display");
	var e_count = 0;
	
	if (document.getElementById("name").value=="")
	{	
		e_count++;
		document.getElementById("name_label").style.color = "red";
	} else 
	{
		document.getElementById("name_label").style.color = "#000";
	}

		if (document.getElementById("email").value=="")
	{	
		e_count++;
		document.getElementById("email_label").style.color = "red";
	} else 
	{
		document.getElementById("email_label").style.color = "#000";
	}
	
	if (e_count>0)
	{
		//e_display.innerHTML = "The red fields are required.";
		return false;
	} else 
	{
		//e_display.innerHTML = "";
		return true;
	}
}



function QuoteUpdateZip(val)
{
	var html = '<input type="Text" style="font-size: 8pt;width: 40px;" id="new_zip" value="'+val+'" />';
	html+= '&nbsp;<a href="javascript: QuoteUpdateZipSave();">Update Zip Code</a>';
	document.getElementById('zip_code_edit').innerHTML = html;
	
}	




function QuoteUpdateZipSave()
{
	var ajaxRequest;  // The variable that makes Ajax possible!
	var zip_new = document.getElementById("new_zip").value;
	var html = "";
	if (IsZip(zip_new))
	{
		html = '<strong>'+zip_new+'</strong>&nbsp;<a href="javascript: QuoteUpdateZip('+zip_new+');">Change Zip Code</a>';
			
		try{
			// Opera 8.0+, Firefox, Safari
			ajaxRequest = new XMLHttpRequest();
		} catch (e){
			// Internet Explorer Browsers
			try{
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try{
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e){
					// Something went wrong
					alert("Your browser broke!");
					return false;
				}
			}
		}
		
		// Create a function that will receive data sent from the server
		ajaxRequest.onreadystatechange = function(){
			if(ajaxRequest.readyState == 4)
			{
				document.getElementById('zip_code_edit').innerHTML = html;
				QuoteLoadDealers('less');
			}
		}
		var queryString = "?nzip="+zip_new;
		ajaxRequest.open("GET", "/global/ajax/quote_update_zip.php" + queryString, true);
		ajaxRequest.send(null);
	}
}




function QuoteLoadDealers(more)
{
	var ajaxRequest;  // The variable that makes Ajax possible!
	var dealer_html = document.getElementById("quote_dealers");
	var qmore = "";
	dealer_html.innerHTML  = '<p align="center"><img src="/global/images/ajax_loading.gif" /></p>';
	if (more=='more') qmore = "?more=yes";
		
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4)
		{
			dealer_html.innerHTML = ajaxRequest.responseText;
		}
	}
	var queryString = qmore;
	ajaxRequest.open("GET", "/global/ajax/quote_grab_dealers.php" + queryString, true);
	ajaxRequest.send(null);
}


	var listMenu = new FSMenu('listMenu', true, 'display', 'block', 'none');
	listMenu.animations[listMenu.animations.length] = FSMenu.animFade;
	listMenu.animations[listMenu.animations.length] = FSMenu.animSwipeDown;
	var arrow = null;
	if (document.createElement && document.documentElement)
	{
	 arrow = document.createElement('span');
	 arrow.appendChild(document.createTextNode('>'));
	
	 arrow.className = 'subind';
	}
	addEvent(window, 'load', new Function('listMenu.activateMenu("listMenuRoot", arrow)'));
	addEvent(listMenu, 'show', function(mN) { this.ieSelBoxFixShow(mN) }, 1);
	addEvent(listMenu, 'hide', function(mN) { this.ieSelBoxFixHide(mN) }, 1);

  function validateForm() {
      var err = '';

      if (document.getElementById('first_name').value == '') {
      err += 'Please provide a first name\n';
      }
      if (document.getElementById('last_name').value == '') {
      err += 'Please provide a last name\n';
      }
      if (document.getElementById('email').value == '') {
      err += 'Please provide an email address\n';
      }
      if (document.getElementById('comments').value == '') {
      err += 'Please provide your comments\n';
      }

      if (err == '') {
      return true;
      } else {
      alert(err);
      return false;
      }
  }

  function CheckForm() {
	var error_occured = "no";
	
	var first_name = document.getElementById("first_name").value;
	var last_name = document.getElementById("last_name").value;
	var email = document.getElementById("email").value;
	var email2 = document.getElementById("email2").value;
	var password = document.getElementById("password").value;
	var password2 = document.getElementById("password2").value;
	
	//first name
	if (first_name=="") {
		document.getElementById("first_name_err").className="bold_error_11px";
		document.getElementById("first_name_arr").style.visibility = "visible";
		
		if (error_occured!="yes") {
			error_occured = "yes";
			document.getElementById("first_name").focus();
		}
	}
	
	//last name
	if (last_name=="") {
		document.getElementById("last_name_err").className="bold_error_11px";
		document.getElementById("last_name_arr").style.visibility = "visible";
		
		if (error_occured!="yes") {
			error_occured = "yes";
			document.getElementById("last_name").focus();
		}
	}
	
	//email
	if (email=="") {
		document.getElementById("email_err").className="bold_error_11px";
		document.getElementById("email_arr").style.visibility = "visible";
		
		if (error_occured!="yes") {
			error_occured = "yes";
			document.getElementById("email").focus();
		}
	}
	
	//email2
	if (email2=="") {
		document.getElementById("email2_err").className="bold_error_11px";
		document.getElementById("email2_arr").style.visibility = "visible";
		
		if (error_occured!="yes") {
			error_occured = "yes";
			document.getElementById("email2").focus();
		}
	}
	
	//password
	if (password=="") {
		document.getElementById("password_err").className="bold_error_11px";
		document.getElementById("password_arr").style.visibility = "visible";
		
		if (error_occured!="yes") {
			error_occured = "yes";
			document.getElementById("password").focus();
		}
	}
	
	//password2
	if (password2=="") {
		document.getElementById("password2_err").className="bold_error_11px";
		document.getElementById("password2_arr").style.visibility = "visible";
		
		if (error_occured!="yes") {
			error_occured = "yes";
			document.getElementById("password2").focus();
		}
	}
	
	if (error_occured=='yes')
		return false;
		
}



function CheckSearch()
{
	if (document.getElementById("search_field").value=="")
	{
		alert("Please enter a search term to continue");
		return false;
	} else
	{
		return true;
	}
}