/**
* (c) 2008 mOblu, inc.
* All rights are reserved. Copying or other reproduction of this program is prohibited.
*/
function VB(){if(VBrowser.__instance==undefined){VBrowser.__instance=new VBrowser();}return VBrowser.__instance;};if(window["VBrowser"]==undefined){var VBrowser=function(){};VBrowser.prototype={maDisplays:["Browse","Detail","Compare"],init:function(_1){this.meC=$("VBrowserContentContainer");this.restoreState();this.miDetailOffset=0;},loadVehicle:function(_2,_3){this.setDisplay("Detail");var _4=$("vm-detail-prev-button");if(_4){_4.style.display=_3===undefined?"none":"";}_4=$("vm-detail-next-button");if(_4){_4.style.display=_3===undefined?"none":"";}VM().loadVehicle(_2);this.miDetailOffset=_3;},getBrowseArgs:function(_5){var _6=[];var _7=$("sVBrowserYear").value;if(_7.length>0){_6.push(["sYear","=",_7]);}var _8=$("sVBrowserMake").value;if(_8.length>0){_6.push(["sMake","=",_8]);}var _9=$("sVBrowserModel").value;if(_9.length>0){_6.push(["sModel","=",_9]);}var _a=$("iVBrowserLimit").value;var _b=[[$("sVBrowserSortField").value,$("sVBrowserSortOrder").value],["sYear","DESC"],["sMake","ASC"],["sModel","ASC"]];return {iLimit:_a,iOffset:_5,aCriteria:_6,aOrder:_b};},setBrowserArgs:function(_c){if(app.isObject(_c)){$("iVBrowserLimit").value=_c.iLimit;var _d=_c.aCriteria;for(var i=0;i<_d.length;i++){if(_d[i][0]=="sYear"){$("sVBrowserYear").value=_d[i][2];}if(_d[i][0]=="sMake"){$("sVBrowserMake").value=_d[i][2];}if(_d[i][0]=="sModel"){$("sVBrowserModel").value=_d[i][2];}}$("sVBrowserSortField").value=_c.aOrder[0][0];$("sVBrowserSortOrder").value=_c.aOrder[0][1];}},browse:function(_f){this.storeState();this.setDisplay("Browse",true);var _10=this.getBrowseArgs(_f);this.miBrowseOffset=_f;this.render("{e8e59cbe-3e0f-102c-9cd8-10c199bce134}",$("VBrowserBrowseContainer"),_10,new Functor(this,function(_11){}));},compare:function(_12){this.setDisplay("Compare");if(_12!==undefined){if(this.moCompare.aVehicles.length<3){this.moCompare.aVehicles.push(_12);}else{this.moCompare.aVehicles[2]=_12;}}this.render("{4c7bf850-3d50-102c-9cd8-10c199bce134}",$("VBrowserCompareContainer"),this.moCompare,new Functor(this,function(_13){if(app.isObject(_13)){if(app.isArray(_13.aVehicles)){this.moCompare.aVehicles=_13.aVehicles;}}}));},compareRemove:function(_14){var _15=this.moCompare.aVehicles;for(var i=_15.length-1;i>=0;i--){if(String(_15[i])==String(_14)){_15.splice(i,1);break;}}this.compare();},compareClose:function(){this.setDisplay("Browse",true);},clearDisplay:function(_17){var _18=$("VBrowser"+_17+"Container");if(_18){_18.innerHTML="";}},setDisplay:function(_19,_1a){var _1b,_1c;for(var i=0;i<this.maDisplays.length;i++){_1b=$("VBrowser"+this.maDisplays[i]+"Container");_1c=$(this.maDisplays[i]+"ModeToolbar");if(_1b){_1b.style.display=(_19==this.maDisplays[i]?"":"none");}if(_1c){_1c.style.display=(_19==this.maDisplays[i]?"":"none");}if(_1a&&_19!=this.maDisplays[i]){this.clearDisplay(this.maDisplays[i]);}}},detailsPrevNext:function(_1e){if(this.m_oPkt){this.m_oPkt.Abort();this.m_oPkt=null;}var _1f=this.getBrowseArgs(app.clamp(this.miDetailOffset+_1e,0));_1f.iLimit=1;this.svc(new Functor(this,function(_20){this.m_oPkt=null;webbler().endMask(this.meC);var _21=mOblu().showFault(_20);if(!_21&&app.isuuid(_20)){this.loadVehicle(_20,_1f.iOffset);}})).wsGetOffsetVehicle(_1f);},detailClose:function(){this.setDisplay("Browse",true);this.browse(this.miBrowseOffset);},render:function(_22,eC,_24,oCB){if(this.m_oPkt){this.m_oPkt.Abort();this.m_oPkt=null;}webbler().startMask(this.meC);this.m_oPkt=webbler().render(_22,_24,eC,false,true,new Functor(this,this.cbRender,[oCB]));},cbRender:function(oCB,_27){webbler().endMask(this.meC);this.m_oPkt=null;if(_27!==undefined){var _28=mOblu().showFault(_27,oCB);if(!_28){Functor.fire(oCB,[_27["vars"]]);}}},storeState:function(){dojo.cookie("mObluGarageBrowser",dojo.toJson(this.getBrowseArgs(0)),{expires:5});},restoreState:function(){this.moCompare={aVehicles:[]};this.setBrowserArgs(dojo.fromJson(dojo.cookie("mObluGarageBrowser")));},svc:function(oCB,_2a){return webbler().svc("MyVehicleWS",oCB,_2a,gaMyVehicleIFace);}};}