// JavaScript Document
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function WriteLayer(ID,parentID,sText) {
	if (document.layers) {
		var oLayer = (parentID)? eval('document.' + parentID + '.document.' + ID + '.document') : document.layers[ID].document;
		oLayer.open();
		oLayer.write(sText);
		oLayer.close();
	}
	else if (document.all) {
		document.all[ID].innerHTML = sText;
	}
	else if (parseInt(navigator.appVersion) >= 5 && navigator.appName=="Netscape") {
		document.getElementById(ID).innerHTML = sText;
	}
}

function getBrowserWinSize () {
	var broswerWin = new Object();
	
	broswerWin.winWidth = 0;
	broswerWin.winHeight = 0;

	if(typeof( window.innerWidth ) == 'number') {
		//Non-IE
		broswerWin.winWidth = window.innerWidth;
		broswerWin.winHeight = window.innerHeight;
	}
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight )) {
		//IE 6+ in 'standards compliant mode'
		broswerWin.winWidth = document.documentElement.clientWidth;
		broswerWin.winHeight = document.documentElement.clientHeight;
	}
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		broswerWin.winWidth = document.body.clientWidth;
		broswerWin.winHeight = document.body.clientHeight;
	}
	
	return broswerWin;
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return {x:scrOfX, y:scrOfY};
}

function getElementPosition(elemID) {
    var offsetTrail = document.getElementById(elemID);
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    if (navigator.userAgent.indexOf("Mac") != -1 && 
        typeof document.body.leftMargin != "undefined") {
        offsetLeft += document.body.leftMargin;
        offsetTop += document.body.topMargin;
    }
    return {left:offsetLeft, top:offsetTop};
}

function openPopupWin(urlString,w,h) {
	var winHeight = h;
	var winWidth = w;
	var leftPos=(screen.width-winWidth)/2;
	var topPos=(screen.height-winHeight-100)/2;
	var popupWinUniqueName = "";
	var today = new Date();
	var currMonth = today.getMonth() + 1;
	
	popupWinUniqueName = "PopupWin" + today.getFullYear() + currMonth + today.getDate() + today.getHours() + today.getMinutes() + today.getSeconds();

	popupWin = window.open(urlString, popupWinUniqueName, "height="+winHeight+",width="+winWidth+",left="+leftPos+",top="+topPos+",resizable,scrollbars,toolbar");
	popupWin.focus();
}

function setTxtColor() {
	for(idxfrm = 0; idxfrm < window.document.forms.length; idxfrm++)
	{
		for(idx = 0; idx < window.document.forms[idxfrm].elements.length; idx++)
		{
			if(window.document.forms[idxfrm].elements[idx].type == "text" || window.document.forms[idxfrm].elements[idx].type== "password" || window.document.forms[idxfrm].elements[idx].type== "select")
			{
				var crtl = window.document.getElementById(window.document.forms[idxfrm].elements[idx].id);
				crtl.onfocus = SetColorOnFocus;
				crtl.onblur = ResetColorOnBlur;
				crtl.className = 'txtBox';
			}
		}
	}	
}

function trim(str) {
	return( (""+str).replace(/^\s*([\s\S]*\S+)\s*$|^\s*$/,'$1') );
}

function validateData(cond,layerID,errorTxt) {
	if (eval(cond)) {
		WriteLayer(layerID,null,errorTxt);
		return false;
	}
	else {
		WriteLayer(layerID,null,'');
		return true;
	}
}

