function divMouseOverOut(id,imageURL)
{
	if (document.layers)
	    document[id].background.src = imageURL == 'none' ? null : imageURL;
	else if (document.all)
	    document.all[id].style.backgroundImage = imageURL == 'none' ? 'none' : 'url(' + imageURL + ')';
	else if (document.getElementById)
	    document.getElementById(id).style.backgroundImage = imageURL == 'none' ? 'none' : 'url(' + imageURL + ')';	
}



function show_all(linkID, valuesID) {

	var LinkObj = (document.getElementById) ? document.getElementById(linkID) : eval("document.all['" + linkID + "']");
	var valuesObj = (document.getElementById) ? document.getElementById(valuesID) : eval("document.all['" + valuesID + "']");
	
	if (LinkObj != null) {
	    if (LinkObj.style.display=="none") {
	      LinkObj.style.display="";
	    }
	    else {
	      LinkObj.style.display="none";
	    }
		
	}
	
	if (valuesObj != null) {
	    if (valuesObj.style.display=="none") {
	      valuesObj.style.display="";
	    }
	    else {
	      valuesObj.style.display="none";
	    }
		
	}
}

function show_features(id) {
	ObjDiv = 'featurelist' + id;
	titleBG = 'featureheader' + id;
	var Obj = (document.getElementById) ? document.getElementById(ObjDiv) : eval("document.all['" + ObjDiv + "']");
	var bgObj = (document.getElementById) ? document.getElementById(titleBG) : eval("document.all['" + titleBG + "']");
	
	if (Obj != null) {
	    if (Obj.style.display=="none") {
	      Obj.style.display="";
		  bgObj.className = 'closed';
	    }
	    else {
	      Obj.style.display="none";
		  bgObj.className = 'open';
	    }
		
	}

	counter = 1;
	ObjDiv = 'featurelist'+counter;
	titleBG = 'featureheader' + counter;
	var Obj = (document.getElementById) ? document.getElementById(ObjDiv) : eval("document.all['" + ObjDiv + "']");
	var bgObj = (document.getElementById) ? document.getElementById(titleBG) : eval("document.all['" + titleBG + "']");
	
	while (Obj != null) { 
		if (counter != id) {
		//	if (Obj.style.display=="") {
		//      Obj.style.display="none";
		//	  bgObj.className = 'open';
		//    }
		}
		counter++;
		ObjDiv = 'featurelist'+counter;
		titleBG = 'featureheader' + counter;
		var Obj = (document.getElementById) ? document.getElementById(ObjDiv) : eval("document.all['" + ObjDiv + "']");
		var bgObj = (document.getElementById) ? document.getElementById(titleBG) : eval("document.all['" + titleBG + "']");
		if (counter == 10) { break; }
	}
}

