var domainNameToBeSet = '';
/*
* Browser detection, taken from http://www.quirksmode.org/js/detect.html
*/
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();
/*
* end of browser detection
*/
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_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 showTabs01(id){
	var tabCont = document.getElementById("tabs01Content");
	var tabs = document.getElementById("tabs01");
	for(var i=0;i<tabCont.childNodes.length;i++)
		if(tabCont.childNodes[i]&&tabCont.childNodes[i].style)
			tabCont.childNodes[i].style.display = "none";
	for(var i=0;i<(tabs.childNodes.length);i++)
		if(tabs.childNodes[i]&&tabs.childNodes[i].style&&tabs.childNodes[i].tagName=="LI") {
			tabs.childNodes[i].className = "";
			document.getElementById("tabCont"+id).style.display = "block";
			document.getElementById("tab"+id).className = "active";
		}
}
function showTabs02(id){
	var tabCont = document.getElementById("tabs02Content");
	var tabs = document.getElementById("tabs02");
	for(var i=0;i<tabCont.childNodes.length;i++)
		if(tabCont.childNodes[i]&&tabCont.childNodes[i].style)
			tabCont.childNodes[i].style.display = "none";
	for(var i=0;i<(tabs.childNodes.length);i++)
		if(tabs.childNodes[i]&&tabs.childNodes[i].style&&tabs.childNodes[i].tagName=="LI") {
			tabs.childNodes[i].className = "";
			document.getElementById("tabCont"+id).style.display = "block";
			document.getElementById("tab"+id).className = "active";
		}
}


function JSDlMenu(){
	this.menus = [];
	this.activeClass = "";

	function openOnLoad(menuNum,itemNum){
		var dl = this.menus[menuNum];
		var items = getItems(dl);
		this.openItemLoad(items[itemNum]);
	}
	this.openOnLoad = openOnLoad;

	function openItemLoad(item){
		open(item);
		item.isActive=true;
		this.closeOthers(item);
	}
	this.openItemLoad = openItemLoad;
	function openItem(item){
		open(item);
		item.isActive=true;
		//this.closeOthers(item);
	}
	this.openItem = openItem;

	function closeItem(item){
		item.isActive=false;
		close(item);
	}
	this.closeItem = closeItem;

	function closeOthers(item){
		var dl = item.parentNode;
		var items = getItems(dl);
		for(var i=0;i<items.length;i++){
			if(item!=items[i]) this.closeItem(items[i]);
		}
	}
	this.closeOthers = closeOthers;

	function init(className,activeClass,overClass,outClass){
		if(!activeClass) activeClass="";
		if(!overClass) overClass="";
		if(!outClass) outClass="";
		this.activeClass = activeClass;
		var dlArr = document.body.getElementsByTagName("DL");
		for(var i=0;i<dlArr.length;i++){
			if(dlArr[i].className==className){
				this.setClickHandler(dlArr[i],overClass,outClass);
				this.menus[this.menus.length]=dlArr[i];
			}
		}
	}
	this.init = init;

	function setClickHandler(dl,overClass,outClass){
		var items = getItems(dl);
		for(var i=0;i<items.length;i++){
			items[i].onclick=function(){dlMenu.openItem(this)};
			setMouseOver(items[i],overClass,outClass);
		}
	}
	this.setClickHandler = setClickHandler;

	function setMouseOver(item,overClass,outClass){
		// item.onmouseover = new Function("this.className='"+overClass+"'");
		// item.onmouseout = new Function("if(this.isActive)this.className='"+dlMenu.activeClass+"'; else this.className='"+outClass+"'");
	}

	function getDDbyDT(dt){
		if(dt.tagName!="DT") return null;
		var dd = getNextSibling(dt);
		if(dd.tagName=="DD") return dd;
		return null;
	}

	function getItems(dl){
		return dl.getElementsByTagName("DT");
	}

	function getNextSibling(o){
		o = o.nextSibling;
		while(!o.tagName){
			o = o.nextSibling;
		}
		return o;
	}

	function getPreviousSibling(o){
		o = o.previousSibling;
		while(!o.tagName){
			o = o.previousSibling;
		}
		return o;
	}

	function open(item){
		var dd = getDDbyDT(item);
		dd.style.display="block";
		item.onclick = function(){dlMenu.closeItem(this)};
		item.className = dlMenu.activeClass;

	}

	function close(item){
		var dd = getDDbyDT(item);
		dd.style.display="none";
		item.onclick = function(){dlMenu.openItem(this)};
		item.className = "";

	}

}
var dlMenu = new JSDlMenu();

