/****************************************************************************************************
Javascript functions preloadImages, swapImage, swapImgRestore, findObj - For image swapping
****************************************************************************************************/
function preloadImages() {
	var d = document;
	if(d.images) {
		if(!d.p) d.p = new Array();
		var i, j = d.p.length, a = preloadImages.arguments;
		for(i = 0; i < a.length; i++)
		if (a[i].indexOf("#") != 0) {
			d.p[j] = new Image;
			d.p[j++].src = a[i];
		}
	}
}

function swapImage() {
	var i, j = 0, x, a = swapImage.arguments;
	document.sr = new Array;
	for(i = 0; i < (a.length - 2); i += 3)
	if((x = findObj(a[i])) != null) {
		document.sr[j++] = x;
		if(!x.oSrc) x.oSrc = x.src;
		x.src = a[i + 2];
	}
}

function swapImgRestore() {
	var i, x, a = document.sr;
	for(i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function findObj(n,d) {
	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 = findObj(n, d.layers[i].document);
	if(!x && d.getElementById) x = d.getElementById(n);
	return x;
}

/****************************************************************************************************
Javascript function chkDate - Checks to determine valid date format of mm/dd/yyyy
****************************************************************************************************/
function chkDate(oField) {
	if (chkField(trim(oField.value), 1) == false) {
		return true;
	}
	else {
		var cDate = oField.value.replace(/[\W\D\s]/gi, ''); //delete all characters different from numbers
		if (cDate.length == 8) {
			var cMonth = cDate.substring(0,2); //month extraction
			var cDay = cDate.substring(2,4); //day extraction
			var cYear = cDate.substring(4); //year extraction
			if (cDay.match(/^([0-2]?\d|3[01])$/) &&	cMonth.match(/^(0?\d|1[0-2])$/)	&& cYear.match(/^[1-9]\d\d\d$/)) {
				oField.value = cMonth+'/'+cDay+'/'+cYear;
				return true;
			}
			else {
				alert('Please insert a valid date.');
				oField.focus();
				oField.select();
				return false;
			}
		}
		else {
			alert('Please enter date in mm/dd/yyyy format.');
			oField.focus();
			oField.select();
			return false;
		}
	}
}

/****************************************************************************************************
Javascript function chkField - Checks to determine valid length of value
****************************************************************************************************/
function chkField(field,reqlength) {
	if (eval(reqlength) > field.length) {
		return false;
	}
	else {
		return true;
	}
}

/****************************************************************************************************
Javascript function chkOption - Checks to determine valid option selected
****************************************************************************************************/
function chkOption(currOption) {
	if (currOption[currOption.selectedIndex].value == '0') {
		return false;
	}
	else {
		return true;
	}
}

/****************************************************************************************************
Javascript function disableGroup - Checks to determine radio buttons are to be disabled
****************************************************************************************************/
function disableGroup(formName,groupName,booleanDisabled) {
	for (var i=0; i<formName.elements.length; i++) {
		if (formName.elements[i].name == groupName) {
			formName.elements[i].disabled = booleanDisabled;
		}
	}
}

/****************************************************************************************************
Javascript function isValidIPAddress - Checks to determine valid IP address entered
****************************************************************************************************/
function isValidIPAddress(ipaddr) {
	var re = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
	if (re.test(ipaddr)) {
		var parts = ipaddr.split(".");
		if (parseInt(parseFloat(parts[0])) == 0) {
			return false;
		}
		for (var i=0; i<parts.length; i++) {
			if (parseInt(parseFloat(parts[i])) > 255) {
				return false;
			}
		}
		return true;
	}
	else {
		return false;
	}
}

/****************************************************************************************************
Javascript function redirectURL - Redirects page to new URL
****************************************************************************************************/
function redirectURL() {
	var url = document.redir.newurl[document.redir.newurl.selectedIndex].value;
	if (url) {
		document.location.href = url;
	}
}

/****************************************************************************************************
Javascript function textCounter - Counts down remaining characters left in text area
****************************************************************************************************/
function textCounter(field,countfield,maxlimit) {
	if (field.value.length > maxlimit) //if too long...trim it!
	field.value = field.value.substring(0, maxlimit);
	//otherwise, update 'characters left' counter
	else 
	countfield.value = maxlimit - field.value.length;
}

/****************************************************************************************************
Javascript function trim - Removes excessive spaces within a string
****************************************************************************************************/
function trim(s) {
	return String(s).replace(/^\s+|\s+$/g,"").replace(/\s+/g," ");
}

/****************************************************************************************************
Alfred's variable pop up window
****************************************************************************************************/

function variableWinScroll(url,winName,width,height,scrollbars){
var x = screen.width;
var y = screen.height;
var top = parseInt((y-height)/2);
var left = parseInt((x-width)/2);
var options="width="+width+",height="+height+",resizable=yes,toolbar=no,location=no,directories=no,status=no,scroll=yes,scrollbars="+scrollbars+",menubar=no,left="+left+",top="+top+""
var contentWin=window.open(url,winName,options);
contentWin.focus();

}

/****************************************************************************************************
Alfred's iframe redirect
****************************************************************************************************/


function getiframeUrl(var1){
document.frames[0].location = var1;
}

/****************************************************************************************************
Alfred's Dealer Locator javascript. 
Used on dealer_locator and home page.
****************************************************************************************************/



function searchCheck () {


  if(document.form1.zipcode.value.length == 0 ){
		alert ("Invalid zip code.  Please enter a five digit zip code.");
		return false;
	}


   if (document.form1.zipcode.value.length > 0 ) {
	if (document.form1.zipcode.value.length < 5) {
		alert ("Invalid zip code.  Please enter a five digit zip code.");
		return false;
	}
    }

	return true;
}

function searchCheck2() {


 if((form2.ZipCodeCanada.value.indexOf(' ') < 0) || (form2.ZipCodeCanada.value.length == 0 )){
		alert ("Invalid postal code format. Please remember to insert a space after the 3 character in the zip code.");
		return false;
	}


    document.form2.chkfield.value=1
	return true;
}

