
!function(){var root=this;var defaults={onSuccess:function(){},onError:function(){}};var VehicleExteriorImageModel=function(data,uscCode,seriesCode,vehicleType,catalogId,options,presId){this.bootstrap(data,uscCode,seriesCode,vehicleType,catalogId,presId);this.init(options);};VehicleExteriorImageModel.prototype={bootstrap:function(data,uscCode,seriesCode,vehicleType,catalogId,presId){this.data=data;this.uscCode=uscCode;this.seriesCode=seriesCode;this.vehicleType=vehicleType;this.catalogId=catalogId;this.presId=presId;},init:function(options){this.options=$.extend({},defaults,options);},data:{},url:function(extraCodes){return'/cs/ContentServer?pagename='+EP2.getSiteName()+'/EP2/common/service/VehicleImageService&vehicleType='
+this.vehicleType+'&code='+this.uscCode+'&s='+this.seriesCode+'&site='
+EP2.getSiteName()+'&gforceMode='+EP2.getGforceMode()+extraCodes+'&modelYear='+vehicleimagepackyear
+'&presId='+this.presId;},fetch:function(payload,vehicleType){var extraCodes='';for(var key in payload){if(payload[key]!=undefined){if(payload[key]['usc']){extraCodes+=('&'+key+'='+payload[key]['usc']);}}}
this.xhr=$.ajax({url:this.url(extraCodes),success:this.onSuccess.bind(this),error:this.onError.bind(this),dataType:'json'});},reconcile:function(data,key){var d=data[key];if((!typeof d!=="undefined")&&EP2.Utils.objectHasProperties(data)&&EP2.Utils.objectHasProperties(d)){var len=d.options.length;while(len--){d.options[len].imagePath=d.options[len].thumbnail;d.options[len].images=d.options[len].image;}}else d={options:""};return d;},onSuccess:function(data){if(!$.isEmptyObject(data)){this.data['exteriorImagePack']=this.reconcile(data,'exteriorImagePack');this.data['exteriorImages']=this.reconcile(data,'exteriorImages');this.data['interiorImages']=this.reconcile(data,'interiorImages');this.data['idf']=this.reconcile(data,'idf');this.options.onSuccess(this.data);}},onError:function(error){this.options.onError(error);console.log(error);},get:function(index,key,type){var type=type||'images';if(this.data[key].options[index]!=undefined){return this.data[key].options[index][type];}}};root.VehicleExteriorImageModel=VehicleExteriorImageModel;}.call(EP2);
