$(document).ready(function() {
	
	$('.fancybox').fancybox();
	$('.dealer_details').click(function() {
					 $("#"+$(this).attr("rel")).slideToggle("slow");
	});					   
	$('.outboundLink').click(function(){   
			urchinTracker('/OutboundLinks/'+$(this).attr("href"));
		});
	$("#ctct_ea").click(function() {   
		if ($("#ctct_ea").val()=='Enter Your Email'){
			$("#ctct_ea").val('');  
		}
	});
	
	$(".rollover img").hover(
	 function()
	 {
	  this.src = this.src.replace("-off","-on");
	 },
	 function()
	 {
	  this.src = this.src.replace("-on","-off");
	 }
	);
	
	$("#checkout").click(function() {   
		$(".checkout").html('<img src="../images/ajax-checkout.gif" alt="Processing" border="0" />');   
	});
	$("#checkout-large").click(function() {   
		$(".checkout-large").html('<img src="../images/ajax-checkout-large.gif" alt="Processing" border="0" />');   
	});
	// Confirm Submit
	$('.confirm').click(function(){   
			var agree=confirm("This action can not be undone. Are you sure you want to continue?");
			if (agree)
				return true ;
			else
				return false ;
	});
	


});



function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.id; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }

function handleAJAXResponse() {
  if (http.readyState == 4) {
	//document.getElementById('overlayAJAXTxt').innerHTML = http.responseText;
	document.getElementById(divID).innerHTML = http.responseText;
	if (callBack == 'Y'){
		callBack = 'N';
		doStep0();
	}
  }
}


function getHTTPObject() {
  var xmlhttp;
  if (typeof XMLHttpRequest == 'undefined') {
  	XMLHttpRequest = function() { return new ActiveXObject('Microsoft.XMLHTTP') }
  }
  
  
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
	try {
	  xmlhttp = new XMLHttpRequest();
	} catch (e) {
	  xmlhttp = false;
	}
  }
  return xmlhttp;
}
var http;
http = getHTTPObject(); // We create the HTTP Object
var divID = "";
var callBack = 'N';

function loopSelected(selection)
{
  var selectedArray = new Array();
  var selObj = document.getElementById(selection);
  var i;
  var count = 0;
  for (i=0; i<selObj.options.length; i++) {
	if (selObj.options[i].selected) {
	  selectedArray[count] = selObj.options[i].value;
	  count++;
	}
  }
  return selectedArray;
}

function clearAJAXdiv(divID) {
	document.getElementById(divID).innerHTML = '';
}
function loadingAJAXdiv(divID) {
	document.getElementById(divID).innerHTML = '<div style="padding:2px; color:#919C51;"><img src="../images/ajax-loader.gif" align="middle" /> &nbsp;&nbsp; LOADING...</div>';
}

function doReset() {
	//alert("ajax_search.php?Step=Reset");
	divID = 'MakeBox';
	loadingAJAXdiv(divID);
	clearAJAXdiv('search_ajax');
	http.open("GET", "ajax_search.php?Step=Reset", true);
	http.onreadystatechange = handleAJAXResponse;
	http.send(null);

}

function getMakes() {
	CatID = loopSelected('CatID');
	if(CatID != "") {
		//alert("ajax_search.php?Step=GetMakes&CatID=" + escape(CatID));
		var selectedMake = $("#Make option:selected");        
    	var Make = selectedMake.val();  
		if(Make != "") {
			   doStep0();
			   return;
			   }
		divID = 'MakeBox';
		loadingAJAXdiv(divID);
		clearAJAXdiv('search_ajax');
		http.open("GET", "ajax_search.php?Step=GetMakes&CatID=" + escape(CatID), true);
		http.onreadystatechange = handleAJAXResponse;
		http.send(null);
  	 
  }

}

function doStep0() {
	CatID = loopSelected('CatID');
	if(CatID != "") {
		divID = 'search_ajax';
		loadingAJAXdiv(divID);
		$('.page_body').hide();
		http.open("GET", "ajax_search.php?Step=4&CatID=" + escape(CatID), true);
		http.onreadystatechange = handleAJAXResponse;
		http.send(null);
	}
}