function show_specs(id) {
	ObjDiv = 'speclist_' + id;
	titleBG = 'specheading_' + id;
	specHeadingManual = 'specheadingmanual_' + id;
	specHeadingAutomatic = 'specheadingautomatic_' + id;
	
	var Obj = (document.getElementById) ? document.getElementById(ObjDiv) : eval("document.all['" + ObjDiv + "']");
	var bgObj = (document.getElementById) ? document.getElementById(titleBG) : eval("document.all['" + titleBG + "']");
	var spmObj = (document.getElementById) ? document.getElementById(specHeadingManual) : eval("document.all['" + specHeadingManual + "']");
	var spaObj = (document.getElementById) ? document.getElementById(specHeadingAutomatic) : eval("document.all['" + specHeadingAutomatic + "']");
	
	if (Obj != null) {
	    if (Obj.style.display=="none") {
	      Obj.style.display="";
		  bgObj.className = 'closed';
		  spmObj.style.display="inline";
		  spaObj.style.display="inline";
	    }
	    else {
	      Obj.style.display="none";
		  bgObj.className = 'open';
		  spmObj.style.display="none";
		  spaObj.style.display="none";
	    }
		
	}
	
	/*
	counter = 1;
	ObjDiv = 'speclist_'+counter;
	titleBG = 'specheading_' + counter;
	specHeadingManual = 'specheadingmanual_' + counter;
	specHeadingAutomatic = 'specheadingautomatic_' + counter;
	var Obj = (document.getElementById) ? document.getElementById(ObjDiv) : eval("document.all['" + ObjDiv + "']");
	var bgObj = (document.getElementById) ? document.getElementById(titleBG) : eval("document.all['" + titleBG + "']");
	var spmObj = (document.getElementById) ? document.getElementById(specHeadingManual) : eval("document.all['" + specHeadingManual + "']");
	var spaObj = (document.getElementById) ? document.getElementById(specHeadingAutomatic) : eval("document.all['" + specHeadingAutomatic + "']");
	
	while (Obj != null) { 
		if (counter != id) {
			if (Obj.style.display=="") {
		      	Obj.style.display="none";
			  	bgObj.className = 'open';
			   	spmObj.style.display="none";
				spaObj.style.display="none";
		    }
		}
		counter++;
		ObjDiv = 'speclist_'+counter;
		titleBG = 'specheading_' + counter;
		specHeadingManual = 'specheadingmanual_' + counter;
		specHeadingAutomatic = 'specheadingautomatic_' + counter;
		var Obj = (document.getElementById) ? document.getElementById(ObjDiv) : eval("document.all['" + ObjDiv + "']");
		var bgObj = (document.getElementById) ? document.getElementById(titleBG) : eval("document.all['" + titleBG + "']");
		var spmObj = (document.getElementById) ? document.getElementById(specHeadingManual) : eval("document.all['" + specHeadingManual + "']");
		var spaObj = (document.getElementById) ? document.getElementById(specHeadingAutomatic) : eval("document.all['" + specHeadingAutomatic + "']");
		if (counter == 20) { break; }

	}		*/
	
}

function SwitchOnOff(iPrefix,iCountStart,iCountEnd,iSwitch)
{
	for (loop = iCountStart ; loop <= iCountEnd ; loop ++ )
	{		
		if (document.getElementById(iPrefix + loop).style.display == 'none')
		{
			document.getElementById(iPrefix + loop).style.display = '';
			if (document.getElementById(iSwitch)) {
				document.getElementById(iSwitch).className = 'closed';
			}
		}
		else
		{
			document.getElementById(iPrefix + loop).style.display = 'none';
			if (document.getElementById(iSwitch)) {
				document.getElementById(iSwitch).className = 'open';
			}
		}	
	}
}

function rowOverEffect(object) {
  if (object.className == 'dataTableRow') object.className = 'dataTableRowOver';
}

function rowOutEffect(object) {
  if (object.className == 'dataTableRowOver') object.className = 'dataTableRow';
}

function matchRes(el)
{
	if (el.form.elements['residual'])
	{
		switch(el.value)
		{
		case "2": el.form.elements['residual'].value = 60; break;
		case "3": el.form.elements['residual'].value = 50; break;
		case "4": el.form.elements['residual'].value = 40; break;
		case "5": el.form.elements['residual'].value = 30; break;
		}
	}
}

