function VServiceUser(id,type,email,firstName,lastName,rememberMe,emailOptIn){this.id=id;this.type=type;this.email=email;this.firstName=firstName;this.lastName=lastName;this.rememberMe=rememberMe;this.emailOptIn=emailOptIn;}
function VServiceRequestBean(user,channelCode,domainCode,localeCode,localeId,userCartCount){this.user=user||new VServiceUser();this.channelCode=channelCode||'lowesusa';this.domainCode=domainCode||'valspar_com';this.localeCode=localeCode||'en_US';this.localeId=localeId||1001;this.userCartCount=userCartCount||0;this.isUserLoggedIn=function(){if(this.user&&this.user.type=='registered')
return true;else
return false;};}
var vReqBean=new VServiceRequestBean();function VServiceBaseRequester(url){this.url=url;this.responseData={};this.isSuccessful=false;this.msgId=undefined;this.msg=undefined;this._getResponse=function(params){this.isSuccessful=false;this.responseData={};this.msgId=undefined;this.msg=undefined;if(!params){params={localeId:vReqBean.localeId};}else{params['localeId']=vReqBean.localeId;}
var that=this;$.ajax({url:this.url,type:'POST',cache:false,async:false,data:(params),success:function(msg){var responseData;if(typeof(msg)=='object'&&msg.requestStatus)
responseData=msg;else
responseData=$.secureEvalJSON(msg);if(!responseData){that.msgId="error";that.msg="Server Side Error: Data was not recieved.";}else if(responseData.requestStatus=="ok"){that.isSuccessful=true;that.responseData=responseData;}else{that.msgId=responseData.msgId;that.msg=responseData.msg;}},error:function(XMLHttpRequest,textStatus,errorThrown){that.msgId="error";that.msg="Communication Exception.\n"+errorThrown;}});return this.responseData;};}
function VServiceRegister(){VServiceBaseRequester.call(this,'/vservice/json/user/register');this.firstName=undefined;this.lastName=undefined;this.email=undefined;this.password=undefined;this.confirmPassword=undefined;this.rememberMe=undefined;this.emailOptIn=undefined;this.channelId=undefined;this.getResponse=function(params){return this._getResponse({firstName:this.firstName,lastName:this.lastName,email:this.email,password:this.password,confirmPassword:this.confirmPassword,rememberMe:this.rememberMe,emailOptIn:this.emailOptIn,channelId:this.channelId});};}
VServiceRegister.prototype=new VServiceBaseRequester;function VServiceUpdateProfile(){VServiceBaseRequester.call(this,'/vservice/json/user/updateprofile');this.firstName=undefined;this.lastName=undefined;this.email=undefined;this.oldPassword=undefined;this.password=undefined;this.confirmPassword=undefined;this.rememberMe=undefined;this.emailOptIn=undefined;this.getResponse=function(params){return this._getResponse({firstName:this.firstName,lastName:this.lastName,email:this.email,oldPassword:this.oldPassword,password:this.password,confirmPassword:this.confirmPassword,rememberMe:this.rememberMe,emailOptIn:this.emailOptIn});};}
VServiceUpdateProfile.prototype=new VServiceBaseRequester;function VServiceLogin(){VServiceBaseRequester.call(this,'/vservice/json/user/dologin');this.email=undefined;this.password=undefined;this.getResponse=function(params){return this._getResponse({email:this.email,password:this.password});};}
VServiceLogin.prototype=new VServiceBaseRequester;function VServiceLogout(){VServiceBaseRequester.call(this,'/vservice/json/user/dologout');this.getResponse=function(){return this._getResponse();};}
VServiceLogout.prototype=new VServiceBaseRequester;function VServiceForgotPassword(){VServiceBaseRequester.call(this,'/vservice/json/user/sendpassword');this.email=undefined;this.getResponse=function(){return this._getResponse({email:this.email});};}
VServiceForgotPassword.prototype=new VServiceBaseRequester;function VServiceCreateProject(){VServiceBaseRequester.call(this,'/vservice/json/user/createproject');this.projectName=undefined;this.getResponse=function(){return this._getResponse({projectName:this.projectName});};}
VServiceCreateProject.prototype=new VServiceBaseRequester;function VServiceDeleteProject(){VServiceBaseRequester.call(this,'/vservice/json/user/deleteproject');this.usrOrganizerListId=undefined;this.getResponse=function(){return this._getResponse({usrOrganizerListId:this.usrOrganizerListId});};}
VServiceDeleteProject.prototype=new VServiceBaseRequester;function VServiceRenameShoppingList(){VServiceBaseRequester.call(this,'/vservice/json/user/renameshoppinglist');this.shoppingListId=undefined;this.newName=undefined;this.getResponse=function(){return this._getResponse({shoppingListId:this.shoppingListId,newName:this.newName});};}
VServiceRenameShoppingList.prototype=new VServiceBaseRequester;function VServiceSaveOrgItem(){VServiceBaseRequester.call(this,'');this.usrOrganizerListId=undefined;this.orgListId=undefined;this.altListId=undefined;this.type=undefined;this.getResponse=function(params){var data={usrOrganizerListId:this.usrOrganizerListId};switch(this.type){case'color':this.url='/vservice/json/user/savecolor';data['colorId']=this.orgListId;break;case'palette':this.url='/vservice/json/user/savepalette';data['paletteId']=this.orgListId;break;case'stock_photo':this.url='/vservice/json/user/savestockphoto';data['stockPhotoId']=this.orgListId;if(this.altListId!=undefined)
data['paletteId']=this.altListId;break;case'user_photo':this.url='/vservice/json/user/savecustomphoto';data['userphotoId']=this.orgListId;break;case'shopping_list':this.url='/vservice/json/user/copyshoppinglist';data['shoppingListId']=this.orgListId;break;case'estimate':this.url='/vservice/json/user/copyestimate';data['listEstimateId']=this.orgListId;break;case'opencms_video':this.url='/vservice/json/user/saveopencmsitem';data['openCmsType']='video';data['openCmsUuid']=this.orgListId;break;case'opencms_product_paint':this.url='/vservice/json/user/saveopencmsitem';data['openCmsType']='product_paint';data['openCmsUuid']=this.orgListId;break;case'opencms_product_primer':this.url='/vservice/json/user/saveopencmsitem';data['openCmsType']='product_primer';data['openCmsUuid']=this.orgListId;break;case'opencms_find_ideas':this.url='/vservice/json/user/saveopencmsitem';data['openCmsType']='find_ideas';data['openCmsUuid']=this.orgListId;break;case'opencms_how_to':this.url='/vservice/json/user/saveopencmsitem';data['openCmsType']='how_to';data['openCmsUuid']=this.orgListId;break;case'opencms_article':this.url='/vservice/json/user/saveopencmsitem';data['openCmsType']='article';data['openCmsUuid']=this.orgListId;break;default:throw'Error: missing type in the case: '+this.type;}
return this._getResponse(data);};}
VServiceSaveOrgItem.prototype=new VServiceBaseRequester;function VServiceRemoveOrgItem(){VServiceBaseRequester.call(this,'');this.usrOrganizerListId=undefined;this.orgListId=undefined;this.type=undefined;this.getResponse=function(params){var data={usrOrganizerListId:this.usrOrganizerListId};switch(this.type){case'color':this.url='/vservice/json/user/deletesavedcolor';data['colorId']=this.orgListId;break;case'palette':this.url='/vservice/json/user/deletesavedpalette';data['paletteId']=this.orgListId;break;case'stock_photo':this.url='/vservice/json/user/deletesavedstockphoto';data['stockPhotoId']=this.orgListId;break;case'user_photo':this.url='/vservice/json/user/deletecustomphoto';data['userphotoId']=this.orgListId;break;case'shopping_list':this.url='/vservice/json/user/deleteshoppinglist';data['shoppingListId']=this.orgListId;break;case'estimate':this.url='/vservice/json/user/deleteestimate';data['listEstimateId']=this.orgListId;break;case'opencms_video':this.url='/vservice/json/user/deleteopencmsitem';data['openCmsType']='video';data['openCmsUuid']=this.orgListId;break;case'opencms_product_paint':this.url='/vservice/json/user/deleteopencmsitem';data['openCmsType']='product_paint';data['openCmsUuid']=this.orgListId;break;case'opencms_product_primer':this.url='/vservice/json/user/deleteopencmsitem';data['openCmsType']='product_primer';data['openCmsUuid']=this.orgListId;break;case'opencms_find_ideas':this.url='/vservice/json/user/deleteopencmsitem';data['openCmsType']='find_ideas';data['openCmsUuid']=this.orgListId;break;case'opencms_how_to':this.url='/vservice/json/user/deleteopencmsitem';data['openCmsType']='how_to';data['openCmsUuid']=this.orgListId;break;case'opencms_article':this.url='/vservice/json/user/deleteopencmsitem';data['openCmsType']='article';data['openCmsUuid']=this.orgListId;break;default:throw'Error: VService Request is missing the item type: '+this.type;}
return this._getResponse(data);};}
VServiceRemoveOrgItem.prototype=new VServiceBaseRequester;function saveItemToRootProject(type,itemId,altListId,callback){if(callback==undefined&&altListId!=undefined&&(typeof(altListId)=="function"||typeof(altListId)=='object')){callback=altListId;}
checkValsparUserCookie(function(){var vService=new VServiceSaveOrgItem();vService.type=type;vService.orgListId=itemId;vService.altListId=altListId;var data=vService.getResponse();if(vService.isSuccessful){animateItemAdded.show();if(data.duplicateFound==undefined||(typeof(data.duplicateFound)=='boolean'&&data.duplicateFound===false)||(typeof(data.duplicateFound)=='string'&&data.duplicateFound!='true')){topNav.addOneItem();if(callback!=undefined)
callback.call('ok');else
alert('Item has been saved');}else{if(callback!=undefined)
callback.call('duplicate');else
alert('Item is a duplicate');}}else{if(callback!=undefined)
callback.call('error');else
alert(vService.msg);}});}
var dockStation={id:"#dockwrap",msg:"<div class='dockinner'>Item Saved To: <a href='/en/my-projects/'>MY PROJECTS</a></div>",show:function(txt){$(this.id).html(((txt==0)||(typeof(txt)=="undefined"))?dockStation.msg:txt);$(this.id).slideToggle("slow");setTimeout('dockStation.hide()',2800);},hide:function(){$(this.id).slideToggle("slow");}}
var animateItemAdded={show:function(){$('.topNavBtnProjectsAdded').fadeIn('slow',function(){setTimeout(function(){animateItemAdded.hide();},2000);});dockStation.show();},hide:function(){$('.topNavBtnProjectsAdded').fadeOut('slow');}}
function VServiceOptIn(localeId,emailAddress){if(localeId!=null&&emailAddress!=null){$.post('/vservice/rest/user/optin',{localeId:localeId,email:emailAddress},function(data){if(data.getElementsByTagName("fault").length>0){overlayWindow.showDiv({url:'/en/other/subscribermail/optInMessage.html?page=failure&msg='+data.getElementsByTagName("msg")[0].childNodes[0].nodeValue});}
else{overlayWindow.showDiv({url:'/en/other/subscribermail/optInMessage.html?page=success'});}});}}