function doStep1() {
	CatID = loopSelected('CatID');
	Make = loopSelected('Make');
  if(CatID != "" && Make != "") {
	  divID = 'search_ajax';
	  loadingAJAXdiv(divID);
	  http.open("GET", "ajax_search.php?Step=1&CatID=" + escape(CatID) +"&Make=" + escape(Make), true);
	  http.onreadystatechange = handleAJAXResponse;
	  http.send(null);
  }
}

function doStep2(){  
    var selectedYear = $("#Year option:selected");        
    var Year = selectedYear.val();  
	var selectedMake = $("#Make option:selected");        
    var Make = selectedMake.val(); 
	divID = 'ModelBox';
	if(Year != "") {
	  loadingAJAXdiv(divID);
	  http.open("GET", "ajax_search.php?Step=2&Year=" + escape(Year) +"&Make=" + escape(Make), true);
	  http.onreadystatechange = handleAJAXResponse;
	  http.send(null);
	}
	
} 

function doStep3(){  
    var selectedYear = $("#Year option:selected");        
    var Year = selectedYear.val();  
	var selectedMake = $("#Make option:selected");        
    var Make = selectedMake.val();
	var selectedModel = $("#Model option:selected");        
    var Model = selectedModel.val();
	divID = 'SubModelBox';
	if(Model != "") {
	  loadingAJAXdiv(divID);
	  http.open("GET", "ajax_search.php?Step=3&Model=" + escape(Model) +"&Year=" + escape(Year) +"&Make=" + escape(Make), true);
	  http.onreadystatechange = handleAJAXResponse;
	  http.send(null);
	}
	
} 

function doStep4() {
	var selectedYear = $("#Year option:selected");        
    var Year = selectedYear.val();  
	var selectedMake = $("#Make option:selected");        
    var Make = selectedMake.val();
	var selectedModel = $("#Model option:selected");        
    var Model = selectedModel.val();
	var selectedSubModel = $("#SubModel option:selected");        
    var SubModel = selectedSubModel.val();
	
	// Get VehID
	
	
	divID = 'MakeBox';
	loadingAJAXdiv(divID);
	http.open("GET", "ajax_search.php?Step=5&SubModel=" + escape(SubModel) +"&Model=" + escape(Model) +"&Year=" + escape(Year) +"&Make=" + escape(Make), true);
	http.onreadystatechange = handleAJAXResponse;
	http.send(null);
	
	callBack='Y';
	
	/*
	divID = 'search_ajax';
	loadingAJAXdiv(divID);
	http.open("GET", "ajax_search.php?Step=4&CatID=" + escape(CatID), true);
	http.onreadystatechange = handleAJAXResponse;
	http.send(null);
	*/
	
}
$('.confirm').click(function(){   
		var agree=confirm("This action can not be undone. Are you sure you want to continue?");
		if (agree)
			return true ;
		else
			return false ;
});
function reload_map(url_str)
{	
	//alert(url_str);
    iframe = document.getElementById('MapFrame'); 
	iframe.src = 'locater_map.php'+url_str;
}

function toggle_visibility(id) {
       var e = document.getElementById(id);
       if(e.style.display == 'block')
          e.style.display = 'none';
       else
          e.style.display = 'block';
    }
function toggle_Show(id) {
       var e = document.getElementById(id);
           e.style.display = 'block';
    }	
function toggle_Hidde(id) {
       var e = document.getElementById(id);
           e.style.display = 'none';
    }		

function IsNumber(input){
if ((input - 0) == input && input.length > 0 )
return true;
else
return false;
}

