
google.load("jquery","1.3.1");var ddl_url='inc/get-cars-lookup.php';var make_cars=null;google.setOnLoadCallback(function()
{$(document).ready(function()
{$("#make").change(function(){fill('model');});$("#model").change(function(){fill('year');});$("#year").change(function(){fill('engine');});$("#engine").change(function(){fill('transmission');});fill('model');});});function fill(step)
{switch(step)
{case'transmission':if(!$("#engine").val()||$("#engine").val()=='')return;$("#model").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");$("#year").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");$("#engine").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");$("#transmission").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");break;case'engine':if(!$("#year").val()||$("#year").val()=='')return;$("#model").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");$("#year").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");$("#engine").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");$("#transmission").parent().parent().toggleClass("app_row_inactive",!$(this).hasClass("app_row_inactive"));parseXMLFor(step);break;case'year':if(!$("#model").val()||$("#model").val()=='')return;$("#model").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");$("#year").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");$("#engine").parent().parent().toggleClass("app_row_inactive",!$(this).hasClass("app_row_inactive"));$("#transmission").parent().parent().toggleClass("app_row_inactive",!$(this).hasClass("app_row_inactive"));parseXMLFor(step);break;case'model':default:step='model';if(!$("#make").val()||$("#make").val()=='')return;$("#model").parent().parent().removeClass("app_row_inactive").addClass("app_row_active");$("#year").parent().parent().toggleClass("app_row_inactive",!$(this).hasClass("app_row_inactive"));$("#engine").parent().parent().toggleClass("app_row_inactive",!$(this).hasClass("app_row_inactive"));$("#transmission").parent().parent().toggleClass("app_row_inactive",!$(this).hasClass("app_row_inactive"));var callback=function(data)
{make_cars=data;parseXMLFor(step);}
$.post(ddl_url,{make:$("#make").val()},callback,"xml");break;}}
function parseXMLFor(step)
{var xsl_str='';switch(step)
{case'year':xsl_str="<?xml version='1.0'?>"+"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>"+"<xsl:output method='xml'/>"+"<xsl:template match='/'>"+"<result>{\"year\":[<xsl:apply-templates/>]}</result>"+"</xsl:template>"+'<xsl:template match=\'make/model/car[../@modelid="'+$("#model").val()+'"]\'>'+"{\"name\":\"<xsl:value-of select='@caryear'/>\",\"id\":<xsl:value-of select='@caryear'/>},"+"</xsl:template>"+"</xsl:stylesheet>";break;case'engine':xsl_str="<?xml version='1.0'?>"+"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>"+"<xsl:output method='xml'/>"+"<xsl:template match='/'>"+"<result>{\"engine\":[<xsl:apply-templates/>]}</result>"+"</xsl:template>"+'<xsl:template match=\'make/model/car/carapp[../../@modelid="'+$("#model").val()+'" and ../@caryear="'+$("#year").val()+'"]\'>'+"{\"name\":\"<xsl:value-of select='@carengine'/>\",\"id\":\"<xsl:value-of select='@carengine'/>\"},"+"</xsl:template>"+"</xsl:stylesheet>";break;case'model':default:step='model';xsl_str="<?xml version='1.0'?>"+"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>"+"<xsl:output method='xml'/>"+"<xsl:template match='/'>"+"<result>{\"model\":[<xsl:apply-templates/>]}</result>"+"</xsl:template>"+"<xsl:template match='make/model'>"+"{\"name\":\"<xsl:value-of select='@model'/>\",\"id\":<xsl:value-of select='@modelid'/>},"+"</xsl:template>"+"</xsl:stylesheet>";break;}
if(window.ActiveXObject)
{var xslt=new ActiveXObject('Microsoft.XMLDOM');xslt.async='false';xslt.loadXML(xsl_str);var xmlDoc=make_cars.transformNode(xslt);var newDocument=new ActiveXObject('Microsoft.XMLDOM');newDocument.async='false';newDocument.loadXML(xmlDoc);}
else
{var xslDoc=(new DOMParser()).parseFromString(xsl_str,"text/xml");var processor=new XSLTProcessor();processor.importStylesheet(xslDoc);var newDocument=processor.transformToDocument(make_cars);}
var json_models=newDocument.childNodes[newDocument.childNodes.length-1].firstChild.nodeValue;var results=YAHOO.lang.JSON.parse(json_models);filltarget(step,eval('results.'+step));}
function filltarget(target,arr)
{var target=document.getElementById(target);target.options.length=0;if(arr.length==0)
{alert('No '+step+'(s) found!');return;}
var option=new Option('-- select '+target.id+' --','');try{target.add(option,null);}
catch(e){target.add(option,-1);}
for(i=0;i<arr.length;i++)
{if(arr[i])
{option=new Option(arr[i].name,arr[i].id);try{target.add(option,null);}
catch(e){target.add(option,-1);}}}}