// Calender Functions
function show_calendar(str_target, str_datetime) {
	var arr_months = ["January", "Feburary", "March", "April", "May", "June",
		"July", "August", "September", "October", "November", "December"];
	var week_days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
	var n_weekstart = 1; // day week starts from (normally 0 or 1)

	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
	var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+1);
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);
	
	// html generation (feel free to tune it for your particular application)
	// print calendar header
	var str_buffer = new String (
		"<html>\n"+
		"<head>\n"+
		"	<title>Calendar</title>\n"+
		"<script type=\"text/javascript\">self.focus();</script>\n"+
		"</head>\n"+
		"<body bgcolor=\"White\">\n"+
		"<table cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
		"<tr><td bgcolor=\"#004990\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
		"<tr>\n	<td bgcolor=\"#004990\"><a style=\"color:white;text-decoration:none\" href=\"javascript:window.opener.show_calendar('"+
		str_target+"', '"+ dt2dtstr(dt_prev_month)+"'+document.cal.time.value);\">"+
		"\<b>&laquo;</b></a></td>\n"+
		"	<td bgcolor=\"#004990\" colspan=\"5\" align=\"center\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
		"	<td bgcolor=\"#004990\" align=\"right\"><a style=\"color:white;text-decoration:none\" href=\"javascript:window.opener.show_calendar('"
		+str_target+"', '"+dt2dtstr(dt_next_month)+"'+document.cal.time.value);\">"+
		"\<b>&raquo;</b></a></td>\n</tr>\n"
	);

	var dt_current_day = new Date(dt_firstday);
	// print weekdays titles
	str_buffer += "<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td bgcolor=\"#939598\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+
		week_days[(n_weekstart+n)%7]+"</font></td>\n";
	// print calendar table
	str_buffer += "</tr>\n";
	while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
		dt_current_day.getMonth() == dt_firstday.getMonth()) {
		// print row heder
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td bgcolor=\"#FFB6C1\" align=\"right\">";
				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
					// print days of current month
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr(dt_current_day)+"'+document.cal.time.value; window.close();\">"+
					"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
				else 
					// print days of other months
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr(dt_current_day)+"'+document.cal.time.value; window.close();\">"+
					"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
				str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#939598\">"+
		"<input type=\"hidden\" name=\"time\" value=\""+dt2tmstr(dt_datetime)+
		"\"></td></tr>\n</form>\n" +
		"</table>\n" +
		"</tr>\n</td>\n</table>\n" +
		"</body>\n" +
		"</html>\n";

	var vWinCal = window.open("", "Calendar", 
		"width=240,height=220,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}
// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt (str_datetime) {
	var re_date = /^(\d+)\/(\d+)\/(\d+)/;
	 if (!re_date.exec(str_datetime))
		return alert("Invalid Date Format: "+ str_datetime);
	return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6));
}
function dt2dtstr (dt_datetime) {
	return (new String (
			dt_datetime.getDate()+"/"+(dt_datetime.getMonth()+1)+"/"+dt_datetime.getFullYear()));
}
function dt2tmstr (dt_datetime) {
	return (new String ());
}


//////////////////////////
// Image Functions
//////////////////////////
function preloadImages() { //v3.0
  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 swapImgRestore() { //v3.0
  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) { //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=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function swapImage() { //v3.0
  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];}
}

//////////////////////////////
//  IE6 HOVER FIX
//////////////////////////////
sfHover = function() {
if (document.getElementById("anothercarnav")) {
	var sfEls = document.getElementById("anothercarnav").getElementsByTagName("LI");
	for (var i=0; i < sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
}

//////////////////////////////
//  QUICKLINKS SLIDER
//////////////////////////////
window.addEvent('domready', function() {
	var szNormal = 25, szSmall  = 25, szFull   = 88;
	 
	var kwicks = $$("#kwicks .kwick");
	var fx = new Fx.Elements(kwicks, {wait: false, duration: 300, transition: Fx.Transitions.Back.easeOut});
	kwicks.each(function(kwick, i) {
		kwick.addEvent("mouseenter", function(event) {
			var o = {};
			o[i] = {width: [kwick.getStyle("width").toInt(), szFull]}
			kwicks.each(function(other, j) {
				if(i != j) {
					var w = other.getStyle("width").toInt();
					if(w != szSmall) o[j] = {width: [w, szSmall]};
				}
			});
			fx.start(o);
		});
	});
	if ( document.getElementById( 'kwicks' ) )
	{
		$("kwicks").addEvent("mouseleave", function(event) {
			var o = {};
			kwicks.each(function(kwick, i) {
				o[i] = {width: [kwick.getStyle("width").toInt(), szNormal]}
			});
			fx.start(o);
		})	
	}
});