function refreshDlMenu(){
	dlMenu = new JSDlMenu();
}


	function buildDealerListOrder(dList, counter) {
	var doc = document;
	var divs = doc.getElementsByTagName("DIV");
		for (var i = 0; i < divs.length; i++) {
				if (divs[i].className == dList) {
					var dItem = divs[i].getElementsByTagName("SPAN");
					for (var d = 0; d < dItem.length; d++) {
						var c=0;
						if (dItem[d].className == counter) {
							//
							}
						}

					}
			}
	}

	buildDealerListOrder('dealerList');


/**
  * Gets <code>HTMLBodyElement</code> element
  * @access public
  * @param w Window Optional. Window object for frames compatibility
  * @type HTMLBodyElement
  */
 function getBody(w){
  if(!w)w=window;
  if(w.document.compatMode=='CSS1Compat')return w.document.documentElement;
  else return w.document.body;
 }

/**
  * Retrieves the height of the document relative to the layout.<br>
  * Deprecated, see <code>document.prototype.getHeight</code> in componence-prototype.jar
  * @access public
  * @param w Window Optional. Window object for frames compatibility
  * @type int
  */
 function getDocumentHeight(w){
  if(!w)w=window;
  var b=getBody(w);
  if(b && b.scrollHeight) return b.scrollHeight;//ie
  if(w.document.height) return w.document.height;//gecko
  return w.document.body.style.pixelHeight;//opera
 }
var resize=function(){
	try {
		var frm=parent.document.getElementsByTagName("IFRAME");
		for(var i=0;i<frm.length;i++){
			if(frm[i].name=="aw_content"){
				frm[i].style.height=getDocumentHeight()+"px";
				break;
			}
		}
	} catch ( err ) {} // consume all the errors.
}
if(window.attachEvent)window.attachEvent("onload",resize);
else window.addEventListener("load",resize,false);


function CurrencyFormatted(num) {
	num = num.toString().replace(/\$|\,/g,'');
    return CommaFormatted(num) ;
}

function setCookie(name,value){
     var argv=setCookie.arguments;
     var argc=setCookie.arguments.length;
     var expires=(2<argc)?argv[2]:null;
     var path=(3<argc)?argv[3]:null;
     var domain=(4<argc)?argv[4]:null;
     var secure=(5<argc)?argv[5]:false;
     document.cookie=name+"="+escape(value)
     	+((expires==null)?"":("; expires="+expires.toGMTString()))
     	+((path==null)?"":("; path="+path))
     	+((domain==null)?"":("; domain="+domain))
     	+((secure==true)?"; secure":"");
}

/*
* Tests whether the zipcode is of 5 digits starting with a non-zero value
* returns true if proper zipcode false otherwise
*/
function checkZip(zipcode){
	var regEx = /^[0-9]{5}$/g;
	if(regEx.test(zipcode) == true){
		setCookie('zipcode', zipcode);
		return true;
	}
	else{
		return false;
	}
}

/*
*  Call this with the domain name of the client like
*	setDocumentDomain('autobytel.com');
*	For more details visit http://msdn2.microsoft.com/en-us/library/ms533740.aspx
*/
function setDocumentDomain(clientDomainName){
	if(null != clientDomainName && 'null' != clientDomainName){
		if( 'Firefox' == BrowserDetect.browser){
			document.domain = clientDomainName;
		}else{
			domainNameToBeSet = clientDomainName;
		}
	}
}

/*
* Splits modelyear of the form '2006 Continental F-220' and returns
* an array ('2006','Continental F-220')
*/
function splitModelYear(modelYear){
    var splitArray = modelYear.split(" ");
    var model = '';
    for (var i=1; i<splitArray.length; i++){
        model += splitArray[i];
        if( (i + 1) < splitArray.length){
            model += ' ';
        }
    }
    return new Array(splitArray[0], model)
}

/*
* Add comma to the float
*/
function CommaFormatted(amount)
{
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
    if ( n.length > 3 ) {
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
    }
	while(n.length > 2)
	{
		var nn = n.substr(n.length-2);
		a.unshift(nn);
		n = n.substr(0,n.length-2);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(isNaN(d)) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
}

function FromCommaFormatted(amount)
{
	var delimiter = ",";
	if (amount == null || amount.length == 0 || amount.indexOf(',') == -1)
		return amount;
	var temp = new Array();
	temp = amount.split(delimiter);
	amount = temp.join("");
	return amount;
}

function isInteger(val)
{
	var testVal = ""+val;
	var reg = /^-?\d+$/;
	var m = reg.exec(testVal);
	if (m == null)
		return false;
	else
		return true;
}

function isPhoneNumber(val){
	var testVal = ""+val;
	if (isInteger(testVal) && testVal.length == 10)
		return true;
	else
		return false;
}

function isEmail(val)
{
	var testVal = ""+val;
	var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	var m = reg.exec(testVal);
	if (m == null)
		return false;
	else
		return true;
}

function trim(val)
{
	if (val == null)
		return '';
	else
		return val.replace(/^\s+|\s+$/g, '');
}
