//##############################################################################
//##  Globals																  ##
//##############################################################################
var ns6=document.getElementById&&!document.all
var ie=document.all
var mySlider = new Array();
var modules = new Array();
var whichObj=0;
var whichLoader="";
var ajaxloaded=0;
//##############################################################################
//##############################################################################
//##  Image Rollover Functions												  ##
//##############################################################################
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];}
}
//##############################################################################
//##############################################################################
//##  Navigation Rollover Functions											  ##
//##############################################################################
var fadeNav = function(d,e){
	fadeSpeed = 500;
	fadeEvent = e.type;
	fadeObj = "nav"+d+"_on";
	switch (fadeEvent) {
	  case "mouseover":
	    fadeOp = 0;
	    fadeDisp = "block";
	    break;
	  case "mouseout":
	    fadeOp = 100;
	    fadeDisp = "none";
	    break;
	}
    if (fadeObj) {
    	var div = $(fadeObj).setStyles({
			opacity: fadeOp,
			display: fadeDisp
		});
		new Fx.Style(div, 'opacity', {duration: fadeSpeed} ).start(1);
	}
}; //end fadeTable
//##############################################################################
//##############################################################################
//##  User Interaciton Functions											  ##
//##############################################################################
function bookmarkSite(title, url) {
  if (document.all)
    window.external.AddFavorite(url, title);
  else if (window.sidebar)
    window.sidebar.addPanel(title, url, "");
} //end bookmarkSite
function selectDealerName(t) {
  var d = t.options[t.selectedIndex].value
  var options = d.split("|");
  document.dealer_dir.bydealername.value=options[1];
  document.dealer_dir.DealerID.value=options[0];
  document.dealer_dir.submit();
} //end selectDealerName
//##############################################################################
//##############################################################################
//##  Form Functions														  ##
//##############################################################################
function validateUsed(t,e) {
  var formName = t;
  for (x = 0; x < formName.length; x++) {
    var searchIn = formName.elements[x].name;
    var type = formName.elements[x].type;
    switch (type) {
      case "select-one":
        var s = formName.elements[x];
        var d = s.options[s.selectedIndex].value;
        if ((d == "null") || (d == "notset")) { alert('Please select a vehicle make, model and price range.'); return false; }
        break;
    }
  }
  //return true;
  return true;
}  //end validateUsed
//##############################################################################
//##############################################################################
//##  Featured Slider Functions												  ##
//##############################################################################
function toggleFeatured(n) {
  var o = mySlider;
  if (!o[n].wrapper.offsetHeight) {
    for (s=1; s < o.length; s++) {
      if (s != n) {
        o[s].slideOut();
        document.getElementById(o[s].prefix+s+'_ToggleSlider').src=o[s].img+s+'offb.jpg';
      }
    }
    document.getElementById(o[n].prefix+n+'_ToggleSlider').src=o[n].img+n+'on.jpg';
    whichObj = n;
    setTimeout('delayToggleFeatured(whichObj)',300);
  }
} //end toggleFeatured
function delayToggleFeatured(n) {
  mySlider[n].toggle();
  whichObj=n;
  setTimeout('sliderCleanUp(whichObj)',150);
} //end delayToggleFeatured
function sliderCleanUp(n) {
  var m = mySlider;
  for (s=1; s < m.length; s++) {
    if ((s != n) && (m[n].wrapper.offsetHeight)) {
        m[s].toggle();
    }
  }
} //end sliderCleanUp
//##############################################################################
//##############################################################################
//##  Ajax Functions														  ##
//##############################################################################
var http = createRequestObject();

function createRequestObject() {
  var ro;
  var browser = navigator.appName;
  if(browser == "Microsoft Internet Explorer") { ro = new ActiveXObject("Microsoft.XMLHTTP"); }
  else { ro = new XMLHttpRequest(); }
  return ro;
} // end creatRequestObject

function sendSelectRequest(s,action,target,cl,mth) { //[action] is url to PHP file
  whichLoader=target;
  ajax_indicator(1);
  var d = s.options[s.selectedIndex].value;
  http.open('get', action+'&v='+d+'&f='+target+'&c='+cl+'&m='+mth);
  http.onreadystatechange = handleRequestResponse;
  http.send(null); 
} // end sendSelectRequest

function sendLoadRequest(action,target) { //[action] is url to PHP file
  http.open('get', action+'&t='+target);
  http.onreadystatechange = handleRequestResponse;
  http.send(null); 
} // end sendLoadRequest

function handleRequestResponse() { //[responseText] is what PHP returns
  if(http.readyState == 4) {
    var trimmed = http.responseText.replace(/^\s+|\s+$/g,'');
    //alert(trimmed);
    ajax_indicator(0);
    eval(trimmed);
  }
} // end handleResponse

function ajax_indicator(n) {
  if (whichLoader) {
    var o = document.getElementById('ajax_loader_'+whichLoader);
    if (n) { o.style.display="block"; }
    else { o.style.display="none"; }
  }
} //end ajax_indicator
//##############################################################################
//##############################################################################
//##  AjaxRequest Functions													  ##
//##############################################################################
function getResponse(u,target) {
  AjaxRequest.get(
    {
      'url':u+'&t='+target
      ,'timeout': 15000
      ,'onTimeout':function() { document.getElementById(target).innerHTML='<p>Sorry, but this request has timed out.</p><a href="javascript:getResponse(\''+u+'\',\''+target+'\');">Try Again</a><br>'; }
      ,'onSuccess':function(req){ var trimmed = req.responseText.replace(/^\s+|\s+$/g,''); ajaxloaded=1; eval(trimmed); }
    }
  );
} //end getResponse

function getFormResponse(s,u,target,cl,mth) {
  whichLoader=target;
  ajax_indicator(1);
  var d = s.options[s.selectedIndex].value;
  AjaxRequest.get(
    {
      'url':u+'&v='+d+'&f='+target+'&c='+cl+'&m='+mth
      ,'timeout': 15000
      ,'onTimeout':function() { document.getElementById(target).innerHTML='<p>Sorry, but this request has timed out.</p><a href="javascript:getFormResponse(\''+s+'\',\''+u+'\',\''+target+'\',\''+cl+'\',\''+mth+'\');">Try Again</a><br>'; }
      ,'onSuccess':function(req){ var trimmed = req.responseText.replace(/^\s+|\s+$/g,''); ajax_indicator(0); eval(trimmed); }
    }
  );
} //end getFormResponse
//##############################################################################
//##############################################################################