$j=jQuery.noConflict();
var numOfModels=0;var zipRegex=new RegExp('(^\\d{5}$)');
function restoreDefZipVal(obj){if(obj.value==''){obj.value='ZIP Code'}}
function clearDefZipVal(obj){if(obj.value.toLowerCase()=='zip code' || obj.value.toLowerCase()=='zip c' || obj.value.toLowerCase()=='zip code or city, state'){obj.value=''}}
function aol_submitNewSearch(form){var loc=$j("#resCompMod_u #uZip");var lVal=loc.val();var sub = aol_submitFormSetZip(loc,lVal,false);if(sub){var ma=$j('#aol_form #nMakesLi .reqVal').val();var mo=$j('#aol_form #f_moList .reqVal').val();var url='http://autos.aol.com/cars-main-piranha-redirect.jsp?make='+escape(ma)+'&model='+escape(mo)+'&pdata=100000165x1223218789x1201728668';window.open(url);}}
function aol_submitUsedSearch(form,zip,ma,mo){var loc=form.find("#"+zip);var lVal=loc.val();var sub = aol_submitFormSetZip(loc,lVal,true);if(sub){var ma=form.find('#'+ma+' .reqVal').val();var mo=form.find('#'+mo+' .reqVal').val();var url='http://autos.aol.com/used-pranha-redirect.jsp?location='+lVal+'&make1='+escape(ma)+'&model1='+escape(mo)+'&pdata=100000165x1223218788x1201728666';window.open(url);}}

function aol_submitNewSearch(form,pdata){var loc=$j("#resCompMod_u #uZip");var lVal=loc.val();var sub = aol_submitFormSetZip(loc,lVal,false);if(sub){var ma=$j('#aol_form #nMakesLi .reqVal').val();var mo=$j('#aol_form #f_moList .reqVal').val();var url='http://autos.aol.com/cars-main-piranha-redirect.jsp?make='+escape(ma)+'&model='+escape(mo)+'&pdata='+pdata;window.open(url);}}
function aol_submitUsedSearch(form,zip,ma,mo,pdata){var loc=form.find("#"+zip);var lVal=loc.val();var sub = aol_submitFormSetZip(loc,lVal,true);if(sub){var ma=form.find('#'+ma+' .reqVal').val();var mo=form.find('#'+mo+' .reqVal').val();var url='http://autos.aol.com/used-pranha-redirect.jsp?location='+lVal+'&make1='+escape(ma)+'&model1='+escape(mo)+'&pdata='+pdata;window.open(url);}}

function initSelectBox(pNode){var rClass='';var nodes=new Array(new Array('nMakesLi','Select a make','make'),new Array('f_moList','Select a model','model'));for(var i=0;i<nodes.length;i++){pNode.find('#aol_form').append('<div id="'+nodes[i][0]+'" class="listFilt '+nodes[i][0]+'"><h3 class="label">'+nodes[i][1]+'</h3><div class="listOpts list_styled'+rClass+'"><div class="bor_wrap"><a href="javascript:;" class="close_x"><span>X</span></a><div class="inner"></div><div class="foot">&nbsp;</div></div></div><input type="hidden" name="'+nodes[i][2]+'" class="reqVal" /></div>')}maNode=$j('#nMakesLi');moNode=$j('#f_moList');makeOb = new SelectBox(maNode,'Select a make','new');modelOb = new SelectBox(moNode,'Select a model','new');initnmake()}
function initnmake(){makeOb.init(getList(makesToModels,'true')).select().trigger_next(initnModel);}
function initnModel(){reInitObs(new Array(modelOb));modelOb.init(getList(makesToModels[makeOb.value()])).select()}

function inituSelectBox(pNode){var rClass='';var nodes=new Array(new Array('nuMakesLi','Select a make','make1'),new Array('f_umoList','Select a model','model1'));for(var i=0;i<nodes.length;i++){pNode.find('#aol_uform').append('<div id="'+nodes[i][0]+'" class="listFilt '+nodes[i][0]+'"><h3 class="label">'+nodes[i][1]+'</h3><div class="listOpts list_styled'+rClass+'"><div class="bor_wrap"><a href="javascript:;" class="close_x"><span>X</span></a><div class="inner"></div><div class="foot">&nbsp;</div></div></div><input type="hidden" name="'+nodes[i][2]+'" class="reqVal" /></div>')}maNode=$j('#nuMakesLi');moNode=$j('#f_umoList');umakeOb = new SelectBox(maNode,'Select a make','used');umodelOb = new SelectBox(moNode,'Select a model','used');initumake();}
function initumake(){umakeOb.init(getList(usedMakesToModels,'true')).select().trigger_next(inituModel);}
function inituModel(){reInitObs(new Array(umodelOb));umodelOb.init(getList(usedMakesToModels[umakeOb.value()])).select()}