function matchRowColHeight(maxRow,maxCol,idPre) {
	var divHeight = 0;
	var maxHeight = 0;
	var i = 0;
	var j = 0;
	
	if (maxRow > 0) {
		for (i=1; i<=maxRow; i++) {
			for (j=1; j<=maxCol; j++) {
				if (document.getElementById(idPre+j+'R'+i)) {
					divHeight = document.getElementById(idPre+j+'R'+i).offsetHeight;
				}
				else {
					divHeight = 0;	
				}
				
				maxHeight = Math.max(maxHeight,divHeight);
			}
			
			for (j=1; j<=maxCol; j++) {
				if (document.getElementById(idPre+j+'R'+i)) {
					document.getElementById(idPre+j+'R'+i).style.height = maxHeight + "px";
				}
			}
			maxHeight = 0;
		}
	}
	else {
		for (j=1; j<=maxCol; j++) {
			divHeight = document.getElementById(idPre+j).offsetHeight;
			maxHeight = Math.max(maxHeight,divHeight);
		}
		
		for (j=1; j<=maxCol; j++) {
			document.getElementById(idPre+j).style.height = maxHeight + "px";
		}
		maxHeight = 0;	
	}
}

function resetRowColHeight(maxRow,maxCol,idPre) {
	var i = 0;
	var j = 0;
	
	for (i=1; i<=maxRow; i++) {
		for (j=1; j<=maxCol; j++) {
			document.getElementById(idPre+j+'R'+i).style.height = "";
		}
	}
}

function setReqField(fldValue,msgID) {
	var reqField = new Object();
	
	reqField.value = fldValue;
	if (msgID != 0) {
		reqField.id = msgID;
		$(msgID).innerHTML = "";
	}
	
	return reqField;
}

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_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_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 setSelectToFirst(idList) {
	var tempArr = idList.split(',');
	
	for (var i=0; i<tempArr.length; i++) {
		document.getElementById(tempArr[i]).selectedIndex = 0;
	}
}

function formatCurrency(num,inclDec) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	
	if (inclDec == true) {
		return ('$' + ((sign)?'':'-') + num + '.' + cents);
	}
	else {
		return ('$' + ((sign)?'':'-') + num);
	}
}

function formatNumber(num,inclDec) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	
	if (inclDec == true) {
		return (((sign)?'':'-') + num + '.' + cents);
	}
	else {
		return (((sign)?'':'-') + num);
	}
}

function setCookie(c_name,value,expiredays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function doPageNav(currPage, currSection, startPage) {
	jQ("#showAll").val(0);
	jQ("#currPage").val(currPage);
	jQ("#currSection").val(currSection);
	jQ("#startPage").val(startPage);
	document.searchVehicleForm.submit();
}

function doShowVehicleSelected(listType) {
	var vehicleList = "";
	var totalList = 0;
	
	if (listType == 'C') {
		vehicleList = COMPAREVEHICLELIST;
		totalList = totalCompare;
	}
	else {
		vehicleList = SAVEDVEHICLELIST;
		totalList = totalSaved;
	}
	
	if (totalList == 0) {
		alert("Please select one or more vehicles.");
	}
	else {
		jQ('#listType').val(listType);
		jQ('#inventoryID').val( vehicleList );
		jQ("#searchVehicleForm").attr('action', 'compareVehicles.cfm');
		jQ("#requestAction").val('goCompare');
		document.searchVehicleForm.submit();
	}
}

function setVehicleSelection(cbObj, total, listVar, totalVar) {
	if (cbObj.checked == true) {
		if (total == 4) {
			cbObj.checked = false;
			alert("You may select up to four vehicles at a time.");
		}
		else {
			eval(totalVar + "++;");
			
			if (eval(listVar) == "") {
				eval(listVar + " = cbObj.value;");
			}
			else {
				eval(listVar + " = " + listVar + " + ',' + cbObj.value;");
			}
		}
	}
	else {
		var tempArr = eval(listVar + ".split(',');");
		var tempList = "";
		var j = 0;
		
		for (var i=0; i<tempArr.length; i++) {
			if (cbObj.value != tempArr[i]) {
				if (j == 0) {
					tempList = tempArr[i];
				}
				else {
					tempList = tempList + ',' + tempArr[i];
				}
				j++;
			}
		}
		eval(totalVar + "--;");
		eval(listVar + " = tempList;");
	}
}