function checkLuhn(input){
if(!(IsNumber(input))) return false;

var sum = 0;
	var numdigits = input.length;
	var parity = numdigits % 2;
	for(var i=0; i < numdigits; i++){
		var digit = parseInt(input.charAt(i))
		if(i % 2 == parity) digit *= 2;
		if(digit > 9) digit -= 9; sum += digit;
	}

return (sum % 10) == 0;

}
function ship_validate(form) {
 var Error="";
 var re = /^[\w ]+$/; 
 
 if(form.FirstName.value == '') { Error=Error+"\nFirst Name is empty!" ;} 
 if(!re.test(form.FirstName.value)) {Error=Error+"\nFirst Name contains invalid characters!";}
 
 if(form.LastName.value == '') {Error=Error+"\nLast Name is empty!" ;} 
 if(!re.test(form.LastName.value)) {Error=Error+"\nLastName contains invalid characters!" ;} 
 if(form.StreetAddress.value == '') {Error=Error+"\nStreet Address is empty!" ;} 
 if(form.City.value == '') {Error=Error+"\nCity is empty!" ;}  
 if(form.PostCode.value == '') {Error=Error+"\nPost Code is empty!" ;} 
 if(form.State.value == '') {Error=Error+"\nState is empty!" ;} 


   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = document.getElementById("Email").value; 
   if(reg.test(address) == false) {
      Error=Error+'\nInvalid Email Address';
       
   }
 
  	var phone = document.getElementById("Phone").value; 
	var phoneNumberPattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;   
	if(phoneNumberPattern.test(phone)==false){
 		Error=Error+"\nInvalid Phone Number";
		 
 	}
 


	if (Error!="")
	{
		alert (Error);
		return false;
	}
	else
	return true;
}
  



function validate(form) {
 var Error="";
 var re = /^[\w ]+$/; 
 
 //if(form.FirstName.value == '') { Error=Error+"\nFirst Name is empty!" ;} 
 //if(!re.test(form.FirstName.value)) {Error=Error+"\nFirst Name contains invalid characters!";}
 
 //if(form.LastName.value == '') {Error=Error+"\nLast Name is empty!" ;} 
 //if(!re.test(form.LastName.value)) {Error=Error+"\nLastName contains invalid characters!" ;} 
 //if(form.StreetAddress.value == '') {Error=Error+"\nStreet Address is empty!" ;} 
 //if(form.City.value == '') {Error=Error+"\nCity is empty!" ;}  
 //if(form.PostCode.value == '') {Error=Error+"\nPost Code is empty!" ;} 
 //if(form.State.value == '') {Error=Error+"\nState is empty!" ;} 

  
 if(form.BillingisSame.checked == false)
{
 if(!re.test(form.B_FirstName.value)) {Error=Error+"\nBilling First Name contains invalid characters!";}
 if(form.B_LastName.value == '') {Error=Error+"\nBilling Last Name is empty!" ;} 
 if(!re.test(form.B_LastName.value)) {Error=Error+"\nBilling LastName contains invalid characters!" ;} 
 if(form.B_StreetAddress.value == '') {Error=Error+"\nBilling Street Address is empty!" ;} 
 if(form.B_City.value == '') {Error=Error+"\nBilling City is empty!" ;}  
 if(form.B_PostCode.value == '') {Error=Error+"\nBilling Post Code is empty!" ;} 
 if(form.B_State.value == '') {Error=Error+"\nBilling State is empty!" ;} 
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = document.getElementById("B_Email").value; 
   if(reg.test(address) == false) {
      Error=Error+'\nInvalid Billing Email Address';
       
   }
 
  	var phone = document.getElementById("B_Phone").value; 
	var phoneNumberPattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;   
	if(phoneNumberPattern.test(phone)==false){
 		Error=Error+"\nInvalid Billing Phone Number";
		 
 	} 


}
for (var i=0; i < form.credit_card_type.length; i++)
   {
   if ( form.credit_card_type[i].checked)
      {
      var rad_val =  form.credit_card_type[i].value;
	   
      }
   }

if(!(rad_val)) {Error=Error+"\ncredit card type is empty!" ;} 

if (Error=="" && form.credit_card_type[0].checked) {return true;}



if(form.cc_number.value == '') {Error=Error+"\nCard Number is empty!" ;}  
 
 
 if(form.expdate_month.value >12 || form.expdate_month.value <1 || !(IsNumber(form.expdate_month.value))) {Error=Error+"\nexpdate-month is wrong!" ;} 
 if(form.expdate_year.value <10 || !(IsNumber(form.expdate_year.value))) {Error=Error+"\nexpdate-year is wrong!" ;} 
 if(form.cvv2_number.value.length >4   || !(IsNumber(form.cvv2_number.value))) {Error=Error+"\ncvv2-number is wrong!" ;} 







 
if(!checkLuhn(form.cc_number.value.replace(/[^\d]/g, ''))) {
	 Error=Error+"\nInvalid Card number." ;
	  
 } 


	if (Error!="")
	{
		alert (Error);
		return false;
	}
	else
	return true;
}