function aol_submitFormSetZip(loc,lVal,req){var zTest=zipRegex.test(lVal);if(req){if(!zTest){alert("Please enter a valid 5-digit zip code.");if(lVal.toLowerCase()=="zip code" || lVal.toLowerCase()=="zip c"){loc.val('')}loc.focus();return false}}else{if(lVal!='' && lVal.toLowerCase()!="zip code"){if(!zTest){if(lVal.toLowerCase()=="zip c"){return true}alert("Please enter a valid 5-digit zip code.");if(lVal.toLowerCase()=="zip code"){loc.val('')}loc.focus();return false}}}return true;}
function reInitObs(ob){for(i=0;i<ob.length;i++){ob[i].clear()}}
function getList(arr,isObj){var ulObj='<ul class="ext">';if(isObj==undefined){numOfModels=arr.length;for(var i=0;i<arr.length;i++){var c="";var r=i%14;if(i!=0 && r==0){ulObj+='</ul><ul class="ext">'}ulObj+='<li><a href="javascript:;" class="list_item">'+arr[i]+'</a></li>'}}else{var myarr=[];for(k in arr){myarr.push(k);}myarr.sort();for (var i=0; i<myarr.length; i++) {var c="";var r=i%14;if(i!=0 && r==0){ulObj+='</ul><ul class="ext">'}ulObj+='<li><a href="javascript:;" class="list_item">'+myarr[i]+'</a></li>';}}ulObj+='</ul>';return ulObj;}
function SelectBox(node,defVal,type) {
	this.node=node;this.defVal=defVal;this.init=init;this.select=select;this.clear=clear;this.trigger_next=trigger_next;this.value=value;
	function value(){return node.find('h3').text()}
	function init(ulObj){this.ulObj=ulObj;show(type);close();return this;}
	function select (){node.find('ul').remove();node.find('.inner').append(this.ulObj).find('li a').each(function(){$j(this).bind('click',function(){var tObj=$j(this);var val=tObj.text();node.find('a.actSel').removeClass('actSel');tObj.addClass('actSel');node.find('h3').text(val).removeClass('is_open').next().removeClass('list_open').next().val(val);})});if(node.hasClass('f_moList')){if(numOfModels > 70){node.find('.inner').css({'height':'400px','overflow-y':'auto'});numOfModels=0;}else{node.find('.inner').css({'height':'auto','overflow-y':'hidden'});}}return this;}
	function clear(txt){this.node.find('h3').text(this.defVal).removeClass('has_items').unbind('click').parent().find('.reqVal').val('')}
	function show(type){node.find('h3').addClass('has_items').bind('click',function(){var bObj=$j(this);bObj.toggleClass('is_open');bObj.next().toggleClass('list_open');bObj.parent().toggleClass('posRel');if(type=='used'){rt_u.a=bObj.parent().attr('class')}else if(type=='new'){rt.a=bObj.parent().attr('class')}});}
	function close(){node.find('.close_x').bind('click',function(){$j(this).parent().parent().removeClass('list_open');$j(this).parent().parent().parent().children(0).removeClass('is_open');return false});}
	function trigger_next(func){node.find('.inner').find('li a').each(function(){$j(this).bind('click',function(){func.apply();})})}
}
function aol_closeCustDrop(pId,tObj){$j('#'+pId+' h3').bind('mouseover',function(){if(tObj.timer && $j(this).parent().attr('class')==tObj.a){clearTimeout(tObj.timer);tObj.timer=null}}).bind('mouseleave',function(){var obj=this;tObj.timer=setTimeout(function(){$j(obj).removeClass('is_open').parent().children(1).removeClass('list_open');$j(obj).parent().removeClass('posRel')},500)});$j('#'+pId+' .bor_wrap').bind('mouseover',function(){if(tObj.timer){clearTimeout(tObj.timer);tObj.timer=null}}).bind('mouseleave',function(){var obj=this;tObj.timer=setTimeout(function(){$j(obj).parent().removeClass('list_open').parent().children(0).removeClass('is_open');$j(obj).parent().parent().removeClass('posRel')},500)})}
