if(!dojo._hasResource["wc.service.common"]){dojo._hasResource["wc.service.common"]=true;dojo.provide("wc.service.common");wc.service.services={};wc.service.getServiceById=function(a){return wc.service.services[a]};wc.service.declare=function(b){var a=new wc.service.Service(b);this.register(a);return a};wc.service.register=function(a){this.services[a.id]=a};wc.service.invoke=function(c,b){console.debug(" wc.service.invoke  : "+b);var a=this.getServiceById(c);if(a){a.invoke(b)}else{console.debug("Attempt to invoke an unregistered service: "+c)}};dojo.declare("wc.service.Service",null,{constructor:function(a){dojo.mixin(this,a)},id:undefined,actionId:undefined,url:undefined,formId:undefined,validateParameters:function(a){return true},validateForm:function(a){return true},successTest:function(a){return !a.errorMessage&&!a.errorMessageKey},successHandler:function(a){},failureHandler:function(a){var b=a.errorMessage;if(b){alert(b)}else{b=a.errorMessageKey;if(b){alert(b)}else{alert("Service request error.")}}},invoke:function(c){function a(i,g){var h="";if(c&&c[i]){h=c[i]}if(h==""&&d!=null&&d[i]){h=d[i];if(d[i].value!=null){h=d[i].value}}if(h==""&&g){var f=g;if(f.indexOf(i)!=-1){f=f.substring(f.indexOf(i));var j=f.split("&");var e=j[0].split("=");h=e[1]}}return h}var b=true;var d=null;if(this.formId){d=document.getElementById(this.formId)}if(d){b=this.validateForm(d)}if(b){b=this.validateParameters(c)}if(c){if(!c.requesttype){c.requesttype="ajax"}}else{c=[];c.requesttype="ajax"}console.debug("service formId = "+this.formId);if(b){dojo.xhrPost({url:this.url,handleAs:"json-comment-filtered",form:d,content:c,service:this,load:function(h,g){var e=g.args.service;h.serviceId=e.id;h.actionId=e.actionId;console.debug("Service response action id : "+h.actionId);for(var l in h){console.debug("  "+l+"="+h[l])}if(e.successTest(h)){e.successHandler(h);console.debug("success: publishing modelChanged event");dojo.publish("modelChanged",[h]);if(e.actionId){console.debug("success: publishing modelChanged/"+e.actionId+" event");dojo.publish("modelChanged/"+e.actionId,[h])}}else{var f=a("storeId",this.url);var k=a("catalogId",this.url);var j=a("langId",this.url);console.debug("error condition encountered - error code: "+h.errorCode);if(h.errorCode=="2500"){var i=h.originatingCommand;i=i.replace("?","%3F");i=i.replace(/&/g,"%26");i=i.replace(/=/g,"%3D");i="LogonForm?nextUrl="+i+"&storeId="+f+"&catalogId="+k+"&langId="+j+"&myAcctMain=1";console.debug("error type: ERR_USER_NOT_LOGGED_ON - only registered user can invoke the command");console.debug("redirecting to URL: "+i);document.location.href=i}else{if(h.errorCode=="2550"){var i=h.originatingCommand;i=i.replace("?","%3F");i=i.replace(/&/g,"%26");i=i.replace(/=/g,"%3D");i="AjaxLogonForm?nextUrl="+i+"&storeId="+f+"&catalogId="+k+"&langId="+j+"&myAcctMain=1";console.debug("error type: ERR_DIDNT_LOGON - the customer did not log on to the system.");console.debug("redirecting to URL: "+i);document.location.href=i}else{if(h.errorCode=="2530"){var i=h.originatingCommand;i=i.replace("?","%3F");i=i.replace(/&/g,"%26");i=i.replace(/=/g,"%3D");i="PasswordReEnterErrorView?nextUrl="+i+"&storeId="+f+"&catalogId="+k+"&langId="+j;console.debug("error type: ERR_PASSWORD_REREQUEST - password is required");console.debug("redirecting to URL: "+i);document.location.href=i}else{if(h.errorCode=="2510"){console.debug("error type: ERR_SESSION_TIMEOUT - use session has timed out");console.debug("redirecting to URL: Logoff?URL=ReLogonFormView&storeId="+f);document.location.href="Logoff?URL=ReLogonFormView&storeId="+f}else{if(h.errorCode=="2520"){console.debug("error type: ERR_PROHIBITED_CHAR - detected prohibited characters in request");console.debug("redirecting to URL: ProhibitedCharacterErrorView?storeId="+f+"&catalogId="+k+"&langId="+j);document.location.href="ProhibitedCharacterErrorView?storeId="+f+"&catalogId="+k+"&langId="+j}else{if(h.errorCode=="2540"){console.debug("error type: ERR_CSRF - cross site request forgery attempt was detected");console.debug("redirecting to URL: CrossSiteRequestForgeryErrorView?storeId="+f+"&catalogId="+k+"&langId="+j);document.location.href="CrossSiteRequestForgeryErrorView?storeId="+f+"&catalogId="+k+"&langId="+j}else{console.debug("calling service.failureHandler");e.failureHandler(h)}}}}}}}},error:function(f,e){var g=dojo.i18n.getLocalization("wc","common");console.debug("Warning: communication error while making the service call")}})}}})}if(!dojo._hasResource["wc.render.RefreshController"]){dojo._hasResource["wc.render.RefreshController"]=true;dojo.provide("wc.render.RefreshController");wc.render.refreshControllers={};wc.render.getRefreshControllerById=function(a){return wc.render.refreshControllers[a]};wc.render.declareRefreshController=function(b){var a=new wc.render.RefreshController(b);this.refreshControllers[b.id]=a;return a};dojo.declare("wc.render.RefreshController",null,{constructor:function(a){dojo.mixin(this,a);this.syncRCProperties();if(dojo.isFunction(this.renderContextChangedHandler)){if(this.renderContext==null||this.renderContext==undefined){console.debug("WARNING from RefreshController - renderContextChangedHandler function cannot be defined when renderContext is null or undefined. Controller id: "+this.id)}else{dojo.subscribe(this.renderContext.contextChangedEventName,this,"renderContextChanged")}}if(dojo.isFunction(this.modelChangedHandler)){dojo.subscribe("modelChanged",this,"modelChanged")}this.widgets={}},id:undefined,renderContext:undefined,url:undefined,mimetype:"text/html",renderContextChangedHandler:undefined,modelChangedHandler:undefined,postRefreshHandler:undefined,currentRCProperties:undefined,widgets:undefined,formId:undefined,addWidget:function(a){if(this.widgets[a.id]){console.debug("RefreshController.addWidget: duplicate widget ID "+a.id)}this.widgets[a.id]=a;console.debug("REFRESH CONTROLLER "+this.id+" ADDED THIS WIDGET..."+a+" with id = "+a.id)},removeWidget:function(a){if(typeof this.widgets=="undefined"){console.debug("this.widgets in RefreshController#removeWidget(widget) is not defined yet. No deletion is needed");return}delete this.widgets[a.id]},syncRCProperties:function(){if(this.renderContext){var a={};var b=this.renderContext.properties;for(var c in b){a[c]=b[c]}this.currentRCProperties=a}},renderContextChanged:function(b){for(var a in this.widgets){console.debug("Call renderContext changed handler for the widget..."+this.widgets[a]);this.renderContextChangedHandler(b,this.widgets[a])}this.syncRCProperties()},modelChanged:function(b){for(var a in this.widgets){this.modelChangedHandler(b,this.widgets[a])}},refreshHandler:function(b,a){b.setInnerHTML(a)},refresh:function(c,a){var b=null;if(this.formId){b=document.getElementById(this.formId)}if(a){if(!a.requesttype){a.requesttype="ajax"}}else{a=[];a.requesttype="ajax"}this.url=this.url.replace(/amp;/g,"");dojo.xhrPost({url:this.url,mimetype:this.mimetype,form:b,content:a,load:function(g){function j(q,o){var p="";if(a&&a[q]){p=a[q]}if(p==""&&b!=null&&b[q]){p=b[q];if(b[q].value!=null){p=b[q].value}}if(p==""&&o){var n=o;if(n.indexOf(q)!=-1){n=n.substring(n.indexOf(q));var r=n.split("&");var m=r[0].split("=");p=m[1]}}return p}var l=j("storeId",this.url);var f=j("catalogId",this.url);var i=j("langId",this.url);var d=g.indexOf("errorCode");if(d!=-1){var k=g.indexOf(",",d);var e=g.substring(d,k);console.debug("error condition encountered - error code: "+e);if(e.indexOf("2550")!=-1){console.debug("error type: ERR_DIDNT_LOGON - the customer did not log on to the system.");console.debug("redirecting to URL: AjaxLogonForm?storeId="+l+"&catalogId="+f+"&langId="+i+"&myAcctMain=1");document.location.href="AjaxLogonForm?storeId="+l+"&catalogId="+f+"&langId="+i+"&myAcctMain=1"}else{if(e.indexOf("2510")!=-1){console.debug("error type: ERR_SESSION_TIMEOUT - use session has timed out");console.debug("redirecting to URL: Logoff?URL=ReLogonFormView&storeId="+l);document.location.href="Logoff?URL=ReLogonFormView&storeId="+l}else{if(e.indexOf("2520")!=-1){console.debug("error type: ERR_PROHIBITED_CHAR - detected prohibited characters in request");console.debug("redirecting to URL: ProhibitedCharacterErrorView?storeId="+l+"&catalogId="+f+"&langId="+i);document.location.href="ProhibitedCharacterErrorView?storeId="+l+"&catalogId="+f+"&langId="+i}else{if(serviceResponse.errorCode=="2540"){console.debug("error type: ERR_CSRF - cross site request forgery attempt was detected");console.debug("redirecting to URL: CrossSiteRequestForgeryErrorView?storeId="+l+"&catalogId="+f+"&langId="+i);document.location.href="CrossSiteRequestForgeryErrorView?storeId="+l+"&catalogId="+f+"&langId="+i}}}}}else{var h=c.controller;console.debug("RefreshController.refresh - calling refreshHandler for "+c);h.refreshHandler(c,g);if(h.postRefreshHandler!=null){console.debug("RefreshController.refresh - calling postRefreshHandler for "+c);h.postRefreshHandler(c)}}},error:function(d){var e=dojo.i18n.getLocalization("wc","common");console.debug("Warning: communication error while updating the refresh area")}})},testForChangedRC:function(a){var d=false;for(var b=0;b<a.length;b++){var c=a[b];if(this.currentRCProperties[c]!=this.renderContext.properties[c]){d=true;break}}return d}})}if(!dojo._hasResource["wc.render.Context"]){dojo._hasResource["wc.render.Context"]=true;dojo.provide("wc.render.Context");wc.render.contexts={};wc.render.getContextById=function(a){return wc.render.contexts[a]};wc.render.updateContext=function(b,a){console.debug("wc.render.updateContext: "+b);wc.render.getContextById(b).update(a)};wc.render.declareContext=function(d,b,c){if(this.contexts[d]!=null&&this.contexts[d]!=""){console.debug("Render context with id =  "+d+" already exits.Please use a different id");return}var a=new wc.render.Context(d,b,c);this.contexts[d]=a;return a};dojo.declare("wc.render.Context",null,{constructor:function(c,b,a){this.id=c;this.properties=b?b:{};this.url=a;this.contextChangedEventName=c+"/RenderContextChanged"},id:undefined,properties:undefined,url:undefined,contextChangedEventName:undefined,update:function(e){if(!this.properties){this.properties={}}if(this.url){console.debug("wc.render.updateContext - url : "+this.url);var b={};for(var a in e){var d=e[a];if(typeof d=="undefined"){if(typeof b.clear=="undefined"){b.clear=[a]}else{b.clear.push(a)}}else{b["set_"+a]=d}}dojo.xhrPost({url:this.url,mimetype:"text/json",handleAs:"json",content:b,properties:this.properties,successEventName:this.contextChangedEventName,load:function(h){if(dojo.isArray(h.renderContextChanges)){for(var g=0;g<h.renderContextChanges.length;g++){var f=h.renderContextChanges[g];console.debug("updating render context: "+request.properties[f]+" = "+h[f]);request.properties[f]=h[f]}}console.debug("publishing "+this.successEventName+" event");dojo.publish(this.successEventName,[h])},error:function(g,f){var h=dojo.i18n.getLocalization("wc","common");console.debug("Warning: communication error while updating the context values")}})}else{console.debug("wc.render.updateContext - url not specified");var c={renderContextChanges:[]};for(var a in e){var d=e[a];if(d!=this.properties[a]){c.renderContextChanges.push(a);if(typeof d=="undefined"){delete this.properties[a]}else{this.properties[a]=d;c[a]=d;console.debug("updating render context: "+a+" = "+d)}}}console.debug("publishing "+this.contextChangedEventName+" event");dojo.publish(this.contextChangedEventName,[c])}}})};
