/*
 * Blast Mojo Framework
 *
 * Copyright (c) 2009, Blast Radius, Inc.
 * All rights reserved.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
var mojo={Version:"1.12b"};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(a){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(a){this._requestObj=a;if(typeof(a.update)=="function"){a.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(a)},execute:function(a){throw new Error("ERROR mojo.command.Command.execute - execute() method is not implemented")},onResponse:function(a){throw new Error("ERROR mojo.command.Command.onResponse - onResponse() method is not implemented")},onError:function(a){throw new Error("ERROR mojo.command.Command.onError - onError() method is not implemented")}});dojo.provide("mojo.controller.Controller");dojo.declare("mojo.controller.Controller",null,{constructor:function(a,b){this._init(a,b)},_contextElementObj:null,_commands:new Array(),_connectHandles:new Array(),_queryCache:new Object(),_observers:new Object(),_tags:new Array(),_init:function(a,c){if(this.params){var d={};d.onChange=function(){};var b=this._getBaseProperty("params");for(var f in b){if(typeof b[f]=="object"){var e=b[f];d[f]=new mojo.controller.Param(f,dojo.clone(e.defaultValue),e.required,e.type,d);if(c){d[f].setValue(c[f])}}}for(var f in this.params){if(typeof this.params[f]=="object"){var e=this.params[f];d[f]=new mojo.controller.Param(f,dojo.clone(e.defaultValue),e.required,e.type,d);if(c){d[f].setValue(c[f])}}}this.params=d;d=null;c=null}this._contextElementObj=null;if(a){this._contextElementObj=a}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 f in this.params){if(typeof this.params[f]=="object"){var e=this.params[f];if(e.getValue()!=null){e.onChange()}}}}mojo.Messaging.subscribe("/mojo/controller/"+this.declaredClass+"/addObservers",this,"_addObservers");mojo.Messaging.subscribe("/mojo/controller/addObservers",this,"_addObservers")},getConfig:function(a){a=a.toLowerCase();switch(a){case"params":return this[a];break}return null},getValue:function(a){return this.params[a].getValue()},setValue:function(b,a){this.params[b].setValue(a)},getContextController:function(a){if(this.getContextElement()&&this.getContextElement().mojoControllers[a]){return this.getContextElement().mojoControllers[a]}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(a){var b=this._getBaseProperty(a);if(b){b.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 d in this._queryCache){if(this._queryCache[d]["length"]){for(var b in this._observers[d]){if(this._observers[d][b]["length"]){var c=this._queryCache[d].length;for(var a=0;a<c;a++){this._addObserver(this._queryCache[d][a],b,this._observers[d][b])}}}}}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 a=this._connectHandles.length;for(var b=0;b<a;b++){dojo.disconnect(this._connectHandles[b])}},addObserver:function(e,j,f,h){var d=function(l){if(!dojo.isArray(l)){return false}for(var k=0,m=l.length;k<m;k++){if(typeof(l[k])!="string"){return false}}return true};if(!e){return}if(!j){throw new Error("ERROR mojo.controller.Controller.addObserver - srcFunc is not set")}if(typeof(j)!="string"){throw new Error("ERROR mojo.controller.Controller.addObserver - srcFunc is not type String")}if(!f){throw new Error("ERROR mojo.controller.Controller.addObserver - cmdName is not set")}if(typeof(f)!="string"&&f!=null){throw new Error("ERROR mojo.controller.Controller.addObserver - cmdName is not type String")}if(typeof(e)=="string"||d(e)){if(!dojo.isArray(e)){e=[e]}for(var a=0,g=e.length;a<g;a++){var b=e[a];if(this.getContextElement()&&j.match(/^onclick|onmouse|onkey|onmove/)!=null){this._addObserver(this.getContextElement(),j,[{cmdName:f,paramsObj:h,eventDelegate:b}])}else{if(!this._queryCache[b]){this._queryCache[b]=mojo.query(b,this.getContextElement())}if(!this._observers[b]){this._observers[b]=new Object()}if(!this._observers[b][j]){this._observers[b][j]=new Array()}var c=this._observers[b][j].length;this._observers[b][j][c]={cmdName:f,paramsObj:h}}}}else{if(!dojo.isArray(e)){e=[e]}for(var a=0,g=e.length;a<g;a++){this._addObserver(e[a],j,[{cmdName:f,paramsObj:h}])}}if(!(this._commands[f])||this._commands[f]==null){throw new Error("ERROR mojo.controller.Controller.addObserver - cmdName does not reference a Command in the Controller")}},_addObserver:function(e,a,d){var c=new Array();var k=d.length;for(var b=0;b<k;b++){if(typeof(d[b].eventDelegate)=="undefined"){d[b].eventDelegate=""}if(!this._observerIsTagged(e,a+d[b].eventDelegate,d[b])){c.push(d[b]);this._tagObserver(e,a+d[b].eventDelegate,d[b])}}if(!e.mojoObservers){e.mojoObservers=new Object()}if(!e.mojoObservers[a]){e.mojoObservers[a.toLowerCase()]=new Array()}if(c.length>0){var g=this;var h=function(p){var q=function(t){var t=t||window.event;var u=t.target||t.srcElement;if(u.nodeType==3){u=u.parentNode}return u};if(g.getContextElement()&&g.getContextElement().parentNode==null){g.removeObservers()}else{var o=c.length;for(var l=0;l<o;l++){if(typeof(mojo)!="undefined"){var m=e;if(c[l].eventDelegate.length>0){var r=q(p);m=mojo.queryMatch(r,c[l].eventDelegate,g.getContextElement(),true)}if(m!=null){var n=g._setRequest(c[l].paramsObj,m,p,c[l].cmdName);g.fireCommandChain(c[l].cmdName,n)}}}}};var f=a.toLowerCase();if((f=="onmouseleave"||f=="onmouseenter")&&MooTools&&Element.Events.mouseleave&&Element.Events.mouseenter){$(e).addEvent(a.replace("on",""),h)}else{var j=dojo.connect(e,a,h);this._connectHandles.push(j)}e.mojoObservers[a.toLowerCase()].push(h)}},_tagObserver:function(a,c,d){if(!a.mojoObserve){a.mojoObserve=new Object()}if(typeof a.mojoObserve[this.declaredClass]=="undefined"){var b=this._tags.length;a.mojoObserve[this.declaredClass]=b;this._tags[b]=new Object()}var e=a.mojoObserve[this.declaredClass];var f=this._generateTagKey(c,d);if(this._tags[e]&&!this._tags[e][f]){this._tags[e][f]=true}},_generateTagKey:function(c,d){var e=c+"_"+d.cmdName;if(d.paramsObj){var b;if(typeof(d.paramsObj)=="function"){b=d.paramsObj.toString()}else{if(typeof(d.paramsObj)=="object"){for(var a in d.paramsObj){if(d.paramsObj[a]){b+=a+":"+d.paramsObj[a].toString()+","}}}}e+="_"+b}return e},_observerIsTagged:function(a,c,d){if(!a.mojoObserve){a.mojoObserve=new Object()}var b=false;var e=this._generateTagKey(c,d);if(typeof a.mojoObserve[this.declaredClass]!="undefined"&&this._tags[a.mojoObserve[this.declaredClass]]&&this._tags[a.mojoObserve[this.declaredClass]][e]){b=true}return b},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.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")}};addFunc(cmdName,cmdObjPath,this)},getCommand:function(a){if(!a){throw new Error("ERROR mojo.controller.Controller.getCommand - cmdName is not set")}if(typeof(a)!="string"){throw new Error("ERROR mojo.controller.Controller.getCommand - cmdName is not type String")}if(this._commands[a]){return this._commands[a][0]}throw new Error("ERROR mojo.controller.Controller.getCommand - cmdName does not reference a Command in the Controller")},getCommandChain:function(a){if(!a){throw new Error("ERROR mojo.controller.Controller.getCommandChain - cmdName is not set")}if(typeof(a)!="string"){throw new Error("ERROR mojo.controller.Controller.getCommandChain - cmdName is not type String")}if(!this._commands[a]){throw new Error("ERROR mojo.controller.Controller.getCommandChain - cmdName does not reference a Command in the Controller")}if(this._commands[a]){return this._commands[a]}return null},fireCommandChain:function(a,b){var c=this._commands[a].length;for(var d=0;d<c;d++){this._commands[a][d]._execute(b)}},addIntercepts:function(){throw new Error("ERROR mojo.controller.Controller.addIntercepts - addIntercepts() method is not implemented")},addIntercept:function(b,c,g,d){if(!b){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptType is not set")}if(typeof(b)!="string"){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptType is not type String")}if(b=="before"||b=="after"||b=="around"){}else{throw new Error('ERROR mojo.controller.Controller.addIntercept - interceptType is not "before", "after", or "around"')}if(!c){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptCmdName is not set")}if(typeof(c)!="string"){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptCmdName is not type String")}if(!g){throw new Error("ERROR mojo.controller.Controller.addIntercept - cmdName is not set")}if(typeof(g)!="string"){throw new Error("ERROR mojo.controller.Controller.addIntercept - cmdName is not type String")}if(c.toString()==g.toString()){throw new Error("ERROR mojo.controller.Controller.addIntercept - a command cannot add advice to itself")}if(!this._commands[c]){throw new Error("ERROR mojo.controller.Controller.addIntercept - interceptCmdName does not reference a Command in the Controller")}if(!this._commands[g]){throw new Error("ERROR mojo.controller.Controller.addIntercept - cmdName does not reference a Command in the Controller")}var f=this;var e=this.getCommand(c)["_execute"];var a=function(h){if(typeof(mojo)!="undefined"){requestObj=f._setRequest(d,h.args[0].callerObj,h.args[0].eventObj,g,h);f.fireCommandChain(g,requestObj)}};switch(b){case"before":this._commands[c][0]["_execute"]=function(){var h={args:arguments,calleeObj:this};a.apply(this,[h]);return e.apply(this,arguments)};break;case"after":this._commands[c][0]["_execute"]=function(){var h={args:arguments,calleeObj:this};e.apply(this,arguments);return a.apply(this,[h])};break;case"around":this._commands[c][0]["_execute"]=function(){var h={args:arguments,calleeObj:this};h.proceed=function(){return e.apply(this.calleeObj,this.args)};return a.apply(this,[h])};break}},_setRequest:function(c,a,e,f,d){var b=new mojo.controller.Request(c,a,e,f,this,d);return b}});mojo.controller.Controller.updateObservers=function(a){if(a){mojo.Messaging.publish("/mojo/controller/"+a+"/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(b){if(b==null||typeof b=="undefined"){throw new Error("ERROR mojo.controller.Map.setSiteMap - siteMapObj parameter is required")}var f=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(b)){f()}for(var d=0,a=b.length;d<a;d++){var c=b[d];if(typeof c.pattern=="undefined"||c.pattern==null){f()}if(!dojo.isArray(c.controllers)){f()}for(var e=0,a=c.controllers.length;e<a;e++){if(typeof c.controllers[e].controller=="undefined"||!dojo.isString(c.controllers[e].controller)||c.controllers[e].controller==""){f()}}}for(pattern in b){}this._siteMap=b},mapControllers:function(b){var c=this.getSiteMap();var e=c.length;for(var j=0;j<e;j++){var g=c[j].pattern;if(typeof(g)=="string"){var d=[];if(b&&typeof(b)=="object"){d=mojo.query(g,b)}else{d=mojo.query(g)}var h=d.length;for(var a=0;a<h;a++){this._mapControllers(c[j].controllers,d[a])}}else{if(typeof(g)=="function"||typeof(g)=="object"){if(b&&typeof(b)=="string"){var f=new RegExp(g);if(f.test(b)){this._mapControllers(c[j].controllers)}}}else{alert(g);throw new Error("ERROR mojo.controller.Map - siteMap contains invalid pattern")}}}this.onComplete()},_mapControllers:function(c,a){var g=c.length;for(var e=0;e<g;e++){var d=c[e].controller;var b=c[e].params;if(djConfig&&djConfig.isDebug){try{this.mapController(d,a,b)}catch(f){console.debug("EXCEPTION: "+f.message+" in mojo.controller.Map.mapController() for controller: "+d)}}else{this.mapController(d,a,b)}}},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(a){mojo.Messaging.publish("/mojo/controller/mapControllers",[a])};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(d,a,b,c,e){this._value=null;this._defaultValue=null;this._params=null;this._type=null;this._name=d;this._defaultValue=a;if(c){this._type=c}if(e){this._params=e}this.setValue(this._defaultValue);if(typeof b=="boolean"){this._required=b}},_name:null,_value:null,_defaultValue:null,_required:false,_type:null,_params:null,getName:function(){return this._name},getValue:function(){return this._value},setValue:function(d){var b=mojo.helper.Validation.getInstance();var c=this.getRequired();var a=this.getType();if(c&&!b.isRequired(d)){throw new Error("ERROR mojo.controller.Param.setValue - value parameter is required")}if(typeof d=="undefined"){return}if(a&&!b.isType(d,{type:a})){throw new Error("RROR mojo.controller.Param.setValue - value parameter is invalid type")}if(this.getValue()!=d){this._value=d;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(b,a,d,f,e,c){this._paramsFunc=null;this.paramsObj=null;this.callerObj=null;this.eventObj=null;this.commandName=null;this.controllerObj=null;this.invocation=null;if(typeof(b)=="function"){this.paramsObj={};this._paramsFunc=b}else{if(typeof(b)=="object"){this.paramsObj=b}}if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.controller.Request.constructor - callerObj is not set")}else{this.callerObj=a}this.eventObj=d;if(f==null||typeof f=="undefined"){throw new Error("ERROR mojo.controller.Request.constructor - commandName is not set")}else{if(typeof f!="string"){throw new Error("ERROR mojo.controller.Request.constructor - commandName is not type String")}else{this.commandName=f}}if(e==null||typeof e=="undefined"){throw new Error("ERROR mojo.controller.Request.constructor - controllerObj is not set")}else{if(!(e instanceof mojo.controller.Controller)){throw new Error("ERROR mojo.controller.Request.constructor - controllerObj is not type mojo.controller.Controller")}else{this.controllerObj=e}}this.invocation=c},_paramsFunc:null,paramsObj:null,callerObj:null,eventObj:null,commandName:null,controllerObj:null,invocation:null,update:function(){if(this._paramsFunc&&typeof(this._paramsFunc)=="function"){var a=this._paramsFunc(this.getContextElement(),this.getCaller(),this.getController());for(var b in a){this.paramsObj[b]=a[b]}}},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.String");mojo.toSentenceCase=function(a){return a.charAt(0).toUpperCase()+a.replace(/ \w/g,function(b){return b.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(a){if(typeof a=="undefined"||a==null){return false}if(dojo.isString(a)){return dojo.string.trim(a).length>0}return true},isType:function(a,b){switch(b.type){case String:return(typeof a=="string"||a instanceof String);break;case Number:return(typeof a=="number"||a instanceof Number);break;case Boolean:return(typeof a=="boolean"||a instanceof Boolean);break;default:return(a instanceof b.type)}},isEmailAddress:function(a){if(a==null){throw new Error("ERROR mojo.helper.Validation.isEmailAddress - value parameter is required")}if(!dojo.isString(a)){throw new Error("ERROR mojo.helper.Validation.isEmailAddress - value parameter must be a non-empty string")}if(!dojox.validate.isEmailAddress(a.replace(/^\s+|\s+$/g,""),{})||a.match(/[^\w-_@\.]/gi)){return false}return true},isEmailAddressList:function(a){if(a==null){throw new Error("ERROR mojo.helper.Validation.isEmailAddressList - value parameter is required")}if(!dojo.isString(a)){throw new Error("ERROR mojo.helper.Validation.isEmailAddressList - value parameter must be a non-empty string")}if(!dojox.validate.isEmailAddressList(a,{})){return false}return true},isUrl:function(a){if(a==null){throw new Error("ERROR mojo.helper.Validation.isUrl - value parameter is required")}if(!dojo.isString(a)){throw new Error("ERROR mojo.helper.Validation.isUrl - value parameter must be a non-empty string")}return dojox.validate.isUrl(a,{allowLocal:true})},isLength:function(a,b){if((a==null)||(a=="")){return true}if(!dojo.isString(a)){throw new Error("ERROR mojo.helper.Validation.isLength - value parameter must be a string")}if(b){if(b.min&&b.min>a.length){return false}if(b.max&&b.max<a.length){return false}}return true},isRange:function(a,b){if((a==null)||(a=="")){return true}a=parseInt(a);if(isNaN(a)){return false}if(b){if(typeof(b.min)=="undefined"){b.min=0}if(b.min>a){return false}if(typeof(b.max)!="undefined"&&b.max<a){return false}}return true},isMatch:function(b,d){var a=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")};if((b==null)||(b=="")){return true}if(d){if(d.refValue){d.refValue=a(d.refValue);d.regex="^"+d.refValue+"$"}var c=new RegExp(d.regex);if(d.caseInsensitive){c=new RegExp(d.regex,"i")}if(!(c).test(b)){return false}}return true},isZipCode:function(b){var d="0123456789-";var c=0;if((b==null)||(b=="")){return true}if(b.length!=5&&b.length!=10){return false}for(var a=0;a<b.length;a++){temp=""+b.substring(a,a+1);if(temp=="-"){c++}if(d.indexOf(temp)=="-1"){return false}if((c>1)||((b.length==10)&&""+b.charAt(5)!="-")){return false}}return true},isPostalCode:function(a){if(a==null){throw new Error("ERROR mojo.helper.Validation.isPostalCode - value parameter is required")}if(!dojo.isString(a)){throw new Error("ERROR mojo.helper.Validation.isPostalCode - value parameter must be a non-empty string")}if(typeof a=="undefined"||a==null){return false}if(a.length==6&&a.search(/^[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d$/)!=-1){return true}else{if(a.length==7&&a.search(/^[a-zA-Z]\d[a-zA-Z](-|\s)\d[a-zA-Z]\d$/)!=-1){return true}else{return false}}return true},execute:function(t,g){if(typeof t=="undefined"||t==null){throw new Error("ERROR mojo.helper.Validation.execute - rulesObj parameter is required")}if(typeof g=="undefined"||g==null){throw new Error("ERROR mojo.helper.Validation.execute - domElmListObj parameter is required")}var h=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(g)){g=[g]}for(rule in t){if(!dojo.isArray(t[rule])){h()}for(var l=0,k=t[rule].length;l<k;l++){if(typeof t[rule][l].rule!="function"){h()}if(typeof t[rule][l].error!="undefined"&&!dojo.isString(t[rule][l].error)){h()}}}var w=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 w(A,B)}return A};var aa=new Array();var y=g.length;for(var l=0;l<y;l++){var z=mojo.query("*[name]",g[l]);if(g[l].name){z.push(g[l])}var c=z.length;for(var m=0;m<c;m++){aa.push(z[m])}aa=mojo.distinct(aa);var j=mojo.query(".mojoValidationError",g[l]);var f=w(g[l],"SPAN");if(f!=null&&dojo.hasClass(f,"mojoValidationError")){j.push(f)}var d=j.length;for(var m=0;m<d;m++){dojo._destroyElement(j[m])}}var n=true;var x=new Array();var r=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 p=aa.length;var e={};for(var l=(p-1);l>=0;l--){var u=aa[l];if(u.type=="radio"||u.type=="checkbox"){u.mojoValidationGroup=true;if(!e[u.name]){e[u.name]=new Array()}else{aa[l]=null}if(u.checked){e[u.name].push((u.value)?u.value:"checked")}}}for(var l=0;l<p;l++){var u=aa[l];if(u){if(t[u.name]){var a=t[u.name];var v=a.length;for(var m=0;m<v;m++){var ab=a[m];if(ab.force||(r(u)&&!u.disabled)||(u.type&&u.type=="hidden")){if(ab.params&&ab.params.ref){var b=mojo.queryFirst('*[name="'+ab.params.ref+'"]').value;if(b&&b.length>0){ab.params.refValue=b}}var q=u.value;if(u.mojoValidationGroup){q=e[u.name].toString()}if(!(ab.rule(q,ab.params))){var o={element:u,message:ab.errorMsg};x.push(o);n=false;break}}}}}}return x}});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(b,e){var a=b.length;for(var d=0;d<a;d++){var f=b[d];var c=document.createElement("span");c.className="mojoValidationError";c.innerHTML=f.message;if(e!=null){e.appendChild(c)}else{if(f.element.type=="checkbox"){if(f.element.parentNode.tagName=="LABEL"){dojo.place(c,f.element.parentNode,"after")}else{dojo.place(c,f.element,"after")}}else{dojo.place(c,f.element,"after")}}}};dojo.provide("mojo.History");var __mojoHistory=null;dojo.declare("mojo.History",null,{constructor:function(){var a=this;if(typeof rsh!="undefined"&&rsh.dhtmlHistory&&rsh.dhtmlHistory["_isIE"]){rsh.dhtmlHistory.init();dojo.connect(rsh.dhtmlHistory,"_fireHistoryEvent",function(b){a.setHash(b);a._execute()})}else{this._interval=window.setInterval(function(){a._execute()},100)}a._execute()},_interval:null,_defaultHash:"",_savedHash:"",_paramsObj:null,_topic:null,onChange:function(){},getHash:function(){var a=window.location.hash;if(a.length>0){a=a.substring(1)}if(a.toLowerCase()=="null"||a.toLowerCase()=="undefined"){a=""}if(a.length==0&&this._defaultHash.length>0){a=this._defaultHash}return a},setHash:function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.History.setHash - newHash parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.History.setHash - newHash parameter must be a non-empty string")}window.location.hash=a},setDefault:function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.History.setDefault - defaultHashObj parameter is required")}if(typeof(a)=="string"){this._defaultHash=a}else{if(typeof(a)=="object"){this._defaultHash=this._parseObj(a)}}this._execute()},_execute:function(){var a=this.getHash();if(a.length==0&&this._defaultHash.length>0){a=this._defaultHash}if(this._savedHash!=a){document.title=document.title.replace(window.location.hash,"");this._savedHash=a;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(c){var d=new Object();var e=c.split("&");for(var a=0;a<e.length;a++){var b=e[a].split("=");if(b.length==2){d[b[0]]=unescape(b[1])}}return d},_parseObj:function(c){var b=new Array();for(var a in c){b.push(a+"="+escape(c[a].toString()))}var d=b.join("&");return d},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.*");dojo.provide("mojo.Messaging");__mojoMessagingTopics=new Array();mojo.Messaging.publish=function(c,b){if(c==null||typeof c=="undefined"){throw new Error("ERROR mojo.Messaging.publish - topic parameter is required")}if(!dojo.isString(c)||c==""){throw new Error("ERROR mojo.Messaging.publish - topic parameter must be a non-empty string")}var a=mojo.Messaging.getTopic(c);a.setMessage(b);a.onPublish(b);if(!dojo.isArray(b)){b=[b]}dojo.publish(c,b);a.setMessage(null)};mojo.Messaging.subscribe=function(a,c,b){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.Messaging.subscribe - topic parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.Messaging.subscribe - topic parameter must be a non-empty string")}if(!dojo.isObject(c)&&!dojo.isString(c)){throw new Error("ERROR mojo.Messaging.subscribe - targetObj parameter must be an object or a string")}mojo.Messaging.getTopic(a);return dojo.subscribe(a,c,b)};mojo.Messaging.unsubscribe=function(a){dojo.unsubscribe(a)};mojo.Messaging.getTopic=function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.Messaging.getTopic - topic parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.Messaging.getTopic - topic parameter must be a non-empty string")}if(!__mojoMessagingTopics[a]){__mojoMessagingTopics[a]=new mojo.MessagingTopic(a)}return __mojoMessagingTopics[a]};dojo.provide("mojo.MessagingTopic");dojo.declare("mojo.MessagingTopic",null,{onPublish:function(){},constructor:function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.MessagingTopic - topic parameter is required")}if(typeof a=="string"){if(a==""){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=a;__mojoMessagingTopics[a]=this},_topic:null,_messageObj:null,getTopic:function(){return this._topic},getMessage:function(){return this._messageObj},setMessage:function(a){this._messageObj=a}});dojo.provide("mojo.Model");__mojoModel=new Array();__mojoModelReferences=new Array();mojo.Model.set=function(a,b){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.Model.set - key parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.Model.set - key parameter must be a non-empty string")}__mojoModel[a]=b;mojo.Model.notify(a)};mojo.Model.add=function(d,b){if(d==null||typeof d=="undefined"){throw new Error("ERROR mojo.Model.add - key parameter is required")}if(!dojo.isString(d)||d==""){throw new Error("ERROR mojo.Model.add - key parameter must be a non-empty string")}if(b==null||typeof b=="undefined"){throw new Error("ERROR mojo.Model.add - valueObj parameter is required")}if(b==""){throw new Error("ERROR mojo.Model.add - valueObj parameter must be a non-empty string")}if(mojo.Model.contains(d)){if(!dojo.isArray(__mojoModel[d])){var c=__mojoModel[d];__mojoModel[d]=new Array();__mojoModel[d].push(c)}if(dojo.isArray(b)){for(var a=0;a<b.length;a++){__mojoModel[d].push(b[a])}}else{__mojoModel[d].push(b)}mojo.Model.notify(d)}else{mojo.Model.set(d,b)}};mojo.Model.get=function(b){if(b==null||typeof b=="undefined"){throw new Error("ERROR mojo.Model.get - key parameter is required")}if(!dojo.isString(b)||b==""){throw new Error("ERROR mojo.Model.get - key parameter must be a non-empty string")}var a=__mojoModel[b];if(typeof a=="undefined"){a=null}if(djConfig&&djConfig.isDebug){console.debug('WARNING mojo.Model - No entry found for "'+b+'" key')}return a};mojo.Model.getReference=function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.Model.getReference - key parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.Model.getReference - key parameter must be a non-empty string")}if(!__mojoModelReferences[a]){__mojoModelReferences[a]=new mojo.ModelReference(a)}return __mojoModelReferences[a]};mojo.Model.remove=function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.Model.remove - key parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.Model.remove - key parameter must be a non-empty string")}__mojoModel[a]=null;mojo.Model.notify(a)};mojo.Model.contains=function(b){if(b==null||typeof b=="undefined"){throw new Error("ERROR mojo.Model.contains - key parameter is required")}if(!dojo.isString(b)||b==""){throw new Error("ERROR mojo.Model.contains - key parameter must be a non-empty string")}var a=__mojoModel[b];if(a){return true}return false};mojo.Model.notify=function(d){if(d==null||typeof d=="undefined"){throw new Error("ERROR mojo.Model.notify - key parameter is required")}if(!dojo.isString(d)||d==""){throw new Error("ERROR mojo.Model.notify - key parameter must be a non-empty string")}__mojoModel.__mojoTemplateControllers=[];var c=mojo.Model.getReference(d);c.onNotify();mojo.Messaging.publish("/mojo/model/"+d);var b=__mojoModel.__mojoTemplateControllers.length;for(var e=0;e<b;e++){var a=__mojoModel.__mojoTemplateControllers[e];if(a&&a.updateController){a._addObservers();a.updateController=null}}__mojoModel.__mojoTemplateControllers=null};mojo.Model.addObserver=function(c,a,b){if(c==null||typeof c=="undefined"){throw new Error("ERROR mojo.Model.addObserver - key parameter is required")}if(!dojo.isString(c)||c==""){throw new Error("ERROR mojo.Model.addObserver - key parameter must be a non-empty string")}if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.Model.addObserver - targetObj parameter is required")}if(!dojo.isObject(a)){throw new Error("ERROR mojo.Model.addObserver - targetObj parameter must be an object")}if(b==null||typeof b=="undefined"){throw new Error("ERROR mojo.Model.addObserver - targetFunc parameter is required")}if(!dojo.isString(b)||b==""){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/"+c,a,b)};mojo.Model.removeObserver=function(a){if(a==null||typeof a!="object"){throw new Error("ERROR mojo.Model.removeObserver - handle parameter is required")}mojo.Messaging.unsubscribe(a)};dojo.provide("mojo.ModelReference");dojo.declare("mojo.ModelReference",null,{onNotify:function(){},constructor:function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.ModelReference - key parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.ModelReference - key parameter must be a non-empty string")}this._key=a;__mojoModelReferences[a]=this},_key:null,getKey:function(){return this._key},getValue:function(){return mojo.Model.get(this._key)},setValue:function(a){mojo.Model.set(this._key,a)}});dojo.provide("mojo.query");mojo.query=function(b,c){if(c&&(typeof c=="string"||typeof c=="object")){var d=dojo.query(b,c)}else{if((new RegExp(/^\#[a-zA-Z0-9\-\_]*$/)).test(b)){var a=document.getElementById(b.substring(1));if(a){var d=[a]}else{var d=[]}}else{var d=dojo.query(b)}}return d};mojo.queryFirst=function(b,c){var a=mojo.query(b,c);if(a.length>0){return a[0]}return null};mojo.distinct=function(c){if(c.length==0){return c}var e=[],b;for(var f=0,a=c.length;f<a;f++){if(!(b=c[f])._counted){b._counted=true;e.push(b)}}for(var f=0,d;d=e[f];f++){d._counted=undefined}return e};mojo.queryMatch=function(h,b,d,g){if(!h||h==d){return null}var c=false;var e=[];if((new RegExp(/^[\#|\.]?[a-zA-Z0-9\-\_]+$/)).test(b)){c=true}else{e=mojo.query(b,d)}while(h&&h!=d){if(c){if((b.indexOf("#")==0&&h.id==b.substring(1))||(b.indexOf(".")==0&&dojo.hasClass(h,b.substring(1)))||(h.tagName&&h.tagName.toLowerCase()==b.toLowerCase())){return h}}else{for(var f=0,a=e.length;f<a;f++){if(e[f]==h){return h}}}if(g){h=h.parentNode}else{break}}return null};dojo.provide("mojo.service.Delegate");dojo.declare("mojo.service.Delegate",null,{constructor:function(a){this._callerObj=a},_callerObj:null,getCaller:function(){return this._callerObj},setCaller:function(a){this._callerObj=a}});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(a){if(a==null||typeof a=="undefined"){throw (new Error("ERROR mojo.service.Locator.addService - serviceObj parameter is required"))}if(!(a 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 b=a.getName();if(!__mojoServiceRegistry[b]){__mojoServiceRegistry[b]=a}else{throw (new Error('ERROR mojo.service.Locator.addService - service with the name "'+b+'" already exists in the registry; service not added'))}},getService:function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.service.Locator.getService - name parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.service.Locator.getService - name parameter must be a non-empty string")}return __mojoServiceRegistry[a]||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(a,d,c){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.service.Service.constructor - name parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.service.Service.constructor - name parameter must be a non-empty string")}if(d==null||typeof d=="undefined"){throw new Error("ERROR mojo.service.Service.constructor - uri parameter is required")}if(!dojo.isString(d)||d==""){throw new Error("ERROR mojo.service.Service.constructor - uri parameter must be a non-empty string")}var b={};for(property in this.DEFAULT_PARAMS){b[property]=this.DEFAULT_PARAMS[property]}if(a.toLowerCase().indexOf("add")==0){b.method="POST"}else{if(a.toLowerCase().indexOf("update")==0){b.method="PUT"}else{if(a.toLowerCase().indexOf("delete")==0){b.method="DELETE"}}}if(c){if(c.method){if(c.method!="GET"){b.cache=false}}else{if(b.method!="GET"){b.cache=false}}if(c.method){if(c.method!="GET"){b.retry=0}}else{if(b.method!="GET"){b.retry=0}}}if(c){for(property in c){b[property]=c[property]}}this.setName(a);this.setUri(d);this.setParams(b)},_name:"",_uri:"",_params:new Object(),getName:function(){return this._name},setName:function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.service.Service.setName - name parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.service.Service.setName - name parameter must be a non-empty string")}this._name=a},getUri:function(){return this._uri},setUri:function(a){if(a==null||typeof a=="undefined"){throw new Error("ERROR mojo.service.Service.setUri - uri parameter is required")}if(!dojo.isString(a)||a==""){throw new Error("ERROR mojo.service.Service.setUri - uri parameter must be a non-empty string")}this._uri=a},getParams:function(){return this._paramsObj},setParams:function(b){if(!b){throw new Error("ERROR mojo.service.Service.setParams - paramsObj parameter is required")}if(b){for(property in b){switch(property){case"json":case"hijax":case"cache":if(typeof b[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 b[property]!="number"){throw new Error("ERROR mojo.service.Service.setParams - "+property+" property of paramsObj must be a number")}break;case"method":var d=false;for(var c=0,a=this.VALID_METHODS.length;c<a;c++){if(this.VALID_METHODS[c]==b[property].toUpperCase()){d=true}}if(!d){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 b){this._paramsObj[property]=b[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(a,b,c){var d=0;if(c>0){d=(new Date()).getTime()+(c*1000)}mojo.Model.set(a,{data:b,expiryTime:d})},_getCache:function(b){var a=null;if(mojo.Model.contains(b)){a=mojo.Model.get(b);var c=(new Date()).getTime();if(a.expiryTime>0&&c>a.expiryTime){mojo.Model.remove(b);a=null}}return a}});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("nicemacrosbro.service.Locator");dojo.require("mojo.service.Locator");dojo.require("mojo.service.Service");var __nicemacrosbroServiceLocator=null;dojo.declare("nicemacrosbro.service.Locator",mojo.service.Locator,{addServices:function(){this.addService(new mojo.service.Service("RateMacro","/api/macro/rate",{json:true,cache:false,method:"POST"}));this.addService(new mojo.service.Service("SaveMacro","/api/macro/add",{json:true,cache:false,method:"POST"}))}});nicemacrosbro.service.Locator.getInstance=function(){if(__nicemacrosbroServiceLocator==null){__nicemacrosbroServiceLocator=new nicemacrosbro.service.Locator()}return __nicemacrosbroServiceLocator};(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context)};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1]){selector=jQuery.clean([match[1]],context)}else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3]){return jQuery().find(selector)}return jQuery(elem)}selector=[]}}else{return jQuery(context).find(selector)}}else{if(jQuery.isFunction(selector)){return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector)}}return this.setArray(jQuery.makeArray(selector))},jquery:"1.2.6",size:function(){return this.length},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num]},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this},each:function(callback,args){return jQuery.each(this,callback,args)},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this)},attr:function(name,value,type){var options=name;if(name.constructor==String){if(value===undefined){return this[0]&&jQuery[type||"attr"](this[0],name)}else{options={};options[name]=value}}return this.each(function(i){for(name in options){jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name))}})},css:function(key,value){if((key=="width"||key=="height")&&parseFloat(value)<0){value=undefined}return this.attr(key,value,"curCSS")},text:function(text){if(typeof text!="object"&&text!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text))}var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8){ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this])}})});return ret},wrapAll:function(html){if(this[0]){jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild){elem=elem.firstChild}return elem}).append(this)}return this},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html)})},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html)})},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1){this.appendChild(elem)}})},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1){this.insertBefore(elem,this.firstChild)}})},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this)})},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling)})},end:function(){return this.prevObject||jQuery([])},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem)});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems)},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0]}else{return this.cloneNode(true)}});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined){this[expando]=null}});if(events===true){this.find("*").andSelf().each(function(i){if(this.nodeType==3){return}var events=jQuery.data(this,"events");for(var type in events){for(var handler in events[type]){jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data)}}})}return ret},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i)})||jQuery.multiFilter(selector,this))},not:function(selector){if(selector.constructor==String){if(isSimple.test(selector)){return this.pushStack(jQuery.multiFilter(selector,this,true))}else{selector=jQuery.multiFilter(selector,this)}}var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector})},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=="string"?jQuery(selector):jQuery.makeArray(selector))))},is:function(selector){return !!selector&&jQuery.multiFilter(selector,this).length>0},hasClass:function(selector){return this.is("."+selector)},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0){return null}for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one){return value}values.push(value)}}return values}else{return(this[0].value||"").replace(/\r/g,"")}}return undefined}if(value.constructor==Number){value+=""}return this.each(function(){if(this.nodeType!=1){return}if(value.constructor==Array&&/radio|checkbox/.test(this.type)){this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0)}else{if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0)});if(!values.length){this.selectedIndex=-1}}else{this.value=value}}})},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value)},replaceWith:function(value){return this.after(value).remove()},eq:function(i){return this.slice(i,i+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments))},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},andSelf:function(){return this.add(this.prevObject)},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length){data=jQuery.data(this[0],key)}return data===undefined&&parts[1]?this.data(parts[0]):data}else{return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value)})}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key)})},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse){elems.reverse()}}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr")){obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"))}var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script")){scripts=scripts.add(elem)}else{if(elem.nodeType==1){scripts=scripts.add(jQuery("script",elem).remove())}callback.call(obj,elem)}});scripts.each(evalScript)})}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dataType:"script"})}else{jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"")}if(elem.parentNode){elem.parentNode.removeChild(elem)}}function now(){return +new Date}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2}if(typeof target!="object"&&typeof target!="function"){target={}}if(length==i){target=this;--i}for(;i<length;i++){if((options=arguments[i])!=null){for(var name in options){var src=target[name],copy=options[name];if(target===copy){continue}if(deep&&copy&&typeof copy=="object"&&!copy.nodeType){target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy)}else{if(copy!==undefined){target[name]=copy}}}}}return target};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep){window.jQuery=_jQuery}return jQuery},isFunction:function(fn){return !!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"")},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie){script.text=data}else{script.appendChild(document.createTextNode(data))}head.insertBefore(script,head.firstChild);head.removeChild(script)}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase()},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id){id=elem[expando]=++uuid}if(name&&!jQuery.cache[id]){jQuery.cache[id]={}}if(data!==undefined){jQuery.cache[id][name]=data}return name?jQuery.cache[id][name]:id},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id]){break}if(!name){jQuery.removeData(elem)}}}else{try{delete elem[expando]}catch(e){if(elem.removeAttribute){elem.removeAttribute(expando)}}delete jQuery.cache[id]}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object){if(callback.apply(object[name],args)===false){break}}}else{for(;i<length;){if(callback.apply(object[i++],args)===false){break}}}}else{if(length==undefined){for(name in object){if(callback.call(object[name],name,object[name])===false){break}}}else{for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}}return object},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value)){value=value.call(elem,i)}return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className)){elem.className+=(elem.className?" ":"")+className}})},remove:function(elem,classNames){if(elem.nodeType==1){elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return !jQuery.className.has(classNames,className)}).join(" "):""}},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name]}callback.call(elem);for(var name in options){elem.style[name]=old[name]}},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0});val-=Math.round(padding+border)}if(jQuery(elem).is(":visible")){getWH()}else{jQuery.swap(elem,props,getWH)}return Math.max(0,val)}return jQuery.curCSS(elem,name,force)},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari){return false}var ret=defaultView.getComputedStyle(elem,null);return !ret||ret.getPropertyValue("color")==""}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save}if(name.match(/float/i)){name=styleFloat}if(!force&&style&&style[name]){ret=style[name]}else{if(defaultView.getComputedStyle){if(name.match(/float/i)){name="float"}name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem)){ret=computedStyle.getPropertyValue(name)}else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode){stack.unshift(a)}for(;i<stack.length;i++){if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block"}}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++){if(swap[i]!=null){stack[i].style.display=swap[i]}}}if(name=="opacity"&&ret==""){ret="1"}}else{if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase()});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft}}}}return ret},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=="undefined"){context=context.ownerDocument||context[0]&&context[0].ownerDocument||document}jQuery.each(elems,function(i,elem){if(!elem){return}if(elem.constructor==Number){elem+=""}if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">"});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--){div=div.lastChild}if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j])}}if(/^\s/.test(elem)){div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild)}}elem=jQuery.makeArray(div.childNodes)}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select"))){return}if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options){ret.push(elem)}else{ret=jQuery.merge(ret,elem)}});return ret},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8){return undefined}var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari){elem.parentNode.selectedIndex}if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode){throw"type property can't be changed"}elem[name]=value}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name)){return elem.getAttributeNode(name).nodeValue}return elem[name]}if(msie&&notxml&&name=="style"){return jQuery.attr(elem.style,"cssText",value)}if(set){elem.setAttribute(name,""+value)}var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+""=="NaN"?"":"alpha(opacity="+value*100+")")}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase()});if(set){elem[name]=value}return elem[name]},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"")},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call){ret[0]=array}else{while(i){ret[--i]=array[i]}}}return ret},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++){if(array[i]===elem){return i}}return -1},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++]){if(elem.nodeType!=8){first[pos++]=elem}}}else{while(elem=second[i++]){first[pos++]=elem}}return first},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i])}}}catch(e){ret=array}return ret},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++){if(!inv!=!callback(elems[i],i)){ret.push(elems[i])}}return ret},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null){ret[ret.length]=value}}return ret.concat.apply([],ret)}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode},parents:function(elem){return jQuery.dir(elem,"parentNode")},next:function(elem){return jQuery.nth(elem,2,"nextSibling")},prev:function(elem){return jQuery.nth(elem,2,"previousSibling")},nextAll:function(elem){return jQuery.dir(elem,"nextSibling")},prevAll:function(elem){return jQuery.dir(elem,"previousSibling")},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string"){ret=jQuery.multiFilter(selector,ret)}return this.pushStack(jQuery.unique(ret))}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++){jQuery(args[i])[original](this)}})}});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1){this.removeAttribute(name)}},addClass:function(classNames){jQuery.className.add(this,classNames)},removeClass:function(classNames){jQuery.className.remove(this,classNames)},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames)},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){jQuery(">*",this).remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments)}});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px")}});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2])},"#":function(a,i,m){return a.getAttribute("id")==m[2]},":":{lt:function(a,i,m){return i<m[3]-0},gt:function(a,i,m){return i>m[3]-0},nth:function(a,i,m){return m[3]-0==i},eq:function(a,i,m){return m[3]-0==i},first:function(a,i){return i==0},last:function(a,i,m,r){return i==r.length-1},even:function(a,i){return i%2==0},odd:function(a,i){return i%2},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a},"only-child":function(a){return !jQuery.nth(a.parentNode.lastChild,2,"previousSibling")},parent:function(a){return a.firstChild},empty:function(a){return !a.firstChild},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden"},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden"},enabled:function(a){return !a.disabled},disabled:function(a){return a.disabled},checked:function(a){return a.checked},selected:function(a){return a.selected||jQuery.attr(a,"selected")},text:function(a){return"text"==a.type},radio:function(a){return"radio"==a.type},checkbox:function(a){return"checkbox"==a.type},file:function(a){return"file"==a.type},password:function(a){return"password"==a.type},submit:function(a){return"submit"==a.type},image:function(a){return"image"==a.type},reset:function(a){return"reset"==a.type},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button")},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},has:function(a,i,m){return jQuery.find(m[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem}).length}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r)}return cur},find:function(t,context){if(typeof t!="string"){return[t]}if(context&&context.nodeType!=1&&context.nodeType!=9){return[]}context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++){for(var c=ret[i].firstChild;c;c=c.nextSibling){if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName)){r.push(c)}}}ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0){continue}foundToken=true}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling){if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id]){break}if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~"){merge[id]=true}r.push(n)}if(m=="+"){break}}}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0]){ret.shift()}done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length)}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]]}else{re2=quickClass;m=re2.exec(t)}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2]){oid=jQuery('[@id="'+m[2]+'"]',elem)[0]}ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[]}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object"){tag="param"}r=jQuery.merge(r,ret[i].getElementsByTagName(tag))}if(m[1]=="."){r=jQuery.classFilter(r,m[2])}if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++){if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break}}r=tmp}ret=r}t=t.replace(re2,"")}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t)}}if(t){ret=[]}if(ret&&context==ret[0]){ret.shift()}done=jQuery.merge(done,ret);return done},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass){tmp.push(r[i])}}return tmp},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break}}if(!m){break}if(m[1]==":"&&m[2]=="not"){r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3])}else{if(m[1]=="."){r=jQuery.classFilter(r,m[2],not)}else{if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2])){z=jQuery.attr(a,m[2])||""}if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not){tmp.push(a)}}r=tmp}else{if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling){if(n.nodeType==1){n.nodeIndex=c++}}merge[id]=true}var add=false;if(first==0){if(node.nodeIndex==last){add=true}}else{if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0){add=true}}if(add^not){tmp.push(node)}}r=tmp}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object"){fn=fn[m[2]]}if(typeof fn=="string"){fn=eval("false||function(a,i){return "+fn+";}")}r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r)},not)}}}}}return{r:r,t:t}},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1){matched.push(cur)}cur=cur[dir]}return matched},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir]){if(cur.nodeType==1&&++num==result){break}}return cur},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem){r.push(n)}}return r}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8){return}if(jQuery.browser.msie&&elem.setInterval){elem=window}if(!handler.guid){handler.guid=this.guid++}if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments)});handler.data=data}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered){return jQuery.event.handle.apply(arguments.callee.elem,arguments)}});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener){elem.addEventListener(type,handle,false)}else{if(elem.attachEvent){elem.attachEvent("on"+type,handle)}}}}handlers[handler.guid]=handler;jQuery.event.global[type]=true});elem=null},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8){return}var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)==".")){for(var type in events){this.remove(elem,type+(types||""))}}else{if(types.type){handler=types.handler;types=types.type}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler){delete events[type][handler.guid]}else{for(handler in events[type]){if(!parts[1]||events[type][handler].type==parts[1]){delete events[type][handler]}}}for(ret in events[type]){break}if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener){elem.removeEventListener(type,jQuery.data(elem,"handle"),false)}else{if(elem.detachEvent){elem.detachEvent("on"+type,jQuery.data(elem,"handle"))}}}ret=null;delete events[type]}}})}for(ret in events){break}if(!ret){var handle=jQuery.data(elem,"handle");if(handle){handle.elem=null}jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle")}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true}if(!elem){if(this.global[type]){jQuery("*").add([window,document]).trigger(type,data)}}else{if(elem.nodeType==3||elem.nodeType==8){return undefined}var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true}data[0].type=type;if(exclusive){data[0].exclusive=true}var handle=jQuery.data(elem,"handle");if(handle){val=handle.apply(elem,data)}if((!fn||(jQuery.nodeName(elem,"a")&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false){val=false}if(event){data.shift()}if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined){val=ret}}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,"a")&&type=="click")){this.triggered=true;try{elem[type]()}catch(e){}}this.triggered=false}return val},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false){val=ret}if(ret===false){event.preventDefault();event.stopPropagation()}}}return val},fix:function(event){if(event[expando]==true){return event}var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--){event[props[i]]=originalEvent[props[i]]}event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault){originalEvent.preventDefault()}originalEvent.returnValue=false};event.stopPropagation=function(){if(originalEvent.stopPropagation){originalEvent.stopPropagation()}originalEvent.cancelBubble=true};event.timeStamp=event.timeStamp||now();if(!event.target){event.target=event.srcElement||document}if(event.target.nodeType==3){event.target=event.target.parentNode}if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement}if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0)}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode)){event.which=event.charCode||event.keyCode}if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey}if(!event.which&&event.button){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)))}return event},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy},special:{ready:{setup:function(){bindReady();return},teardown:function(){return}},mouseenter:{setup:function(){if(jQuery.browser.msie){return false}jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true},teardown:function(){if(jQuery.browser.msie){return false}jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true},handler:function(event){if(withinElement(event,this)){return true}event.type="mouseenter";return jQuery.event.handle.apply(this,arguments)}},mouseleave:{setup:function(){if(jQuery.browser.msie){return false}jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true},teardown:function(){if(jQuery.browser.msie){return false}jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true},handler:function(event){if(withinElement(event,this)){return true}event.type="mouseleave";return jQuery.event.handle.apply(this,arguments)}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data)})},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments)});return this.each(function(){jQuery.event.add(this,type,one,fn&&data)})},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn)})},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn)})},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn)},toggle:function(fn){var args=arguments,i=1;while(i<args.length){jQuery.event.proxy(fn,args[i++])}return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false}))},hover:function(fnOver,fnOut){return this.bind("mouseenter",fnOver).bind("mouseleave",fnOut)},ready:function(fn){bindReady();if(jQuery.isReady){fn.call(document,jQuery)}else{jQuery.readyList.push(function(){return fn.call(this,jQuery)})}return this}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document)});jQuery.readyList=null}jQuery(document).triggerHandler("ready")}}});var readyBound=false;function bindReady(){if(readyBound){return}readyBound=true;if(document.addEventListener&&!jQuery.browser.opera){document.addEventListener("DOMContentLoaded",jQuery.ready,false)}if(jQuery.browser.msie&&window==top){(function(){if(jQuery.isReady){return}try{document.documentElement.doScroll("left")}catch(error){setTimeout(arguments.callee,0);return}jQuery.ready()})()}if(jQuery.browser.opera){document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady){return}for(var i=0;i<document.styleSheets.length;i++){if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return}}jQuery.ready()},false)}if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady){return}if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return}if(numStyles===undefined){numStyles=jQuery("style, link[rel=stylesheet]").length}if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return}jQuery.ready()})()}jQuery.event.add(window,"load",jQuery.ready)}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,change,select,submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name)}});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem){try{parent=parent.parentNode}catch(error){parent=elem}}return parent==elem};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind()});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!="string"){return this._load(url)}var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off)}callback=callback||function(){};var type="GET";if(params){if(jQuery.isFunction(params)){callback=params;params=null}else{params=jQuery.param(params);type="POST"}}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified"){self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText)}self.each(callback,[res.responseText,status,res])}});return this},serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val}}):{name:elem.name,value:val}}).get()}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f)}});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type})},getScript:function(url,callback){return jQuery.get(url,null,callback,"script")},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={}}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type})},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings)},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string"){s.data=jQuery.param(s.data)}if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre)){s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?"}}else{if(!s.data||!s.data.match(jsre)){s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?"}}s.dataType="json"}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data){s.data=(s.data+"").replace(jsre,"="+jsonp+"$1")}s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp]}catch(e){}if(head){head.removeChild(script)}}}if(s.dataType=="script"&&s.cache==null){s.cache=false}if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"")}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null}if(s.global&&!jQuery.active++){jQuery.event.trigger("ajaxStart")}var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset){script.charset=s.scriptCharset}if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script)}}}head.appendChild(script);return undefined}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username){xhr.open(type,s.url,s.async,s.username,s.password)}else{xhr.open(type,s.url,s.async)}try{if(s.data){xhr.setRequestHeader("Content-Type",s.contentType)}if(s.ifModified){xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default)}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false}if(s.global){jQuery.event.trigger("ajaxSend",[xhr,s])}var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter)}catch(e){status="parsererror"}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified")}catch(e){}if(s.ifModified&&modRes){jQuery.lastModified[s.url]=modRes}if(!jsonp){success()}}else{jQuery.handleError(s,xhr,status)}complete();if(s.async){xhr=null}}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0){setTimeout(function(){if(xhr){xhr.abort();if(!requestDone){onreadystatechange("timeout")}}},s.timeout)}}try{xhr.send(s.data)}catch(e){jQuery.handleError(s,xhr,null,e)}if(!s.async){onreadystatechange()}function success(){if(s.success){s.success(data,status)}if(s.global){jQuery.event.trigger("ajaxSuccess",[xhr,s])}}function complete(){if(s.complete){s.complete(xhr,status)}if(s.global){jQuery.event.trigger("ajaxComplete",[xhr,s])}if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop")}}return xhr},handleError:function(s,xhr,status,e){if(s.error){s.error(xhr,status,e)}if(s.global){jQuery.event.trigger("ajaxError",[xhr,s,e])}},active:0,httpSuccess:function(xhr){try{return !xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined}catch(e){}return false},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined}catch(e){}return false},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror"){throw"parsererror"}if(filter){data=filter(data,type)}if(type=="script"){jQuery.globalEval(data)}if(type=="json"){data=eval("("+data+")")}return data},param:function(a){var s=[];if(a.constructor==Array||a.jquery){jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value))})}else{for(var j in a){if(a[j]&&a[j].constructor==Array){jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this))})}else{s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]))}}}return s.join("&").replace(/%20/g,"+")}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none"){this.style.display="block"}elem.remove()}}).end()},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none"}).end()},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]()})},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback)},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback)},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback)},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback)},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback)},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback)},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1){return false}var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden){return opt.complete.call(this)}if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow}}if(opt.overflow!=null){this.style.overflow="hidden"}opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val)){e[val=="toggle"?hidden?"show":"hide":val](prop)}else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit}if(parts[1]){end=((parts[1]=="-="?-1:1)*end)+start}e.custom(start,end,unit)}else{e.custom(start,val,"")}}});return true})},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx"}if(!type||(typeof type=="string"&&!fn)){return queue(this[0],type)}return this.each(function(){if(fn.constructor==Array){queue(this,type,fn)}else{queue(this,type).push(fn);if(queue(this,type).length==1){fn.call(this)}}})},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue){this.queue([])}this.each(function(){for(var i=timers.length-1;i>=0;i--){if(timers[i].elem==this){if(gotoEnd){timers[i](true)}timers.splice(i,1)}}});if(!gotoEnd){this.dequeue()}return this}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array){q=jQuery.data(elem,type+"queue",jQuery.makeArray(array))}}return q};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length){q[0].call(this)}})};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false){jQuery(this).dequeue()}if(jQuery.isFunction(opt.old)){opt.old.call(this)}};return opt},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig){options.orig={}}}});jQuery.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width"){this.elem.style.display="block"}},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null){return this.elem[this.prop]}var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd)}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++){if(!timers[i]()){timers.splice(i--,1)}}if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null}},13)}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height"){this.elem.style[this.prop]="1px"}jQuery(this.elem).show()},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim){if(this.options.curAnim[i]!==true){done=false}}if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){this.elem.style.display="none"}if(this.options.hide||this.options.show){for(var p in this.options.curAnim){jQuery.attr(this.elem.style,p,this.options.orig[p])}}}if(done){this.options.complete.call(this.elem)}return false}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now},scrollTop:function(fx){fx.elem.scrollTop=fx.now},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now)},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem){with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop)}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2){border(offsetParent)}if(!fixed&&css(offsetParent,"position")=="fixed"){fixed=true}offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display"))){add(-parent.scrollLeft,-parent.scrollTop)}if(mozilla&&css(parent,"overflow")!="visible"){border(parent)}parent=parent.parentNode}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute")){add(-doc.body.offsetLeft,-doc.body.offsetTop)}if(fixed){add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop))}}results={top:top,left:left}}}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true))}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0}return results};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,"marginTop");offset.left-=num(this,"marginLeft");parentOffset.top+=num(offsetParent,"borderTopWidth");parentOffset.left+=num(offsetParent,"borderLeftWidth");results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left}}return results},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,"position")=="static")){offsetParent=offsetParent.offsetParent}return jQuery(offsetParent)}});jQuery.each(["Left","Top"],function(i,name){var method="scroll"+name;jQuery.fn[method]=function(val){if(!this[0]){return}return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val}):this[0]==window||this[0]==document?self[i?"pageYOffset":"pageXOffset"]||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method]}});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br)};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0)}})})();(function(d){d.fn.jqm=function(f){var e={overlay:50,overlayClass:"jqmOverlay",closeClass:"jqmClose",trigger:".jqModal",ajax:o,ajaxText:"",target:o,modal:o,toTop:o,onShow:o,onHide:o,onLoad:o};return this.each(function(){if(this._jqm){return n[this._jqm].c=d.extend({},n[this._jqm].c,f)}p++;this._jqm=p;n[p]={c:d.extend(e,d.jqm.params,f),a:o,w:d(this).addClass("jqmID"+p),s:p};if(e.trigger){d(this).jqmAddTrigger(e.trigger)}})};d.fn.jqmAddClose=function(f){return l(this,f,"jqmHide")};d.fn.jqmAddTrigger=function(f){return l(this,f,"jqmShow")};d.fn.jqmShow=function(e){return this.each(function(){d.jqm.open(this._jqm,e)})};d.fn.jqmHide=function(e){d(".rb-ContentContainer select").removeClass("hide-selects");return this.each(function(){d.jqm.close(this._jqm,e)})};d.jqm={hash:{},open:function(C,B){var q=n[C],v=q.c,m="."+v.closeClass,w=(parseInt(q.w.css("z-index"))),w=(w>0)?w:3000,f=d("<div></div>").css({height:"100%",width:"100%",position:"fixed",left:0,top:0,"z-index":w-1,opacity:v.overlay/100});if(q.a){return o}q.t=B;q.a=true;q.w.css("z-index",w);if(v.modal){if(!a[0]){k("bind")}a.push(C)}else{if(v.overlay>0){q.w.jqmAddClose(f)}else{f=o}}q.o=(f)?f.addClass(v.overlayClass).prependTo("body"):o;if(c){d("html,body").css({height:"100%",width:"100%"});if(f){f=f.css({position:"absolute"})[0];for(var x in {Top:1,Left:1}){f.style.setExpression(x.toLowerCase(),"(_=(document.documentElement.scroll"+x+" || document.body.scroll"+x+"))+'px'")}}}if(v.ajax){var e=v.target||q.w,A=v.ajax,e=(typeof e=="string")?d(e,q.w):d(e),A=(A.substr(0,1)=="@")?d(B).attr(A.substring(1)):A;e.html(v.ajaxText).load(A,function(){if(v.onLoad){v.onLoad.call(this,q)}if(m){q.w.jqmAddClose(d(m,q.w))}j(q)})}else{if(m){q.w.jqmAddClose(d(m,q.w))}}if(v.toTop&&q.o){q.w.before('<span id="jqmP'+q.w[0]._jqm+'"></span>').insertAfter(q.o)}(v.onShow)?v.onShow(q):q.w.show();j(q);return o},close:function(f){var e=n[f];if(!e.a){return o}e.a=o;if(a[0]){a.pop();if(!a[0]){k("unbind")}}if(e.c.toTop&&e.o){d("#jqmP"+e.w[0]._jqm).after(e.w).remove()}if(e.c.onHide){e.c.onHide(e)}else{e.w.hide();if(e.o){e.o.remove()}}return o},params:{}};var p=0,n=d.jqm.hash,a=[],c=d.browser.msie&&(d.browser.version=="6.0"),o=false,g=d('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0}),j=function(e){if(c){if(e.o){e.o.html('<p style="width:100%;height:100%"/>').prepend(g)}else{if(!d("iframe.jqm",e.w)[0]){e.w.prepend(g)}}}h(e)},h=function(f){try{d(":input:visible",f.w)[0].focus()}catch(e){}},k=function(e){d()[e]("keypress",b)[e]("keydown",b)[e]("mousedown",b)},b=function(q){var f=n[a[a.length-1]],m=(!d(q.target).parents(".jqmID"+f.s)[0]);if(m){h(f)}return !m},l=function(e,f,m){return e.each(function(){var q=this._jqm;d(f).each(function(){if(!this[m]){this[m]=[];d(this).click(function(){for(var r in {jqmShow:1,jqmHide:1}){for(var t in this[r]){if(n[this[r][t]]){n[this[r][t]].w[r](this)}}}return o})}this[m].push(q)})})}})(jQuery);
/*
 * Blast Mojo Framework
 *
 * Copyright (c) 2009, Blast Radius, Inc.
 * All rights reserved.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
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(j){var f=j.getEvent();var c=38;var h=40;var g=9;var b=j.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(f&&f.which){f=f;characterCode=f.which}else{f=event;characterCode=f.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 h:this.suggestionIndex++;if(this.suggestionIndex>=a){this.suggestionIndex=0}this.suggestion=b[this.suggestionIndex];this.onNav();break}}},onNav:function(){}});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.behavior.ClearFormBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.ClearFormBehavior",mojo.command.Behavior,{execute:function(a){var b=a.getParams();var j=a.contextObj;var k=false;var c=false;var e=false;if(!b){b={}}if(b.noload!=null){k=b.noload}if(b.formSet!=null){j=b.formSet}if(b.clearHidden!=null){c=b.clearHidden}if(b.clearImages!=null){e=b.clearImages}if(!k){var f=mojo.query("input",j);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",j);for(var d=0;d<h.length;d++){h[d].value=""}var g=mojo.query("select",j);for(var d=0;d<g.length;d++){g[d].selectedIndex=0}}}});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)-16)+"px";a.style.top=((b.h/2)-16)+"px";this._box.appendChild(a)}else{var b={h:0,w:0};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)-16)+"px";a.style.top=((b.h/2)-16)+"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 p=a.eventObj,f=g.element,h=dojo.coords(f),q=g.draggable,c=g.container,m=dojo.coords(c),d=g.orientation,k=g.tickSize,n,j,b,l;if(d=="vertical"){n="y";j="h";b="top";if(typeof g.position!="undefined"&&!isNaN(parseInt(g.position))){l=g.position+m[n]}else{l=p.clientY}}else{n="x";j="w";b="left";if(typeof g.position!="undefined"&&!isNaN(parseInt(g.position))){l=g.position+m[n]}else{l=p.clientX}}var o=m[n]+m[j]-h[j];if(l>=o){f.style[b]=(m[j]-h[j]-3)+"px"}else{if(l<=m[n]+1){f.style[b]=0+"px"}else{if(k){var e=(l-m[n]);this.selectedIndex=Math.round(e/k);f.style[b]=this.selectedIndex*k+"px"}else{f.style[b]=(l-m[n])+"px"}}}}});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.TabKeyBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.TabKeyBehavior",mojo.command.Behavior,{execute:function(c){var a=c.eventObj;var b=(a.which)?a.which:a.keyCode;if(b==9){this.onResponse();return false}else{return true}},onResponse:function(){}});dojo.provide("stdlib.behavior.IEPngFixBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.IEPngFixBehavior",mojo.command.Behavior,{execute:function(b){var a=b.getParams().selector;if(!a){throw new Error("stdlib.behavior.IEPngFixBehavior - parameter 'selector' cannot be empty.");return false}if(dojo.isIE==6){DD_belatedPNG.fix(a)}}});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,j=c.year,m=1920,f=c.year+50;var k=mojo.queryFirst("select.date-year",c.target);var l=mojo.queryFirst("select.date-month",c.target);k.innerHTML="";l.innerHTML="";for(var d=m;d<f;d++){var e=new Option(d.toString(),d);if(d==j){e.selected=true}k.options.add(e)}for(var d=0,h=this.months.length;d<h;d++){var n=this.months[d];var g=(d<=8)?"0"+(d+1):d+1;var e=new Option(n,g);if(d==b){e.selected=true}l.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.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("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.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.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.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)}a.form.submit()}}});dojo.provide("stdlib.behavior.SwfObjectBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.SwfObjectBehavior",mojo.command.Behavior,{execute:function(c){var b=c.getParams();if(!deconcept.SWFObject){throw new Error("ERROR stdlib.behavior.SwfObjectBehavior.execute - SWFObject library cannot be found")}if(!b.elementId){throw new Error("ERROR stdlib.behavior.SwfObjectBehavior.execute - elementId is not set")}if(!b.src){throw new Error("ERROR stdlib.behavior.SwfObjectBehavior.execute - src is not set")}if(!b.containerId){throw new Error("ERROR stdlib.behavior.SwfObjectBehavior.execute - containerId is not set")}if(!b.width||!b.height){throw new Error("ERROR stdlib.behavior.SwfObjectBehavior.execute - width and/or height is not set")}if(!b.contentName){b.contentName="flash_module"}if(!b.version){b.version=9}if(!b.defaultBackground){b.defaultBackground="#fff"}if(!b.wmode){b.wmode="window"}var a=new SWFObject(b.src,b.contentName,b.width,b.height,b.version,b.defaultBackground);if(b.expressInstallSrc){a.useExpressInstall(b.expressInstallSrc)}a.addParam("base",b.basePath);a.addParam("wmode",b.wmode);a.addParam("allowFullScreen",b.allowFullScreen);a.addParam("allowScriptAccess",b.allowScriptAccess);a.addParam("flashvars",b.flashvars);a.write(b.elementId)}});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(g){var c={};var e;if(g.getParams().width!=null){c.width=g.getParams().width}if(g.getParams().height!=null){c.height=g.getParams().height}if(dojo.isIE&&c.height==0){c.height=1}if(g.getParams().x!=null){c.left=g.getParams().x}if(g.getParams().y!=null){c.top=g.getParams().y}if(g.getParams().duration!=null){e=g.getParams().duration}else{e="fast"}var d=g.getParams().element;if(!dojo.isArray(d)){d=[d]}var a=d.length;var f=this;for(var b=0;b<a;b++){if(d[b]){if(d[b].style.height=="auto"&&c.height!=null){d[b].style.height=dojo.coords(d[b]).h+"px"}jQuery(d[b]).animate(c,e,"swing",function(){f.onComplete()})}}}});dojo.provide("stdlib.behavior.UpdateCssClassBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.UpdateCssClassBehavior",mojo.command.Behavior,{execute:function(h){if(!h.paramsObj){return}var e;var f=h.paramsObj.element;var g=h.paramsObj.action;var b=h.paramsObj.cssClass;if(!f){return}else{if(typeof f=="object"){if(dojo.isArray(f)&&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(j){if(!j.constructor||j.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(w){var f;var c=new Array();var b=new Array();var n=["INPUT","SELECT","TEXTAREA"];var v=w.getParams();if(!v){v={}}var l=v.fields;if(v.formId!=null){f=mojo.queryFirst("#"+v.formId)}if(v.formObj!=null){f=v.formObj}if(f){for(var t=0,q=n.length;t<q;t++){var d=mojo.query(n[t],f);for(var r=0,u=d.length;r<u;r++){c.push(d[r])}}for(var t=0,q=l.length;t<q;t++){var e=l[t].name;var x=l[t].value;for(var r=0,u=c.length;r<u;r++){var m=false;if(c[r].tagName=="SELECT"){if(c[r].name==e){for(var p=0,a=c[r].options.length;p<a;p++){var h=c[r].options[p];if(h.value==x){c[r].selectedIndex=p}}}}else{if(c[r].tagName=="TEXTAREA"){if(c[r].name==e){if(c[r].value==x){m=true}if(c[r].innerHTML==x){m=true}c[r].value=x;c[r].innerHTML=x}}else{if(c[r].tagName=="INPUT"){if(c[r].name==e){if((c[r].type=="radio")||(c[r].type=="checkbox")){if(c[r].value==x){c[r].checked="checked"}else{c[r].checked=""}}else{if((c[r].type=="text")||(c[r].type=="password")||(c[r].type=="hidden")){if(c[r].value!=x){m=true}c[r].value=x}}}}}}if(m){if(c[r].fireEvent){c[r].fireEvent("onchange")}if(document.createEvent){var g=document.createEvent("HTMLEvents");if(g.initEvent){g.initEvent("change",true,true)}if(c[r].dispatchEvent){c[r].dispatchEvent(g)}}}}}}}});dojo.provide("stdlib.behavior.dialog.DialogBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.dialog.DialogBehavior",mojo.command.Behavior,{onComplete:function(){},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";d.style.display="block";document.body.appendChild(d)}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 j=mojo.queryFirst(e.elTitle,e.elContainer);var c=this;if(e.enabled&&e.width&&e.height){j.innerHTML=e.title;if(!e.id){dojo.xhrGet({url:e.href,load:function(k){mojo.Model.set("mojo.dialog.content",k);c.onComplete()}})}else{var f=mojo.queryFirst(e.id);mojo.Model.set("mojo.dialog.content",data);c.onComplete()}if(dojo.isFF&&(navigator.appVersion.indexOf("Mac")!=-1)){this.hideFlash(g)}b.style.width=e.width+"px";b.style.height=e.height+"px";d.style.display="block";b.style.display="block";if(dojo.isIE){mojo.queryFirst("html").style.overflowX="hidden"}else{document.body.style.overflowX="hidden"}}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"}}},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 l=0;if(typeof window.innerWidth!="undefined"){d.w=window.innerWidth;d.h=window.innerHeight;l=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;l=document.documentElement.scrollTop+document.documentElement.clientHeight}else{d.w=document.body.clientWidth;d.h=document.body.clientHeight;l=document.body.scrollTop+document.body.clientHeight}}c.style.width=d.w+"px";c.style.height=(dojo.coords(mojo.queryFirst("body"),true)).h+"px";var j=dojo.coords(b,true);var k=dojo.coords(h,true);var e=Math.round(l-(d.h/2)-(j.h/2));var g=Math.round((d.w/2)-(j.w/2));b.style.top=e+"px";b.style.left=g+"px"}});dojo.provide("stdlib.command.AutoSuggest.GetSuggestionsCommand");dojo.require("mojo.command.Command");dojo.require("mojo.Model");dojo.declare("stdlib.command.AutoSuggest.GetSuggestionsCommand",mojo.command.Command,{query:null,_clearTimeout:null,_lastValue:null,execute:function(requestObj){if(requestObj.getParams().query!=this.query){this.query=requestObj.getParams().query.replace(/\s*$/g,"");clearTimeout(this._clearTimeout);if(this.query.length>0){var thisObj=this;dojo.require(requestObj.getParams().serviceLocator);this._clearTimeout=setTimeout(function(){if(thisObj._lastValue!=thisObj.query){thisObj._lastValue=thisObj.query;var locator=eval(requestObj.getParams().serviceLocator);locator.getInstance().getService(requestObj.getParams().serviceName).invoke({query:thisObj.query},thisObj)}},400)}else{mojo.Model.remove(requestObj.getParams().model)}}},onResponse:function(data){var modelPath=(this.getRequest().getParams().modelPath)?"."+this.getRequest().getParams().modelPath:"";mojo.Model.set(this.getRequest().getParams().model,eval("data"+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.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.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 j;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){j=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(j==null||typeof j=="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,j)}else{if(d==b.length-1){mojo.Model.add(c,j)}else{b.splice(d,0,j);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=parseInt(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 l;var k;var d=true;var f;var j=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){k=h.value}if(h.key!=null){l=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((l==null||typeof l!="string"||l=="")||(k==null||typeof k=="undefined"||k=="")){if(l==null||typeof l=="undefined"){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - either [index] parameter or [key and value] parameters are required")}else{if(l==""){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - key parameter must be a non-empty string")}else{if(typeof l!="string"){throw new Error("ERROR stdlib.command.RemoveFromModelCommand - key parameter must be type String")}else{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((l!=null)&&(typeof l!="undefined")&&(l=="")){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((l!=null)&&(typeof l!="undefined")&&(l!="")&&(k!=null)&&(typeof k!="undefined")&&(k!="")){if(d){for(i=0;i<b.length;i++){if(typeof b[i][l]!="undefined"){if(b[i][l]==k){b.splice(i,1);mojo.Model.set(e,b);break}}}}else{for(i=b.length-1;i>=0;i--){if(typeof b[i][l]!="undefined"){if(b[i][l]==k){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(){if(this._targetElement.style.display!="none"){this._targetElement.style.display="none"}},onError:function(){if(this._targetElement.style.display!="block"){this._targetElement.style.display="block"}}});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.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(!g.properties){return}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()}for(key in c){s[key]=c[key]}}}}}});dojo.provide("stdlib.controller.AccordianController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.AccordianController",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 c=mojo.query("> .accordian-panel",this.getContextElement());var a=mojo.query("> .accordian-panel > .accordian",this.getContextElement());var b=mojo.query("> .accordian-panel > .accordian-content",this.getContextElement());this.addObserver("> .accordian-panel > .accordian",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 > .accordian-content",f)}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(e,d){return{element:c,action:"remove",cssClass:"open"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","UpdateClass",function(e,d){return{element:c[d.getValue()],action:"add",cssClass:"open"}});this.addObserver(this.getConfig("params").selectedIndex,"onChange","Tween",function(f,e,d){var g=b[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.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{query: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()}},addObservers:function(){this.addObserver(this,"onInit","PopulateDate",function(b,a){return{target:this.getContextElement(),month:this.getController().getValue("date").getMonth(),year:this.getController().getValue("date").getFullYear()}});this.addObserver(this.getCommand("PopulateDate"),"execute","PopulateDays",function(b,a){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}});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){return{target:this.getContextElement(),month:this.getController().getValue("date").getMonth(),year:this.getController().getValue("date").getFullYear()}})},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");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"),"execute","Position");this.addObserver(window,"onresize","Position");this.addObserver(window,"onscroll","Position");this.addObserver(mojo.queryFirst(".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:false,defaultValue:"stdlib.myModel",type:String},formId:{required:true,defaultValue:"#form",type:String},submitButtonId:{required:true,defaultValue:"#submit-form",type:String},cancelButtonId:{required:false,defaultValue:"#cancel-form",type:String}},addObservers:function(){var b=this.getValue("formRules"),c=this.getValue("modelErrors"),a=this.getValue("formId");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")),"onResponse","ClearModel",function(){return{model:c}});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","ClearForm",function(e,d){return{formSet:mojo.queryFirst(this.getController().getValue("formId"),e)}})},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("ClearModel","stdlib.command.ClearModelCommand");this.addCommand("Redirect","stdlib.behavior.RedirectBehavior");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.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.controller.SliderController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.SliderController",mojo.controller.Controller,{params:{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{formObj:b,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.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(m,l){if(this.getController().getValue("pageIsLoaded")){return false}this.getController().setValue("pageIsLoaded",true)});var k=this.getMetricsMap().links;for(var e=0,h=k.length;e<h;e++){var a=k[e];var c=null,b=null;if(!a.command&&!a.controller){c=a.pattern;b=a.event;this.addObserver(c,b,"TrackLink",function(l){return function(n,m){var o=null;if(typeof(l.properties)=="function"){o=l.properties(m)}else{o=l.properties}if(!o){return false}return{transactionType:"customLink",properties:o}}}(a))}else{var f=mojo.query(a.pattern);if(!f){continue}else{if(!dojo.isArray(f)){f=[f]}for(var j=0,g=f.length;j<g;j++){var d=f[j].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(l){return function(n,m){var o=null;if(typeof(l.properties)=="function"){o=l.properties(m)}else{o=l.properties}if(!o){return false}return{transactionType:"customLink",properties:o}}}(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.FilterDropdownBehavior");dojo.require("mojo.command.Behavior");dojo.declare("stdlib.behavior.FilterDropdownBehavior",mojo.command.Behavior,{_optionsStorage:{},execute:function(h){var e=h.getParams();var g=e.selectObj;var f=e.filterClass;var b=e.minoption;if(e.minoption=="undefined"){b=0}else{b=-1}if(!g){return}var d=(g.name||g.id);if(typeof(this._optionsStorage[d])=="undefined"){this._optionsStorage[d]=[];for(var a=0;a<g.options.length;a++){this._optionsStorage[d][a]=g.options[a]}}for(var a=g.options.length-1;a>b;a--){g.removeChild(g.options[a])}for(var a=0;a<this._optionsStorage[d].length;a++){var c=this._optionsStorage[d][a];if(c.className.indexOf(f)>=0){g.appendChild(c)}}if(g.options.length>0&&f.length>0){g.selectedIndex=0}}});dojo.provide("stdlib.controller.TemplateController");dojo.require("mojo.controller.Controller");dojo.declare("stdlib.controller.TemplateController",mojo.controller.Controller,{modelSource:"",_modelSourceHandle:null,templateObj:null,escapeQuotes:false,escapeHtml:false,onInit:function(){var a=this.getContextElement();var b=this._normalize(a.innerHTML);this.templateObj=TrimPath.parseTemplate(b);dojo.style(this.getContextElement(),"display","none");this.setModelSource(a.getAttribute("modelsource"))},getModelSource:function(){if(!this.modelSource){return""}return this.modelSource},setModelSource:function(a){if(this._modelSourceHandle){mojo.Model.removeObserver(this._modelSourceHandle)}this.modelSource=a;this._modelSourceHandle=mojo.Model.addObserver(this.modelSource,this,"onModelUpdate");this.onModelUpdate()},onModelUpdate:function(){this._bindToModel()},_bindToModel:function(){var h={escapeQuotes:function(l){l=l.toString();l=l.replace(/\"/g,"&#34;");l=l.replace(/\'/g,"&#39;");return l}};var e=this.getModelSource();if(e.length>0&&mojo.Model.contains(e)&&this.getContextElement()){var j=mojo.Model.get(e);var k=new Array();if(!dojo.isArray(j)){j=[j]}var c=j.length;for(var d=0,f=c;d<f;d++){if(j[d]){if(typeof(j[d])!="object"){var b=j[d].toString();j[d]=new Object();j[d].data=b}j[d].currentIndex=d;j[d].totalLength=f;if(this.escapeQuotes){j[d]._MODIFIERS=h;j[d].content=h.escapeQuotes(j[d].content)}k.push(this.templateObj.process(j[d]))}}var a=this.getContextElement();var g=k.join("");a.innerHTML="";a.innerHTML=g;dojo.style(this.getContextElement(),"display","block")}else{dojo.style(this.getContextElement(),"display","none")}},_normalize:function(e){var d=/[\!|\$]\{[^\}]*\}/g;var b=e.match(d);var f=e.split(d);var j=new Array();var a=0;if(b){a=b.length}for(var c=0;c<a;c++){j.push(f[c]);var h="$"+b[c].substring(1);var g="";if(this.escapeHtml){g+="|escape"}if(this.escapeQuotes){g+="|escapeQuotes"}h=h.substring(0,h.length-1)+g+"}";j.push(h)}j.push(f[a]);return j.join("")},addObservers:function(){},addCommands:function(){},addIntercepts:function(){}});dojo.provide("nicemacrosbro.SiteMap");nicemacrosbro.SiteMap=[{pattern:"#dialog-add-macro",controllers:[{controller:"nicemacrosbro.controller.macro.AddMacroController"}]},{pattern:"#accordion-add-macro",controllers:[{controller:"stdlib.controller.AccordianController",params:{selectedIndex:0}}]},{pattern:"#rate-macro",controllers:[{controller:"nicemacrosbro.controller.macro.RateMacroController"}]},{pattern:"body",controllers:[{controller:"nicemacrosbro.controller.DialogController"}]},{pattern:".prefilled",controllers:[{controller:"nicemacrosbro.controller.TextInputPromptController"}]},{pattern:".mojoTemplate",controllers:[{controller:"stdlib.controller.TemplateController"}]}];dojo.provide("nicemacrosbro.behavior.BasicTweenBehavior");dojo.require("mojo.command.Behavior");dojo.declare("nicemacrosbro.behavior.BasicTweenBehavior",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(h.getParams().x!=null){c.left=h.getParams().x}if(h.getParams().y!=null){c.top=h.getParams().y}if(h.getParams().opacity!=null){c.opacity=h.getParams().opacity}if(h.getParams().color!=null){c.color=h.getParams().color}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]){var d=new Fx.Morph(e[b],{duration:f,transition:Fx.Transitions.Expo.easeInOut,onStart:function(){g.onStart()},onComplete:function(){g.onComplete()}});if(g._effect){g._effect.cancel()}g._effect=d;d.start(c)}}}});dojo.provide("nicemacrosbro.behavior.DialogBehavior");dojo.require("mojo.command.Behavior");dojo.declare("nicemacrosbro.behavior.DialogBehavior",mojo.command.Behavior,{execute:function(b){var a=b.getParams();if(!a){return}jQuery(a.target||"#dialog").jqm({modal:true,ajax:a.href,content:a.content||"#dialog-content",trigger:a.trigger||"a.rb-Dialog-Link",onLoad:function(c){mojo.Messaging.publish("nicemacrosbro.dialog.onLoad");if(a.notmap!=null){}else{mojo.controller.Map.mapControllers(mojo.queryFirst("#dialog"))}}});if(a.show){mojo.Messaging.publish("nicemacrosbro.dialog.onShow");jQuery(a.target||"#dialog").jqmShow();if(a.snapToTop){jQuery("#dialog").css("top","0%")}if(a.timer){setTimeout(function(){mojo.Messaging.publish("nicemacrosbro.dialog.onHide");dojo.byId("disablebox").style.display="none";jQuery(a.target||"#nicemacrosbro-dialog").jqmHide()},a.timer)}}else{mojo.Messaging.publish("nicemacrosbro.dialog.onHide");jQuery(a.target||"#dialog").jqmHide();dojo.byId("disablebox").style.display="none"}}});dojo.provide("nicemacrosbro.behavior.JQueryEffectsBehavior");dojo.declare("nicemacrosbro.behavior.JQueryEffectsBehavior",mojo.command.Behavior,{execute:function(f){var e=f.getParams();if(!e||!jQuery){return}var c=(e.action)?e.action:false;var d=(e.target)?jQuery(e.target)||e.target:false;var b=(e.speed)?e.speed:"slow";var a=(e.fxparams)?e.fxparams:{};if(!d){return}switch(c){default:jQuery(d).animate(a,b);break;case"show":if(e.onComplete){jQuery(d).show(b,e.onComplete)}else{jQuery(d).show(b)}break;case"hide":if(e.onComplete){jQuery(d).hide(b,e.onComplete)}else{jQuery(d).hide(b)}break;case"toggle":if(e.onComplete){jQuery(d).toggle(b,e.onComplete)}else{jQuery(d).toggle(b)}break;case"slideDown":if(e.onComplete){jQuery(d).slideDown(b,e.onComplete)}else{jQuery(d).slideDown(b)}break;case"slideUp":if(e.onComplete){jQuery(d).slideUp(b,e.onComplete)}else{jQuery(d).slideUp(b)}break;case"slideToggle":if(e.onComplete){jQuery(d).slideToggle(b,e.onComplete)}else{jQuery(d).slideToggle(b)}break;case"fadeIn":if(e.onComplete){jQuery(d).fadeIn(b,e.onComplete)}else{jQuery(d).fadeIn(b)}break;case"fadeOut":if(e.onComplete){jQuery(d).fadeOut(b,e.onComplete)}else{jQuery(d).fadeOut(b)}break}}});dojo.provide("nicemacrosbro.behavior.UIBlockBehavior");dojo.declare("nicemacrosbro.behavior.UIBlockBehavior",mojo.command.Behavior,{_box:null,execute:function(d){var c=d.getParams();if(!this._box){this._box=mojo.queryFirst("#ui-blocker");if(!this._box){this._box=document.createElement("div");this._box.id="ui-blocker";document.body.appendChild(this._box);this._box.style.position="absolute"}}var a=jQuery(c.target,d.getContextElement);if(c.show){if(d.getParams().target){var b=a.offset();this._box.style.top=b.top+"px";this._box.style.left=b.left+"px";this._box.style.width=a.outerWidth()+"px";this._box.style.height=a.outerHeight()+"px"}else{var b={h:0,w:0};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%"}this._box.style.zIndex="9999";this._box.style.display="block"}else{this._box.style.display="none"}}});dojo.provide("nicemacrosbro.behavior.UpdateOverLabelBehavior");dojo.declare("nicemacrosbro.behavior.UpdateOverLabelBehavior",mojo.command.Command,{execute:function(f){var a=f.getContextElement();var e=mojo.queryFirst("label",a);var c=e.innerText||e.textContent;var d=mojo.query("input",a)[0];var b=f.paramsObj.focusField||false;if((d.value!=="")||b){if(d.value==c){jQuery(d).val("")}}else{jQuery(d).val(c)}if(b){$(d).focus()}}});dojo.provide("nicemacrosbro.command.UpdateControllerParamCommand");dojo.require("mojo.command.Command");dojo.declare("nicemacrosbro.command.UpdateControllerParamCommand",mojo.command.Command,{execute:function(h){var g;var d;var e;var c;var f=h.getParams();if(f){if(f.element!=null){g=f.element}if(f.control!=null){d=f.control}if(f.params!=null){e=f.params}if(f.value!=null){c=f.value}__suppressOnChangeCallback=f.suppressOnChangeCallback}try{if((e!=null)&&(c!=null)){var a;if(g){a=g.mojoControllers[d||h.getController().declaredClass]}else{if(d&&h.getController().declaredClass!=d){a=h.getController().getContextController(d)}else{a=h.getController()}}if(a){a.getConfig("params")[e].setValue(c,__suppressOnChangeCallback)}}}catch(b){}},onResponse:function(){},onError:function(){}});dojo.provide("nicemacrosbro.command.macro.RateMacroCommand");dojo.require("nicemacrosbro.service.Locator");dojo.declare("nicemacrosbro.command.macro.RateMacroCommand",mojo.command.Command,{execute:function(a){this._container=a.getContextElement();nicemacrosbro.service.Locator.getInstance().getService("RateMacro").invoke(a.getParams(),this)},onResponse:function(a){mojo.Model.set("macro.rating",a)},onError:function(){}});dojo.provide("nicemacrosbro.command.macro.SaveMacroCommand");dojo.require("nicemacrosbro.service.Locator");dojo.declare("nicemacrosbro.command.macro.SaveMacroCommand",mojo.command.Command,{_container:null,execute:function(b){var a=b.getParams();this._container=b.getContextElement();nicemacrosbro.service.Locator.getInstance().getService("SaveMacro").invoke(b.getParams(),this)},onResponse:function(a){mojo.queryFirst(".success",this._container).style.display="block";mojo.queryFirst("#macro-id").href=mojo.queryFirst("#macro-id").href+a.macroId},onError:function(){}});dojo.provide("nicemacrosbro.controller.ButtonController");dojo.declare("nicemacrosbro.controller.ButtonController",mojo.controller.Controller,{addObservers:function(){this.addObserver(this.getContextElement(),"onclick","UIBlock",function(b,a){return{show:true,target:this.getController().getContextElement()}})},addCommands:function(){this.addCommand("UIBlock","nicemacrosbro.behavior.UIBlockBehavior")},addIntercepts:function(){}});dojo.provide("nicemacrosbro.controller.DialogController");dojo.declare("nicemacrosbro.controller.DialogController",mojo.controller.Controller,{addObservers:function(){this.addObserver(".jqmClose","onclick","Dialog",{show:false});this.addObserver(".jqmCancel","onclick","Dialog",{show:false});this.addObserver(mojo.Messaging.getTopic("nicemacrosbro.dialog.onShow"),"onPublish","DisableBox",function(b,a){return{show:true,target:mojo.queryFirst("body")}});this.addObserver(mojo.Messaging.getTopic("nicemacrosbro.dialog.onLoad"),"onPublish","DisableBox",function(b,a){return{show:false,target:mojo.queryFirst("body")}});this.addObserver(mojo.Messaging.getTopic("nicemacrosbro.dialog.errors.generic"),"onPublish","Dialog",function(b,a){return{show:true,href:"/api/generic-error/error"}});this.addObserver("span.btn-add-macro","onclick","Dialog",function(b,a){return{show:true,href:"/api/macro/add"}})},addCommands:function(){this.addCommand("Messaging","stdlib.behavior.MessagingBehavior");this.addCommand("Dialog","nicemacrosbro.behavior.DialogBehavior");this.addCommand("DisableBox","stdlib.behavior.DisableBoxBehavior")},addIntercepts:function(){}});dojo.provide("nicemacrosbro.controller.TextInputPromptController");dojo.declare("nicemacrosbro.controller.TextInputPromptController",mojo.controller.Controller,{addObservers:function(){this.addObserver(this,"onInit","UpdateOverlabel",function(){return{label:mojo.queryFirst(".overlabel",this.getController().getContextElement()),focusField:false}});this.addObserver("input.promptable","onfocus","UpdateOverlabel",function(){return{label:mojo.queryFirst(".overlabel",this.getController().getContextElement()),focusField:true}});this.addObserver("input.promptable","onblur","UpdateOverlabel",function(){return{label:mojo.queryFirst(".overlabel",this.getController().getContextElement()),focusField:false}});this.addObserver("input.promptable","onclick","UpdateOverlabel",{focusField:true});this.addObserver("textarea.promptable","onclick","UpdateOverlabel",{focusField:true})},addCommands:function(){this.addCommand("UpdateOverlabel","nicemacrosbro.behavior.UpdateOverLabelBehavior")},addIntercepts:function(){}});dojo.provide("nicemacrosbro.controller.macro.AddMacroController");dojo.declare("nicemacrosbro.controller.macro.AddMacroController",mojo.controller.Controller,{addObservers:function(){this.addObserver(".btn-save","onclick","SaveMacro",function(b,a){return{macroName:mojo.queryFirst("#macroName",b).value,macroDescription:mojo.queryFirst("#macroDescription",b).value,macroContent:mojo.queryFirst("#macroContent",b).value,macroRemovalKey:mojo.queryFirst("#macroRemovalKey",b).value,macroClassId:function(){return jQuery("input:radio:checked").val()}()}});this.addObserver(this.getCommand("ValidateRules"),"onResponse","DisableBox",{show:true,target:mojo.queryFirst("#dialog-add-macro")});this.addObserver(this.getCommand("ValidateRules"),"onError","DisableBox",{show:false});this.addObserver(this.getCommand("SaveMacro"),"onResponse","DisableBox",{show:false});this.addObserver("input","onkeyup","TabKey");this.addObserver(this.getCommand("TabKey"),"onResponse","UpdateControllerParam",function(c,b){c=mojo.queryFirst("#accordion-add-macro");var a=c.mojoControllers["stdlib.controller.AccordianController"].getValue("selectedIndex");return{control:"stdlib.controller.AccordianController",params:"selectedIndex",value:a+1,element:c}});this.addObserver(this.getCommand("SaveMacro"),"onResponse","UpdateCssClass",function(b,a){return{element:mojo.queryFirst(".btn-save",b),action:"add",cssClass:"hidden"}});this.addObserver(this.getCommand("SaveMacro"),"execute","UpdateControllerParam",function(b,a){return{control:"stdlib.controller.AccordianController",params:"selectedIndex",value:-1,element:mojo.queryFirst("#accordion-add-macro")}})},addCommands:function(){this.addCommand("TabKey","stdlib.behavior.TabKeyBehavior");this.addCommand("SaveMacro","nicemacrosbro.command.macro.SaveMacroCommand");this.addCommand("Messaging","stdlib.behavior.MessagingBehavior");this.addCommand("UpdateCssClass","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("UpdateControllerParam","stdlib.command.UpdateControllerParamCommand");this.addCommand("DisableBox","stdlib.behavior.DisableBoxBehavior");this.addCommand("ValidateRules","stdlib.command.ValidateRulesCommand")},addIntercepts:function(){this.addIntercept("around","SaveMacro","ValidateRules",function(b,a){return{formSet:b,rules:"nicemacrosbro.rules.MacroRules",targetElement:mojo.queryFirst(".errors",b)}})}});dojo.provide("nicemacrosbro.controller.macro.RateMacroController");dojo.declare("nicemacrosbro.controller.macro.RateMacroController",mojo.controller.Controller,{addObservers:function(){this.addObserver(".btn-rate-macro","onclick","RateMacro",function(b,a){return{macroId:mojo.queryFirst("#macroId").value,macroRatingValue:a.getAttribute("ref")}});this.addObserver(".btn-rate-macro","onclick","Effects",function(b,a){return{target:mojo.query(".button",this.getController().getContextElement()),action:"fadeOut"}});this.addObserver(this.getCommand("RateMacro"),"onResponse","Effects",function(b,a){return{target:mojo.queryFirst(".success",this.getController().getContextElement()),action:"fadeIn"}})},addCommands:function(){this.addCommand("RateMacro","nicemacrosbro.command.macro.RateMacroCommand");this.addCommand("Tween","stdlib.behavior.TweenBehavior");this.addCommand("UpdateCss","stdlib.behavior.UpdateCssClassBehavior");this.addCommand("Effects","nicemacrosbro.behavior.JQueryEffectsBehavior")},addIntercepts:function(){}});dojo.provide("nicemacrosbro.rules.MacroRules");dojo.require("mojo.helper.Validation");var validate=mojo.helper.Validation.getInstance();nicemacrosbro.rules.MacroRules={macroName:[{errorMsg:"Name is required.",rule:validate.isRequired}],macroDescription:[{errorMsg:"Description is a required field.",rule:validate.isRequired}],macroContent:[{errorMsg:"Code is a required field.",rule:validate.isRequired}],macroClassId:[{errorMsg:"Category/class is a required field.",rule:validate.isRequired}]};dojo.registerModulePath("mojo","../src");dojo.registerModulePath("nicemacrosbro","../nicemacrosbro");dojo.registerModulePath("stdlib","../stdlib");dojo.registerModulePath("extLib","../lib");dojo.require("mojo.controller.Map");dojo.require("nicemacrosbro.SiteMap");var init=function(){var a=mojo.controller.Map.getInstance();a.setSiteMap(nicemacrosbro.SiteMap);a.mapControllers(window.location.href)};dojo.addOnLoad(init);
