var mojo={Version:"0.1b"};dojo.provide("mojo.log");mojo.log=function(G,F,H,I){var J=mojo.widget.Logger;if(J&&J.log){return J.log(G,F,H,I)}else{return false}};dojo.provide("mojo.command.Behavior");dojo.declare("mojo.command.Behavior",null,{_requestObj:null,getRequest:function(){if(!this._requestObj){throw new Error("ERROR mojo.command.Behavior.getRequest - requestObj is not set")}return this._requestObj},_execute:function(A){this._requestObj=A;if(typeof (A.update)=="function"){A.update()}if(this._requestObj==null||(!this._requestObj)){throw new Error("ERROR mojo.command.Behavior._execute - requestObj is not set")}else{if(!(this._requestObj instanceof mojo.controller.Request)){throw new Error("ERROR mojo.command.Behavior._execute - requestObj is not type of mojo.controller.Request")}else{if(!this._requestObj.callerObj){throw new Error("ERROR mojo.command.Behavior._execute - callerObj is not set")}}}if(!this._requestObj.getParams()&&typeof (this._requestObj.getParams())=="boolean"){return }return this.execute(A)},execute:function(B){throw new Error("ERROR mojo.command.Behavior.execute - execute() method is not implemented")}});dojo.provide("mojo.command.Command");dojo.declare("mojo.command.Command",null,{_requestObj:null,getRequest:function(){if(!this._requestObj){throw new Error("ERROR mojo.command.Command.getRequest - requestObj is not set")}return this._requestObj},_execute:function(B){this._requestObj=B;if(typeof (B.update)=="function"){B.update()}if(this._requestObj==null||(!this._requestObj)){throw new Error("ERROR mojo.command.Command._execute - requestObj is not set")}else{if(!(this._requestObj instanceof mojo.controller.Request)){throw new Error("ERROR mojo.command.Command._execute - requestObj is not type of mojo.controller.Request")}}if(!this._requestObj.getParams()&&typeof (this._requestObj.getParams())=="boolean"){return }return this.execute(B)},execute:function(B){throw new Error("ERROR mojo.command.Command.execute - execute() method is not implemented")},onResponse:function(B){throw new Error("ERROR mojo.command.Command.onResponse - onResponse() method is not implemented")},onError:function(B){throw new Error("ERROR mojo.command.Command.onError - onError() method is not implemented")}});dojo.provide("mojo.command.Rule");dojo.declare("mojo.command.Rule",null,{_requestObj:null,getRequest:function(){if(!this._requestObj){throw new Error("ERROR mojo.command.Rule.getRequest -requestObj is not set")}return this._requestObj},_execute:function(D){this._requestObj=D;if(typeof (D.update)=="function"){D.update()}if(this._requestObj==null||(!this._requestObj)){throw new Error("ERROR mojo.command.Rule._execute - requestObj is not set")}else{if(!(this._requestObj instanceof mojo.controller.Request)){throw new Error("ERROR mojo.command.Rule._execute - requestObj is not type of mojo.controller.Request")}else{if(!this._requestObj.callerObj){throw new Error("ERROR mojo.command.Rule._execute - callerObj is not set")}else{if(!this._requestObj.invocation){throw new Error("ERROR mojo.command.Rule._execute - invocation is not set")}}}}try{if(this.execute(D)){return true}return false}catch(C){}},execute:function(B){if(this.condition(B)){return B.invocation.proceed()}},condition:function(B){throw new Error("ERROR mojo.command.Rule.condition - condition() method is not implemented")}});if(!dojo._hasResource["mojo.component.Template"]){dojo._hasResource["mojo.component.Template"]=true;dojo.provide("mojo.component.Template");dojo.require("dijit.dijit");dojo.require("dijit._Widget");dojo.require("dijit._Templated");dojo.require("dijit._Container");dojo.declare("mojo.component.Template",[dijit._Widget,dijit._Templated,dijit._Container],{initWithData:false,iterate:true,escapeHtml:false,escapeQuotes:false,modelSource:"",modelDependency:"",templateObj:[],templateConditions:[],_controllers:null,getModelSource:function(){if(!this.modelSource){return""}return this.modelSource},getModelDependency:function(){if(!this.modelDependency){return""}return this.modelDependency},_modelSourceHandle:null,_modelDependencyHandle:null,setModelSource:function(B){if(!B){throw new Error("ERROR mojo.component.Template.setModelSource - modelSource parameter is required")}if(typeof (B)!="string"){throw new Error("ERROR mojo.component.Template.setModelSource - modelSource parameter is not type String")}if(this.getModelSource().length>0){if(this._modelSourceHandle){mojo.Model.removeObserver(this._modelSourceHandle)}this.modelSource=B;this._modelSourceHandle=mojo.Model.addObserver(this.modelSource,this,"onModelUpdate");this.onModelUpdate()}},setModelDependency:function(B){if(!B&&B!=""){throw new Error("ERROR mojo.component.Template.setModelDependency - modelDependency parameter is required")}if(typeof (B)!="string"){throw new Error("ERROR mojo.component.Template.setModelDependency - modelDependency parameter is not type String")}this.modelDependency=B;if(this._modelDependencyHandle){mojo.Model.removeObserver(this._modelDependencyHandle)}if(this.modelDependency){this._modelDependencyHandle=mojo.Model.addObserver(this.modelDependency,this,"onModelDependencyUpdate")}this.onModelDependencyUpdate()},_getTemplateControllers:function(){var H=this.srcNodeRef.parentNode;var F=mojo.controller.Map.getInstance();var E=[];while(H!=null){if(H.mojoControllers){for(var G in H.mojoControllers){E.push(H.mojoControllers[G])}}H=H.parentNode}return E},buildRendering:function(){var M=mojo.query("*[dojoType=mojo.component.Template]",this.srcNodeRef);var L=M.length;for(var U=0;U<L;U++){var O=document.createTextNode("{cdata}");var V=document.createTextNode("{/cdata}");dojo.place(O,M[U],"before");dojo.place(V,M[U],"after")}var P=[];this.templateConditions=[];var Q=mojo.query("> [prototype]",this.srcNodeRef);for(var U=0,N,S;U<Q.length;U++){this.templateConditions[U]=Q[U].getAttribute("prototype");P[U]=Q[U].innerHTML;Q[U].style.display="none"}if(P.length==0){P[0]=this.srcNodeRef.innerHTML}for(var U=0,T=P.length;U<T;U++){P[U]=P[U].replace(/&lt;/g,"<").replace(/&gt;/g,">");P[U]=P[U].replace(/\%21/g,"!").replace(/\%7B/g,"{").replace(/\%7D/g,"}");P[U]=this._normalize(P[U]);P[U]=TrimPath.parseTemplate(P[U],this.srcNodeRef.id+":"+U)}this.templateObj=P;var R=this.srcNodeRef.childNodes;this.initWithData=((R.length>Q.length)&&Q.length>0);this.hide();this.setModelDependency(this.getModelDependency());this.setModelSource(this.getModelSource())},_bindToModel:function(){var modifiers={escapeQuotes:function(str){str=str.toString();str=str.replace(/\"/g,"&#34;");str=str.replace(/\'/g,"&#39;");return str}};var sModel=this.getModelSource();if(sModel.length>0&&mojo.Model.contains(sModel)&&this.srcNodeRef){var modelData=mojo.Model.get(sModel);var result=new Array();if(!dojo.isArray(modelData)){modelData=[modelData]}var modelDataLength=modelData.length;if(!this.iterate&&modelDataLength>0){modelDataLength=1}var iActiveTemplate=0;if(modelDataLength>0&&modelData[0]!=null){with(modelData[0]){for(var i=0,len=this.templateConditions.length;i<len;i++){try{if(this.templateConditions[i].toLowerCase()=="true"||eval(this.templateConditions[i])){iActiveTemplate=i;break}}catch(e){}}}}for(var i=0,len=modelDataLength;i<len;i++){if(modelData[i]){if(typeof (modelData[i])!="object"){var tmpModelData=modelData[i].toString();modelData[i]=new Object();modelData[i].data=tmpModelData}modelData[i].currentIndex=i;modelData[i].totalLength=len;if(this.escapeQuotes){modelData[i]._MODIFIERS=modifiers;modelData[i].content=modifiers.escapeQuotes(modelData[i].content)}result.push(this.templateObj[iActiveTemplate].process(modelData[i]))}}if(!this._controllers){this._controllers=this._getTemplateControllers()}var templateNode=this.srcNodeRef;var content=result.join("");templateNode.innerHTML="";templateNode.innerHTML=content;var inlineDijits=mojo.query("*[dojoType='mojo.component.Template']",this.srcNodeRef);var inlineDijitsLength=inlineDijits.length;var allowedAttributes=["escapeHtml","escapeQuotes","modelSource","modelDependency"];var attributeCount=allowedAttributes.length;for(var i=0;i<inlineDijitsLength;i++){var dijitParams={};var attributeAsTemplate;for(var j=0;j<attributeCount;j++){if(inlineDijits[i].getAttribute(allowedAttributes[j])){attributeValue=inlineDijits[i].getAttribute(allowedAttributes[j]);if(/[\!|\$]\{[^\}]*\}/.test(attributeValue)){attributeAsTemplate=this._normalize(attributeValue);attributeAsTemplate=TrimPath.parseTemplate(attributeAsTemplate);attributeValue=attributeAsTemplate.process(modelData[i])}dijitParams[allowedAttributes[j]]=attributeValue}}var newDijit=new mojo.component.Template(dijitParams,inlineDijits[i])}var parent=this.srcNodeRef.parentNode;while(parent!=null){if(parent.id&&dijit.byId(parent.id)){var widget=dijit.byId(parent.id);if(widget["sync"]&&typeof (widget["sync"])=="function"){widget.sync()}}parent=parent.parentNode}if(!this._controllers){this._controllers=this._getTemplateControllers()}if(this._controllers&&mojo.Model.contains("__mojoTemplateControllers")){var controllersLength=this._controllers.length;for(var i=0;i<controllersLength;i++){this._controllers[i].updateController=true;mojo.Model.get("__mojoTemplateControllers").push(this._controllers[i])}}this.show()}else{if(!this.initWithData){this.initWithData=false;this.hide()}}},hide:function(){if(this.srcNodeRef){dojo.style(this.srcNodeRef,"display","none")}},show:function(){if(this.srcNodeRef){dojo.style(this.srcNodeRef,"display","block")}},_replacedNode:null,_normalize:function(R){var J=/[\!|\$]\{[^\}]*\}/g;var L=R.match(J);var Q=R.split(J);var N=new Array();var M=0;if(L){M=L.length}for(var K=0;K<M;K++){N.push(Q[K]);var O="$"+L[K].substring(1);var P="";if(this.escapeHtml){P+="|escape"}if(this.escapeQuotes){P+="|escapeQuotes"}O=O.substring(0,O.length-1)+P+"}";N.push(O)}N.push(Q[M]);return N.join("")},onModelUpdate:function(){if(this.getModelDependency().length==0||this._dependencyMet){this._bindToModel()}},_dependencyMet:false,onModelDependencyUpdate:function(){if(this.getModelDependency().length>0&&mojo.Model.contains(this.getModelDependency())){this._dependencyMet=true;this.onModelUpdate()}else{this._dependencyMet=false}}})}dojo.provide("mojo.controller.Controller");dojo.declare("mojo.controller.Controller",null,{constructor:function(C,D){this._init(C,D)},_contextElementObj:null,_commands:new Array(),_connectHandles:new Array(),_queryCache:new Object(),_observers:new Object(),_tags:new Array(),_init:function(G,I){if(this.params){var J={};J.onChange=function(){};var H=this._getBaseProperty("params");for(var L in H){if(typeof H[L]=="object"){var K=H[L];J[L]=new mojo.controller.Param(L,dojo.clone(K.defaultValue),K.required,K.type,J);if(I){J[L].setValue(I[L])}}}for(var L in this.params){if(typeof this.params[L]=="object"){var K=this.params[L];J[L]=new mojo.controller.Param(L,dojo.clone(K.defaultValue),K.required,K.type,J);if(I){J[L].setValue(I[L])}}}this.params=J;J=null;I=null}this._contextElementObj=null;if(G){this._contextElementObj=G}this._commands=new Array();this._tags=new Array();this._connectHandles=new Array();this._callBaseMethod("addCommands");this.addCommands();this._addObservers();this._callBaseMethod("addIntercepts");this.addIntercepts();this.onInit();if(this.params){for(var L in this.params){if(typeof this.params[L]=="object"){var K=this.params[L];if(K.getValue()!=null){K.onChange()}}}}mojo.Messaging.subscribe("/mojo/controller/"+this.declaredClass+"/addObservers",this,"_addObservers");mojo.Messaging.subscribe("/mojo/controller/addObservers",this,"_addObservers")},getConfig:function(B){B=B.toLowerCase();switch(B){case"params":return this[B];break}return null},getValue:function(B){return this.params[B].getValue()},setValue:function(D,C){this.params[D].setValue(C)},getContextController:function(B){if(this.getContextElement()&&this.getContextElement().mojoControllers[B]){return this.getContextElement().mojoControllers[B]}return null},_getBaseProperty:function(propertyName){var superclass=eval(this.declaredClass+".superclass");if(superclass.declaredClass!="mojo.controller.Controller"&&superclass[propertyName]){return superclass[propertyName]}return null},_callBaseMethod:function(C){var D=this._getBaseProperty(C);if(D){D.call(this)}},getContextElement:function(){if(!this._contextElementObj){return null}return this._contextElementObj},onInit:function(){},_addObservers:function(){this._queryCache=new Object();this._observers=new Object();this._callBaseMethod("addObservers");this.addObservers();for(var H in this._queryCache){if(this._queryCache[H]["length"]){for(var F in this._observers[H]){if(this._observers[H][F]["length"]){var G=this._queryCache[H].length;for(var E=0;E<G;E++){this._addObserver(this._queryCache[H][E],F,this._observers[H][F])}}}}}this._queryCache=new Object();this._observers=new Object()},addObservers:function(){throw new Error("ERROR mojo.controller.Controller.addObservers - addObservers() method is not implemented")},removeObservers:function(){var C=this._connectHandles.length;for(var D=0;D<C;D++){dojo.disconnect(this._connectHandles[D])}},addObserver:function(N,R,O,Q){var M=function(B){if(!dojo.isArray(B)){return false}for(var A=0,C=B.length;A<C;A++){if(typeof (B[A])!="string"){return false}}return true};if(!N){return }if(!R){throw new Error("ERROR mojo.controller.Controller.addObserver - srcFunc is not set")}if(typeof (R)!="string"){throw new Error("ERROR mojo.controller.Controller.addObserver - srcFunc is not type String")}if(!O){throw new Error("ERROR mojo.controller.Controller.addObserver - cmdName is not set")}if(typeof (O)!="string"&&O!=null){throw new Error("ERROR mojo.controller.Controller.addObserver - cmdName is not type String")}if(typeof (N)=="string"||M(N)){if(!dojo.isArray(N)){N=[N]}for(var J=0,P=N.length;J<P;J++){var K=N[J];if(this.getContextElement()&&R.match(/^onclick|onmouse|onkey|onmove/)!=null){this._addObserver(this.getContextElement(),R,[{cmdName:O,paramsObj:Q,eventDelegate:K}])}else{if(!this._queryCache[K]){this._queryCache[K]=mojo.query(K,this.getContextElement())}if(!this._observers[K]){this._observers[K]=new Object()}if(!this._observers[K][R]){this._observers[K][R]=new Array()}var L=this._observers[K][R].length;this._observers[K][R][L]={cmdName:O,paramsObj:Q}}}}else{if(!dojo.isArray(N)){N=[N]}for(var J=0,P=N.length;J<P;J++){this._addObserver(N[J],R,[{cmdName:O,paramsObj:Q}])}}if(!(this._commands[O])||this._commands[O]==null){throw new Error("ERROR mojo.controller.Controller.addObserver - cmdName does not reference a Command in the Controller")}},_addObserver:function(O,K,N){var M=new Array();var T=N.length;for(var L=0;L<T;L++){if(typeof (N[L].eventDelegate)=="undefined"){N[L].eventDelegate=""}if(!this._observerIsTagged(O,K+N[L].eventDelegate,N[L])){M.push(N[L]);this._tagObserver(O,K+N[L].eventDelegate,N[L])}}if(!O.mojoObservers){O.mojoObservers=new Object()}if(!O.mojoObservers[K]){O.mojoObservers[K.toLowerCase()]=new Array()}if(M.length>0){var Q=this;var R=function(E){var F=function(H){var H=H||window.event;var I=H.target||H.srcElement;if(I.nodeType==3){I=I.parentNode}return I};if(Q.getContextElement()&&Q.getContextElement().parentNode==null){Q.removeObservers()}else{var D=M.length;for(var A=0;A<D;A++){if(typeof (mojo)!="undefined"){var B=O;if(M[A].eventDelegate.length>0){var G=F(E);B=mojo.queryMatch(G,M[A].eventDelegate,Q.getContextElement(),true)}if(B!=null){var C=Q._setRequest(M[A].paramsObj,B,E,M[A].cmdName);Q.fireCommandChain(M[A].cmdName,C)}}}}};var P=K.toLowerCase();if((P=="onmouseleave"||P=="onmouseenter")&&MooTools&&Element.Events.mouseleave&&Element.Events.mouseenter){$(O).addEvent(K.replace("on",""),R)}else{var S=dojo.connect(O,K,R);this._connectHandles.push(S)}O.mojoObservers[K.toLowerCase()].push(R)}},_tagObserver:function(G,I,J){if(!G.mojoObserve){G.mojoObserve=new Object()}if(typeof G.mojoObserve[this.declaredClass]=="undefined"){var H=this._tags.length;G.mojoObserve[this.declaredClass]=H;this._tags[H]=new Object()}var K=G.mojoObserve[this.declaredClass];var L=this._generateTagKey(I,J);if(this._tags[K]&&!this._tags[K][L]){this._tags[K][L]=true}},_generateTagKey:function(H,I){var J=H+"_"+I.cmdName;if(I.paramsObj){var G;if(typeof (I.paramsObj)=="function"){G=I.paramsObj.toString()}else{if(typeof (I.paramsObj)=="object"){for(var F in I.paramsObj){if(I.paramsObj[F]){G+=F+":"+I.paramsObj[F].toString()+","}}}}J+="_"+G}return J},_observerIsTagged:function(F,H,I){if(!F.mojoObserve){F.mojoObserve=new Object()}var G=false;var J=this._generateTagKey(H,I);if(typeof F.mojoObserve[this.declaredClass]!="undefined"&&this._tags[F.mojoObserve[this.declaredClass]]&&this._tags[F.mojoObserve[this.declaredClass]][J]){G=true}return G},addCommands:function(){throw new Error("ERROR mojo.controller.Controller.addCommands - addCommands() method is not implemented")},addCommand:function(cmdName,cmdObjPath){if(!cmdName){throw new Error("ERROR mojo.controller.Controller.addCommand - cmdName is not set")}if(typeof (cmdName)!="string"){throw new Error("ERROR mojo.controller.Controller.addCommand - cmdName is not type String")}if(!cmdObjPath){throw new Error("ERROR mojo.controller.Controller.addCommand - cmdObjPath is not set")}if(typeof (cmdObjPath)!="string"){throw new Error("ERROR mojo.controller.Controller.addCommand - cmdObjPath is not type String")}if(!this._commands[cmdName]){this._commands[cmdName]=new Array()}var addFunc=function(cmdName,cmdObjPath,thisObj){dojo.require(cmdObjPath);var cmdObj=eval("new "+cmdObjPath+"()");if((cmdObj instanceof mojo.command.Command)||(cmdObj instanceof mojo.command.Rule||(cmdObj instanceof mojo.command.Behavior))){thisObj._commands[cmdName].push(cmdObj)}else{throw new Error("ERROR mojo.controller.Controller.addCommand - Command object is not type mojo.command.Command or mojo.command.Behavior or mojo.command.Rule")}};addFunc(cmdName,cmdObjPath,this)},getCommand:function(B){if(!B){throw new Error("ERROR mojo.controller.Controller.getCommand - cmdName is not set")}if(typeof (B)!="string"){throw new Error("ERROR mojo.controller.Controller.getCommand - cmdName is not type String")}if(this._commands[B]){return this._commands[B][0]}throw new Error("ERROR mojo.controller.Controller.getCommand - cmdName does not reference a Command in the Controller")},getCommandChain:function(B){if(!B){throw new Error("ERROR mojo.controller.Controller.getCommandChain - cmdName is not set")}if(typeof (B)!="string"){throw new Error("ERROR mojo.controller.Controller.getCommandChain - cmdName is not type String")}if(!this._commands[B]){throw new Error("ERROR mojo.controller.Controller.getCommandChain - cmdName does not reference a Command in the Controller")}if(this._commands[B]){return this._commands[B]}return null},fireCommandChain:function(E,F){var G=this._commands[E].length;for(var H=0;H<G;H++){this._commands[E][H]._execute(F)}},addIntercepts:function(){throw new Error("ERROR mojo.controller.Controller.addIntercepts - addIntercepts() method is not implemented")},addIntercept:function(I,J,N,K){if(!I){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptType is not set")}if(typeof (I)!="string"){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptType is not type String")}if(I=="before"||I=="after"||I=="around"){}else{throw new Error('ERROR mojo.controller.Controller.addIntercept - interceptType is not "before", "after", or "around"')}if(!J){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptCmdName is not set")}if(typeof (J)!="string"){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptCmdName is not type String")}if(!N){throw new Error("ERROR mojo.controller.Controller.addIntercept - cmdName is not set")}if(typeof (N)!="string"){throw new Error("ERROR mojo.controller.Controller.addIntercept - cmdName is not type String")}if(J.toString()==N.toString()){throw new Error("ERROR mojo.controller.Controller.addIntercept - a command cannot add advice to itself")}if(!this._commands[J]){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptCmdName does not reference a Command in the Controller")}if(!this._commands[N]){throw new Error("ERROR mojo.controller.Controller.addIntercept - cmdName does not reference a Command in the Controller")}var M=this;var L=this.getCommand(J)["_execute"];var H=function(A){if(typeof (mojo)!="undefined"){requestObj=M._setRequest(K,A.args[0].callerObj,A.args[0].eventObj,N,A);M.fireCommandChain(N,requestObj)}};switch(I){case"before":this._commands[J][0]["_execute"]=function(){var A={args:arguments,calleeObj:this};H.apply(this,[A]);return L.apply(this,arguments)};break;case"after":this._commands[J][0]["_execute"]=function(){var A={args:arguments,calleeObj:this};L.apply(this,arguments);return H.apply(this,[A])};break;case"around":this._commands[J][0]["_execute"]=function(){var A={args:arguments,calleeObj:this};A.proceed=function(){return L.apply(this.calleeObj,this.args)};return H.apply(this,[A])};break}},_setRequest:function(I,G,K,L,J){var H=new mojo.controller.Request(I,G,K,L,this,J);return H}});mojo.controller.Controller.updateObservers=function(B){if(B){mojo.Messaging.publish("/mojo/controller/"+B+"/addObservers")}else{mojo.Messaging.publish("/mojo/controller/addObservers")}};dojo.provide("mojo.controller.Map");__mojoControllerMap=null;dojo.declare("mojo.controller.Map",null,{onComplete:function(){},constructor:function(){mojo.Messaging.subscribe("/mojo/controller/mapControllers",this,"mapControllers")},_controllers:new Array(),_siteMap:null,getSiteMap:function(){if(!this._siteMap){throw new Error("ERROR mojo.controller.Map - siteMap not set")}return this._siteMap},setSiteMap:function(H){if(H==null||typeof H=="undefined"){throw new Error("ERROR mojo.controller.Map.setSiteMap - siteMapObj parameter is required")}var L=function(){throw new Error('ERROR mojo.controller.Map.setSiteMap - siteMapObj parameter must consist of patterns in the format {pattern: "pattern", controllers: [{controller: "controller.path"}]}')};if(!dojo.isArray(H)){L()}for(var J=0,G=H.length;J<G;J++){var I=H[J];if(typeof I.pattern=="undefined"||I.pattern==null){L()}if(!dojo.isArray(I.controllers)){L()}for(var K=0,G=I.controllers.length;K<G;K++){if(typeof I.controllers[K].controller=="undefined"||!dojo.isString(I.controllers[K].controller)||I.controllers[K].controller==""){L()}}}for(pattern in H){}this._siteMap=H},mapControllers:function(K){var L=this.getSiteMap();var N=L.length;for(var R=0;R<N;R++){var P=L[R].pattern;if(typeof (P)=="string"){var M=[];if(K&&typeof (K)=="object"){M=mojo.query(P,K)}else{M=mojo.query(P)}var Q=M.length;for(var J=0;J<Q;J++){this._mapControllers(L[R].controllers,M[J])}}else{if(typeof (P)=="function"||typeof (P)=="object"){if(K&&typeof (K)=="string"){var O=new RegExp(P);if(O.test(K)){this._mapControllers(L[R].controllers)}}}else{alert(P);throw new Error("ERROR mojo.controller.Map - siteMap contains invalid pattern")}}}this.onComplete()},_mapControllers:function(J,H){var N=J.length;for(var L=0;L<N;L++){var K=J[L].controller;var I=J[L].params;if(djConfig&&djConfig.isDebug){try{this.mapController(K,H,I)}catch(M){console.debug("EXCEPTION: "+M.message+" in mojo.controller.Map.mapController() for controller: "+K)}}else{this.mapController(K,H,I)}}},mapController:function(controllerName,contextElementObj,controllerParams){if(controllerName==null||typeof controllerName=="undefined"){throw new Error("ERROR mojo.controller.Map.mapController - controllerName parameter is required")}if(!dojo.isString(controllerName)||controllerName==""){throw new Error("ERROR mojo.controller.Map.mapController - controllerName parameter must be a non-empty string")}dojo.require(controllerName);if(contextElementObj){if(!contextElementObj.mojoControllers){contextElementObj.mojoControllers={}}if(!contextElementObj.mojoControllers[controllerName]){contextElementObj.mojoControllers[controllerName]=eval("new "+controllerName+"(contextElementObj, controllerParams)");if(!(contextElementObj.mojoControllers[controllerName] instanceof mojo.controller.Controller)){throw new Error('ERROR mojo.controller.Map.mapController - "'+controllerName+'" must be an instance of mojo.controller.Controller')}}}else{if(!this._controllers[controllerName]){this._controllers[controllerName]=eval("new "+controllerName+"(null, controllerParams)");if(!(this._controllers[controllerName] instanceof mojo.controller.Controller)){throw new Error('ERROR mojo.controller.Map.mapController - "'+controllerName+'" must be an instance of mojo.controller.Controller')}}}}});mojo.controller.Map.mapControllers=function(B){mojo.Messaging.publish("/mojo/controller/mapControllers",[B])};mojo.controller.Map.getInstance=function(){if(__mojoControllerMap==null){__mojoControllerMap=new mojo.controller.Map()}return __mojoControllerMap};dojo.provide("mojo.controller.Param");dojo.declare("mojo.controller.Param",null,{constructor:function(I,F,G,H,J){this._value=null;this._defaultValue=null;this._params=null;this._type=null;this._name=I;this._defaultValue=F;if(H){this._type=H}if(J){this._params=J}this.setValue(this._defaultValue);if(typeof G=="boolean"){this._required=G}},_name:null,_value:null,_defaultValue:null,_required:false,_type:null,_params:null,getName:function(){return this._name},getValue:function(){return this._value},setValue:function(H){var F=mojo.helper.Validation.getInstance();var G=this.getRequired();var E=this.getType();if(G&&!F.isRequired(H)){throw new Error("ERROR mojo.controller.Param.setValue - value parameter is required")}if(typeof H=="undefined"){return }if(E&&!F.isType(H,{type:E})){throw new Error("RROR mojo.controller.Param.setValue - value parameter is invalid type")}if(this.getValue()!=H){this._value=H;this.onChange();if(this._params!=null&&this._params["onChange"]){this._params.onChange()}}},getDefaultValue:function(){return this._defaultValue},getRequired:function(){return this._required},getType:function(){return this._type},onChange:function(){}});dojo.provide("mojo.controller.Request");dojo.declare("mojo.controller.Request",null,{constructor:function(H,G,J,L,K,I){this._paramsFunc=null;this.paramsObj=null;this.callerObj=null;this.eventObj=null;this.commandName=null;this.controllerObj=null;this.invocation=null;if(typeof (H)=="function"){this.paramsObj={};this._paramsFunc=H}else{if(typeof (H)=="object"){this.paramsObj=H}}if(G==null||typeof G=="undefined"){throw new Error("ERROR mojo.controller.Request.constructor - callerObj is not set")}else{this.callerObj=G}this.eventObj=J;if(L==null||typeof L=="undefined"){throw new Error("ERROR mojo.controller.Request.constructor - commandName is not set")}else{if(typeof L!="string"){throw new Error("ERROR mojo.controller.Request.constructor - commandName is not type String")}else{this.commandName=L}}if(K==null||typeof K=="undefined"){throw new Error("ERROR mojo.controller.Request.constructor - controllerObj is not set")}else{if(!(K instanceof mojo.controller.Controller)){throw new Error("ERROR mojo.controller.Request.constructor - controllerObj is not type mojo.controller.Controller")}else{this.controllerObj=K}}this.invocation=I},_paramsFunc:null,paramsObj:null,callerObj:null,eventObj:null,commandName:null,controllerObj:null,invocation:null,update:function(){if(this._paramsFunc&&typeof (this._paramsFunc)=="function"){var C=this._paramsFunc(this.getContextElement(),this.getCaller(),this.getController());for(var D in C){this.paramsObj[D]=C[D]}}},getParams:function(){if(!this.paramsObj){this.update()}return this.paramsObj},getCaller:function(){return this.callerObj},getContextElement:function(){return this.getController().getContextElement()},getEvent:function(){return this.eventObj},getCommandName:function(){return this.commandName},getController:function(){return this.controllerObj},getControllerName:function(){return this.getController().declaredClass},getInvocation:function(){return this.invocation}});dojo.provide("mojo.helper.Events");mojo.fireEvent=function(F,D){var E=F.mojoObservers[D.toLowerCase()];if(E){E.forEach(function(A){A()})}};dojo.provide("mojo.helper.ObjectQuery");mojo.helper.ObjectQuery.select=function(F,I){var G=mojo.helper.ObjectQuery._createSchema(F);var J=TrimPath.makeQueryLang(G);var H=J.parseSQL(I);return H.filter(F)};mojo.helper.ObjectQuery._createSchema=function(J){var H={};if(J){if(dojo.isArray(J)){J=J[0]}for(var G in J){H[G]={};var F=J[G];if(dojo.isArray(F)){F=F[0]}for(var I in F){if(typeof (F[I]).toString().toLowerCase().indexOf("number")>-1){H[G][I]={type:"Number"}}else{H[G][I]={type:"String"}}}}}return H};dojo.provide("mojo.helper.String");mojo.toSentenceCase=function(B){return B.charAt(0).toUpperCase()+B.replace(/ \w/g,function(A){return A.toUpperCase()}).substring(1)};dojo.provide("mojo.helper.Validation");dojo.require("dojox.validate");dojo.require("dojox.validate.web");var __mojoHelperValidation=null;dojo.declare("mojo.helper.Validation",null,{isRequired:function(B){if(typeof B=="undefined"||B==null){return false}if(dojo.isString(B)){return dojo.string.trim(B).length>0}return true},isType:function(C,D){switch(D.type){case String:return(typeof C=="string"||C instanceof String);break;case Number:return(typeof C=="number"||C instanceof Number);break;case Boolean:return(typeof C=="boolean"||C instanceof Boolean);break;default:return(C instanceof D.type)}},isEmailAddress:function(B){if(B==null){throw new Error("ERROR mojo.helper.Validation.isEmailAddress - value parameter is required")}if(!dojo.isString(B)){throw new Error("ERROR mojo.helper.Validation.isEmailAddress - value parameter must be a non-empty string")}if(!dojox.validate.isEmailAddress(B,{})||B.match(/[^\w-_@\.]/gi)){return false}return true},isEmailAddressList:function(B){if(B==null){throw new Error("ERROR mojo.helper.Validation.isEmailAddressList - value parameter is required")}if(!dojo.isString(B)){throw new Error("ERROR mojo.helper.Validation.isEmailAddressList - value parameter must be a non-empty string")}if(!dojox.validate.isEmailAddressList(B,{})){return false}return true},isUrl:function(B){if(B==null){throw new Error("ERROR mojo.helper.Validation.isUrl - value parameter is required")}if(!dojo.isString(B)){throw new Error("ERROR mojo.helper.Validation.isUrl - value parameter must be a non-empty string")}return dojox.validate.isUrl(B,{allowLocal:true})},isLength:function(C,D){if((C==null)||(C=="")){return true}if(!dojo.isString(C)){throw new Error("ERROR mojo.helper.Validation.isLength - value parameter must be a string")}if(D){if(D.min&&D.min>C.length){return false}if(D.max&&D.max<C.length){return false}}return true},isRange:function(C,D){if((C==null)||(C=="")){return true}C=parseInt(C);if(isNaN(C)){return false}if(D){if(typeof (D.min)=="undefined"){D.min=0}if(D.min>C){return false}if(typeof (D.max)!="undefined"&&D.max<C){return false}}return true},isMatch:function(C,D){if((C==null)||(C=="")){return true}if(D){if(D.refValue){D.regex="^"+D.refValue+"$"}if(!(new RegExp(D.regex)).test(C)){return false}}return true},isZipCode:function(F){var H="0123456789-";var G=0;if((F==null)||(F=="")){return true}if(F.length!=5&&F.length!=10){return false}for(var E=0;E<F.length;E++){temp=""+F.substring(E,E+1);if(temp=="-"){G++}if(H.indexOf(temp)=="-1"){return false}if((G>1)||((F.length==10)&&""+F.charAt(5)!="-")){return false}}return true},isPostalCode:function(B){if(B==null){throw new Error("ERROR mojo.helper.Validation.isPostalCode - value parameter is required")}if(!dojo.isString(B)){throw new Error("ERROR mojo.helper.Validation.isPostalCode - value parameter must be a non-empty string")}if(typeof B=="undefined"||B==null){return false}if(B.length==6&&B.search(/^[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d$/)!=-1){return true}else{if(B.length==7&&B.search(/^[a-zA-Z]\d[a-zA-Z](-|\s)\d[a-zA-Z]\d$/)!=-1){return true}else{return false}}return true},execute:function(u,h){if(typeof u=="undefined"||u==null){throw new Error("ERROR mojo.helper.Validation.execute - rulesObj parameter is required")}if(typeof h=="undefined"||h==null){throw new Error("ERROR mojo.helper.Validation.execute - domElmListObj parameter is required")}var j=function(){throw new Error('ERROR mojo.helper.Validation.execute - rulesObj parameter must consist of rules in the format {"inputName": [{rule: testFunction[, errorMsg: "msg"]}[, ...]]}')};if(!dojo.isArray(h)){h=[h]}for(rule in u){if(!dojo.isArray(u[rule])){j()}for(var m=0,l=u[rule].length;m<l;m++){if(typeof u[rule][m].rule!="function"){j()}if(typeof u[rule][m].error!="undefined"&&!dojo.isString(u[rule][m].error)){j()}}}var x=function(A,B){if(!A){return null}do{A=A.nextSibling}while(A&&A.nodeType!=1);if(A&&B&&B.toLowerCase()!=A.tagName.toLowerCase()){return x(A,B)}return A};var AB=new Array();var z=h.length;for(var m=0;m<z;m++){var AA=mojo.query("*[name]",h[m]);if(h[m].name){AA.push(h[m])}var c=AA.length;for(var n=0;n<c;n++){AB.push(AA[n])}AB=mojo.distinct(AB);var k=mojo.query(".mojoValidationError",h[m]);var g=x(h[m],"SPAN");if(g!=null&&dojo.hasClass(g,"mojoValidationError")){k.push(g)}var d=k.length;for(var n=0;n<d;n++){dojo._destroyElement(k[n])}}var o=true;var y=new Array();var t=function(A){var B=true;while(A!=null){if(dojo.style(A,"visibility")=="hidden"||dojo.style(A,"display")=="none"){B=false;break}A=(A.tagName=="BODY")?null:A.parentNode}return B};var q=AB.length;var f={};for(var m=(q-1);m>=0;m--){var v=AB[m];if(v.type=="radio"||v.type=="checkbox"){v.mojoValidationGroup=true;if(!f[v.name]){f[v.name]=new Array()}else{AB[m]=null}if(v.checked){f[v.name].push((v.value)?v.value:"checked")}}}for(var m=0;m<q;m++){var v=AB[m];if(v){if(u[v.name]){var a=u[v.name];var w=a.length;for(var n=0;n<w;n++){var AC=a[n];if(AC["force"]||(t(v)&&!v.disabled)||(v.type&&v.type=="hidden")){if(AC.params&&AC.params.ref){var b=mojo.queryFirst('*[name="'+AC.params.ref+'"]').value;if(b&&b.length>0){AC.params.refValue=b}}var r=v.value;if(v.mojoValidationGroup){r=f[v.name].toString()}if(!(AC.rule(r,AC.params))){var p={element:v,message:AC["errorMsg"]};y.push(p);o=false;break}}}}}}return y}});mojo.helper.Validation.getInstance=function(){if(__mojoHelperValidation==null){__mojoHelperValidation=new mojo.helper.Validation()}return __mojoHelperValidation};dojo.provide("mojo.helper.view.Error");mojo.helper.view.Error.showElementErrors=function(H,K){var G=H.length;for(var J=0;J<G;J++){var L=H[J];var I=document.createElement("span");I.className="mojoValidationError";I.innerHTML=L.message;if(K!=null){K.appendChild(I)}else{if(L.element.type=="checkbox"){if(L.element.parentNode.tagName=="LABEL"){dojo.place(I,L.element.parentNode,"after")}else{dojo.place(I,L.element,"after")}}else{dojo.place(I,L.element,"after")}}}};dojo.provide("mojo.History");var __mojoHistory=null;dojo.declare("mojo.History",null,{constructor:function(){var B=this;if(typeof rsh!="undefined"&&rsh["dhtmlHistory"]&&rsh["dhtmlHistory"]["_isIE"]){rsh.dhtmlHistory.init();dojo.connect(rsh.dhtmlHistory,"_fireHistoryEvent",function(A){B.setHash(A);B._execute()})}else{this._interval=window.setInterval(function(){B._execute()},100)}B._execute()},_interval:null,_defaultHash:"",_savedHash:"",_paramsObj:null,_topic:null,onChange:function(){},getHash:function(){var B=window.location.hash;if(B.length>0){B=B.substring(1)}if(B.toLowerCase()=="null"||B.toLowerCase()=="undefined"){B=""}if(B.length==0&&this._defaultHash.length>0){B=this._defaultHash}return B},setHash:function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.History.setHash - newHash parameter is required")}if(!dojo.isString(B)||B==""){throw new Error("ERROR mojo.History.setHash - newHash parameter must be a non-empty string")}window.location.hash=B},setDefault:function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.History.setDefault - defaultHashObj parameter is required")}if(typeof (B)=="string"){this._defaultHash=B}else{if(typeof (B)=="object"){this._defaultHash=this._parseObj(B)}}this._execute()},_execute:function(){var B=this.getHash();if(B.length==0&&this._defaultHash.length>0){B=this._defaultHash}if(this._savedHash!=B){document.title=document.title.replace(window.location.hash,"");this._savedHash=B;this._paramsObj=this._parseHash(this._savedHash);this._topic=this._paramsObj["topic"]||null;this.onChange();if(this._topic){mojo.Messaging.publish(this._topic,this._paramsObj)}}},_parseHash:function(H){var I=new Object();var J=H.split("&");for(var F=0;F<J.length;F++){var G=J[F].split("=");if(G.length==2){I[G[0]]=unescape(G[1])}}return I},_parseObj:function(G){var F=new Array();for(var E in G){F.push(E+"="+escape(G[E].toString()))}var H=F.join("&");return H},getParams:function(){return this._paramsObj},getTopic:function(){return this._topic}});mojo.History.getInstance=function(){if(__mojoHistory==null){__mojoHistory=new mojo.History()}return __mojoHistory};dojo.provide("mojo.log");mojo.log=function(F,E,G,H){if(!mojo.widget.Logger._enabled){return false}else{return mojo.widget.Logger.log(F,E,G,H)}};dojo.provide("mojo.*");dojo.provide("mojo.Messaging");__mojoMessagingTopics=new Array();mojo.Messaging.publish=function(F,E){if(F==null||typeof F=="undefined"){throw new Error("ERROR mojo.Messaging.publish - topic parameter is required")}if(!dojo.isString(F)||F==""){throw new Error("ERROR mojo.Messaging.publish - topic parameter must be a non-empty string")}var D=mojo.Messaging.getTopic(F);D.setMessage(E);D.onPublish(E);if(!dojo.isArray(E)){E=[E]}dojo.publish(F,E);D.setMessage(null)};mojo.Messaging.subscribe=function(D,F,E){if(D==null||typeof D=="undefined"){throw new Error("ERROR mojo.Messaging.subscribe - topic parameter is required")}if(!dojo.isString(D)||D==""){throw new Error("ERROR mojo.Messaging.subscribe - topic parameter must be a non-empty string")}if(!dojo.isObject(F)&&!dojo.isString(F)){throw new Error("ERROR mojo.Messaging.subscribe - targetObj parameter must be an object or a string")}mojo.Messaging.getTopic(D);return dojo.subscribe(D,F,E)};mojo.Messaging.unsubscribe=function(B){dojo.unsubscribe(B)};mojo.Messaging.getTopic=function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.Messaging.getTopic - topic parameter is required")}if(!dojo.isString(B)||B==""){throw new Error("ERROR mojo.Messaging.getTopic - topic parameter must be a non-empty string")}if(!__mojoMessagingTopics[B]){__mojoMessagingTopics[B]=new mojo.MessagingTopic(B)}return __mojoMessagingTopics[B]};dojo.provide("mojo.MessagingTopic");dojo.declare("mojo.MessagingTopic",null,{onPublish:function(){},constructor:function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.MessagingTopic - topic parameter is required")}if(typeof B=="string"){if(B==""){throw new Error("ERROR mojo.MessagingTopic - topic parameter must be a non-empty string")}}else{throw new Error("ERROR mojo.MessagingTopic - topic parameter is not type String")}this._topic=B;__mojoMessagingTopics[B]=this},_topic:null,_messageObj:null,getTopic:function(){return this._topic},getMessage:function(){return this._messageObj},setMessage:function(B){this._messageObj=B}});dojo.provide("mojo.Model");__mojoModel=new Array();__mojoModelReferences=new Array();mojo.Model.set=function(C,D){if(C==null||typeof C=="undefined"){throw new Error("ERROR mojo.Model.set - key parameter is required")}if(!dojo.isString(C)||C==""){throw new Error("ERROR mojo.Model.set - key parameter must be a non-empty string")}__mojoModel[C]=D;mojo.Model.notify(C)};mojo.Model.add=function(H,F){if(H==null||typeof H=="undefined"){throw new Error("ERROR mojo.Model.add - key parameter is required")}if(!dojo.isString(H)||H==""){throw new Error("ERROR mojo.Model.add - key parameter must be a non-empty string")}if(F==null||typeof F=="undefined"){throw new Error("ERROR mojo.Model.add - valueObj parameter is required")}if(F==""){throw new Error("ERROR mojo.Model.add - valueObj parameter must be a non-empty string")}if(mojo.Model.contains(H)){if(!dojo.isArray(__mojoModel[H])){var G=__mojoModel[H];__mojoModel[H]=new Array();__mojoModel[H].push(G)}if(dojo.isArray(F)){for(var E=0;E<F.length;E++){__mojoModel[H].push(F[E])}}else{__mojoModel[H].push(F)}mojo.Model.notify(H)}else{mojo.Model.set(H,F)}};mojo.Model.get=function(D){if(D==null||typeof D=="undefined"){throw new Error("ERROR mojo.Model.get - key parameter is required")}if(!dojo.isString(D)||D==""){throw new Error("ERROR mojo.Model.get - key parameter must be a non-empty string")}var C=__mojoModel[D];if(typeof C=="undefined"){C=null}if(djConfig&&djConfig.isDebug){console.debug('WARNING mojo.Model - No entry found for "'+D+'" key')}return C};mojo.Model.getReference=function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.Model.getReference - key parameter is required")}if(!dojo.isString(B)||B==""){throw new Error("ERROR mojo.Model.getReference - key parameter must be a non-empty string")}if(!__mojoModelReferences[B]){__mojoModelReferences[B]=new mojo.ModelReference(B)}return __mojoModelReferences[B]};mojo.Model.remove=function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.Model.remove - key parameter is required")}if(!dojo.isString(B)||B==""){throw new Error("ERROR mojo.Model.remove - key parameter must be a non-empty string")}__mojoModel[B]=null;mojo.Model.notify(B)};mojo.Model.contains=function(D){if(D==null||typeof D=="undefined"){throw new Error("ERROR mojo.Model.contains - key parameter is required")}if(!dojo.isString(D)||D==""){throw new Error("ERROR mojo.Model.contains - key parameter must be a non-empty string")}var C=__mojoModel[D];if(C){return true}return false};mojo.Model.notify=function(I){if(I==null||typeof I=="undefined"){throw new Error("ERROR mojo.Model.notify - key parameter is required")}if(!dojo.isString(I)||I==""){throw new Error("ERROR mojo.Model.notify - key parameter must be a non-empty string")}__mojoModel["__mojoTemplateControllers"]=[];var H=mojo.Model.getReference(I);H.onNotify();mojo.Messaging.publish("/mojo/model/"+I);var G=__mojoModel["__mojoTemplateControllers"].length;for(var J=0;J<G;J++){var F=__mojoModel["__mojoTemplateControllers"][J];if(F&&F.updateController){F._addObservers();F.updateController=null}}__mojoModel["__mojoTemplateControllers"]=null};mojo.Model.addObserver=function(F,D,E){if(F==null||typeof F=="undefined"){throw new Error("ERROR mojo.Model.addObserver - key parameter is required")}if(!dojo.isString(F)||F==""){throw new Error("ERROR mojo.Model.addObserver - key parameter must be a non-empty string")}if(D==null||typeof D=="undefined"){throw new Error("ERROR mojo.Model.addObserver - targetObj parameter is required")}if(!dojo.isObject(D)){throw new Error("ERROR mojo.Model.addObserver - targetObj parameter must be an object")}if(E==null||typeof E=="undefined"){throw new Error("ERROR mojo.Model.addObserver - targetFunc parameter is required")}if(!dojo.isString(E)||E==""){throw new Error("ERROR mojo.Model.addObserver - targetFunc parameter must be a function and is not of type string")}return mojo.Messaging.subscribe("/mojo/model/"+F,D,E)};mojo.Model.removeObserver=function(B){if(B==null||typeof B!="object"){throw new Error("ERROR mojo.Model.removeObserver - handle parameter is required")}mojo.Messaging.unsubscribe(B)};dojo.provide("mojo.ModelReference");dojo.declare("mojo.ModelReference",null,{onNotify:function(){},constructor:function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.ModelReference - key parameter is required")}if(!dojo.isString(B)||B==""){throw new Error("ERROR mojo.ModelReference - key parameter must be a non-empty string")}this._key=B;__mojoModelReferences[B]=this},_key:null,getKey:function(){return this._key},getValue:function(){return mojo.Model.get(this._key)},setValue:function(B){mojo.Model.set(this._key,B)}});dojo.provide("mojo.query");mojo.query=function(F,G){if(G&&(typeof G=="string"||typeof G=="object")){var H=dojo.query(F,G)}else{if((new RegExp(/^\#[a-zA-Z0-9\-\_]*$/)).test(F)){var E=document.getElementById(F.substring(1));if(E){var H=[E]}else{var H=[]}}else{var H=dojo.query(F)}}return H};mojo.queryFirst=function(E,F){var D=mojo.query(E,F);if(D.length>0){return D[0]}return null};mojo.distinct=function(I){if(I.length==0){return I}var K=[],H;for(var L=0,G=I.length;L<G;L++){if(!(H=I[L])._counted){H._counted=true;K.push(H)}}for(var L=0,J;J=K[L];L++){J._counted=undefined}return K};mojo.queryMatch=function(P,J,L,O){if(!P||P==L){return null}var K=false;var M=[];if((new RegExp(/^[\#|\.]?[a-zA-Z0-9\-\_]+$/)).test(J)){K=true}else{M=mojo.query(J,L)}while(P&&P!=L){if(K){if((J.indexOf("#")==0&&P.id==J.substring(1))||(J.indexOf(".")==0&&dojo.hasClass(P,J.substring(1)))||(P.tagName.toLowerCase()==J.toLowerCase())){return P}}else{for(var N=0,I=M.length;N<I;N++){if(M[N]==P){return P}}}if(O){P=P.parentNode}else{break}}return null};dojo.provide("mojo.service.Delegate");dojo.declare("mojo.service.Delegate",null,{constructor:function(B){this._callerObj=B},_callerObj:null,getCaller:function(){return this._callerObj},setCaller:function(B){this._callerObj=B}});dojo.provide("mojo.service.Locator");__mojoServiceRegistry=new Array();dojo.declare("mojo.service.Locator",null,{constructor:function(){if(__mojoServiceRegistry.length==0){this.addServices()}},addServices:function(){if(djConfig&&djConfig.isDebug){console.debug("ERROR mojo.service.Locator - addServices() not implemented")}},addService:function(C){if(C==null||typeof C=="undefined"){throw (new Error("ERROR mojo.service.Locator.addService - serviceObj parameter is required"))}if(!(C instanceof mojo.service.Service)){throw (new Error("ERROR mojo.service.Locator.addService - serviceObj parameter must be an instance of the mojo.service.Service class"))}var D=C.getName();if(!__mojoServiceRegistry[D]){__mojoServiceRegistry[D]=C}else{throw (new Error('ERROR mojo.service.Locator.addService - service with the name "'+D+'" already exists in the registry; service not added'))}},getService:function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.service.Locator.getService - name parameter is required")}if(!dojo.isString(B)||B==""){throw new Error("ERROR mojo.service.Locator.getService - name parameter must be a non-empty string")}return __mojoServiceRegistry[B]||null}});dojo.provide("mojo.service.Service");dojo.declare("mojo.service.Service",null,{VALID_METHODS:["GET","POST","PUT","DELETE"],DEFAULT_PARAMS:{json:true,method:"GET",cacheExpiry:0,cache:true,retry:1,hijax:false},constructor:function(E,H,G){if(E==null||typeof E=="undefined"){throw new Error("ERROR mojo.service.Service.constructor - name parameter is required")}if(!dojo.isString(E)||E==""){throw new Error("ERROR mojo.service.Service.constructor - name parameter must be a non-empty string")}if(H==null||typeof H=="undefined"){throw new Error("ERROR mojo.service.Service.constructor - uri parameter is required")}if(!dojo.isString(H)||H==""){throw new Error("ERROR mojo.service.Service.constructor - uri parameter must be a non-empty string")}var F={};for(property in this.DEFAULT_PARAMS){F[property]=this.DEFAULT_PARAMS[property]}if(E.toLowerCase().indexOf("add")==0){F.method="POST"}else{if(E.toLowerCase().indexOf("update")==0){F.method="PUT"}else{if(E.toLowerCase().indexOf("delete")==0){F.method="DELETE"}}}if(G){if(G.method){if(G.method!="GET"){F.cache=false}}else{if(F.method!="GET"){F.cache=false}}if(G.method){if(G.method!="GET"){F.retry=0}}else{if(F.method!="GET"){F.retry=0}}}if(G){for(property in G){F[property]=G[property]}}this.setName(E);this.setUri(H);this.setParams(F)},_name:"",_uri:"",_params:new Object(),getName:function(){return this._name},setName:function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.service.Service.setName - name parameter is required")}if(!dojo.isString(B)||B==""){throw new Error("ERROR mojo.service.Service.setName - name parameter must be a non-empty string")}this._name=B},getUri:function(){return this._uri},setUri:function(B){if(B==null||typeof B=="undefined"){throw new Error("ERROR mojo.service.Service.setUri - uri parameter is required")}if(!dojo.isString(B)||B==""){throw new Error("ERROR mojo.service.Service.setUri - uri parameter must be a non-empty string")}this._uri=B},getParams:function(){return this._paramsObj},setParams:function(F){if(!F){throw new Error("ERROR mojo.service.Service.setParams - paramsObj parameter is required")}if(F){for(property in F){switch(property){case"json":case"hijax":case"cache":if(typeof F[property]!="boolean"){throw new Error("ERROR mojo.service.Service.setParams - "+property+" property of paramsObj must be a boolean")}break;case"cacheExpiry":case"retry":if(typeof F[property]!="number"){throw new Error("ERROR mojo.service.Service.setParams - "+property+" property of paramsObj must be a number")}break;case"method":var H=false;for(var G=0,E=this.VALID_METHODS.length;G<E;G++){if(this.VALID_METHODS[G]==F[property].toUpperCase()){H=true}}if(!H){throw new Error('ERROR mojo.service.Service.setParams - method property of paramsObj must be one of "GET", "POST", "PUT", or "DELETE"')}break}}}if(!this._paramsObj){this._paramsObj={}}for(property in F){this._paramsObj[property]=F[property]}},invoke:function(paramsObj,callerObj){if(!callerObj){throw new Error("ERROR mojo.service.Service.invoke - callerObj parameter is required")}if(!dojo.isObject(callerObj)){throw new Error("ERROR mojo.service.Service.invoke - callerObj parameter must be an object")}if(typeof callerObj.onResponse!="function"){throw new Error("ERROR mojo.service.Service.invoke - callerObj parameter must contain an object with an onResponse method")}if(typeof callerObj.onError!="function"){throw new Error("ERROR mojo.service.Service.invoke - callerObj parameter must contain an object with an onError method")}var serviceParams=this.getParams();if(typeof TrimPath!="undefined"&&TrimPath.parseTemplate){var uriFinal=TrimPath.parseTemplate(this.getUri()).process(paramsObj);if(paramsObj&&paramsObj["_MODIFIERS"]&&paramsObj["defined"]){delete paramsObj["_MODIFIERS"];delete paramsObj["defined"]}}else{var uriFinal=this.getUri()}if(serviceParams.hijax&&callerObj.getRequest()&&callerObj.getRequest().callerObj&&callerObj.getRequest().callerObj.tagName=="A"){uriFinal=callerObj.getRequest().callerObj.href}var tried=0;var serializeName=this.getName();var pairs=new Array();for(var key in paramsObj){if(typeof (paramsObj[key])!="function"){pairs.push(key+"_"+paramsObj[key])}else{pairs.push(key+"__function")}}if(pairs.length>0){serializeName+="_"+pairs.join("_")}var errorCallback=function(errorObj,httpObj){var errors=new Array();if(httpObj){errorObj.code=httpObj.status;errors.push(errorObj)}if(typeof (errorObj)=="string"){var msg=errorObj;errorObj=new Object();errorObj.message=msg}if(errorObj.name){errorObj.code=errorObj.name;errors.push(errorObj)}if(errorObj.errors){errors=errorObj.errors}if(errorObj.error){errors.push(errorObj.error)}if(errors[0]["redirectUrl"]){window.location.replace(errors[0]["redirectUrl"])}if(httpObj&&serviceParams.retry>=tried){serviceInvoke()}else{callerObj.onError(errors)}};var thisObj=this;var serviceInvoke=function(){return dojo["xhr"+mojo.toSentenceCase(serviceParams.method.toLowerCase())]({url:uriFinal,preventCache:(!serviceParams.cache&&serviceParams.method=="GET"),handleAs:serviceParams.json?"json":"text",content:paramsObj,load:function(response,ioArgs){tried++;if(ioArgs.handleAs=="json"){if(!dojo.isObject(response)){try{response=eval(response)}catch(ex){errorCallback(ex);return }}if(response.error||response.errors){errorCallback(response)}else{if(serviceParams.cache){thisObj._setCache(serializeName,response,serviceParams.cacheExpiry)}callerObj.onResponse(response,ioArgs.args.content)}}else{if(serviceParams.cache){thisObj._setCache(serializeName,response,serviceParams.cacheExpiry)}callerObj.onResponse(response,ioArgs.args.content)}},error:function(response,ioArgs){tried++;errorCallback(response,ioArgs.xhr)}})};var cacheObj;if(serviceParams.cache){cacheObj=this._getCache(serializeName)}if(cacheObj){callerObj.onResponse(cacheObj.data,paramsObj)}else{var currentXhr=serviceInvoke()}return currentXhr},_setCache:function(E,F,G){var H=0;if(G>0){H=(new Date()).getTime()+(G*1000)}mojo.Model.set(E,{data:F,expiryTime:H})},_getCache:function(E){var D=null;if(mojo.Model.contains(E)){D=mojo.Model.get(E);var F=(new Date()).getTime();if(D.expiryTime>0&&F>D.expiryTime){mojo.Model.remove(E);D=null}}return D}});dojo.provide("mojo.widget.Logger");mojo.widget.Logger={_stack:[],_reader:null,_loader:false,_enabled:false,_categories:["info","warn","error"],_sources:["Controller","Command","Behavior","Rule","Service","Model","History","Template"]};mojo.widget.Logger._expandBox=function(C){var D=C.nextSibling.nextSibling;if(D.style.display=="block"){D.style.display="none"}else{D.style.display="block"}};mojo.widget.Logger._loadLogger=function(){var F=mojo.widget.Logger.getSources();var D=mojo.widget.Logger.getCategories();YAHOO.widget.Logger.sources=F;YAHOO.widget.Logger.categories=D;var E=document.createElement("div");E.id="mojo_logger_div_id";mojo.widget.Logger._reader=new YAHOO.widget.LogReader(document.body.appendChild(E),{verboseOutpt:false,newestOnTop:false,draggable:true})};mojo.widget.Logger.log=function(Q,Z,Y,T){if(this._enabled){if(!Z){Z="info"}else{if(YAHOO.widget.Logger._isNewCategory(Z)){YAHOO.widget.Logger._createNewCategory(Z)}}var O="global";var R=null;if(Y){var b=Y.indexOf(" ");if(b>0){O=Y.substring(0,b);R=Y.substring(b,Y.length)}else{O=Y;if(YAHOO.widget.Logger._isNewSource(O)){YAHOO.widget.Logger._createNewSource(O)}}}var V=null;var U=function(A){if(typeof A.toSource!=="undefined"&&typeof A.callee==="undefined"){return A.toSource()}switch(typeof A){case"number":case"boolean":case"function":return A;break;case"string":return"'"+A+"'";break;case"object":var B;if(A.constructor===Array||typeof A.callee!=="undefined"){B="[";var C,E=A.length;for(C=0;C<E-1;C++){B+=U(A[C])+","}B+=U(A[C])+"]"}else{B="{";var D;for(D in A){B+=D+":"+U(A[D])+",\n"}B=B.replace(/\,$/,"")+"}"}return B;break;default:return"UNKNOWN";break}};try{if(T){V=U(T);V=YAHOO.lang.JSON.stringify(V);V=V.replace(/\{\}/gi,"Object");V=V.replace(/\\\"/gi,'"');Q=Q+" [ (startanchor) href='#' onclick='mojo.widget.Logger._expandBox(this);return false;' (/startanchor) Toggle (endanchor) ] \n((("+V+")))"}}catch(P){}var X=new Date();var S=new YAHOO.widget.LogMsg({msg:Q,time:X,category:Z,source:O,sourceDetail:R});var W=YAHOO.widget.Logger._stack;var a=YAHOO.widget.Logger.maxStackEntries;if(a&&!isNaN(a)&&(W.length>=a)){W.shift()}W.push(S);YAHOO.widget.Logger.newLogEvent.fire(S);if(YAHOO.widget.Logger._browserConsoleEnabled){YAHOO.widget.Logger._printToBrowserConsole(S)}return true}else{return false}};mojo.widget.Logger.reset=function(){YAHOO.widget.Logger.reset()};mojo.widget.Logger.getReader=function(){return mojo.widget.Logger._reader};mojo.widget.Logger.isEnabled=function(){return mojo.widget.Logger._enabled};mojo.widget.Logger.enable=function(){if(!mojo.widget.Logger._loaded){mojo.widget.Logger._loaded=true;mojo.widget.Logger._enabled=true;mojo.widget.Logger._loadLogger()}};mojo.widget.Logger.disable=function(){};mojo.widget.Logger.getCategories=function(){return mojo.widget.Logger._categories};mojo.widget.Logger.setCategories=function(B){mojo.widget.Logger._categories=B};mojo.widget.Logger.getSources=function(){return mojo.widget.Logger._sources};mojo.widget.Logger.setSources=function(B){mojo.widget.Logger._sources=B};dojo.provide("extLib.trimpath.query");if(typeof (TrimPath)=="undefined"){TrimPath={}}(function(){var theEval=eval;var theString=String;var theArray=Array;if(TrimPath==null){TrimPath=new Object()}if(TrimPath.TEST==null){TrimPath.TEST=new Object()}var arrayUniq=function(arr){var result=[];for(var i=0;i<arr.length;i++){if(arrayInclude(result,arr[i])==false){result.push(arr[i])}}return result};var arrayInclude=function(arr,val){for(var j=0;j<arr.length;j++){if(arr[j]==val){return true}}return false};var arrayCompact=function(arr){var result=[];for(var i=0;i<arr.length;i++){if(arr[i]!=null){result.push(arr[i])}}return result};var simpleJson=function(fields,values){var json=["{"];for(var i=0;i<fields.length;i++){if(i>0){json.push(",")}json.push(fields[i]);json.push(":");if(values[i]){json.push('"');json.push(values[i].replace(/(["\\])/g,"\\$1").replace(/\r/g,"").replace(/\n/g,"\\n"));json.push('"')}else{json.push(null)}}json.push("}");return json.join("")};var hashKeys=function(object){var keys=[];for(var property in object){keys.push(property)}return keys};var hashValues=function(object){var values=[];for(var property in object){values.push(object[property])}return values};var strip=function(str){return str.replace(/^\s+/,"").replace(/\s+$/,"")};TrimPath.makeQueryLang_etc={};TrimPath.makeQueryLang_etc.Error=function(message,stmt){this.message=message;this.stmt=stmt};TrimPath.makeQueryLang_etc.Error.prototype.toString=function(){return("TrimPath query Error in "+(this.stmt!=null?this.stmt:"[unknown]")+": "+this.message)};var TODO=function(){throw"currently unsupported"};var USAGE=function(){throw"incorrect keyword usage"};var QueryLang=function(){};TrimPath.makeQueryLang=function(tableInfos,etc){if(etc==null){etc=TrimPath.makeQueryLang_etc}var aliasArr=[];var aliasReg=function(aliasKey,scope,obj){if(scope[aliasKey]!=null){throw new etc.Error("alias redefinition: "+aliasKey)}aliasArr.push({aliasKey:aliasKey,scope:scope,orig:scope[aliasKey]});scope[aliasKey]=obj;return obj};var queryLang=new QueryLang();var checkArgs=function(args,minLength,maxLength,name,typeCheck){args=cleanArray(args);if(minLength==null){minLength=1}if(args==null||args.length<minLength){throw new etc.Error("not enough arguments for "+name)}if(maxLength!=null&&args.length>maxLength){throw new etc.Error("too many arguments for "+name)}if(typeCheck!=null){for(var k in args){if(typeof (args[k])!="function"&&args[k] instanceof typeCheck==false){throw new etc.Error("wrong type for "+args[k]+" to "+name)}}}return args};var sql_date_to_js_date=function(data){if(typeof data=="string"&&data.match(/\d{4}-\d{1,2}-\d{1,2}/)){var dateArr=data.match(/\d{4}-\d{1,2}-\d{1,2}/)[0].split("-");var date=new Date(parseInt(dateArr[0],10),(parseInt(dateArr[1],10)-1),parseInt(dateArr[2],10));return date}return data};var data_insertion=function(table_info,field_name,data,column_ref){if(table_info[field_name]){var data=eval(data);if(table_info[field_name].type&&table_info[field_name].type=="Number"){data=Number(data,10)}else{if(table_info[field_name].type&&table_info[field_name].type=="Date"){data=sql_date_to_js_date(data)}}column_ref[field_name]=data}};var NodeType={select:function(args){var columns=[];var nodes={from:null,where:null,groupBy:null,having:null,orderBy:null,limit:null};for(var i=0;i<args.length;i++){var arg=args[i];var argIsNode=false;for(var nodeTypeName in nodes){if(arg instanceof NodeType[nodeTypeName]){if(nodes[nodeTypeName]!=null){throw new etc.Error("too many "+nodeTypeName.toUpperCase()+" clauses")}nodes[nodeTypeName]=arg;argIsNode=true;break}}if(argIsNode==false){columns.push(arg)}}columns=checkArgs(columns,1,null,"COLUMNS");if(nodes.from==null){throw new etc.Error("missing FROM clause")}var joinDriver=null;var joinFilter=null;var whereFilter=null;var columnConvertor=null;var orderByComparator=null;var groupByCalcValues=null;var havingFilter=null;var typeConverter=function(results){for(var i=0;i<results.length;i++){var result=results[i];for(var attr in result){var value=result[attr];if(value instanceof Date){results[i][attr]=dateToString(value)}}}};this.prepareFilter=function(){if(joinDriver==null){joinDriver=compileJoinDriver(nodes.from.tables)}if(joinFilter==null){joinFilter=compileFilter(compileFilterForJoin,nodes.from.tables)}if(whereFilter==null){whereFilter=compileFilter(compileFilterForWhere,nodes.from.tables,nodes.where!=null?nodes.where.exprs:null)}if(groupByCalcValues==null&&nodes.groupBy!=null){groupByCalcValues=compileGroupByCalcValues(nodes.from.tables,nodes.groupBy.exprs)}if(havingFilter==null&&nodes.having!=null){havingFilter=compileFilter(compileFilterForWhere,[],nodes.having.exprs,{aliasOnly:true})}if(columnConvertor==null){columnConvertor=compileColumnConvertor(nodes.from.tables,columns)}if(orderByComparator==null&&nodes.orderBy!=null){orderByComparator=compileOrderByComparator(nodes.orderBy.exprs)}};this.filter=function(dataTables,bindings,params){this.prepareFilter();if(bindings==null){bindings={}}if(params==null){params={}}var resultOfFromWhere=joinDriver(dataTables,joinFilter,whereFilter,bindings);if(groupByCalcValues!=null){for(var i=0;i<resultOfFromWhere.length;i++){resultOfFromWhere[i].groupByValues=groupByCalcValues.apply(null,resultOfFromWhere[i])}resultOfFromWhere.sort(groupByComparator)}if(params.return_reference){return resultOfFromWhere}var groupByAccum={};var groupByFuncs={SUM:function(key,val){groupByAccum[key]=zeroDefault(groupByAccum[key])+zeroDefault(val);return groupByAccum[key]},COUNT:function(key){groupByAccum[key]=zeroDefault(groupByAccum[key])+1;return groupByAccum[key]},AVG:function(key,val){return groupByFuncs.SUM(key,val)/groupByFuncs.COUNT("_COUNT"+key)}};var result=[],prevItem=null,currItem;for(var i=0;i<resultOfFromWhere.length;i++){currItem=resultOfFromWhere[i];currItem[0]=groupByFuncs;if(prevItem!=null&&groupByComparator(prevItem,currItem)!=0){if(havingFilter==null||havingFilter(prevItem.record)==true){result.push(prevItem.record)}groupByAccum={}}currItem.record=columnConvertor.apply(null,currItem.concat([params.with_table]));prevItem=currItem}if(prevItem!=null&&(havingFilter==null||havingFilter(prevItem.record)==true)){result.push(prevItem.record)}if(orderByComparator!=null){result.sort(orderByComparator)}if(nodes.limit!=null){if(nodes.limit.total==0){return[]}var start=(nodes.limit.offset!=null?nodes.limit.offset:0);result=result.slice(start,start+(nodes.limit.total>0?nodes.limit.total:result.length))}typeConverter(result);return result};setSSFunc(this,function(){var sqlArr=["SELECT",map(columns,toSqlWithAlias).join(", "),nodes.from.toSql()];if(nodes.where!=null){sqlArr.push(nodes.where.toSql())}if(nodes.groupBy!=null){sqlArr.push(nodes.groupBy.toSql())}if(nodes.having!=null){sqlArr.push(nodes.having.toSql())}if(nodes.orderBy!=null){sqlArr.push(nodes.orderBy.toSql())}if(nodes.limit!=null){sqlArr.push(nodes.limit.toSql())}return sqlArr.join(" ")});for(var i=0;i<aliasArr.length;i++){var aliasItem=aliasArr[i];aliasItem.scope[aliasItem.aliasKey]=aliasItem.orig}aliasArr=[]},insert:function(args){var table_info=args[0];var object=args[1];this.filter=function(dataTables,bindings){var table_name=table_info[".name"];if(!dataTables[table_name]){dataTables[table_name]=[]}dataTables[table_name].push({});for(var field_name in object){data_insertion(table_info,field_name,object[field_name],dataTables[table_name][dataTables[table_name].length-1])}return true};setSSFunc(this,function(){var sqlArr=["INSERT INTO",table_info.toSql(),"("+hashKeys(object).join(", ")+")","VALUES","("+hashValues(object).join(", ")+")"];return sqlArr.join(" ")})},update:function(args){var from_node=args[0];var assignments=args[1];var where_node=args[2];this.filter=function(dataTables,bindings){var table_info=from_node.tables[0];var resultOfFromWhere=queryLang.SELECT(from_node,where_node,1).filter(dataTables,null,{return_reference:true});for(var i=0;i<resultOfFromWhere.length;i++){var object=resultOfFromWhere[i][1];for(var field in assignments){var fieldSplit=field.split(".");var field_name=field;if(fieldSplit.length==2){field_name=fieldSplit[1]}data_insertion(table_info,field_name,assignments[field],object)}}return true};setSSFunc(this,function(){var sqlArr=["UPDATE",from_node.toSql()];var assignmentsArr=[];for(var attr in assignments){assignmentsArr.push(attr+"="+assignments[attr])}sqlArr.push(assignmentsArr.join(", "));if(where_node!=null){sqlArr.push(where_node.toSql())}return sqlArr.join(" ")})},destroy:function(args){var select_node=args[0];this.filter=function(dataTables,bindings){var resultOfFromWhere=select_node.filter(dataTables,null,{return_reference:true});for(var i=0;i<resultOfFromWhere.length;i++){var record=resultOfFromWhere[i];for(var j=1;j<record.length;j++){var object=record[j];for(var attr in object){delete object[attr]}}}for(var table_name in dataTables){var table=dataTables[table_name];for(var i=0;i<table.length;i++){if(hashKeys(table[i]).length==0){delete table[i]}}}for(var table_name in dataTables){dataTables[table_name]=arrayCompact(dataTables[table_name])}return true};setSSFunc(this,function(){var sqlArr=["DELETE",select_node.toSql()];return sqlArr.join(" ").replace(/SELECT\s/,"")})},from:function(tables){this.tables=checkArgs(tables,1,null,"FROM",NodeType.tableDef)},where:function(exprs){this.exprs=checkArgs(exprs,1,null,"WHERE",NodeType.expression)},groupBy:function(exprs){this.exprs=checkArgs(exprs,1,null,"GROUP_BY")},having:function(exprs){this.exprs=checkArgs(exprs,1,null,"HAVING",NodeType.expression)},orderBy:function(exprs){this.exprs=checkArgs(exprs,1,null,"ORDER_BY")},expression:function(args,name,opFix,sqlText,minArgs,maxArgs,jsText,alias){var theExpr=this;this.args=checkArgs(args,minArgs,maxArgs,name);this[".name"]=name;this[".alias"]=alias!=null?alias:name;this.opFix=opFix;this.sqlText=sqlText!=null?sqlText:this[".name"];this.jsText=jsText!=null?jsText:this.sqlText;this.AS=function(aliasArg){this[".alias"]=this.ASC[".alias"]=this.DESC[".alias"]=aliasArg;return aliasReg(aliasArg,queryLang,this)};this.ASC=setSSFunc({".name":name,".alias":theExpr[".alias"],order:"ASC"},function(){return theExpr[".alias"]+" ASC"});this.DESC=setSSFunc({".name":name,".alias":theExpr[".alias"],order:"DESC"},function(){return theExpr[".alias"]+" DESC"});this.COLLATE=TODO},aggregate:function(){NodeType.expression.apply(this,arguments)},limit:function(offset,total){if(total==null){this.total=cleanString(offset)}else{this.total=cleanString(total);this.offset=cleanString(offset)}},tableDef:function(name,columnInfos,alias){this[".name"]=name;this[".alias"]=alias!=null?alias:name;this[".allColumns"]=[];for(var columnName in columnInfos){this[columnName]=new NodeType.columnDef(columnName,columnInfos[columnName],this);this[".allColumns"].push(this[columnName])}setSSFunc(this,function(){return name});this.AS=function(alias){return aliasReg(alias,queryLang,new NodeType.tableDef(name,columnInfos,alias))};this.ALL=new NodeType.columnDef("*",null,this);this.ALL.AS=null},columnDef:function(name,columnInfo,tableDef,alias){var theColumnDef=this;this[".name"]=name;this[".alias"]=alias!=null?alias:name;this.tableDef=tableDef;setSSFunc(this,function(flags){if(flags!=null&&flags.aliasOnly==true){return this[".alias"]}return tableDef!=null?((tableDef[".alias"])+"."+name):name});this.AS=function(aliasArg){return aliasReg(aliasArg,queryLang,new NodeType.columnDef(name,columnInfo,tableDef,aliasArg))};if(columnInfo&&columnInfo.type){this.type=columnInfo.type}else{this.type="String"}this.ASC=setSSFunc({".name":name,".alias":theColumnDef[".alias"],tableDef:tableDef,order:"ASC"},function(){return theColumnDef.toSql()+" ASC"});this.DESC=setSSFunc({".name":name,".alias":theColumnDef[".alias"],tableDef:tableDef,order:"DESC"},function(){return theColumnDef.toSql()+" DESC"});this.COLLATE=TODO},join:function(joinType,tableDef){var theJoin=this;this.joinType=joinType;this.fromSeparator=" "+joinType+" JOIN ";for(var k in tableDef){this[k]=tableDef[k]}this.ON=function(){theJoin.ON_exprs=checkArgs(arguments,1,null,"ON");return theJoin};this.USING=function(){theJoin.USING_exprs=cleanArray(arguments,false);return theJoin};this.fromSuffix=function(){if(theJoin.ON_exprs!=null){return(" ON "+map(theJoin.ON_exprs,toSql).join(" AND "))}if(theJoin.USING_exprs!=null){return(" USING ("+theJoin.USING_exprs.join(", ")+")")}return""}}};var setSSFunc=function(obj,func){obj.toSql=obj.toJs=obj.toString=func;return obj};setSSFunc(NodeType.from.prototype,function(){var sqlArr=["FROM "];for(var i=0;i<this.tables.length;i++){if(i>0){var sep=this.tables[i].fromSeparator;if(sep==null){sep=", "}sqlArr.push(sep)}sqlArr.push(toSqlWithAlias(this.tables[i]));if(this.tables[i].fromSuffix!=null){sqlArr.push(this.tables[i].fromSuffix())}}return sqlArr.join("")});setSSFunc(NodeType.where.prototype,function(){return"WHERE "+map(this.exprs,toSql).join(" AND ")});setSSFunc(NodeType.orderBy.prototype,function(){return"ORDER BY "+map(this.exprs,toSql).join(", ")});setSSFunc(NodeType.groupBy.prototype,function(){return"GROUP BY "+map(this.exprs,toSql).join(", ")});setSSFunc(NodeType.having.prototype,function(){return"HAVING "+map(this.exprs,toSql,{aliasOnly:true}).join(" AND ")});setSSFunc(NodeType.limit.prototype,function(){return"LIMIT "+(this.total<0?"ALL":this.total)+(this.offset!=null?(" OFFSET "+this.offset):"")});var makeToFunc=function(toFunc,opText){return function(flags){if(flags!=null&&flags.aliasOnly==true&&this[".alias"]!=this[".name"]){return this[".alias"]}if(this.opFix<0){return this[opText]+" ("+map(this.args,toFunc,flags).join(") "+this[opText]+" (")+")"}if(this.opFix>0){return"("+map(this.args,toFunc,flags).join(") "+this[opText]+" (")+") "+this[opText]}return"("+map(this.args,toFunc,flags).join(") "+this[opText]+" (")+")"}};NodeType.expression.prototype.toSql=makeToFunc(toSql,"sqlText");NodeType.expression.prototype.toJs=makeToFunc(toJs,"jsText");NodeType.aggregate.prototype=new NodeType.expression([],null,null,null,0);NodeType.aggregate.prototype.toJs=function(flags){if(flags!=null&&flags.aliasOnly==true&&this[".alias"]!=this[".name"]){return this[".alias"]}return this.jsText+" ('"+this[".alias"]+"', ("+map(this.args,toJs).join("), (")+"))"};NodeType.join.prototype=new NodeType.tableDef();NodeType.whereSql=function(sql){this.exprs=[new NodeType.rawSql(sql)]};NodeType.whereSql.prototype=new NodeType.where([new NodeType.expression([0],null,0,null,0,null,null,null)]);NodeType.havingSql=function(sql){this.exprs=[new NodeType.rawSql(sql)]};NodeType.havingSql.prototype=new NodeType.having([new NodeType.expression([0],null,0,null,0,null,null,null)]);NodeType.rawSql=function(sql){this.sql=sql};NodeType.rawSql.prototype.toSql=function(flags){return this.sql};NodeType.rawSql.prototype.toJs=function(flags){var js=this.sql;js=js.replace(/ AND /g," && ");js=js.replace(/ OR /g," || ");js=js.replace(/ = /g," == ");js=js.replace(/ IS NULL/g," == null");js=js.replace(/ IS NOT NULL/g," != null");js=js.replace(/ NOT /g," ! ");var LIKE_regex=/(\S+)\sLIKE\s'(\S+)'/g;var matchArr;while(matchArr=LIKE_regex.exec(js)){matchArr[2]=matchArr[2].replace(/%/,".*");js=js.replace(LIKE_regex,"$1.match(/"+matchArr[2]+"/)")}var DATE_regex=/'(\d{4})-(\d{1,2})-(\d{1,2})'/g;while(matchArr=DATE_regex.exec(js)){var dateArr=[parseInt(matchArr[1],10).toString(),(parseInt(matchArr[2],10)-1).toString(),parseInt(matchArr[3],10).toString()];var replacement="(new Date("+dateArr.join(", ")+").valueOf())";js=js.replace(matchArr[0],replacement)}return js};var keywords={INSERT:function(){return new NodeType.insert(arguments)},UPDATE:function(){return new NodeType.update(arguments)},DESTROY:function(){return new NodeType.destroy(arguments)},SELECT_ALL:function(){return new NodeType.select(arguments)},SELECT_DISTINCT:TODO,ALL:USAGE,FROM:function(){return new NodeType.from(arguments)},WHERE:function(){return new NodeType.where(arguments)},AND:function(){return new NodeType.expression(arguments,"AND",0,null,1,null,"&&")},OR:function(){return new NodeType.expression(arguments,"OR",0,null,1,null,"||")},NOT:function(){return new NodeType.expression(arguments,"NOT",-1,null,1,1,"!")},EQ:function(){return new NodeType.expression(arguments,"EQ",0,"=",2,2,"==")},NEQ:function(){return new NodeType.expression(arguments,"NEQ",0,"!=",2,2)},LT:function(){return new NodeType.expression(arguments,"LT",0,"<",2,2)},GT:function(){return new NodeType.expression(arguments,"GT",0,">",2,2)},LTE:function(){return new NodeType.expression(arguments,"LTE",0,"<=",2,2)},GTE:function(){return new NodeType.expression(arguments,"GTE",0,">=",2,2)},IS_NULL:function(){return new NodeType.expression(arguments,"IS_NULL",1,"IS NULL",1,1,"== null")},IS_NOT_NULL:function(){return new NodeType.expression(arguments,"IS_NOT_NULL",1,"IS NOT NULL",1,1,"!= null")},ADD:function(){return new NodeType.expression(arguments,"ADD",0,"+",2,null)},SUBTRACT:function(){return new NodeType.expression(arguments,"SUBTRACT",0,"-",2,null)},NEGATE:function(){return new NodeType.expression(arguments,"NEGATE",-1,"-",1,1)},MULTIPLY:function(){return new NodeType.expression(arguments,"MULTIPLY",0,"*",2,null)},DIVIDE:function(){return new NodeType.expression(arguments,"DIVIDE",0,"/",2,null)},PAREN:function(){return new NodeType.expression(arguments,"PAREN",0,"",1,1)},LIKE:function(){return new NodeType.expression(arguments,"LIKE",0,"LIKE",2,2,"match")},BETWEEN:TODO,AVG:function(){return new NodeType.aggregate(arguments,"AVG",-1,null,1,1)},AVG_ALL:TODO,AVG_DISTINCT:TODO,SUM:function(){return new NodeType.aggregate(arguments,"SUM",-1,null,1,1)},SUM_ALL:TODO,SUM_DISTINCT:TODO,COUNT:function(){return new NodeType.aggregate(arguments,"COUNT",-1,null,1,1)},COUNT_ALL:TODO,COUNT_DISTINCT:TODO,AS:USAGE,IN:TODO,UNION:TODO,UNION_ALL:TODO,EXCEPT:TODO,EXCEPT_ALL:TODO,INTERSECT:TODO,INTERSECT_ALL:TODO,CROSS_JOIN:function(tableDef){return tableDef},INNER_JOIN:function(tableDef){return new NodeType.join("INNER",tableDef)},LEFT_OUTER_JOIN:function(tableDef){return new NodeType.join("LEFT OUTER",tableDef)},RIGHT_OUTER_JOIN:TODO,FULL_OUTER_JOIN:TODO,ON:USAGE,USING:USAGE,GROUP_BY:function(){return new NodeType.groupBy(arguments)},HAVING:function(){return new NodeType.having(arguments)},ORDER_BY:function(){return new NodeType.orderBy(arguments)},LIMIT:function(offset,total){return new NodeType.limit(offset,total)},LIMIT_ALL:function(offset){return queryLang.LIMIT(-1,offset)},OFFSET:USAGE,ANY_SELECT:TODO,ALL_SELECT:TODO,EXISTS:TODO,WHERE_SQL:function(sql){return new NodeType.whereSql(sql)},HAVING_SQL:function(sql){return new NodeType.havingSql(sql)}};keywords.SELECT=keywords.SELECT_ALL;for(var k in keywords){queryLang[k]=keywords[k]}for(var tableName in tableInfos){queryLang[tableName]=new NodeType.tableDef(tableName,tableInfos[tableName])}return queryLang};var compileJoinDriver=function(tables){var funcText=["var TrimPath_query_tmpJD = function(dataTables, joinFilter, whereFilter, bindings) {","var result = [], filterArgs = [ bindings ];"];for(var i=0;i<tables.length;i++){funcText.push("var T"+i+" = dataTables['"+tables[i][".name"]+"'] || [];")}for(var i=0;i<tables.length;i++){funcText.push("for (var t"+i+" = 0; t"+i+" < T"+i+".length; t"+i+"++) {");funcText.push("var resultLength"+i+" = result.length;");funcText.push("filterArgs["+(i+1)+"] = T"+i+"[t"+i+"];")}funcText.push("if ((joinFilter == null || joinFilter.apply(null, filterArgs) == true) && ");funcText.push("    (whereFilter == null || whereFilter.apply(null, filterArgs) == true))");funcText.push("result.push(filterArgs.slice(0));");for(var i=tables.length-1;i>=0;i--){funcText.push("}");if(i>=1&&tables[i].joinType=="LEFT OUTER"){funcText.push("if (resultLength"+(i-1)+" == result.length) {");for(var j=i;j<tables.length;j++){funcText.push("filterArgs["+(j+1)+"] = ")}funcText.push("{}; if (whereFilter == null || whereFilter.apply(null, filterArgs) == true) result.push(filterArgs.slice(0)); }")}}funcText.push("return result; }; TrimPath_query_tmpJD");return theEval(funcText.join(""))};var compileFilter=function(bodyFunc,tables,whereExpressions,flags){var funcText=["var TrimPath_query_tmpWF = function(_BINDINGS"];for(var i=0;i<tables.length;i++){funcText.push(", "+tables[i][".alias"])}funcText.push("){ with(_BINDINGS) {");bodyFunc(funcText,tables,whereExpressions,flags);funcText.push("return true; }}; TrimPath_query_tmpWF");return theEval(funcText.join(""))};var compileFilterForJoin=function(funcText,tables,whereExpressions,flags){for(var i=0;i<tables.length;i++){if(tables[i].joinType!=null){if(tables[i].ON_exprs!=null||tables[i].USING_exprs!=null){funcText.push("if (!(");if(tables[i].ON_exprs!=null&&tables[i].ON_exprs[0].exprs!=null){funcText.push(tables[i].ON_exprs[0].exprs[0].toJs())}else{if(tables[i].ON_exprs!=null){funcText.push(map(tables[i].ON_exprs,toJs).join(" && "))}}if(tables[i].USING_exprs!=null){funcText.push(map(tables[i].USING_exprs,function(col){return"("+tables[i-1][".alias"]+"."+col+" == "+tables[i][".alias"]+"."+col+")"}).join(" && "))}funcText.push(")) return false;")}}}};var compileFilterForWhere=function(funcText,tables,whereExpressions,flags){if(whereExpressions!=null){funcText.push("if (!((");for(var i=0;i<whereExpressions.length;i++){if(i>0){funcText.push(") && (")}funcText.push(toJs(whereExpressions[i],flags))}funcText.push("))) return false;")}};var compileColumnConvertor=function(tables,columnExpressions){var funcText=["var TrimPath_query_tmpCC = function(_BINDINGS, "];var table_aliases=[];for(var i=0;i<tables.length;i++){table_aliases.push(tables[i][".alias"])}funcText.push(arrayUniq(table_aliases).join(", "));funcText.push(", with_table){ with(_BINDINGS) {");funcText.push("var _RESULT = {};");funcText.push("if(with_table) {");compileColumnConvertorHelper(funcText,columnExpressions,true);funcText.push("} else {");compileColumnConvertorHelper(funcText,columnExpressions,false);funcText.push("}");funcText.push("return _RESULT; }}; TrimPath_query_tmpCC");return theEval(funcText.join(""))};var test=function(stuff){var i};var compileColumnConvertorHelper=function(funcText,columnExpressions,with_table){for(var i=0;i<columnExpressions.length;i++){var columnExpression=columnExpressions[i];if(columnExpression[".name"]=="*"){compileColumnConvertorHelper(funcText,columnExpression.tableDef[".allColumns"],with_table)}else{funcText.push("_RESULT['");if(with_table==true){funcText.push(columnExpression.toString())}else{funcText.push(columnExpression[".alias"])}funcText.push("'] = (");funcText.push(toJs(columnExpression));funcText.push(");")}}};var dateToString=function(date){if(typeof date=="object"){return[date.getFullYear(),"-",(date.getMonth()+1),"-",date.getDate()].join("")}if(date==null){return null}};var compileOrderByComparator=function(orderByExpressions){var funcText=["var TrimPath_query_tmpOC = function(A, B) { var a, b; "];for(var i=0;i<orderByExpressions.length;i++){var orderByExpression=orderByExpressions[i];if(orderByExpression.tableDef){funcText.push("a = A['"+orderByExpression[".alias"]+"'] || A['"+orderByExpression.tableDef[".alias"]+"."+orderByExpression[".alias"]+"'] || '';");funcText.push("b = B['"+orderByExpression[".alias"]+"'] || B['"+orderByExpression.tableDef[".alias"]+"."+orderByExpression[".alias"]+"'] || '';")}else{funcText.push("a = A['"+orderByExpression[".alias"]+"'] || '';");funcText.push("b = B['"+orderByExpression[".alias"]+"'] || '';")}var sign=(orderByExpression.order=="DESC"?-1:1);funcText.push("if (a.valueOf() < b.valueOf()) return "+(sign*-1)+";");funcText.push("if (a.valueOf() > b.valueOf()) return "+(sign*1)+";")}funcText.push("return 0; }; TrimPath_query_tmpOC");return theEval(funcText.join(""))};var compileGroupByCalcValues=function(tables,groupByExpressions){var funcText=["var TrimPath_query_tmpGC = function(_BINDINGS"];for(var i=0;i<tables.length;i++){funcText.push(", "+tables[i][".alias"])}funcText.push("){ var _RESULT = [];");for(var i=0;i<groupByExpressions.length;i++){funcText.push("_RESULT.push(");funcText.push(toJs(groupByExpressions[i]));funcText.push(");")}funcText.push("return _RESULT; }; TrimPath_query_tmpGC");return theEval(funcText.join(""))};var groupByComparator=function(a,b){return arrayCompare(a.groupByValues,b.groupByValues)};var arrayCompare=function(x,y){if(x==null||y==null){return -1}for(var i=0;i<x.length&&i<y.length;i++){if(x[i]<y[i]){return -1}if(x[i]>y[i]){return 1}}return 0};var toSqlWithAlias=function(obj,flags){var res=toSql(obj,flags);if(obj[".alias"]!=null&&obj[".alias"]!=obj[".name"]){return res+" AS "+obj[".alias"]}return res};var toSql=function(obj,flags){return toX(obj,"toSql",flags)};var toJs=function(obj,flags){return toX(obj,"toJs",flags)};var toX=function(obj,funcName,flags){if(typeof (obj)=="object"&&obj[funcName]!=null){return obj[funcName].call(obj,flags)}return theString(obj)};var zeroDefault=function(x){return(x!=null?x:0)};var map=function(arr,func,arg2){for(var result=[],i=0;i<arr.length;i++){result.push(func(arr[i],arg2))}return result};var cleanArray=function(src,quotes){for(var result=[],i=0;i<src.length;i++){result.push(cleanString(src[i],quotes))}return result};var cleanString=TrimPath.TEST.cleanString=function(src,quotes){if(src instanceof theString||typeof (src)=="string"){src=theString(src).replace(/\\/g,"\\\\").replace(/'/g,"\\'");if(quotes!=false){src="'"+src+"'"}}return src};var findClause=function(str,regexp){var clauseEnd=str.search(regexp);if(clauseEnd<0){clauseEnd=str.length}return str.substring(0,clauseEnd)};QueryLang.prototype.parseSQL=function(sqlQueryIn,paramsArr){var sqlQuery=sqlQueryIn.replace(/\n/g," ").replace(/\r/g,"");if(paramsArr!=null){if(paramsArr instanceof theArray==false){paramsArr=[paramsArr]}var sqlParts=sqlQuery.split(" ?");for(var i=0;i<sqlParts.length-1;i++){sqlParts[i]=sqlParts[i]+" "+cleanString(paramsArr[i],true)}sqlQuery=sqlParts.join("")}sqlQuery=sqlQuery.replace(/ AS ([_a-zA-z0-9]+)/g,".AS('$1')");var err=function(errMsg){throw ("[ERROR: "+errMsg+" in query: "+sqlQueryIn+"]")};var query_type=sqlQuery.split(/\s+/)[0];if(query_type=="DELETE"){query_type="DESTROY"}if(!arrayInclude(["SELECT","DESTROY","UPDATE","INSERT"],query_type)){err("not a valid query type")}var strip_whitespace=function(str){return str.replace(/\s+/g,"")};if(query_type=="SELECT"||query_type=="DESTROY"){var fromSplit=sqlQuery.substring(7).split(" FROM ");if(fromSplit.length!=2){err("missing a FROM clause")}var columnsClause=fromSplit[0].replace(/\.\*/g,".ALL");var remaining=fromSplit[1];var fromClause=findClause(remaining,/\sWHERE\s|\sGROUP BY\s|\sHAVING\s|\sORDER BY\s|\sLIMIT/);var fromTableClause=findClause(fromClause,/\sLEFT OUTER JOIN\s/);var fromTables=strip_whitespace(fromTableClause).split(",");remaining=remaining.substring(fromClause.length);var fromClauseSplit=fromClause.split(" LEFT OUTER JOIN ");var fromClauseParts=[fromClauseSplit[0]];var leftJoinComponents;for(var i=1;i<fromClauseSplit.length;i++){leftJoinComponents=/(\w+)\sON\s(.+)/.exec(fromClauseSplit[i]);fromTables.push(leftJoinComponents[1]);fromClauseParts.push("("+leftJoinComponents[1]+').ON(WHERE_SQL("'+leftJoinComponents[2]+'"))')}fromClause=fromClauseParts.join(", LEFT_OUTER_JOIN");if(strip_whitespace(columnsClause)=="*"){var new_columns=[];for(var i=0;i<fromTables.length;i++){new_columns.push(fromTables[i]+".ALL")}columnsClause=columnsClause.replace(/\*/,new_columns.join(", "))}var whereClause=findClause(remaining,/\sGROUP BY\s|\sHAVING\s|\sORDER BY\s|\sLIMIT/);remaining=remaining.substring(whereClause.length);var groupByClause=findClause(remaining,/\sHAVING\s|\sORDER BY\s|\sLIMIT /);remaining=remaining.substring(groupByClause.length);var havingClause=findClause(remaining,/\sORDER BY\s|\sLIMIT /);remaining=remaining.substring(havingClause.length);var orderByClause=findClause(remaining,/\sLIMIT /).replace(/\sASC/g,".ASC").replace(/\sDESC/g,".DESC");remaining=remaining.substring(orderByClause.length);var limitClause=remaining;var tql=["SELECT(FROM(",fromClause,"), ",columnsClause];if(whereClause.length>0){tql.push(', WHERE_SQL("'+whereClause.substring(7)+'")')}if(groupByClause.length>0){tql.push(", GROUP_BY("+groupByClause.substring(10)+")")}if(havingClause.length>0){tql.push(', HAVING_SQL("'+havingClause.substring(8)+'")')}if(orderByClause.length>0){tql.push(", ORDER_BY("+orderByClause.substring(10)+")")}if(limitClause.length>0){tql.push(", LIMIT("+limitClause.substring(7)+")")}tql.push(")")}else{if(query_type=="INSERT"){var intoSplit=sqlQuery.substring(6).split(" INTO ");if(intoSplit.length!=2){err("missing an INTO clause")}var insertion_regex=/^\s*(\w+)\s*\((.+)\)\s+VALUES\s+\((.+)\)/;var parsed_sql=intoSplit[1].match(insertion_regex);var table_name=parsed_sql[1];var fields=strip_whitespace(parsed_sql[2]).split(",");var values=parsed_sql[3].split(",");if(fields.length!=values.length){err("values and fields must have same number of elements")}tql=["INSERT(",table_name,",",simpleJson(fields,values),")"]}else{if(query_type=="UPDATE"){var setSplit=sqlQuery.substring(7).split(" SET ");if(setSplit.length!=2){err("missing a SET clause")}var fromClause=setSplit[0];var remaining=setSplit[1];var assignmentClause=findClause(remaining,/\sWHERE\s/);remaining=remaining.substring(assignmentClause.length);var whereClause=remaining;var assignmentArray=assignmentClause.split(",");var fields=[];var values=[];for(var i=0;i<assignmentArray.length;i++){var components=assignmentArray[i].split("=");fields.push(strip(components[0]));values.push(strip(components[1]))}var update_regex=/^UPDATE\s+(\w+)\s+SET\s+(\w+\s*=\s*\w+)/;var parsed_sql=sqlQuery.match(update_regex);var tql=["UPDATE(FROM(",fromClause,"), ",simpleJson(fields,values)];tql.push(', WHERE_SQL("'+whereClause.substring(7)+'")');tql.push(")")}}}if(query_type=="DESTROY"){tql.unshift("DESTROY(");tql.push(")")}with(this){return eval(tql.join(""))}}})();dojo.provide("extLib.trimpath.template");if(typeof (TrimPath)=="undefined"){TrimPath={}}(function(){if(TrimPath==null){TrimPath=new Object()}if(TrimPath.evalEx==null){TrimPath.evalEx=function(src){return eval(src)}}var UNDEFINED;if(Array.prototype.pop==null){Array.prototype.pop=function(){if(this.length===0){return UNDEFINED}return this[--this.length]}}if(Array.prototype.push==null){Array.prototype.push=function(){for(var i=0;i<arguments.length;++i){this[this.length]=arguments[i]}return this.length}}TrimPath.parseTemplate=function(tmplContent,optTmplName,optEtc){if(optEtc==null){optEtc=TrimPath.parseTemplate_etc}var funcSrc=parse(tmplContent,optTmplName,optEtc);var func=TrimPath.evalEx(funcSrc,optTmplName,1);if(func!=null){return new optEtc.Template(optTmplName,tmplContent,funcSrc,func,optEtc)}return null};try{String.prototype.process=function(context,optFlags){var template=TrimPath.parseTemplate(this,null);if(template!=null){return template.process(context,optFlags)}return this}}catch(e){}TrimPath.parseTemplate_etc={};TrimPath.parseTemplate_etc.statementTag="forelse|for|if|elseif|else|var|macro";TrimPath.parseTemplate_etc.statementDef={"if":{delta:1,prefix:"if (",suffix:") {",paramMin:1},"else":{delta:0,prefix:"} else {"},"elseif":{delta:0,prefix:"} else if (",suffix:") {",paramDefault:"true"},"/if":{delta:-1,prefix:"}"},"for":{delta:1,paramMin:3,prefixFunc:function(stmtParts,state,tmplName,etc){if(stmtParts[2]!="in"){throw new etc.ParseError(tmplName,state.line,"bad for loop statement: "+stmtParts.join(" "))}var iterVar=stmtParts[1];var listVar="__LIST__"+iterVar;return["var ",listVar," = ",stmtParts[3],";","var __LENGTH_STACK__;","if (typeof(__LENGTH_STACK__) == 'undefined' || !__LENGTH_STACK__.length) __LENGTH_STACK__ = new Array();","__LENGTH_STACK__[__LENGTH_STACK__.length] = 0;","if ((",listVar,") != null) { ","var ",iterVar,"_ct = 0;","for (var ",iterVar,"_index in ",listVar,") { ",iterVar,"_ct++;","if (typeof(",listVar,"[",iterVar,"_index]) == 'function') {continue;}","__LENGTH_STACK__[__LENGTH_STACK__.length - 1]++;","var ",iterVar," = ",listVar,"[",iterVar,"_index];"].join("")}},"forelse":{delta:0,prefix:"} } if (__LENGTH_STACK__[__LENGTH_STACK__.length - 1] == 0) { if (",suffix:") {",paramDefault:"true"},"/for":{delta:-1,prefix:"} }; delete __LENGTH_STACK__[__LENGTH_STACK__.length - 1];"},"var":{delta:0,prefix:"var ",suffix:";"},"macro":{delta:1,prefixFunc:function(stmtParts,state,tmplName,etc){var macroName=stmtParts[1].split("(")[0];return["var ",macroName," = function",stmtParts.slice(1).join(" ").substring(macroName.length),"{ var _OUT_arr = []; var _OUT = { write: function(m) { if (m) _OUT_arr.push(m); } }; "].join("")}},"/macro":{delta:-1,prefix:" return _OUT_arr.join(''); };"}};TrimPath.parseTemplate_etc.modifierDef={"eat":function(v){return""},"escape":function(s){return String(s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},"capitalize":function(s){return String(s).toUpperCase()},"default":function(s,d){return s!=null?s:d}};TrimPath.parseTemplate_etc.modifierDef.h=TrimPath.parseTemplate_etc.modifierDef.escape;TrimPath.parseTemplate_etc.Template=function(tmplName,tmplContent,funcSrc,func,etc){this.process=function(context,flags){if(context==null){context={}}if(context._MODIFIERS==null){context._MODIFIERS={}}if(context.defined==null){context.defined=function(str){return(context[str]!=undefined)}}for(var k in etc.modifierDef){if(context._MODIFIERS[k]==null){context._MODIFIERS[k]=etc.modifierDef[k]}}if(flags==null){flags={}}var resultArr=[];var resultOut={write:function(m){resultArr.push(m)}};try{func(resultOut,context,flags)}catch(e){if(flags.throwExceptions==true){throw e}var result=new String(resultArr.join("")+"[ERROR: "+e.toString()+(e.message?"; "+e.message:"")+"]");result["exception"]=e;return result}return resultArr.join("")};this.name=tmplName;this.source=tmplContent;this.sourceFunc=funcSrc;this.toString=function(){return"TrimPath.Template ["+tmplName+"]"}};TrimPath.parseTemplate_etc.ParseError=function(name,line,message){this.name=name;this.line=line;this.message=message};TrimPath.parseTemplate_etc.ParseError.prototype.toString=function(){return("TrimPath template ParseError in "+this.name+": line "+this.line+", "+this.message)};var parse=function(body,tmplName,etc){body=cleanWhiteSpace(body);var funcText=["var TrimPath_Template_TEMP = function(_OUT, _CONTEXT, _FLAGS) { with (_CONTEXT) {"];var state={stack:[],line:1};var endStmtPrev=-1;while(endStmtPrev+1<body.length){var begStmt=endStmtPrev;begStmt=body.indexOf("{",begStmt+1);while(begStmt>=0){var endStmt=body.indexOf("}",begStmt+1);var stmt=body.substring(begStmt,endStmt);var blockrx=stmt.match(/^\{(cdata|minify|eval)/);if(blockrx){var blockType=blockrx[1];var blockMarkerBeg=begStmt+blockType.length+1;var blockMarkerEnd=body.indexOf("}",blockMarkerBeg);if(blockMarkerEnd>=0){var blockMarker;if(blockMarkerEnd-blockMarkerBeg<=0){blockMarker="{/"+blockType+"}"}else{blockMarker=body.substring(blockMarkerBeg+1,blockMarkerEnd)}var blockEnd=body.indexOf(blockMarker,blockMarkerEnd+1);if(blockEnd>=0){emitSectionText(body.substring(endStmtPrev+1,begStmt),funcText);var blockText=body.substring(blockMarkerEnd+1,blockEnd);if(blockType=="cdata"){emitText(blockText,funcText)}else{if(blockType=="minify"){emitText(scrubWhiteSpace(blockText),funcText)}else{if(blockType=="eval"){if(blockText!=null&&blockText.length>0){funcText.push("_OUT.write( (function() { "+blockText+" })() );")}}}}begStmt=endStmtPrev=blockEnd+blockMarker.length-1}}}else{if(body.charAt(begStmt-1)!="$"&&body.charAt(begStmt-1)!="\\"){var offset=(body.charAt(begStmt+1)=="/"?2:1);if(body.substring(begStmt+offset,begStmt+10+offset).search(TrimPath.parseTemplate_etc.statementTag)==0){break}}}begStmt=body.indexOf("{",begStmt+1)}if(begStmt<0){break}var endStmt=body.indexOf("}",begStmt+1);if(endStmt<0){break}emitSectionText(body.substring(endStmtPrev+1,begStmt),funcText);emitStatement(body.substring(begStmt,endStmt+1),state,funcText,tmplName,etc);endStmtPrev=endStmt}emitSectionText(body.substring(endStmtPrev+1),funcText);if(state.stack.length!=0){throw new etc.ParseError(tmplName,state.line,"unclosed, unmatched statement(s): "+state.stack.join(","))}funcText.push("}}; TrimPath_Template_TEMP");return funcText.join("")};var emitStatement=function(stmtStr,state,funcText,tmplName,etc){var parts=stmtStr.slice(1,-1).split(" ");var stmt=etc.statementDef[parts[0]];if(stmt==null){emitSectionText(stmtStr,funcText);return }if(stmt.delta<0){if(state.stack.length<=0){throw new etc.ParseError(tmplName,state.line,"close tag does not match any previous statement: "+stmtStr)}state.stack.pop()}if(stmt.delta>0){state.stack.push(stmtStr)}if(stmt.paramMin!=null&&stmt.paramMin>=parts.length){throw new etc.ParseError(tmplName,state.line,"statement needs more parameters: "+stmtStr)}if(stmt.prefixFunc!=null){funcText.push(stmt.prefixFunc(parts,state,tmplName,etc))}else{funcText.push(stmt.prefix)}if(stmt.suffix!=null){if(parts.length<=1){if(stmt.paramDefault!=null){funcText.push(stmt.paramDefault)}}else{for(var i=1;i<parts.length;i++){if(i>1){funcText.push(" ")}funcText.push(parts[i])}}funcText.push(stmt.suffix)}};var emitSectionText=function(text,funcText){if(text.length<=0){return }var nlPrefix=0;var nlSuffix=text.length-1;while(nlPrefix<text.length&&(text.charAt(nlPrefix)=="\n")){nlPrefix++}while(nlSuffix>=0&&(text.charAt(nlSuffix)==" "||text.charAt(nlSuffix)=="\t")){nlSuffix--}if(nlSuffix<nlPrefix){nlSuffix=nlPrefix}if(nlPrefix>0){funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');var s=text.substring(0,nlPrefix).replace("\n","\\n");if(s.charAt(s.length-1)=="\n"){s=s.substring(0,s.length-1)}funcText.push(s);funcText.push('");')}var lines=text.substring(nlPrefix,nlSuffix+1).split("\n");for(var i=0;i<lines.length;i++){emitSectionTextLine(lines[i],funcText);if(i<lines.length-1){funcText.push('_OUT.write("\\n");\n')}}if(nlSuffix+1<text.length){funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');var s=text.substring(nlSuffix+1).replace("\n","\\n");if(s.charAt(s.length-1)=="\n"){s=s.substring(0,s.length-1)}funcText.push(s);funcText.push('");')}};var emitSectionTextLine=function(line,funcText){var endMarkPrev="}";var endExprPrev=-1;while(endExprPrev+endMarkPrev.length<line.length){var begMark="${",endMark="}";var begExpr=line.indexOf(begMark,endExprPrev+endMarkPrev.length);if(begExpr<0){break}if(line.charAt(begExpr+2)=="%"){begMark="${%";endMark="%}"}var endExpr=line.indexOf(endMark,begExpr+begMark.length);if(endExpr<0){break}emitText(line.substring(endExprPrev+endMarkPrev.length,begExpr),funcText);var exprArr=line.substring(begExpr+begMark.length,endExpr).replace(/\|\|/g,"#@@#").split("|");for(var k in exprArr){if(exprArr[k].replace){exprArr[k]=exprArr[k].replace(/#@@#/g,"||")}}funcText.push("_OUT.write(");emitExpression(exprArr,exprArr.length-1,funcText);funcText.push(");");endExprPrev=endExpr;endMarkPrev=endMark}emitText(line.substring(endExprPrev+endMarkPrev.length),funcText)};var emitText=function(text,funcText){if(text==null||text.length<=0){return }text=text.replace(/\\/g,"\\\\");text=text.replace(/\n/g,"\\n");text=text.replace(/"/g,'\\"');funcText.push('_OUT.write("');funcText.push(text);funcText.push('");')};var emitExpression=function(exprArr,index,funcText){var expr=exprArr[index];if(index<=0){funcText.push(expr);return }var parts=expr.split(":");funcText.push('_MODIFIERS["');funcText.push(parts[0]);funcText.push('"](');emitExpression(exprArr,index-1,funcText);if(parts.length>1){funcText.push(",");funcText.push(parts[1])}funcText.push(")")};var cleanWhiteSpace=function(result){result=result.replace(/\t/g,"    ");result=result.replace(/\r\n/g,"\n");result=result.replace(/\r/g,"\n");result=result.replace(/^(\s*\S*(\s+\S+)*)\s*$/,"$1");return result};var scrubWhiteSpace=function(result){result=result.replace(/^\s+/g,"");result=result.replace(/\s+$/g,"");result=result.replace(/\s+/g," ");result=result.replace(/^(\s*\S*(\s+\S+)*)\s*$/,"$1");return result};TrimPath.parseDOMTemplate=function(elementId,optDocument,optEtc){if(optDocument==null){optDocument=document}var element=optDocument.getElementById(elementId);var content=element.value;if(content==null){content=element.innerHTML}content=content.replace(/&lt;/g,"<").replace(/&gt;/g,">");return TrimPath.parseTemplate(content,elementId,optEtc)};TrimPath.processDOMTemplate=function(elementId,context,optFlags,optDocument,optEtc){return TrimPath.parseDOMTemplate(elementId,optDocument,optEtc).process(context,optFlags)}})();dojo.provide("noawishlist.service.Locator");dojo.require("mojo.service.Locator");dojo.require("mojo.service.Service");var __noawishlistServiceLocator=null;dojo.declare("noawishlist.service.Locator",mojo.service.Locator,{addServices:function(){this.addService(new mojo.service.Service("GetWishListItems","wishlist/data/items.jsp",{json:true,cache:false,method:"GET"}));this.addService(new mojo.service.Service("SendWishListItems","wishlist/card.jsp",{json:true,cache:false,method:"POST"}))}});noawishlist.service.Locator.getInstance=function(){if(__noawishlistServiceLocator==null){__noawishlistServiceLocator=new noawishlist.service.Locator()}return __noawishlistServiceLocator};var MooTools={"version":1.1};function $defined(A){return(A!=undefined)}function $type(B){if(!$defined(B)){return false}if(B.htmlElement){return"element"}var A=typeof B;if(A=="object"&&B.nodeName){switch(B.nodeType){case 1:return"element";case 3:return/\S/.test(B.nodeValue)?"textnode":"whitespace"}}if(A=="object"||A=="function"){switch(B.constructor){case Array:return"array";case RegExp:return"regexp";case Class:return"class"}if(typeof B.length=="number"){if(B.item){return"collection"}if(B.callee){return"arguments"}}}return A}function $merge(){var C={};for(var B=0;B<arguments.length;B++){for(var E in arguments[B]){var A=arguments[B][E];var D=C[E];if(D&&$type(A)=="object"&&$type(D)=="object"){C[E]=$merge(D,A)}else{C[E]=A}}}return C}var $extend=Object.extend=function(){var A=arguments;if(!A[1]){A=[this,A[0]]}for(var B in A[1]){A[0][B]=A[1][B]}return A[0]};var $native=Object.Native=function(){for(var B=0,A=arguments.length;B<A;B++){arguments[B].extend=function(C){for(var D in C){if(!this.prototype[D]){this.prototype[D]=C[D]}if(!this[D]){this[D]=$native.generic(D)}}}}};$native.generic=function(A){return function(B){return this.prototype[A].apply(B,Array.prototype.slice.call(arguments,1))}};$native(Function,Array,String,Number);var Abstract=function(A){A=A||{};A.extend=$extend;return A};var Window=new Abstract(window);var Document=new Abstract(document);document.head=document.getElementsByTagName("head")[0];function $chk(A){return !!(A||A===0)}function $pick(B,A){return $defined(B)?B:A}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B)}function $time(){return new Date().getTime()}function $clear(A){clearTimeout(A);clearInterval(A);return null}window.xpath=!!(document.evaluate);if(window.ActiveXObject){window.ie=window[window.XMLHttpRequest?"ie7":"ie6"]=true}else{if(document.childNodes&&!document.all&&!navigator.taintEnabled){window.khtml=window.webkit=window[window.xpath?"webkit420":"webkit419"]=true}else{if(document.getBoxObjectFor!=null){window.gecko=true}}}if(typeof HTMLElement=="undefined"){var HTMLElement=function(){};if(window.webkit){document.createElement("iframe")}HTMLElement.prototype=(window.webkit)?window["[[DOMElement.prototype]]"]:{}}HTMLElement.prototype.htmlElement=true;if(window.ie6){try{document.execCommand("BackgroundImageCache",false,true)}catch(e){}}var Class=function(B){var A=function(){return(arguments[0]!==null&&this.initialize&&$type(this.initialize)=="function")?this.initialize.apply(this,arguments):this};$extend(A,this);A.prototype=B;A.constructor=Class;return A};Class.empty=function(){};Class.prototype={extend:function(B){var C=new this(null);for(var D in B){var A=C[D];C[D]=Class.Merge(A,B[D])}return new Class(C)},implement:function(){for(var B=0,A=arguments.length;B<A;B++){$extend(this.prototype,arguments[B])}}};Class.Merge=function(C,D){if(C&&C!=D){var B=$type(D);if(B!=$type(C)){return D}switch(B){case"function":var A=function(){this.parent=arguments.callee.parent;return D.apply(this,arguments)};A.parent=C;return A;case"object":return $merge(C,D)}}return D};var Chain=new Class({chain:function(A){this.chains=this.chains||[];this.chains.push(A);return this},callChain:function(){if(this.chains&&this.chains.length){this.chains.shift().delay(10,this)}},clearChain:function(){this.chains=[]}});var Events=new Class({addEvent:function(B,A){if(A!=Class.empty){this.$events=this.$events||{};this.$events[B]=this.$events[B]||[];this.$events[B].include(A)}return this},fireEvent:function(C,B,A){if(this.$events&&this.$events[C]){this.$events[C].each(function(D){D.create({"bind":this,"delay":A,"arguments":B})()},this)}return this},removeEvent:function(B,A){if(this.$events&&this.$events[B]){this.$events[B].remove(A)}return this}});var Options=new Class({setOptions:function(){this.options=$merge.apply(null,[this.options].extend(arguments));if(!this.addEvent){return this}for(var A in this.options){if($type(this.options[A]=="function")&&A.test(/^on[A-Z]/)){this.addEvent(A,this.options[A])}}return this}});Array.extend({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this)}},filter:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){if(D.call(E,this[B],B,this)){C.push(this[B])}}return C},map:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){C[B]=D.call(E,this[B],B,this)}return C},every:function(C,D){for(var B=0,A=this.length;B<A;B++){if(!C.call(D,this[B],B,this)){return false}}return true},some:function(C,D){for(var B=0,A=this.length;B<A;B++){if(C.call(D,this[B],B,this)){return true}}return false},indexOf:function(C,D){var A=this.length;for(var B=(D<0)?Math.max(0,A+D):D||0;B<A;B++){if(this[B]===C){return B}}return -1},copy:function(D,C){D=D||0;if(D<0){D=this.length+D}C=C||(this.length-D);var A=[];for(var B=0;B<C;B++){A[B]=this[D++]}return A},remove:function(C){var B=0;var A=this.length;while(B<A){if(this[B]===C){this.splice(B,1);A--}else{B++}}return this},contains:function(A,B){return this.indexOf(A,B)!=-1},associate:function(C){var D={},B=Math.min(this.length,C.length);for(var A=0;A<B;A++){D[C[A]]=this[A]}return D},extend:function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B])}return this},merge:function(C){for(var B=0,A=C.length;B<A;B++){this.include(C[B])}return this},include:function(A){if(!this.contains(A)){this.push(A)}return this},getRandom:function(){return this[$random(0,this.length-1)]||false},getLast:function(){return this[this.length-1]||false}});Array.prototype.each=Array.prototype.forEach;Array.prototype.test=Array.prototype.contains;function $A(A){return Array.copy(A)}function $each(C,B,D){if(C&&typeof C.length=="number"&&$type(C)!="object"){Array.forEach(C,B,D)}else{for(var A in C){B.call(D||C,C[A],A)}}}String.extend({test:function(A,B){return(($type(A)=="string")?new RegExp(A,B):A).test(this)},toInt:function(){return parseInt(this,10)},toFloat:function(){return parseFloat(this)},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase()})},hyphenate:function(){return this.replace(/\w[A-Z]/g,function(A){return(A.charAt(0)+"-"+A.charAt(1).toLowerCase())})},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase()})},trim:function(){return this.replace(/^\s+|\s+$/g,"")},clean:function(){return this.replace(/\s{2,}/g," ").trim()},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):false},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(A)?A.slice(1).hexToRgb(B):false},contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.indexOf(A)>-1},escapeRegExp:function(){return this.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")}});Array.extend({rgbToHex:function(D){if(this.length<3){return false}if(this.length==4&&this[3]==0&&!D){return"transparent"}var B=[];for(var A=0;A<3;A++){var C=(this[A]-0).toString(16);B.push((C.length==1)?"0"+C:C)}return D?B:"#"+B.join("")},hexToRgb:function(C){if(this.length!=3){return false}var A=[];for(var B=0;B<3;B++){A.push(parseInt((this[B].length==1)?this[B]+this[B]:this[B],16))}return C?A:"rgb("+A.join(",")+")"}});Function.extend({create:function(A){var B=this;A=$merge({"bind":B,"event":false,"arguments":null,"delay":false,"periodical":false,"attempt":false},A);if($chk(A.arguments)&&$type(A.arguments)!="array"){A.arguments=[A.arguments]}return function(E){var C;if(A.event){E=E||window.event;C=[(A.event===true)?E:new A.event(E)];if(A.arguments){C.extend(A.arguments)}}else{C=A.arguments||arguments}var F=function(){return B.apply($pick(A.bind,B),C)};if(A.delay){return setTimeout(F,A.delay)}if(A.periodical){return setInterval(F,A.periodical)}if(A.attempt){try{return F()}catch(D){return false}}return F()}},pass:function(A,B){return this.create({"arguments":A,"bind":B})},attempt:function(A,B){return this.create({"arguments":A,"bind":B,"attempt":true})()},bind:function(B,A){return this.create({"bind":B,"arguments":A})},bindAsEventListener:function(B,A){return this.create({"bind":B,"event":true,"arguments":A})},delay:function(B,C,A){return this.create({"delay":B,"bind":C,"arguments":A})()},periodical:function(A,C,B){return this.create({"periodical":A,"bind":C,"arguments":B})()}});Number.extend({toInt:function(){return parseInt(this)},toFloat:function(){return parseFloat(this)},limit:function(B,A){return Math.min(A,Math.max(B,this))},round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A},times:function(B){for(var A=0;A<this;A++){B(A)}}});var Element=new Class({initialize:function(D,C){if($type(D)=="string"){if(window.ie&&C&&(C.name||C.type)){var A=(C.name)?' name="'+C.name+'"':"";var B=(C.type)?' type="'+C.type+'"':"";delete C.name;delete C.type;D="<"+D+A+B+">"}D=document.createElement(D)}D=$(D);return(!C||!D)?D:D.set(C)}});var Elements=new Class({initialize:function(A){return(A)?$extend(A,this):this}});Elements.extend=function(A){for(var B in A){this.prototype[B]=A[B];this[B]=$native.generic(B)}};function $(B){if(!B){return false}if(B.htmlElement){return Garbage.collect(B)}if([window,document].contains(B)){return B}var A=$type(B);if(A=="string"){B=document.getElementById(B);A=(B)?"element":false}if(A!="element"){return false}if(B.htmlElement){return Garbage.collect(B)}if(["object","embed"].contains(B.tagName.toLowerCase())){return B}$extend(B,Element.prototype);B.htmlElement=true;return Garbage.collect(B)}document.getElementsBySelector=document.getElementsByTagName;function $$(){var D=[];for(var C=0,B=arguments.length;C<B;C++){var A=arguments[C];switch($type(A)){case"element":D.push(A);case"boolean":break;case false:break;case"string":A=document.getElementsBySelector(A,true);default:D.extend(A)}}return $$.unique(D)}$$.unique=function(E){var D=[];for(var C=0,A=E.length;C<A;C++){if(E[C].$included){continue}var B=$(E[C]);if(B&&!B.$included){B.$included=true;D.push(B)}}for(var C=0,A=D.length;C<A;C++){D[C].$included=null}return new Elements(D)};Elements.Multi=function(A){return function(){var D=arguments;var B=[];var G=true;for(var E=0,C=this.length,F;E<C;E++){F=this[E][A].apply(this[E],D);if($type(F)!="element"){G=false}B.push(F)}return(G)?$$.unique(B):B}};Element.extend=function(A){for(var B in A){HTMLElement.prototype[B]=A[B];Element.prototype[B]=A[B];Element[B]=$native.generic(B);var C=(Array.prototype[B])?B+"Elements":B;Elements.prototype[C]=Elements.Multi(B)}};Element.extend({set:function(A){for(var C in A){var B=A[C];switch(C){case"styles":this.setStyles(B);break;case"events":if(this.addEvents){this.addEvents(B)}break;case"properties":this.setProperties(B);break;default:this.setProperty(C,B)}}return this},inject:function(C,A){C=$(C);switch(A){case"before":C.parentNode.insertBefore(this,C);break;case"after":var B=C.getNext();if(!B){C.parentNode.appendChild(this)}else{C.parentNode.insertBefore(this,B)}break;case"top":var D=C.firstChild;if(D){C.insertBefore(this,D);break}default:C.appendChild(this)}return this},injectBefore:function(A){return this.inject(A,"before")},injectAfter:function(A){return this.inject(A,"after")},injectInside:function(A){return this.inject(A,"bottom")},injectTop:function(A){return this.inject(A,"top")},adopt:function(){var A=[];$each(arguments,function(B){A=A.concat(B)});$$(A).inject(this);return this},remove:function(){return this.parentNode.removeChild(this)},clone:function(C){var B=$(this.cloneNode(C!==false));if(!B.$events){return B}B.$events={};for(var A in this.$events){B.$events[A]={"keys":$A(this.$events[A].keys),"values":$A(this.$events[A].values)}}return B.removeEvents()},replaceWith:function(A){A=$(A);this.parentNode.replaceChild(A,this);return A},appendText:function(A){if(window.ie){switch(this.getTag()){case"style":this.styleSheet.cssText=A;return this;case"script":return this.setProperty("text",A)}}this.appendChild(document.createTextNode(A));return this},hasClass:function(A){return this.className.contains(A," ")},addClass:function(A){if(!this.hasClass(A)){this.className=(this.className+" "+A).clean()}return this},removeClass:function(A){this.className=this.className.replace(new RegExp("(^|\\s)"+A+"(?:\\s|$)"),"$1").clean();return this},toggleClass:function(A){return this.hasClass(A)?this.removeClass(A):this.addClass(A)},setStyle:function(B,A){switch(B){case"opacity":return this.setOpacity(parseFloat(A));case"float":B=(window.ie)?"styleFloat":"cssFloat"}B=B.camelCase();switch($type(A)){case"number":if(!["zIndex","zoom"].contains(B)){A+="px"}break;case"array":A="rgb("+A.join(",")+")"}this.style[B]=A;return this},setStyles:function(A){switch($type(A)){case"object":Element.setMany(this,"setStyle",A);break;case"string":this.style.cssText=A}return this},setOpacity:function(A){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden"}}else{if(this.style.visibility!="visible"){this.style.visibility="visible"}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1}if(window.ie){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")"}this.style.opacity=this.$tmp.opacity=A;return this},getStyle:function(C){C=C.camelCase();var A=this.style[C];if(!$chk(A)){if(C=="opacity"){return this.$tmp.opacity}var A=[];for(var B in Element.Styles){if(C==B){Element.Styles[B].each(function(F){var E=this.getStyle(F);A.push(parseInt(E)?E:"0px")},this);if(C=="border"){var D=A.every(function(E){return(E==A[0])});return(D)?A[0]:false}return A.join(" ")}}if(C.contains("border")){if(Element.Styles.border.contains(C)){return["Width","Style","Color"].map(function(E){return this.getStyle(C+E)},this).join(" ")}else{if(Element.borderShort.contains(C)){return["Top","Right","Bottom","Left"].map(function(E){return this.getStyle("border"+E+C.replace("border",""))},this).join(" ")}}}if(document.defaultView){A=document.defaultView.getComputedStyle(this,null).getPropertyValue(C.hyphenate())}else{if(this.currentStyle){A=this.currentStyle[C]}}}if(window.ie){A=Element.fixStyle(C,A,this)}if(A&&C.test(/color/i)&&A.contains("rgb")){return A.split("rgb").splice(1,4).map(function(E){return E.rgbToHex()}).join(" ")}return A},getStyles:function(){return Element.getMany(this,"getStyle",arguments)},walk:function(A,C){A+="Sibling";var B=(C)?this[C]:this[A];while(B&&$type(B)!="element"){B=B[A]}return $(B)},getPrevious:function(){return this.walk("previous")},getNext:function(){return this.walk("next")},getFirst:function(){return this.walk("next","firstChild")},getLast:function(){return this.walk("previous","lastChild")},getParent:function(){return $(this.parentNode)},getChildren:function(){return $$(this.childNodes)},hasChild:function(A){return !!$A(this.getElementsByTagName("*")).contains(A)},getProperty:function(C){var A=Element.Properties[C];if(A){return this[A]}if(!window.ie){return this.getAttribute(C)}var B=this.attributes[C];return(B)?B.nodeValue:null},removeProperty:function(B){var A=Element.Properties[B];if(A){this[A]=""}else{this.removeAttribute(B)}return this},getProperties:function(){return Element.getMany(this,"getProperty",arguments)},setProperty:function(C,B){var A=Element.Properties[C];if(A){this[A]=B}else{this.setAttribute(C,B)}return this},setProperties:function(A){return Element.setMany(this,"setProperty",A)},setHTML:function(){this.innerHTML=$A(arguments).join("");return this},getTag:function(){return this.tagName.toLowerCase()},empty:function(){Garbage.trash(this.getElementsByTagName("*"));return this.setHTML("")}});Element.fixStyle=function(E,A,D){if($chk(parseInt(A))){return A}if(["height","width"].contains(E)){var B=(E=="width")?["left","right"]:["top","bottom"];var C=0;B.each(function(F){C+=D.getStyle("border-"+F+"-width").toInt()+D.getStyle("padding-"+F).toInt()});return D["offset"+E.capitalize()]-C+"px"}else{if(E.test(/border(.+)Width|margin|padding/)){return"0px"}}return A};Element.Styles={"border":[],"padding":[],"margin":[]};["Top","Right","Bottom","Left"].each(function(B){for(var A in Element.Styles){Element.Styles[A].push(A+B)}});Element.borderShort=["borderWidth","borderStyle","borderColor"];Element.getMany=function(B,D,C){var A={};$each(C,function(E){A[E]=B[D](E)});return A};Element.setMany=function(B,D,C){for(var A in C){B[D](A,C[A])}return B};Element.Properties=new Abstract({"class":"className","for":"htmlFor","colspan":"colSpan","rowspan":"rowSpan","accesskey":"accessKey","tabindex":"tabIndex","maxlength":"maxLength","readonly":"readOnly","value":"value","disabled":"disabled","checked":"checked","multiple":"multiple"});Element.Methods={Listeners:{addListener:function(B,A){if(this.addEventListener){this.addEventListener(B,A,false)}else{this.attachEvent("on"+B,A)}return this},removeListener:function(B,A){if(this.removeEventListener){this.removeEventListener(B,A,false)}else{this.detachEvent("on"+B,A)}return this}}};window.extend(Element.Methods.Listeners);document.extend(Element.Methods.Listeners);Element.extend(Element.Methods.Listeners);var Garbage={elements:[],collect:function(A){if(!A.$tmp){Garbage.elements.push(A);A.$tmp={"opacity":1}}return A},trash:function(D){for(var B=0,A=D.length,C;B<A;B++){if(!(C=D[B])||!C.$tmp){continue}if(C.$events){C.fireEvent("trash").removeEvents()}for(var E in C.$tmp){C.$tmp[E]=null}for(var E in Element.prototype){C[E]=null}C.htmlElement=C.$tmp=C=null;Garbage.elements.remove(C)}},empty:function(){Garbage.collect(window);Garbage.collect(document);Garbage.trash(Garbage.elements)}};window.addListener("beforeunload",function(){window.addListener("unload",Garbage.empty);if(window.ie){window.addListener("unload",CollectGarbage)}});var Event=new Class({initialize:function(C){if(C&&C.$extended){return C}this.$extended=true;C=C||window.event;this.event=C;this.type=C.type;this.target=C.target||C.srcElement;if(this.target.nodeType==3){this.target=this.target.parentNode}this.shift=C.shiftKey;this.control=C.ctrlKey;this.alt=C.altKey;this.meta=C.metaKey;if(["DOMMouseScroll","mousewheel"].contains(this.type)){this.wheel=(C.wheelDelta)?C.wheelDelta/120:-(C.detail||0)/3}else{if(this.type.contains("key")){this.code=C.which||C.keyCode;for(var B in Event.keys){if(Event.keys[B]==this.code){this.key=B;break}}if(this.type=="keydown"){var A=this.code-111;if(A>0&&A<13){this.key="f"+A}}this.key=this.key||String.fromCharCode(this.code).toLowerCase()}else{if(this.type.test(/(click|mouse|menu)/)){this.page={"x":C.pageX||C.clientX+document.documentElement.scrollLeft,"y":C.pageY||C.clientY+document.documentElement.scrollTop};this.client={"x":C.pageX?C.pageX-window.pageXOffset:C.clientX,"y":C.pageY?C.pageY-window.pageYOffset:C.clientY};this.rightClick=(C.which==3)||(C.button==2);switch(this.type){case"mouseover":this.relatedTarget=C.relatedTarget||C.fromElement;break;case"mouseout":this.relatedTarget=C.relatedTarget||C.toElement}this.fixRelatedTarget()}}}return this},stop:function(){return this.stopPropagation().preventDefault()},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation()}else{this.event.cancelBubble=true}return this},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault()}else{this.event.returnValue=false}return this}});Event.fix={relatedTarget:function(){if(this.relatedTarget&&this.relatedTarget.nodeType==3){this.relatedTarget=this.relatedTarget.parentNode}},relatedTargetGecko:function(){try{Event.fix.relatedTarget.call(this)}catch(A){this.relatedTarget=this.target}}};Event.prototype.fixRelatedTarget=(window.gecko)?Event.fix.relatedTargetGecko:Event.fix.relatedTarget;Event.keys=new Abstract({"enter":13,"up":38,"down":40,"left":37,"right":39,"esc":27,"space":32,"backspace":8,"tab":9,"delete":46});Element.Methods.Events={addEvent:function(C,B){this.$events=this.$events||{};this.$events[C]=this.$events[C]||{"keys":[],"values":[]};if(this.$events[C].keys.contains(B)){return this}this.$events[C].keys.push(B);var A=C;var D=Element.Events[C];if(D){if(D.add){D.add.call(this,B)}if(D.map){B=D.map}if(D.type){A=D.type}}if(!this.addEventListener){B=B.create({"bind":this,"event":true})}this.$events[C].values.push(B);return this.addListener(A,B)},removeEvent:function(C,B){if(!this.$events||!this.$events[C]){return this}var F=this.$events[C].keys.indexOf(B);if(F==-1){return this}var A=this.$events[C].keys.splice(F,1)[0];var E=this.$events[C].values.splice(F,1)[0];var D=Element.Events[C];if(D){if(D.remove){D.remove.call(this,B)}if(D.type){C=D.type}}return this.removeListener(C,E)},addEvents:function(A){return Element.setMany(this,"addEvent",A)},removeEvents:function(A){if(!this.$events){return this}if(!A){for(var B in this.$events){this.removeEvents(B)}this.$events=null}else{if(this.$events[A]){this.$events[A].keys.each(function(C){this.removeEvent(A,C)},this);this.$events[A]=null}}return this},fireEvent:function(C,B,A){if(!this.$events||!this.$events[C]){return this}this.$events[C].keys.each(function(D){D.create({"bind":this,"delay":A,"arguments":B})()},this);return this},cloneEvents:function(C,A){if(!C.$events){return this}if(!A){for(var B in C.$events){this.cloneEvents(C,B)}}else{if(C.$events[A]){C.$events[A].keys.each(function(D){this.addEvent(A,D)},this)}}return this}};window.extend(Element.Methods.Events);document.extend(Element.Methods.Events);Element.extend(Element.Methods.Events);Element.Events=new Abstract({"mouseenter":{type:"mouseover",map:function(A){A=new Event(A);if(A.relatedTarget==this||this.hasChild(A.relatedTarget)){return }this.fireEvent("mouseenter",A)}},"mouseleave":{type:"mouseout",map:function(A){A=new Event(A);if(A.relatedTarget==this||this.hasChild(A.relatedTarget)){return }this.fireEvent("mouseleave",A)}},"mousewheel":{type:(window.gecko)?"DOMMouseScroll":"mousewheel"}});Function.extend({bindWithEvent:function(B,A){return this.create({"bind":B,"arguments":A,"event":Event})}});Elements.extend({filterByTag:function(A){return new Elements(this.filter(function(B){return(Element.getTag(B)==A)}))},filterByClass:function(A,C){var B=this.filter(function(D){return(D.className&&D.className.contains(A," "))});return(C)?B:new Elements(B)},filterById:function(C,B){var A=this.filter(function(D){return(D.id==C)});return(B)?A:new Elements(A)},filterByAttribute:function(B,A,D,E){var C=this.filter(function(F){var G=Element.getProperty(F,B);if(!G){return false}if(!A){return true}switch(A){case"=":return(G==D);case"*=":return(G.contains(D));case"^=":return(G.substr(0,D.length)==D);case"$=":return(G.substr(G.length-D.length)==D);case"!=":return(G!=D);case"~=":return G.contains(D," ")}return false});return(E)?C:new Elements(C)}});function $E(A,B){return($(B)||document).getElement(A)}function $ES(A,B){return($(B)||document).getElementsBySelector(A)}$$.shared={"regexp":/^(\w*|\*)(?:#([\w-]+)|\.([\w-]+))?(?:\[(\w+)(?:([!*^$]?=)["']?([^"'\]]*)["']?)?])?$/,"xpath":{getParam:function(B,D,E,C){var A=[D.namespaceURI?"xhtml:":"",E[1]];if(E[2]){A.push('[@id="',E[2],'"]')}if(E[3]){A.push('[contains(concat(" ", @class, " "), " ',E[3],' ")]')}if(E[4]){if(E[5]&&E[6]){switch(E[5]){case"*=":A.push("[contains(@",E[4],', "',E[6],'")]');break;case"^=":A.push("[starts-with(@",E[4],', "',E[6],'")]');break;case"$=":A.push("[substring(@",E[4],", string-length(@",E[4],") - ",E[6].length,' + 1) = "',E[6],'"]');break;case"=":A.push("[@",E[4],'="',E[6],'"]');break;case"!=":A.push("[@",E[4],'!="',E[6],'"]')}}else{A.push("[@",E[4],"]")}}B.push(A.join(""));return B},getItems:function(B,E,G){var F=[];var A=document.evaluate(".//"+B.join("//"),E,$$.shared.resolver,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(var D=0,C=A.snapshotLength;D<C;D++){F.push(A.snapshotItem(D))}return(G)?F:new Elements(F.map($))}},"normal":{getParam:function(A,C,E,B){if(B==0){if(E[2]){var D=C.getElementById(E[2]);if(!D||((E[1]!="*")&&(Element.getTag(D)!=E[1]))){return false}A=[D]}else{A=$A(C.getElementsByTagName(E[1]))}}else{A=$$.shared.getElementsByTagName(A,E[1]);if(E[2]){A=Elements.filterById(A,E[2],true)}}if(E[3]){A=Elements.filterByClass(A,E[3],true)}if(E[4]){A=Elements.filterByAttribute(A,E[4],E[5],E[6],true)}return A},getItems:function(A,B,C){return(C)?A:$$.unique(A)}},resolver:function(A){return(A=="xhtml")?"http://www.w3.org/1999/xhtml":false},getElementsByTagName:function(D,C){var E=[];for(var B=0,A=D.length;B<A;B++){E.extend(D[B].getElementsByTagName(C))}return E}};$$.shared.method=(window.xpath)?"xpath":"normal";Element.Methods.Dom={getElements:function(A,H){var C=[];A=A.trim().split(" ");for(var E=0,D=A.length;E<D;E++){var F=A[E];var G=F.match($$.shared.regexp);if(!G){break}G[1]=G[1]||"*";var B=$$.shared[$$.shared.method].getParam(C,this,G,E);if(!B){break}C=B}return $$.shared[$$.shared.method].getItems(C,this,H)},getElement:function(A){return $(this.getElements(A,true)[0]||false)},getElementsBySelector:function(A,E){var D=[];A=A.split(",");for(var C=0,B=A.length;C<B;C++){D=D.concat(this.getElements(A[C],true))}return(E)?D:$$.unique(D)},getElementsByClassName:function(A){return this.getElements("."+A)}};Element.extend({getElementById:function(C){var B=document.getElementById(C);if(!B){return false}for(var A=B.parentNode;A!=this;A=A.parentNode){if(!A){return false}}return B}});document.extend(Element.Methods.Dom);Element.extend(Element.Methods.Dom);Element.extend({scrollTo:function(A,B){this.scrollLeft=A;this.scrollTop=B},getSize:function(){return{"scroll":{"x":this.scrollLeft,"y":this.scrollTop},"size":{"x":this.offsetWidth,"y":this.offsetHeight},"scrollSize":{"x":this.scrollWidth,"y":this.scrollHeight}}},getPosition:function(A){A=A||[];var B=this,D=0,C=0;do{D+=B.offsetLeft||0;C+=B.offsetTop||0;B=B.offsetParent}while(B);A.each(function(E){D-=E.scrollLeft||0;C-=E.scrollTop||0});return{"x":D,"y":C}},getTop:function(A){return this.getPosition(A).y},getLeft:function(A){return this.getPosition(A).x},getCoordinates:function(B){var A=this.getPosition(B);var C={"width":this.offsetWidth,"height":this.offsetHeight,"left":A.x,"top":A.y};C.right=C.left+C.width;C.bottom=C.top+C.height;return C}});Element.Events.domready={add:function(B){if(window.loaded){B.call(this);return }var A=function(){if(window.loaded){return }window.loaded=true;window.timer=$clear(window.timer);this.fireEvent("domready")}.bind(this);if(document.readyState&&window.webkit){window.timer=function(){if(["loaded","complete"].contains(document.readyState)){A()}}.periodical(50)}else{if(document.readyState&&window.ie){if(!$("ie_ready")){var C=(window.location.protocol=="https:")?"://0":"javascript:void(0)";document.write('<script id="ie_ready" defer src="'+C+'"><\/script>');$("ie_ready").onreadystatechange=function(){if(this.readyState=="complete"){A()}}}}else{window.addListener("load",A);document.addListener("DOMContentLoaded",A)}}}};window.onDomReady=function(A){return this.addEvent("domready",A)};window.extend({getWidth:function(){if(this.webkit419){return this.innerWidth}if(this.opera){return document.body.clientWidth}return document.documentElement.clientWidth},getHeight:function(){if(this.webkit419){return this.innerHeight}if(this.opera){return document.body.clientHeight}return document.documentElement.clientHeight},getScrollWidth:function(){if(this.ie){return Math.max(document.documentElement.offsetWidth,document.documentElement.scrollWidth)}if(this.webkit){return document.body.scrollWidth}return document.documentElement.scrollWidth},getScrollHeight:function(){if(this.ie){return Math.max(document.documentElement.offsetHeight,document.documentElement.scrollHeight)}if(this.webkit){return document.body.scrollHeight}return document.documentElement.scrollHeight},getScrollLeft:function(){return this.pageXOffset||document.documentElement.scrollLeft},getScrollTop:function(){return this.pageYOffset||document.documentElement.scrollTop},getSize:function(){return{"size":{"x":this.getWidth(),"y":this.getHeight()},"scrollSize":{"x":this.getScrollWidth(),"y":this.getScrollHeight()},"scroll":{"x":this.getScrollLeft(),"y":this.getScrollTop()}}},getPosition:function(){return{"x":0,"y":0}}});var Fx={Shared:{}};Fx.Base=new Class({options:{onStart:Class.empty,onComplete:Class.empty,onCancel:Class.empty,transition:function(A){return -(Math.cos(Math.PI*A)-1)/2},duration:500,unit:"px",wait:true,fps:50},initialize:function(A){this.element=this.element||null;this.setOptions(A);if(this.options.initialize){this.options.initialize.call(this)}},step:function(){var A=$time();if(A<this.time+this.options.duration){this.delta=this.options.transition((A-this.time)/this.options.duration);this.setNow();this.increase()}else{this.stop(true);this.set(this.to);this.fireEvent("onComplete",this.element,10);this.callChain()}},set:function(A){this.now=A;this.increase();return this},setNow:function(){this.now=this.compute(this.from,this.to)},compute:function(B,A){return(A-B)*this.delta+B},start:function(B,A){if(!this.options.wait){this.stop()}else{if(this.timer){return this}}this.from=B;this.to=A;this.change=this.to-this.from;this.time=$time();this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);this.fireEvent("onStart",this.element);return this},stop:function(A){if(!this.timer){return this}this.timer=$clear(this.timer);if(!A){this.fireEvent("onCancel",this.element)}return this},custom:function(B,A){return this.start(B,A)},clearTimer:function(A){return this.stop(A)}});Fx.Base.implement(new Chain,new Events,new Options);Fx.CSS={select:function(A,B){if(A.test(/color/i)){return this.Color}if(B.contains&&B.contains(" ")){return this.Multi}return this.Single},parse:function(C,D,A){if(!A.push){A=[A]}var F=A[0],E=A[1];if(!E&&E!=0){E=F;F=C.getStyle(D)}var B=this.select(D,E);return{from:B.parse(F),to:B.parse(E),css:B}}};Fx.CSS.Single={parse:function(A){return parseFloat(A)},getNow:function(C,B,A){return A.compute(C,B)},getValue:function(C,A,B){if(A=="px"&&B!="opacity"){C=Math.round(C)}return C+A}};Fx.CSS.Multi={parse:function(A){return A.push?A:A.split(" ").map(function(B){return parseFloat(B)})},getNow:function(E,D,C){var A=[];for(var B=0;B<E.length;B++){A[B]=C.compute(E[B],D[B])}return A},getValue:function(C,A,B){if(A=="px"&&B!="opacity"){C=C.map(Math.round)}return C.join(A+" ")+A}};Fx.CSS.Color={parse:function(A){return A.push?A:A.hexToRgb(true)},getNow:function(E,D,C){var A=[];for(var B=0;B<E.length;B++){A[B]=Math.round(C.compute(E[B],D[B]))}return A},getValue:function(A){return"rgb("+A.join(",")+")"}};Fx.Style=Fx.Base.extend({initialize:function(B,C,A){this.element=$(B);this.property=C;this.parent(A)},hide:function(){return this.set(0)},setNow:function(){this.now=this.css.getNow(this.from,this.to,this)},set:function(A){this.css=Fx.CSS.select(this.property,A);return this.parent(this.css.parse(A))},start:function(C,B){if(this.timer&&this.options.wait){return this}var A=Fx.CSS.parse(this.element,this.property,[C,B]);this.css=A.css;return this.parent(A.from,A.to)},increase:function(){this.element.setStyle(this.property,this.css.getValue(this.now,this.options.unit,this.property))}});Element.extend({effect:function(B,A){return new Fx.Style(this,B,A)}});Fx.Styles=Fx.Base.extend({initialize:function(B,A){this.element=$(B);this.parent(A)},setNow:function(){for(var A in this.from){this.now[A]=this.css[A].getNow(this.from[A],this.to[A],this)}},set:function(C){var A={};this.css={};for(var B in C){this.css[B]=Fx.CSS.select(B,C[B]);A[B]=this.css[B].parse(C[B])}return this.parent(A)},start:function(C){if(this.timer&&this.options.wait){return this}this.now={};this.css={};var E={},D={};for(var B in C){var A=Fx.CSS.parse(this.element,B,C[B]);E[B]=A.from;D[B]=A.to;this.css[B]=A.css}return this.parent(E,D)},increase:function(){for(var A in this.now){this.element.setStyle(A,this.css[A].getValue(this.now[A],this.options.unit,A))}}});Element.extend({effects:function(A){return new Fx.Styles(this,A)}});Fx.Scroll=Fx.Base.extend({options:{overflown:[],offset:{"x":0,"y":0}},initialize:function(B,A){this.now=[];this.element=$(B);this.bound={"stop":this.stop.bind(this,false)};this.addEvent("onStart",function(){document.addEvent("mousewheel",this.bound.stop)}.bind(this));this.removeEvent("onComplete",function(){document.removeEvent("mousewheel",this.bound.stop)}.bind(this));this.parent(A)},setNow:function(){for(var A=0;A<2;A++){this.now[A]=this.compute(this.from[A],this.to[A])}},scrollTo:function(B,F){if(this.timer&&this.options.wait){return this}var D=this.element.getSize();var C={"x":B,"y":F};for(var E in D.size){var A=D.scrollSize[E]-D.size[E];if($chk(C[E])){C[E]=($type(C[E])=="number")?C[E].limit(0,A):A}else{C[E]=D.scroll[E]}C[E]+=this.options.offset[E]}return this.start([D.scroll.x,D.scroll.y],[C.x,C.y])},toTop:function(){return this.scrollTo(false,0)},toBottom:function(){return this.scrollTo(false,"full")},toLeft:function(){return this.scrollTo(0,false)},toRight:function(){return this.scrollTo("full",false)},toElement:function(B){var A=this.element.getPosition(this.options.overflown);var C=$(B).getPosition(this.options.overflown);return this.scrollTo(C.x-A.x,C.y-A.y)},increase:function(){this.element.scrollTo(this.now[0],this.now[1])}});Fx.Slide=Fx.Base.extend({options:{mode:"vertical"},initialize:function(B,A){this.element=$(B);this.wrapper=new Element("div",{"styles":$extend(this.element.getStyles("margin"),{"overflow":"hidden"})}).injectAfter(this.element).adopt(this.element);this.element.setStyle("margin",0);this.setOptions(A);this.now=[];this.parent(this.options);if(window.webkit419){this.addEvent("onComplete",function(){this.element.remove().inject(this.wrapper)})}},setNow:function(){for(var A=0;A<2;A++){this.now[A]=this.compute(this.from[A],this.to[A])}},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight},horizontal:function(){this.margin="margin-left";this.layout="width";this.offset=this.element.offsetWidth},slideIn:function(A){this[A||this.options.mode]();return this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[0,this.offset])},slideOut:function(A){this[A||this.options.mode]();return this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[-this.offset,0])},hide:function(A){this[A||this.options.mode]();return this.set([-this.offset,0])},show:function(A){this[A||this.options.mode]();return this.set([0,this.offset])},toggle:function(A){if(this.wrapper.offsetHeight==0||this.wrapper.offsetWidth==0){return this.slideIn(A)}return this.slideOut(A)},increase:function(){this.element.setStyle(this.margin,this.now[0]+this.options.unit);this.wrapper.setStyle(this.layout,this.now[1]+this.options.unit)}});Fx.Transition=function(B,A){A=A||[];if($type(A)!="array"){A=[A]}return $extend(B,{easeIn:function(C){return B(C,A)},easeOut:function(C){return 1-B(1-C,A)},easeInOut:function(C){return(C<=0.5)?B(2*C,A)/2:(2-B(2*(1-C),A))/2}})};Fx.Transitions=new Abstract({linear:function(A){return A}});Fx.Transitions.extend=function(A){for(var B in A){Fx.Transitions[B]=new Fx.Transition(A[B]);Fx.Transitions.compat(B)}};Fx.Transitions.compat=function(A){["In","Out","InOut"].each(function(B){Fx.Transitions[A.toLowerCase()+B]=Fx.Transitions[A]["ease"+B]})};Fx.Transitions.extend({Pow:function(B,A){return Math.pow(B,A[0]||6)},Expo:function(A){return Math.pow(2,8*(A-1))},Circ:function(A){return 1-Math.sin(Math.acos(A))},Sine:function(A){return 1-Math.sin((1-A)*Math.PI/2)},Back:function(B,A){A=A[0]||1.618;return Math.pow(B,2)*((A+1)*B-A)},Bounce:function(D){var C;for(var B=0,A=1;1;B+=A,A/=2){if(D>=(7-4*B)/11){C=-Math.pow((11-6*B-11*D)/4,2)+A*A;break}}return C},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3)}});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2])});Fx.Transitions.compat(B)});var SmoothScroll=Fx.Scroll.extend({initialize:function(B){this.parent(window,B);this.links=(this.options.links)?$$(this.options.links):$$(document.links);var A=window.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(D){if(D.href.indexOf(A)!=0){return }var C=D.href.substr(A.length);if(C&&$(C)){this.useLink(D,C)}},this);if(!window.webkit419){this.addEvent("onComplete",function(){window.location.hash=this.anchor})}},useLink:function(B,A){B.addEvent("click",function(C){this.anchor=A;this.toElement(A);C.stop()}.bindWithEvent(this))}});dojo.provide("stdlib.behavior.AutoSuggest.SuggestNavigationBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.AutoSuggest.SuggestNavigationBehavior",mojo.command.Behavior,{suggestionIndex:-1,suggestion:null,execute:function(H){var E=H.getEvent();var C=38;var G=40;var F=9;var B=H.getParams().suggestions;var A=B.length;this.suggestionIndex=-1;for(var D=0;D<A;D++){if(dojo.hasClass(B[D],"selected")){this.suggestionIndex=D;break}}if(E&&E.which){E=E;characterCode=E.which}else{E=event;characterCode=E.keyCode}if(A>0){switch(characterCode){case C:this.suggestionIndex--;if(this.suggestionIndex<0){this.suggestionIndex=A-1}this.suggestion=B[this.suggestionIndex];this.onNav();break;case G:this.suggestionIndex++;if(this.suggestionIndex>=A){this.suggestionIndex=0}this.suggestion=B[this.suggestionIndex];this.onNav();break}}},onNav:function(){}});dojo.provide("stdlib.behavior.ClearFormBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.ClearFormBehavior",mojo.command.Behavior,{execute:function(A){var B=A.getParams();var I=A.contextObj;var J=false;var C=false;var E=false;if(!B){B={}}if(B.noload!=null){J=B.noload}if(B.formSet!=null){I=B.formSet}if(B.clearHidden!=null){C=B.clearHidden}if(B.clearImages!=null){E=B.clearImages}if(!J){var F=mojo.query("input",I);for(var D=0;D<F.length;D++){switch(F[D].type){case"hidden":if(C){F[D].value=""}break;case"image":if(E){F[D].value=""}break;case"checkbox":if(F[D].checked){F[D].checked=false}break;case"radio":if(F[D].checked){F[D].checked=false}break;case"button":break;case"submit":break;default:F[D].value=""}}var H=mojo.query("textarea",I);for(var D=0;D<H.length;D++){H[D].value=""}var G=mojo.query("select",I);for(var D=0;D<G.length;D++){G[D].selectedIndex=0}}}});dojo.provide("stdlib.behavior.dialog.DialogBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.dialog.DialogBehavior",mojo.command.Behavior,{onComplete:function(){},onDataReady:function(){},_onDataReady:function(E){this.onDataReady();var C=mojo.queryFirst(E.elContent,E.elContainer);var B=mojo.queryFirst(E.elContainer);var D=mojo.queryFirst(E.elTitle,E.elContainer);var A=mojo.query("embed, object");D.innerHTML=E.title;if(dojo.isFF&&(navigator.appVersion.indexOf("Mac")!=-1)){this.hideFlash(A)}B.style.visibility="";if(dojo.isIE){mojo.queryFirst("html").style.overflowX="hidden"}else{document.body.style.overflowX="hidden"}this.onComplete()},execute:function(A){var E=A.getParams();if(!E.elContainer){E.elContainer=".dialog-component"}if(!E.elContent){E.elContent=".dialog-component-content"}if(!E.elTitle){E.elTitle=".dialog-component-title"}if(!E.title){E.title="Default Dialog Text"}var G=mojo.query("embed, object");var D=mojo.queryFirst("#underlay");if(!D){D=document.createElement("div");D.id="underlay";document.body.appendChild(D)}D.style.display="block";var B=mojo.queryFirst(E.elContainer);if(!B){throw new Error("stdlib.behavior.dialog.DialogBehavior - Unable to find the Dialog template");return }var H=mojo.queryFirst(E.elContent,E.elContainer);var I=mojo.queryFirst(E.elTitle,E.elContainer);H.innerHTML="";var C=this;if(E.enabled&&E.width&&E.height){B.style.width=E.width+"px";B.style.height=E.height+"px";B.style.display="block";B.style.visibility="hidden";if(!E.id){dojo.xhrGet({url:E.href,load:function(J){mojo.Model.set("mojo.dialog.content",J);C._onDataReady(E)}})}else{var F=mojo.queryFirst(E.id);mojo.Model.set("mojo.dialog.content",F.innerHTML);C._onDataReady(E)}}else{if(dojo.isFF&&(navigator.appVersion.indexOf("Mac")!=-1)){this.showFlash(G)}D.style.display="none";B.style.display="none";if(dojo.isIE){mojo.queryFirst("html").style.overflowX="auto"}else{document.body.style.overflowX="auto";H.innerHTML=""}}},hideFlash:function(C){for(var B=0,A=C.length;B<A;B++){C[B].style.display="none"}},showFlash:function(C){for(var B=0,A=C.length;B<A;B++){C[B].style.display="block"}}});dojo.provide("stdlib.behavior.dialog.EscapeKeyBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.dialog.EscapeKeyBehavior",mojo.command.Behavior,{execute:function(C){var B=C.eventObj;var A;if(B&&B.which){B=B;A=B.which}else{B=event;A=B.keyCode}if(A==27){this.onResponse();return false}else{return true}},onResponse:function(){}});dojo.provide("stdlib.behavior.dialog.PositionBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.dialog.PositionBehavior",mojo.command.Behavior,{execute:function(A){var F=A.getParams();var C=mojo.queryFirst("#underlay");var B=mojo.queryFirst(".dialog-component");var H=mojo.queryFirst(".dialog-component .dialog-component-content");if(!B||!C||!H){return }var D={};var K;if(typeof window.innerWidth!="undefined"){D.w=window.innerWidth;D.h=window.innerHeight;if(navigator.userAgent.indexOf("opera")==-1){K=window.pageYOffset+window.innerHeight}else{K=window.scrollY+window.innerHeight}}else{if(typeof document.documentElement!="undefined"&&typeof document.documentElement.clientWidth!="undefined"&&document.documentElement.clientWidth!=0){D.w=document.documentElement.clientWidth,D.h=document.documentElement.clientHeight;K=document.documentElement.scrollTop+document.documentElement.clientHeight}else{D.w=document.body.clientWidth;D.h=document.body.clientHeight;K=document.body.scrollTop+document.body.clientHeight}}C.style.width=D.w+"px";C.style.height=K+"px";var I=dojo.coords(B,true);var J=dojo.coords(H,true);var E=Math.round(K-(D.h/2)-(I.h/2));var G=Math.round((D.w/2)-(I.w/2));B.style.top=E+"px";B.style.left=G+"px"}});dojo.provide("stdlib.behavior.DisableBoxBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.DisableBoxBehavior",mojo.command.Behavior,{_box:null,execute:function(D){var C=D.getParams();if(!this._box){this._box=mojo.queryFirst("#disablebox");if(!this._box){this._box=document.createElement("div");this._box.id="disablebox";document.body.appendChild(this._box);this._box.style.position="absolute"}}this._box.innerHTML="";if(D.getParams().show){var A=document.createElement("div");A.className=C.throbberClass||"throbber";if(D.getParams().target){var B=dojo.coords(D.getParams().target,true);this._box.style.top=B.y+"px";this._box.style.left=B.x+"px";this._box.style.width=B.w+"px";this._box.style.height=B.h+"px";A.style.left=((B.w/2)-8)+"px";A.style.top=((B.h/2)-8)+"px";this._box.appendChild(A)}else{this._box.style.top="0px";this._box.style.left="0px";this._box.style.width="100%";this._box.style.height=(document.all)?document.body.offsetHeight+"px":"100%";A.style.left=((B.w/2)-8)+"px";A.style.top=((B.h/2)-8)+"px";this._box.appendChild(A)}this._box.style.zIndex="9999";this._box.style.display="block"}else{this._box.style.display="none"}}});dojo.provide("stdlib.behavior.DragBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.DragBehavior",mojo.command.Behavior,{selectedIndex:0,execute:function(A){var G=A.getParams();var O=A.eventObj,F=G.element,H=dojo.coords(F),P=G.draggable,C=G.container,L=dojo.coords(C),D=G.orientation,J=G.tickSize,M,I,B,K;if(D=="vertical"){M="y";I="h";B="top";if(typeof G.position!="undefined"&&!isNaN(parseInt(G.position))){K=G.position+L[M]}else{K=O.clientY}}else{M="x";I="w";B="left";if(typeof G.position!="undefined"&&!isNaN(parseInt(G.position))){K=G.position+L[M]}else{K=O.clientX}}var N=L[M]+L[I]-H[I];if(K>=N){F.style[B]=(L[I]-H[I]-3)+"px"}else{if(K<=L[M]+1){F.style[B]=0+"px"}else{if(J){var E=(K-L[M]);this.selectedIndex=Math.round(E/J);F.style[B]=this.selectedIndex*J+"px"}else{F.style[B]=(K-L[M])+"px"}}}}});dojo.provide("stdlib.behavior.InsertHtmlBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.InsertHtmlBehavior",mojo.command.Behavior,{execute:function(G){var D=G.getParams().element;var F=G.getParams().action;var B=G.getParams().insertHtml;if(D&&F){if(!dojo.isArray(D)){D=[D]}elmsLength=D.length;for(var C=0;C<elmsLength;C++){elm=D[C];isIE=elm["insertAdjacentHTML"];var E=B;if(!isIE&&typeof B=="string"){if(B.length==0){F="empty"}else{var A=elm.ownerDocument.createRange();A.setStartBefore(elm);E=A.createContextualFragment(B)}}if(F.length>0){switch(F){case"empty":elm.innerHTML="";break;case"before":if(isIE){elm.insertAdjacentHTML("beforeBegin",B)}else{elm.parentNode.insertBefore(E,elm)}break;case"after":if(isIE){elm.insertAdjacentHTML("afterEnd",B)}else{if(elm.nextSibling){elm.parentNode.insertBefore(E,elm.nextSibling)}else{elm.parentNode.appendChild(E)}}break;case"prepend":if(isIE){elm.insertAdjacentHTML("afterBegin",B)}else{elm.insertBefore(E,elm.firstChild)}break;case"append":if(isIE){elm.insertAdjacentHTML("beforeEnd",B)}else{elm.appendChild(E)}break;case"replace":if(isIE){elm.innerHTML=B}else{elm.innerHTML="";elm.appendChild(E)}break}}}}}});dojo.provide("stdlib.behavior.MessagingBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.MessagingBehavior",mojo.command.Behavior,{execute:function(A){mojo.Messaging.publish(A.paramsObj.topic,A.paramsObj.message)}});dojo.provide("stdlib.behavior.PopulateDateBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.PopulateDateBehavior",mojo.command.Behavior,{months:["January","February","March","April","May","June","July","August","September","October","November","December"],execute:function(A){var C=A.getParams(),B=C.month,I=C.year,L=parseInt(C.minYear,10),F=parseInt(C.year,10)+50;var J=mojo.queryFirst("select.date-year",C.target);var K=mojo.queryFirst("select.date-month",C.target);J.innerHTML="";K.innerHTML="";for(var D=L;D<F;D++){var E=new Option(D.toString(),D);if(D==I){E.selected=true}J.options.add(E)}for(var D=0,H=this.months.length;D<H;D++){var M=this.months[D];var G=(D<=8)?"0"+(D+1):D+1;var E=new Option(M,G);if(D==B){E.selected=true}K.options.add(E)}}});dojo.provide("stdlib.behavior.PopulateDaysBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.PopulateDaysBehavior",mojo.command.Behavior,{daysInMonth:function(B,A){return(new Date(A,B,0)).getDate()},execute:function(G){var F=G.getParams();if(!F.day){F.day=(new Date()).getDate()}var D=F.target;D.innerHTML="";var A=this.daysInMonth(F.month,F.year);for(var B=1;B<=A;B++){var E=(B<=9)?"0"+(B):B;var C=new Option(B,E);if(B==F.day){C.selected=true}D.options.add(C)}}});dojo.provide("stdlib.behavior.RedirectBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.RedirectBehavior",mojo.command.Behavior,{execute:function(E){var D=E.getParams();var C=25;if(D){var B=D.url;var A=D.removeHash||false;var C=D.delay||25}if(!B){if(A){window.location=window.location.href.replace(/#.*/,"");setTimeout("window.location.reload()",750)}else{window.location.reload()}}else{setTimeout(function(){window.location.href=B},C)}}});dojo.provide("stdlib.behavior.SetHistoryBehavior");dojo.require("mojo.command.Behavior");dojo.require("mojo.History");dojo.declare("stdlib.behavior.SetHistoryBehavior",mojo.command.Behavior,{execute:function(E){if(E.getParams()){var A;var B=mojo.History.getInstance();var D=E.getParams();if(D){if(typeof D.clearHash!="undefined"){if(D.clearHash){window.location.hash="#"}}else{var C=B._parseObj(D);mojo.History.getInstance().setHash(C)}}}}});dojo.provide("stdlib.behavior.TweenBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.TweenBehavior",mojo.command.Behavior,{onComplete:function(){},onStart:function(){},_effect:null,execute:function(H){var C={};var F;if(H.getParams().width!=null){C.width=H.getParams().width}if(H.getParams().height!=null){C.height=H.getParams().height}if(dojo.isIE&&C.height==0){C.height=1}if(H.getParams().x!=null){C.left=H.getParams().x}if(H.getParams().y!=null){C.top=H.getParams().y}if(H.getParams().duration!=null){F=H.getParams().duration}else{F=600}var E=H.getParams().element;if(!dojo.isArray(E)){E=[E]}var A=E.length;var G=this;for(var B=0;B<A;B++){if(E[B]){if(E[B].style.height=="auto"&&C.height!=null){E[B].style.height=dojo.coords(E[B]).h+"px"}var D=new Fx.Styles(E[B],{duration:F,transition:Fx.Transitions.Expo.easeInOut,onStart:function(){G.onStart();if(dojo.isIE&&this.from.height=="1"){this.element.style.display="block"}},onComplete:function(){if(this.to.height=="1"){this.element.style.display="none"}if((this.from.height=="0")||(this.from.height=="1")){this.element.style.height="auto"}if(this.element.style.height=="auto"&&this.to.height>0&&dojo.coords(this.element).h==0){this.element.style.height=this.to.height+"px"}G.onComplete()}});this._effect=D;D.start(C)}}}});dojo.provide("stdlib.behavior.UpdateCssClassBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.UpdateCssClassBehavior",mojo.command.Behavior,{execute:function(H){var E;var F=H.paramsObj.element;var G=H.paramsObj.action;var B=H.paramsObj.cssClass;if(F==null||typeof F=="undefined"){return }else{if(typeof F=="object"){if(F.length>0){for(var D=0;D<F.length;D++){if(typeof F[D]!="object"){throw new Error("ERROR stdlib.behavior.UpdateCssClassBehavior - element parameter is not an array of type Object");break}}}}else{throw new Error("ERROR stdlib.behavior.UpdateCssClassBehavior - element parameter is not a type Object")}}if(G==null||typeof G=="undefined"){throw new Error("ERROR stdlib.behavior.UpdateCssClassBehavior - action parameter is required")}else{if(typeof G!="string"){throw new Error("ERROR stdlib.behavior.UpdateCssClassBehavior - action parameter is not a type String")}else{if((G!="add")&&(G!="remove")&&(G!="set")&&(G!="toggle")){throw new Error("ERROR stdlib.behavior.UpdateCssClassBehavior - action parameter is invalid")}}}if(B==null||typeof B=="undefined"){throw new Error("ERROR stdlib.behavior.UpdateCssClassBehavior - CssClass parameter is required")}else{if(typeof B=="object"){if(B.length>0){for(var D=0;D<B.length;D++){if(typeof B[D]!="string"){throw new Error("ERROR stdlib.behavior.UpdateCssClassBehavior - CssClass parameter is not an array of type String");break}}}}else{if(typeof B!="string"){throw new Error("ERROR stdlib.behavior.UpdateCssClassBehavior - CssClass parameter is not a type String")}}}if(F){var A=function(I){if(!I.constructor||I.constructor.toString().toLowerCase().indexOf("array")==-1){return false}return true};if(!A(F)){F=[F]}if(!A(B)){B=[B]}cssLength=B.length;E=F.length;for(var D=0;D<E;D++){elm=F[D];for(var C=0;C<cssLength;C++){css=B[C];if(G.length>0){switch(G){case"add":dojo.addClass(elm,css);break;case"remove":dojo.removeClass(elm,css);break;case"set":elm.className="";dojo.addClass(elm,css);break;case"toggle":dojo.toggleClass(elm,css);break}}}}}},onResponse:function(){}});dojo.provide("stdlib.behavior.UpdateFormFieldBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.UpdateFormFieldBehavior",mojo.command.Behavior,{execute:function(R){var F;var C=new Array();var B=new Array();var K=["INPUT","SELECT","TEXTAREA"];var Q=R.getParams();if(!Q){Q={}}var I=Q.fields;if(Q.formId!=null){F=mojo.queryFirst("#"+Q.formId)}if(Q.formObj!=null){F=Q.formObj}if(F){for(var O=0,M=K.length;O<M;O++){var D=mojo.query(K[O],F);for(var N=0,P=D.length;N<P;N++){C.push(D[N])}}for(var O=0,M=I.length;O<M;O++){var E=I[O].name;var S=I[O].value;for(var N=0,P=C.length;N<P;N++){var J=false;if(C[N].tagName=="SELECT"){if(C[N].name==E){for(var L=0,A=C[N].options.length;L<A;L++){var H=C[N].options[L];if(H.value==S){C[N].selectedIndex=L}}}}else{if(C[N].tagName=="TEXTAREA"){if(C[N].name==E){if(C[N].value==S){J=true}if(C[N].innerHTML==S){J=true}C[N].value=S;C[N].innerHTML=S}}else{if(C[N].tagName=="INPUT"){if(C[N].name==E){if((C[N].type=="radio")||(C[N].type=="checkbox")){if(C[N].value==S){C[N].checked="checked"}else{C[N].checked=""}}else{if((C[N].type=="text")||(C[N].type=="password")||(C[N].type=="hidden")){if(C[N].value!=S){J=true}C[N].value=S}}}}}}if(J){if(C[N].fireEvent){C[N].fireEvent("onchange")}if(document.createEvent){var G=document.createEvent("HTMLEvents");if(G.initEvent){G.initEvent("change",true,true)}if(C[N].dispatchEvent){C[N].dispatchEvent(G)}}}}}}}});dojo.provide("stdlib.behavior.SubmitFormBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.SubmitFormBehavior",mojo.command.Behavior,{execute:function(B){var A=B.getParams();if(A&&A.form){if(A.form.tagName.toLowerCase()!="form"){A.form=mojo.queryFirst("form",A.form)}this.onResponse();A.form.submit()}},onResponse:function(){},onError:function(){}});dojo.provide("stdlib.behavior.EnterKeyBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.EnterKeyBehavior",mojo.command.Behavior,{execute:function(C){var B=C.eventObj;var A;if(B&&B.which){B=B;A=B.which}else{B=event;A=B.keyCode}if(A==13){this.onResponse();return false}else{return true}},onResponse:function(){}});dojo.provide("stdlib.behavior.RemoveElementsBehavior");dojo.declare("stdlib.behavior.RemoveElementsBehavior",mojo.command.Behavior,{execute:function(G){var A;var C;var E;var F;var D=G.paramsObj;if(D){if(D.className!=null){A=D.className}if(D.targetId!=null){C=D.targetId}if(D.target!=null){E=D.target}}if((A!=null)&&(C!=null||E!=null)){if(C&&!E){if(C.indexOf("#")!=0){C="#"+C}E=mojo.queryFirst(C)}F=mojo.query(A,E);if(F){if(F.length>0){for(var B=0;B<F.length;B++){if((F[B])&&(F[B].parentNode)){F[B].parentNode.removeChild(F[B])}}}else{if((F)&&(F.parentNode)){F.parentNode.removeChild(F)}}}}}});dojo.provide("stdlib.command.AutoSuggest.GetSuggestionsCommand");dojo.require("mojo.command.Command");dojo.require("mojo.Model");dojo.declare("stdlib.command.AutoSuggest.GetSuggestionsCommand",mojo.command.Command,{inputValue:null,_clearTimeout:null,_lastValue:null,execute:function(requestObj){if(requestObj.getParams().inputValue!=this.inputValue){this.inputValue=requestObj.getParams().inputValue.replace(/\s*$/g,"");clearTimeout(this._clearTimeout);if(this.inputValue.length>0){var thisObj=this;dojo.require(requestObj.getParams().serviceLocator);this._clearTimeout=setTimeout(function(){if(thisObj._lastValue!=thisObj.inputValue){thisObj._lastValue=thisObj.inputValue;var locator=eval(requestObj.getParams().serviceLocator);locator.getInstance().getService(requestObj.getParams().serviceName).invoke({inputValue:thisObj.inputValue},thisObj)}},400)}else{mojo.Model.remove(requestObj.getParams().model)}}},onResponse:function(A){mojo.Model.set(this.getRequest().getParams().model,A[this.getRequest().getParams().modelPath])},onError:function(A){}});dojo.provide("stdlib.command.ClearModelCommand");dojo.require("mojo.Model");dojo.declare("stdlib.command.ClearModelCommand",mojo.command.Command,{execute:function(C){var A=C.paramsObj.model;if(A==null||typeof A=="undefined"){throw new Error("ERROR stdlib.command.ClearModelCommand - model parameter is required")}else{if(typeof A=="array"||typeof A=="object"){if(A.length>0){for(var B=0;B<A.length;B++){if(typeof A[B]!="string"){throw new Error("ERROR stdlib.command.ClearModelCommand - model parameter is not an array of type String");break}}}}else{if(typeof A=="string"){if(A==""){throw new Error("ERROR stdlib.command.ClearModelCommand - model parameter must be a non-empty string")}}else{throw new Error("ERROR stdlib.command.ClearModelCommand - model parameter is not a type String")}}}if(A){if(typeof (A)=="string"){A=[A]}if(dojo.isArray(A)){for(B=0;B<A.length;B++){mojo.Model.remove(A[B])}}}}});dojo.provide("stdlib.command.InsertIntoModelCommand");dojo.require("mojo.command.Command");dojo.require("mojo.Model");dojo.declare("stdlib.command.InsertIntoModelCommand",mojo.command.Command,{execute:function(A){var C;var F;var I;var E;var H=false;var G=A.getParams();if(!G){G={}}if(G.model!=null){C=G.model}if(G.index!=null){F=G.index}if(G.value!=null){I=G.value}if(C==null||typeof C=="undefined"){throw new Error("ERROR stdlib.command.InsertIntoModelCommand - model parameter is required")}else{if(C==""){throw new Error("ERROR stdlib.command.InsertIntoModelCommand - model parameter must be a non-empty string")}if(typeof C!="string"){throw new Error("ERROR stdlib.command.InsertIntoModelCommand - model parameter must be type String")}else{if(!mojo.Model.contains(C)){throw new Error("ERROR stdlib.command.InsertIntoModelCommand - specified model does not exist")}else{E=mojo.Model.get(C).length;if(typeof E!="number"){throw new Error("ERROR stdlib.command.InsertIntoModelCommand - specified model must be type Array")}}}}if(I==null||typeof I=="undefined"){throw new Error("ERROR stdlib.command.InsertIntoModelCommand - value is not set")}if(F!=null){if(typeof F!="number"){throw new Error("ERROR stdlib.command.InsertIntoModelCommand - index parameter must be type Number")}else{}}var B=mojo.Model.get(C);if(B.length!=0){if(typeof F=="undefined"||F<0||F>=B.length){var D=B.length}else{var D=F}}else{var D=0}if(B.length==0){mojo.Model.add(C,I)}else{if(D==B.length-1){mojo.Model.add(C,I)}else{B.splice(D,0,I);mojo.Model.set(C,B)}}},onResponse:function(A){},onError:function(A){}});dojo.provide("stdlib.command.MapControllersCommand");dojo.require("mojo.command.Command");dojo.declare("stdlib.command.MapControllersCommand",mojo.command.Command,{execute:function(B){var A=null;if(B.getParams()){A=B.getParams().contextObj}mojo.controller.Map.mapControllers(A)}});dojo.provide("stdlib.command.PaginationCommand");dojo.require("mojo.command.Command");dojo.declare("stdlib.command.PaginationCommand",mojo.command.Command,{model:"paginationState",execute:function(E){if(E.getParams().model!=null){this.model=E.getParams().model}mojo.Model.remove(this.model);if(typeof E.getParams().pageSize!="undefined"&&typeof E.getParams().total!="undefined"){if(E.getParams().pageSize<=0||E.getParams().total<=0){mojo.Model.set(this.model,{pageIndex:0,pageSize:0,total:0,from:0,to:0,pageNext:-1,pagePrev:-1,pageTotal:0,pages:[]})}else{var C={};C.pageSize=E.getParams().pageSize;C.total=E.getParams().total;C.pageIndex=0;if(E.getParams().pageIndex&&E.getParams().pageIndex>0){C.pageIndex=E.getParams().pageIndex}C.pageTotal=Math.ceil(C.total/C.pageSize);if(C.pageIndex>C.pageTotal){return }C.from=(C.pageSize*C.pageIndex)+1;C.to=C.pageSize*(C.pageIndex+1);if(C.to>C.total){C.to=C.total}C.pageNext=((C.pageIndex+1)>=C.pageTotal)?-1:(C.pageIndex+1);C.pagePrev=(C.pageIndex==0)?-1:(C.pageIndex-1);C.showPages=8;if(E.getParams().showPages&&E.getParams().showPages>0){C.showPages=E.getParams().showPages}var A=Math.ceil(C.showPages/2);var D=0;if((C.pageIndex-A)>0){D=C.pageIndex-A;if(D>0&&(C.pageTotal-C.pageIndex)<A){D=D-(A-(C.pageTotal-C.pageIndex));if(D<=0){D=0}}}C.pages=[];for(var B=D;B<(D+C.showPages);B++){if(B<C.pageTotal){C.pages.push(B+1)}}mojo.Model.set(this.model,C)}}}});dojo.provide("stdlib.command.RemoveFromModelCommand");dojo.require("mojo.command.Command");dojo.require("mojo.Model");dojo.declare("stdlib.command.RemoveFromModelCommand",mojo.command.Command,{execute:function(A){var E;var G;var K;var J;var D=true;var F;var I=false;var C=false;var H=A.getParams();if(!H){H={}}if(H.model!=null){E=H.model}if(H.index!=null){G=H.index}if(H.value!=null){J=H.value}if(H.key!=null){K=H.key}if(H.firstOnly!=null){D=H.firstOnly}if(E==null||typeof E=="undefined"){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - model parameter is required")}else{if(E==""){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - model parameter must be a non-empty string")}else{if(typeof E!="string"){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - model parameter must be type String")}else{if(!mojo.Model.contains(E)){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - specified model does not exist")}else{F=mojo.Model.get(E).length;if(typeof F!="number"){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - specified model must be type Array")}}}}}if(G==null||typeof G=="undefined"){if((K==null||typeof K!="string"||K=="")||(J==null||typeof J=="undefined"||J=="")){if(K==null||typeof K=="undefined"){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - either [index] parameter or [key and value] parameters are required")}else{if(K==""){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - key parameter must be a non-empty string")}else{if(typeof K!="string"){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - key parameter must be type String")}else{if(J==null||typeof J=="undefined"){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - either [index] parameter or [key and value] parameters are required")}}}}}}else{if((K!=null)&&(typeof K!="undefined")&&(K=="")){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - key parameter must be a non-empty string")}if(typeof G!="number"){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - index parameter must be type Number")}else{if(G<0){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - index parameter cannot be less than zero")}else{if(mojo.Model.contains(E)){if(G>=mojo.Model.get(E).length){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - index parameter is out of bounds")}}}}}var B=mojo.Model.get(E);if((K!=null)&&(typeof K!="undefined")&&(K!="")&&(J!=null)&&(typeof J!="undefined")&&(J!="")){if(D){for(i=0;i<B.length;i++){if(typeof B[i][K]!="undefined"){if(B[i][K]==J){B.splice(i,1);mojo.Model.set(E,B);break}}}}else{for(i=B.length-1;i>=0;i--){if(typeof B[i][K]!="undefined"){if(B[i][K]==J){B.splice(i,1);C=true}}}if(C){mojo.Model.set(E,B)}}}else{if((G!=null)&&(typeof G!="undefined")&&(typeof G=="number")){B.splice(G,1);mojo.Model.set(E,B)}}},onResponse:function(A){},onError:function(A){}});dojo.provide("stdlib.command.SetModelCommand");dojo.require("mojo.command.Command");dojo.require("mojo.Model");dojo.declare("stdlib.command.SetModelCommand",mojo.command.Command,{execute:function(C){var A=C.paramsObj.model;var B=C.paramsObj.set;if(A==null||typeof A=="undefined"){throw new Error("ERROR stdlib.command.SetModelCommand - model parameter is required")}else{if(typeof A=="string"){if(A==""){throw new Error("ERROR stdlib.command.SetModelCommand - model parameter must be a non-empty string")}}else{throw new Error("ERROR stdlib.command.SetModelCommand - model parameter must be type String")}}if(!B){B=mojo.Model.get(A)}mojo.Model.set(A,B);C.paramsObj.set=null}});dojo.provide("stdlib.command.UpdateControllerParamCommand");dojo.require("mojo.command.Command");dojo.declare("stdlib.command.UpdateControllerParamCommand",mojo.command.Command,{execute:function(G){var F;var C;var D;var B;var E=G.getParams();if(E){if(E.element!=null){F=E.element}if(E.control!=null){C=E.control}if(E.params!=null){D=E.params}if(E.value!=null){B=E.value}}try{if((C!=null)&&(D!=null)&&(B!=null)){if(F){F.mojoControllers[C].setValue(D,B)}else{G.getController().getContextController(C).setValue(D,B)}}}catch(A){}},onResponse:function(){},onError:function(){}});dojo.provide("stdlib.command.UpdateObserversCommand");dojo.require("mojo.controller.Controller");dojo.require("mojo.command.Command");dojo.declare("stdlib.command.UpdateObserversCommand",mojo.command.Command,{execute:function(B){var A=setTimeout(function(){mojo.controller.Controller.updateObservers(B.getParams().controllerName);clearTimeout(A)},20)}});dojo.provide("stdlib.command.ValidateRulesCommand");dojo.require("mojo.command.Command");dojo.require("mojo.helper.Validation");dojo.require("mojo.helper.view.Error");dojo.require("mojo.query");dojo.declare("stdlib.command.ValidateRulesCommand",mojo.command.Command,{_targetElement:null,_checkAll:true,_output:function(B,A){},execute:function(requestObj){var rules;var formSet;var params=requestObj.getParams();if(params){if(params.targetElement!=null){this._targetElement=params.targetElement}if(params.checkAll!=null){this._checkAll=params.checkAll}if(params.rules!=null){rules=params.rules}if(params.formSet!=null){formSet=params.formSet}}if(rules){if(this._targetElement!=null){this._targetElement.innerHTML="";if(formSet){var clearTags=["label","inputs","textarea","select"];for(var i=0;i<clearTags.length;i++){var Tag=mojo.query(clearTags[i],formSet);for(var j=0;j<Tag.length;j++){dojo.removeClass(Tag[j],"error")}}}}if(typeof (rules)=="string"){dojo.require(rules);eval("requestObj.getParams().rules = "+rules)}var val=mojo.helper.Validation.getInstance();if((formSet)&&(this._checkAll)){var errorList=val.execute(requestObj.getParams().rules,formSet)}else{var errorList=val.execute(requestObj.getParams().rules,[requestObj.callerObj])}if(errorList.length>0){if(this._targetElement!=null){mojo.helper.view.Error.showElementErrors(errorList,this._targetElement);for(var i=0;i<errorList.length;i++){dojo.addClass(errorList[i].element,"error");if(errorList[i].element.parentNode.tagName=="LABEL"){dojo.addClass(errorList[i].element.parentNode,"error")}}}else{for(var i=0,len=errorList.length;i<len;i++){var error=errorList[i];var err=document.createElement("span");err.className="mojoValidationError";err.innerHTML=error.message;if(error.element.type=="checkbox"){if(error.element.parentNode.tagName=="LABEL"){dojo.place(err,error.element.parentNode,"after")}else{dojo.place(err,error.element,"after")}}else{dojo.place(err,error.element,"after")}}}this.onError()}else{if(requestObj.invocation){this.onResponse();requestObj.invocation.proceed()}}}else{console.debug("ERROR stdlib.command.ValidateRulesCommand - No rules passed")}},onResponse:function(){},onError:function(){}});dojo.provide("stdlib.controller.AccordionController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.AccordionController",mojo.controller.Controller,{params:{selectedIndex:{required:false,defaultValue:0,type:Number},activeOn:{required:false,defaultValue:"onclick"},toggleClose:{required:false,defaultValue:false},direction:{required:false,defaultValue:"vertical"}},addObservers:function(){var B=mojo.query("> .accordion-panel",this.getContextElement());var A=mojo.query("> .accordion-panel > .accordion",this.getContextElement());var C=mojo.query("> .accordion-panel > .accordion-content",this.getContextElement());this.addObserver("> .accordion-panel > .accordion",this.getValue("activeOn"),"UpdateClass",function(H,E){var G=A;var D=0;for(var F=0;F<G.length;F++){if(G[F]==E){D=F;break}}if(this.getController().getValue("toggleClose")&&D==this.getController().getValue("selectedIndex")){this.getController().setValue("selectedIndex",-1)}else{this.getController().setValue("selectedIndex",D)}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","Tween",function(F,E,D){return{height:(D.getValue("direction")=="vertical")?0:null,width:(D.getValue("direction")=="horizontal")?0:null,element:mojo.query("> .open > .accordion-content",F)}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(E,D){return{element:B,action:"remove",cssClass:"open"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(E,D){return{element:B[D.getValue()],action:"add",cssClass:"open"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","Tween",function(F,E,D){var G=C[E.getValue()];if(!G){return }return{element:G,height:(D.getValue("direction")=="vertical")?G.scrollHeight:null,width:(D.getValue("direction")=="horizontal")?G.scrollWidth:null}})},addCommands:function(){this.addCommand("UpdateClass","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("Tween","stdlib.behavior.TweenBehavior")},addIntercepts:function(){}});dojo.provide("stdlib.controller.AutoSuggestController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.AutoSuggestController",mojo.controller.Controller,{params:{model:{required:false,defaultValue:"suggestions"},modelPath:{required:false,defaultValue:"suggestions"},serviceLocator:{required:true,defaultValue:"sample.service.Locator"},serviceName:{required:false,defaultValue:"getSuggestions"},inputName:{required:false,defaultValue:"suggest-input"}},addObservers:function(){this.addObserver("input.suggest-input","onkeyup","GetSuggestions",function(B,A){return{inputValue:A.value,model:this.getController().getValue("model"),modelPath:this.getController().getValue("modelPath"),serviceLocator:this.getController().getValue("serviceLocator"),serviceName:this.getController().getValue("serviceName")}});this.addObserver("input.suggest-input","onkeydown","SuggestNavigation",function(B,A){return{suggestions:mojo.query(".suggestion",B)}});this.addObserver(this.getCommand("SuggestNavigation"),"onNav","UpdateClass",function(B,A){return{element:mojo.query(".suggestion",B),action:"remove",cssClass:"selected"}});this.addObserver(this.getCommand("SuggestNavigation"),"onNav","UpdateClass",function(B,A){return{element:A.suggestion,action:"add",cssClass:"selected"}});this.addObserver(this.getCommand("SuggestNavigation"),"onNav","UpdateForm",function(B,A){return{formObj:B,fields:[{name:this.getController().getValue("inputName"),value:(A.suggestion.innerHTML.split("\n")[0]||A.suggestion.innerHTML.split("\n")[1]).replace(/\s*\<[^\>]+\>\s*/g,"")}]}});this.addObserver(".suggestion","onmouseover","UpdateForm",function(B,A){return{formObj:B,fields:[{name:this.getController().getValue("inputName"),value:(A.innerHTML.split("\n")[0]||A.innerHTML.split("\n")[1]).replace(/\s*\<[^\>]+\>\s*/g,"")}]}});this.addObserver(".suggestion","onmouseover","UpdateClass",function(B,A){return{element:A,action:"add",cssClass:"selected"}});this.addObserver(".suggestion","onmouseout","UpdateClass",function(B,A){return{element:A,action:"remove",cssClass:"selected"}});this.addObserver("input.suggest-input","onblur","ClearModel",function(B,A){return{model:this.getController().getValue("model")}})},addCommands:function(){this.addCommand("SuggestNavigation","stdlib.behavior.AutoSuggest.SuggestNavigationBehavior");this.addCommand("UpdateClass","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("GetSuggestions","stdlib.command.AutoSuggest.GetSuggestionsCommand");this.addCommand("ClearModel","stdlib.command.ClearModelCommand");this.addCommand("UpdateForm","stdlib.behavior.UpdateFormFieldBehavior")},addIntercepts:function(){}});dojo.provide("stdlib.controller.DateController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.DateController",mojo.controller.Controller,{params:{date:{defaultValue:new Date()},minYear:{defaultValue:"1920"}},addObservers:function(){this.addObserver(this,"onInit","PopulateDate",function(B,A){if(this.getController().getValue("minYear")=="today"){var C=new Date();this.getController().setValue("minYear",C.getFullYear())}return{target:this.getContextElement(),month:this.getController().getValue("date").getMonth(),year:this.getController().getValue("date").getFullYear(),minYear:this.getController().getValue("minYear")}});this.addObserver(this.getCommand("PopulateDate"),"execute","PopulateDays",function(B,A){if(this.getController().getValue("minYear")=="today"){var C=new Date();this.getController().setValue("minYear",C.getFullYear())}return{target:mojo.queryFirst("> .date-day",B),day:(new Date()).getDate(),month:mojo.queryFirst("> .date-month",B).value,year:mojo.queryFirst("> .date-year",B).value,minYear:this.getController().getValue("minYear")}});this.addObserver("> .date-month","onchange","PopulateDays",function(B,A){return{target:mojo.queryFirst("> .date-day",B),month:mojo.queryFirst("> .date-month",B).value,year:mojo.queryFirst("> .date-year",B).value}});this.addObserver("> .date-year","onchange","PopulateDays",function(B,A){return{target:mojo.queryFirst("> .date-day",B),month:mojo.queryFirst("> .date-month",B).value,year:mojo.queryFirst("> .date-year",B).value}});this.addObserver(this.getConfig("params").date,"onChange","PopulateDate",function(B,A){if(this.getController().getValue("minYear")=="today"){var C=new Date();this.getController().setValue("minYear",C.getFullYear())}return{target:this.getContextElement(),month:this.getController().getValue("date").getMonth(),year:this.getController().getValue("date").getFullYear(),minYear:this.getController().getValue("minYear")}})},addCommands:function(){this.addCommand("PopulateDate","stdlib.behavior.PopulateDateBehavior");this.addCommand("PopulateDays","stdlib.behavior.PopulateDaysBehavior")},addIntercepts:function(){}});dojo.provide("stdlib.controller.DialogController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.DialogController",mojo.controller.Controller,{params:{container:{required:false,defaultValue:".dialog-component",type:String},title:{required:false,defaultValue:".dialog-component .dialog-component-title",type:String},titleText:{required:false,defaultValue:"Hello World",type:String},content:{required:false,defaultValue:".dialog-component .dialog-component-content",type:String},width:{defaultValue:0,type:Number},height:{defaultValue:0,type:Number}},addObservers:function(){var C=this.getValue("content"),D=this.getValue("title"),B=this.getValue("container"),A=this.getValue("titleText");this.addObserver(mojo.Messaging.getTopic("dialog"),"onPublish","Dialog",function(G,F){var E=F.getMessage();E.elContainer=B;E.elContent=C;E.elTitle=D;if(!E.title){E.title=A}this.getController().setValue("width",E.width);this.getController().setValue("height",E.height);mojo.Model.set("stlib.dialog.params",E);return E});this.addObserver(this.getCommand("Dialog"),"onComplete","MapControllers",function(){return{contextObj:mojo.queryFirst(this.getController().getValue("container"))}});this.addObserver(this.getCommand("Dialog"),"onComplete","UpdateObservers",function(F,E){return{controllerName:this.getController().declaredClass}});this.addObserver(window,"onkeyup","EscapeKey");this.addObserver(this.getCommand("EscapeKey"),"onResponse","Dialog",function(F,E){return{enabled:false}});this.addObserver(this.getCommand("Dialog"),"onDataReady","Position");this.addObserver(window,"onresize","Position");this.addObserver(window,"onscroll","Position");this.addObserver(".btn-close","onclick","Messaging",function(F,E){return{topic:"dialog",message:{enabled:false}}})},addCommands:function(){this.addCommand("ClearModel","stdlib.command.ClearModelCommand");this.addCommand("Messaging","stdlib.behavior.MessagingBehavior");this.addCommand("Dialog","stdlib.behavior.dialog.DialogBehavior");this.addCommand("Position","stdlib.behavior.dialog.PositionBehavior");this.addCommand("EscapeKey","stdlib.behavior.dialog.EscapeKeyBehavior");this.addCommand("MapControllers","stdlib.command.MapControllersCommand");this.addCommand("UpdateObservers","stdlib.command.UpdateObserversCommand")},addIntercepts:function(){}});dojo.provide("stdlib.controller.FilmStripController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.FilmStripController",mojo.controller.Controller,{params:{selectedIndex:{required:false,defaultValue:0,type:Number},loop:{required:false,defaultValue:false,type:Boolean}},addObservers:function(){var A=function(B){return mojo.query("> .filmstrip-viewer > .filmstrip-content > .filmstrip-page",B)};this.addObserver("> .filmstrip-next","onclick","UpdateClass",function(E,C){var D=A(E);var B=this.getController().getValue("selectedIndex");B++;if(B>=A(E).length){if(this.getController().getValue("loop")){this.getController().setValue("selectedIndex",0)}}else{this.getController().setValue("selectedIndex",B)}});this.addObserver("> .filmstrip-prev","onclick","UpdateClass",function(E,C){var D=A(E);var B=this.getController().getValue("selectedIndex");B--;if(B<0){if(this.getController().getValue("loop")){this.getController().setValue("selectedIndex",A(E).length-1)}}else{this.getController().setValue("selectedIndex",B)}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(D,C,B){return{element:mojo.query("> .filmstrip-next",D),action:(C.getValue()>=A(D).length-1)?"add":"remove",cssClass:"disabled"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(D,C,B){return{element:mojo.query("> .filmstrip-prev",D),action:(C.getValue()<=0)?"add":"remove",cssClass:"disabled"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","Tween",function(D,C,B){return{x:(-1*A(D)[C.getValue()].offsetLeft),y:(-1*A(D)[C.getValue()].offsetTop),element:mojo.query("> .filmstrip-viewer > .filmstrip-content",D)}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(C,B){return{element:A(C),action:"remove",cssClass:"selected"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(C,B){return{element:A(C)[B.getValue()],action:"add",cssClass:"selected"}})},addCommands:function(){this.addCommand("UpdateClass","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("Tween","stdlib.behavior.TweenBehavior")},addIntercepts:function(){}});dojo.provide("stdlib.controller.FormController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.FormController",mojo.controller.Controller,{params:{isSubmitted:{required:false,defaultValue:false,type:Boolean},formSubmitCommand:{required:true,defaultValue:"FormSubmitCommand",type:String},formRules:{required:true,defaultValue:"stdlib.rules.Rules",type:String},modelErrors:{required:true,defaultValue:"stdlib.myModel",type:String},formId:{required:true,defaultValue:"#form",type:String},submitButtonId:{required:true,defaultValue:"#submit-form",type:String},cancelButtonId:{required:true,defaultValue:"#cancel-form",type:String}},addObservers:function(){var B=this.getValue("formRules"),C=this.getValue("modelErrors"),A=this.getValue("formId");this.addObserver("span.info","onmouseover","ToolTip",function(){return{show:true}});this.addObserver("span.info","onmouseout","ToolTip",function(){return{show:false}});this.addObserver("input","onkeydown","EnterKey");this.addObserver("input","onblur","ValidateRules",function(E,D){if(!this.getController().getValue("isSubmitted")){return{rules:{},formSet:mojo.query(A)}}return{rules:B,formSet:mojo.query(A)}});this.addObserver("textarea","onblur","ValidateRules",function(E,D){if(!this.getController().getValue("isSubmitted")){return{rules:{},formSet:mojo.query(A)}}return{rules:B,formSet:mojo.query(A)}});this.addObserver("select","onchange","ValidateRules",function(E,D){if(!this.getController().getValue("isSubmitted")){return{rules:{},formSet:mojo.query(A)}}return{rules:B,formSet:mojo.query(A)}});this.addObserver(this.getCommand(this.getValue("formSubmitCommand")),"onError","DisableBox",function(E,D){return{target:E,show:false}});this.addObserver(this.getCommand(this.getValue("formSubmitCommand")),"onResponse","ClearModel",function(){return{model:C}});this.addObserver(this.getCommand(this.getValue("formSubmitCommand")),"onResponse","DisableBox",function(E,D){return{target:E,show:false}});this.addObserver(this.getValue("submitButtonId"),"onclick","UpdateControllerParam",function(F,E,D){return{control:this.getController().declaredClass,params:"isSubmitted",value:true,element:F}});this.addObserver(this.getConfig("params").isSubmitted,"onChange","ValidateRules",function(E,D){if(!this.getController().getValue("isSubmitted")){return{rules:{},formSet:mojo.query(A)}}return{rules:B,formSet:mojo.query(A)}});this.addObserver(this.getValue("cancelButtonId"),"onclick","ClearErrors",function(E,D){return{className:".mojoValidationError",targetId:this.getController().getValue("formId")}});this.addObserver(this.getValue("cancelButtonId"),"onclick","ClearForm",function(E,D){return{formSet:mojo.queryFirst(this.getController().getValue("formId"),E)}});this.addObserver(this.getCommand("ValidateRules"),"onResponse","DisableBox",function(E,D){return{target:E,show:true}})},addCommands:function(){this.addCommand("Messaging","stdlib.behavior.MessagingBehavior");this.addCommand("EnterKey","stdlib.behavior.EnterKeyBehavior");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand");this.addCommand("DisableBox","stdlib.behavior.DisableBoxBehavior");this.addCommand("ClearForm","stdlib.behavior.ClearFormBehavior");this.addCommand("ClearErrors","stdlib.command.RemoveObjectsCommand");this.addCommand("ClearModel","stdlib.command.ClearModelCommand");this.addCommand("Redirect","stdlib.behavior.RedirectBehavior");this.addCommand("ToolTip","stdlib.behavior.ToolTipBehavior");this.addCommand("ValidateRules","stdlib.command.ValidateRulesCommand")},addIntercepts:function(){this.addIntercept("around",this.getValue("formSubmitCommand"),"ValidateRules",{rules:this.getValue("formRules"),formSet:mojo.query(this.getValue("formId"))})}});dojo.provide("stdlib.controller.SliderController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.SliderController",mojo.controller.Controller,{params:{formId:{required:true,defaultValue:""},tickSize:{required:false,defaultValue:10,type:Number},tickValue:{required:false,defaultValue:1,type:Number},tickMaxValue:{required:false,defaultValue:10,type:Number},value:{required:false,defaultValue:0,type:Number},valueInput:{required:false,defaultValue:"slider-value-input",type:String},thumb:{required:false,defaultValue:".slider-thumb",type:String},draggable:{required:false,defaultValue:false,type:Boolean},selectedIndex:{required:false,defaultValue:0,type:Number},orientation:{required:false,defaultValue:"horizontal",type:String}},addObservers:function(){this.addObserver(this.getContextElement(),"onmousedown","UpdateControllerParam",function(B,A){return{control:"stdlib.controller.SliderController",params:"draggable",value:true}});this.addObserver(this.getContextElement(),"onmousedown","Drag",function(B,A){return{element:mojo.queryFirst(".slider-thumb",B),container:mojo.queryFirst(".slider-bg",B),orientation:this.getController().getValue("orientation"),tickSize:this.getController().getValue("tickSize")}});this.addObserver(document.body,"onmouseup","UpdateControllerParam",function(B,A){return{control:"stdlib.controller.SliderController",params:"draggable",value:false}});this.addObserver(this.getContextElement(),"onmousemove","Drag",function(B,A){if(!this.getController().getValue("draggable")){return }return{element:mojo.queryFirst(".slider-thumb",B),container:mojo.queryFirst(".slider-bg",B),orientation:this.getController().getValue("orientation"),tickSize:this.getController().getValue("tickSize")}});this.addObserver(this.getCommand("Drag"),"execute","UpdateControllerParam",function(B,A){if(!this.getController().getValue("draggable")){return }return{control:"stdlib.controller.SliderController",params:"selectedIndex",value:this.getController().getCommand("Drag").selectedIndex}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateControllerParam",function(B,A){if(!this.getController().getValue("draggable")){return }return{control:"stdlib.controller.SliderController",params:"value",value:A.getValue()*this.getController().getValue("tickValue")}});this.addObserver(this.getConfig("params").draggable,"onChange","UpdateFormField",function(B,A){if(this.getController().getValue("draggable")){return }return{formId:this.getController().getValue("formId"),fields:[{name:this.getController().getValue("valueInput"),value:this.getController().getValue("value")}]}});this.addObserver(mojo.queryFirst("#"+this.getValue("valueInput")),"onchange","UpdateControllerParam",function(B,A){if(this.getController().getValue("draggable")){return }return{control:"stdlib.controller.SliderController",params:"value",value:parseInt(A.value)}});this.addObserver(this.getConfig("params").value,"onChange","UpdateControllerParam",function(B,A){if(this.getController().getValue("draggable")){return }return{control:"stdlib.controller.SliderController",params:"selectedIndex",value:Math.round(A.getValue()/this.getController().getValue("tickValue"))}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","Drag",function(B,A){if(this.getController().getValue("draggable")){return }return{element:mojo.queryFirst(".slider-thumb",B),container:mojo.queryFirst(".slider-bg",B),orientation:this.getController().getValue("orientation"),tickSize:this.getController().getValue("tickSize"),position:A.getValue()*this.getController().getValue("tickSize")}})},addCommands:function(){this.addCommand("Drag","stdlib.behavior.DragBehavior");this.addCommand("Tween","stdlib.behavior.TweenBehavior");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand");this.addCommand("UpdateFormField","stdlib.behavior.UpdateFormFieldBehavior")},addIntercepts:function(){}});dojo.provide("stdlib.controller.TabController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.TabController",mojo.controller.Controller,{params:{selectedIndex:{required:false,defaultValue:0,type:Number},activeOn:{required:false,defaultValue:"onclick"}},addObservers:function(){this.addObserver("> .tabs-nav > .tab",this.getValue("activeOn"),"UpdateClass",function(E,B){var D=mojo.query("> .tabs-nav > .tab",E);var A=0;for(var C=0;C<D.length;C++){if(D[C]==B){A=C;break}}this.getController().setValue("selectedIndex",A)});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(B,A){return{element:mojo.query("> .tabs-nav > .selected",B),action:"remove",cssClass:"selected"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(B,A){return{element:mojo.query("> .tabs-content > .selected",B),action:"remove",cssClass:"selected"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(B,A){return{element:mojo.query("> .tabs-nav > .tab",B)[A.getValue()],action:"add",cssClass:"selected"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(B,A){return{element:mojo.query("> .tabs-content > .tab-content",B)[A.getValue()],action:"add",cssClass:"selected"}});this.addObserver("> .add","onclick","UpdateClass",function(B,A){mojo.Model.add("testData",{name:"new",description:(new Date()).getTime()});this.getController().setValue("selectedIndex",0);this.getController().getConfig("params").selectedIndex.onChange()})},addCommands:function(){this.addCommand("UpdateClass","stdlib.behavior.UpdateCssClassBehavior")},addIntercepts:function(){}});dojo.provide("stdlib.controller.FormValidationController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.FormValidationController",mojo.controller.Controller,{params:{isSubmitted:{required:false,defaultValue:false,type:Boolean},formRules:{required:true,defaultValue:"stdlib.rules.Rules",type:String},submitButtonId:{required:true,defaultValue:"#submit-form",type:String},cancelButtonId:{required:false,defaultValue:"#cancel-form",type:String},errorsContainerId:{required:false,defaultValue:"",type:String},showDisableBox:{required:false,defaultValue:true}},addObservers:function(){var B=this.getValue("formRules");var A=(this.getValue("errorsContainerId")!="")?mojo.queryFirst(this.getValue("errorsContainerId")):null;this.addObserver("input","onkeydown","EnterKey");this.addObserver(this.getCommand("EnterKey"),"onResponse","UpdateControllerParam",function(D,C){return{control:this.getController().declaredClass,params:"isSubmitted",value:true,element:D}});this.addObserver(this.getCommand("EnterKey"),"onResponse","SubmitForm",function(D,C){return{form:this.getContextElement()}});this.addObserver(["input","textarea"],"onblur","ValidateRules",function(D,C){if(!this.getController().getValue("isSubmitted")){return{rules:{},formSet:this.getContextElement()}}return{rules:B,formSet:this.getContextElement(),targetElement:A}});this.addObserver("select","onchange","ValidateRules",function(D,C){if(!this.getController().getValue("isSubmitted")){return{rules:{},formSet:this.getContextElement()}}return{rules:B,formSet:this.getContextElement(),targetElement:A}});this.addObserver(this.getValue("submitButtonId"),"onclick","UpdateControllerParam",function(D,C){return{control:this.getController().declaredClass,params:"isSubmitted",value:true,element:D}});this.addObserver(this.getValue("submitButtonId"),"onclick","SubmitForm",function(D,C){return{form:this.getContextElement()}});this.addObserver(this.getCommand("SubmitForm"),"execute","DisableBox",function(D,C){if(!this.getController().getValue("showDisableBox")){return }return{show:true,target:D}});this.addObserver(this.getConfig("params").isSubmitted,"onChange","ValidateRules",function(D,C){if(!this.getController().getValue("isSubmitted")){return{rules:{},formSet:this.getContextElement()}}return{rules:B,formSet:this.getContextElement(),targetElement:A}});this.addObserver(this.getValue("cancelButtonId"),"onclick","ClearErrors",function(D,C){return{className:".mojoValidationError",target:this.getContextElement()}})},addCommands:function(){this.addCommand("EnterKey","stdlib.behavior.EnterKeyBehavior");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand");this.addCommand("ClearErrors","stdlib.behavior.RemoveElementsBehavior");this.addCommand("ValidateRules","stdlib.command.ValidateRulesCommand");this.addCommand("SubmitForm","stdlib.behavior.SubmitFormBehavior");this.addCommand("DisableBox","stdlib.behavior.DisableBoxBehavior")},addIntercepts:function(){this.addIntercept("around","SubmitForm","ValidateRules",{rules:this.getValue("formRules"),formSet:this.getContextElement(),targetElement:(this.getValue("errorsContainerId")!="")?mojo.queryFirst(this.getValue("errorsContainerId")):null})}});dojo.provide("stdlib.command.GenericServiceCommand");dojo.require("mojo.command.Command");dojo.declare("stdlib.command.GenericServiceCommand",mojo.command.Command,{_model:null,execute:function(requestObj){var params=requestObj.getParams();if(!params){}this._model=params.model;dojo.require(params.serviceLocator);(eval(params.serviceLocator)).getInstance().getService(params.serviceName).invoke(params.serviceParams,this)},onResponse:function(A){if(this._model){mojo.Model.set(this._model,A)}},onError:function(A){if(this._model){mojo.Model.set(this._model+".errors",A)}}});dojo.provide("stdlib.behavior.CheckBoxSelectionBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.CheckBoxSelectionBehavior",mojo.command.Behavior,{execute:function(E){var D=E.getParams(),C=D.element;if(!dojo.isArray(D.element)){C=[D.element]}for(var B=0,A=C.length;B<A;B++){if(D.checked){C[B].checked=true}else{C[B].checked=false}}}});dojo.provide("stdlib.command.metrics.omniture.TransactionCommand");dojo.require("mojo.command.Command");dojo.declare("stdlib.command.metrics.omniture.TransactionCommand",mojo.command.Command,{onComplete:function(){},onError:function(){},execute:function(H){var G=H.getParams();if(!G.transactionType){s.t()}else{if(G.transactionType=="customLink"){if(!dojo.isArray(G.properties)){G.properties=[G.properties]}for(var D=0,A=G.properties.length;D<A;D++){var C={};var F=G.callerName||"anonymousTrigger";var B=[];var E=[];for(key in G.properties[D]){if(key.indexOf("prop")==0||key.indexOf("eVar")==0){B.push(key)}if(key.indexOf("event")==0){E.push(key)}C[key]=s[key];s[key]=G.properties[D][key]}if(E.length){B.push("events")}s.linkTrackVars=B.length?B.join(","):"None";s.linkTrackEvents=E.length?E.join(","):"None";if(H.callerObj.href){s.tl(H.callerObj,"o")}else{s.tl(H.callerObj,"o",F)}for(key in C){s[key]=C[key]}}}}}});dojo.provide("stdlib.command.metrics.InitializeMetricsMapCommand");dojo.require("mojo.command.Command");dojo.declare("stdlib.command.metrics.InitializeMetricsMapCommand",mojo.command.Command,{execute:function(requestObj){var params=requestObj.getParams();var metricsMap=params.map;var map=eval(metricsMap);var pages=map.pages;for(var i=0,len=pages.length;i<len;i++){var metricsProperties={};var pattern=pages[i].pattern;var properties=pages[i].properties;if(typeof (pattern)=="string"){var currentPage=mojo.query(pattern);if(currentPage){metricsProperties=properties}}else{if(typeof (pattern)=="function"||typeof (pattern)=="object"){var regex=new RegExp(pattern);if(regex.test(window.location.href)){if(typeof (properties)=="function"){properties=properties()}metricsProperties=properties}}else{throw new Error("ERROR stdlib.command.metrics.omniture.GetMetricsMapCommand - metricsMap for Pages contains invalid pattern")}}for(key in metricsProperties){s[key]=metricsProperties[key]}}}});dojo.provide("stdlib.controller.metrics.MetricsController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.metrics.MetricsController",mojo.controller.Controller,{params:{metricsMap:{defaultValue:"app.MetricsMap",required:true},pageIsLoaded:{defaultValue:false},analyticsSuite:{defaultValue:"omniture",required:false}},getMetricsMap:function(){dojo.require(this.getValue("metricsMap"));var obj=(eval(this.getValue("metricsMap")));return obj},addObservers:function(){this.addObserver(this,"onInit","Init",{map:this.getValue("metricsMap")});this.addObserver(mojo.controller.Map.getInstance(),"onComplete","TrackPage",function(L,K){if(this.getController().getValue("pageIsLoaded")){return false}this.getController().setValue("pageIsLoaded",true)});var J=this.getMetricsMap().links;for(var E=0,H=J.length;E<H;E++){var A=J[E];var C=null,B=null;if(!A.command&&!A.controller){C=A.pattern;B=A.event;this.addObserver(C,B,"TrackLink",function(K){return function(M,L){if(typeof (K.properties)=="function"){K.properties=K.properties(L)}return{transactionType:"customLink",properties:K.properties}}}(A))}else{var F=mojo.query(A.pattern);if(!F){continue}else{if(!dojo.isArray(F)){F=[F]}for(var I=0,G=F.length;I<G;I++){var D=F[I].mojoControllers[A.controller];B=A.event;if(!A.command||A.command=="undefined"){C=D}else{C=D.getCommand(A.command)}this.addObserver(C,B,"TrackLink",function(K){return function(M,L){if(typeof (K.properties)=="function"){K.properties=K.properties(L)}return{transactionType:"customLink",properties:K.properties}}}(A))}}}}},addCommands:function(){this.addCommand("TrackPage","stdlib.command.metrics."+this.getValue("analyticsSuite")+".TransactionCommand");this.addCommand("TrackLink","stdlib.command.metrics."+this.getValue("analyticsSuite")+".TransactionCommand");this.addCommand("Init","stdlib.command.metrics.InitializeMetricsMapCommand")},addIntercepts:function(){}});dojo.provide("stdlib.behavior.PreventDefaultEventBehavior");dojo.require("mojo.command.Command");dojo.declare("stdlib.behavior.PreventDefaultEventBehavior",mojo.command.Command,{execute:function(B){try{var A=B.eventObj;if(A["preventDefault"]){A.preventDefault()}if(A["stopPropagation"]){A.stopPropagation()}A.returnValue=false;return false}catch(A){}}});dojo.provide("noawishlist.MetricsMap");noawishlist.MetricsMap={pages:[{pattern:/index/,properties:function(){return{pageName:"us:wishlist:home",channel:"us:wishlist:home",prop2:"home",prop16:"us:wishlist:home"}}},{pattern:/wishlist/,properties:function(){return{pageName:"us:gift center:home",channel:"us:gift center:home",prop2:"home",prop16:"us:gift center"}}}],links:[{pattern:"#home-include .text-group .btn-large",event:"onclick",properties:function(A){return{prop9:"noawishlist:get started now"}}},{pattern:".varitalk-banner a",event:"onclick",properties:function(A){prop9:"noawishlist:varitalk banner"}},{pattern:"#games-title",event:"onclick",properties:function(A){return{prop9:"noawishlist:1:choose games"}}},{pattern:"#hardware-title",event:"onclick",properties:function(A){return{prop9:"noawishlist:1:choose hardware"}}},{pattern:"#games-include .games-list li a",event:"onclick",properties:function(A){return{prop9:"noawishlist:1:"+(A.innerHTML).toLowerCase()}}},{pattern:"#games-view",controller:"noawishlist.controller.GamesController",command:"AddWishListItem",event:"execute",properties:function(A){return{prop9:"noawishlist:1:add to my wishlist",event22:"add to my wishlist",events:"event22"}}},{pattern:"#hardware-view",controller:"noawishlist.controller.HardwareController",command:"AddWishListItem",event:"execute",properties:function(A){return{prop9:"noawishlist:1:add to my wishlist",event22:"add to my wishlist",events:"event22"}}},{pattern:".btn-cart-checkout",event:"onclick",properties:function(A){return{prop9:"noawishlist:1:create my e-card"}}},{pattern:".btn-wishlist-buy-anchor",event:"onclick",properties:function(A){return{prop9:"noawishlist:1:buy now",event14:"buy now",events:"event14"}}},{pattern:"#messages-include ul.messages-list li a",event:"onclick",properties:function(A){return{prop9:"noawishlist:2:"+A.innerHTML.toLowerCase()}}},{pattern:"#designs-include ul.designs-list li a",event:"onclick",properties:function(A){return{prop9:"noawishlist:2:"+A.innerHTML.toLowerCase()}}},{pattern:"#ecard-preview",event:"onclick",properties:function(A){return{prop9:"noawishlist:3:"+A.innerHTML.toLowerCase()}}},{pattern:"#ecard-submit",event:"onclick",properties:function(A){return{prop9:"noawishlist:3:"+A.innerHTML.toLowerCase()}}}]};dojo.provide("noawishlist.SiteMap");noawishlist.SiteMap=[{pattern:"#wishlist-container",controllers:[{controller:"stdlib.controller.TabController",params:{selectedIndex:0}}]},{pattern:"#gift-center-menu",controllers:[{controller:"stdlib.controller.AccordionController",params:{selectedIndex:0}}]},{pattern:"#gift-center-view",controllers:[{controller:"stdlib.controller.TabController",params:{selectedIndex:0}}]},{pattern:"#games-view",controllers:[{controller:"stdlib.controller.FilmStripController",params:{selectedIndex:0,loop:false}},{controller:"noawishlist.controller.GamesController"}]},{pattern:"#hardware-view",controllers:[{controller:"stdlib.controller.FilmStripController",params:{selectedIndex:0,loop:false}},{controller:"noawishlist.controller.HardwareController"}]},{pattern:"#cart-include",controllers:[{controller:"noawishlist.controller.WishListController"}]},{pattern:"#ecard-customization-menu",controllers:[{controller:"stdlib.controller.AccordionController",params:{selectedIndex:-1}}]},{pattern:".step-navigation",controllers:[{controller:"noawishlist.controller.StepNavController"}]},{pattern:".secondary-col",controllers:[{controller:"noawishlist.controller.StepNavController"}]},{pattern:"#step-2",controllers:[{controller:"noawishlist.controller.ECardController"}]},{pattern:"#step-3",controllers:[{controller:"noawishlist.controller.ECardController"}]},{pattern:".captcha-group",controllers:[{controller:"noawishlist.controller.CaptchaRefreshController"}]},{pattern:"#primaryNav",controllers:[{controller:"noawishlist.controller.navigation.GlowController"}]},{pattern:".prefilled",controllers:[{controller:"noawishlist.controller.prefilledInput.InputController"}]},{pattern:"body",controllers:[{controller:"stdlib.controller.metrics.MetricsController",params:{metricsMap:"noawishlist.MetricsMap"}}]}];dojo.provide("noawishlist.behavior.AddItemNotificationBehavior");dojo.require("mojo.command.Behavior");dojo.declare("noawishlist.behavior.AddItemNotificationBehavior",mojo.command.Behavior,{execute:function(E){var C=E.getParams();var B=C.target.parentNode;if(E.invocation){if(!E.invocation.proceed()){return }}if(B.className=="sparkles-active"||B.className=="sparkles"){B=B.parentNode}var A=mojo.queryFirst(".add-item-notification",B);A.style.display="block";A.style.opacity=1;A.style.visibility="visible";var D=setTimeout(function(){clearTimeout(D);if(dojo.isIE==6){A.style.display="none"}else{var F=new Fx.Styles(A,{duration:500,wait:false,onComplete:function(){A.style.opacity=1}});F.start({"opacity":0})}},2000)}});dojo.provide("noawishlist.behavior.DisableTabBehavior");dojo.require("mojo.command.Behavior");dojo.declare("noawishlist.behavior.DisableTabBehavior",mojo.command.Behavior,{execute:function(D){var B=D.getParams();var A=D.getEvent();if(A.keyCode==9){var C=setTimeout(function(){if(A.target){var E=A.target;E.focus()}clearTimeout(C)},20);dojo.stopEvent(A);return false}}});dojo.provide("noawishlist.behavior.GenerateEcardPreviewBehavior");dojo.require("mojo.command.Behavior");dojo.declare("noawishlist.behavior.GenerateEcardPreviewBehavior",mojo.command.Behavior,{execute:function(B){var A=mojo.Model.get("wishlist.cart");hardware_array=[];software_array=[];for(i=0;i<A.length;i++){if((A[i].id).indexOf("ds")==0){hardware_array.push(A[i].id)}else{software_array.push(A[i].id)}}$("input-hardware").value=hardware_array.join();$("input-games").value=software_array.join();$("input-messageType").value=$("input-message").value;$("input-designType").value=$("input-design").value;if($("first-name").value==""){$("first-name").value="(Sender)"}if($("recipients-first-name").value==""){$("recipients-first-name").value="(Friend)"}document.customization_form.setAttribute("target","_blank");document.customization_form.submit();document.customization_form.setAttribute("target","")}});dojo.provide("noawishlist.behavior.GeneratePreviewBehavior");dojo.require("mojo.command.Behavior");dojo.declare("noawishlist.behavior.GeneratePreviewBehavior",mojo.command.Behavior,{execute:function(D){var A=D.callerObj.id;var B=A.slice(-1);grab_selected=$(A).getParent().getParent().getParent().getElements(".selected");if(grab_selected!=false||grab_selected!=null){grab_selected.removeClass("selected")}D.callerObj.addClass("selected");$("input-messageType").value=$("input-message").value;$("input-designType").value=$("input-design").value;if($("first-name").value==""){$("input-from").value="(Sender)"}else{$("input-from").value=$("first-name").value}if($("recipients-first-name").value==""){$("input-to").value="(Friend)"}else{$("input-to").value=$("recipients-first-name").value}var C=D.getParams();$(C.targetInput).value=B;document.hidden_form.setAttribute("target","iframe_preview");document.hidden_form.submit();document.hidden_form.setAttribute("target","iframe_preview_2");document.hidden_form.submit();document.hidden_form.setAttribute("target","iframe_preview_3");document.hidden_form.submit()}});dojo.provide("noawishlist.behavior.wishlist.GenerateDotBehavior");dojo.require("mojo.command.Behavior");dojo.declare("noawishlist.behavior.wishlist.GenerateDotBehavior",mojo.command.Behavior,{execute:function(H){var G=H.getParams();var B=mojo.query(".filmstrip-page",G.container);var F=mojo.queryFirst(G.container).mojoControllers["stdlib.controller.FilmStripController"].getValue("selectedIndex");if(F==-1){F=0}var A=mojo.query(".paginator-pages",G.container);for(var E=0;E<A.length;E++){A[E].innerHTML="";for(var D=0;D<B.length;D++){var C=document.createElement("li");C.innerHTML="&nbsp;&nbsp;";if(F==D){C.className="selected"}A[E].appendChild(C)}}}});dojo.provide("noawishlist.command.CaptchaRefreshCommand");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.CaptchaRefreshCommand",mojo.command.Command,{execute:function(C){var B=$("captcha-image");var A=(new Date()).getTime();B.setAttribute("src","/jcaptcha.jsp?"+A)}});dojo.provide("noawishlist.command.UpdateOverlabelGeneric");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.UpdateOverlabelGeneric",mojo.command.Command,{execute:function(F){var A=F.getContextElement();var E=mojo.query("label",A)[0];var C=E.innerText||E.textContent;var D=mojo.query("input[type!='submit']",A)[0];var B=F.paramsObj.focusField||false;if((D.value!=="")||B){$(E).setStyle("zIndex","3");$(D).setStyle("zIndex","4")}else{$(E).setStyle("zIndex","4");$(D).setStyle("zIndex","3")}if(B){$(D).focus()}}});dojo.provide("noawishlist.command.UpdateStepCommand");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.UpdateStepCommand",mojo.command.Command,{_navElement:null,_step:null,execute:function(B){var A=B.getParams();this._navElement=A.navElement;this._step=A.step;this.onResponse()},onResponse:function(){}});dojo.provide("noawishlist.command.ValidateCartSizeCommand");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.ValidateCartSizeCommand",mojo.command.Command,{execute:function(B){var A=B.getParams();if(B.getCaller().id=="step-nav-1"||(mojo.Model.get("wishlist.cart")&&mojo.Model.get("wishlist.cart").length>0)){mojo.Messaging.publish("wishlist.stepOneSuccess");B.invocation.proceed()}else{alert("First add an item to your Wishlist");return false}}});dojo.provide("noawishlist.command.animation.MorphStylesBehavior");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.animation.MorphStylesBehavior",mojo.command.Command,{execute:function(C){var B=$type(C.getParams().elements)=="array"?C.getParams().elements:[C.getParams().elements];var A=B.map(function(D){return new Fx.Styles(D,C.getParams().options)});A.forEach(function(D){D.start(C.getParams().styles)});return A}});dojo.provide("noawishlist.command.animation.QueueBehavior");dojo.require("mojo.command.Command");dojo.require("mojo.Model");dojo.declare("noawishlist.command.animation.QueueBehavior",mojo.command.Command,{_runningfx:false,execute:function(E){var E=E||this._requestObj;var C=E.getParams().queue||"animationQueue";if(!this._runningfx&&mojo.Model.contains(C)){var D=this;if(mojo.Model.get(C).length>0){this._runningfx=true;var A=mojo.Model.get(C).shift();var B=dojo.connect(A(),"stop",function(){D._runningfx=false;D.execute();dojo.disconnect(B)})}else{this._runningfx=false}}}});dojo.provide("noawishlist.command.games.FilterGamesByCategoryCommand");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.games.FilterGamesByCategoryCommand",mojo.command.Command,{execute:function(H){var G=H.getParams();var F=mojo.Model.get("wishlist.data");!G?sort="allGames":sort=G.sort;var B=F.games;if(!F){console.log("Warning: No Data")}var E=[];if(sort=="allGames"){E=B}else{for(var D=0,A=B.length;D<A;D++){for(var C=0;C<B[D].categories.length;C++){if(B[D].categories[C]==sort){E.push(B[D])}}}}mojo.Model.set("wishlist.games",E);this.onComplete()},onComplete:function(){}});dojo.provide("noawishlist.command.games.LazyLoadImagesCommand");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.games.LazyLoadImagesCommand",mojo.command.Command,{execute:function(D){var B=mojo.query(".filmstrip-page",D.getContextElement())[D.getCaller().getValue()];var C=mojo.query("img",B);for(var A=0;A<C.length;A++){if(!C[A]||C[A].src.length==0||C[A].src.indexOf("undefined")>=0){C[A].src=C[A].getAttribute("dataSrc")}}}});dojo.provide("noawishlist.command.glow.AnimateGlowBehavior");dojo.require("mojo.command.Behavior");dojo.declare("noawishlist.command.glow.AnimateGlowBehavior",mojo.command.Behavior,{execute:function(A){var N=17;var F=28;try{var E=new Event(A.getEvent())}catch(J){var E={target:A.getEvent().target,type:null}}var K=$(A.getCaller())||E.target;var L=A.getParams().transition;var B=A.getContextElement().glowElement;if(mojo.Model.get("/glow").active_item==K&&(E.type=="mouseover"||E.type=="mouseout")){return }if(mojo.Model.contains("/glow/animationQueue/currentAnimation")||L=="in"){}var I=function(T,R){if(T=="in"){var S=R.getCoordinates();var O=S.width+(N*2)-49;if(dojo.isIE==6){O=S.width+(N*2)-59}B.setStyles({top:S.top+S.height-$(A.getContextElement()).getCoordinates().top,width:S.width+(N*2),left:S.left-N-$(A.getContextElement()).getCoordinates().left});B.getElement("div.left").setStyle("width",O);B.getElement("div.right").setStyle("margin-left",S.width+(N*2)-49)}var P=new Fx.Styles(B,{duration:(T=="in"?280:100),transition:(T=="in"?Fx.Transitions.Back.easeOut:Fx.Transitions.linear)});var Q=P.start({"height":(T=="in"?F:0)});mojo.Model.set("/glow/animationQueue/currentAnimation",Q);return Q};if(!mojo.Model.contains("/glow/animationQueue")){mojo.Model.set("/glow/animationQueue",[])}var G=mojo.Model.get("/glow/animationQueue");var M=new Array();for(var D=0,H=G.length;D<H;D++){if(G[D].transition=="out"){M.push(G[D]);break}}if(B.getSize().y>0){var C=I.pass(["out"]);C.transition="out";M.push(C)}var C=I.pass([L,K]);C.transition=L;M.push(C);if(A.getParams().transition=="out"&&mojo.Model.get("/glow").active_item){var C=I.pass(["in",mojo.Model.get("/glow").active_item]);C.transition="in";M.push(C)}mojo.Model.set("/glow/animationQueue",M);this.onComplete()},onComplete:function(){}});dojo.provide("noawishlist.command.glow.InitializeGlowBehavior");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.glow.InitializeGlowBehavior",mojo.command.Command,{execute:function(G){var E=G.getParams().navElement;var D=new Element("div",{"class":"left"});var C=new Element("div",{"class":"right"});var B=new Element("div",{"class":"glow"});D.injectInside(B);C.injectAfter(D);B.injectAfter(E);G.getContextElement().glowElement=B;var F=$(E).getElements("li.major a");var A=F.filter(function(H){if(H.getStyle("text-decoration")=="underline"){return H}});A=A.length>0?A[0]:null;mojo.Model.set("/glow",{glowElement:B,active_item:A});if(A){mojo.Messaging.publish("/glow/turn/on",{target:A})}}});dojo.provide("noawishlist.command.hardware.LazyLoadImagesCommand");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.hardware.LazyLoadImagesCommand",mojo.command.Command,{execute:function(D){var C=mojo.query(".filmstrip-page",D.getContextElement())[D.getCaller().getValue()];var B=mojo.query(".hardware",C);for(var A=0;A<B.length;A++){console.log(B[A].style.background);if(B[A].style.background.length==0){B[A].style.background=B[A].getAttribute("dataSrc")}}}});dojo.provide("noawishlist.command.hardware.UpdateBuyButtonCommand");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.hardware.UpdateBuyButtonCommand",mojo.command.Command,{execute:function(D){var C=D.getParams();if(C.id){var A=mojo.Model.get("wishlist.hardware");for(var B=0;B<A.length;B++){if(A[B].id==C.id){mojo.queryFirst("#hardware-include .btn-wishlist-buy").parentNode.href=A[B].purchaseUrl}}}},onResponse:function(A){},onError:function(A){}});dojo.provide("noawishlist.command.wishlist.AddWishListItemCommand");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.wishlist.AddWishListItemCommand",mojo.command.Command,{_maxHardware:2,_maxGames:4,execute:function(A){var C=A.getParams();var D=mojo.Model.get("wishlist.cart");if(!D){D=[]}if(!dojo.isArray(D)){D=[D]}if(D.length>=6){alert("Don't be too greedy! Limit yourself to 4 Games and 2 Nintendo consoles");return false}var J,E;if(C.itemType=="game"){E=mojo.Model.get("wishlist.games")}else{if(C.itemType=="hardware"){E=mojo.Model.get("wishlist.hardware")}}for(var F=0,I=E.length;F<I;F++){if(E[F].id==C.id){J=E[F]}}if(!J){return false}var H=false;if(!D.length){D.push(J)}else{var B=0;var G=0;for(var F=0;F<D.length;F++){if(D[F].id.indexOf("ds")!=0){++B}}for(var F=0;F<D.length;F++){if(D[F].id.indexOf("ds")==0){++G}}for(var F=0;F<D.length;F++){if(D[F].id==J.id){H=true}}if(J.id.indexOf("ds")!=0&&B>=this._maxGames){alert("Don't be too greedy! Limit yourself to 4 Games and 2 Nintendo consoles");return false}else{if(J.id.indexOf("ds")==0&&G>=this._maxHardware){alert("Don't be too greedy! Limit yourself to 4 Games and 2 Nintendo consoles");return false}else{if(H){return false}else{D.push(J)}}}}mojo.Model.set("wishlist.cart",D);return true}});dojo.provide("noawishlist.command.wishlist.GetWishListItemsCommand");dojo.require("mojo.command.Command");dojo.require("noawishlist.service.Locator");dojo.declare("noawishlist.command.wishlist.GetWishListItemsCommand",mojo.command.Command,{getQueryStringParam:function(B){var C=window.location.search.substring(1);var D=C.split("&");for(var A=0;A<D.length;A++){var E=D[A].split("=");if(E[0]==B){return E[1]}}return null},execute:function(B){var A=B.getParams();noawishlist.service.Locator.getInstance().getService("GetWishListItems").invoke(B.getParams(),this)},onResponse:function(E){var H=[];mojo.Model.set("wishlist.data",E);for(var F=0,I=E.games.length;F<I;F++){if(E.games[F].esrbRating&&E.games[F].esrbContentDescriptor&&E.games[F].esrbContentDescriptor!="n/a"){E.games[F].esrbEnglishLabel=E.games[F].esrbRating+" with "+E.games[F].esrbContentDescriptor}else{E.games[F].esrbEnglishLabel=E.games[F].esrbRating}}mojo.Model.set("wishlist.games",E.games);mojo.Model.set("wishlist.hardware",E.hardware[0].colors);var C=this.getQueryStringParam("hardware");if(C){var G=C.split(",");var K=E.hardware[0].colors;for(var D=0;D<G.length;D++){for(var F=0,I=K.length;F<I;F++){if(G[D]==K[F].id){H.push(K[F])}}}}var B=this.getQueryStringParam("games");if(B){var J=B.split(",");var A=E.games;for(var D=0;D<J.length;D++){for(var F=0,I=A.length;F<I;F++){if(J[D]==A[F].id){H.push(A[F])}}}}if(H.length){mojo.Model.set("wishlist.cart",H)}},onError:function(A){console.log("Errored out.")}});dojo.provide("noawishlist.command.wishlist.RemoveWishListItemCommand");dojo.require("mojo.command.Command");dojo.declare("noawishlist.command.wishlist.RemoveWishListItemCommand",mojo.command.Command,{execute:function(F){var E=F.getParams();var D=mojo.Model.get("wishlist.cart");if(!dojo.isArray(D)){D=[D]}var C=[];for(var B=0,A=D.length;B<A;B++){if(D[B].id!=E.id){C.push(D[B])}}mojo.Model.set("wishlist.cart",C)}});dojo.provide("noawishlist.command.wishlist.SendWishListCardCommand");dojo.require("mojo.command.Command");dojo.require("noawishlist.service.Locator");dojo.declare("noawishlist.command.wishlist.SendWishListCardCommand",mojo.command.Command,{execute:function(A){noawishlist.service.Locator.getInstance().getService("SendWishListItems").invoke(A.getParams(),this)},onResponse:function(A){},onError:function(A){mojo.Model.set("wishlist.card.errors",A)}});dojo.provide("noawishlist.controller.CaptchaRefreshController");dojo.require("mojo.controller.Controller");dojo.declare("noawishlist.controller.CaptchaRefreshController",mojo.controller.Controller,{addObservers:function(){this.addObserver(".captcha-refresh","onclick","RefreshCaptcha")},addCommands:function(){this.addCommand("RefreshCaptcha","noawishlist.command.CaptchaRefreshCommand")},addIntercepts:function(){}});dojo.provide("noawishlist.controller.ECardController");dojo.require("mojo.controller.Controller");dojo.declare("noawishlist.controller.ECardController",mojo.controller.Controller,{addObservers:function(){this.addObserver("#ecard-submit","onclick","SendWishListCard",function(E,C){var G="";var F="";var B=mojo.Model.get("wishlist.cart");for(var D=0;D<B.length;D++){var A=B[D];if(A.id.indexOf("ds")==0){F+=A.id+","}else{G+=A.id+","}}return{"fromName":mojo.queryFirst("#first-name").value,"fromEmail":"greetings@noa.nintendo.com","toName":mojo.queryFirst("#recipients-first-name").value,"toEmail":mojo.queryFirst("#recipients-email").value,"captcha":mojo.queryFirst("#captcha-response").value,"messageType":mojo.queryFirst("#input-message").value,"designType":mojo.queryFirst("#input-design").value,"hardware":F,"games":G}});this.addObserver(this.getCommand("SendWishListCard"),"execute","DisableBox",function(B,A){mojo.queryFirst(".mojoValidationError");return{target:B,show:true}});this.addObserver(this.getCommand("SendWishListCard"),"onError","DisableBox",{show:false});this.addObserver(this.getCommand("SendWishListCard"),"onError","RefreshCaptcha");this.addObserver(this.getCommand("SendWishListCard"),"onResponse","DisableBox",{show:false});this.addObserver(this.getCommand("SendWishListCard"),"onResponse","UpdateStepNav",function(B,A){return{element:mojo.queryFirst(".step-navigation #step-nav-3"),action:"add",cssClass:"selected"}});this.addObserver(this.getCommand("SendWishListCard"),"onResponse","UpdateControllerParam",function(B,A){document.hidden_form.setAttribute("target","iframe_preview_3");document.hidden_form.submit();return{control:"stdlib.controller.TabController",params:"selectedIndex",value:3,element:mojo.queryFirst("#wishlist-container")}});this.addObserver("input","onblur","ValidateRules",function(B,A){return{rules:"noawishlist.rules.eCardRules",formSet:A}});this.addObserver(".option-message","onclick","GeneratePreview",function(B,A){return{targetInput:"input-message"}});this.addObserver(".option-template","onclick","GeneratePreview",function(B,A){return{targetInput:"input-design"}});this.addObserver("#ecard-preview","onclick","GenerateEcardPreview")},addCommands:function(){this.addCommand("ValidateRules","stdlib.command.ValidateRulesCommand");this.addCommand("SendWishListCard","noawishlist.command.wishlist.SendWishListCardCommand");this.addCommand("UpdateCssClass","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("GeneratePreview","noawishlist.behavior.GeneratePreviewBehavior");this.addCommand("GenerateEcardPreview","noawishlist.behavior.GenerateEcardPreviewBehavior");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand");this.addCommand("DisableTab","noawishlist.behavior.DisableTabBehavior");this.addCommand("DisableBox","stdlib.behavior.DisableBoxBehavior");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand");this.addCommand("UpdateStepNav","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("ValidateCartSize","noawishlist.command.ValidateCartSizeCommand");this.addCommand("RefreshCaptcha","noawishlist.command.CaptchaRefreshCommand")},addIntercepts:function(){this.addIntercept("around","SendWishListCard","ValidateRules",function(B,A){return{rules:"noawishlist.rules.eCardRules",formSet:mojo.queryFirst("#ecard-form")}});this.addIntercept("around","SendWishListCard","ValidateCartSize")}});dojo.provide("noawishlist.controller.GamesController");dojo.require("mojo.controller.Controller");dojo.declare("noawishlist.controller.GamesController",mojo.controller.Controller,{addObservers:function(){var A=this.getContextElement().mojoControllers["stdlib.controller.FilmStripController"];this.addObserver(mojo.Messaging.getTopic("wishlist.loaded"),"onPublish","FilterGamesByCategory");this.addObserver(mojo.query(".btn-games-filter"),"onclick","FilterGamesByCategory",function(C,B){var D=B.id.replace(/\s/g,"-");return{sort:D}});this.addObserver(mojo.query(".btn-games-filter"),"onclick","UpdateGamesLink",function(C,B){return{element:B,action:"add",cssClass:"selected"}});this.addObserver(this.getCommand("FilterGamesByCategory"),"execute","UpdateControllerParam",function(C,B){return{control:"stdlib.controller.FilmStripController",params:"selectedIndex",value:0,element:mojo.queryFirst("#games-view")}});this.addObserver(this.getCommand("FilterGamesByCategory"),"onComplete","UpdateControllerParam",function(C,B){return{control:"stdlib.controller.FilmStripController",params:"selectedIndex",value:-1,element:mojo.queryFirst("#games-view")}});this.addObserver(mojo.Messaging.getTopic("wishlist.loaded"),"onPublish","GenerateDot",function(C,B){return{container:C}});this.addObserver(A.getConfig("params").selectedIndex,"onChange","GenerateDot",function(C,B){return{container:C}});this.addObserver([".game .sparkles img",".game .sparkles-active img"],"onclick","AddWishListItem",function(C,B){return{itemType:"game",id:B.getAttribute("data")}});this.addObserver([".btn-wishlist-add",".btn-wishlist-add-active"],"onclick","AddWishListItem",function(C,B){return{itemType:"game",id:B.getAttribute("data")}});this.addObserver(".btn-wishlist-add","onmouseover","UpdateCssClass",function(C,B){return{element:B,action:"set",cssClass:"btn btn-wishlist-add-active"}});this.addObserver(".btn-wishlist-add-active","onmouseout","UpdateCssClass",function(C,B){return{element:B,action:"set",cssClass:"btn btn-wishlist-add"}});this.addObserver(".btn-wishlist-buy","onmouseover","UpdateCssClass",function(C,B){return{element:B,action:"set",cssClass:"btn btn-wishlist-buy-active"}});this.addObserver(".btn-wishlist-buy-active","onmouseout","UpdateCssClass",function(C,B){return{element:B,action:"set",cssClass:"btn btn-wishlist-buy"}});this.addObserver(mojo.queryFirst("#games-title"),"onclick","UpdateControllerParam",function(C,B){return{control:"stdlib.controller.TabController",params:"selectedIndex",value:0,element:mojo.queryFirst("#gift-center-view")}});this.addObserver(mojo.queryFirst("#games-title"),"onclick","UpdateCssClass",function(C,B){return{element:mojo.queryFirst("#hardware-view"),action:"add",cssClass:"hide"}});this.addObserver(mojo.query("#games-view .game"),"onmouseover","UpdateCssClass",function(C,B){return{element:mojo.queryFirst(".sparkles",B),action:"set",cssClass:"sparkles-active"}});this.addObserver(mojo.query("#games-view .game"),"onmouseout","UpdateCssClass",function(C,B){return{element:mojo.queryFirst(".sparkles-active",B),action:"set",cssClass:"sparkles"}});this.addObserver(A.getConfig("params").selectedIndex,"onChange","LazyLoad")},addCommands:function(){this.addCommand("FilterGamesByCategory","noawishlist.command.games.FilterGamesByCategoryCommand");this.addCommand("AddWishListItem","noawishlist.command.wishlist.AddWishListItemCommand");this.addCommand("Notification","noawishlist.behavior.AddItemNotificationBehavior");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand");this.addCommand("UpdateCssClass","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("UpdateGamesLink","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("GenerateDot","noawishlist.behavior.wishlist.GenerateDotBehavior");this.addCommand("LazyLoad","noawishlist.command.games.LazyLoadImagesCommand")},addIntercepts:function(){this.addIntercept("before","UpdateGamesLink","UpdateCssClass",function(B,A){return{element:mojo.query(".btn-games-filter"),action:"remove",cssClass:"selected"}});this.addIntercept("around","AddWishListItem","Notification",function(B,A){return{target:A}})}});dojo.provide("noawishlist.controller.HardwareController");dojo.require("mojo.controller.Controller");dojo.declare("noawishlist.controller.HardwareController",mojo.controller.Controller,{addObservers:function(){var A=this.getContextElement().mojoControllers["stdlib.controller.FilmStripController"];this.addObserver(A.getConfig("params").selectedIndex,"onChange","UpdateHardwareLink",function(F,E){var B,G;var D=A.getValue("selectedIndex");var C=mojo.query("#hardware-include .color-list li");B=mojo.queryFirst("img",C[D]).getAttribute("alt");G=C[D];mojo.queryFirst(".color-label").innerHTML=B.toString();return{element:G,action:"add",cssClass:"selected"}});this.addObserver(A.getConfig("params").selectedIndex,"onChange","UpdateBuyButton",function(C,B){return{id:mojo.queryFirst("#hardware-include .color-list li.selected").id}});this.addObserver(".btn-wishlist-add","onclick","AddWishListItem");this.addObserver(mojo.queryFirst("#hardware-title"),"onclick","UpdateControllerParam",function(C,B){return{control:"stdlib.controller.TabController",params:"selectedIndex",value:1,element:mojo.queryFirst("#gift-center-view")}});this.addObserver(mojo.queryFirst("#hardware-title"),"onclick","UpdateCssClass",function(C,B){return{element:mojo.queryFirst("#hardware-view"),action:"remove",cssClass:"hide"}});this.addObserver(mojo.queryFirst("#hardware-title"),"onclick","UpdateControllerParam",function(C,B){return{control:"stdlib.controller.FilmStripController",params:"selectedIndex",value:-1,element:mojo.queryFirst("#hardware-view")}});this.addObserver(mojo.queryFirst("#hardware-title"),"onclick","UpdateControllerParam",function(C,B){return{control:"stdlib.controller.FilmStripController",params:"selectedIndex",value:0,element:mojo.queryFirst("#hardware-view")}});this.addObserver(mojo.queryFirst("#hardware-include .btn-wishlist-add"),"onmouseover","UpdateCssClass",function(C,B){return{element:B,action:"set",cssClass:"btn btn-wishlist-add-active"}});this.addObserver(mojo.queryFirst("#hardware-include .btn-wishlist-add"),"onmouseout","UpdateCssClass",function(C,B){return{element:B,action:"set",cssClass:"btn btn-wishlist-add"}});this.addObserver(mojo.queryFirst("#hardware-include .btn-wishlist-buy"),"onmouseover","UpdateCssClass",function(C,B){return{element:B,action:"set",cssClass:"btn btn-wishlist-buy-active"}});this.addObserver(mojo.queryFirst("#hardware-include .btn-wishlist-buy"),"onmouseout","UpdateCssClass",function(C,B){return{element:B,action:"set",cssClass:"btn btn-wishlist-buy"}});this.addObserver(mojo.query(".color-list li"),"onclick","UpdateHardwareLink",function(D,B){var C=mojo.queryFirst("img",B).getAttribute("alt");mojo.queryFirst(".color-label").innerHTML=C.toString();return{element:B,action:"add",cssClass:"selected"}});this.addObserver(mojo.query(".color-list li"),"onclick","UpdateControllerParam",function(E,D){var C,B;switch(D.id){case"ds-silver":C=0;break;case"ds-rose":C=1;break;case"ds-cobalt":C=2;break;case"ds-crimson":C=3;break;case"ds-dsiblack":C=4; break;case"ds-dsiblue":C=5; break;case"ds-dsiwhite":C=6; break;case"ds-dsipink":C=7; break;case"ds-wiihardware":C=8; break;}return{control:"stdlib.controller.FilmStripController",params:"selectedIndex",value:C,element:mojo.queryFirst("#hardware-view")}});this.addObserver(mojo.queryFirst("#hardware-include .btn-wishlist-add"),"onclick","AddWishListItem",function(C,B){var D=mojo.queryFirst(".color-list li.selected").id;return{itemType:"hardware",id:D}});this.addObserver(".hardware","onclick","AddWishListItem",function(C,B){return{itemType:"hardware",id:B.getAttribute("data")}})},addCommands:function(){this.addCommand("AddWishListItem","noawishlist.command.wishlist.AddWishListItemCommand");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand");this.addCommand("UpdateCssClass","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("UpdateHardwareLink","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("UpdateBuyButton","noawishlist.command.hardware.UpdateBuyButtonCommand");this.addCommand("Notification","noawishlist.behavior.AddItemNotificationBehavior")},addIntercepts:function(){this.addIntercept("before","UpdateHardwareLink","UpdateCssClass",function(B,A){return{element:mojo.query(".color-list li"),action:"remove",cssClass:"selected"}});this.addIntercept("around","AddWishListItem","Notification",function(B,A){console.log(A);return{target:mojo.queryFirst("#hardware-view .filmstrip-content")}})}});dojo.provide("noawishlist.controller.StepNavController");dojo.require("mojo.controller.Controller");dojo.declare("noawishlist.controller.StepNavController",mojo.controller.Controller,{params:{firstStepComplete:{defaultValue:false}},addObservers:function(){this.addObserver("#step-nav-1","onclick","UpdateStep",function(B,A){return{navElement:mojo.queryFirst(".step-navigation #step-nav-1"),step:1}});this.addObserver(["#step-nav-2","#btn-step-1"],"onclick","UpdateStep",function(B,A){return{navElement:mojo.queryFirst(".step-navigation #step-nav-2"),step:2}});this.addObserver(["#step-nav-3","#btn-step-2"],"onclick","UpdateStep",function(B,A){return{navElement:mojo.queryFirst(".step-navigation #step-nav-3"),step:3}});this.addObserver(this.getCommand("UpdateStep"),"onResponse","UpdateStepNav",function(B,A){return{element:A._navElement,action:"add",cssClass:"selected"}});this.addObserver(this.getCommand("UpdateStep"),"onResponse","UpdateControllerParam",function(B,A){return{control:"stdlib.controller.TabController",params:"selectedIndex",value:(A._step-1),element:mojo.queryFirst("#wishlist-container")}});this.addObserver(this.getCommand("ValidateCartSize"),"returnToStepOne","UpdateStepNav",function(B,A){return{element:mojo.queryFirst(".step-navigation #step-nav-1"),action:"add",cssClass:"selected"}});this.addObserver(this.getCommand("ValidateCartSize"),"returnToStepOne","UpdateControllerParam",function(B,A){return{control:"stdlib.controller.TabController",params:"selectedIndex",value:0,element:mojo.queryFirst("#wishlist-container")}});this.addObserver(this.getCommand("ValidateCartSize"),"returnToStepOne","UpdateCssClass",function(B,A){return{element:mojo.queryFirst(".btn-cart-checkout"),action:"remove",cssClass:"hide"}});this.addObserver(this.getCommand("ValidateCartSize"),"returnToStepOne","UpdateCssClass",function(B,A){return{element:mojo.queryFirst(".btn-change-wishlist"),action:"remove",cssClass:"show"}});this.addObserver("#step-nav-1","onclick","UpdateCssClass",function(B,A){return{element:mojo.queryFirst(".btn-cart-checkout"),action:"remove",cssClass:"hide"}});this.addObserver("#step-nav-1","onclick","UpdateCssClass",function(B,A){return{element:mojo.queryFirst(".btn-change-wishlist"),action:"remove",cssClass:"show"}});this.addObserver(mojo.queryFirst("#wishlist-container").mojoControllers["stdlib.controller.TabController"].getConfig("params").selectedIndex,"onChange","UpdateControllerParam",function(B,A){if(A.getValue()!=1){return }return{control:"stdlib.controller.AccordionController",params:"selectedIndex",value:0,element:mojo.queryFirst("#ecard-customization-menu")}})},addCommands:function(){this.addCommand("UpdateStep","noawishlist.command.UpdateStepCommand");this.addCommand("UpdateStepNav","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("UpdateCssClass","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand");this.addCommand("ValidateCartSize","noawishlist.command.ValidateCartSizeCommand")},addIntercepts:function(){this.addIntercept("before","UpdateStepNav","UpdateCssClass",function(B,A){return{element:mojo.query(".step-navigation li.selected"),action:"remove",cssClass:"selected"}});this.addIntercept("around","UpdateStep","ValidateCartSize")}});dojo.provide("noawishlist.controller.WishListController");dojo.require("mojo.controller.Controller");dojo.declare("noawishlist.controller.WishListController",mojo.controller.Controller,{params:{firstStepComplete:{defaultValue:false}},addObservers:function(){this.addObserver(this,"onInit","GetWishListItems");this.addObserver(this.getCommand("GetWishListItems"),"onResponse","UpdateCssClass",function(B,A){try{var D=mojo.queryFirst("#disablebox");D.parentNode.removeChild(D);mojo.queryFirst("#btn-step-1").style.display="block";mojo.queryFirst("#games-view").style.display="block"}catch(C){console.log("Error removing preload assets.")}});this.addObserver(this.getCommand("GetWishListItems"),"onResponse","Messaging",{topic:"wishlist.loaded"});this.addObserver(this.getCommand("GetWishListItems"),"onError","UpdateCssClass",function(B,A){alert("Server error occured. Please try again later.")});this.addObserver(".btn-cart-checkout","onclick","UpdateControllerParam",function(B,A){if(mojo.Model.get("wishlist.cart")){if(mojo.Model.get("wishlist.cart").length>0){this.getController().setValue("firstStepComplete",true)}else{alert("First add an item to your Wishlist");return false}}if(!this.getController().getValue("firstStepComplete")){alert("First add an item to your Wishlist");return false}else{mojo.Messaging.publish("wishlist.stepOneSuccess")}return{control:"stdlib.controller.TabController",params:"selectedIndex",value:1,element:mojo.queryFirst("#wishlist-container")}});this.addObserver(".btn-cart-checkout","onclick","UpdateCssClass",function(B,A){if(!this.getController().getValue("firstStepComplete")){return false}return{element:mojo.query(".step-navigation li.selected"),action:"remove",cssClass:"selected"}});this.addObserver(".btn-cart-checkout","onclick","UpdateCssClass",function(B,A){if(!this.getController().getValue("firstStepComplete")){return false}return{element:A,action:"add",cssClass:"hide"}});this.addObserver(".btn-cart-checkout","onclick","UpdateStepNavigation",function(B,A){if(!this.getController().getValue("firstStepComplete")){return false}return{element:mojo.queryFirst(".step-navigation #step-nav-2"),action:"add",cssClass:"selected"}});this.addObserver(".cart-items li","onmouseover","UpdateCssClass",function(B,A){return{element:A,action:"add",cssClass:"active"}});this.addObserver(".cart-items li","onmouseout","UpdateCssClass",function(B,A){return{element:A,action:"remove",cssClass:"active"}});this.addObserver("span.remove","onclick","RemoveWishListItem",function(B,A){return{id:A.getAttribute("data")}});this.addObserver(mojo.Messaging.getTopic("wishlist.stepOneSuccess"),"onPublish","UpdateCssClass",function(B,A){return{element:mojo.queryFirst(".btn-create-wishlist"),action:"add",cssClass:"hide"}});this.addObserver(mojo.Messaging.getTopic("wishlist.stepOneSuccess"),"onPublish","UpdateCssClass",function(B,A){return{element:mojo.queryFirst(".btn-change-wishlist"),action:"add",cssClass:"show"}});this.addObserver(mojo.queryFirst(".btn-change-wishlist"),"onclick","UpdateCssClass",function(B,A){return{element:mojo.queryFirst(".btn-cart-checkout"),action:"remove",cssClass:"hide"}});this.addObserver(mojo.queryFirst(".btn-change-wishlist"),"onclick","UpdateCssClass",function(B,A){return{element:A,action:"remove",cssClass:"show"}});this.addObserver(mojo.queryFirst(".btn-change-wishlist"),"onclick","UpdateControllerParam",function(B,A){return{control:"stdlib.controller.TabController",params:"selectedIndex",value:0,element:mojo.queryFirst("#wishlist-container")}});this.addObserver(mojo.queryFirst(".btn-change-wishlist"),"onclick","UpdateStepNavigation",function(B,A){return{element:mojo.queryFirst(".step-navigation #step-nav-1"),action:"add",cssClass:"selected"}});this.addObserver(".btn-cart-checkout","onmouseover","UpdateCssClass",function(B,A){mojo.queryFirst("img",A).src="images/wishlist/btn-create-wishlist-new-active.png"});this.addObserver(".btn-cart-checkout","onmouseout","UpdateCssClass",function(B,A){mojo.queryFirst("img",A).src="images/wishlist/btn-create-wishlist-new.png"})},addCommands:function(){this.addCommand("DisableBox","stdlib.behavior.DisableBoxBehavior");this.addCommand("GetWishListItems","noawishlist.command.wishlist.GetWishListItemsCommand");this.addCommand("RemoveWishListItem","noawishlist.command.wishlist.RemoveWishListItemCommand");this.addCommand("UpdateCssClass","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("UpdateStepNavigation","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("Messaging","stdlib.behavior.MessagingBehavior");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand")},addIntercepts:function(){this.addIntercept("before","UpdateStepNavigation","UpdateCssClass",function(B,A){if(mojo.Model.get("wishlist.cart")){if(mojo.Model.get("wishlist.cart").length>0){return{element:mojo.query(".step-navigation li"),action:"remove",cssClass:"selected"}}}})}});dojo.provide("noawishlist.controller.navigation.GlowController");dojo.require("mojo.controller.Controller");dojo.declare("noawishlist.controller.navigation.GlowController",mojo.controller.Controller,{addObservers:function(){this.addObserver(this,"onInit","InitializeGlow",function(){return{navElement:mojo.queryFirst("#primaryNav")}});this.addObserver(mojo.Messaging.getTopic("/glow/turn/on"),"onPublish","AnimateGlow",{transition:"in"});this.addObserver(mojo.Messaging.getTopic("/glow/turn/off"),"onPublish","AnimateGlow",{transition:"out"});this.addObserver(this.getCommand("AnimateGlow"),"onComplete","AnimationQueue",{queue:"/glow/animationQueue"});this.addObserver("li.major a","onmouseover","AnimateGlow",{transition:"in"});this.addObserver("li.major a","onmouseout","AnimateGlow",{transition:"out"})},addCommands:function(){this.addCommand("MorphStyles","noawishlist.command.animation.MorphStylesBehavior");this.addCommand("InitializeGlow","noawishlist.command.glow.InitializeGlowBehavior");this.addCommand("AnimateGlow","noawishlist.command.glow.AnimateGlowBehavior");this.addCommand("AnimationQueue","noawishlist.command.animation.QueueBehavior")},addIntercepts:function(){}});dojo.provide("noawishlist.controller.prefilledInput.InputController");dojo.require("mojo.controller.Controller");dojo.declare("noawishlist.controller.prefilledInput.InputController",mojo.controller.Controller,{addObservers:function(){this.addObserver(this,"onInit","UpdateOverlabel",function(){return{label:mojo.queryFirst(".overlabel"),focusField:false}});this.addObserver('input[type!="submit"]',"onfocus","UpdateOverlabel",function(){return{label:mojo.queryFirst(".overlabel"),focusField:true}});this.addObserver('input[type!="submit"]',"onblur","UpdateOverlabel",function(){return{label:mojo.queryFirst(".overlabel"),focusField:false}});this.addObserver(".overlabel","onclick","UpdateOverlabel",{focusField:true})},addCommands:function(){this.addCommand("UpdateOverlabel","noawishlist.command.UpdateOverlabelGeneric")},addIntercepts:function(){}});dojo.provide("noawishlist.rules.eCardRules");dojo.require("mojo.helper.Validation");var validate=mojo.helper.Validation.getInstance();noawishlist.rules.eCardRules={"fromName":[{rule:validate.isRequired,errorMsg:"First Name is a required field",force:true},{rule:validate.isLength,errorMsg:"First Name must be 1-255 chars",params:{min:1,max:255}}],"toName":[{rule:validate.isRequired,errorMsg:"Recipient's Name is a required field",force:true},{rule:validate.isLength,errorMsg:"Recipient's Name must be 1-255 chars",params:{min:1,max:255}}],"ecard.recipients-email":[{rule:validate.isRequired,errorMsg:"Recipient's E-mail Address is a required field",force:true},{rule:validate.isLength,errorMsg:"Recipient's E-mail Address must be 1-255 chars",params:{min:1,max:255}},{rule:validate.isEmailAddress,errorMsg:"Recipient's E-mail format is incorrect"}],"imgResponse":[{rule:validate.isRequired,errorMsg:"Security code must be entered",force:true}]};dojo.registerModulePath("mojo","../../src");dojo.registerModulePath("noawishlist","../../noawishlist");dojo.registerModulePath("stdlib","../../stdlib");dojo.registerModulePath("extLib","../../lib");dojo.require("mojo.component.Template");dojo.require("mojo.controller.Map");dojo.require("mojo.History");dojo.require("noawishlist.service.Locator");dojo.require("noawishlist.SiteMap");var init=function(){mojo.History.getInstance();var A=mojo.controller.Map.getInstance();A.setSiteMap(noawishlist.SiteMap);A.mapControllers(window.location.href)};dojo.addOnLoad(init)