/**
 * dojo.js
 */
(function(){var _1=null;if((_1||(typeof djConfig!="undefined"&&djConfig.scopeMap))&&(typeof window!="undefined")){var _2="",_3="",_4="",_5={},_6={};_1=_1||djConfig.scopeMap;for(var i=0;i<_1.length;i++){var _7=_1[i];_2+="var "+_7[0]+" = {}; "+_7[1]+" = "+_7[0]+";"+_7[1]+"._scopeName = '"+_7[1]+"';";_3+=(i==0?"":",")+_7[0];_4+=(i==0?"":",")+_7[1];_5[_7[0]]=_7[1];_6[_7[1]]=_7[0];}eval(_2+"dojo._scopeArgs = ["+_4+"];");dojo._scopePrefixArgs=_3;dojo._scopePrefix="(function("+_3+"){";dojo._scopeSuffix="})("+_4+")";dojo._scopeMap=_5;dojo._scopeMapRev=_6;}(function(){if(typeof this["loadFirebugConsole"]=="function"){this["loadFirebugConsole"]();}else{this.console=this.console||{};var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var i=0,tn;while((tn=cn[i++])){if(!console[tn]){(function(){var _8=tn+"";console[_8]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(_8+":");console["log"](a.join(" "));}:function(){};console[_8]._fake=true;})();}}}if(typeof dojo=="undefined"){dojo={_scopeName:"dojo",_scopePrefix:"",_scopePrefixArgs:"",_scopeSuffix:"",_scopeMap:{},_scopeMapRev:{}};}var d=dojo;if(typeof dijit=="undefined"){dijit={_scopeName:"dijit"};}if(typeof dojox=="undefined"){dojox={_scopeName:"dojox"};}if(!d._scopeArgs){d._scopeArgs=[dojo,dijit,dojox];}d.global=this;d.config={isDebug:false,debugAtAllCosts:false};if(typeof djConfig!="undefined"){for(var _9 in djConfig){d.config[_9]=djConfig[_9];}}dojo.locale=d.config.locale;var _a="$Rev: 21254 $".match(/\d+/);dojo.version={major:1,minor:4,patch:1,flag:"",revision:_a?+_a[0]:NaN,toString:function(){with(d.version){return major+"."+minor+"."+patch+flag+" ("+revision+")";}}};if(typeof OpenAjax!="undefined"){OpenAjax.hub.registerLibrary(dojo._scopeName,"http://dojotoolkit.org",d.version.toString());}var _b,_c,_d={};for(var i in {toString:1}){_b=[];break;}dojo._extraNames=_b=_b||["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"];_c=_b.length;dojo._mixin=function(_e,_f){var _10,s,i;for(_10 in _f){s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&&(!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}if(_c&&_f){for(i=0;i<_c;++i){_10=_b[i];s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&&(!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}}return _e;};dojo.mixin=function(obj,_11){if(!obj){obj={};}for(var i=1,l=arguments.length;i<l;i++){d._mixin(obj,arguments[i]);}return obj;};dojo._getProp=function(_12,_13,_14){var obj=_14||d.global;for(var i=0,p;obj&&(p=_12[i]);i++){if(i==0&&d._scopeMap[p]){p=d._scopeMap[p];}obj=(p in obj?obj[p]:(_13?obj[p]={}:undefined));}return obj;};dojo.setObject=function(_15,_16,_17){var _18=_15.split("."),p=_18.pop(),obj=d._getProp(_18,true,_17);return obj&&p?(obj[p]=_16):undefined;};dojo.getObject=function(_19,_1a,_1b){return d._getProp(_19.split("."),_1a,_1b);};dojo.exists=function(_1c,obj){return !!d.getObject(_1c,false,obj);};dojo["eval"]=function(_1d){return d.global.eval?d.global.eval(_1d):eval(_1d);};d.deprecated=d.experimental=function(){};})();(function(){var d=dojo;d.mixin(d,{_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:"dojo",value:"."},doh:{name:"doh",value:"../util/doh"},tests:{name:"tests",value:"tests"}},_moduleHasPrefix:function(_1e){var mp=d._modulePrefixes;return !!(mp[_1e]&&mp[_1e].value);},_getModulePrefix:function(_1f){var mp=d._modulePrefixes;if(d._moduleHasPrefix(_1f)){return mp[_1f].value;}return _1f;},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false});dojo._loadUriAndCheck=function(uri,_20,cb){var ok=false;try{ok=d._loadUri(uri,cb);}catch(e){console.error("failed loading "+uri+" with error: "+e);}return !!(ok&&d._loadedModules[_20]);};dojo.loaded=function(){d._loadNotifying=true;d._postLoad=true;var mll=d._loaders;d._loaders=[];for(var x=0;x<mll.length;x++){mll[x]();}d._loadNotifying=false;if(d._postLoad&&d._inFlightCount==0&&mll.length){d._callLoaded();}};dojo.unloaded=function(){var mll=d._unloaders;while(mll.length){(mll.pop())();}};d._onto=function(arr,obj,fn){if(!fn){arr.push(obj);}else{if(fn){var _21=(typeof fn=="string")?obj[fn]:fn;arr.push(function(){_21.call(obj);});}}};dojo.ready=dojo.addOnLoad=function(obj,_22){d._onto(d._loaders,obj,_22);if(d._postLoad&&d._inFlightCount==0&&!d._loadNotifying){d._callLoaded();}};var dca=d.config.addOnLoad;if(dca){d.addOnLoad[(dca instanceof Array?"apply":"call")](d,dca);}dojo._modulesLoaded=function(){if(d._postLoad){return;}if(d._inFlightCount>0){console.warn("files still in flight!");return;}d._callLoaded();};dojo._callLoaded=function(){if(typeof setTimeout=="object"||(d.config.useXDomain&&d.isOpera)){setTimeout(d.isAIR?function(){d.loaded();}:d._scopeName+".loaded();",0);}else{d.loaded();}};dojo._getModuleSymbols=function(_23){var _24=_23.split(".");for(var i=_24.length;i>0;i--){var _25=_24.slice(0,i).join(".");if(i==1&&!d._moduleHasPrefix(_25)){_24[0]="../"+_24[0];}else{var _26=d._getModulePrefix(_25);if(_26!=_25){_24.splice(0,i,_26);break;}}}return _24;};dojo._global_omit_module_check=false;dojo.loadInit=function(_27){_27();};dojo._loadModule=dojo.require=function(_28,_29){_29=d._global_omit_module_check||_29;var _2a=d._loadedModules[_28];if(_2a){return _2a;}var _2b=d._getModuleSymbols(_28).join("/")+".js";var _2c=!_29?_28:null;var ok=d._loadPath(_2b,_2c);if(!ok&&!_29){throw new Error("Could not load '"+_28+"'; last tried '"+_2b+"'");}if(!_29&&!d._isXDomain){_2a=d._loadedModules[_28];if(!_2a){throw new Error("symbol '"+_28+"' is not defined after loading '"+_2b+"'");}}return _2a;};dojo.provide=function(_2d){_2d=_2d+"";return (d._loadedModules[_2d]=d.getObject(_2d,true));};dojo.platformRequire=function(_2e){var _2f=_2e.common||[];var _30=_2f.concat(_2e[d._name]||_2e["default"]||[]);for(var x=0;x<_30.length;x++){var _31=_30[x];if(_31.constructor==Array){d._loadModule.apply(d,_31);}else{d._loadModule(_31);}}};dojo.requireIf=function(_32,_33){if(_32===true){var _34=[];for(var i=1;i<arguments.length;i++){_34.push(arguments[i]);}d.require.apply(d,_34);}};dojo.requireAfterIf=d.requireIf;dojo.registerModulePath=function(_35,_36){d._modulePrefixes[_35]={name:_35,value:_36};};if(typeof dojo.config["useXDomain"]=="undefined"){dojo.config.useXDomain=true;}dojo.registerModulePath("dojo","http://ajax.googleapis.com/ajax/libs/dojo/1.4.1/dojo");dojo.registerModulePath("dijit","http://ajax.googleapis.com/ajax/libs/dojo/1.4.1/dijit");dojo.registerModulePath("dojox","http://ajax.googleapis.com/ajax/libs/dojo/1.4.1/dojox");dojo.requireLocalization=function(_37,_38,_39,_3a){d.require("dojo.i18n");d.i18n._requireLocalization.apply(d.hostenv,arguments);};var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),ire=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$");dojo._Url=function(){var n=null,_3b=arguments,uri=[_3b[0]];for(var i=1;i<_3b.length;i++){if(!_3b[i]){continue;}var _3c=new d._Url(_3b[i]+""),_3d=new d._Url(uri[0]+"");if(_3c.path==""&&!_3c.scheme&&!_3c.authority&&!_3c.query){if(_3c.fragment!=n){_3d.fragment=_3c.fragment;}_3c=_3d;}else{if(!_3c.scheme){_3c.scheme=_3d.scheme;if(!_3c.authority){_3c.authority=_3d.authority;if(_3c.path.charAt(0)!="/"){var _3e=_3d.path.substring(0,_3d.path.lastIndexOf("/")+1)+_3c.path;var _3f=_3e.split("/");for(var j=0;j<_3f.length;j++){if(_3f[j]=="."){if(j==_3f.length-1){_3f[j]="";}else{_3f.splice(j,1);j--;}}else{if(j>0&&!(j==1&&_3f[0]=="")&&_3f[j]==".."&&_3f[j-1]!=".."){if(j==(_3f.length-1)){_3f.splice(j,1);_3f[j-1]="";}else{_3f.splice(j-1,2);j-=2;}}}}_3c.path=_3f.join("/");}}}}uri=[];if(_3c.scheme){uri.push(_3c.scheme,":");}if(_3c.authority){uri.push("//",_3c.authority);}uri.push(_3c.path);if(_3c.query){uri.push("?",_3c.query);}if(_3c.fragment){uri.push("#",_3c.fragment);}}this.uri=uri.join("");var r=this.uri.match(ore);this.scheme=r[2]||(r[1]?"":n);this.authority=r[4]||(r[3]?"":n);this.path=r[5];this.query=r[7]||(r[6]?"":n);this.fragment=r[9]||(r[8]?"":n);if(this.authority!=n){r=this.authority.match(ire);this.user=r[3]||n;this.password=r[4]||n;this.host=r[6]||r[7];this.port=r[9]||n;}};dojo._Url.prototype.toString=function(){return this.uri;};dojo.moduleUrl=function(_40,url){var loc=d._getModuleSymbols(_40).join("/");if(!loc){return null;}if(loc.lastIndexOf("/")!=loc.length-1){loc+="/";}var _41=loc.indexOf(":");if(loc.charAt(0)!="/"&&(_41==-1||_41>loc.indexOf("/"))){loc=d.baseUrl+loc;}return new d._Url(loc,url);};})();dojo.provide("dojo._base._loader.loader_xd");dojo._xdReset=function(){dojo._isXDomain=dojo.config.useXDomain||false;dojo._xdClearInterval();dojo._xdInFlight={};dojo._xdOrderedReqs=[];dojo._xdDepMap={};dojo._xdContents=[];dojo._xdDefList=[];};dojo._xdClearInterval=function(){if(dojo._xdTimer){clearInterval(dojo._xdTimer);dojo._xdTimer=0;}};dojo._xdReset();dojo._xdCreateResource=function(_42,_43,_44){var _45=_42.replace(/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,"");var _46=[];var _47=/dojo.(require|requireIf|provide|requireAfterIf|platformRequire|requireLocalization)\s*\(([\w\W]*?)\)/mg;var _48;while((_48=_47.exec(_45))!=null){if(_48[1]=="requireLocalization"){eval(_48[0]);}else{_46.push("\""+_48[1]+"\", "+_48[2]);}}var _49=[];_49.push(dojo._scopeName+"._xdResourceLoaded(function("+dojo._scopePrefixArgs+"){\n");var _4a=dojo._xdExtractLoadInits(_42);if(_4a){_42=_4a[0];for(var i=1;i<_4a.length;i++){_49.push(_4a[i]+";\n");}}_49.push("return {");if(_46.length>0){_49.push("depends: [");for(i=0;i<_46.length;i++){if(i>0){_49.push(",\n");}_49.push("["+_46[i]+"]");}_49.push("],");}_49.push("\ndefineResource: function("+dojo._scopePrefixArgs+"){");if(!dojo.config["debugAtAllCosts"]||_43=="dojo._base._loader.loader_debug"){_49.push(_42);}_49.push("\n}, resourceName: '"+_43+"', resourcePath: '"+_44+"'};});");return _49.join("");};dojo._xdExtractLoadInits=function(_4b){var _4c=/dojo.loadInit\s*\(/g;_4c.lastIndex=0;var _4d=/[\(\)]/g;_4d.lastIndex=0;var _4e=[];var _4f;while((_4f=_4c.exec(_4b))){_4d.lastIndex=_4c.lastIndex;var _50=1;var _51;while((_51=_4d.exec(_4b))){if(_51[0]==")"){_50-=1;}else{_50+=1;}if(_50==0){break;}}if(_50!=0){throw "unmatched paren around character "+_4d.lastIndex+" in: "+_4b;}var _52=_4c.lastIndex-_4f[0].length;_4e.push(_4b.substring(_52,_4d.lastIndex));var _53=_4d.lastIndex-_52;_4b=_4b.substring(0,_52)+_4b.substring(_4d.lastIndex,_4b.length);_4c.lastIndex=_4d.lastIndex-_53;_4c.lastIndex=_4d.lastIndex;}if(_4e.length>0){_4e.unshift(_4b);}return (_4e.length?_4e:null);};dojo._xdIsXDomainPath=function(_54){var _55=_54.indexOf(":");var _56=_54.indexOf("/");if(_55>0&&_55<_56){return true;}else{var url=dojo.baseUrl;_55=url.indexOf(":");_56=url.indexOf("/");if(_55>0&&_55<_56&&(!location.host||url.indexOf("http://"+location.host)!=0)){return true;}}return false;};dojo._loadPath=function(_57,_58,cb){var _59=dojo._xdIsXDomainPath(_57);dojo._isXDomain|=_59;var uri=((_57.charAt(0)=="/"||_57.match(/^\w+:/))?"":dojo.baseUrl)+_57;try{return ((!_58||dojo._isXDomain)?dojo._loadUri(uri,cb,_59,_58):dojo._loadUriAndCheck(uri,_58,cb));}catch(e){console.error(e);return false;}};dojo._xdCharSet="utf-8";dojo._loadUri=function(uri,cb,_5a,_5b){if(dojo._loadedUrls[uri]){return 1;}if(dojo._isXDomain&&_5b&&_5b!="dojo.i18n"){dojo._xdOrderedReqs.push(_5b);if(_5a||uri.indexOf("/nls/")==-1){dojo._xdInFlight[_5b]=true;dojo._inFlightCount++;}if(!dojo._xdTimer){if(dojo.isAIR){dojo._xdTimer=setInterval(function(){dojo._xdWatchInFlight();},100);}else{dojo._xdTimer=setInterval(dojo._scopeName+"._xdWatchInFlight();",100);}}dojo._xdStartTime=(new Date()).getTime();}if(_5a){var _5c=uri.lastIndexOf(".");if(_5c<=0){_5c=uri.length-1;}var _5d=uri.substring(0,_5c)+".xd";if(_5c!=uri.length-1){_5d+=uri.substring(_5c,uri.length);}if(dojo.isAIR){_5d=_5d.replace("app:/","/");}var _5e=document.createElement("script");_5e.type="text/javascript";if(dojo._xdCharSet){_5e.charset=dojo._xdCharSet;}_5e.src=_5d;if(!dojo.headElement){dojo._headElement=document.getElementsByTagName("head")[0];if(!dojo._headElement){dojo._headElement=document.getElementsByTagName("html")[0];}}dojo._headElement.appendChild(_5e);}else{var _5f=dojo._getText(uri,null,true);if(_5f==null){return 0;}if(dojo._isXDomain&&uri.indexOf("/nls/")==-1&&_5b!="dojo.i18n"){var res=dojo._xdCreateResource(_5f,_5b,uri);dojo.eval(res);}else{if(cb){_5f="("+_5f+")";}else{_5f=dojo._scopePrefix+_5f+dojo._scopeSuffix;}var _60=dojo["eval"](_5f+"\r\n//@ sourceURL="+uri);if(cb){cb(_60);}}}dojo._loadedUrls[uri]=true;dojo._loadedUrls.push(uri);return true;};dojo._xdResourceLoaded=function(res){res=res.apply(dojo.global,dojo._scopeArgs);var _61=res.depends;var _62=null;var _63=null;var _64=[];if(_61&&_61.length>0){var dep=null;var _65=0;var _66=false;for(var i=0;i<_61.length;i++){dep=_61[i];if(dep[0]=="provide"){_64.push(dep[1]);}else{if(!_62){_62=[];}if(!_63){_63=[];}var _67=dojo._xdUnpackDependency(dep);if(_67.requires){_62=_62.concat(_67.requires);}if(_67.requiresAfter){_63=_63.concat(_67.requiresAfter);}}var _68=dep[0];var _69=_68.split(".");if(_69.length==2){dojo[_69[0]][_69[1]].apply(dojo[_69[0]],dep.slice(1));}else{dojo[_68].apply(dojo,dep.slice(1));}}if(_64.length==1&&_64[0]=="dojo._base._loader.loader_debug"){res.defineResource(dojo);}else{var _6a=dojo._xdContents.push({content:res.defineResource,resourceName:res["resourceName"],resourcePath:res["resourcePath"],isDefined:false})-1;for(i=0;i<_64.length;i++){dojo._xdDepMap[_64[i]]={requires:_62,requiresAfter:_63,contentIndex:_6a};}}for(i=0;i<_64.length;i++){dojo._xdInFlight[_64[i]]=false;}}};dojo._xdLoadFlattenedBundle=function(_6b,_6c,_6d,_6e){_6d=_6d||"root";var _6f=dojo.i18n.normalizeLocale(_6d).replace("-","_");var _70=[_6b,"nls",_6c].join(".");var _71=dojo["provide"](_70);_71[_6f]=_6e;var _72=[_6b,_6f,_6c].join(".");var _73=dojo._xdBundleMap[_72];if(_73){for(var _74 in _73){_71[_74]=_6e;}}};dojo._xdInitExtraLocales=function(){var _75=dojo.config.extraLocale;if(_75){if(!_75 instanceof Array){_75=[_75];}dojo._xdReqLoc=dojo.xdRequireLocalization;dojo.xdRequireLocalization=function(m,b,_76,_77){dojo._xdReqLoc(m,b,_76,_77);if(_76){return;}for(var i=0;i<_75.length;i++){dojo._xdReqLoc(m,b,_75[i],_77);}};}};dojo._xdBundleMap={};dojo.xdRequireLocalization=function(_78,_79,_7a,_7b){if(dojo._xdInitExtraLocales){dojo._xdInitExtraLocales();dojo._xdInitExtraLocales=null;dojo.xdRequireLocalization.apply(dojo,arguments);return;}var _7c=_7b.split(",");var _7d=dojo.i18n.normalizeLocale(_7a);var _7e="";for(var i=0;i<_7c.length;i++){if(_7d.indexOf(_7c[i])==0){if(_7c[i].length>_7e.length){_7e=_7c[i];}}}var _7f=_7e.replace("-","_");var _80=dojo.getObject([_78,"nls",_79].join("."));if(!_80||!_80[_7f]){var _81=[_78,(_7f||"root"),_79].join(".");var _82=dojo._xdBundleMap[_81];if(!_82){_82=dojo._xdBundleMap[_81]={};}_82[_7d.replace("-","_")]=true;dojo.require(_78+".nls"+(_7e?"."+_7e:"")+"."+_79);}};dojo._xdRealRequireLocalization=dojo.requireLocalization;dojo.requireLocalization=function(_83,_84,_85,_86){var _87=dojo.moduleUrl(_83).toString();if(dojo._xdIsXDomainPath(_87)){return dojo.xdRequireLocalization.apply(dojo,arguments);}else{return dojo._xdRealRequireLocalization.apply(dojo,arguments);}};dojo._xdUnpackDependency=function(dep){var _88=null;var _89=null;switch(dep[0]){case "requireIf":case "requireAfterIf":if(dep[1]===true){_88=[{name:dep[2],content:null}];}break;case "platformRequire":var _8a=dep[1];var _8b=_8a["common"]||[];_88=(_8a[dojo.hostenv.name_])?_8b.concat(_8a[dojo.hostenv.name_]||[]):_8b.concat(_8a["default"]||[]);if(_88){for(var i=0;i<_88.length;i++){if(_88[i] instanceof Array){_88[i]={name:_88[i][0],content:null};}else{_88[i]={name:_88[i],content:null};}}}break;case "require":_88=[{name:dep[1],content:null}];break;case "i18n._preloadLocalizations":dojo.i18n._preloadLocalizations.apply(dojo.i18n._preloadLocalizations,dep.slice(1));break;}if(dep[0]=="requireAfterIf"||dep[0]=="requireIf"){_89=_88;_88=null;}return {requires:_88,requiresAfter:_89};};dojo._xdWalkReqs=function(){var _8c=null;var req;for(var i=0;i<dojo._xdOrderedReqs.length;i++){req=dojo._xdOrderedReqs[i];if(dojo._xdDepMap[req]){_8c=[req];_8c[req]=true;dojo._xdEvalReqs(_8c);}}};dojo._xdEvalReqs=function(_8d){while(_8d.length>0){var req=_8d[_8d.length-1];var res=dojo._xdDepMap[req];var i,_8e,_8f;if(res){_8e=res.requires;if(_8e&&_8e.length>0){for(i=0;i<_8e.length;i++){_8f=_8e[i].name;if(_8f&&!_8d[_8f]){_8d.push(_8f);_8d[_8f]=true;dojo._xdEvalReqs(_8d);}}}var _90=dojo._xdContents[res.contentIndex];if(!_90.isDefined){var _91=_90.content;_91["resourceName"]=_90["resourceName"];_91["resourcePath"]=_90["resourcePath"];dojo._xdDefList.push(_91);_90.isDefined=true;}dojo._xdDepMap[req]=null;_8e=res.requiresAfter;if(_8e&&_8e.length>0){for(i=0;i<_8e.length;i++){_8f=_8e[i].name;if(_8f&&!_8d[_8f]){_8d.push(_8f);_8d[_8f]=true;dojo._xdEvalReqs(_8d);}}}}_8d.pop();}};dojo._xdWatchInFlight=function(){var _92="";var _93=(dojo.config.xdWaitSeconds||15)*1000;var _94=(dojo._xdStartTime+_93)<(new Date()).getTime();for(var _95 in dojo._xdInFlight){if(dojo._xdInFlight[_95]===true){if(_94){_92+=_95+" ";}else{return;}}}dojo._xdClearInterval();if(_94){throw "Could not load cross-domain resources: "+_92;}dojo._xdWalkReqs();var _96=dojo._xdDefList.length;for(var i=0;i<_96;i++){var _97=dojo._xdDefList[i];if(dojo.config["debugAtAllCosts"]&&_97["resourceName"]){if(!dojo["_xdDebugQueue"]){dojo._xdDebugQueue=[];}dojo._xdDebugQueue.push({resourceName:_97.resourceName,resourcePath:_97.resourcePath});}else{_97.apply(dojo.global,dojo._scopeArgs);}}for(i=0;i<dojo._xdContents.length;i++){var _98=dojo._xdContents[i];if(_98.content&&!_98.isDefined){_98.content.apply(dojo.global,dojo._scopeArgs);}}dojo._xdReset();if(dojo["_xdDebugQueue"]&&dojo._xdDebugQueue.length>0){dojo._xdDebugFileLoaded();}else{dojo._xdNotifyLoaded();}};dojo._xdNotifyLoaded=function(){for(var _99 in dojo._xdInFlight){if(typeof dojo._xdInFlight[_99]=="boolean"){return;}}dojo._inFlightCount=0;if(dojo._initFired&&!dojo._loadNotifying){dojo._callLoaded();}};if(typeof window!="undefined"){dojo.isBrowser=true;dojo._name="browser";(function(){var d=dojo;if(document&&document.getElementsByTagName){var _9a=document.getElementsByTagName("script");var _9b=/dojo(\.xd)?\.js(\W|$)/i;for(var i=0;i<_9a.length;i++){var src=_9a[i].getAttribute("src");if(!src){continue;}var m=src.match(_9b);if(m){if(!d.config.baseUrl){d.config.baseUrl=src.substring(0,m.index);}var cfg=_9a[i].getAttribute("djConfig");if(cfg){var _9c=eval("({ "+cfg+" })");for(var x in _9c){dojo.config[x]=_9c[x];}}break;}}}d.baseUrl=d.config.baseUrl;var n=navigator;var dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);if(dua.indexOf("Opera")>=0){d.isOpera=tv;}if(dua.indexOf("AdobeAIR")>=0){d.isAIR=1;}d.isKhtml=(dav.indexOf("Konqueror")>=0)?tv:0;d.isWebKit=parseFloat(dua.split("WebKit/")[1])||undefined;d.isChrome=parseFloat(dua.split("Chrome/")[1])||undefined;d.isMac=dav.indexOf("Macintosh")>=0;var _9d=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_9d&&!dojo.isChrome){d.isSafari=parseFloat(dav.split("Version/")[1]);if(!d.isSafari||parseFloat(dav.substr(_9d+7))<=419.3){d.isSafari=2;}}if(dua.indexOf("Gecko")>=0&&!d.isKhtml&&!d.isWebKit){d.isMozilla=d.isMoz=tv;}if(d.isMoz){d.isFF=parseFloat(dua.split("Firefox/")[1]||dua.split("Minefield/")[1])||undefined;}if(document.all&&!d.isOpera){d.isIE=parseFloat(dav.split("MSIE ")[1])||undefined;var _9e=document.documentMode;if(_9e&&_9e!=5&&Math.floor(d.isIE)!=_9e){d.isIE=_9e;}}if(dojo.isIE&&window.location.protocol==="file:"){dojo.config.ieForceActiveXXhr=true;}d.isQuirks=document.compatMode=="BackCompat";d.locale=dojo.config.locale||(d.isIE?n.userLanguage:n.language).toLowerCase();d._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];d._xhrObj=function(){var _9f,_a0;if(!dojo.isIE||!dojo.config.ieForceActiveXXhr){try{_9f=new XMLHttpRequest();}catch(e){}}if(!_9f){for(var i=0;i<3;++i){var _a1=d._XMLHTTP_PROGIDS[i];try{_9f=new ActiveXObject(_a1);}catch(e){_a0=e;}if(_9f){d._XMLHTTP_PROGIDS=[_a1];break;}}}if(!_9f){throw new Error("XMLHTTP not available: "+_a0);}return _9f;};d._isDocumentOk=function(_a2){var _a3=_a2.status||0,lp=location.protocol;return (_a3>=200&&_a3<300)||_a3==304||_a3==1223||(!_a3&&(lp=="file:"||lp=="chrome:"||lp=="app:"));};var _a4=window.location+"";var _a5=document.getElementsByTagName("base");var _a6=(_a5&&_a5.length>0);d._getText=function(uri,_a7){var _a8=d._xhrObj();if(!_a6&&dojo._Url){uri=(new dojo._Url(_a4,uri)).toString();}if(d.config.cacheBust){uri+="";uri+=(uri.indexOf("?")==-1?"?":"&")+String(d.config.cacheBust).replace(/\W+/g,"");}_a8.open("GET",uri,false);try{_a8.send(null);if(!d._isDocumentOk(_a8)){var err=Error("Unable to load "+uri+" status:"+_a8.status);err.status=_a8.status;err.responseText=_a8.responseText;throw err;}}catch(e){if(_a7){return null;}throw e;}return _a8.responseText;};var _a9=window;var _aa=function(_ab,fp){var _ac=_a9.attachEvent||_a9.addEventListener;_ab=_a9.attachEvent?_ab:_ab.substring(2);_ac(_ab,function(){fp.apply(_a9,arguments);},false);};d._windowUnloaders=[];d.windowUnloaded=function(){var mll=d._windowUnloaders;while(mll.length){(mll.pop())();}};var _ad=0;d.addOnWindowUnload=function(obj,_ae){d._onto(d._windowUnloaders,obj,_ae);if(!_ad){_ad=1;_aa("onunload",d.windowUnloaded);}};var _af=0;d.addOnUnload=function(obj,_b0){d._onto(d._unloaders,obj,_b0);if(!_af){_af=1;_aa("onbeforeunload",dojo.unloaded);}};})();dojo._initFired=false;dojo._loadInit=function(e){if(!dojo._initFired){dojo._initFired=true;if(!dojo.config.afterOnLoad&&window.detachEvent){window.detachEvent("onload",dojo._loadInit);}if(dojo._inFlightCount==0){dojo._modulesLoaded();}}};if(!dojo.config.afterOnLoad){if(document.addEventListener){document.addEventListener("DOMContentLoaded",dojo._loadInit,false);window.addEventListener("load",dojo._loadInit,false);}else{if(window.attachEvent){window.attachEvent("onload",dojo._loadInit);}}}if(dojo.isIE){if(!dojo.config.afterOnLoad&&!dojo.config.skipIeDomLoaded){document.write("<scr"+"ipt defer src=\"//:\" "+"onreadystatechange=\"if(this.readyState=='complete'){"+dojo._scopeName+"._loadInit();}\">"+"</scr"+"ipt>");}try{document.namespaces.add("v","urn:schemas-microsoft-com:vml");var _b1=["*","group","roundrect","oval","shape","rect","imagedata"],i=0,l=1,s=document.createStyleSheet();if(dojo.isIE>=8){i=1;l=_b1.length;}for(;i<l;++i){s.addRule("v\\:"+_b1[i],"behavior:url(#default#VML); display:inline-block");}}catch(e){}}}(function(){var mp=dojo.config["modulePaths"];if(mp){for(var _b2 in mp){dojo.registerModulePath(_b2,mp[_b2]);}}})();if(dojo.config.isDebug){dojo.require("dojo._firebug.firebug");}if(dojo.config.debugAtAllCosts){dojo.config.useXDomain=true;dojo.require("dojo._base._loader.loader_xd");dojo.require("dojo._base._loader.loader_debug");}if(!dojo._hasResource["dojo._base.lang"]){dojo._hasResource["dojo._base.lang"]=true;dojo.provide("dojo._base.lang");(function(){var d=dojo,_b3=Object.prototype.toString;dojo.isString=function(it){return (typeof it=="string"||it instanceof String);};dojo.isArray=function(it){return it&&(it instanceof Array||typeof it=="array");};dojo.isFunction=function(it){return _b3.call(it)==="[object Function]";};dojo.isObject=function(it){return it!==undefined&&(it===null||typeof it=="object"||d.isArray(it)||d.isFunction(it));};dojo.isArrayLike=function(it){return it&&it!==undefined&&!d.isString(it)&&!d.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(d.isArray(it)||isFinite(it.length));};dojo.isAlien=function(it){return it&&!d.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));};dojo.extend=function(_b4,_b5){for(var i=1,l=arguments.length;i<l;i++){d._mixin(_b4.prototype,arguments[i]);}return _b4;};dojo._hitchArgs=function(_b6,_b7){var pre=d._toArray(arguments,2);var _b8=d.isString(_b7);return function(){var _b9=d._toArray(arguments);var f=_b8?(_b6||d.global)[_b7]:_b7;return f&&f.apply(_b6||this,pre.concat(_b9));};};dojo.hitch=function(_ba,_bb){if(arguments.length>2){return d._hitchArgs.apply(d,arguments);}if(!_bb){_bb=_ba;_ba=null;}if(d.isString(_bb)){_ba=_ba||d.global;if(!_ba[_bb]){throw (["dojo.hitch: scope[\"",_bb,"\"] is null (scope=\"",_ba,"\")"].join(""));}return function(){return _ba[_bb].apply(_ba,arguments||[]);};}return !_ba?_bb:function(){return _bb.apply(_ba,arguments||[]);};};dojo.delegate=dojo._delegate=(function(){function TMP(){};return function(obj,_bc){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_bc){d._mixin(tmp,_bc);}return tmp;};})();var _bd=function(obj,_be,_bf){return (_bf||[]).concat(Array.prototype.slice.call(obj,_be||0));};var _c0=function(obj,_c1,_c2){var arr=_c2||[];for(var x=_c1||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};dojo._toArray=d.isIE?function(obj){return ((obj.item)?_c0:_bd).apply(this,arguments);}:_bd;dojo.partial=function(_c3){var arr=[null];return d.hitch.apply(d,arr.concat(d._toArray(arguments)));};var _c4=d._extraNames,_c5=_c4.length,_c6={};dojo.clone=function(o){if(!o||typeof o!="object"||d.isFunction(o)){return o;}if(o.nodeType&&"cloneNode" in o){return o.cloneNode(true);}if(o instanceof Date){return new Date(o.getTime());}var r,i,l,s,_c7;if(d.isArray(o)){r=[];for(i=0,l=o.length;i<l;++i){if(i in o){r.push(d.clone(o[i]));}}}else{r=o.constructor?new o.constructor():{};}for(_c7 in o){s=o[_c7];if(!(_c7 in r)||(r[_c7]!==s&&(!(_c7 in _c6)||_c6[_c7]!==s))){r[_c7]=d.clone(s);}}if(_c5){for(i=0;i<_c5;++i){_c7=_c4[i];s=o[_c7];if(!(_c7 in r)||(r[_c7]!==s&&(!(_c7 in _c6)||_c6[_c7]!==s))){r[_c7]=s;}}}return r;};dojo.trim=String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};var _c8=/\{([^\}]+)\}/g;dojo.replace=function(_c9,map,_ca){return _c9.replace(_ca||_c8,d.isFunction(map)?map:function(_cb,k){return d.getObject(k,false,map);});};})();}if(!dojo._hasResource["dojo._base.array"]){dojo._hasResource["dojo._base.array"]=true;dojo.provide("dojo._base.array");(function(){var _cc=function(arr,obj,cb){return [(typeof arr=="string")?arr.split(""):arr,obj||dojo.global,(typeof cb=="string")?new Function("item","index","array",cb):cb];};var _cd=function(_ce,arr,_cf,_d0){var _d1=_cc(arr,_d0,_cf);arr=_d1[0];for(var i=0,l=arr.length;i<l;++i){var _d2=!!_d1[2].call(_d1[1],arr[i],i,arr);if(_ce^_d2){return _d2;}}return _ce;};dojo.mixin(dojo,{indexOf:function(_d3,_d4,_d5,_d6){var _d7=1,end=_d3.length||0,i=0;if(_d6){i=end-1;_d7=end=-1;}if(_d5!=undefined){i=_d5;}if((_d6&&i>end)||i<end){for(;i!=end;i+=_d7){if(_d3[i]==_d4){return i;}}}return -1;},lastIndexOf:function(_d8,_d9,_da){return dojo.indexOf(_d8,_d9,_da,true);},forEach:function(arr,_db,_dc){if(!arr||!arr.length){return;}var _dd=_cc(arr,_dc,_db);arr=_dd[0];for(var i=0,l=arr.length;i<l;++i){_dd[2].call(_dd[1],arr[i],i,arr);}},every:function(arr,_de,_df){return _cd(true,arr,_de,_df);},some:function(arr,_e0,_e1){return _cd(false,arr,_e0,_e1);},map:function(arr,_e2,_e3){var _e4=_cc(arr,_e3,_e2);arr=_e4[0];var _e5=(arguments[3]?(new arguments[3]()):[]);for(var i=0,l=arr.length;i<l;++i){_e5.push(_e4[2].call(_e4[1],arr[i],i,arr));}return _e5;},filter:function(arr,_e6,_e7){var _e8=_cc(arr,_e7,_e6);arr=_e8[0];var _e9=[];for(var i=0,l=arr.length;i<l;++i){if(_e8[2].call(_e8[1],arr[i],i,arr)){_e9.push(arr[i]);}}return _e9;}});})();}if(!dojo._hasResource["dojo._base.declare"]){dojo._hasResource["dojo._base.declare"]=true;dojo.provide("dojo._base.declare");(function(){var d=dojo,mix=d._mixin,op=Object.prototype,_ea=op.toString,_eb=new Function,_ec=0,_ed="constructor";function err(msg){throw new Error("declare: "+msg);};function _ee(_ef){var _f0=[],_f1=[{cls:0,refs:[]}],_f2={},_f3=1,l=_ef.length,i=0,j,lin,_f4,top,_f5,rec,_f6,_f7;for(;i<l;++i){_f4=_ef[i];if(!_f4){err("mixin #"+i+" is null");}lin=_f4._meta?_f4._meta.bases:[_f4];top=0;for(j=lin.length-1;j>=0;--j){_f5=lin[j].prototype;if(!_f5.hasOwnProperty("declaredClass")){_f5.declaredClass="uniqName_"+(_ec++);}_f6=_f5.declaredClass;if(!_f2.hasOwnProperty(_f6)){_f2[_f6]={count:0,refs:[],cls:lin[j]};++_f3;}rec=_f2[_f6];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_f1[0].refs.push(top);}while(_f1.length){top=_f1.pop();_f0.push(top.cls);--_f3;while(_f7=top.refs,_f7.length==1){top=_f7[0];if(!top||--top.count){top=0;break;}_f0.push(top.cls);--_f3;}if(top){for(i=0,l=_f7.length;i<l;++i){top=_f7[i];if(!--top.count){_f1.push(top);}}}}if(_f3){err("can't build consistent linearization");}_f4=_ef[0];_f0[0]=_f4?_f4._meta&&_f4===_f0[_f0.length-_f4._meta.bases.length]?_f4._meta.bases.length:1:0;return _f0;};function _f8(_f9,a,f){var _fa,_fb,_fc,_fd,_fe,_ff,_100,opf,pos,_101=this._inherited=this._inherited||{};if(typeof _f9=="string"){_fa=_f9;_f9=a;a=f;}f=0;_fd=_f9.callee;_fa=_fa||_fd.nom;if(!_fa){err("can't deduce a name to call inherited()");}_fe=this.constructor._meta;_fc=_fe.bases;pos=_101.p;if(_fa!=_ed){if(_101.c!==_fd){pos=0;_ff=_fc[0];_fe=_ff._meta;if(_fe.hidden[_fa]!==_fd){_fb=_fe.chains;if(_fb&&typeof _fb[_fa]=="string"){err("calling chained method with inherited: "+_fa);}do{_fe=_ff._meta;_100=_ff.prototype;if(_fe&&(_100[_fa]===_fd&&_100.hasOwnProperty(_fa)||_fe.hidden[_fa]===_fd)){break;}}while(_ff=_fc[++pos]);pos=_ff?pos:-1;}}_ff=_fc[++pos];if(_ff){_100=_ff.prototype;if(_ff._meta&&_100.hasOwnProperty(_fa)){f=_100[_fa];}else{opf=op[_fa];do{_100=_ff.prototype;f=_100[_fa];if(f&&(_ff._meta?_100.hasOwnProperty(_fa):f!==opf)){break;}}while(_ff=_fc[++pos]);}}f=_ff&&f||op[_fa];}else{if(_101.c!==_fd){pos=0;_fe=_fc[0]._meta;if(_fe&&_fe.ctor!==_fd){_fb=_fe.chains;if(!_fb||_fb.constructor!=="manual"){err("calling chained constructor with inherited");}while(_ff=_fc[++pos]){_fe=_ff._meta;if(_fe&&_fe.ctor===_fd){break;}}pos=_ff?pos:-1;}}while(_ff=_fc[++pos]){_fe=_ff._meta;f=_fe?_fe.ctor:_ff;if(f){break;}}f=_ff&&f;}_101.c=f;_101.p=pos;if(f){return a===true?f:f.apply(this,a||_f9);}};function _102(name,args){if(typeof name=="string"){return this.inherited(name,args,true);}return this.inherited(name,true);};function _103(cls){var _104=this.constructor._meta.bases;for(var i=0,l=_104.length;i<l;++i){if(_104[i]===cls){return true;}}return this instanceof cls;};function _105(_106,_107){var name,t,i=0,l=d._extraNames.length;for(name in _107){t=_107[name];if((t!==op[name]||!(name in op))&&name!=_ed){if(_ea.call(t)=="[object Function]"){t.nom=name;}_106[name]=t;}}for(;i<l;++i){name=d._extraNames[i];t=_107[name];if((t!==op[name]||!(name in op))&&name!=_ed){if(_ea.call(t)=="[object Function]"){t.nom=name;}_106[name]=t;}}return _106;};function _108(_109){_105(this.prototype,_109);return this;};function _10a(_10b,_10c){return function(){var a=arguments,args=a,a0=a[0],f,i,m,l=_10b.length,_10d;if(_10c&&(a0&&a0.preamble||this.preamble)){_10d=new Array(_10b.length);_10d[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_10b[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_10d[i]=a;}}for(i=l-1;i>=0;--i){f=_10b[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_10d?_10d[i]:a);}}f=this.postscript;if(f){f.apply(this,args);}};};function _10e(ctor,_10f){return function(){var a=arguments,t=a,a0=a[0],f;if(_10f){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(ctor){ctor.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function _110(_111){return function(){var a=arguments,i=0,f;for(;f=_111[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _112(name,_113,_114){return function(){var b,m,f,i=0,step=1;if(_114){i=_113.length-1;step=-1;}for(;b=_113[i];i+=step){m=b._meta;f=(m?m.hidden:b.prototype)[name];if(f){f.apply(this,arguments);}}};};d.declare=function(_115,_116,_117){var _118,i,t,ctor,name,_119,_11a,_11b=1,_11c=_116;if(typeof _115!="string"){_117=_116;_116=_115;_115="";}_117=_117||{};if(_ea.call(_116)=="[object Array]"){_119=_ee(_116);t=_119[0];_11b=_119.length-t;_116=_119[_11b];}else{_119=[0];if(_116){t=_116._meta;_119=_119.concat(t?t.bases:_116);}}if(_116){for(i=_11b-1;;--i){_eb.prototype=_116.prototype;_118=new _eb;if(!i){break;}t=_119[i];mix(_118,t._meta?t._meta.hidden:t.prototype);ctor=new Function;ctor.superclass=_116;ctor.prototype=_118;_116=_118.constructor=ctor;}}else{_118={};}_105(_118,_117);t=_117.constructor;if(t!==op.constructor){t.nom=_ed;_118.constructor=t;}_eb.prototype=0;for(i=_11b-1;i;--i){t=_119[i]._meta;if(t&&t.chains){_11a=mix(_11a||{},t.chains);}}if(_118["-chains-"]){_11a=mix(_11a||{},_118["-chains-"]);}t=!_11a||!_11a.hasOwnProperty(_ed);_119[0]=ctor=(_11a&&_11a.constructor==="manual")?_110(_119):(_119.length==1?_10e(_117.constructor,t):_10a(_119,t));ctor._meta={bases:_119,hidden:_117,chains:_11a,parents:_11c,ctor:_117.constructor};ctor.superclass=_116&&_116.prototype;ctor.extend=_108;ctor.prototype=_118;_118.constructor=ctor;_118.getInherited=_102;_118.inherited=_f8;_118.isInstanceOf=_103;if(_115){_118.declaredClass=_115;d.setObject(_115,ctor);}if(_11a){for(name in _11a){if(_118[name]&&typeof _11a[name]=="string"&&name!=_ed){t=_118[name]=_112(name,_119,_11a[name]==="after");t.nom=name;}}}return ctor;};d.safeMixin=_105;})();}if(!dojo._hasResource["dojo._base.connect"]){dojo._hasResource["dojo._base.connect"]=true;dojo.provide("dojo._base.connect");dojo._listener={getDispatcher:function(){return function(){var ap=Array.prototype,c=arguments.callee,ls=c._listeners,t=c.target;var r=t&&t.apply(this,arguments);var lls;lls=[].concat(ls);for(var i in lls){if(!(i in ap)){lls[i].apply(this,arguments);}}return r;};},add:function(_11d,_11e,_11f){_11d=_11d||dojo.global;var f=_11d[_11e];if(!f||!f._listeners){var d=dojo._listener.getDispatcher();d.target=f;d._listeners=[];f=_11d[_11e]=d;}return f._listeners.push(_11f);},remove:function(_120,_121,_122){var f=(_120||dojo.global)[_121];if(f&&f._listeners&&_122--){delete f._listeners[_122];}}};dojo.connect=function(obj,_123,_124,_125,_126){var a=arguments,args=[],i=0;args.push(dojo.isString(a[0])?null:a[i++],a[i++]);var a1=a[i+1];args.push(dojo.isString(a1)||dojo.isFunction(a1)?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){args.push(a[i]);}return dojo._connect.apply(this,args);};dojo._connect=function(obj,_127,_128,_129){var l=dojo._listener,h=l.add(obj,_127,dojo.hitch(_128,_129));return [obj,_127,h,l];};dojo.disconnect=function(_12a){if(_12a&&_12a[0]!==undefined){dojo._disconnect.apply(this,_12a);delete _12a[0];}};dojo._disconnect=function(obj,_12b,_12c,_12d){_12d.remove(obj,_12b,_12c);};dojo._topics={};dojo.subscribe=function(_12e,_12f,_130){return [_12e,dojo._listener.add(dojo._topics,_12e,dojo.hitch(_12f,_130))];};dojo.unsubscribe=function(_131){if(_131){dojo._listener.remove(dojo._topics,_131[0],_131[1]);}};dojo.publish=function(_132,args){var f=dojo._topics[_132];if(f){f.apply(this,args||[]);}};dojo.connectPublisher=function(_133,obj,_134){var pf=function(){dojo.publish(_133,arguments);};return (_134)?dojo.connect(obj,_134,pf):dojo.connect(obj,pf);};}if(!dojo._hasResource["dojo._base.Deferred"]){dojo._hasResource["dojo._base.Deferred"]=true;dojo.provide("dojo._base.Deferred");dojo.Deferred=function(_135){this.chain=[];this.id=this._nextId();this.fired=-1;this.paused=0;this.results=[null,null];this.canceller=_135;this.silentlyCancelled=false;this.isFiring=false;};dojo.extend(dojo.Deferred,{_nextId:(function(){var n=1;return function(){return n++;};})(),cancel:function(){var err;if(this.fired==-1){if(this.canceller){err=this.canceller(this);}else{this.silentlyCancelled=true;}if(this.fired==-1){if(!(err instanceof Error)){var res=err;var msg="Deferred Cancelled";if(err&&err.toString){msg+=": "+err.toString();}err=new Error(msg);err.dojoType="cancel";err.cancelResult=res;}this.errback(err);}}else{if((this.fired==0)&&(this.results[0] instanceof dojo.Deferred)){this.results[0].cancel();}}},_resback:function(res){this.fired=((res instanceof Error)?1:0);this.results[this.fired]=res;this._fire();},_check:function(){if(this.fired!=-1){if(!this.silentlyCancelled){throw new Error("already called!");}this.silentlyCancelled=false;return;}},callback:function(res){this._check();this._resback(res);},errback:function(res){this._check();if(!(res instanceof Error)){res=new Error(res);}this._resback(res);},addBoth:function(cb,cbfn){var _136=dojo.hitch.apply(dojo,arguments);return this.addCallbacks(_136,_136);},addCallback:function(cb,cbfn){return this.addCallbacks(dojo.hitch.apply(dojo,arguments));},addErrback:function(cb,cbfn){return this.addCallbacks(null,dojo.hitch.apply(dojo,arguments));},addCallbacks:function(cb,eb){this.chain.push([cb,eb]);if(this.fired>=0&&!this.isFiring){this._fire();}return this;},_fire:function(){this.isFiring=true;var _137=this.chain;var _138=this.fired;var res=this.results[_138];var self=this;var cb=null;while((_137.length>0)&&(this.paused==0)){var f=_137.shift()[_138];if(!f){continue;}var func=function(){var ret=f(res);if(typeof ret!="undefined"){res=ret;}_138=((res instanceof Error)?1:0);if(res instanceof dojo.Deferred){cb=function(res){self._resback(res);self.paused--;if((self.paused==0)&&(self.fired>=0)){self._fire();}};this.paused++;}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(err){_138=1;res=err;}}}this.fired=_138;this.results[_138]=res;this.isFiring=false;if((cb)&&(this.paused)){res.addBoth(cb);}}});}if(!dojo._hasResource["dojo._base.json"]){dojo._hasResource["dojo._base.json"]=true;dojo.provide("dojo._base.json");dojo.fromJson=function(json){return eval("("+json+")");};dojo._escapeString=function(str){return ("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};dojo.toJsonIndentStr="\t";dojo.toJson=function(it,_139,_13a){if(it===undefined){return "undefined";}var _13b=typeof it;if(_13b=="number"||_13b=="boolean"){return it+"";}if(it===null){return "null";}if(dojo.isString(it)){return dojo._escapeString(it);}var _13c=arguments.callee;var _13d;_13a=_13a||"";var _13e=_139?_13a+dojo.toJsonIndentStr:"";var tf=it.__json__||it.json;if(dojo.isFunction(tf)){_13d=tf.call(it);if(it!==_13d){return _13c(_13d,_139,_13e);}}if(it.nodeType&&it.cloneNode){throw new Error("Can't serialize DOM nodes");}var sep=_139?" ":"";var _13f=_139?"\n":"";if(dojo.isArray(it)){var res=dojo.map(it,function(obj){var val=_13c(obj,_139,_13e);if(typeof val!="string"){val="undefined";}return _13f+_13e+val;});return "["+res.join(","+sep)+_13f+_13a+"]";}if(_13b=="function"){return null;}var _140=[],key;for(key in it){var _141,val;if(typeof key=="number"){_141="\""+key+"\"";}else{if(typeof key=="string"){_141=dojo._escapeString(key);}else{continue;}}val=_13c(it[key],_139,_13e);if(typeof val!="string"){continue;}_140.push(_13f+_13e+_141+":"+sep+val);}return "{"+_140.join(","+sep)+_13f+_13a+"}";};}if(!dojo._hasResource["dojo._base.Color"]){dojo._hasResource["dojo._base.Color"]=true;dojo.provide("dojo._base.Color");(function(){var d=dojo;dojo.Color=function(_142){if(_142){this.setColor(_142);}};dojo.Color.named={black:[0,0,0],silver:[192,192,192],gray:[128,128,128],white:[255,255,255],maroon:[128,0,0],red:[255,0,0],purple:[128,0,128],fuchsia:[255,0,255],green:[0,128,0],lime:[0,255,0],olive:[128,128,0],yellow:[255,255,0],navy:[0,0,128],blue:[0,0,255],teal:[0,128,128],aqua:[0,255,255],transparent:d.config.transparentColor||[255,255,255]};dojo.extend(dojo.Color,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_143){if(d.isString(_143)){d.colorFromString(_143,this);}else{if(d.isArray(_143)){d.colorFromArray(_143,this);}else{this._set(_143.r,_143.g,_143.b,_143.a);if(!(_143 instanceof d.Color)){this.sanitize();}}}return this;},sanitize:function(){return this;},toRgb:function(){var t=this;return [t.r,t.g,t.b];},toRgba:function(){var t=this;return [t.r,t.g,t.b,t.a];},toHex:function(){var arr=d.map(["r","g","b"],function(x){var s=this[x].toString(16);return s.length<2?"0"+s:s;},this);return "#"+arr.join("");},toCss:function(_144){var t=this,rgb=t.r+", "+t.g+", "+t.b;return (_144?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")";},toString:function(){return this.toCss(true);}});dojo.blendColors=function(_145,end,_146,obj){var t=obj||new d.Color();d.forEach(["r","g","b","a"],function(x){t[x]=_145[x]+(end[x]-_145[x])*_146;if(x!="a"){t[x]=Math.round(t[x]);}});return t.sanitize();};dojo.colorFromRgb=function(_147,obj){var m=_147.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&dojo.colorFromArray(m[1].split(/\s*,\s*/),obj);};dojo.colorFromHex=function(_148,obj){var t=obj||new d.Color(),bits=(_148.length==4)?4:8,mask=(1<<bits)-1;_148=Number("0x"+_148.substr(1));if(isNaN(_148)){return null;}d.forEach(["b","g","r"],function(x){var c=_148&mask;_148>>=bits;t[x]=bits==4?17*c:c;});t.a=1;return t;};dojo.colorFromArray=function(a,obj){var t=obj||new d.Color();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return t.sanitize();};dojo.colorFromString=function(str,obj){var a=d.Color.named[str];return a&&d.colorFromArray(a,obj)||d.colorFromRgb(str,obj)||d.colorFromHex(str,obj);};})();}if(!dojo._hasResource["dojo._base"]){dojo._hasResource["dojo._base"]=true;dojo.provide("dojo._base");}if(!dojo._hasResource["dojo._base.window"]){dojo._hasResource["dojo._base.window"]=true;dojo.provide("dojo._base.window");dojo.doc=window["document"]||null;dojo.body=function(){return dojo.doc.body||dojo.doc.getElementsByTagName("body")[0];};dojo.setContext=function(_149,_14a){dojo.global=_149;dojo.doc=_14a;};dojo.withGlobal=function(_14b,_14c,_14d,_14e){var _14f=dojo.global;try{dojo.global=_14b;return dojo.withDoc.call(null,_14b.document,_14c,_14d,_14e);}finally{dojo.global=_14f;}};dojo.withDoc=function(_150,_151,_152,_153){var _154=dojo.doc,_155=dojo._bodyLtr,oldQ=dojo.isQuirks;try{dojo.doc=_150;delete dojo._bodyLtr;dojo.isQuirks=dojo.doc.compatMode=="BackCompat";if(_152&&typeof _151=="string"){_151=_152[_151];}return _151.apply(_152,_153||[]);}finally{dojo.doc=_154;delete dojo._bodyLtr;if(_155!==undefined){dojo._bodyLtr=_155;}dojo.isQuirks=oldQ;}};}if(!dojo._hasResource["dojo._base.event"]){dojo._hasResource["dojo._base.event"]=true;dojo.provide("dojo._base.event");(function(){var del=(dojo._event_listener={add:function(node,name,fp){if(!node){return;}name=del._normalizeEventName(name);fp=del._fixCallback(name,fp);var _156=name;if(!dojo.isIE&&(name=="mouseenter"||name=="mouseleave")){var ofp=fp;name=(name=="mouseenter")?"mouseover":"mouseout";fp=function(e){if(!dojo.isDescendant(e.relatedTarget,node)){return ofp.call(this,e);}};}node.addEventListener(name,fp,false);return fp;},remove:function(node,_157,_158){if(node){_157=del._normalizeEventName(_157);if(!dojo.isIE&&(_157=="mouseenter"||_157=="mouseleave")){_157=(_157=="mouseenter")?"mouseover":"mouseout";}node.removeEventListener(_157,_158,false);}},_normalizeEventName:function(name){return name.slice(0,2)=="on"?name.slice(2):name;},_fixCallback:function(name,fp){return name!="keypress"?fp:function(e){return fp.call(this,del._fixEvent(e,this));};},_fixEvent:function(evt,_159){switch(evt.type){case "keypress":del._setKeyChar(evt);break;}return evt;},_setKeyChar:function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;},_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39}});dojo.fixEvent=function(evt,_15a){return del._fixEvent(evt,_15a);};dojo.stopEvent=function(evt){evt.preventDefault();evt.stopPropagation();};var _15b=dojo._listener;dojo._connect=function(obj,_15c,_15d,_15e,_15f){var _160=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener);var lid=_160?(_15f?2:1):0,l=[dojo._listener,del,_15b][lid];var h=l.add(obj,_15c,dojo.hitch(_15d,_15e));return [obj,_15c,h,lid];};dojo._disconnect=function(obj,_161,_162,_163){([dojo._listener,del,_15b][_163]).remove(obj,_161,_162);};dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:dojo.isSafari?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,copyKey:dojo.isMac&&!dojo.isAIR?(dojo.isSafari?91:224):17};var _164=dojo.isMac?"metaKey":"ctrlKey";dojo.isCopyKey=function(e){return e[_164];};if(dojo.isIE){dojo.mouseButtons={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_165){return e.button&_165;},isLeft:function(e){return e.button&1;},isMiddle:function(e){return e.button&4;},isRight:function(e){return e.button&2;}};}else{dojo.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_166){return e.button==_166;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}if(dojo.isIE){var _167=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};var iel=dojo._listener;var _168=(dojo._ieListenersName="_"+dojo._scopeName+"_listeners");if(!dojo.config._allow_leaks){_15b=iel=dojo._ie_listener={handlers:[],add:function(_169,_16a,_16b){_169=_169||dojo.global;var f=_169[_16a];if(!f||!f[_168]){var d=dojo._getIeDispatcher();d.target=f&&(ieh.push(f)-1);d[_168]=[];f=_169[_16a]=d;}return f[_168].push(ieh.push(_16b)-1);},remove:function(_16c,_16d,_16e){var f=(_16c||dojo.global)[_16d],l=f&&f[_168];if(f&&l&&_16e--){delete ieh[l[_16e]];delete l[_16e];}}};var ieh=iel.handlers;}dojo.mixin(del,{add:function(node,_16f,fp){if(!node){return;}_16f=del._normalizeEventName(_16f);if(_16f=="onkeypress"){var kd=node.onkeydown;if(!kd||!kd[_168]||!kd._stealthKeydownHandle){var h=del.add(node,"onkeydown",del._stealthKeyDown);kd=node.onkeydown;kd._stealthKeydownHandle=h;kd._stealthKeydownRefs=1;}else{kd._stealthKeydownRefs++;}}return iel.add(node,_16f,del._fixCallback(fp));},remove:function(node,_170,_171){_170=del._normalizeEventName(_170);iel.remove(node,_170,_171);if(_170=="onkeypress"){var kd=node.onkeydown;if(--kd._stealthKeydownRefs<=0){iel.remove(node,"onkeydown",kd._stealthKeydownHandle);delete kd._stealthKeydownHandle;}}},_normalizeEventName:function(_172){return _172.slice(0,2)!="on"?"on"+_172:_172;},_nop:function(){},_fixEvent:function(evt,_173){if(!evt){var w=_173&&(_173.ownerDocument||_173.document||_173).parentWindow||window;evt=w.event;}if(!evt){return (evt);}evt.target=evt.srcElement;evt.currentTarget=(_173||evt.srcElement);evt.layerX=evt.offsetX;evt.layerY=evt.offsetY;var se=evt.srcElement,doc=(se&&se.ownerDocument)||document;var _174=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;var _175=dojo._getIeDocumentElementOffset();evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_174.scrollLeft||0)-_175.x;evt.pageY=evt.clientY+(_174.scrollTop||0)-_175.y;if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}evt.stopPropagation=del._stopPropagation;evt.preventDefault=del._preventDefault;return del._fixKeys(evt);},_fixKeys:function(evt){switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;del._setKeyChar(evt);break;}return evt;},_stealthKeyDown:function(evt){var kp=evt.currentTarget.onkeypress;if(!kp||!kp[_168]){return;}var k=evt.keyCode;var _176=k!=13&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_176||evt.ctrlKey){var c=_176?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});kp.call(evt.currentTarget,faux);evt.cancelBubble=faux.cancelBubble;evt.returnValue=faux.returnValue;_167(evt,faux.keyCode);}},_stopPropagation:function(){this.cancelBubble=true;},_preventDefault:function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){_167(this,0);}this.returnValue=false;}});dojo.stopEvent=function(evt){evt=evt||window.event;del._stopPropagation.call(evt);del._preventDefault.call(evt);};}del._synthesizeEvent=function(evt,_177){var faux=dojo.mixin({},evt,_177);del._setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};if(dojo.isOpera){dojo.mixin(del,{_fixEvent:function(evt,_178){switch(evt.type){case "keypress":var c=evt.which;if(c==3){c=99;}c=c<41&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return del._synthesizeEvent(evt,{charCode:c});}return evt;}});}if(dojo.isWebKit){del._add=del.add;del._remove=del.remove;dojo.mixin(del,{add:function(node,_179,fp){if(!node){return;}var _17a=del._add(node,_179,fp);if(del._normalizeEventName(_179)=="keypress"){_17a._stealthKeyDownHandle=del._add(node,"keydown",function(evt){var k=evt.keyCode;var _17b=k!=13&&k!=32&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_17b||evt.ctrlKey){var c=_17b?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if(!evt.shiftKey&&c>=65&&c<=90){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});fp.call(evt.currentTarget,faux);}});}return _17a;},remove:function(node,_17c,_17d){if(node){if(_17d._stealthKeyDownHandle){del._remove(node,"keydown",_17d._stealthKeyDownHandle);}del._remove(node,_17c,_17d);}},_fixEvent:function(evt,_17e){switch(evt.type){case "keypress":if(evt.faux){return evt;}var c=evt.charCode;c=c>=32?c:0;return del._synthesizeEvent(evt,{charCode:c,faux:true});}return evt;}});}})();if(dojo.isIE){dojo._ieDispatcher=function(args,_17f){var ap=Array.prototype,h=dojo._ie_listener.handlers,c=args.callee,ls=c[dojo._ieListenersName],t=h[c.target];var r=t&&t.apply(_17f,args);var lls=[].concat(ls);for(var i in lls){var f=h[lls[i]];if(!(i in ap)&&f){f.apply(_17f,args);}}return r;};dojo._getIeDispatcher=function(){return new Function(dojo._scopeName+"._ieDispatcher(arguments, this)");};dojo._event_listener._fixCallback=function(fp){var f=dojo._event_listener._fixEvent;return function(e){return fp.call(this,f(e,this));};};}}if(!dojo._hasResource["dojo._base.html"]){dojo._hasResource["dojo._base.html"]=true;dojo.provide("dojo._base.html");try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}if(dojo.isIE||dojo.isOpera){dojo.byId=function(id,doc){if(typeof id!="string"){return id;}var _180=doc||dojo.doc,te=_180.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_180.all[id];if(!eles||eles.nodeName){eles=[eles];}var i=0;while((te=eles[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return te;}}}};}else{dojo.byId=function(id,doc){return (typeof id=="string")?(doc||dojo.doc).getElementById(id):id;};}(function(){var d=dojo;var byId=d.byId;var _181=null,_182;d.addOnWindowUnload(function(){_181=null;});dojo._destroyElement=dojo.destroy=function(node){node=byId(node);try{var doc=node.ownerDocument;if(!_181||_182!=doc){_181=doc.createElement("div");_182=doc;}_181.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_181.innerHTML="";}catch(e){}};dojo.isDescendant=function(node,_183){try{node=byId(node);_183=byId(_183);while(node){if(node==_183){return true;}node=node.parentNode;}}catch(e){}return false;};dojo.setSelectable=function(node,_184){node=byId(node);if(d.isMozilla){node.style.MozUserSelect=_184?"":"none";}else{if(d.isKhtml||d.isWebKit){node.style.KhtmlUserSelect=_184?"auto":"none";}else{if(d.isIE){var v=(node.unselectable=_184?"":"on");d.query("*",node).forEach("item.unselectable = '"+v+"'");}}}};var _185=function(node,ref){var _186=ref.parentNode;if(_186){_186.insertBefore(node,ref);}};var _187=function(node,ref){var _188=ref.parentNode;if(_188){if(_188.lastChild==ref){_188.appendChild(node);}else{_188.insertBefore(node,ref.nextSibling);}}};dojo.place=function(node,_189,_18a){_189=byId(_189);if(typeof node=="string"){node=node.charAt(0)=="<"?d._toDom(node,_189.ownerDocument):byId(node);}if(typeof _18a=="number"){var cn=_189.childNodes;if(!cn.length||cn.length<=_18a){_189.appendChild(node);}else{_185(node,cn[_18a<0?0:_18a]);}}else{switch(_18a){case "before":_185(node,_189);break;case "after":_187(node,_189);break;case "replace":_189.parentNode.replaceChild(node,_189);break;case "only":d.empty(_189);_189.appendChild(node);break;case "first":if(_189.firstChild){_185(node,_189.firstChild);break;}default:_189.appendChild(node);}}return node;};dojo.boxModel="content-box";if(d.isIE){d.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}var gcs;if(d.isWebKit){gcs=function(node){var s;if(node.nodeType==1){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}}return s||{};};}else{if(d.isIE){gcs=function(node){return node.nodeType==1?node.currentStyle:{};};}else{gcs=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}dojo.getComputedStyle=gcs;if(!d.isIE){d._toPixelValue=function(_18b,_18c){return parseFloat(_18c)||0;};}else{d._toPixelValue=function(_18d,_18e){if(!_18e){return 0;}if(_18e=="medium"){return 4;}if(_18e.slice&&_18e.slice(-2)=="px"){return parseFloat(_18e);}with(_18d){var _18f=style.left;var _190=runtimeStyle.left;runtimeStyle.left=currentStyle.left;try{style.left=_18e;_18e=style.pixelLeft;}catch(e){_18e=0;}style.left=_18f;runtimeStyle.left=_190;}return _18e;};}var px=d._toPixelValue;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};dojo._getOpacity=d.isIE?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return gcs(node).opacity;};dojo._setOpacity=d.isIE?function(node,_191){var ov=_191*100;node.style.zoom=1;af(node,1).Enabled=!(_191==1);if(!af(node)){node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}if(node.nodeName.toLowerCase()=="tr"){d.query("> td",node).forEach(function(i){d._setOpacity(i,_191);});}return _191;}:function(node,_192){return node.style.opacity=_192;};var _193={left:true,top:true};var _194=/margin|padding|width|height|max|min|offset/;var _195=function(node,type,_196){type=type.toLowerCase();if(d.isIE){if(_196=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_196){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _193)){_193[type]=_194.test(type);}return _193[type]?px(node,_196):_196;};var _197=d.isIE?"styleFloat":"cssFloat",_198={"cssFloat":_197,"styleFloat":_197,"float":_197};dojo.style=function(node,_199,_19a){var n=byId(node),args=arguments.length,op=(_199=="opacity");_199=_198[_199]||_199;if(args==3){return op?d._setOpacity(n,_19a):n.style[_199]=_19a;}if(args==2&&op){return d._getOpacity(n);}var s=gcs(n);if(args==2&&typeof _199!="string"){for(var x in _199){d.style(node,x,_199[x]);}return s;}return (args==1)?s:_195(n,_199,s[_199]||n.style[_199]);};dojo._getPadExtents=function(n,_19b){var s=_19b||gcs(n),l=px(n,s.paddingLeft),t=px(n,s.paddingTop);return {l:l,t:t,w:l+px(n,s.paddingRight),h:t+px(n,s.paddingBottom)};};dojo._getBorderExtents=function(n,_19c){var ne="none",s=_19c||gcs(n),bl=(s.borderLeftStyle!=ne?px(n,s.borderLeftWidth):0),bt=(s.borderTopStyle!=ne?px(n,s.borderTopWidth):0);return {l:bl,t:bt,w:bl+(s.borderRightStyle!=ne?px(n,s.borderRightWidth):0),h:bt+(s.borderBottomStyle!=ne?px(n,s.borderBottomWidth):0)};};dojo._getPadBorderExtents=function(n,_19d){var s=_19d||gcs(n),p=d._getPadExtents(n,s),b=d._getBorderExtents(n,s);return {l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h};};dojo._getMarginExtents=function(n,_19e){var s=_19e||gcs(n),l=px(n,s.marginLeft),t=px(n,s.marginTop),r=px(n,s.marginRight),b=px(n,s.marginBottom);if(d.isWebKit&&(s.position!="absolute")){r=l;}return {l:l,t:t,w:l+r,h:t+b};};dojo._getMarginBox=function(node,_19f){var s=_19f||gcs(node),me=d._getMarginExtents(node,s);var l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode;if(d.isMoz){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl,t=st;}else{if(p&&p.style){var pcs=gcs(p);if(pcs.overflow!="visible"){var be=d._getBorderExtents(p,pcs);l+=be.l,t+=be.t;}}}}else{if(d.isOpera||(d.isIE>7&&!d.isQuirks)){if(p){be=d._getBorderExtents(p);l-=be.l;t-=be.t;}}}return {l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};dojo._getContentBox=function(node,_1a0){var s=_1a0||gcs(node),pe=d._getPadExtents(node,s),be=d._getBorderExtents(node,s),w=node.clientWidth,h;if(!w){w=node.offsetWidth,h=node.offsetHeight;}else{h=node.clientHeight,be.w=be.h=0;}if(d.isOpera){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};dojo._getBorderBox=function(node,_1a1){var s=_1a1||gcs(node),pe=d._getPadExtents(node,s),cb=d._getContentBox(node,s);return {l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h};};dojo._setBox=function(node,l,t,w,h,u){u=u||"px";var s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};dojo._isButtonTag=function(node){return node.tagName=="BUTTON"||node.tagName=="INPUT"&&(node.getAttribute("type")||"").toUpperCase()=="BUTTON";};dojo._usesBorderBox=function(node){var n=node.tagName;return d.boxModel=="border-box"||n=="TABLE"||d._isButtonTag(node);};dojo._setContentSize=function(node,_1a2,_1a3,_1a4){if(d._usesBorderBox(node)){var pb=d._getPadBorderExtents(node,_1a4);if(_1a2>=0){_1a2+=pb.w;}if(_1a3>=0){_1a3+=pb.h;}}d._setBox(node,NaN,NaN,_1a2,_1a3);};dojo._setMarginBox=function(node,_1a5,_1a6,_1a7,_1a8,_1a9){var s=_1a9||gcs(node),bb=d._usesBorderBox(node),pb=bb?_1aa:d._getPadBorderExtents(node,s);if(d.isWebKit){if(d._isButtonTag(node)){var ns=node.style;if(_1a7>=0&&!ns.width){ns.width="4px";}if(_1a8>=0&&!ns.height){ns.height="4px";}}}var mb=d._getMarginExtents(node,s);if(_1a7>=0){_1a7=Math.max(_1a7-pb.w-mb.w,0);}if(_1a8>=0){_1a8=Math.max(_1a8-pb.h-mb.h,0);}d._setBox(node,_1a5,_1a6,_1a7,_1a8);};var _1aa={l:0,t:0,w:0,h:0};dojo.marginBox=function(node,box){var n=byId(node),s=gcs(n),b=box;return !b?d._getMarginBox(n,s):d._setMarginBox(n,b.l,b.t,b.w,b.h,s);};dojo.contentBox=function(node,box){var n=byId(node),s=gcs(n),b=box;return !b?d._getContentBox(n,s):d._setContentSize(n,b.w,b.h,s);};var _1ab=function(node,prop){if(!(node=(node||0).parentNode)){return 0;}var val,_1ac=0,_1ad=d.body();while(node&&node.style){if(gcs(node).position=="fixed"){return 0;}val=node[prop];if(val){_1ac+=val-0;if(node==_1ad){break;}}node=node.parentNode;}return _1ac;};dojo._docScroll=function(){var n=d.global;return "pageXOffset" in n?{x:n.pageXOffset,y:n.pageYOffset}:(n=d.doc.documentElement,n.clientHeight?{x:d._fixIeBiDiScrollLeft(n.scrollLeft),y:n.scrollTop}:(n=d.body(),{x:n.scrollLeft||0,y:n.scrollTop||0}));};dojo._isBodyLtr=function(){return "_bodyLtr" in d?d._bodyLtr:d._bodyLtr=(d.body().dir||d.doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};dojo._getIeDocumentElementOffset=function(){var de=d.doc.documentElement;if(d.isIE<8){var r=de.getBoundingClientRect();var l=r.left,t=r.top;if(d.isIE<7){l+=de.clientLeft;t+=de.clientTop;}return {x:l<0?0:l,y:t<0?0:t};}else{return {x:0,y:0};}};dojo._fixIeBiDiScrollLeft=function(_1ae){var dd=d.doc;if(d.isIE<8&&!d._isBodyLtr()){var de=d.isQuirks?dd.body:dd.documentElement;return _1ae+de.clientWidth-de.scrollWidth;}return _1ae;};dojo._abs=dojo.position=function(node,_1af){var db=d.body(),dh=db.parentNode,ret;node=byId(node);if(node["getBoundingClientRect"]){ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(d.isIE){var _1b0=d._getIeDocumentElementOffset();ret.x-=_1b0.x+(d.isQuirks?db.clientLeft+db.offsetLeft:0);ret.y-=_1b0.y+(d.isQuirks?db.clientTop+db.offsetTop:0);}else{if(d.isFF==3){var cs=gcs(dh);ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth);ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTopWidth);}}}else{ret={x:0,y:0,w:node.offsetWidth,h:node.offsetHeight};if(node["offsetParent"]){ret.x-=_1ab(node,"scrollLeft");ret.y-=_1ab(node,"scrollTop");var _1b1=node;do{var n=_1b1.offsetLeft,t=_1b1.offsetTop;ret.x+=isNaN(n)?0:n;ret.y+=isNaN(t)?0:t;cs=gcs(_1b1);if(_1b1!=node){if(d.isMoz){ret.x+=2*px(_1b1,cs.borderLeftWidth);ret.y+=2*px(_1b1,cs.borderTopWidth);}else{ret.x+=px(_1b1,cs.borderLeftWidth);ret.y+=px(_1b1,cs.borderTopWidth);}}if(d.isMoz&&cs.position=="static"){var _1b2=_1b1.parentNode;while(_1b2!=_1b1.offsetParent){var pcs=gcs(_1b2);if(pcs.position=="static"){ret.x+=px(_1b1,pcs.borderLeftWidth);ret.y+=px(_1b1,pcs.borderTopWidth);}_1b2=_1b2.parentNode;}}_1b1=_1b1.offsetParent;}while((_1b1!=dh)&&_1b1);}else{if(node.x&&node.y){ret.x+=isNaN(node.x)?0:node.x;ret.y+=isNaN(node.y)?0:node.y;}}}if(_1af){var _1b3=d._docScroll();ret.x+=_1b3.x;ret.y+=_1b3.y;}return ret;};dojo.coords=function(node,_1b4){var n=byId(node),s=gcs(n),mb=d._getMarginBox(n,s);var abs=d.position(n,_1b4);mb.x=abs.x;mb.y=abs.y;return mb;};var _1b5={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"},_1b6={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"},_1b7={innerHTML:1,className:1,htmlFor:d.isIE,value:1};var _1b8=function(name){return _1b6[name.toLowerCase()]||name;};var _1b9=function(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified;};dojo.hasAttr=function(node,name){var lc=name.toLowerCase();return _1b7[_1b5[lc]||name]||_1b9(byId(node),_1b6[lc]||name);};var _1ba={},_1bb=0,_1bc=dojo._scopeName+"attrid",_1bd={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};dojo.attr=function(node,name,_1be){node=byId(node);var args=arguments.length,prop;if(args==2&&typeof name!="string"){for(var x in name){d.attr(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_1bf=_1b5[lc]||name,_1c0=_1b7[_1bf],_1c1=_1b6[lc]||name;if(args==3){do{if(_1bf=="style"&&typeof _1be!="string"){d.style(node,_1be);break;}if(_1bf=="innerHTML"){if(d.isIE&&node.tagName.toLowerCase() in _1bd){d.empty(node);node.appendChild(d._toDom(_1be,node.ownerDocument));}else{node[_1bf]=_1be;}break;}if(d.isFunction(_1be)){var _1c2=d.attr(node,_1bc);if(!_1c2){_1c2=_1bb++;d.attr(node,_1bc,_1c2);}if(!_1ba[_1c2]){_1ba[_1c2]={};}var h=_1ba[_1c2][_1bf];if(h){d.disconnect(h);}else{try{delete node[_1bf];}catch(e){}}_1ba[_1c2][_1bf]=d.connect(node,_1bf,_1be);break;}if(_1c0||typeof _1be=="boolean"){node[_1bf]=_1be;break;}node.setAttribute(_1c1,_1be);}while(false);return node;}_1be=node[_1bf];if(_1c0&&typeof _1be!="undefined"){return _1be;}if(_1bf!="href"&&(typeof _1be=="boolean"||d.isFunction(_1be))){return _1be;}return _1b9(node,_1c1)?node.getAttribute(_1c1):null;};dojo.removeAttr=function(node,name){byId(node).removeAttribute(_1b8(name));};dojo.getNodeProp=function(node,name){node=byId(node);var lc=name.toLowerCase(),_1c3=_1b5[lc]||name;if((_1c3 in node)&&_1c3!="href"){return node[_1c3];}var _1c4=_1b6[lc]||name;return _1b9(node,_1c4)?node.getAttribute(_1c4):null;};dojo.create=function(tag,_1c5,_1c6,pos){var doc=d.doc;if(_1c6){_1c6=byId(_1c6);doc=_1c6.ownerDocument;}if(typeof tag=="string"){tag=doc.createElement(tag);}if(_1c5){d.attr(tag,_1c5);}if(_1c6){d.place(tag,_1c6,pos);}return tag;};d.empty=d.isIE?function(node){node=byId(node);for(var c;c=node.lastChild;){d.destroy(c);}}:function(node){byId(node).innerHTML="";};var _1c7={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_1c8=/<\s*([\w\:]+)/,_1c9={},_1ca=0,_1cb="__"+d._scopeName+"ToDomId";for(var _1cc in _1c7){var tw=_1c7[_1cc];tw.pre=_1cc=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}d._toDom=function(frag,doc){doc=doc||d.doc;var _1cd=doc[_1cb];if(!_1cd){doc[_1cb]=_1cd=++_1ca+"";_1c9[_1cd]=doc.createElement("div");}frag+="";var _1ce=frag.match(_1c8),tag=_1ce?_1ce[1].toLowerCase():"",_1cf=_1c9[_1cd],wrap,i,fc,df;if(_1ce&&_1c7[tag]){wrap=_1c7[tag];_1cf.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_1cf=_1cf.firstChild;}}else{_1cf.innerHTML=frag;}if(_1cf.childNodes.length==1){return _1cf.removeChild(_1cf.firstChild);}df=doc.createDocumentFragment();while(fc=_1cf.firstChild){df.appendChild(fc);}return df;};var _1d0="className";dojo.hasClass=function(node,_1d1){return ((" "+byId(node)[_1d0]+" ").indexOf(" "+_1d1+" ")>=0);};var _1d2=/\s+/,a1=[""],_1d3=function(s){if(typeof s=="string"||s instanceof String){if(s.indexOf(" ")<0){a1[0]=s;return a1;}else{return s.split(_1d2);}}return s;};dojo.addClass=function(node,_1d4){node=byId(node);_1d4=_1d3(_1d4);var cls=" "+node[_1d0]+" ";for(var i=0,len=_1d4.length,c;i<len;++i){c=_1d4[i];if(c&&cls.indexOf(" "+c+" ")<0){cls+=c+" ";}}node[_1d0]=d.trim(cls);};dojo.removeClass=function(node,_1d5){node=byId(node);var cls;if(_1d5!==undefined){_1d5=_1d3(_1d5);cls=" "+node[_1d0]+" ";for(var i=0,len=_1d5.length;i<len;++i){cls=cls.replace(" "+_1d5[i]+" "," ");}cls=d.trim(cls);}else{cls="";}if(node[_1d0]!=cls){node[_1d0]=cls;}};dojo.toggleClass=function(node,_1d6,_1d7){if(_1d7===undefined){_1d7=!d.hasClass(node,_1d6);}d[_1d7?"addClass":"removeClass"](node,_1d6);};})();}if(!dojo._hasResource["dojo._base.NodeList"]){dojo._hasResource["dojo._base.NodeList"]=true;dojo.provide("dojo._base.NodeList");(function(){var d=dojo;var ap=Array.prototype,aps=ap.slice,apc=ap.concat;var tnl=function(a,_1d8,_1d9){if(!a.sort){a=aps.call(a,0);}var ctor=_1d9||this._NodeListCtor||d._NodeListCtor;a.constructor=ctor;dojo._mixin(a,ctor.prototype);a._NodeListCtor=ctor;return _1d8?a._stash(_1d8):a;};var _1da=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||d.global;return function(node){a[0]=node;return f.apply(o,a);};};var _1db=function(f,o){return function(){this.forEach(_1da(f,arguments,o));return this;};};var _1dc=function(f,o){return function(){return this.map(_1da(f,arguments,o));};};var _1dd=function(f,o){return function(){return this.filter(_1da(f,arguments,o));};};var _1de=function(f,g,o){return function(){var a=arguments,body=_1da(f,a,o);if(g.call(o||d.global,a)){return this.map(body);}this.forEach(body);return this;};};var _1df=function(a){return a.length==1&&(typeof a[0]=="string");};var _1e0=function(node){var p=node.parentNode;if(p){p.removeChild(node);}};dojo.NodeList=function(){return tnl(Array.apply(null,arguments));};d._NodeListCtor=d.NodeList;var nl=d.NodeList,nlp=nl.prototype;nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=_1dc;nl._adaptAsForEach=_1db;nl._adaptAsFilter=_1dd;nl._adaptWithCondition=_1de;d.forEach(["slice","splice"],function(name){var f=ap[name];nlp[name]=function(){return this._wrap(f.apply(this,arguments),name=="slice"?this:null);};});d.forEach(["indexOf","lastIndexOf","every","some"],function(name){var f=d[name];nlp[name]=function(){return f.apply(d,[this].concat(aps.call(arguments,0)));};});d.forEach(["attr","style"],function(name){nlp[name]=_1de(d[name],_1df);});d.forEach(["connect","addClass","removeClass","toggleClass","empty","removeAttr"],function(name){nlp[name]=_1db(d[name]);});dojo.extend(dojo.NodeList,{_normalize:function(_1e1,_1e2){var _1e3=_1e1.parse===true?true:false;if(typeof _1e1.template=="string"){var _1e4=_1e1.templateFunc||(dojo.string&&dojo.string.substitute);_1e1=_1e4?_1e4(_1e1.template,_1e1):_1e1;}var type=(typeof _1e1);if(type=="string"||type=="number"){_1e1=dojo._toDom(_1e1,(_1e2&&_1e2.ownerDocument));if(_1e1.nodeType==11){_1e1=dojo._toArray(_1e1.childNodes);}else{_1e1=[_1e1];}}else{if(!dojo.isArrayLike(_1e1)){_1e1=[_1e1];}else{if(!dojo.isArray(_1e1)){_1e1=dojo._toArray(_1e1);}}}if(_1e3){_1e1._runParse=true;}return _1e1;},_cloneNode:function(node){return node.cloneNode(true);},_place:function(ary,_1e5,_1e6,_1e7){if(_1e5.nodeType!=1&&_1e6=="only"){return;}var _1e8=_1e5,_1e9;var _1ea=ary.length;for(var i=_1ea-1;i>=0;i--){var node=(_1e7?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_1e9){_1e9=_1e8.ownerDocument.createElement("div");}_1e9.appendChild(node);dojo.parser.parse(_1e9);node=_1e9.firstChild;while(_1e9.firstChild){_1e9.removeChild(_1e9.firstChild);}}if(i==_1ea-1){dojo.place(node,_1e8,_1e6);}else{_1e8.parentNode.insertBefore(node,_1e8);}_1e8=node;}},_stash:function(_1eb){this._parent=_1eb;return this;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor();}},concat:function(item){var t=d.isArray(this)?this:aps.call(this,0),m=d.map(arguments,function(a){return a&&!d.isArray(a)&&(typeof NodeList!="undefined"&&a.constructor===NodeList||a.constructor===this._NodeListCtor)?aps.call(a,0):a;});return this._wrap(apc.apply(t,m),this);},map:function(func,obj){return this._wrap(d.map(this,func,obj),this);},forEach:function(_1ec,_1ed){d.forEach(this,_1ec,_1ed);return this;},coords:_1dc(d.coords),position:_1dc(d.position),place:function(_1ee,_1ef){var item=d.query(_1ee)[0];return this.forEach(function(node){d.place(node,item,_1ef);});},orphan:function(_1f0){return (_1f0?d._filterQueryResult(this,_1f0):this).forEach(_1e0);},adopt:function(_1f1,_1f2){return d.query(_1f1).place(this[0],_1f2)._stash(this);},query:function(_1f3){if(!_1f3){return this;}var ret=this.map(function(node){return d.query(_1f3,node).filter(function(_1f4){return _1f4!==undefined;});});return this._wrap(apc.apply([],ret),this);},filter:function(_1f5){var a=arguments,_1f6=this,_1f7=0;if(typeof _1f5=="string"){_1f6=d._filterQueryResult(this,a[0]);if(a.length==1){return _1f6._stash(this);}_1f7=1;}return this._wrap(d.filter(_1f6,a[_1f7],a[_1f7+1]),this);},addContent:function(_1f8,_1f9){_1f8=this._normalize(_1f8,this[0]);for(var i=0,node;node=this[i];i++){this._place(_1f8,node,_1f9,i>0);}return this;},instantiate:function(_1fa,_1fb){var c=d.isFunction(_1fa)?_1fa:d.getObject(_1fa);_1fb=_1fb||{};return this.forEach(function(node){new c(_1fb,node);});},at:function(){var t=new this._NodeListCtor();d.forEach(arguments,function(i){if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});nl.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];d.forEach(nl.events,function(evt){var _1fc="on"+evt;nlp[_1fc]=function(a,b){return this.connect(_1fc,a,b);};});})();}if(!dojo._hasResource["dojo._base.query"]){dojo._hasResource["dojo._base.query"]=true;if(typeof dojo!="undefined"){dojo.provide("dojo._base.query");}(function(d){var trim=d.trim;var each=d.forEach;var qlc=d._NodeListCtor=d.NodeList;var _1fd=function(){return d.doc;};var _1fe=((d.isWebKit||d.isMozilla)&&((_1fd().compatMode)=="BackCompat"));var _1ff=!!_1fd().firstChild["children"]?"children":"childNodes";var _200=">~+";var _201=false;var _202=function(){return true;};var _203=function(_204){if(_200.indexOf(_204.slice(-1))>=0){_204+=" * ";}else{_204+=" ";}var ts=function(s,e){return trim(_204.slice(s,e));};var _205=[];var _206=-1,_207=-1,_208=-1,_209=-1,_20a=-1,inId=-1,_20b=-1,lc="",cc="",_20c;var x=0,ql=_204.length,_20d=null,_20e=null;var _20f=function(){if(_20b>=0){var tv=(_20b==x)?null:ts(_20b,x);_20d[(_200.indexOf(tv)<0)?"tag":"oper"]=tv;_20b=-1;}};var _210=function(){if(inId>=0){_20d.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _211=function(){if(_20a>=0){_20d.classes.push(ts(_20a+1,x).replace(/\\/g,""));_20a=-1;}};var _212=function(){_210();_20f();_211();};var _213=function(){_212();if(_209>=0){_20d.pseudos.push({name:ts(_209+1,x)});}_20d.loops=(_20d.pseudos.length||_20d.attrs.length||_20d.classes.length);_20d.oquery=_20d.query=ts(_20c,x);_20d.otag=_20d.tag=(_20d["oper"])?null:(_20d.tag||"*");if(_20d.tag){_20d.tag=_20d.tag.toUpperCase();}if(_205.length&&(_205[_205.length-1].oper)){_20d.infixOper=_205.pop();_20d.query=_20d.infixOper.query+" "+_20d.query;}_205.push(_20d);_20d=null;};for(;lc=cc,cc=_204.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_20d){_20c=x;_20d={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return (_201)?this.otag:this.tag;}};_20b=x;}if(_206>=0){if(cc=="]"){if(!_20e.attr){_20e.attr=ts(_206+1,x);}else{_20e.matchFor=ts((_208||_206+1),x);}var cmf=_20e.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_20e.matchFor=cmf.slice(1,-1);}}_20d.attrs.push(_20e);_20e=null;_206=_208=-1;}else{if(cc=="="){var _214=("|~^$*".indexOf(lc)>=0)?lc:"";_20e.type=_214+cc;_20e.attr=ts(_206+1,x-_214.length);_208=x+1;}}}else{if(_207>=0){if(cc==")"){if(_209>=0){_20e.value=ts(_207+1,x);}_209=_207=-1;}}else{if(cc=="#"){_212();inId=x+1;}else{if(cc=="."){_212();_20a=x;}else{if(cc==":"){_212();_209=x;}else{if(cc=="["){_212();_206=x;_20e={};}else{if(cc=="("){if(_209>=0){_20e={name:ts(_209+1,x),value:null};_20d.pseudos.push(_20e);}_207=x;}else{if((cc==" ")&&(lc!=cc)){_213();}}}}}}}}}return _205;};var _215=function(_216,_217){if(!_216){return _217;}if(!_217){return _216;}return function(){return _216.apply(window,arguments)&&_217.apply(window,arguments);};};var _218=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _219=function(n){return (1==n.nodeType);};var _21a="";var _21b=function(elem,attr){if(!elem){return _21a;}if(attr=="class"){return elem.className||_21a;}if(attr=="for"){return elem.htmlFor||_21a;}if(attr=="style"){return elem.style.cssText||_21a;}return (_201?elem.getAttribute(attr):elem.getAttribute(attr,2))||_21a;};var _21c={"*=":function(attr,_21d){return function(elem){return (_21b(elem,attr).indexOf(_21d)>=0);};},"^=":function(attr,_21e){return function(elem){return (_21b(elem,attr).indexOf(_21e)==0);};},"$=":function(attr,_21f){var tval=" "+_21f;return function(elem){var ea=" "+_21b(elem,attr);return (ea.lastIndexOf(_21f)==(ea.length-_21f.length));};},"~=":function(attr,_220){var tval=" "+_220+" ";return function(elem){var ea=" "+_21b(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_221){var _222=" "+_221+"-";return function(elem){var ea=" "+_21b(elem,attr);return ((ea==_221)||(ea.indexOf(_222)==0));};},"=":function(attr,_223){return function(elem){return (_21b(elem,attr)==_223);};}};var _224=(typeof _1fd().firstChild.nextElementSibling=="undefined");var _225=!_224?"nextElementSibling":"nextSibling";var _226=!_224?"previousElementSibling":"previousSibling";var _227=(_224?_219:_202);var _228=function(node){while(node=node[_226]){if(_227(node)){return false;}}return true;};var _229=function(node){while(node=node[_225]){if(_227(node)){return false;}}return true;};var _22a=function(node){var root=node.parentNode;var i=0,tret=root[_1ff],ci=(node["_i"]||-1),cl=(root["_l"]||-1);if(!tret){return -1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return ci;}root["_l"]=l;ci=-1;for(var te=root["firstElementChild"]||root["firstChild"];te;te=te[_225]){if(_227(te)){te["_i"]=++i;if(node===te){ci=i;}}}return ci;};var _22b=function(elem){return !((_22a(elem))%2);};var _22c=function(elem){return ((_22a(elem))%2);};var _22d={"checked":function(name,_22e){return function(elem){return !!("checked" in elem?elem.checked:elem.selected);};},"first-child":function(){return _228;},"last-child":function(){return _229;},"only-child":function(name,_22f){return function(node){if(!_228(node)){return false;}if(!_229(node)){return false;}return true;};},"empty":function(name,_230){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(name,_231){var cz=_231.charAt(0);if(cz=="\""||cz=="'"){_231=_231.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_231)>=0);};},"not":function(name,_232){var p=_203(_232)[0];var _233={el:1};if(p.tag!="*"){_233.tag=1;}if(!p.classes.length){_233.classes=1;}var ntf=_234(p,_233);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_235){var pi=parseInt;if(_235=="odd"){return _22c;}else{if(_235=="even"){return _22b;}}if(_235.indexOf("n")!=-1){var _236=_235.split("n",2);var pred=_236[0]?((_236[0]=="-")?-1:pi(_236[0])):1;var idx=_236[1]?pi(_236[1]):0;var lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return function(elem){var i=_22a(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_235=idx;}}var _237=pi(_235);return function(elem){return (_22a(elem)==_237);};}};var _238=(d.isIE)?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_201?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _234=function(_239,_23a){if(!_239){return _202;}_23a=_23a||{};var ff=null;if(!("el" in _23a)){ff=_215(ff,_219);}if(!("tag" in _23a)){if(_239.tag!="*"){ff=_215(ff,function(elem){return (elem&&(elem.tagName==_239.getTag()));});}}if(!("classes" in _23a)){each(_239.classes,function(_23b,idx,arr){var re=new RegExp("(?:^|\\s)"+_23b+"(?:\\s|$)");ff=_215(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _23a)){each(_239.pseudos,function(_23c){var pn=_23c.name;if(_22d[pn]){ff=_215(ff,_22d[pn](pn,_23c.value));}});}if(!("attrs" in _23a)){each(_239.attrs,function(attr){var _23d;var a=attr.attr;if(attr.type&&_21c[attr.type]){_23d=_21c[attr.type](a,attr.matchFor);}else{if(a.length){_23d=_238(a);}}if(_23d){ff=_215(ff,_23d);}});}if(!("id" in _23a)){if(_239.id){ff=_215(ff,function(elem){return (!!elem&&(elem.id==_239.id));});}}if(!ff){if(!("default" in _23a)){ff=_202;}}return ff;};var _23e=function(_23f){return function(node,ret,bag){while(node=node[_225]){if(_224&&(!_219(node))){continue;}if((!bag||_240(node,bag))&&_23f(node)){ret.push(node);}break;}return ret;};};var _241=function(_242){return function(root,ret,bag){var te=root[_225];while(te){if(_227(te)){if(bag&&!_240(te,bag)){break;}if(_242(te)){ret.push(te);}}te=te[_225];}return ret;};};var _243=function(_244){_244=_244||_202;return function(root,ret,bag){var te,x=0,tret=root[_1ff];while(te=tret[x++]){if(_227(te)&&(!bag||_240(te,bag))&&(_244(te,x))){ret.push(te);}}return ret;};};var _245=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _246={};var _247=function(_248){var _249=_246[_248.query];if(_249){return _249;}var io=_248.infixOper;var oper=(io?io.oper:"");var _24a=_234(_248,{el:1});var qt=_248.tag;var _24b=("*"==qt);var ecs=_1fd()["getElementsByClassName"];if(!oper){if(_248.id){_24a=(!_248.loops&&_24b)?_202:_234(_248,{el:1,id:1});_249=function(root,arr){var te=d.byId(_248.id,(root.ownerDocument||root));if(!te||!_24a(te)){return;}if(9==root.nodeType){return _218(te,arr);}else{if(_245(te,root)){return _218(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_248.classes.length&&!_1fe){_24a=_234(_248,{el:1,classes:1,id:1});var _24c=_248.classes.join(" ");_249=function(root,arr,bag){var ret=_218(0,arr),te,x=0;var tret=root.getElementsByClassName(_24c);while((te=tret[x++])){if(_24a(te,root)&&_240(te,bag)){ret.push(te);}}return ret;};}else{if(!_24b&&!_248.loops){_249=function(root,arr,bag){var ret=_218(0,arr),te,x=0;var tret=root.getElementsByTagName(_248.getTag());while((te=tret[x++])){if(_240(te,bag)){ret.push(te);}}return ret;};}else{_24a=_234(_248,{el:1,tag:1,id:1});_249=function(root,arr,bag){var ret=_218(0,arr),te,x=0;var tret=root.getElementsByTagName(_248.getTag());while((te=tret[x++])){if(_24a(te,root)&&_240(te,bag)){ret.push(te);}}return ret;};}}}}else{var _24d={el:1};if(_24b){_24d.tag=1;}_24a=_234(_248,_24d);if("+"==oper){_249=_23e(_24a);}else{if("~"==oper){_249=_241(_24a);}else{if(">"==oper){_249=_243(_24a);}}}}return _246[_248.query]=_249;};var _24e=function(root,_24f){var _250=_218(root),qp,x,te,qpl=_24f.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_24f[i];x=_250.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_247(qp);for(var j=0;(te=_250[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_250=ret;}return ret;};var _251={},_252={};var _253=function(_254){var _255=_203(trim(_254));if(_255.length==1){var tef=_247(_255[0]);return function(root){var r=tef(root,new qlc());if(r){r.nozip=true;}return r;};}return function(root){return _24e(root,_255);};};var nua=navigator.userAgent;var wk="WebKit/";var _256=(d.isWebKit&&(nua.indexOf(wk)>0)&&(parseFloat(nua.split(wk)[1])>528));var _257=d.isIE?"commentStrip":"nozip";var qsa="querySelectorAll";var _258=(!!_1fd()[qsa]&&(!d.isSafari||(d.isSafari>3.1)||_256));var _259=/n\+\d|([^ ])?([>~+])([^ =])?/g;var _25a=function(_25b,pre,ch,post){return ch?(pre?pre+" ":"")+ch+(post?" "+post:""):_25b;};var _25c=function(_25d,_25e){_25d=_25d.replace(_259,_25a);if(_258){var _25f=_252[_25d];if(_25f&&!_25e){return _25f;}}var _260=_251[_25d];if(_260){return _260;}var qcz=_25d.charAt(0);var _261=(-1==_25d.indexOf(" "));if((_25d.indexOf("#")>=0)&&(_261)){_25e=true;}var _262=(_258&&(!_25e)&&(_200.indexOf(qcz)==-1)&&(!d.isIE||(_25d.indexOf(":")==-1))&&(!(_1fe&&(_25d.indexOf(".")>=0)))&&(_25d.indexOf(":contains")==-1)&&(_25d.indexOf(":checked")==-1)&&(_25d.indexOf("|=")==-1));if(_262){var tq=(_200.indexOf(_25d.charAt(_25d.length-1))>=0)?(_25d+" *"):_25d;return _252[_25d]=function(root){try{if(!((9==root.nodeType)||_261)){throw "";}var r=root[qsa](tq);r[_257]=true;return r;}catch(e){return _25c(_25d,true)(root);}};}else{var _263=_25d.split(/\s*,\s*/);return _251[_25d]=((_263.length<2)?_253(_25d):function(root){var _264=0,ret=[],tp;while((tp=_263[_264++])){ret=ret.concat(_253(tp)(root));}return ret;});}};var _265=0;var _266=d.isIE?function(node){if(_201){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_265)||_265);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_265));};var _240=function(node,bag){if(!bag){return 1;}var id=_266(node);if(!bag[id]){return bag[id]=1;}return 0;};var _267="_zipIdx";var _268=function(arr){if(arr&&arr.nozip){return (qlc._wrap)?qlc._wrap(arr):arr;}var ret=new qlc();if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_265++;if(d.isIE&&_201){var _269=_265+"";arr[0].setAttribute(_267,_269);for(var x=1,te;te=arr[x];x++){if(arr[x].getAttribute(_267)!=_269){ret.push(te);}te.setAttribute(_267,_269);}}else{if(d.isIE&&arr.commentStrip){try{for(var x=1,te;te=arr[x];x++){if(_219(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_267]=_265;}for(var x=1,te;te=arr[x];x++){if(arr[x][_267]!=_265){ret.push(te);}te[_267]=_265;}}}return ret;};d.query=function(_26a,root){qlc=d._NodeListCtor;if(!_26a){return new qlc();}if(_26a.constructor==qlc){return _26a;}if(typeof _26a!="string"){return new qlc(_26a);}if(typeof root=="string"){root=d.byId(root);if(!root){return new qlc();}}root=root||_1fd();var od=root.ownerDocument||root.documentElement;_201=(root.contentType&&root.contentType=="application/xml")||(d.isOpera&&(root.doctype||od.toString()=="[object XMLDocument]"))||(!!od)&&(d.isIE?od.xml:(root.xmlVersion||od.xmlVersion));var r=_25c(_26a)(root);if(r&&r.nozip&&!qlc._wrap){return r;}return _268(r);};d.query.pseudos=_22d;d._filterQueryResult=function(_26b,_26c){var _26d=new d._NodeListCtor();var _26e=_234(_203(_26c)[0]);for(var x=0,te;te=_26b[x];x++){if(_26e(te)){_26d.push(te);}}return _26d;};})(this["queryPortability"]||this["acme"]||dojo);}if(!dojo._hasResource["dojo._base.xhr"]){dojo._hasResource["dojo._base.xhr"]=true;dojo.provide("dojo._base.xhr");(function(){var _26f=dojo,cfg=_26f.config;function _270(obj,name,_271){if(_271===null){return;}var val=obj[name];if(typeof val=="string"){obj[name]=[val,_271];}else{if(_26f.isArray(val)){val.push(_271);}else{obj[name]=_271;}}};dojo.fieldToObject=function(_272){var ret=null;var item=_26f.byId(_272);if(item){var _273=item.name;var type=(item.type||"").toLowerCase();if(_273&&type&&!item.disabled){if(type=="radio"||type=="checkbox"){if(item.checked){ret=item.value;}}else{if(item.multiple){ret=[];_26f.query("option",item).forEach(function(opt){if(opt.selected){ret.push(opt.value);}});}else{ret=item.value;}}}}return ret;};dojo.formToObject=function(_274){var ret={};var _275="file|submit|image|reset|button|";_26f.forEach(dojo.byId(_274).elements,function(item){var _276=item.name;var type=(item.type||"").toLowerCase();if(_276&&type&&_275.indexOf(type)==-1&&!item.disabled){_270(ret,_276,_26f.fieldToObject(item));if(type=="image"){ret[_276+".x"]=ret[_276+".y"]=ret[_276].x=ret[_276].y=0;}}});return ret;};dojo.objectToQuery=function(map){var enc=encodeURIComponent;var _277=[];var _278={};for(var name in map){var _279=map[name];if(_279!=_278[name]){var _27a=enc(name)+"=";if(_26f.isArray(_279)){for(var i=0;i<_279.length;i++){_277.push(_27a+enc(_279[i]));}}else{_277.push(_27a+enc(_279));}}}return _277.join("&");};dojo.formToQuery=function(_27b){return _26f.objectToQuery(_26f.formToObject(_27b));};dojo.formToJson=function(_27c,_27d){return _26f.toJson(_26f.formToObject(_27c),_27d);};dojo.queryToObject=function(str){var ret={};var qp=str.split("&");var dec=decodeURIComponent;_26f.forEach(qp,function(item){if(item.length){var _27e=item.split("=");var name=dec(_27e.shift());var val=dec(_27e.join("="));if(typeof ret[name]=="string"){ret[name]=[ret[name]];}if(_26f.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}});return ret;};dojo._blockAsync=false;var _27f=_26f._contentHandlers=dojo.contentHandlers={text:function(xhr){return xhr.responseText;},json:function(xhr){return _26f.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!dojo.config.useCommentedJson){console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message.");}var _280=xhr.responseText;var _281=_280.indexOf("/*");var _282=_280.lastIndexOf("*/");if(_281==-1||_282==-1){throw new Error("JSON was not comment filtered");}return _26f.fromJson(_280.substring(_281+2,_282));},javascript:function(xhr){return _26f.eval(xhr.responseText);},xml:function(xhr){var _283=xhr.responseXML;if(_26f.isIE&&(!_283||!_283.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_26f.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_283=dom;}catch(e){return false;}return true;});}return _283;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return _27f["json-comment-filtered"](xhr);}else{return _27f["json"](xhr);}}};dojo._ioSetArgs=function(args,_284,_285,_286){var _287={args:args,url:args.url};var _288=null;if(args.form){var form=_26f.byId(args.form);var _289=form.getAttributeNode("action");_287.url=_287.url||(_289?_289.value:null);_288=_26f.formToObject(form);}var _28a=[{}];if(_288){_28a.push(_288);}if(args.content){_28a.push(args.content);}if(args.preventCache){_28a.push({"dojo.preventCache":new Date().valueOf()});}_287.query=_26f.objectToQuery(_26f.mixin.apply(null,_28a));_287.handleAs=args.handleAs||"text";var d=new _26f.Deferred(_284);d.addCallbacks(_285,function(_28b){return _286(_28b,d);});var ld=args.load;if(ld&&_26f.isFunction(ld)){d.addCallback(function(_28c){return ld.call(args,_28c,_287);});}var err=args.error;if(err&&_26f.isFunction(err)){d.addErrback(function(_28d){return err.call(args,_28d,_287);});}var _28e=args.handle;if(_28e&&_26f.isFunction(_28e)){d.addBoth(function(_28f){return _28e.call(args,_28f,_287);});}if(cfg.ioPublish&&_26f.publish&&_287.args.ioPublish!==false){d.addCallbacks(function(res){_26f.publish("/dojo/io/load",[d,res]);return res;},function(res){_26f.publish("/dojo/io/error",[d,res]);return res;});d.addBoth(function(res){_26f.publish("/dojo/io/done",[d,res]);return res;});}d.ioArgs=_287;return d;};var _290=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _291=typeof xhr.abort;if(_291=="function"||_291=="object"||_291=="unknown"){xhr.abort();}var err=dfd.ioArgs.error;if(!err){err=new Error("xhr cancelled");err.dojoType="cancel";}return err;};var _292=function(dfd){var ret=_27f[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _293=function(_294,dfd){if(!dfd.ioArgs.args.failOk){console.error(_294);}return _294;};var _295=null;var _296=[];var _297=0;var _298=function(dfd){if(_297<=0){_297=0;if(cfg.ioPublish&&_26f.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){_26f.publish("/dojo/io/stop");}}};var _299=function(){var now=(new Date()).getTime();if(!_26f._blockAsync){for(var i=0,tif;i<_296.length&&(tif=_296[i]);i++){var dfd=tif.dfd;var func=function(){if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_296.splice(i--,1);_297-=1;}else{if(tif.ioCheck(dfd)){_296.splice(i--,1);tif.resHandle(dfd);_297-=1;}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){_296.splice(i--,1);var err=new Error("timeout exceeded");err.dojoType="timeout";dfd.errback(err);dfd.cancel();_297-=1;}}}}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(e){dfd.errback(e);}}}}_298(dfd);if(!_296.length){clearInterval(_295);_295=null;return;}};dojo._ioCancelAll=function(){try{_26f.forEach(_296,function(i){try{i.dfd.cancel();}catch(e){}});}catch(e){}};if(_26f.isIE){_26f.addOnWindowUnload(_26f._ioCancelAll);}_26f._ioNotifyStart=function(dfd){if(cfg.ioPublish&&_26f.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_297){_26f.publish("/dojo/io/start");}_297+=1;_26f.publish("/dojo/io/send",[dfd]);}};_26f._ioWatch=function(dfd,_29a,_29b,_29c){var args=dfd.ioArgs.args;if(args.timeout){dfd.startTime=(new Date()).getTime();}_296.push({dfd:dfd,validCheck:_29a,ioCheck:_29b,resHandle:_29c});if(!_295){_295=setInterval(_299,50);}if(args.sync){_299();}};var _29d="application/x-www-form-urlencoded";var _29e=function(dfd){return dfd.ioArgs.xhr.readyState;};var _29f=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var _2a0=function(dfd){var xhr=dfd.ioArgs.xhr;if(_26f._isDocumentOk(xhr)){dfd.callback(dfd);}else{var err=new Error("Unable to load "+dfd.ioArgs.url+" status:"+xhr.status);err.status=xhr.status;err.responseText=xhr.responseText;dfd.errback(err);}};dojo._ioAddQueryToUrl=function(_2a1){if(_2a1.query.length){_2a1.url+=(_2a1.url.indexOf("?")==-1?"?":"&")+_2a1.query;_2a1.query=null;}};dojo.xhr=function(_2a2,args,_2a3){var dfd=_26f._ioSetArgs(args,_290,_292,_293);var _2a4=dfd.ioArgs;var xhr=_2a4.xhr=_26f._xhrObj(_2a4.args);if(!xhr){dfd.cancel();return dfd;}if("postData" in args){_2a4.query=args.postData;}else{if("putData" in args){_2a4.query=args.putData;}else{if("rawBody" in args){_2a4.query=args.rawBody;}else{if((arguments.length>2&&!_2a3)||"POST|PUT".indexOf(_2a2.toUpperCase())==-1){_26f._ioAddQueryToUrl(_2a4);}}}}xhr.open(_2a2,_2a4.url,args.sync!==true,args.user||undefined,args.password||undefined);if(args.headers){for(var hdr in args.headers){if(hdr.toLowerCase()==="content-type"&&!args.contentType){args.contentType=args.headers[hdr];}else{if(args.headers[hdr]){xhr.setRequestHeader(hdr,args.headers[hdr]);}}}}xhr.setRequestHeader("Content-Type",args.contentType||_29d);if(!args.headers||!("X-Requested-With" in args.headers)){xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");}_26f._ioNotifyStart(dfd);if(dojo.config.debugAtAllCosts){xhr.send(_2a4.query);}else{try{xhr.send(_2a4.query);}catch(e){_2a4.error=e;dfd.cancel();}}_26f._ioWatch(dfd,_29e,_29f,_2a0);xhr=null;return dfd;};dojo.xhrGet=function(args){return _26f.xhr("GET",args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return _26f.xhr("POST",args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return _26f.xhr("PUT",args,true);};dojo.xhrDelete=function(args){return _26f.xhr("DELETE",args);};})();}if(!dojo._hasResource["dojo._base.fx"]){dojo._hasResource["dojo._base.fx"]=true;dojo.provide("dojo._base.fx");(function(){var d=dojo;var _2a5=d._mixin;dojo._Line=function(_2a6,end){this.start=_2a6;this.end=end;};dojo._Line.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};dojo.Animation=function(args){_2a5(this,args);if(d.isArray(this.curve)){this.curve=new d._Line(this.curve[0],this.curve[1]);}};d._Animation=d.Animation;d.extend(dojo.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _2a7=this._percent,_2a8=this.easing;return _2a8?_2a8(_2a7):_2a7;},_fire:function(evt,args){var a=args||[];if(this[evt]){if(d.config.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error("exception in animation handler for:",evt);console.error(e);}}}return this;},play:function(_2a9,_2aa){var _2ab=this;if(_2ab._delayTimer){_2ab._clearTimer();}if(_2aa){_2ab._stopTimer();_2ab._active=_2ab._paused=false;_2ab._percent=0;}else{if(_2ab._active&&!_2ab._paused){return _2ab;}}_2ab._fire("beforeBegin",[_2ab.node]);var de=_2a9||_2ab.delay,_2ac=dojo.hitch(_2ab,"_play",_2aa);if(de>0){_2ab._delayTimer=setTimeout(_2ac,de);return _2ab;}_2ac();return _2ab;},_play:function(_2ad){var _2ae=this;if(_2ae._delayTimer){_2ae._clearTimer();}_2ae._startTime=new Date().valueOf();if(_2ae._paused){_2ae._startTime-=_2ae.duration*_2ae._percent;}_2ae._endTime=_2ae._startTime+_2ae.duration;_2ae._active=true;_2ae._paused=false;var _2af=_2ae.curve.getValue(_2ae._getStep());if(!_2ae._percent){if(!_2ae._startRepeatCount){_2ae._startRepeatCount=_2ae.repeat;}_2ae._fire("onBegin",[_2af]);}_2ae._fire("onPlay",[_2af]);_2ae._cycle();return _2ae;},pause:function(){var _2b0=this;if(_2b0._delayTimer){_2b0._clearTimer();}_2b0._stopTimer();if(!_2b0._active){return _2b0;}_2b0._paused=true;_2b0._fire("onPause",[_2b0.curve.getValue(_2b0._getStep())]);return _2b0;},gotoPercent:function(_2b1,_2b2){var _2b3=this;_2b3._stopTimer();_2b3._active=_2b3._paused=true;_2b3._percent=_2b1;if(_2b2){_2b3.play();}return _2b3;},stop:function(_2b4){var _2b5=this;if(_2b5._delayTimer){_2b5._clearTimer();}if(!_2b5._timer){return _2b5;}_2b5._stopTimer();if(_2b4){_2b5._percent=1;}_2b5._fire("onStop",[_2b5.curve.getValue(_2b5._getStep())]);_2b5._active=_2b5._paused=false;return _2b5;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _2b6=this;if(_2b6._active){var curr=new Date().valueOf();var step=(curr-_2b6._startTime)/(_2b6._endTime-_2b6._startTime);if(step>=1){step=1;}_2b6._percent=step;if(_2b6.easing){step=_2b6.easing(step);}_2b6._fire("onAnimate",[_2b6.curve.getValue(step)]);if(_2b6._percent<1){_2b6._startTimer();}else{_2b6._active=false;if(_2b6.repeat>0){_2b6.repeat--;_2b6.play(null,true);}else{if(_2b6.repeat==-1){_2b6.play(null,true);}else{if(_2b6._startRepeatCount){_2b6.repeat=_2b6._startRepeatCount;_2b6._startRepeatCount=0;}}}_2b6._percent=0;_2b6._fire("onEnd",[_2b6.node]);!_2b6.repeat&&_2b6._stopTimer();}}return _2b6;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_2b7=[],_2b8=null,_2b9={run:function(){}};d.extend(d.Animation,{_startTimer:function(){if(!this._timer){this._timer=d.connect(_2b9,"run",this,"_cycle");ctr++;}if(!_2b8){_2b8=setInterval(d.hitch(_2b9,"run"),this.rate);}},_stopTimer:function(){if(this._timer){d.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_2b8);_2b8=null;ctr=0;}}});var _2ba=d.isIE?function(node){var ns=node.style;if(!ns.width.length&&d.style(node,"width")=="auto"){ns.width="auto";}}:function(){};dojo._fade=function(args){args.node=d.byId(args.node);var _2bb=_2a5({properties:{}},args),_2bc=(_2bb.properties.opacity={});_2bc.start=!("start" in _2bb)?function(){return +d.style(_2bb.node,"opacity")||0;}:_2bb.start;_2bc.end=_2bb.end;var anim=d.animateProperty(_2bb);d.connect(anim,"beforeBegin",d.partial(_2ba,_2bb.node));return anim;};dojo.fadeIn=function(args){return d._fade(_2a5({end:1},args));};dojo.fadeOut=function(args){return d._fade(_2a5({end:0},args));};dojo._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _2bd=function(_2be){this._properties=_2be;for(var p in _2be){var prop=_2be[p];if(prop.start instanceof d.Color){prop.tempColor=new d.Color();}}};_2bd.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_2bf=prop.start;if(_2bf instanceof d.Color){ret[p]=d.blendColors(_2bf,prop.end,r,prop.tempColor).toCss();}else{if(!d.isArray(_2bf)){ret[p]=((prop.end-_2bf)*r)+_2bf+(p!="opacity"?prop.units||"px":0);}}}return ret;};dojo.animateProperty=function(args){var n=args.node=d.byId(args.node);if(!args.easing){args.easing=d._defaultEasing;}var anim=new d.Animation(args);d.connect(anim,"beforeBegin",anim,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height"){this.node.display="block";}var prop=this.properties[p];if(d.isFunction(prop)){prop=prop(n);}prop=pm[p]=_2a5({},(d.isObject(prop)?prop:{end:prop}));if(d.isFunction(prop.start)){prop.start=prop.start(n);}if(d.isFunction(prop.end)){prop.end=prop.end(n);}var _2c0=(p.toLowerCase().indexOf("color")>=0);function _2c1(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=d.style(node,p);return (p=="opacity")?+v:(_2c0?v:parseFloat(v));};if(!("end" in prop)){prop.end=_2c1(n,p);}else{if(!("start" in prop)){prop.start=_2c1(n,p);}}if(_2c0){prop.start=new d.Color(prop.start);prop.end=new d.Color(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new _2bd(pm);});d.connect(anim,"onAnimate",d.hitch(d,"style",anim.node));return anim;};dojo.anim=function(node,_2c2,_2c3,_2c4,_2c5,_2c6){return d.animateProperty({node:node,duration:_2c3||d.Animation.prototype.duration,properties:_2c2,easing:_2c4,onEnd:_2c5}).play(_2c6||0);};})();}if(!dojo._hasResource["dojo.i18n"]){dojo._hasResource["dojo.i18n"]=true;dojo.provide("dojo.i18n");dojo.i18n.getLocalization=function(_2c7,_2c8,_2c9){_2c9=dojo.i18n.normalizeLocale(_2c9);var _2ca=_2c9.split("-");var _2cb=[_2c7,"nls",_2c8].join(".");var _2cc=dojo._loadedModules[_2cb];if(_2cc){var _2cd;for(var i=_2ca.length;i>0;i--){var loc=_2ca.slice(0,i).join("_");if(_2cc[loc]){_2cd=_2cc[loc];break;}}if(!_2cd){_2cd=_2cc.ROOT;}if(_2cd){var _2ce=function(){};_2ce.prototype=_2cd;return new _2ce();}}throw new Error("Bundle not found: "+_2c8+" in "+_2c7+" , locale="+_2c9);};dojo.i18n.normalizeLocale=function(_2cf){var _2d0=_2cf?_2cf.toLowerCase():dojo.locale;if(_2d0=="root"){_2d0="ROOT";}return _2d0;};dojo.i18n._requireLocalization=function(_2d1,_2d2,_2d3,_2d4){var _2d5=dojo.i18n.normalizeLocale(_2d3);var _2d6=[_2d1,"nls",_2d2].join(".");var _2d7="";if(_2d4){var _2d8=_2d4.split(",");for(var i=0;i<_2d8.length;i++){if(_2d5["indexOf"](_2d8[i])==0){if(_2d8[i].length>_2d7.length){_2d7=_2d8[i];}}}if(!_2d7){_2d7="ROOT";}}var _2d9=_2d4?_2d7:_2d5;var _2da=dojo._loadedModules[_2d6];var _2db=null;if(_2da){if(dojo.config.localizationComplete&&_2da._built){return;}var _2dc=_2d9.replace(/-/g,"_");var _2dd=_2d6+"."+_2dc;_2db=dojo._loadedModules[_2dd];}if(!_2db){_2da=dojo["provide"](_2d6);var syms=dojo._getModuleSymbols(_2d1);var _2de=syms.concat("nls").join("/");var _2df;dojo.i18n._searchLocalePath(_2d9,_2d4,function(loc){var _2e0=loc.replace(/-/g,"_");var _2e1=_2d6+"."+_2e0;var _2e2=false;if(!dojo._loadedModules[_2e1]){dojo["provide"](_2e1);var _2e3=[_2de];if(loc!="ROOT"){_2e3.push(loc);}_2e3.push(_2d2);var _2e4=_2e3.join("/")+".js";_2e2=dojo._loadPath(_2e4,null,function(hash){var _2e5=function(){};_2e5.prototype=_2df;_2da[_2e0]=new _2e5();for(var j in hash){_2da[_2e0][j]=hash[j];}});}else{_2e2=true;}if(_2e2&&_2da[_2e0]){_2df=_2da[_2e0];}else{_2da[_2e0]=_2df;}if(_2d4){return true;}});}if(_2d4&&_2d5!=_2d7){_2da[_2d5.replace(/-/g,"_")]=_2da[_2d7.replace(/-/g,"_")];}};(function(){var _2e6=dojo.config.extraLocale;if(_2e6){if(!_2e6 instanceof Array){_2e6=[_2e6];}var req=dojo.i18n._requireLocalization;dojo.i18n._requireLocalization=function(m,b,_2e7,_2e8){req(m,b,_2e7,_2e8);if(_2e7){return;}for(var i=0;i<_2e6.length;i++){req(m,b,_2e6[i],_2e8);}};}})();dojo.i18n._searchLocalePath=function(_2e9,down,_2ea){_2e9=dojo.i18n.normalizeLocale(_2e9);var _2eb=_2e9.split("-");var _2ec=[];for(var i=_2eb.length;i>0;i--){_2ec.push(_2eb.slice(0,i).join("-"));}_2ec.push(false);if(down){_2ec.reverse();}for(var j=_2ec.length-1;j>=0;j--){var loc=_2ec[j]||"ROOT";var stop=_2ea(loc);if(stop){break;}}};dojo.i18n._preloadLocalizations=function(_2ed,_2ee){function _2ef(_2f0){_2f0=dojo.i18n.normalizeLocale(_2f0);dojo.i18n._searchLocalePath(_2f0,true,function(loc){for(var i=0;i<_2ee.length;i++){if(_2ee[i]==loc){dojo["require"](_2ed+"_"+loc);return true;}}return false;});};_2ef();var _2f1=dojo.config.extraLocale||[];for(var i=0;i<_2f1.length;i++){_2ef(_2f1[i]);}};}if(!dojo._hasResource["dojo._base.browser"]){dojo._hasResource["dojo._base.browser"]=true;dojo.provide("dojo._base.browser");dojo.forEach(dojo.config.require,function(i){dojo["require"](i);});}if(dojo.config.afterOnLoad&&dojo.isBrowser){window.setTimeout(dojo._loadInit,1000);}})();

/**
 * cometd.js
 */
if(typeof dojo!=='undefined'){dojo.provide('org.cometd')}else{this.org=this.org||{};org.cometd={}}org.cometd.JSON={};org.cometd.JSON.toJSON=org.cometd.JSON.fromJSON=function(object){throw'Abstract';};org.cometd.TransportRegistry=function(){var _types=[];var _transports={};this.getTransportTypes=function(){return _types.slice(0)};this.findTransportTypes=function(version,crossDomain){var result=[];for(var i=0;i<_types.length;++i){var type=_types[i];if(_transports[type].accept(version,crossDomain)){result.push(type)}}return result};this.negotiateTransport=function(types,version,crossDomain){for(var i=0;i<_types.length;++i){var type=_types[i];for(var j=0;j<types.length;++j){if(type==types[j]){var transport=_transports[type];if(transport.accept(version,crossDomain)===true){return transport}}}}return null};this.add=function(type,transport,index){var existing=false;for(var i=0;i<_types.length;++i){if(_types[i]==type){existing=true;break}}if(!existing){if(typeof index!=='number'){_types.push(type)}else{_types.splice(index,0,type)}_transports[type]=transport}return!existing};this.remove=function(type){for(var i=0;i<_types.length;++i){if(_types[i]==type){_types.splice(i,1);var transport=_transports[type];delete _transports[type];return transport}}return null};this.reset=function(){for(var i=0;i<_types.length;++i){_transports[_types[i]].reset()}}};org.cometd.Cometd=function(name){var _name=name||'default';var _logLevel;var _url;var _maxConnections;var _backoffIncrement;var _maxBackoff;var _reverseIncomingExtensions;var _maxNetworkDelay;var _requestHeaders;var _crossDomain=false;var _transports=new org.cometd.TransportRegistry();var _transport;var _status='disconnected';var _messageId=0;var _clientId=null;var _batch=0;var _messageQueue=[];var _internalBatch=false;var _listeners={};var _backoff=0;var _scheduledSend=null;var _extensions=[];var _advice={};var _handshakeProps;var _reestablish=false;function _mixin(deep,target,objects){var result=target||{};for(var i=2;i<arguments.length;++i){var object=arguments[i];if(object===undefined||object===null){continue}for(var propName in object){var prop=object[propName];if(prop===target){continue}if(prop===undefined){continue}if(deep&&typeof prop==="object"&&prop!==null){if(prop instanceof Array){result[propName]=_mixin(deep,[],prop)}else{result[propName]=_mixin(deep,{},prop)}}else{result[propName]=prop}}}return result}function _inArray(element,array){for(var i=0;i<array.length;++i){if(element==array[i]){return i}}return-1}function _isString(value){if(value===undefined||value===null){return false}return typeof value==='string'||value instanceof String}function _isArray(value){if(value===undefined||value===null){return false}return value instanceof Array}function _isFunction(value){if(value===undefined||value===null){return false}return typeof value==='function'}function _log(level,args){if(window.console){var logger=window.console[level];if(_isFunction(logger)){logger.apply(window.console,args)}}}function _warn(){_log('warn',arguments)}this._warn=_warn;function _info(){if(_logLevel!='warn'){_log('info',arguments)}}this._info=_info;function _debug(){if(_logLevel=='debug'){_log('debug',arguments)}}this._debug=_debug;function _configure(configuration){_debug('Configuring cometd object with',configuration);if(_isString(configuration)){configuration={url:configuration}}if(!configuration){configuration={}}_url=configuration.url;if(!_url){throw'Missing required configuration parameter \'url\' specifying the Bayeux server URL';}_maxConnections=configuration.maxConnections||2;_backoffIncrement=configuration.backoffIncrement||1000;_maxBackoff=configuration.maxBackoff||60000;_logLevel=configuration.logLevel||'info';_reverseIncomingExtensions=configuration.reverseIncomingExtensions!==false;_maxNetworkDelay=configuration.maxNetworkDelay||10000;_requestHeaders=configuration.requestHeaders||{};var urlParts=/(^https?:)?(\/\/(([^:\/\?#]+)(:(\d+))?))?([^\?#]*)/.exec(_url);_crossDomain=urlParts[3]&&urlParts[3]!=window.location.host}function _clearSubscriptions(){for(var channel in _listeners){var subscriptions=_listeners[channel];for(var i=0;i<subscriptions.length;++i){var subscription=subscriptions[i];if(subscription&&subscription.subscription){delete subscriptions[i];_debug('Removed subscription',subscription,'for channel',channel)}}}}function _setStatus(newStatus){_debug('Status',_status,'->',newStatus);_status=newStatus}function _isDisconnected(){return _status=='disconnecting'||_status=='disconnected'}function _nextMessageId(){return++_messageId}function _applyExtension(name,callback,message){try{return callback(message)}catch(x){_debug('Exception during execution of extension',name,x);return message}}function _applyIncomingExtensions(message){for(var i=0;i<_extensions.length;++i){if(message===undefined||message===null){break}var index=_reverseIncomingExtensions?_extensions.length-1-i:i;var extension=_extensions[index];var callback=extension.extension.incoming;if(_isFunction(callback)){var result=_applyExtension(extension.name,callback,message);message=result===undefined?message:result}}return message}function _applyOutgoingExtensions(message){for(var i=0;i<_extensions.length;++i){if(message===undefined||message===null){break}var extension=_extensions[i];var callback=extension.extension.outgoing;if(_isFunction(callback)){var result=_applyExtension(extension.name,callback,message);message=result===undefined?message:result}}return message}function _convertToMessages(response){if(_isString(response)){try{return org.cometd.JSON.fromJSON(response)}catch(x){_debug('Could not convert to JSON the following string','"'+response+'"');throw x;}}if(_isArray(response)){return response}if(response===undefined||response===null){return[]}if(response instanceof Object){return[response]}throw'Conversion Error '+response+', typeof '+(typeof response);}function _notify(channel,message){var subscriptions=_listeners[channel];if(subscriptions&&subscriptions.length>0){for(var i=0;i<subscriptions.length;++i){var subscription=subscriptions[i];if(subscription){try{subscription.callback.call(subscription.scope,message)}catch(x){_warn('Exception during notification',subscription,message,x)}}}}}function _notifyListeners(channel,message){_notify(channel,message);var channelParts=channel.split("/");var last=channelParts.length-1;for(var i=last;i>0;--i){var channelPart=channelParts.slice(0,i).join('/')+'/*';if(i==last){_notify(channelPart,message)}channelPart+='*';_notify(channelPart,message)}}function _setTimeout(funktion,delay){return setTimeout(function(){try{funktion()}catch(x){_debug('Exception invoking timed function',funktion,x)}},delay)}function _cancelDelayedSend(){if(_scheduledSend!==null){clearTimeout(_scheduledSend)}_scheduledSend=null}function _delayedSend(operation){_cancelDelayedSend();var delay=_backoff;if(_advice.interval&&_advice.interval>0){delay+=_advice.interval}_scheduledSend=_setTimeout(operation,delay)}var _handleResponse;var _handleFailure;function _send(messages,longpoll,extraPath){for(var i=0;i<messages.length;++i){var message=messages[i];message.id=_nextMessageId();if(_clientId){message.clientId=_clientId}message=_applyOutgoingExtensions(message);if(message!==undefined&&message!==null){messages[i]=message}else{messages.splice(i--,1)}}if(messages.length===0){return}var url=_url;if(!url.match(/\/$/)){url=url+'/'}if(extraPath){url=url+extraPath}var self=this;var envelope={url:url,messages:messages,onSuccess:function(request,response){try{_handleResponse.call(self,request,response,longpoll)}catch(x){_debug('Exception during handling of response',x)}},onFailure:function(request,reason,exception){try{_handleFailure.call(self,request,messages,reason,exception,longpoll)}catch(x){_debug('Exception during handling of failure',x)}}};_debug('Send',envelope);_transport.send(envelope,longpoll)}function _queueSend(message){if(_batch>0||_internalBatch===true){_messageQueue.push(message)}else{_send([message],false)}}this.send=_queueSend;function _resetBackoff(){_backoff=0}function _increaseBackoff(){if(_backoff<_maxBackoff){_backoff+=_backoffIncrement}}function _startBatch(){++_batch}function _flushBatch(){var messages=_messageQueue;_messageQueue=[];if(messages.length>0){_send(messages,false)}}function _endBatch(){--_batch;if(_batch<0){throw'Calls to startBatch() and endBatch() are not paired';}if(_batch===0&&!_isDisconnected()&&!_internalBatch){_flushBatch()}}function _connect(){var message={channel:'/meta/connect',connectionType:_transport.getType()};_setStatus('connecting');_debug('Connect sent',message);_send([message],true,'connect');_setStatus('connected')}function _delayedConnect(){_setStatus('connecting');_delayedSend(function(){_connect()})}function _handshake(handshakeProps){_clientId=null;_clearSubscriptions();if(_isDisconnected()){_transports.reset()}_batch=0;_internalBatch=true;_handshakeProps=handshakeProps;var version='1.0';var transportTypes=_transports.findTransportTypes(version,_crossDomain);var bayeuxMessage={version:version,minimumVersion:'0.9',channel:'/meta/handshake',supportedConnectionTypes:transportTypes};var message=_mixin(false,{},_handshakeProps,bayeuxMessage);_transport=_transports.negotiateTransport(transportTypes,version,_crossDomain);_debug('Initial transport is',_transport);_setStatus('handshaking');_debug('Handshake sent',message);_send([message],false,'handshake')}function _delayedHandshake(){_setStatus('handshaking');_internalBatch=true;_delayedSend(function(){_handshake(_handshakeProps)})}function _handshakeResponse(message){if(message.successful){_clientId=message.clientId;var newTransport=_transports.negotiateTransport(message.supportedConnectionTypes,message.version,_crossDomain);if(newTransport===null){throw'Could not negotiate transport with server; client '+_transports.findTransportTypes(message.version,_crossDomain)+", server "+message.supportedConnectionTypes;}else{_debug('Transport',_transport,'->',newTransport);_transport=newTransport;}message.reestablish=_reestablish;_reestablish=true;_notifyListeners('/meta/handshake',message);_internalBatch=false;_flushBatch();var action=_advice.reconnect?_advice.reconnect:'retry';switch(action){case'retry':_delayedConnect();break;default:break;}}else{var retry=!_isDisconnected()&&_advice.reconnect!='none';if(!retry){_setStatus('disconnected');}_notifyListeners('/meta/handshake',message);_notifyListeners('/meta/unsuccessful',message);if(retry){_increaseBackoff();_delayedHandshake();}}}function _handshakeFailure(xhr,message){var failureMessage={successful:false,failure:true,channel:'/meta/handshake',request:message,xhr:xhr,advice:{action:'retry',interval:_backoff}};var retry=!_isDisconnected()&&_advice.reconnect!='none';if(!retry){_setStatus('disconnected');}_notifyListeners('/meta/handshake',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);if(retry){_increaseBackoff();_delayedHandshake();}}function _connectResponse(message){var action=_isDisconnected()?'none':(_advice.reconnect?_advice.reconnect:'retry');if(!_isDisconnected()){_setStatus(action=='retry'?'connecting':'disconnecting');}if(message.successful){_notifyListeners('/meta/connect',message);switch(action){case'retry':_resetBackoff();_delayedConnect();break;default:_resetBackoff();_setStatus('disconnected');break;}}else{_notifyListeners('/meta/connect',message);_notifyListeners('/meta/unsuccessful',message);switch(action){case'retry':_increaseBackoff();_delayedConnect();break;case'handshake':_resetBackoff();_delayedHandshake();break;case'none':_resetBackoff();_setStatus('disconnected');break;}}}function _connectFailure(xhr,message){var failureMessage={successful:false,failure:true,channel:'/meta/connect',request:message,xhr:xhr,advice:{action:'retry',interval:_backoff}};_notifyListeners('/meta/connect',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);if(!_isDisconnected()){var action=_advice.reconnect?_advice.reconnect:'retry';switch(action){case'retry':_increaseBackoff();_delayedConnect();break;case'handshake':_resetBackoff();_delayedHandshake();break;case'none':_resetBackoff();break;default:_debug('Unrecognized action',action);break;}}}function _disconnect(abort){_cancelDelayedSend();if(abort){_transport.abort();}_clientId=null;_setStatus('disconnected');_batch=0;_messageQueue=[];_resetBackoff();}function _disconnectResponse(message){if(message.successful){_disconnect(false);_notifyListeners('/meta/disconnect',message);}else{_disconnect(true);_notifyListeners('/meta/disconnect',message);_notifyListeners('/meta/unsuccessful',message);}}function _disconnectFailure(xhr,message){_disconnect(true);var failureMessage={successful:false,failure:true,channel:'/meta/disconnect',request:message,xhr:xhr,advice:{action:'none',interval:0}};_notifyListeners('/meta/disconnect',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);}function _subscribeResponse(message){if(message.successful){_notifyListeners('/meta/subscribe',message);}else{_notifyListeners('/meta/subscribe',message);_notifyListeners('/meta/unsuccessful',message);}}function _subscribeFailure(xhr,message){var failureMessage={successful:false,failure:true,channel:'/meta/subscribe',request:message,xhr:xhr,advice:{action:'none',interval:0}};_notifyListeners('/meta/subscribe',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);}function _unsubscribeResponse(message){if(message.successful){_notifyListeners('/meta/unsubscribe',message);}else{_notifyListeners('/meta/unsubscribe',message);_notifyListeners('/meta/unsuccessful',message);}}function _unsubscribeFailure(xhr,message){var failureMessage={successful:false,failure:true,channel:'/meta/unsubscribe',request:message,xhr:xhr,advice:{action:'none',interval:0}};_notifyListeners('/meta/unsubscribe',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);}function _messageResponse(message){if(message.successful===undefined){if(message.data){wtbChat.initChannels(message.channel,message);}else{_debug('Unknown message',message);}}else{if(message.successful){_notifyListeners('/meta/publish',message);}else{_notifyListeners('/meta/publish',message);_notifyListeners('/meta/unsuccessful',message);}}}function _messageFailure(xhr,message){var failureMessage={successful:false,failure:true,channel:message.channel,request:message,xhr:xhr,advice:{action:'none',interval:0}};_notifyListeners('/meta/publish',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);}function _receive(message){message=_applyIncomingExtensions(message);if(message===undefined||message===null){return;}if(message.advice){_advice=message.advice;}var channel=message.channel;switch(channel){case'/meta/handshake':_handshakeResponse(message);break;case'/meta/connect':_connectResponse(message);break;case'/meta/disconnect':_disconnectResponse(message);break;case'/meta/subscribe':_subscribeResponse(message);break;case'/meta/unsubscribe':_unsubscribeResponse(message);break;default:_messageResponse(message);break;}}this.receive=_receive;_handleResponse=function _handleResponse(request,response,longpoll){var messages=_convertToMessages(response);_debug('Received',response,'converted to',messages);_transport.complete(request,true,longpoll);for(var i=0;i<messages.length;++i){var message=messages[i];_receive(message);}};_handleFailure=function _handleFailure(request,messages,reason,exception,longpoll){var xhr=request.xhr;_debug('Failed',messages);_transport.complete(request,false,longpoll);for(var i=0;i<messages.length;++i){var message=messages[i];var channel=message.channel;switch(channel){case'/meta/handshake':_handshakeFailure(xhr,message);break;case'/meta/connect':_connectFailure(xhr,message);break;case'/meta/disconnect':_disconnectFailure(xhr,message);break;case'/meta/subscribe':_subscribeFailure(xhr,message);break;case'/meta/unsubscribe':_unsubscribeFailure(xhr,message);break;default:_messageFailure(xhr,message);break;}}};function _hasSubscriptions(channel){var subscriptions=_listeners[channel];if(subscriptions){for(var i=0;i<subscriptions.length;++i){if(subscriptions[i]){return true;}}}return false;}function _resolveScopedCallback(scope,callback){var delegate={scope:scope,method:callback};if(_isFunction(scope)){delegate.scope=undefined;delegate.method=scope;}else{if(_isString(callback)){if(!scope){throw'Invalid scope '+scope;}delegate.method=scope[callback];if(!_isFunction(delegate.method)){throw'Invalid callback '+callback+' for scope '+scope;}}else if(!_isFunction(callback)){throw'Invalid callback '+callback;}}return delegate;}function _addListener(channel,scope,callback,isSubscription){var delegate=_resolveScopedCallback(scope,callback);_debug('Listener scope',delegate.scope,'and callback',delegate.method);var subscription={scope:delegate.scope,callback:delegate.method,subscription:isSubscription===true};var subscriptions=_listeners[channel];if(!subscriptions){subscriptions=[];_listeners[channel]=subscriptions;}var subscriptionID=subscriptions.push(subscription)-1;_debug('Added listener',subscription,'for channel',channel,'having id =',subscriptionID);return[channel,subscriptionID];}function _removeListener(subscription){var subscriptions=_listeners[subscription[0]];if(subscriptions){delete subscriptions[subscription[1]];_debug('Removed listener',subscription);}}this.registerTransport=function(type,transport,index){var result=_transports.add(type,transport,index);if(result){_debug('Registered transport',type);if(_isFunction(transport.registered)){transport.registered(type,this);}}return result;};this.getTransportTypes=function(){return _transports.getTransportTypes();};this.unregisterTransport=function(type){var transport=_transports.remove(type);if(transport!==null){_debug('Unregistered transport',type);if(_isFunction(transport.unregistered)){transport.unregistered();}}return transport;};this.configure=function(configuration){_configure.call(this,configuration);};this.init=function(configuration,handshakeProps){this.configure(configuration);this.handshake(handshakeProps);};this.handshake=function(handshakeProps){_setStatus('disconnected');_reestablish=false;_handshake(handshakeProps);};this.disconnect=function(disconnectProps){if(_isDisconnected()){return;}var bayeuxMessage={channel:'/meta/disconnect'};var message=_mixin(false,{},disconnectProps,bayeuxMessage);_setStatus('disconnecting');_send([message],false,'disconnect');};this.startBatch=function(){_startBatch();};this.endBatch=function(){_endBatch();};this.batch=function(scope,callback){var delegate=_resolveScopedCallback(scope,callback);this.startBatch();try{delegate.method.call(delegate.scope);this.endBatch();}catch(x){_debug('Exception during execution of batch',x);this.endBatch();throw x;}};this.addListener=function(channel,scope,callback){if(arguments.length<2){throw'Illegal arguments number: required 2, got '+arguments.length;}if(!_isString(channel)){throw'Illegal argument type: channel must be a string';}return _addListener(channel,scope,callback,false);};this.removeListener=function(subscription){if(!_isArray(subscription)){throw'Invalid argument: expected subscription, not '+subscription;}_removeListener(subscription);};this.clearListeners=function(){_listeners={};};this.subscribe=function(channel,scope,callback,subscribeProps){if(arguments.length<2){throw'Illegal arguments number: required 2, got '+arguments.length;}if(!_isString(channel)){throw'Illegal argument type: channel must be a string';}if(_isDisconnected()){throw'Illegal state: already disconnected';}if(_isFunction(scope)){subscribeProps=callback;callback=scope;scope=undefined;}var send=!_hasSubscriptions(channel);var subscription=_addListener(channel,scope,callback,true);if(send){var bayeuxMessage={channel:'/meta/subscribe',subscription:channel};var message=_mixin(false,{},subscribeProps,bayeuxMessage);_queueSend(message);}return subscription;};this.unsubscribe=function(subscription,unsubscribeProps){if(arguments.length<1){throw'Illegal arguments number: required 1, got '+arguments.length;}if(_isDisconnected()){throw'Illegal state: already disconnected';}this.removeListener(subscription);var channel=subscription[0];if(!_hasSubscriptions(channel)){var bayeuxMessage={channel:'/meta/unsubscribe',subscription:channel};var message=_mixin(false,{},unsubscribeProps,bayeuxMessage);_queueSend(message);}};this.clearSubscriptions=function(){_clearSubscriptions();};this.publish=function(channel,content,publishProps){if(arguments.length<1){throw'Illegal arguments number: required 1, got '+arguments.length;}if(!_isString(channel)){throw'Illegal argument type: channel must be a string';}if(_isDisconnected()){throw'Illegal state: already disconnected';}var bayeuxMessage={channel:channel,data:content};var message=_mixin(false,{},publishProps,bayeuxMessage);_queueSend(message);};this.getStatus=function(){return _status;};this.setBackoffIncrement=function(period){_backoffIncrement=period;};this.getBackoffIncrement=function(){return _backoffIncrement;};this.getBackoffPeriod=function(){return _backoff;};this.setLogLevel=function(level){_logLevel=level;};this.registerExtension=function(name,extension){if(arguments.length<2){throw'Illegal arguments number: required 2, got '+arguments.length;}if(!_isString(name)){throw'Illegal argument type: extension name must be a string';}var existing=false;for(var i=0;i<_extensions.length;++i){var existingExtension=_extensions[i];if(existingExtension.name==name){existing=true;break;}}if(!existing){_extensions.push({name:name,extension:extension});_debug('Registered extension',name);if(_isFunction(extension.registered)){extension.registered(name,this);}return true;}else{_info('Could not register extension with name',name,'since another extension with the same name already exists');return false;}};this.unregisterExtension=function(name){if(!_isString(name)){throw'Illegal argument type: extension name must be a string';}var unregistered=false;for(var i=0;i<_extensions.length;++i){var extension=_extensions[i];if(extension.name==name){_extensions.splice(i,1);unregistered=true;_debug('Unregistered extension',name);var ext=extension.extension;if(_isFunction(ext.unregistered)){ext.unregistered();}break;}}return unregistered;};this.getExtension=function(name){for(var i=0;i<_extensions.length;++i){var extension=_extensions[i];if(extension.name==name){return extension.extension;}}return null;};this.getName=function(){return _name;};this.getClientId=function(){return _clientId;};this.getURL=function(){return _url;};this.getTransport=function(){return _transport;};org.cometd.Transport=function(){var _type;var _requestIds=0;var _longpollRequest=null;var _requests=[];var _envelopes=[];this.registered=function(type,cometd){_type=type;};this.unregistered=function(){_type=null;};this.accept=function(version,crossDomain){throw'Abstract';};this.transportSend=function(envelope,request){throw'Abstract';};this.transportSuccess=function(envelope,request,response){if(!request.expired){clearTimeout(request.timeout);envelope.onSuccess(request,response);}};this.transportFailure=function(envelope,request,reason,exception){if(!request.expired){clearTimeout(request.timeout);envelope.onFailure(request,reason,exception);}};function _transportSend(envelope,request){var self=this;this.transportSend(envelope,request);request.expired=false;var delay=_maxNetworkDelay;if(request.longpoll===true){delay+=_advice&&typeof _advice.timeout==='number'?_advice.timeout:0;}request.timeout=_setTimeout(function(){request.expired=true;if(request.xhr){request.xhr.abort();}var errorMessage='Transport '+self.getType()+' exceeded '+delay+' ms max network delay';_debug(errorMessage);envelope.onFailure(request,'timeout',errorMessage);},delay);}function _longpollSend(envelope){if(_longpollRequest!==null){throw'Concurrent longpoll requests not allowed, request '+_longpollRequest.id+' not yet completed';}var requestId=++_requestIds;var request={id:requestId,longpoll:true};_transportSend.call(this,envelope,request);_longpollRequest=request;}function _queueSend(envelope){var requestId=++_requestIds;var request={id:requestId,longpoll:false};if(_requests.length<_maxConnections-1){_transportSend.call(this,envelope,request);_requests.push(request);}else{_envelopes.push([envelope,request]);}}function _longpollComplete(request){var requestId=request.id;if(_longpollRequest!==null&&_longpollRequest!==request){throw'Longpoll request mismatch, completing request '+requestId;}_longpollRequest=null;}function _complete(request,success){var index=_inArray(request,_requests);if(index>=0){_requests.splice(index,1);}if(_envelopes.length>0){var envelope=_envelopes.shift();if(success){_queueSend.call(this,envelope[0]);}else{setTimeout(function(){envelope[0].onFailure(envelope[1],'error');},0);}}}this.getType=function(){return _type;};this.send=function(envelope,longpoll){if(longpoll){_longpollSend.call(this,envelope);}else{_queueSend.call(this,envelope);}};this.complete=function(request,success,longpoll){if(longpoll){_longpollComplete.call(this,request);}else{_complete.call(this,request,success);}};this.abort=function(){for(var i=0;i<_requests.length;++i){var request=_requests[i];_debug('Aborting request',request);if(request.xhr){request.xhr.abort();}}if(_longpollRequest){_debug('Aborting longpoll request',_longpollRequest);if(_longpollRequest.xhr){_longpollRequest.xhr.abort();}}this.reset();};this.reset=function(){_longpollRequest=null;_requests=[];_envelopes=[];};};org.cometd.LongPollingTransport=function(){var _supportsCrossDomain=true;this.accept=function(version,crossDomain){return _supportsCrossDomain||!crossDomain;};this.xhrSend=function(packet){throw'Abstract';};this.transportSend=function(envelope,request){var self=this;try{request.xhr=this.xhrSend({transport:this,url:envelope.url,headers:_requestHeaders,body:org.cometd.JSON.toJSON(envelope.messages),onSuccess:function(response){self.transportSuccess(envelope,request,response);},onError:function(reason,exception){_supportsCrossDomain=false;self.transportFailure(envelope,request,reason,exception);}});}catch(x){_supportsCrossDomain=false;_setTimeout(function(){self.transportFailure(envelope,request,'error',x);},0);}};this.reset=function(){org.cometd.LongPollingTransport.prototype.reset();_supportsCrossDomain=true;};};org.cometd.LongPollingTransport.prototype=new org.cometd.Transport();org.cometd.LongPollingTransport.prototype.constructor=org.cometd.LongPollingTransport;org.cometd.CallbackPollingTransport=function(){var _maxLength=2000;this.accept=function(version,crossDomain){return crossDomain;};this.jsonpSend=function(packet){throw'Abstract';};this.transportSend=function(envelope,request){var self=this;var messages=org.cometd.JSON.toJSON(envelope.messages);var urlLength=envelope.url.length+encodeURI(messages).length;if(urlLength>_maxLength){var x=envelope.messages.length>1?'Too many bayeux messages in the same batch resulting in message too big '+'('+urlLength+' bytes, max is '+_maxLength+') for transport '+this.getType():'Bayeux message too big ('+urlLength+' bytes, max is '+_maxLength+') '+'for transport '+this.getType();_setTimeout(function(){self.transportFailure(envelope,request,'error',x);},0);}else{try{this.jsonpSend({transport:this,url:envelope.url,headers:_requestHeaders,body:messages,onSuccess:function(response){self.transportSuccess(envelope,request,response);},onError:function(reason,exception){self.transportFailure(envelope,request,reason,exception);}});}catch(xx){_setTimeout(function(){self.transportFailure(envelope,request,'error',xx)},0)}}}};org.cometd.CallbackPollingTransport.prototype=new org.cometd.Transport();org.cometd.CallbackPollingTransport.prototype.constructor=org.cometd.CallbackPollingTransport};

/**
 *ReloadExtension.js 
 */
if(typeof dojo!='undefined'){dojo.provide('org.cometd.ReloadExtension')}if(!org.cometd.COOKIE){org.cometd.COOKIE={};org.cometd.COOKIE.set=function(name,value,options){throw'Abstract';};org.cometd.COOKIE.get=function(name){throw'Abstract';}}org.cometd.ReloadExtension=function(configuration){var _cometd;var _debug;var _state={};var _cookieMaxAge=configuration&&configuration.cookieMaxAge||5;function _reload(){if(_state&&_state.handshakeResponse!==null){var cookie=org.cometd.JSON.toJSON(_state);_debug('Reload extension saving cookie value',cookie);org.cometd.COOKIE.set('org.cometd.reload',cookie,{'max-age':_cookieMaxAge,expires:new Date(new Date().getTime()+_cookieMaxAge*1000)});_state={}}}function _similarState(oldState){return _state.url==oldState.url}this.registered=function(name,cometd){_cometd=cometd;_cometd.reload=_reload;_debug=_cometd._debug};this.unregistered=function(){delete _cometd.reload;_cometd=null};this.outgoing=function(message){var channel=message.channel;if(channel=='/meta/handshake'){_state.url=_cometd.getURL();_state.subscriptions={};var cookie=org.cometd.COOKIE.get('org.cometd.reload');if(cookie){try{org.cometd.COOKIE.set('org.cometd.reload','',{'max-age':0,expires:new Date(new Date().getTime()-1000)});_debug('Reload extension found cookie value',cookie);var oldState=org.cometd.JSON.fromJSON(cookie);if(oldState&&oldState.handshakeResponse&&_similarState(oldState)){_debug('Reload extension restoring state',oldState);setTimeout(function(){_state.handshakeResponse=oldState.handshakeResponse;_state.subscriptions=oldState.subscriptions;_debug('Reload extension replaying handshake response',oldState.handshakeResponse);_cometd.receive(oldState.handshakeResponse)},0);return null}else{_debug('Reload extension could not restore state',oldState)}}catch(x){_debug('Reload extension error while trying to restore cookie',x)}}}else if(channel=='/meta/subscribe'){if(_state.subscriptions[message.subscription]){_debug('Reload extension restoring subscription to',message.subscription);setTimeout(function(){_debug('Reload extension replaying subscription to',message.subscription);_cometd.receive({channel:'/meta/subscribe',subscription:message.subscription,successful:true})},0);return null}}else if(channel=='/meta/disconnect'){_state={}}return message};this.incoming=function(message){if(message.successful){switch(message.channel){case'/meta/handshake':_state.handshakeResponse=message;_debug('Reload extension tracked handshake response',message);break;case'/meta/subscribe':_state.subscriptions[message.subscription]=true;_debug('Reload extension tracked subscription',message);break;case'/meta/unsubscribe':delete _state.subscriptions[message.subscription];_debug('Reload extension tracked unsubscription',message);break;default:break}}return message}};

/**
 * jquery.js
 */
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},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 toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},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(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();

jQuery.fn.boxy=function(options){options=options||{};return this.each(function(){var node=this.nodeName.toLowerCase(),self=this;if(node=='a'){jQuery(this).click(function(){var active=Boxy.linkedTo(this),href=this.getAttribute('href'),localOptions=jQuery.extend({actuator:this,title:this.title},options);if(active){active.show()}else if(href.indexOf('#')>=0){var content=jQuery(href.substr(href.indexOf('#'))),newContent=content.clone(true);content.remove();localOptions.unloadOnHide=false;new Boxy(newContent,localOptions)}else{if(!localOptions.cache)localOptions.unloadOnHide=true;Boxy.load(this.href,localOptions)}return false})}else if(node=='form'){jQuery(this).bind('submit.boxy',function(){Boxy.confirm(options.message||'Please confirm:',function(){jQuery(self).unbind('submit.boxy').submit()});return false})}})};function Boxy(element,options){this.boxy=jQuery(Boxy.WRAPPER);jQuery.data(this.boxy[0],'boxy',this);this.visible=false;this.options=jQuery.extend({},Boxy.DEFAULTS,options||{});if(this.options.modal){this.options=jQuery.extend(this.options,{center:true,draggable:false})}if(this.options.actuator){jQuery.data(this.options.actuator,'active.boxy',this)}this.setContent(element||"<div></div>");this._setupTitleBar();this.boxy.css('display','none').appendTo(document.body);this.toTop();if(this.options.fixed){if(jQuery.browser.msie&&jQuery.browser.version<7){this.options.fixed=false}else{this.boxy.addClass('fixed')}}if(this.options.center&&Boxy._u(this.options.x,this.options.y)){this.center()}else{this.moveTo(Boxy._u(this.options.x)?this.options.x:Boxy.DEFAULT_X,Boxy._u(this.options.y)?this.options.y:Boxy.DEFAULT_Y)}if(this.options.show)this.show()};Boxy.EF=function(){};jQuery.extend(Boxy,{WRAPPER:"<table cellspacing='0' cellpadding='0' border='0' class='boxy-wrapper'>"+"<tr><td class='top-left'></td><td class='top'></td><td class='top-right'></td></tr>"+"<tr><td class='left'></td><td class='boxy-inner'></td><td class='right'></td></tr>"+"<tr><td class='bottom-left'></td><td class='bottom'></td><td class='bottom-right'></td></tr>"+"</table>",DEFAULTS:{title:null,closeable:true,draggable:true,clone:false,actuator:null,center:true,show:true,modal:false,fixed:true,closeText:'[close]',unloadOnHide:false,clickToFront:false,behaviours:Boxy.EF,afterDrop:Boxy.EF,afterShow:Boxy.EF,afterHide:Boxy.EF,beforeUnload:Boxy.EF},DEFAULT_X:50,DEFAULT_Y:50,zIndex:1337,dragConfigured:false,resizeConfigured:false,dragging:null,load:function(url,options){options=options||{};var ajax={url:url,type:'GET',dataType:'html',cache:false,success:function(html){html=jQuery(html);if(options.filter)html=jQuery(options.filter,html);new Boxy(html,options)}};jQuery.each(['type','cache'],function(){if(this in options){ajax[this]=options[this];delete options[this]}});jQuery.ajax(ajax)},get:function(ele){var p=jQuery(ele).parents('.boxy-wrapper');return p.length?jQuery.data(p[0],'boxy'):null},linkedTo:function(ele){return jQuery.data(ele,'active.boxy')},alert:function(message,callback,options){return Boxy.ask(message,['OK'],callback,options)},confirm:function(message,after,options){return Boxy.ask(message,['OK','Cancel'],function(response){if(response=='OK')after()},options)},ask:function(question,answers,callback,options){options=jQuery.extend({modal:true,closeable:false},options||{},{show:true,unloadOnHide:true});var body=jQuery('<div></div>').append(jQuery('<div class="question"></div>').html(question));var map={},answerStrings=[];if(answers instanceof Array){for(var i=0;i<answers.length;i++){map[answers[i]]=answers[i];answerStrings.push(answers[i])}}else{for(var k in answers){map[answers[k]]=k;answerStrings.push(answers[k])}}var buttons=jQuery('<form class="answers"></form>');buttons.html(jQuery.map(answerStrings,function(v){return"<input type='button' value='"+v+"' />"}).join(' '));jQuery('input[type=button]',buttons).click(function(){var clicked=this;Boxy.get(this).hide(function(){if(callback)callback(map[clicked.value])})});body.append(buttons);new Boxy(body,options)},isModalVisible:function(){return jQuery('.boxy-modal-blackout').length>0},_u:function(){for(var i=0;i<arguments.length;i++)if(typeof arguments[i]!='undefined')return false;return true},_handleResize:function(evt){var d=jQuery(document);jQuery('.boxy-modal-blackout').css('display','none').css({width:d.width(),height:d.height()}).css('display','block')},_handleDrag:function(evt){var d;if(d=Boxy.dragging){d[0].boxy.css({left:evt.pageX-d[1],top:evt.pageY-d[2]})}},_nextZ:function(){return Boxy.zIndex++},_viewport:function(){var d=document.documentElement,b=document.body,w=window;return jQuery.extend(jQuery.browser.msie?{left:b.scrollLeft||d.scrollLeft,top:b.scrollTop||d.scrollTop}:{left:w.pageXOffset,top:w.pageYOffset},!Boxy._u(w.innerWidth)?{width:w.innerWidth,height:w.innerHeight}:(!Boxy._u(d)&&!Boxy._u(d.clientWidth)&&d.clientWidth!=0?{width:d.clientWidth,height:d.clientHeight}:{width:b.clientWidth,height:b.clientHeight}))}});Boxy.prototype={estimateSize:function(){this.boxy.css({visibility:'hidden',display:'block'});var dims=this.getSize();this.boxy.css('display','none').css('visibility','visible');return dims},getSize:function(){return[this.boxy.width(),this.boxy.height()]},getContentSize:function(){var c=this.getContent();return[c.width(),c.height()]},getPosition:function(){var b=this.boxy[0];return[b.offsetLeft,b.offsetTop]},getCenter:function(){var p=this.getPosition();var s=this.getSize();return[Math.floor(p[0]+s[0]/2),Math.floor(p[1]+s[1]/2)]},getInner:function(){return jQuery('.boxy-inner',this.boxy)},getContent:function(){return jQuery('.boxy-content',this.boxy)},setContent:function(newContent){newContent=jQuery(newContent).css({display:'block'}).addClass('boxy-content');if(this.options.clone)newContent=newContent.clone(true);this.getContent().remove();this.getInner().append(newContent);this._setupDefaultBehaviours(newContent);this.options.behaviours.call(this,newContent);return this},moveTo:function(x,y){this.moveToX(x).moveToY(y);return this},moveToX:function(x){if(typeof x=='number')this.boxy.css({left:x});else this.centerX();return this},moveToY:function(y){if(typeof y=='number')this.boxy.css({top:y});else this.centerY();return this},centerAt:function(x,y){var s=this[this.visible?'getSize':'estimateSize']();if(typeof x=='number')this.moveToX(x-s[0]/2);if(typeof y=='number')this.moveToY(y-s[1]/2);return this},centerAtX:function(x){return this.centerAt(x,null)},centerAtY:function(y){return this.centerAt(null,y)},center:function(axis){var v=Boxy._viewport();var o=this.options.fixed?[0,0]:[v.left,v.top];if(!axis||axis=='x')this.centerAt(o[0]+v.width/2,null);if(!axis||axis=='y')this.centerAt(null,o[1]+v.height/2);return this},centerX:function(){return this.center('x')},centerY:function(){return this.center('y')},resize:function(width,height,after){if(!this.visible)return;var bounds=this._getBoundsForResize(width,height);this.boxy.css({left:bounds[0],top:bounds[1]});this.getContent().css({width:bounds[2],height:bounds[3]});if(after)after(this);return this},tween:function(width,height,after){if(!this.visible)return;var bounds=this._getBoundsForResize(width,height);var self=this;this.boxy.stop().animate({left:bounds[0],top:bounds[1]});this.getContent().stop().animate({width:bounds[2],height:bounds[3]},function(){if(after)after(self)});return this},isVisible:function(){return this.visible},show:function(){if(this.visible)return;if(this.options.modal){var self=this;if(!Boxy.resizeConfigured){Boxy.resizeConfigured=true;jQuery(window).resize(function(){Boxy._handleResize()})}this.modalBlackout=jQuery('<div class="boxy-modal-blackout"></div>').css({zIndex:Boxy._nextZ(),opacity:0.7,width:jQuery(document).width(),height:jQuery(document).height()}).appendTo(document.body);this.toTop();if(this.options.closeable){jQuery(document.body).bind('keypress.boxy',function(evt){var key=evt.which||evt.keyCode;if(key==27){self.hide();jQuery(document.body).unbind('keypress.boxy')}})}}this.boxy.stop().css({opacity:1}).show();this.visible=true;this._fire('afterShow');return this},hide:function(after){if(!this.visible)return;var self=this;if(this.options.modal){jQuery(document.body).unbind('keypress.boxy');this.modalBlackout.animate({opacity:0},function(){jQuery(this).remove()})}this.boxy.stop().animate({opacity:0},300,function(){self.boxy.css({display:'none'});self.visible=false;self._fire('afterHide');if(after)after(self);if(self.options.unloadOnHide)self.unload()});return this},toggle:function(){this[this.visible?'hide':'show']();return this},hideAndUnload:function(after){this.options.unloadOnHide=true;this.hide(after);return this},unload:function(){this._fire('beforeUnload');this.boxy.remove();if(this.options.actuator){jQuery.data(this.options.actuator,'active.boxy',false)}},toTop:function(){this.boxy.css({zIndex:Boxy._nextZ()});return this},getTitle:function(){return jQuery('> .title-bar h2',this.getInner()).html()},setTitle:function(t){jQuery('> .title-bar h2',this.getInner()).html(t);return this},_getBoundsForResize:function(width,height){var csize=this.getContentSize();var delta=[width-csize[0],height-csize[1]];var p=this.getPosition();return[Math.max(p[0]-delta[0]/2,0),Math.max(p[1]-delta[1]/2,0),width,height]},_setupTitleBar:function(){if(this.options.title){var self=this;var tb=jQuery("<div class='title-bar'></div>").html("<h2>"+this.options.title+"</h2>");if(this.options.closeable){tb.append(jQuery("<a href='#' class='close'></a>").html(this.options.closeText))}if(this.options.draggable){tb[0].onselectstart=function(){return false};tb[0].unselectable='on';tb[0].style.MozUserSelect='none';if(!Boxy.dragConfigured){jQuery(document).mousemove(Boxy._handleDrag);Boxy.dragConfigured=true}tb.mousedown(function(evt){self.toTop();Boxy.dragging=[self,evt.pageX-self.boxy[0].offsetLeft,evt.pageY-self.boxy[0].offsetTop];jQuery(this).addClass('dragging')}).mouseup(function(){jQuery(this).removeClass('dragging');Boxy.dragging=null;self._fire('afterDrop')})}this.getInner().prepend(tb);this._setupDefaultBehaviours(tb)}},_setupDefaultBehaviours:function(root){var self=this;if(this.options.clickToFront){root.click(function(){self.toTop()})}jQuery('.close',root).click(function(){self.hide();return false}).mousedown(function(evt){evt.stopPropagation()})},_fire:function(event){this.options[event].call(this)}};
var wt$ = jQuery.noConflict();

/**
 * util.js
 */

var FlashDetect=new function(){var self=this;self.installed=false;self.raw="";self.major=-1;self.minor=-1;self.revision=-1;self.revisionStr="";var activeXDetectRules=[{"name":"ShockwaveFlash.ShockwaveFlash.7","version":function(obj){return getActiveXVersion(obj);}},{"name":"ShockwaveFlash.ShockwaveFlash.6","version":function(obj){var version="6,0,21";try{obj.AllowScriptAccess="always";version=getActiveXVersion(obj);}catch(err){}return version;}},{"name":"ShockwaveFlash.ShockwaveFlash","version":function(obj){return getActiveXVersion(obj);}}];var getActiveXVersion=function(activeXObj){var version=-1;try{version=activeXObj.GetVariable("$version");}catch(err){}return version;};var getActiveXObject=function(name){var obj=-1;try{obj=new ActiveXObject(name);}catch(err){}return obj;};var parseActiveXVersion=function(str){var versionArray=str.split(",");return{"raw":str,"major":parseInt(versionArray[0].split(" ")[1],10),"minor":parseInt(versionArray[1],10),"revision":parseInt(versionArray[2],10),"revisionStr":versionArray[2]};};var parseStandardVersion=function(str){var descParts=str.split(/ +/);var majorMinor=descParts[2].split(/\./);var revisionStr=descParts[3];return{"raw":str,"major":parseInt(majorMinor[0],10),"minor":parseInt(majorMinor[1],10),"revisionStr":revisionStr,"revision":parseRevisionStrToInt(revisionStr)};};var parseRevisionStrToInt=function(str){return parseInt(str.replace(/[a-zA-Z]/g,""),10)||self.revision;};self.majorAtLeast=function(version){return self.major>=version;};self.FlashDetect=function(){if(navigator.plugins&&navigator.plugins.length>0){var type='application/x-shockwave-flash';var mimeTypes=navigator.mimeTypes;if(mimeTypes&&mimeTypes[type]&&mimeTypes[type].enabledPlugin&&mimeTypes[type].enabledPlugin.description){var version=mimeTypes[type].enabledPlugin.description;var versionObj=parseStandardVersion(version);self.raw=versionObj.raw;self.major=versionObj.major;self.minor=versionObj.minor;self.revisionStr=versionObj.revisionStr;self.revision=versionObj.revision;self.installed=true;}}else if(navigator.appVersion.indexOf("Mac")==-1&&window.execScript){var version=-1;for(var i=0;i<activeXDetectRules.length&&version==-1;i++){var obj=getActiveXObject(activeXDetectRules[i].name);if(typeof obj=="object"){self.installed=true;version=activeXDetectRules[i].version(obj);if(version!=-1){var versionObj=parseActiveXVersion(version);self.raw=versionObj.raw;self.major=versionObj.major;self.minor=versionObj.minor;self.revision=versionObj.revision;self.revisionStr=versionObj.revisionStr;}}}}}();};FlashDetect.release="1.0.3";
var KEYS = {BACKSPACE: 8, TAB: 9, RETURN: 13, SHIFT:16, CTRL: 17, ALT: 18, PAUSE_BREAK: 19, CAPS_LOCK: 20, ESCAPE: 27, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, INSERT: 45, DELETE: 46, LEFT_WINDOW: 91, RIGHT_WINDOW: 92, SELECT: 93, F1: 112,F2: 113, F3: 114, F4: 115, F5: 116, F6: 117, F7: 118, F8: 119, F9: 120, F10: 121, F11: 122, F12: 123, NUM_LOCK: 144, SCROLL_LOCK: 145};
var TYPING_KEYS = [8, 9, 13, 16, 17, 18, 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 91, 92, 93, 112,113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 144, 145];

// dojo cometd code
if(typeof dojo!=='undefined'){dojo.provide('org.cometd')}else{this.org=this.org||{};org.cometd={}}org.cometd.JSON={};org.cometd.JSON.toJSON=org.cometd.JSON.fromJSON=function(object){throw'Abstract';};org.cometd.TransportRegistry=function(){var _types=[];var _transports={};this.getTransportTypes=function(){return _types.slice(0)};this.findTransportTypes=function(version,crossDomain){var result=[];for(var i=0;i<_types.length;++i){var type=_types[i];if(_transports[type].accept(version,crossDomain)){result.push(type)}}return result};this.negotiateTransport=function(types,version,crossDomain){for(var i=0;i<_types.length;++i){var type=_types[i];for(var j=0;j<types.length;++j){if(type==types[j]){var transport=_transports[type];if(transport.accept(version,crossDomain)===true){return transport}}}}return null};this.add=function(type,transport,index){var existing=false;for(var i=0;i<_types.length;++i){if(_types[i]==type){existing=true;break}}if(!existing){if(typeof index!=='number'){_types.push(type)}else{_types.splice(index,0,type)}_transports[type]=transport}return!existing};this.remove=function(type){for(var i=0;i<_types.length;++i){if(_types[i]==type){_types.splice(i,1);var transport=_transports[type];delete _transports[type];return transport}}return null};this.reset=function(){for(var i=0;i<_types.length;++i){_transports[_types[i]].reset()}}};org.cometd.Cometd=function(name){var _cometd=this;var _name=name||'default';var _logLevel;var _url;var _maxConnections;var _backoffIncrement;var _maxBackoff;var _reverseIncomingExtensions;var _maxNetworkDelay;var _requestHeaders;var _appendMessageTypeToURL;var _crossDomain=false;var _transports=new org.cometd.TransportRegistry();var _transport;var _status='disconnected';var _messageId=0;var _clientId=null;var _batch=0;var _messageQueue=[];var _internalBatch=false;var _listeners={};var _backoff=0;var _scheduledSend=null;var _extensions=[];var _advice={};var _handshakeProps;var _reestablish=false;var _connected=true;function _mixin(deep,target,objects){var result=target||{};for(var i=2;i<arguments.length;++i){var object=arguments[i];if(object===undefined||object===null){continue}for(var propName in object){var prop=object[propName];if(prop===target){continue}if(prop===undefined){continue}if(deep&&typeof prop==="object"&&prop!==null){if(prop instanceof Array){result[propName]=_mixin(deep,[],prop)}else{result[propName]=_mixin(deep,{},prop)}}else{result[propName]=prop}}}return result}this._mixin=_mixin;function _inArray(element,array){for(var i=0;i<array.length;++i){if(element==array[i]){return i}}return-1}function _isString(value){if(value===undefined||value===null){return false}return typeof value==='string'||value instanceof String}function _isArray(value){if(value===undefined||value===null){return false}return value instanceof Array}function _isFunction(value){if(value===undefined||value===null){return false}return typeof value==='function'}function _log(level,args){if(window.console){var logger=window.console[level];if(_isFunction(logger)){logger.apply(window.console,args)}}}function _warn(){_log('warn',arguments)}this._warn=_warn;function _info(){if(_logLevel!='warn'){_log('info',arguments)}}this._info=_info;function _debug(){if(_logLevel=='debug'){_log('debug',arguments)}}this._debug=_debug;function _configure(configuration){_debug('Configuring cometd object with',configuration);if(_isString(configuration)){configuration={url:configuration}}if(!configuration){configuration={}}_url=configuration.url;if(!_url){throw'Missing required configuration parameter \'url\' specifying the Bayeux server URL';}_maxConnections=configuration.maxConnections||2;_backoffIncrement=configuration.backoffIncrement||1000;_maxBackoff=configuration.maxBackoff||60000;_logLevel=configuration.logLevel||'info';_reverseIncomingExtensions=configuration.reverseIncomingExtensions!==false;_maxNetworkDelay=configuration.maxNetworkDelay||10000;_requestHeaders=configuration.requestHeaders||{};_appendMessageTypeToURL=configuration.appendMessageTypeToURL!==false;var urlParts=/(^https?:)?(\/\/(([^:\/\?#]+)(:(\d+))?))?([^\?#]*)(.*)?/.exec(_url);_crossDomain=urlParts[3]&&urlParts[3]!=window.location.host;if(_appendMessageTypeToURL){if(urlParts[8]!==undefined){_info('Appending message type to URI '+urlParts[7]+urlParts[8]+' is not supported, disabling \'appendMessageTypeToURL\' configuration');_appendMessageTypeToURL=false}else{var uriSegments=urlParts[7].split('/');var lastSegmentIndex=uriSegments.length-1;if(urlParts[7].match(/\/$/)){lastSegmentIndex-=1}if(uriSegments[lastSegmentIndex].indexOf('.')>=0){_info('Appending message type to URI '+urlParts[7]+' is not supported, disabling \'appendMessageTypeToURL\' configuration');_appendMessageTypeToURL=false}}}}function _clearSubscriptions(){for(var channel in _listeners){var subscriptions=_listeners[channel];for(var i=0;i<subscriptions.length;++i){var subscription=subscriptions[i];if(subscription&&!subscription.listener){delete subscriptions[i];_debug('Removed subscription',subscription,'for channel',channel)}}}}function _setStatus(newStatus){_debug('Status',_status,'->',newStatus);_status=newStatus}function _isDisconnected(){return _status=='disconnecting'||_status=='disconnected'}function _nextMessageId(){return++_messageId}function _applyExtension(scope,callback,name,message,outgoing){try{return callback.call(scope,message)}catch(x){_debug('Exception during execution of extension',name,x);var exceptionCallback=_cometd.onExtensionException;if(_isFunction(exceptionCallback)){_debug('Invoking extension exception callback',name,x);try{exceptionCallback.call(_cometd,x,name,outgoing,message)}catch(xx){_info('Exception during execution of exception callback in extension',name,xx)}}return message}}function _applyIncomingExtensions(message){for(var i=0;i<_extensions.length;++i){if(message===undefined||message===null){break}var index=_reverseIncomingExtensions?_extensions.length-1-i:i;var extension=_extensions[index];var callback=extension.extension.incoming;if(_isFunction(callback)){var result=_applyExtension(extension.extension,callback,extension.name,message,false);message=result===undefined?message:result}}return message}function _applyOutgoingExtensions(message){for(var i=0;i<_extensions.length;++i){if(message===undefined||message===null){break}var extension=_extensions[i];var callback=extension.extension.outgoing;if(_isFunction(callback)){var result=_applyExtension(extension.extension,callback,extension.name,message,true);message=result===undefined?message:result}}return message}function _convertToMessages(response){if(_isString(response)){try{return org.cometd.JSON.fromJSON(response)}catch(x){_debug('Could not convert to JSON the following string','"'+response+'"');throw x;}}if(_isArray(response)){return response}if(response===undefined||response===null){return[]}if(response instanceof Object){return[response]}throw'Conversion Error '+response+', typeof '+(typeof response);}function _notify(channel,message){var subscriptions=_listeners[channel];if(subscriptions&&subscriptions.length>0){for(var i=0;i<subscriptions.length;++i){var subscription=subscriptions[i];if(subscription){try{subscription.callback.call(subscription.scope,message)}catch(x){_debug('Exception during notification',subscription,message,x);var listenerCallback=_cometd.onListenerException;if(_isFunction(listenerCallback)){_debug('Invoking listener exception callback',subscription,x);try{listenerCallback.call(_cometd,x,subscription.handle,subscription.listener,message)}catch(xx){_info('Exception during execution of listener callback',subscription,xx)}}}}}}}function _notifyListeners(channel,message){_notify(channel,message);var channelParts=channel.split("/");var last=channelParts.length-1;for(var i=last;i>0;--i){var channelPart=channelParts.slice(0,i).join('/')+'/*';if(i==last){_notify(channelPart,message)}channelPart+='*';_notify(channelPart,message)}}function _setTimeout(funktion,delay){return setTimeout(function(){try{funktion()}catch(x){_debug('Exception invoking timed function',funktion,x)}},delay)}function _cancelDelayedSend(){if(_scheduledSend!==null){clearTimeout(_scheduledSend)}_scheduledSend=null}function _delayedSend(operation){_cancelDelayedSend();var delay=_backoff;if(_advice.interval&&_advice.interval>0){delay+=_advice.interval}_scheduledSend=_setTimeout(operation,delay)}var _handleResponse;var _handleFailure;function _send(sync,messages,longpoll,extraPath){for(var i=0;i<messages.length;++i){var message=messages[i];message.id=_nextMessageId();if(_clientId){message.clientId=_clientId}message=_applyOutgoingExtensions(message);if(message!==undefined&&message!==null){messages[i]=message}else{messages.splice(i--,1)}}if(messages.length===0){return}var url=_url;if(_appendMessageTypeToURL){if(!url.match(/\/$/)){url=url+'/'}if(extraPath){url=url+extraPath}}var envelope={url:url,sync:sync,messages:messages,onSuccess:function(request,response){try{_handleResponse.call(_cometd,request,response,longpoll)}catch(x){_debug('Exception during handling of response',x)}},onFailure:function(request,reason,exception){try{_handleFailure.call(_cometd,request,messages,reason,exception,longpoll)}catch(x){_debug('Exception during handling of failure',x)}}};_debug('Send, sync='+sync,envelope);_transport.send(envelope,longpoll)}function _queueSend(message){if(_batch>0||_internalBatch===true){_messageQueue.push(message)}else{_send(false,[message],false)}}this.send=_queueSend;function _resetBackoff(){_backoff=0}function _increaseBackoff(){if(_backoff<_maxBackoff){_backoff+=_backoffIncrement}}function _startBatch(){++_batch}function _flushBatch(){var messages=_messageQueue;_messageQueue=[];if(messages.length>0){_send(false,messages,false)}}function _endBatch(){--_batch;if(_batch<0){throw'Calls to startBatch() and endBatch() are not paired';}if(_batch===0&&!_isDisconnected()&&!_internalBatch){_flushBatch()}}function _connect(){if(!_isDisconnected()){var message={channel:'/meta/connect',connectionType:_transport.getType()};if(!_connected){_connected=true;message.advice={};message.advice.timeout=0}_setStatus('connecting');_debug('Connect sent',message);_send(false,[message],true,'connect');_setStatus('connected')}}function _delayedConnect(){_setStatus('connecting');_delayedSend(function(){_connect()})}function _handshake(handshakeProps){_clientId=null;_clearSubscriptions();if(_isDisconnected()){_transports.reset()}_batch=0;_internalBatch=true;_handshakeProps=handshakeProps;var version='1.0';var transportTypes=_transports.findTransportTypes(version,_crossDomain);var bayeuxMessage={version:version,minimumVersion:'0.9',channel:'/meta/handshake',supportedConnectionTypes:transportTypes};var message=_mixin(false,{},_handshakeProps,bayeuxMessage);_transport=_transports.negotiateTransport(transportTypes,version,_crossDomain);_debug('Initial transport is',_transport);_setStatus('handshaking');_debug('Handshake sent',message);_send(false,[message],false,'handshake')}function _delayedHandshake(){_setStatus('handshaking');_internalBatch=true;_delayedSend(function(){_handshake(_handshakeProps)})}function _handshakeResponse(message){if(message.successful){_clientId=message.clientId;var newTransport=_transports.negotiateTransport(message.supportedConnectionTypes,message.version,_crossDomain);if(newTransport===null){throw'Could not negotiate transport with server; client '+_transports.findTransportTypes(message.version,_crossDomain)+", server "+message.supportedConnectionTypes;}else{_debug('Transport',_transport,'->',newTransport);_transport=newTransport;}_internalBatch=false;_flushBatch();message.reestablish=_reestablish;_reestablish=true;_notifyListeners('/meta/handshake',message);if(!_isDisconnected()){if(_advice.reconnect!='none'){_delayedConnect();}else{_resetBackoff();_setStatus('disconnected');}}}else{_notifyListeners('/meta/handshake',message);_notifyListeners('/meta/unsuccessful',message);if(!_isDisconnected()){if(_advice.reconnect!='none'){_increaseBackoff();_delayedHandshake();}else{_resetBackoff();_setStatus('disconnected');}}}}function _handshakeFailure(xhr,message){var failureMessage={successful:false,failure:true,channel:'/meta/handshake',request:message,xhr:xhr,advice:{action:'retry',interval:_backoff}};_notifyListeners('/meta/handshake',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);if(!_isDisconnected()){if(_advice.reconnect!='none'){_increaseBackoff();_delayedHandshake();}else{_resetBackoff();_setStatus('disconnected');}}}function _connectResponse(message){_connected=message.successful;if(_connected){_notifyListeners('/meta/connect',message);if(!_isDisconnected()){if(!_advice.reconnect||_advice.reconnect=='retry'){_resetBackoff();_delayedConnect();}else{_resetBackoff();_setStatus('disconnected');}}}else{_notifyListeners('/meta/connect',message);_notifyListeners('/meta/unsuccessful',message);if(!_isDisconnected()){var action=_advice.reconnect?_advice.reconnect:'retry';switch(action){case'retry':_increaseBackoff();_delayedConnect();break;case'handshake':_resetBackoff();_delayedHandshake();break;case'none':_resetBackoff();_setStatus('disconnected');break;default:_info('Unrecognized advice action',action);break;}}}}function _connectFailure(xhr,message){_connected=false;var failureMessage={successful:false,failure:true,channel:'/meta/connect',request:message,xhr:xhr,advice:{action:'retry',interval:_backoff}};_notifyListeners('/meta/connect',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);if(!_isDisconnected()){var action=_advice.reconnect?_advice.reconnect:'retry';switch(action){case'retry':_increaseBackoff();_delayedConnect();break;case'handshake':_resetBackoff();_delayedHandshake();break;case'none':_resetBackoff();_setStatus('disconnected');break;default:_info('Unrecognized advice action',action);break;}}}function _disconnect(abort){_cancelDelayedSend();if(abort){_transport.abort();}_clientId=null;_setStatus('disconnected');_batch=0;_messageQueue=[];_resetBackoff();}function _disconnectResponse(message){if(message.successful){_disconnect(false);_notifyListeners('/meta/disconnect',message);}else{_disconnect(true);_notifyListeners('/meta/disconnect',message);_notifyListeners('/meta/unsuccessful',message);}}function _disconnectFailure(xhr,message){_disconnect(true);var failureMessage={successful:false,failure:true,channel:'/meta/disconnect',request:message,xhr:xhr,advice:{action:'none',interval:0}};_notifyListeners('/meta/disconnect',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);}function _subscribeResponse(message){if(message.successful){_notifyListeners('/meta/subscribe',message);}else{_notifyListeners('/meta/subscribe',message);_notifyListeners('/meta/unsuccessful',message);}}function _subscribeFailure(xhr,message){var failureMessage={successful:false,failure:true,channel:'/meta/subscribe',request:message,xhr:xhr,advice:{action:'none',interval:0}};_notifyListeners('/meta/subscribe',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);}function _unsubscribeResponse(message){if(message.successful){_notifyListeners('/meta/unsubscribe',message);}else{_notifyListeners('/meta/unsubscribe',message);_notifyListeners('/meta/unsuccessful',message);}}function _unsubscribeFailure(xhr,message){var failureMessage={successful:false,failure:true,channel:'/meta/unsubscribe',request:message,xhr:xhr,advice:{action:'none',interval:0}};_notifyListeners('/meta/unsubscribe',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);}function _messageResponse(message){if(message.successful===undefined){if(message.data){eval(message.channel)(message);}else{_debug('Unknown message',message);}}else{if(message.successful){_notifyListeners('/meta/publish',message);}else{_notifyListeners('/meta/publish',message);_notifyListeners('/meta/unsuccessful',message);}}}function _messageFailure(xhr,message){var failureMessage={successful:false,failure:true,channel:message.channel,request:message,xhr:xhr,advice:{action:'none',interval:0}};_notifyListeners('/meta/publish',failureMessage);_notifyListeners('/meta/unsuccessful',failureMessage);}function _receive(message){message=_applyIncomingExtensions(message);if(message===undefined||message===null){return;}if(message.advice){_advice=message.advice;}var channel=message.channel;switch(channel){case'/meta/handshake':_handshakeResponse(message);break;case'/meta/connect':_connectResponse(message);break;case'/meta/disconnect':_disconnectResponse(message);break;case'/meta/subscribe':_subscribeResponse(message);break;case'/meta/unsubscribe':_unsubscribeResponse(message);break;default:_messageResponse(message);break;}}this.receive=_receive;_handleResponse=function _handleResponse(request,response,longpoll){var messages=_convertToMessages(response);_debug('Received',response,'converted to',messages);_transport.complete(request,true,longpoll);for(var i=0;i<messages.length;++i){var message=messages[i];_receive(message);}};_handleFailure=function _handleFailure(request,messages,reason,exception,longpoll){var xhr=request.xhr;_debug('Failed',messages);_transport.complete(request,false,longpoll);for(var i=0;i<messages.length;++i){var message=messages[i];var channel=message.channel;switch(channel){case'/meta/handshake':_handshakeFailure(xhr,message);break;case'/meta/connect':_connectFailure(xhr,message);break;case'/meta/disconnect':_disconnectFailure(xhr,message);break;case'/meta/subscribe':_subscribeFailure(xhr,message);break;case'/meta/unsubscribe':_unsubscribeFailure(xhr,message);break;default:_messageFailure(xhr,message);break;}}};function _hasSubscriptions(channel){var subscriptions=_listeners[channel];if(subscriptions){for(var i=0;i<subscriptions.length;++i){if(subscriptions[i]){return true;}}}return false;}function _resolveScopedCallback(scope,callback){var delegate={scope:scope,method:callback};if(_isFunction(scope)){delegate.scope=undefined;delegate.method=scope;}else{if(_isString(callback)){if(!scope){throw'Invalid scope '+scope;}delegate.method=scope[callback];if(!_isFunction(delegate.method)){throw'Invalid callback '+callback+' for scope '+scope;}}else if(!_isFunction(callback)){throw'Invalid callback '+callback;}}return delegate;}function _addListener(channel,scope,callback,isListener){var delegate=_resolveScopedCallback(scope,callback);_debug('Listener scope',delegate.scope,'and callback',delegate.method);var subscription={channel:channel,scope:delegate.scope,callback:delegate.method,listener:isListener};var subscriptions=_listeners[channel];if(!subscriptions){subscriptions=[];_listeners[channel]=subscriptions;}var subscriptionID=subscriptions.push(subscription)-1;subscription.id=subscriptionID;subscription.handle=[channel,subscriptionID];_debug('Added listener',subscription,'for channel',channel,'having id =',subscriptionID);return subscription.handle;}function _removeListener(subscription){var subscriptions=_listeners[subscription[0]];if(subscriptions){delete subscriptions[subscription[1]];_debug('Removed listener',subscription);}}this.registerTransport=function(type,transport,index){var result=_transports.add(type,transport,index);if(result){_debug('Registered transport',type);if(_isFunction(transport.registered)){transport.registered(type,this);}}return result;};this.getTransportTypes=function(){return _transports.getTransportTypes();};this.unregisterTransport=function(type){var transport=_transports.remove(type);if(transport!==null){_debug('Unregistered transport',type);if(_isFunction(transport.unregistered)){transport.unregistered();}}return transport;};this.configure=function(configuration){_configure.call(this,configuration);};this.init=function(configuration,handshakeProps){this.configure(configuration);this.handshake(handshakeProps);};this.handshake=function(handshakeProps){_setStatus('disconnected');_reestablish=false;_handshake(handshakeProps);};this.disconnect=function(sync,disconnectProps){if(_isDisconnected()){return;}if(disconnectProps===undefined){if(typeof sync!=="boolean"){disconnectProps=sync;sync=false;}}var bayeuxMessage={channel:'/meta/disconnect'};var message=_mixin(false,{},disconnectProps,bayeuxMessage);_setStatus('disconnecting');_send(sync===true,[message],false,'disconnect');};this.startBatch=function(){_startBatch();};this.endBatch=function(){_endBatch();};this.batch=function(scope,callback){var delegate=_resolveScopedCallback(scope,callback);this.startBatch();try{delegate.method.call(delegate.scope);this.endBatch();}catch(x){_debug('Exception during execution of batch',x);this.endBatch();throw x;}};this.addListener=function(channel,scope,callback){if(arguments.length<2){throw'Illegal arguments number: required 2, got '+arguments.length;}if(!_isString(channel)){throw'Illegal argument type: channel must be a string';}return _addListener(channel,scope,callback,true);};this.removeListener=function(subscription){if(!_isArray(subscription)){throw'Invalid argument: expected subscription, not '+subscription;}_removeListener(subscription);};this.clearListeners=function(){_listeners={};};this.subscribe=function(channel,scope,callback,subscribeProps){if(arguments.length<2){throw'Illegal arguments number: required 2, got '+arguments.length;}if(!_isString(channel)){throw'Illegal argument type: channel must be a string';}if(_isDisconnected()){throw'Illegal state: already disconnected';}if(_isFunction(scope)){subscribeProps=callback;callback=scope;scope=undefined;}var send=!_hasSubscriptions(channel);var subscription=_addListener(channel,scope,callback,false);if(send){var bayeuxMessage={channel:'/meta/subscribe',subscription:channel};var message=_mixin(false,{},subscribeProps,bayeuxMessage);_queueSend(message);}return subscription;};this.unsubscribe=function(subscription,unsubscribeProps){if(arguments.length<1){throw'Illegal arguments number: required 1, got '+arguments.length;}if(_isDisconnected()){throw'Illegal state: already disconnected';}this.removeListener(subscription);var channel=subscription[0];if(!_hasSubscriptions(channel)){var bayeuxMessage={channel:'/meta/unsubscribe',subscription:channel};var message=_mixin(false,{},unsubscribeProps,bayeuxMessage);_queueSend(message);}};this.clearSubscriptions=function(){_clearSubscriptions();};this.publish=function(channel,content,publishProps){if(arguments.length<1){throw'Illegal arguments number: required 1, got '+arguments.length;}if(!_isString(channel)){throw'Illegal argument type: channel must be a string';}if(_isDisconnected()){throw'Illegal state: already disconnected';}var bayeuxMessage={channel:channel,data:content};var message=_mixin(false,{},publishProps,bayeuxMessage);_queueSend(message);};this.getStatus=function(){return _status;};this.setBackoffIncrement=function(period){_backoffIncrement=period;};this.getBackoffIncrement=function(){return _backoffIncrement;};this.getBackoffPeriod=function(){return _backoff;};this.setLogLevel=function(level){_logLevel=level;};this.registerExtension=function(name,extension){if(arguments.length<2){throw'Illegal arguments number: required 2, got '+arguments.length;}if(!_isString(name)){throw'Illegal argument type: extension name must be a string';}var existing=false;for(var i=0;i<_extensions.length;++i){var existingExtension=_extensions[i];if(existingExtension.name==name){existing=true;break;}}if(!existing){_extensions.push({name:name,extension:extension});_debug('Registered extension',name);if(_isFunction(extension.registered)){extension.registered(name,this);}return true;}else{_info('Could not register extension with name',name,'since another extension with the same name already exists');return false;}};this.unregisterExtension=function(name){if(!_isString(name)){throw'Illegal argument type: extension name must be a string';}var unregistered=false;for(var i=0;i<_extensions.length;++i){var extension=_extensions[i];if(extension.name==name){_extensions.splice(i,1);unregistered=true;_debug('Unregistered extension',name);var ext=extension.extension;if(_isFunction(ext.unregistered)){ext.unregistered();}break;}}return unregistered;};this.getExtension=function(name){for(var i=0;i<_extensions.length;++i){var extension=_extensions[i];if(extension.name==name){return extension.extension;}}return null;};this.getName=function(){return _name;};this.getClientId=function(){return _clientId;};this.getURL=function(){return _url;};this.getTransport=function(){return _transport;};org.cometd.Transport=function(){var self=this;var _type;var _requestIds=0;var _longpollRequest=null;var _requests=[];var _envelopes=[];this.registered=function(type,cometd){_type=type;};this.unregistered=function(){_type=null;};this.accept=function(version,crossDomain){throw'Abstract';};this.transportSend=function(envelope,request){throw'Abstract';};this.transportSuccess=function(envelope,request,response){if(!request.expired){clearTimeout(request.timeout);if(response&&response.length>0){envelope.onSuccess(request,response);}else{envelope.onFailure(request,'Empty HTTP response');}}};this.transportFailure=function(envelope,request,reason,exception){if(!request.expired){clearTimeout(request.timeout);envelope.onFailure(request,reason,exception);}};function _transportSend(envelope,request){request.expired=false;this.transportSend(envelope,request);if(!envelope.sync){var delay=_maxNetworkDelay;if(request.longpoll===true){delay+=_advice&&typeof _advice.timeout==='number'?_advice.timeout:0;}request.timeout=_setTimeout(function(){request.expired=true;if(request.xhr){request.xhr.abort();}var errorMessage='Transport '+self.getType()+' exceeded '+delay+' ms max network delay for request '+request.id;_debug(errorMessage);envelope.onFailure(request,'timeout',errorMessage);},delay);}}function _longpollSend(envelope){if(_longpollRequest!==null){throw'Concurrent longpoll requests not allowed, request '+_longpollRequest.id+' not yet completed';}var requestId=++_requestIds;var request={id:requestId,longpoll:true};_transportSend.call(this,envelope,request);_longpollRequest=request;}function _queueSend(envelope){var requestId=++_requestIds;var request={id:requestId,longpoll:false};if(_requests.length<_maxConnections-1){_debug('Transport sending request',requestId,envelope);_transportSend.call(this,envelope,request);_requests.push(request);}else{_debug('Transport queueing request',requestId,envelope);_envelopes.push([envelope,request]);}}function _longpollComplete(request){var requestId=request.id;if(_longpollRequest!==null&&_longpollRequest!==request){throw'Longpoll request mismatch, completing request '+requestId;}_longpollRequest=null;}function _complete(request,success){var index=_inArray(request,_requests);if(index>=0){_requests.splice(index,1);}if(_envelopes.length>0){var envelope=_envelopes.shift();if(success){_queueSend.call(this,envelope[0]);_debug('Transport completed request',request.id,envelope[0]);}else{setTimeout(function(){envelope[0].onFailure(envelope[1],'error');},0);}}}this.getType=function(){return _type;};this.send=function(envelope,longpoll){if(longpoll){_longpollSend.call(this,envelope);}else{_queueSend.call(this,envelope);}};this.complete=function(request,success,longpoll){if(longpoll){_longpollComplete.call(this,request);}else{_complete.call(this,request,success);}};this.abort=function(){for(var i=0;i<_requests.length;++i){var request=_requests[i];_debug('Aborting request',request);if(request.xhr){request.xhr.abort();}}if(_longpollRequest){_debug('Aborting longpoll request',_longpollRequest);if(_longpollRequest.xhr){_longpollRequest.xhr.abort();}}this.reset();};this.reset=function(){_longpollRequest=null;_requests=[];_envelopes=[];};this.toString=function(){return this.getType();}};org.cometd.LongPollingTransport=function(){var self=this;var _supportsCrossDomain=true;this.accept=function(version,crossDomain){return _supportsCrossDomain||!crossDomain;};this.xhrSend=function(packet){throw'Abstract';};this.transportSend=function(envelope,request){try{var sameStack=true;request.xhr=this.xhrSend({transport:this,url:envelope.url,sync:envelope.sync,headers:_requestHeaders,body:org.cometd.JSON.toJSON(envelope.messages),onSuccess:function(response){if(!response||response.length===0){_supportsCrossDomain=false;}self.transportSuccess(envelope,request,response);},onError:function(reason,exception){_supportsCrossDomain=false;if(sameStack){_setTimeout(function(){self.transportFailure(envelope,request,reason,exception);},0);}else{self.transportFailure(envelope,request,reason,exception);}}});sameStack=false;}catch(x){_supportsCrossDomain=false;_setTimeout(function(){self.transportFailure(envelope,request,'error',x);},0);}};this.reset=function(){org.cometd.LongPollingTransport.prototype.reset();_supportsCrossDomain=true;};};org.cometd.LongPollingTransport.prototype=new org.cometd.Transport();org.cometd.LongPollingTransport.prototype.constructor=org.cometd.LongPollingTransport;org.cometd.CallbackPollingTransport=function(){var self=this;var _maxLength=2000;this.accept=function(version,crossDomain){return true;};this.jsonpSend=function(packet){throw'Abstract';};this.transportSend=function(envelope,request){var messages=org.cometd.JSON.toJSON(envelope.messages);var urlLength=envelope.url.length+encodeURI(messages).length;if(urlLength>_maxLength){var x=envelope.messages.length>1?'Too many bayeux messages in the same batch resulting in message too big '+'('+urlLength+' bytes, max is '+_maxLength+') for transport '+this.getType():'Bayeux message too big ('+urlLength+' bytes, max is '+_maxLength+') '+'for transport '+this.getType();_setTimeout(function(){self.transportFailure(envelope,request,'error',x);},0);}else{try{var sameStack=true;this.jsonpSend({transport:this,url:envelope.url,sync:envelope.sync,headers:_requestHeaders,body:messages,onSuccess:function(response){self.transportSuccess(envelope,request,response);},onError:function(reason,exception){if(sameStack){_setTimeout(function(){self.transportFailure(envelope,request,reason,exception);},0);}else{self.transportFailure(envelope,request,reason,exception);}}});sameStack=false;}catch(xx){_setTimeout(function(){self.transportFailure(envelope,request,'error',xx)},0)}}}};org.cometd.CallbackPollingTransport.prototype=new org.cometd.Transport();org.cometd.CallbackPollingTransport.prototype.constructor=org.cometd.CallbackPollingTransport};
if(typeof dojo!='undefined'){dojo.provide('org.cometd.ReloadExtension')}if(!org.cometd.COOKIE){org.cometd.COOKIE={};org.cometd.COOKIE.set=function(name,value,options){throw'Abstract';};org.cometd.COOKIE.get=function(name){throw'Abstract';}}org.cometd.ReloadExtension=function(configuration){var _cometd;var _debug;var _state=null;var _cookieMaxAge=configuration&&configuration.cookieMaxAge||5;function _reload(){if(_state&&_state.handshakeResponse!==null){var cookie=org.cometd.JSON.toJSON(_state);_debug('Reload extension saving cookie value',cookie);org.cometd.COOKIE.set('org.cometd.reload',cookie,{'max-age':_cookieMaxAge,expires:new Date(new Date().getTime()+_cookieMaxAge*1000)})}}function _similarState(oldState){return _state.url==oldState.url}this.registered=function(name,cometd){_cometd=cometd;_cometd.reload=_reload;_debug=_cometd._debug};this.unregistered=function(){delete _cometd.reload;_cometd=null};this.outgoing=function(message){var channel=message.channel;if(channel=='/meta/handshake'){_state={};_state.url=_cometd.getURL();var cookie=org.cometd.COOKIE.get('org.cometd.reload');if(cookie){try{org.cometd.COOKIE.set('org.cometd.reload','',{'max-age':0,expires:new Date(new Date().getTime()-1000)});_debug('Reload extension found cookie value',cookie);var oldState=org.cometd.JSON.fromJSON(cookie);if(oldState&&oldState.handshakeResponse&&_similarState(oldState)){_debug('Reload extension restoring state',oldState);setTimeout(function(){_debug('Reload extension replaying handshake response',oldState.handshakeResponse);_state.handshakeResponse=oldState.handshakeResponse;_state.transportType=oldState.transportType;_state.reloading=true;var response=_cometd._mixin(true,{},_state.handshakeResponse);response.supportedConnectionTypes=[_state.transportType];_cometd.receive(response);_debug('Reload extension replayed handshake response',response)},0);return null}else{_debug('Reload extension could not restore state',oldState)}}catch(x){_debug('Reload extension error while trying to restore cookie',x)}}}else if(channel=='/meta/connect'){if(!_state.transportType){_state.transportType=message.connectionType;_debug('Reload extension tracked transport type',_state.transportType)}if(_state.reloading){delete _state.reloading;if(!message.advice){message.advice={}}message.advice.timeout=0}}return message};this.incoming=function(message){if(message.successful){switch(message.channel){case'/meta/handshake':if(!_state.handshakeResponse){_state.handshakeResponse=message;_debug('Reload extension tracked handshake response',message)}break;case'/meta/disconnect':_state=null;break;default:break}}return message}};

wtbCookie = function (name, value, options) {
    if (typeof value != 'undefined') {
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000))
            } else {
                date = options.expires
            }
            expires = '; expires=' + date.toUTCString()
        }
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('')
    } else {
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = dojo.trim(cookies[i]);
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue
    }
};

dojo.require('dojo.io.script');
org.cometd.JSON.toJSON = dojo.toJson;
org.cometd.JSON.fromJSON = dojo.fromJson;
dojox.cometd = new org.cometd.Cometd();
dojox.cometd.LongPollingTransport = function(){
    this.xhrSend = function(packet){
        var deferred = dojo.rawXhrPost({
            url: packet.url,
            contentType: 'application/json;charset=UTF-8',
            headers: packet.headers,
            postData: packet.body,
            handleAs: 'json',
            load: packet.onSuccess,
            error: function(error)
            {
                packet.onError(error.message, deferred.ioArgs.error);
            }
        });
        return deferred.ioArgs.xhr;
    };
};
dojox.cometd.LongPollingTransport.prototype = new org.cometd.LongPollingTransport();
dojox.cometd.LongPollingTransport.prototype.constructor = dojox.cometd.LongPollingTransport;

dojox.cometd.CallbackPollingTransport = function(){
    this.jsonpSend = function(packet){
        var deferred = dojo.io.script.get({
            url: packet.url,
            callbackParamName: 'jsonp',
            content: {
                message: packet.body
            },
            load: packet.onSuccess,
            error: function(error)
            {
                packet.onError(error.message, deferred.ioArgs.error);
            }
        });
        return undefined;
    };
};
dojox.cometd.CallbackPollingTransport.prototype = new org.cometd.CallbackPollingTransport();
dojox.cometd.CallbackPollingTransport.prototype.constructor = dojox.cometd.CallbackPollingTransport;

dojox.cometd.registerTransport('long-polling', new dojox.cometd.LongPollingTransport());
dojox.cometd.registerTransport('callback-polling', new dojox.cometd.CallbackPollingTransport());

dojox.cometd._init = dojox.cometd.init;

dojox.cometd._unsubscribe = dojox.cometd.unsubscribe;

dojox.cometd.unsubscribe = function(channelOrToken, objOrFunc, funcName){
    if (typeof channelOrToken === 'string'){
        throw "Deprecated function unsubscribe(string). Use unsubscribe(object) passing as argument the return value of subscribe()";
    }

    dojox.cometd._unsubscribe(channelOrToken);
};

dojox.cometd._metaHandshakeEvent = function(event){
    event.action = "handshake";
    dojo.publish("/cometd/meta", [event]);
};

dojox.cometd._metaConnectEvent = function(event){
    event.action = "connect";
    dojo.publish("/cometd/meta", [event]);
};

dojox.cometd.addListener('/meta/handshake', dojox.cometd, dojox.cometd._metaHandshakeEvent);
dojox.cometd.addListener('/meta/connect', dojox.cometd, dojox.cometd._metaConnectEvent);

org.cometd.COOKIE.set = wtbCookie;
org.cometd.COOKIE.get = wtbCookie;

dojox.cometd.registerExtension('reload', new org.cometd.ReloadExtension());

var CookieManager = {
	cookieName: 'wtbcstate',
	get: function(){
        try {
            var data = org.cometd.COOKIE.get(this.cookieName);
            return data ? org.cometd.JSON.fromJSON(data) : null;
        } catch (e) {
            return null
        }
    },
    put: function (data) {
    	var serialized = org.cometd.JSON.toJSON(data);
        //alert(serialized)
        org.cometd.COOKIE.set(this.cookieName, serialized, {path: '/'});
    }
}

function AlertBox(title, message, width, height){
	this.title = title,
	this.message = message,
	this.width = width,
	this.height = height,
	this.box = this.init(),
	this.show();
	
}
AlertBox.prototype={
	init: function(){
		if(document.getElementById("alertBox")) return;
		var _self = this;
		
		var box = document.createElement('div');
		box.id = 'alertBox';
		box.className = 'alertBoxStyle';
		document.body.appendChild(box);
		
		box.innerHTML = "<table border=0 width=100% height=100%>" +
		"<tr height=5><td colspan=3 class=alertTitle>" + " " + this.title + "</td></tr>" +
		"<tr><td width=5></td><td width=20 align=left><img src='"+Util.serverURL+"/css/images/alert.gif'></td>"+
		"<td class=alertMessage>" + this.message + "</td></tr>" +
		"<tr><td width=5></td><td colspan=2 align=center><input type=button id='okButton' value='OK' class=okButton><BR></td></tr>";
		
		box.style.width = this.width+'px';
		box.style.height = this.height+'px';
		
		box.style.left = this.getScreenCenterX()-this.width/2+'px';
		box.style.top = this.getScreenCenterY() -290/2+'px';
		
		var okButton = document.getElementById('okButton');
		okButton.onclick = function(){
			_self.hide()
		}
		
		return box;
	},
	getScreenCenterY: function(){
		var y = 0;
		y = this.getScrollOffset()+(this.getInnerHeight()/2);
		return(y);
	},
	getScreenCenterX: function() {
		return(document.body.clientWidth/2);
	},
	getInnerHeight: function() {
		var y;
		if (self.innerHeight){
			y = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight){
			y = document.documentElement.clientHeight;
		}
		else if (document.body){
			y = document.body.clientHeight;
		}
		return(y);
	},
	getScrollOffset: function() {
		var y;
		if (self.pageYOffset){
			y = self.pageYOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop){
			y = document.documentElement.scrollTop;
		}
		else if (document.body) {
			y = document.body.scrollTop;
		}
		return(y);
	},
	show: function(){
		this.box.style.visibility = "visible";
	},
	hide: function(){
		this.box.style.visibility = "hidden";
		document.getElementsByTagName("body")[0].removeChild(document.getElementById("alertBox"));
	}
}

function FixedBar(id){
    this.hasInner = typeof(window.innerWidth) == 'number',
    this.hasElement = document.documentElement != null&& document.documentElement.clientWidth,
    this.menu = document.getElementById? document.getElementById(id) : document.all? document.all[id]: document.layers[id],
	this.init();
};

FixedBar.prototype={
	computeShifts : function(){
	    this.shiftX = this.hasInner? pageXOffset: this.hasElement? document.documentElement.scrollLeft: document.body.scrollLeft;
	    if (this.targetLeft > 0)
	        this.shiftX += this.targetLeft;
	    else{
	        this.shiftX += (this.hasElement? document.documentElement.clientWidth: this.hasInner ? window.innerWidth - 20 : document.body.clientWidth) - this.targetRight - this.menu.offsetWidth;
	    }
	
	    this.shiftY = this.hasInner ? pageYOffset : this.hasElement ? document.documentElement.scrollTop : document.body.scrollTop; 
		if (this.targetTop > 0)
	        this.shiftY += this.targetTop;
	    else{
	        this.shiftY += (this.hasElement ? document.documentElement.clientHeight : this.hasInner ? window.innerHeight - 20 : document.body.clientHeight)- this.targetBottom-this.menu.offsetHeight;
	    }
	},
	moveMenu : function(obj){
		obj.computeShifts();
	    if (obj.currentX != obj.shiftX || obj.currentY != obj.shiftY) {
	        obj.currentX = obj.shiftX;
	        obj.currentY = obj.shiftY;
	
	        if (document.layers){
	            obj.menu.left = obj.currentX;
	            obj.menu.top = obj.currentY;
	        }
	        else {
	            obj.menu.style.left = obj.currentX + 'px';
	            obj.menu.style.top = obj.currentY + 'px';
	        }
	    }
	    obj.menu.style.right = '';
	    obj.menu.style.bottom = '';
	},
	init : function(){
		var _self =  this;
		var agt=navigator.userAgent.toLowerCase(); 
	    if (Util.isDoctype() || agt.indexOf("msie") == '-1'){
	        _self.menu.style.position = "fixed";
	        _self.menu.style.width = "210px";
	        Util.addEvent(window, 'onresize', function(){
	        	wtbChat.resizeBuddyList()
	        });
	    }else{
	    	_self.menu.style.width = "100%";
		    var ob = document.layers ? _self.menu : _self.menu.style;
	        _self.targetLeft = parseInt(ob.left);
	        _self.targetTop = parseInt(ob.top);
	        _self.targetRight = parseInt(ob.right);
	        _self.targetBottom = parseInt(ob.bottom);
	
	        if (document.layers){
	            menu.left = 0;
	            menu.top = 0;
	        }
			
			// IE moves the page around when rendering, lets make sure the chat bar ends up at the bottom
			_self.moveMenu(_self);
			
	        Util.addEvent(window, 'onscroll', function(){
	        	_self.moveMenu(_self)
	        });
	        Util.addEvent(window, 'onresize', function(){
	        	_self.moveMenu(_self)
	        	wtbChat.resizeBuddyList()
	        });
	    }
	}
}

var Util = {
	serverURL : 'http://chatbar.websitetoolbox.com/cometchat',
	
	imgs : new Array(),
	isFlashOK : false,
	flashTest : function(){
		var fd = FlashDetect;
	    var hasFlash = fd.installed;
	    var isSupported = (hasFlash && fd.major >= soundManager.flashVersion);
	    if(hasFlash && isSupported){
	    	this.isFlashOK = true;
	    }else{
	    	this.isFlashOK = false;
	    }
	},
	
	show: function(id){
		dojo.query(id).style({display:"block"});
	},
	hide: function(id){
		dojo.query(id).style({display:"none"});
	},
	preloadImages : function (images){
		for (i=0;i<images.length;i++){
			this.imgs[i]=new Image()
			this.imgs[i].src=images[i]
		}
	},
	isDoctype : function(){
		if(typeof document.namespaces != "undefined"){
			if(document.all[0].nodeType==8){
				return true;
			}else
				return false;
		}else{
			if(document.doctype != null){
				return true;
			}else
				return false;
		}
	},
	loadScript : function(sURL, callback){
		var node = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = sURL;
        if (callback) {
            script.onerror = script.onload = callback;
            script.onreadystatechange = function() {
                if (this.readyState == "complete" || this.readyState == "loaded") {
                    callback();
                }
            }
        }
        node.appendChild(script);
	},
	loadExternalCSS : function(url){
	    var css = document.createElement('link');
	    css.rel = 'stylesheet';
	    css.type = 'text/css';
	    css.href = url;
	    document.getElementsByTagName('head')[0].appendChild(css);
	},
	createPresenceDiv : function (){
		var br = document.createElement("br");
		document.body.appendChild(br);
		
		var br1 = document.createElement("br");
		document.body.appendChild(br1);
		
		var presenceDiv = document.createElement("div");
		presenceDiv.id = "presence";
		presenceDiv.style.position = "absolute";
		presenceDiv.style.height = "31px";
		
		presenceDiv.style.bottom = "0px";
		presenceDiv.style.right = "0px";
		document.body.appendChild(presenceDiv);
		return presenceDiv.id;
	},
	createHTMLElement : function(name, id, clsName){
	    var ele = document.createElement(name);
	    if(id != ''){ele.id = id;}
	    if(clsName != ''){ele.className = clsName;}
	    return ele;
	},
	addEvent : function(element, listener, handler){
	    if(typeof element[listener] != 'function' || typeof element[listener + '_num'] == 'undefined'){
	        element[listener + '_num'] = 0;
	        if (typeof element[listener] == 'function'){
	            element[listener + 0] = element[listener];
	            element[listener + '_num']++;
	        }
	        element[listener] = function(e){
	            var r = true;
	            e = (e) ? e : window.event;
	            for(var i = 0; i < element[listener + '_num']; i++)
	                if(element[listener + i](e) === false)
	                    r = false;
	            return r;
	        }
	    }
	    for(var i = 0; i < element[listener + '_num']; i++)
	        if(element[listener + i] == handler)
	            return;
	    element[listener + element[listener + '_num']] = handler;
	    element[listener + '_num']++;
	},
	stopEvent:function(ev){
        if (dojo.isIE){
            ev.cancelBubble = true;
            ev.returnValue = false;
        }else{
            ev.preventDefault();
            ev.stopPropagation();
        }
    },
    getElementHeight:function (el, useClient) {
        var x = (useClient ? el.clientWidth: el.offsetWidth) || 0;
        var y = (useClient ? el.clientHeight: el.offsetHeight) || 0;
        return y;
    },
    shown:function (el) {
        return (el.style.display != 'none' && !(el.style.display == '' && el.offsetWidth == 0));
    },
    htmlWordWrap : function(str, wrap_limit, txt_fn) {
        if (typeof wrap_limit == 'undefined') {
            wrap_limit = 30;
        }
        if (typeof txt_fn != 'function') {
            txt_fn = wtbHtmlize;
        }
        var regex = new RegExp("\\S{" + (wrap_limit + 1) + "}", 'g');
        var start = 0;
        var str_remaining = str;
        var ret_arr = [];
        var matches = str.match(regex);
        if (matches) {
            for (var i = 0; i < matches.length; i++) {
                var match = matches[i];
                var match_index = start + str_remaining.indexOf(match);
                var chunk = str.substring(start, match_index);
                if (chunk) {
                    ret_arr.push(txt_fn(chunk));
                }
                ret_arr.push(txt_fn(match) + '<wbr/>');
                start = match_index + match.length;
                str_remaining = str.substring(start);
            }
        }
        if (str_remaining) {
            ret_arr.push(txt_fn(str_remaining));
        }
        return ret_arr.join('');
    },
    textGetHyperlinks : function(str) {
        if (typeof(str) != 'string') {
            return [];
        }
        return str.match(/(?:(?:ht|f)tps?):\/\/[^\s<]*[^\s<\.)]/ig);
    },
    htmlHyperlink : function (str, txt_fn, url_fn){
        var accepted_delims = {
            '<': '>',
            '*': '*',
            '{': '}',
            '[': ']',
            "'": "'",
            '"': '"',
            '#': '#',
            '+': '+',
            '-': '-',
            '(': ')'
        };
        if (typeof(str) == 'undefined' || !str.toString) {
            return '';
        }
        if (typeof txt_fn != 'function') {
            txt_fn = wtbHtmlize;
        }
        if (typeof url_fn != 'function') {
            url_fn = wtbHtmlize;
        }
        var str = str.toString();
        var http_matches = this.textGetHyperlinks(str);
        var start = 0;
        var str_remaining = str;
        var ret_arr = [];
        var str_remaining = str;
        if (http_matches) {
            for (var i = 0; i < http_matches.length; i++) {
                var http_url = http_matches[i];
                var http_index = start + str_remaining.indexOf(http_url);
                var str_len = http_url.length;
                var non_url = str.substring(start, http_index);
                if (non_url) {
                    ret_arr.push(txt_fn(non_url));
                }
                var trailing = '';
                if (http_index > 0) {
                    var delim = str[http_index - 1];
                    if (typeof accepted_delims[delim] != 'undefined') {
                        var end_delim = accepted_delims[delim];
                        var end_delim_index = http_url.indexOf(end_delim);
                        if (end_delim_index != -1) {
                            trailing = txt_fn(http_url.substring(end_delim_index));
                            http_url = http_url.substring(0, end_delim_index);
                        }
                    }
                }
                var http_str = url_fn(http_url);
                var http_url_quote_escape = http_url.replace(/"/g, '%22');
                ret_arr.push('<a href="' + http_url_quote_escape + '" target="_blank" rel="nofollow">' + http_str + '</a>' + trailing);
                start = http_index + str_len;
                str_remaining = str.substring(start);
            }
        }
        if (str_remaining) {
            ret_arr.push(txt_fn(str_remaining));
        }
        return ret_arr.join('');
    },
    _renderMsgHtmlize: function(msg) {
        return this.htmlHyperlink(msg || '', this.htmlWordWrap, this.htmlWordWrap);
    }
};

function wtbHtmlize(text) {
    if (typeof(text) == 'undefined' || text === null || !text.toString) {
        return '';
    }
    if (text === false) {
        return '0';
    } else if (text === true) {
        return '1';
    }
    var txt = text.toString().replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#039;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    txt = txt.replace(/\n/g, '<br />');
    return txt;
}


/**
 * chatbar.js
 */
dojo.addOnLoad(function() {
	var imagePath = Util.serverURL + '/css/images/';
	var cbImages = [
         imagePath + 'strip.png',imagePath + 'leftc.png', imagePath + 'rightc1.png', 
         imagePath + 'rightc.png',imagePath + 'tab_border.gif', imagePath + 'online.png', 
         imagePath + 'offline.png', imagePath + 'away.png',imagePath + 'content_bg.png', 
         imagePath + 'tab_header_bg.png',imagePath +'chat_input.png'
    	];
	Util.preloadImages(cbImages);
    
	window.SM2_DEFER = true;
	Util.loadExternalCSS(Util.serverURL+'/css/chat-bar.css');
	Util.loadScript(Util.serverURL+'/js/soundmanager2.js', loadSoundManager);
	
	wtbChat = new WtbChat();
	wtbChat.init();
});

function loadSoundManager() {
	window.soundManager = new SoundManager(); // Flash expects window.soundManager.
    soundManager.beginDelayedInit(); // start SM2 init.
    var winLoc = window.location.toString();
	if (winLoc.match(/flash9/i)) {
	  soundManager.flashVersion = 9;
	  if (winLoc.match(/highperformance/i)) {
		soundManager.useHighPerformance = true;
		soundManager.useFastPolling = true;
	  }
	} else if (winLoc.match(/flash8/i)) {
	  soundManager.flashVersion = 8;
	}

	soundManager.useFlashBlock = false;
	soundManager.url = Util.serverURL+'/js/swf/'; // path to SoundManager2 SWF files (note trailing slash)
	soundManager.debugMode = false;
	soundManager.consoleOnly = false;
	soundManager.waitForWindowLoad = true;

	soundManager.onready(function(oStatus) {
	  if (!oStatus.success) {
	    return false;	
	  }
	});
	Util.flashTest();
}
function wtbInstantMessaging(username){
	var id = '';
	if(wtbChat != null){
		if(username != wtbChat.username){
			if(wtbChat.login == true){
				var data = {
						room: 'wtbChat.instantMessagingHandler', 
						crname: wtbChat.crname, username: username
					}
				dojox.cometd.publish('/service/instantMessaging', data);
				return false;
			}else{
				alert('Please login to send your chat message.');
				return false;
			}
		}
		return false;
	}
	return false;
}

function WtbChat(){
	this.imagePath = Util.serverURL+"/css/images";
    
	this.username = ''; 
    this.password = ''; 
    this.userToken = '';
    
    this.crname = ''; 
    this.tabs = {}; 
    this.userInfos = {};
    this.focused = null;
    this.lastFocused = null;
    this.buddyListOpen = false;
    
    this.login = false; 
    this.sound = false; 
    this.stickyBuddyList = false;
    this.free = 0; 
    
    this.userActivity = "active";    
    this.callBackUrl = ''; 
    
    this.loginUrl = '';  
    this.authToken = ''; 
    this.state = ''; 
    
    this.conBroken = false; 
    this.tabID = 'buddy_list_tab';
    this.contentID = 'buddyList';
    
    var _self = this;
	var _disconnecting;
	
	var activityThreadRunning = false;
	var lastStamp = 0;
	var blinkTime = 1500;

	var initialBlinkDelay = 10;
	var newMsgNames = [];
	var newMsgNamesIndex = 0;
	
	var blinkingTimer = null;
	var realTitle = '';
	var blinkFlag = true; 
	
	var isWindowFocused = true;
	var wtbUserList = [];
	
	function _connectionEstablished(){
		var reload = org.cometd.COOKIE.get('org.cometd.reload');
		if(reload == null && _self != null && _self.login){
	    	_self.conBroken = false;
	    	_relogin();
	    }
	}
	
	function _connectionBroken(){
		var reload = org.cometd.COOKIE.get('org.cometd.reload');
		if(reload == null && _self != null && _self.login){
			_self.conBroken = true;
			hideLoading();
		    showOffline();
		    
		    dojo.byId('headerTitle').innerHTML = "Chat";
		    var userList = [];
		    var msg = 'The chat bar is unable to reach the chat server. Please check your internet connection or try again later.'
		    renderBuddyList(userList, msg);
		}
	}
	
	function _connectionClosed(){}
	
	var _connected = false;
	function _metaConnect(message){
	    if (_disconnecting){
	        _connected = false;
	        _connectionClosed();
	    }
	    else{
	        var wasConnected = _connected;
	        _connected = message.successful === true;
	        if (!wasConnected && _connected){
	            _connectionEstablished();
	        }
	        else if (wasConnected && !_connected){
	            setTimeout(function(){_connectionBroken()},3000);
	        }
	    }
	}
	
	this.getCookieData = function() {
        var wtbcstate = {
    		u: _self.username, 
    		ut: _self.userToken, 
    		c: _self.crname, 
    		blo: _self.buddyListOpen ? 1 : 0, 
    		l: _self.login ? 1 : 0 , 
    		ua: _self.userActivity, 
    		at: _self.authToken, 
    		ls: _self.state,
    		cb: _self.conBroken ? 1 : 0,
    		sb:  (blinkingTimer == null) ? 1 : 0		
    	};
        wtbcstate.t = {};
        wtbcstate.f = null;
        for(var id in _self.tabs) {
            var tab = this.tabs[id];
            wtbcstate.t[id] = {n: tab.name, m: tab.numMissed, f: tab.focused, s: tab.status};
        }
        wtbcstate.f = _self.focused;
        return wtbcstate;
	}
	
	this.getCrName = function(){
	    var scriptList = document.getElementsByTagName("script");
	    var scriptArr = new Array();
	    for(var i=0;i<scriptList.length;i++){
	        scriptArr[i] = scriptList[i].getAttribute('src');
	    }
	    var js = /chatbar\.js(\?.*)?$/
	    var jsSrc = '';
	    for(var j=0;j<scriptArr.length;j++){
	        if(scriptArr[j].match(js)){
	            jsSrc = scriptArr[j];
	            break;
	        }
	    }
	    var jsSrcArr = jsSrc.split('?');
	    var param = jsSrcArr[1].split("=");
	    return param[1];
	};
	
	this.init = function(){
	    var cometdURL = Util.serverURL+"/cometd";
		_disconnecting = false;
	    dojox.cometd.init({ url: cometdURL, logLevel: "debug" });
		
		// Disconnect when the page unloads
		dojo.addOnUnload(function() {
			wtbChat.leave();
		});
		
	    new FixedBar(Util.createPresenceDiv());
	    
	    var wtbcstate = CookieManager.get();
		if(wtbcstate == null){
			getAcctSettings();
	    }
		else{
	    	_load(wtbcstate);
	    }
	};
	
	this.leave = function(){
	    dojox.cometd.disconnect();
	    _disconnecting = true;
	};
	

	function pingCookie(){
		//console.log('inside ping cookie');
		var wtbcstate = CookieManager.get();
		if(wtbcstate){
			if(wtbcstate.l){
				if(!_self.login){
					//console.log('inside ping cookie login = true');
					_relogin();
				}
			}else{
				setTimeout(function(){pingCookie();}, 2000);
			}
		}else{
			setTimeout(function(){pingCookie();}, 2000);
		}
	}
	
	function getAcctSettings(){
		_self.crname = _self.getCrName();
		var markup = '<p align="center"><img src="'+Util.serverURL+'/css/images/indicator_blue_small.gif"></p>';
		dojo.byId('presence').innerHTML = markup;
		var data = {
				callBack: 'wtbChat.getSettingsHandler', 
				crname: _self.crname
			};
		dojox.cometd.publish('/service/accountSettings', data);
	}
	
	this.getSettingsHandler = function(message){
		var exception = message.data.exception;
		if(exception == "unknown"){
			var markup = '<p align="center" style="margin:8px;font-weight:bold;color:red">Loading Failed.</p>';
			dojo.byId('presence').innerHTML = markup;
			dojo.byId('presence').title = "The chatbar could not be loaded. An unknown exception has occurred. Please try again later or contact support.";
		}
		else if(exception == "error"){
			var exceptionInfo = message.data.info;
			var markup = '<p align="center" style="margin:8px;font-weight:bold;color:red">Loading Failed.</p>';
			dojo.byId('presence').innerHTML = markup;
			dojo.byId('presence').title = exceptionInfo;
		}
		else if(exception == "no"){
			var callBackUrl = message.data.callBackUrl;
			if(callBackUrl == '' || callBackUrl == null){
				_self.callBackUrl = "";
				_self.authToken =  "";
				_self.loginUrl = "";
			}else{
				_self.callBackUrl = message.data.callBackUrl;
				_self.authToken =  message.data.userAuthToken;
				_self.loginUrl = message.data.loginUrl;
				
				_self.state = 'logout';
				if(callBackUrl.indexOf('?') > 0){
					callBackUrl = callBackUrl+"&authtoken="+message.data.userAuthToken;
				}
				else{
					callBackUrl = callBackUrl+"?authtoken="+message.data.userAuthToken;
				}
				var deferred = dojo.rawXhrPost({
					url: callBackUrl
				});
			}
			CookieManager.put(_self.getCookieData());
			_load(CookieManager.get());
		}
	};
	
	
	function _load(wtbcstate){
		_self.username =  wtbcstate.u;
		_self.userToken = wtbcstate.ut; 
		
		_self.crname = wtbcstate.c
		_self.buddyListOpen  = !!wtbcstate.blo 
		
		_self.login  = !!wtbcstate.l 
		_self.userActivity = wtbcstate.ua 
		_self.authToken = wtbcstate.at 
		_self.state = wtbcstate.ls
		_self.conBroken = !!wtbcstate.cb
		buildChatBarUI(_self);
		var data = {
    			crname: _self.crname,
    			username: _self.username,
    			userToken: _self.userToken,
    			authToken: _self.authToken,
    			domain: window.location.hostname,
    			callBack: 'wtbChat.checkLoginHandler' 
    	};
    	dojox.cometd.publish('/service/checkLogin', data);
    	setTimeout(function(){pingCookie();}, 2000);
    	load(wtbcstate);
	}
	
	function load(wtbcstate){
		_self._loadInitialTabs(wtbcstate.t, wtbcstate.f);
    	if (blinkingTimer && wtbcstate.sb) {
            _stopBlinking();
        }
    	var msg = ''
		if(_self.login){
    		if(_self.conBroken){
    			showOffline();
    			dojo.byId('headerTitle').innerHTML = "Chat";
    			msg = 'The chat bar is unable to reach the chat server. Please check your internet connection or try again later.';
    		}else{
    			//msg = 'Loading...';
    			showOnline();
    			var count = parseInt(wtbUserList.length-1);
    		    if(count < 0 ){
    		    	count = 0;
    		    }
    		    dojo.byId('buddyCountNumber').innerHTML = '(<strong>'+count+'</strong>)';
    		}
		}else{ 
			showOffline();
			msg = '';
		}
    	renderBuddyList(wtbUserList, msg);
    	if(_self.buddyListOpen){
	        if(_self.free == 1){
	            setGoogleAddSrc();
	        }
	        dojo.addClass(dojo.byId(_self.tabID), 'focused');
	        Util.show('#'+_self.contentID);
	    }
    	dojo.query(document).onclick(function(event){
        	if(dojo.byId('alertBox')){
        		event.stopPropagation();
        	}else{
        		if(dojo.hasClass(dojo.byId('buddy_list_panel_settings_control'), 'flyout_open')){
        			closeOptions();
        		}else {
        			if(!_self.stickyBuddyList){
        				_self.closeBuddyList()
        			}
        		}
        	}
        });
		dojo.query('#presence').onclick( function(event){
				event.stopPropagation();
		});
		Util.addEvent(window, 'onblur', function(){
			isWindowFocused = false;
		});
		
		Util.addEvent(window, 'onfocus', function(){
			isWindowFocused = true;
			_self.doStopBlinking();
		});
		
		// user activity recording and auto login after being idle or timed out
		Util.addEvent(document, 'onmousemove', function(){
			var currentStamp = new Date().getTime();
			if(currentStamp - lastStamp > 30*1000 || _self.userActivity == "idle" || _self.userActivity == "timeout"){
				_self.doUserActive('mouse','');
				lastStamp = currentStamp;
			}
		});
	}
	
	this.loadInitialUserInfo = function(id, name, status) {
        if (_self.userInfos[id]) {
            return;
        }
        _self.userInfos[id] = {
            'name': name,
            'status': status
        };
    },
	
	this._loadInitialTabs = function(activeChats, focusedChat) {
        var firstTab = null;
        for (var id in activeChats) {
            if (!firstTab) {
                firstTab = id;
            }
            if (this.tabs[id]) {
                continue;
            }
            var tabInfo = activeChats[id];
            var name, status;
            if (_self.userInfos[id]) {
                name = _self.userInfos[id].name;
                status = _self.userInfos[id].status;
            } else {
                name = tabInfo.n;
                status= tabInfo.s; 
            }
            var numMissed = tabInfo.m || 0;
            _self.tabs[id] = new ChatTab(_self, id, name, status, numMissed);
            _self.numTabs++;
        }
        if (focusedChat && (focusedChat != _self.focused)) {
        	_self._focusTab(focusedChat);
        }
    };
	
	this.checkLoginHandler = function(message){
		if(message.data.packet == 'autoLogin'){
			_self.autoLogin(message);
		}
		else if(message.data.packet == 'autoLogout'){
			_self.autoLogout(message);
		}
		else if(message.data.packet == 'login'){
			_self.reload(message)
		}else{
			_self.notAllowed(message);
		}
	};
	
	this.autoLogin = function(message){
		if(!_self.login && _self.state == 'logout'){
			dojo.byId('buddy_count').innerHTML = '  Loading...';
    		showLoading();
    		var data = {
    				loginSuccess: 'wtbChat.loginSuccessHandler', loginFail: 'wtbChat.loginFailHandler',
    				userAuthToken: _self.authToken, crname: _self.crname, timeOffset: new Date().getTimezoneOffset()
		    	};
		    dojox.cometd.publish('/service/autoLogin', data);
		}else{
			hideLoading();
		}
	};
	
	this.autoLogout = function(message){
		_self.login = false;
		_self.password = '';
		_self.userToken = '';
		_self.state = 'logout';
	    
	    hideLoading();
	    showOffline();
	    _self.closeBuddyList();
	    for(var id in _self.tabs){
	    	var tab = _self.tabs[id];
	        if(tab.focused){
	            dojo.removeClass(tab.tabHandle, 'focused');
	            dojo.addClass(tab.tabHandle, 'disabled');
	            dojo.addClass(tab.tabHandle, 'focused');
	        }else{
	        	dojo.addClass(tab.tabHandle, 'disabled');
	        }
	        if(dojo.byId('chat_conv_content_'+tab.id).innerHTML  == 'Loading history...'){
	        	dojo.byId('chat_conv_content_'+tab.id).innerHTML = '';
	        }
	    }
	    wtbUserList = [];
	    CookieManager.put(_self.getCookieData());
	};
	
	this.reload = function(message){
		_self.password = message.data.password;
		_self.sound = message.data.sound;
		
		_self.stickyBuddyList = message.data.stickyBuddyList;
		_self.free = message.data.free;
		
		_self.callBackUrl = message.data.callbackUrl;
		_self.loginUrl = message.data.loginUrl;
		
		wtbUserList = message.data.userList;
		 if(_self.free == 1){
		    	dojo.byId('google_adds').style.display = '';
		    	dojo.byId('powered_by').style.display = '';
		 }
		load(CookieManager.get());
	}
	
	this.notAllowed = function(message){
		dojo.byId('online').style.display = 'none';
		renderBuddyList(wtbUserList, message.data.message);
		dojo.addClass(dojo.byId(_self.tabID), 'focused');
	    Util.show('#'+_self.contentID);
	}
	
	this.doLogin = function(){
		var userName = dojo.byId('wtbUsername').value;
	    var password = dojo.byId('wtbPassword').value;
	    if(userName == ''){
	        alert('Please enter username');
	    	dojo.byId('wtbUsername').focus();
	        return;
	    }
	    if(password == ''){
	        alert('Please enter password');
	        dojo.byId('wtbPassword').focus();
	        return;
	    }
	    
	    Util.show('#chat_availability_toggle');
	    Util.hide('#loginArea');
	    dojo.query('#wtbPassword').attr({'value':''});
	    showLoading();
	    var data = {
	    		loginSuccess: 'wtbChat.loginSuccessHandler', loginFail: 'wtbChat.loginFailHandler',
	    		user: userName, password: password, crname: _self.crname, timeOffset: new Date().getTimezoneOffset()
	    	};
	    dojox.cometd.publish('/service/login', data);
	}

	this.loginSuccessHandler = function(message){
		_self.login = true;
		_self.username = message.data.username;
	    _self.password = message.data.password;
		
	    _self.userToken = message.data.usertoken;
		_self.state = 'online';
		_self.free = message.data.free;
		
		_self.callBackUrl = message.data.callbackUrl;
		_self.loginUrl = message.data.loginUrl;
		
	    var sound = message.data.sound;
	    var stickyBuddyList = message.data.stickyBuddyList; 
	    
	    wtbUserList = message.data.userlist;
	    
	    if(Util.isFlashOK && sound == 1){
	    	_self.sound = true;
	    }else{
	    	_self.sound = false;
	    }
	    if(stickyBuddyList == 1){
	    	_self.stickyBuddyList = true;
	    }
	    else{
	    	_self.stickyBuddyList = false;
	    }
	    hideLoading();
	    showOnline();
	    dojo.byId('headerTitle').innerHTML = "Chat ("+ message.data.username+")";
	    var count = parseInt(wtbUserList.length-1);
	    if(count<0){
	    	count = 0;
	    }
	    dojo.byId('buddyCountNumber').innerHTML = '(<strong>'+count+'</strong>)';
	    
	    if(_self.buddyListOpen){
	        renderBuddyList(wtbUserList, '');
	    }
	    if(_self.free == 1){
	    	dojo.byId('google_adds').style.display = '';
	    	dojo.byId('powered_by').style.display = '';
	    }
	    CookieManager.put(_self.getCookieData());
	};

	this.loginFailHandler = function(message){
		if(!_self.buddyListOpen){
			dojo.addClass(dojo.byId(_self.tabID),'focused');
			Util.show('#'+_self.contentID);
			_self.buddyListOpen = true;
		}
		hideLoading();
		showOffline();
		var userList = [];
		renderBuddyList(userList, message.data.error)
		//CookieManager.put(chatBar);
	};
	
	this.doLogout = function(){
		showLoading();
		var data = {
		        logout: 'wtbChat.logoutHandler',
		        userToken: _self.userToken,
		        autoLogout: 'false'
		    }
		dojox.cometd.publish('/service/logout', data);
	}
	
	this.logoutHandler = function(message){
		_self.login = false;
		_self.password = '';
		_self.userToken = '';
	    
		_self.state = 'offline';
	    hideLoading();
	    showOffline();
	    dojo.byId('headerTitle').innerHTML = "Chat";
	    wtbUserList = [];
	    if(_self.authToken != ''){
	    	_self.closeBuddyList();
	    }else{
	    	renderBuddyList(wtbUserList,'');
	    }
	    for(var id in _self.tabs){
	    	var tab = _self.tabs[id];
	        if(tab.focused){
	            dojo.removeClass(tab.tabHandle, 'focused');
	            dojo.addClass(tab.tabHandle, 'disabled');
	            dojo.addClass(tab.tabHandle, 'focused');
	        }else{
	        	dojo.addClass(tab.tabHandle, 'disabled');
	        }
	        if(dojo.byId('chat_conv_content_'+tab.id).innerHTML  == 'Loading history...'){
	        	dojo.byId('chat_conv_content_'+tab.id).innerHTML = '';
	        }
	    }
	    dojo.byId('google_adds').style.display = 'none';
	    dojo.byId('powered_by').style.display = 'none';
	    CookieManager.put(_self.getCookieData());
	    pingCookie();
	};
	
	this.userListHandler = function(message){
		var count = parseInt(message.data.length-1);
		if(count < 0){
    		count = 0;
    	}
		dojo.byId('buddyCountNumber').innerHTML = '(<strong>'+count+'</strong>)';
		wtbUserList = message.data;
	    
		if(_self.buddyListOpen){
	        renderBuddyList(message.data, '');
	    }else{
	    	manageChatTab(message.data);
	    }
	    CookieManager.put(_self.getCookieData());
	}
	
	this.connectionHandler = function(message){
		dojox.cometd.publish('/service/updateConnection', {
			crname: _self.crname,
			username: _self.username
		})
	}
	
	function _relogin(){
		if (_self.username == '') {
			return;
		}
	
	  	if(_self.authToken !='' ){
    		var data = {
    				loginSuccess: 'wtbChat.loginSuccessHandler', loginFail: 'wtbChat.loginFailHandler',
		            user: _self.username, crname: _self.crname, userAuthToken: _self.authToken,
		            autoLogin: 'true', timeOffset: new Date().getTimezoneOffset()
		        };
			dojox.cometd.publish('/service/relogin', data);
		}else{
			var data = {
					loginSuccess: 'wtbChat.loginSuccessHandler', loginFail: 'wtbChat.loginFailHandler',
					user: _self.username, password: _self.password, crname: _self.crname, 
					autoLogin: 'false', timeOffset: new Date().getTimezoneOffset()
				};
			dojox.cometd.publish('/service/relogin', data);
		}
	}
	
	function showLoading(){
		Util.hide('#onlineImg');
		Util.hide('#offlineImg');
		Util.hide('#idleImg');
		Util.show('#loadingImg');
	    
	    if(!_self.buddyListOpen){
		    Util.hide('#tabOnlineImg');
		    Util.hide('#tabOfflineImg');
		    Util.hide('#tabIdleImg');
		    Util.show('#tabLoadingImg');
	    }
	}

	function hideLoading(){
		Util.hide('#loadingImg');
	    Util.hide('#tabLoadingImg');
	}

	function showOnline(){
	    Util.hide('#tabOfflineImg');
	    Util.hide('#tabIdleImg');
	    Util.show('#tabOnlineImg');
	    
	    Util.hide('#offlineImg');
	    Util.hide('#idleImg');
	    Util.show('#onlineImg');
	    
	    Util.hide('#unAvailable');
	    Util.hide('#idle');	
	    Util.show('#available');
	    
	    dojo.removeClass(dojo.byId('buddy_list_panel'), 'hidden_elem');
	    dojo.addClass(dojo.byId('buddy_list_panel'), 'clearfix');
	    if(_self.free == 1){
	    	dojo.addClass(dojo.byId('powered_by'), 'online');
	    }
	    var markup = 'Chat <span id="buddyCountNumber" class="buddy_count_num">(<strong>0</strong>)</span>';
	    dojo.byId('buddy_count').innerHTML = markup;
	}

	function showIdle(){
		Util.hide('#tabOnlineImg');
		Util.hide('#tabOfflineImg');
		Util.show('#tabIdleImg');
	    
	    Util.hide('#onlineImg');
	    Util.hide('#offlineImg');
	    Util.show('#idleImg');
	    
	    Util.hide('#available');
	    Util.hide('#unAvailable');
	   	Util.show('#idle'); 
	}

	function showOffline(){
		Util.hide('#tabOnlineImg');
		Util.hide('#tabIdleImg');
	    Util.show('#tabOfflineImg');
	    
	    Util.hide('#onlineImg');
	    Util.hide('#idleImg');
	    Util.show('#offlineImg');
	    
	    Util.hide('#available');
	   	Util.hide('#idle');
	    Util.show('#unAvailable');
	    
	    dojo.removeClass(dojo.byId('buddy_list_panel'), 'clearfix');
	    dojo.addClass(dojo.byId('buddy_list_panel'), 'hidden_elem');
	    if(_self.free == 1){
	    	dojo.removeClass(dojo.byId('powered_by'), 'online');
	    }
	    var markup = '';
	    if(_self.authToken != ''){
	    	if(_self.state == 'offline'){
	    		markup = 'You are offline. <strong>Go online</strong>';
	    	}else if(_self.state == 'logout'){
	    		markup = 'Sign in to chat';
	    	}
	    }else{
	    	markup = 'Sign in to chat';
	    }
	    dojo.byId('buddy_count').innerHTML = markup;
	}
	

	this.toggleOptions = function(){
		if(dojo.hasClass(dojo.byId('buddy_list_panel_settings_control'),'flyout_open')){
			dojo.removeClass(dojo.byId('buddy_list_panel_settings_control'),'flyout_open');
	    	dojo.removeClass(dojo.byId('buddy_list_panel_settings_flyout'),'flyout_reversed');
	    	dojo.addClass(dojo.byId('buddy_list_panel_settings_flyout'),'hidden_elem');
		}else{
			if(_self.stickyBuddyList == true){
				dojo.attr('checkbox_sticky_buddylist',{'checked': true});
			}else{
				dojo.attr('checkbox_sticky_buddylist',{'checked': false});
			}
			if(Util.isFlashOK && _self.sound == true){
				dojo.attr('chat_setting_checkbox_sound',{'checked': true});
			}else{
				dojo.attr('chat_setting_checkbox_sound',{'checked': false});
				_self.sound = false;
			}
			dojo.addClass(dojo.byId('buddy_list_panel_settings_control'),'flyout_open');
	    	dojo.removeClass(dojo.byId('buddy_list_panel_settings_flyout'),'hidden_elem');
	    	dojo.addClass(dojo.byId('buddy_list_panel_settings_flyout'),'flyout_reversed');
		}
	}

	function closeOptions(){
		dojo.removeClass(dojo.byId('buddy_list_panel_settings_control'),'flyout_open');
		dojo.removeClass(dojo.byId('buddy_list_panel_settings_flyout'),'flyout_reversed');
		dojo.addClass(dojo.byId('buddy_list_panel_settings_flyout'),'hidden_elem');
	}

	 this.manageAutoLogin = function(){
		if(_self.authToken != '' || _self.authToken != null){
			if(_self.state == 'logout'){
				if(_self.loginUrl != ''){
					window.location.href = _self.loginUrl;
				}else{ 
					var data = {
							callBack: 'wtbChat.getLoginUrlHandler', 
							crname: _self.crname
						};
					dojox.cometd.publish('/service/getLoginUrl', data);
				}
				
			}else if(_self.state == 'offline'){
				showLoading();
				dojo.byId('buddy_count').innerHTML = '  Loading...';
				var data = {
				        loginSuccess: 'wtbChat.loginSuccessHandler', loginFail: 'wtbChat.loginFailHandler',
				        userAuthToken: _self.authToken, crname: _self.crname, timeOffset: new Date().getTimezoneOffset()
				    };
			    dojox.cometd.publish('/service/autoLogin', data);
			}else toggleBuddyList();
		}else{
			toggleBuddyList();
		}
	}

	this.getLoginUrlHandler = function(message){
		_self.loginUrl = message.data.loginUrl;
		if(_self.loginUrl != ''){
			window.location.href = _self.loginUrl;
		}
	}
	
	function toggleBuddyList(){
		if(_self.buddyListOpen){
			_self.closeBuddyList();
	    }else{
	        if(_self.free == 1){
	            setGoogleAddSrc();
	        }
	        openBuddyList();
	    }
	}
	function _openBuddyList(){
		dojo.addClass(dojo.byId(_self.tabID), 'focused');
	    Util.show('#'+_self.contentID);
	    
	    renderBuddyList(wtbUserList,'');
	    _self.buddyListOpen = true;
	}
	
	function openBuddyList(){
		_openBuddyList();
		_self._sendStateChange(1, 'buddyListOpen');
	    _self.uiChanged();
	}

	function _closeBuddyList(){
		dojo.removeClass(dojo.byId(_self.tabID), 'focused');
	    Util.hide('#'+_self.contentID);
	    _self.buddyListOpen = false;
	}
	
	this.closeBuddyList = function(){
		_closeBuddyList();
		_self._sendStateChange(1, 'buddyListClose');
	    _self.uiChanged();
	    
	}


	function sortedUserList(userList){
		var activeUserList = [];
		var idleUserList = [];
		
		dojo.forEach(userList, function (value, index){
			var tmpArr = value.split("wtb@noida");
			if(tmpArr[2] == "ACTIVE"){
				activeUserList.push(value);
			}else{
				idleUserList.push(value);
			}
		});
		activeUserList.sort(_compareFunction); 
		idleUserList.sort(_compareFunction); 
		return activeUserList.concat(idleUserList);;
	}

	function _compareFunction(x,y){
		var a = String(x).toLowerCase(); 
	    var b = String(y).toLowerCase(); 
	    if (a > b) 
	       return 1 
	    if (a < b) 
	       return -1 
	    return 0; 
	}

	function renderBuddyList(userList, msg){
		dojo.query('ul#buddyListParent li').forEach(dojo.destroy);
		if(msg == '' && _self.free == 2){
			msg = 'This chat bar account has expired. If you are the owner,';
			msg = msg + 'please login to your Website Toolbox account for more information.';
		}
		if(msg!= ''){
			dojo.byId('buddyListError').innerHTML = msg;
			Util.hide('#buddyListAll');
			Util.show('#buddyListError');
		}else if(msg == '' && _self.login){
			Util.hide('#buddyListError');
			Util.show('#buddyListAll');
			createBuddyList(wtbUserList)
		}else{
			Util.hide('#buddyListError');
			Util.hide('#buddyListAll');
		}
	    if(msg != 'Loading...'){
	    	manageChatTab(wtbUserList);
	    }
	    CookieManager.put(_self.getCookieData());
	}

	function createBuddyList(userList){
		userList = sortedUserList(userList);
		var emptyBuddyList = true;
		msg = 'No one is currently available to chat.';
		
		var buddyListEmptyItem = Util.createHTMLElement('li','buddyListEmptyItem','info_text');
	    buddyListEmptyItem.appendChild(document.createTextNode(msg));
	    
	    if(userList.length > 0){
	    	for(var i = 0; i < userList.length; i++){
	    		var userNameAndToken = userList[i].split("wtb@noida");
	    	    var status = userNameAndToken[2];
	    	    
	    	    _self.loadInitialUserInfo(userNameAndToken[1], userNameAndToken[0], userNameAndToken[2]);
	    	    
	    	    if(userNameAndToken[1] != _self.userToken){
	            	var buddyListItem = Util.createHTMLElement('li','buddyListItem'+i , '')
	                buddyListItem.style.display = 'block';
	                buddyListItem.style.height = '20px';
	                dojo.byId('buddyListParent').appendChild(buddyListItem);
	                var listAnchor = '';
	                if(status=='ACTIVE'){
	                	listAnchor = Util.createHTMLElement('a',userNameAndToken[1] , 'friend_status');
	                }else if(status == 'IDLE'){
	                	listAnchor = Util.createHTMLElement('a',userNameAndToken[1] , 'friend_status_idle');
	                	listAnchor.title = 'Idle';
	                }
	                listAnchor.href = '#';
	                listAnchor.onclick = function(){
	                	var userStatus = '';
	                    if(this.title == 'Idle'){
	                    	userStatus = 'IDLE';
	                    }else{
	                    	userStatus = 'ACTIVE';
	                    }
	                    _self.focusTab(this.id, this.childNodes[0].nodeValue, userStatus);
	                    return false;
	                 };
	                listAnchor.appendChild(document.createTextNode(userNameAndToken[0]));
	                buddyListItem.appendChild(listAnchor);
	                emptyBuddyList = false;
	            }
	        }
	    	if(emptyBuddyList){
	    		dojo.byId('buddyListParent').appendChild(buddyListEmptyItem);
	        }
	    }else{
	    	dojo.byId('buddyListParent').appendChild(buddyListEmptyItem);
	    }
	    _self.resizeBuddyList();
	    
	}

	this.resizeBuddyList = function(){
		if(dojo.byId('buddyListEmptyItem')== undefined){
			var count = wtbUserList.length-1;
			var winHeight = document.body.clientHeight;
		    var blHeight = winHeight * 0.8;
		    blHeight = blHeight - 100;
		    
		    if(blHeight < 50 ){
		    	blHeight = 50;
		    }	
		    if(dojo.byId('buddyListAll').scrollHeight > blHeight){
		    	dojo.byId('buddyListAll').style.height = blHeight+'px';
		    }else{
		    	var divHeight = (count*20)+3;
		    	dojo.byId('buddyListAll').style.height = divHeight+'px';
		    }
		}else{
			dojo.byId('buddyListAll').style.height = 30+'px';
		}
	}

	function manageChatTab(userList){
		for(var id in _self.tabs){
			var tab = _self.tabs[id];
			var found = false;
			var status = '';
			for(var j=0; j<userList.length; j++){
				 var userNameAndToken = userList[j].split("wtb@noida");
				 if(userNameAndToken[1] == tab.id){
					 found = true;
					 status = userNameAndToken[2];
					 break;
				 }
			}
			if(found){
				tab.status = status;
				if(status =='ACTIVE'){
					dojo.removeClass(tab.tabHandle, 'idle');
					dojo.removeClass(tab.tabHandle, 'disabled');
				}else if(status == 'IDLE'){
					if(tab.focused){
						dojo.removeClass(tab.tabHandle, 'disabled');
						dojo.removeClass(tab.tabHandle, 'focused');
		                dojo.addClass(tab.tabHandle, 'idle');
		                dojo.addClass(tab.tabHandle, 'focused');
					}else{
						dojo.removeClass(tab.tabHandle, 'disabled');
						dojo.addClass(tab.tabHandle, 'idle');
					}
				}
			}else{
				tab.status = 'OFFLINE';
				if(tab.focused){
	                dojo.removeClass(tab.tabHandle, 'focused');
	                dojo.addClass(tab.tabHandle, 'disabled');
	                dojo.addClass(tab.tabHandle, 'focused');
	            }else{
	            	dojo.addClass(tab.tabHandle, 'disabled');
	            }
				dojo.byId('chat_typing_'+tab.id).innerHTML = '';
			}
		}
	}

	function setGoogleAddSrc(){
	    dojo.query('#googleAdd').attr({'src' : Util.serverURL+'/google_add.html'});
	    if(_self.buddyListOpen && _self.free == 1){
	    	setTimeout(function(){setGoogleAddSrc()}, 2*60*1000)
	    }
	}
	
	function doBlink(){
		if(blinkFlag){
			if (newMsgNames && newMsgNames.length > 0){
		        if (newMsgNamesIndex >= newMsgNames.length) {
		            newMsgNamesIndex = 0;
		        }
		        var name = newMsgNames[newMsgNamesIndex++];
		        document.title = name +' says...'
		    } 
			blinkFlag = false;
		}else{
			document.title = realTitle;
			blinkFlag = true;
		}
	}
	function _startBlinking(){
		doBlink();
		blinkingTimer = setInterval(function(){doBlink()}, blinkTime);
	}

	this.doStopBlinking = function(force) {
	    if (blinkingTimer || force) {
	        _stopBlinking();
	    }
	}
	function _stopBlinking() {
	    if (blinkingTimer) {
	    	document.title = realTitle;
	        clearInterval(blinkingTimer);
	        blinkingTimer = null;
	        newMsgNames = [];
	        newMsgNamesIndex = 0;
	    }
	}
	
	 this.isUserExists = function(token){
		for(var i=0; i<wtbUserList.length; i++){
	        if(wtbUserList[i].indexOf(token)>0){
	            return true;
	        }
	    }
	    return false;
	}
	this.getName = function(token){
		var name = '';
		for(var i=0; i<wtbUserList.length; i++){
			var userNameAndToken = wtbUserList[i].split("wtb@noida");
			if(userNameAndToken[1] == token){
				name = userNameAndToken[0];
				break;
			}
	    }
	    return name;
	}
	
	this.getStatus = function(token){
		var status = '';
		for(var i=0; i<wtbUserList.length; i++){
			var userNameAndToken = wtbUserList[i].split("wtb@noida");
			if(userNameAndToken[1] == token){
				status = userNameAndToken[2];
				break;
			}
	    }
	    return status;
	}

	this.updateSoundSettings = function(){
		dojo.addClass(dojo.byId('chat_setting_sound'), 'chat_setting_loading');
		if(Util.isFlashOK){
			var soundFlag = 0;
			if(dojo.attr('chat_setting_checkbox_sound', 'checked') == true){
				soundFlag = 1;
			}else{
				soundFlag = 0;
			}
			var data = {
					room: 'wtbChat.multipleTabHandler', userToken: _self.userToken,
		            soundFlag: soundFlag, setting : 'sound'
		        };
			dojox.cometd.publish('/service/updateUserSettings', data);
		}else{
		    var markup = 'Sorry, you do not have the flash plugin necessary to play sounds.'; 
			markup = markup + '	Please download the latest plugin for free from ';
			markup = markup + '<a href="http://www.adobe.com/products/flashplayer/" target="blank" onclick="">';
			markup = markup + 'http://www.adobe.com/products/flashplayer</a>.';
			new AlertBox('Alert', markup, '350','120');		
			
	        dojo.removeClass(dojo.byId('chat_setting_sound'), 'chat_setting_loading');
			dojo.attr('chat_setting_checkbox_sound', {'checked': false});
			_self.sound = false;
		}
		CookieManager.put(_self.getCookieData());
	}

	this.updateStickyBuddyListSettings = function(){
		dojo.addClass(dojo.byId('chat_setting_sticky_buddylist'), 'chat_setting_loading');
		var stickyFlag = 0;
		if(dojo.attr('checkbox_sticky_buddylist', 'checked') == true){
			stickyFlag = 1;
		}else{
			stickyFlag = 0;
		}
		var data = {
				room: 'wtbChat.multipleTabHandler', userToken: _self.userToken,
				stickyFlag: stickyFlag, setting : 'stickyBuddyList'
	    	};
		dojox.cometd.publish('/service/updateUserSettings', data);
		CookieManager.put(_self.getCookieData());
	}

	this.showLoginDiv = function(){
		Util.hide('#chat_availability_toggle');;
	    Util.show('#loginArea');
	    if(_self.username != ''){
	        dojo.query('#wtbUsername').attr({'value':_self.username});
	        dojo.byId('wtbPassword').focus();
	    }else{
	    	dojo.query('#wtbUsername').attr({'value':''});
	        dojo.byId('wtbUsername').focus();
	    }
	}

	this.cancelLogin = function(){
	    Util.show('#chat_availability_toggle');
	    Util.hide('#loginArea');
	    dojo.query('#wtbPassword').attr({'value':''});
	}

	this._focusTab = function (id, name, status) {
		if (id == _self.focused) {
            return;
        }
        if (!_self.tabs[id]) {
        	if (typeof name == 'undefined') {
                if (!_self.userInfos[id] || !_self.userInfos[id].name) {
                    return;
                }
                name = _self.userInfos[id].name;
                status = _self.userInfos[id].status;
            }
        	_self.tabs[id] = new ChatTab(_self, id, name, status, 0);
        	_self.numTabs++;
        	
        	//chatTabSlider.addTab(id);
        }
        //chatTabSlider.gotoTab(id);
        if (_self.focused) {
        	_self.tabs[_self.focused].unfocus();
        }
        _self.focused = id;
        _self.lastFocused = id;
        if (_self.focused) {
            if (_self.tabs[_self.focused]) {
            	_self.tabs[_self.focused].focus();
            }
        }
        CookieManager.put(_self.getCookieData())
    }
    this.focusTab = function(id, name, status) {
        _self._focusTab(id, name, status);
        _self.tabs[_self.focused].focusChatInput();
        _self._sendStateChange(id, 'focusChat');
        _self.uiChanged();
        _self.doStopBlinking();
        
    }
    this.toggleTab = function(id, name, status) {
        if (_self.focused == id) {
        	_self.unfocus();
        } else {
        	_self.focusTab(id, name, status);
        }
    }
    this._unfocus = function() {
        if (!_self.focused) {
            return false;
        }
        _self.tabs[_self.focused].unfocus();
        _self.focused = null;
       return true;
    },
    this.unfocus = function() {
        var changed = _self._unfocus();
        if(changed) {
            _self._sendStateChange(1, 'unfocusChat');
            _self.uiChanged();
        }
        _self.lastFocused = null;
    },
    this.refocus = function() {
        if (!_self.lastFocused || !_self.tabs[_self.lastFocused]) {
            return null;
        }
        _self._focusTab(_self.lastFocused);
    },
    this._closeTab = function(id){
    	if (!_self.tabs[id]) {
            return;
        }
        if (_self.focused == id) {
       	 _self.focused = null;
        }
        _self.tabs[id].close();
        delete _self.tabs[id];
        _self.numTabs--;
        //chatTabSlider.close(id);
    },
    this.closeTab = function(id) {
    	 _self._closeTab(id);
         _self._sendStateChange(id, 'closeChat');
         this.uiChanged();
    },
    this.uiChanged = function() {
            CookieManager.put(_self.getCookieData());
    },
    this._sendStateChange = function(id, command){
    	var data = {
            	room: 'wtbChat.multipleTabHandler', 
            	userToken: _self.userToken,
            	id: id, 
            	command: command
            };
        dojox.cometd.publish('/service/commandForTabs', data);
    }
    
    
	 this.doUserActive = function(eventType, toUserToken){
		if(_self.login){
			if(_self.userActivity == "idle"){
				var data = {
				        room: 'wtbChat.userActiveHandler',
				        userToken: _self.userToken
				    };
				dojox.cometd.publish('/service/userActive', data);
			}else{
				var data = {
				        userToken: _self.userToken,
				        toUserToken: toUserToken,
				        eventType: eventType
				    };
				dojox.cometd.publish('/service/recordActivity', data);
			}
		}else{
			if(_self.userActivity == "timeout" && _self.username != ''){
				showLoading();
				
				var cometdURL = Util.serverURL+"/cometd";
				_disconnecting = false;
				dojox.cometd.init({ url: cometdURL, logLevel: "debug" });
				
				if(_self.authToken !=''){
		    		var data = {
		    				loginSuccess: 'wtbChat.loginSuccessHandler', loginFail: 'wtbChat.loginFailHandler',
				            user: _self.username, crname: _self.crname, userAuthToken: _self.authToken,
				            autoLogin: 'true', timeOffset: new Date().getTimezoneOffset()
				        };
					dojox.cometd.publish('/service/relogin', data);
				}else{
					var data = {
							loginSuccess: 'wtbChat.loginSuccessHandler', loginFail: 'wtbChat.loginFailHandler',
							user: _self.username, password: _self.password, crname: _self.crname, 
							autoLogin: 'false', timeOffset: new Date().getTimezoneOffset()
						};
					dojox.cometd.publish('/service/relogin', data);
				}
		    	_self.userActivity = 'active';
			}
		}
		CookieManager.put(_self.getCookieData());
		
	}
	dojox.cometd.addListener('/meta/connect', _metaConnect);
	
	this.typingHandler = function(message){
		var id = message.data.userToken;
		var markup = '';
		if(message.data.typing == 'yes'){
			 markup = message.data.username+ ' is typing...'
		}
		if(dojo.byId('chat_typing_'+id) != undefined || dojo.byId('chat_typing_'+id) != null)
			dojo.byId('chat_typing_'+id).innerHTML = markup;
	}
	
	this.multipleTabHandler = function(message){
		var command = message.data.command;
		if(command == "buddyListOpen"){
			_openBuddyList();
		}
		else if(command == "buddyListClose"){
			_closeBuddyList();
		}
		else if(command == "focusChat"){
			_self._focusTab(message.data.id)
		}
		else if(command == "unfocusChat"){
			_self._unfocus();
		}
		else if(command == "closeChat"){
			_self._closeTab(message.data.id)
		}
		else if(command == "updateSound"){
			updateSound(message);
		}
		else if(command == "stickyBuddyList"){
			updateStickyBuddyList(message)
		}
		else if(command == "clearHistory"){
			clearHistory(message);
		}
	}
	
	this.messageHandler = function(message){
		var command = message.data.command;
		if(command == 'WARNING'){
			var toUserToken = message.data.toUserToken;
			var tab = _self.tabs[toUserToken];
		    var chatMsg = message.data.chatMsg;
		    tab.renderMsgWarningMarkup(toUserToken, chatMsg)
		}
		else if(command == 'DISCONNECT'){
			var toUserToken = message.data.toUserToken;
			var tab = _self.tabs[toUserToken];
		    var chatMsg = message.data.chatMsg;
		    tab.renderMsgWarningMarkup(toUserToken, chatMsg)
		}
		else{
			var fromUserToken = message.data.fromUserToken;
			var fromUsername = message.data.fromUsername;
		    var toUserToken = message.data.toUserToken;
		
		    var toUsername = message.data.toUsername;
			var chatMsg = message.data.chatMsg;
		    var isMessageGrouped = message.data.isMessageGrouped;
		    var timeStr = getLocalTime();
		    
		    var id = null;
		    var name = null;
		    if(fromUserToken == _self.userToken){
		    	id = toUserToken;
		    	name = toUsername;
		    }else{
		    	id = fromUserToken;
		    	name = fromUsername;
		    }
		    _self.loadInitialUserInfo(id, name, 'ACTIVE');
		    var tab = _self.tabs[id];
		    if (!tab){
                tab = _self.tabs[id] = new ChatTab(_self, id, name, 'ACTIVE', 0);
                _self.numTabs++;
                //chatTabSlider.addTab(id);
                if (!_self.focused) {
                	_self.focusTab(id);
                } 
            }
		    if(fromUserToken == _self.userToken){
		    	tab.renderMessage(chatMsg, fromUsername, toUserToken, timeStr, isMessageGrouped, 'self');
		    	tab.historyLoaded = true;
		        if(_self.sound  == true){
		        	 soundManager.createSound({
		 			    id: 'mySound',
		 			    url: Util.serverURL+'/sound/notify_2.mp3'
		 			});
		        	soundManager.play('mySound');
		        }
		        _self.doStopBlinking(true);
		    }else{
		    	tab.renderMessage(chatMsg, fromUsername, fromUserToken, timeStr, isMessageGrouped, 'other');
		    	if(tab.id != _self.focused ){
		    		tab._updateNumMissed(tab.numMissed+1);
	            }
		        if(_self.sound == true){
		        	 soundManager.createSound({
		 			    id: 'mySound',
		 			    url: Util.serverURL+'/sound/notify_2.mp3'
		 			});
		        	soundManager.play('mySound');
		        }
		        
		        if(isWindowFocused){
		        	setTimeout(function(){_self.doStopBlinking(true)}, 500);
		        }else{
		        	newMsgNames.push(fromUsername);
                    if (!blinkingTimer) {
                    	blinkingTimer = setTimeout(function(){_startBlinking()}, initialBlinkDelay);
                    }
		        }
		    }
		    if(message.data.messageId != 'BLANK'){
		    	dojox.cometd.publish('/service/updateMessageAck', {
					crname: _self.crname,
					username: _self.username,
					messageId: message.data.messageId
				})
		    }
		}
		CookieManager.put(_self.getCookieData());
	};
	
	function getLocalTime(){
		var timeStr = "";
	    var hours = "";
        var minutes = "";
        var amPM = "";
        
        var date = new Date();

        if(date.getHours()>12){
        	hours = date.getHours()-12;
        	amPM = " pm";
        }else{
        	if(date.getHours()==12){
        		hours = date.getHours();
            	amPM = "pm";
        	}else{
        		hours = date.getHours();
            	amPM = "am";
        	}
        }
        if(date.getMinutes()<10){
            minutes = "0"+date.getMinutes();
        }else{
            minutes = date.getMinutes();
        }
        timeStr = hours+":"+minutes+" "+amPM;
        return timeStr;
	}
	
	this.historyHandler = function(message){
		var id = message.data[0].toUserToken;
		var status = message.data[0].status;
		if(status =='NO'){
			dojo.byId('chat_conv_content_'+id).innerHTML = '';
			Util.hide('#chat_toolbox_'+id);
		}else{
			dojo.byId('chat_conv_content_'+id).innerHTML = '';
			if(message.data.length > 1){
				var tab = _self.tabs[id];
				tab.renderHistory(message.data);
			}
			else{
				Util.hide('#chat_toolbox_'+id);
			}
		}
	},
	
	this.instantMessagingHandler = function(message){
		var username = message.data.username;
	    var id = message.data.userToken;
	    if(id != ''){
	    	_self.focusTab(id);
        }else{
        	alert(username+' is currently not online.');
        }
	}

	this.userActiveHandler = function(message){
		if(message.data.activeUser == _self.username){
			_self.userActivity = "active";
			showOnline();
			dojo.byId('headerTitle').innerHTML = "Chat ("+ _self.username +")";
			var count = parseInt(message.data.userList.length-1);
			if(count<0){
				count = 0
			}
			dojo.byId('buddyCountNumber').innerHTML = "(<strong>"+count+"</strong>)";
		}
		wtbUserList = message.data.userList;
		renderBuddyList(wtbUserList, '');
		CookieManager.put(_self.getCookieData());
	}

	this.userInactiveHandler = function(message){
		if(message.data.idleUser == _self.username){
			_self.userActivity = "idle";
			showIdle();
			dojo.byId('headerTitle').innerHTML = "Chat ("+ _self.username +")";
			var count = parseInt(message.data.userList.length-1);
			if(count<0){
				count = 0
			}
			dojo.byId('buddyCountNumber').innerHTML = "(<strong>"+count+"</strong>)";
		}
		wtbUserList = message.data.userList;
		renderBuddyList(wtbUserList, '');
	    CookieManager.put(_self.getCookieData());
	}
	
	this.timeoutHandler = function(message){
		_self.login = false; 
		_self.userActivity = "timeout";
		_self.state = 'offline';
	    showOffline();
	    dojo.byId('headerTitle').innerHTML = "Chat";
	   
	    wtbUserList = [];
	    var msg = 'You have been disconnected from chat due to inactivity. Move your mouse to reconnect.'
	    renderBuddyList(wtbUserList, msg);
		
		wtbChat.leave();
		
	    CookieManager.put(_self.getCookieData());
	    pingCookie();
	}
	
	function updateSound(message){
		var result = message.data.result;
		var soundFlag = message.data.soundFlag;
		dojo.removeClass(dojo.byId('chat_setting_sound'), 'chat_setting_loading');
		if(result == "Success"){
			if(soundFlag == 1){
				dojo.attr('chat_setting_checkbox_sound', {'checked': true});
				_self.sound = true;
			}else{
				dojo.attr('chat_setting_checkbox_sound', {'checked': false});
				_self.sound = false;
			}
		}else{
			if(soundFlag == 1){
				dojo.attr('chat_setting_checkbox_sound', {'checked': false});
				_self.sound = false;
			}else{
				dojo.attr('chat_setting_checkbox_sound', {'checked': true});
				_self.sound = true;
			}
			alert("An exception has occurred during this operation.");
		}
		CookieManager.put(_self.getCookieData());
	}
	function updateStickyBuddyList(message){
		var result = message.data.result;
		var stickyFlag = message.data.stickyFlag;
		dojo.query('#chat_setting_sticky_buddylist').removeClass('chat_setting_loading');
		if(result == "Success"){
			if(stickyFlag == 1){
				dojo.attr('checkbox_sticky_buddylist', {'checked': true});
				_self.stickyBuddyList = true;
			}else{
				dojo.attr('checkbox_sticky_buddylist', {'checked': false});
				_self.stickyBuddyList = false;
			}
		}else{
			if(stickyFlag == 1){
				dojo.attr('checkbox_sticky_buddylist', {'checked': false});
				_self.stickyBuddyList = false;
			}else{
				dojo.attr('checkbox_sticky_buddylist', {'checked': true});
				_self.stickyBuddyList = true;
			}
			alert("An exception has occurred during this operation.");
		}
		CookieManager.put(_self.getCookieData());
	}
	
	function clearHistory(message){
		var tab = _self.tabs[message.data.id];
		dojo.byId('chat_conv_content_'+tab.id).innerHTML = '';
		Util.hide('#chat_toolbox_'+tab.id);
		
		tab.historyLoaded = false;
		tab.handleResize();
		CookieManager.put(_self.getCookieData());
	}
	function _unloadChatbar(){
		dojox.cometd.reload();
		var options = {
				path : '/', 
				expires: new Date(new Date().getTime() + 6000)
			};
		org.cometd.COOKIE.set('wtbunload','true',options);
		CookieManager.put(_self.getCookieData());
	}
	dojo.addOnUnload(dojox.cometd, "reload");
}

function ChatTab(chatDisplay, id, name, status, numMissed){
	this.chatDisplay = chatDisplay;
    this.id = id;  
    this.name = name; 
    this.status = status;
    this.focused = false; 
    this.historyLoaded = false;
    this.numMissed = numMissed;
    this._buildUI();
    this._updateNumMissedDisplay();
}

ChatTab.prototype = {
		maxHandleLen: 16,
		maxTitleLen: 20,
		lastKeyDownStamp: 0,
		trimName: function(maxLength) {
		    var name = this.name;
		    if (name.length > maxLength) {
		        name = name.substring(0, maxLength - 2) + '...';
		    }
		    return name;
		},
		headerLinkMouseOver: function() {
	        dojo.addClass(this.chatHeader, 'suppress_hover');
	        this.suppressHeaderCollapse = true;
	    },
	    headerLinkMouseOut: function() {
	        dojo.removeClass(this.chatHeader, 'suppress_hover');
	        this.suppressHeaderCollapse = false;
	    },
	    unfocus: function() {
	        this.focused = false;
	        dojo.removeClass(this.tabHandle, 'focused');
	    },
	    focus: function() {
	        if (this.focused) {
	            return;
	        }
	        if(this.status == "IDLE"){
	    		dojo.addClass(this.tabHandle, 'idle');
	    	}
	        dojo.addClass(this.tabHandle, 'focused');
	        this.focused = true;
	        if (this.chatDisplay.login && !this.historyLoaded) {
	        	this.loadHistory();
	        }
	        this._updateNumMissed(0);
	    },
	    focusChatInput: function() {
	    	dojo.byId('chat_input_'+this.id).focus();
	    },
	    close: function() {
	        this.tabHandle.parentNode.removeChild(this.tabHandle);
	        if(Util.isDoctype() || dojo.isIE == undefined){
	    		var barWidth  = dojo.byId('presence').style.width;
	    	    barWidth = parseInt(barWidth) - 136;
	    	    dojo.byId('presence').style.width =barWidth+'px' ;
	    	}
	    },
	    _updateNumMissed: function(numMissed) {
	    	if (numMissed == this.numMissed ) {
	            return;
	        }
	        if (numMissed > 99) {
	            numMissed = 99;
	        }
	        this.numMissed = numMissed;
	        this._updateNumMissedDisplay();
	    },
	    _updateNumMissedDisplay: function() {
	    	this.tabCount.innerHTML = this.numMissed;
	        if (this.numMissed > 0) {
	            //chatTabSlider.updateMissedCount();
	            dojo.addClass(this.tabHandle, 'highlight');
	            this.tabCount.style.display = 'block';
	        } else {
	            //chatTabSlider.updateMissedCount();
	            dojo.removeClass(this.tabHandle, 'highlight');
	            this.tabCount.style.display = 'none';
	        }
	    },
	    tabHitAreaOnClick: function() {
	        this.chatDisplay.toggleTab(this.id, this.name, this.status);
	        this.chatDisplay.doStopBlinking();
	    },
	    tabXOnClick: function(e) {
	        this.chatDisplay.closeTab(this.id);
	        this.chatDisplay.doStopBlinking();
	    },
	    
	    inputKeyDown: function(event) {
	    	event = event || window.event;
	        var keyCode = event.keyCode ? event.keyCode : event.which;
	        this.chatDisplay.doStopBlinking();
       
	        if(dojo.indexOf(TYPING_KEYS, keyCode)< 0){
	    		var currentKeyDownStamp = new Date().getTime();
	    		if(parseInt(currentKeyDownStamp - this.lastKeyDownStamp) > 2*1000 && dojo.byId('chat_input_'+this.id).value.length > 0){
    				this.chatDisplay.doUserActive('key', this.id);
	    			var _self = this;
	    			
	    			setTimeout(function(){_self.sendNoTyping();},2000);
	    			this.lastKeyDownStamp = currentKeyDownStamp;
	    		}
	    	}
	        if (keyCode == KEYS.RETURN && keyCode != KEYS.SHIFT) {
	            if (dojo.byId('chat_input_'+this.id).value) {
	                this.sendMessage();
	            }
	        }
	        if (event.keyCode == KEYS.DELETE || event.keyCode == KEYS.BACKSPACE) {
	            this.handleResize();
	        }
	    },
	    inputKeyPress: function(event) {
	    	event = event || window.event;
	        var keyCode = event.keyCode ? event.keyCode : event.which;
	        this.handleResize();
	        
	        if (event.keyCode == KEYS.RETURN && !event.shiftKey) {
	        	Util.stopEvent(event);
	        }
	    },
	    
	    scrollToBottom : function(ele) {
	    	ele.scrollTop = ele.scrollHeight;
	    },

	    sendMessage: function(){
	    	if(this.chatDisplay.login){
	    		var msg = dojo.byId('chat_input_'+this.id).value;
	    		if(this.chatDisplay.isUserExists(this.id)){
					if (this.chatDisplay.userToken) {
						var data =  {
								room: 'wtbChat.messageHandler', fromUser: this.chatDisplay.userToken, fromUsername: this.chatDisplay.username, 
								toUser: this.id, toUsername: this.name, chatMsg: msg
							};
						dojox.cometd.publish('/service/privateChat', data);
					} else {
						this.renderMsgWarningMarkup(this.id, 'Error: Missing user data. The chat message will not be delivered.');
					}
	    		}else{
	    			this.renderMsgWarningMarkup(this.id, this.name+' is currently offline. The chat message will not be delivered.');
	    		}
	        }
	        dojo.query('#chat_input_'+this.id).attr({value : ''});
	    },
	    sendNoTyping: function (){
	    	var data = {
	    	    	crname: this.chatDisplay.crname, username: this.chatDisplay.username,
	    	    	userToken: this.chatDisplay.userToken, toUserToken: this.id
	    	    };
	    	dojox.cometd.publish('/service/noTyping', data);
	    },
	    loadHistory: function(){
			dojo.byId('chat_conv_content_'+this.id).innerHTML = 'Loading history...';
			var data = {
					room: 'wtbChat.historyHandler', 
					userToken: this.chatDisplay.userToken,
					otherUserToken: this.id
				};
			dojox.cometd.publish('/service/getHistory', data);
		},
		
		clearHistory: function(){
			if(dojo.byId('chat_conv_content_'+this.id).innerHTML != ''){
	    		var data = {
	            		room: 'wtbChat.multipleTabHandler',
	            		userToken: this.chatDisplay.userToken, toUser: this.id
	            	};
	        	dojox.cometd.publish('/service/clearHistory', data);
	        }
		},
	    
	    renderHistory: function(chatMessages){
			var _self = this;
	    	var id = chatMessages[0].toUserToken;
	    	if(dojo.byId('chat_toolbox_'+id).style.display == 'none'){
	        	Util.show(('#chat_toolbox_'+id));
	        }
	    	var markup ='';
	    	for(var j=1; j<chatMessages.length; j++){
	    		var fromUserToken = chatMessages[j].fromUserToken;
	    		var fromUsername = chatMessages[j].fromUsername;
	    		var toUserToken = chatMessages[j].toUserToken;
	    	    
	    	    var message = chatMessages[j].message;
	    	    var timeStr = chatMessages[j].timeStr;
	    	    var isMessageGrouped = chatMessages[j].isMessageGrouped;
	    	    var isMessageAck = chatMessages[j].isMessageAck;
	    	    var messageId = chatMessages[j].messageId;

	    	    if(fromUsername == this.chatDisplay.username){
	    	    	markup += this.renderHistoryMsg(message, fromUsername, toUserToken, timeStr, isMessageGrouped, 'self');
	    	    }else{
	    	    	markup += this.renderHistoryMsg(message, fromUsername, fromUserToken, timeStr, isMessageGrouped, 'other');
	    	    }
	    	    if(isMessageAck != 'true'){
	    	    	dojox.cometd.publish('/service/updateMessageAck', {
	    				crname: this.chatDisplay.crname,
	    				username: this.chatDisplay.username,
	    				messageId: messageId
	    			})
	    	    }
	        }
	    	dojo.destroy('chat_conv_'+id);
	    	var chat_conv = dojo.create('div',{id: 'chat_conv_'+id},'chat_typing_'+id,'before');
	    	dojo.addClass(chat_conv, 'chat_conv');
	    	dojo.style(chat_conv,{'height':'179px'});
			chat_conv.onclick = function(){
		    	_self.focusChatInput();
		    }

	    	var chat_conv_content = dojo.create('div',{id: 'chat_conv_content_'+id, innerHTML: markup}, chat_conv);
			chat_conv_content.onclick = function(){
		    	_self.focusChatInput();
		    }
	    	this.historyLoaded = true;
	    	this.scrollToBottom(dojo.byId('chat_conv_'+id));
	    	this.handleResize();
	    },

	    renderHistoryMsg: function(message, fromUser, toUserToken, timeStr, isMessageGrouped, msgClass){
	    	var markup = '';
	    	if(isMessageGrouped == 'YES'){
	    		markup += '<p class="p_'+msgClass+' pic_padding">' + Util._renderMsgHtmlize(message)+ '</p>';
	    	}else{
	        	markup += '<h5 class="'+msgClass+'"><span class="time_stamp ts_'+msgClass+'">'+timeStr+'</span>' + fromUser + '</h5>';
	            markup += '<p class="p_'+msgClass+' pic_padding">' + Util._renderMsgHtmlize(message) + '</p>';
	        }
	    	return markup 
	    },

	    renderMessage :function(message, fromUser, toUserToken, timeStr, isMessageGrouped, msgClass){
	    	if(dojo.byId('chat_conv_content_'+toUserToken) != undefined){
	    		var markup = dojo.byId('chat_conv_content_'+toUserToken).innerHTML;
	    		if(isMessageGrouped == 'YES'){
	    			markup += '<p class="p_'+msgClass+' pic_padding">' + Util._renderMsgHtmlize(message)+ '</p>';
	    		}else{
	    	    	markup += '<h5 class="'+msgClass+'"><span class="time_stamp ts_'+msgClass+'">'+timeStr+'</span>' + fromUser + '</h5>';
	    	        markup += '<p class="p_'+msgClass+' pic_padding">' + Util._renderMsgHtmlize(message) + '</p>';
	    	    }
	    		dojo.byId('chat_conv_content_'+toUserToken).innerHTML = markup;
	    	    if(dojo.query('#chat_toolbox_'+toUserToken).style('display') == 'none'){
	    	    	Util.show('#chat_toolbox_'+toUserToken);
	    	    }
	    	    this.handleResize();
	    	}
	    },

	    renderMsgWarningMarkup :function(id, desc) {
	    	var markup = dojo.byId('chat_conv_content_'+id).innerHTML;
	        markup = markup + '<p class="chat_notice chat_msg_warning">' + desc + '</p>';
	        dojo.byId('chat_conv_content_'+id).innerHTML = markup;
	        if(dojo.query('#chat_toolbox_'+id).style('display') == 'none'){
	        	Util.show('#chat_toolbox_'+id);
	        }
	        this.scrollToBottom(dojo.byId('chat_conv_'+id));
	        this.handleResize(id);
	    },

	    _buildUI: function(){
	    	var _self = this;
	    	if(Util.isDoctype() || dojo.isIE == undefined){
		        var barWidth  = dojo.byId('presence').style.width;
		        //alert(barWidth)
		        barWidth = parseInt(barWidth) + 136;
		        dojo.byId('presence').style.width = barWidth+'px' ;
	        }
	    	
	    	this.tabHandle = Util.createHTMLElement('div', 'tab_handle_'+this.id, 'tab_handle');
			dojo.style(this.tabHandle, {'width': '136px'});
			
		    var tab_button_div = Util.createHTMLElement('div','','tab_button_div');
		    tab_button_div.onmouseover = function(){
		        dojo.query(this).addClass('hover');
		    };
		    tab_button_div.onmouseout = function(){
		    	dojo.query(this).removeClass('hover');
		    };
		    this.tabHandle.appendChild(tab_button_div);

		    var tab_hit_area = Util.createHTMLElement('div','','tab_hit_area');
		    tab_hit_area.onclick = function(){
		    	_self.tabHitAreaOnClick();
		    };
		    tab_button_div.appendChild(tab_hit_area);

		    this.tabCount = Util.createHTMLElement('div','missed_count_'+this.id,'tab_count');
		    tab_button_div.appendChild(this.tabCount);
		    this.tabCount.innerHTML = '0';
		    this.tabCount.style.display = 'none';

		    var tab_name = Util.createHTMLElement('div','','tab_name');
		    tab_name.appendChild(document.createTextNode(this.name));
		    tab_hit_area.appendChild(tab_name);

		    var tab_x = Util.createHTMLElement('div','','tab_x');
		    tab_x.onclick = function(){
		    	_self.tabXOnClick();
		    };
		    tab_x.onmouseover = function(){
		    	dojo.query(this).addClass('hover');
		    };
		    tab_x.onmouseout = function(){
		    	dojo.query(this).removeClass('hover');
		    };
		    tab_button_div.appendChild(tab_x);

		    var chat_window_wrapper = Util.createHTMLElement('div','chat_window_wrapper_'+this.id,'chat_window_wrapper');
		    tab_button_div.appendChild(chat_window_wrapper);

		    var chat_window = Util.createHTMLElement('div','','chat_window');
		    chat_window_wrapper.appendChild(chat_window);

		    var chat_header = Util.createHTMLElement('div','chat_header_'+this.id,'chat_header');
		    chat_window.appendChild(chat_header);

		    var header_buttons = Util.createHTMLElement('div','','header_buttons');
		    chat_header.appendChild(header_buttons);

		    var closeAnchor = Util.createHTMLElement('a','','close');
		    closeAnchor.onclick = function(){
		    	_self.tabXOnClick();
		    };
		    header_buttons.appendChild(closeAnchor);

		    var minimizeAnchor = Util.createHTMLElement('a','','minimize');
		    minimizeAnchor.onclick = function(){
		    	_self.tabHitAreaOnClick();
		    }
		    header_buttons.appendChild(minimizeAnchor);

		    var chat_header_name = Util.createHTMLElement('div','','chat_header_name');
		    chat_header_name.onclick = function(){
		    	_self.tabHitAreaOnClick();
		    }
		    chat_header_name.appendChild(document.createTextNode(this.name));
		    chat_header.appendChild(chat_header_name);

		    var chat_toolbox = Util.createHTMLElement('div','chat_toolbox_'+this.id,'toolbox');
		    chat_window.appendChild(chat_toolbox);
		    chat_toolbox.style.display = 'none';
		    
		    var chat_actions = Util.createHTMLElement('div','','chat_actions');
		    chat_toolbox.appendChild(chat_actions);

		    var action = Util.createHTMLElement('span','','action');
		    action.appendChild(document.createTextNode('Clear Chat History'));
		    
		    action.onmouseover = function(){
		    	dojo.query(this).addClass('hover');
		    };
		    action.onmouseout = function(){
		    	dojo.query(this).removeClass('hover');
		    };
		    action.onclick = function(){
		    	_self.clearHistory();
		    }
		    chat_actions.appendChild(action);

		    var chat_conv = Util.createHTMLElement('div','chat_conv_'+this.id,'chat_conv');
		    chat_window.appendChild(chat_conv);
			chat_conv.onclick = function(){
		    	_self.focusChatInput();
		    }

		    var chat_conv_content = Util.createHTMLElement('div','chat_conv_content_'+this.id,'');
		    chat_conv.appendChild(chat_conv_content);
			chat_conv_content.onclick = function(){
		    	_self.focusChatInput();
		    }

		    var chat_typing = Util.createHTMLElement('div','chat_typing_'+this.id,'chat_type');
		    chat_window.appendChild(chat_typing);
			chat_typing.onclick = function(){
		    	_self.focusChatInput();
		    }
		    
		    var chat_input_div = Util.createHTMLElement('div','','chat_input_div');
		    chat_window.appendChild(chat_input_div);

		    var chat_shadow_input = Util.createHTMLElement('textarea','chat_shadow_input_'+this.id,'chat_shadow_input');
		    chat_input_div.appendChild(chat_shadow_input);

		    var chat_input_icon = Util.createHTMLElement('div','','chat_input_icon');
		    chat_input_div.appendChild(chat_input_icon);

		    var chat_input = Util.createHTMLElement('textarea','chat_input_'+this.id,'chat_input');
		    chat_input.onkeydown = function(event){
		    	_self.inputKeyDown(event);
		    }
		    chat_input.onkeypress = function(event){
		        _self.inputKeyPress(event);
		    }
		    chat_input.onclick = function(event){
		    	_self.chatDisplay.doStopBlinking();
		    }
		    chat_input_div.appendChild(chat_input);
		    
		    var chatTabBar = dojo.byId('chat_tab_bar');
		    var otherTab = null;
			for (id in this.chatDisplay.tabs) {
				otherTab = this.chatDisplay.tabs[i];
			}
			if (otherTab) {
	            chatTabBar.insertBefore(this.tabHandle, otherTab.tabHandle);
	        } else {
	            chatTabBar.appendChild(this.tabHandle);
	        }
			
		    if(Util.isDoctype()){
		    	if(dojo.isIE == 8){
					dojo.byId('chat_window_wrapper_'+this.id).style.marginLeft = '-91px';
				}else if(dojo.isIE == 7){
					dojo.byId('chat_window_wrapper_'+this.id).style.marginLeft = '-211px';
				}else{
					dojo.byId('chat_window_wrapper_'+this.id).style.marginLeft = '-91px';
				}
			}else{
				if(dojo.isIE == '8' || dojo.isIE == '7'){
					dojo.byId('chat_window_wrapper_'+this.id).style.marginLeft = '-197px';
				}else{
					dojo.byId('chat_window_wrapper_'+this.id).style.marginLeft = '-91px';
				}
			}
	    	this.handleResize();
		},

		handleResize: function(){
			var isSafari2 = (dojo.isSafari == 2);
		    var isOpera = (dojo.Opera);

		    var toolbox = dojo.byId('chat_toolbox_'+this.id);
		    var chatHeader = dojo.byId('chat_header_'+this.id);
		    var chatConv = dojo.byId('chat_conv_'+this.id);
		    var chatShadowInput = dojo.byId('chat_shadow_input_'+this.id);
		    var chatInput = dojo.byId('chat_input_'+this.id);

		    
		    var popinWidth = 0;
		    var minTextHeight = 0;
		    if(Util.isDoctype()){
		    	popinWidth = 226;
		        minTextHeight = 16;
		    }else{
		    	popinWidth = 227;
		        minTextHeight = 25;
		    }
		    var popinHeight = 250;
		    var maxTextHeight = 77;
		    var heightExtra = 31;

		    var newConvWidth;
		    var newTextWidth;
		    var newTabHeight;
				
		    var toolboxChildren = toolbox.childNodes;
		    for (var i = 0; i < toolboxChildren.length; ++i) {
		        var child = toolboxChildren[i];
		        if (Util.shown(child)) {
		            heightExtra += Util.getElementHeight(child);
		        }
		    }
			newConvWidth = popinWidth;
		    if(Util.isDoctype())
		    	newTextWidth = popinWidth-28;
		    else
		    	newTextWidth = popinWidth;
		    newTabHeight = popinHeight;
			
		    chatInput.style.width = newTextWidth + 'px';
		    chatShadowInput.style.width = newTextWidth + 'px';
		    chatShadowInput.value = chatInput.value;
		    
		    var textHeight = 0;
		    if (!textHeight || isOpera) {
		        textHeight = minTextHeight;
		        if (chatInput.value) {
		            var re = new RegExp('([\n]|[^\n]{' + parseInt(newTextWidth / 7) + '})', 'g');
		            var text = chatInput.value;
		            var matches = text.match(re);
		            if (matches) {
		                textHeight = (matches.length + 1) * minTextHeight;
		            }
		        }
		        if (isSafari2) {
		            textHeight += 8;
		        }
		    }
		    if (dojo.isIE) {
		        textHeight -= 6;
		    }
		    if (textHeight > maxTextHeight) {
		        textHeight = maxTextHeight;
		    } else if (textHeight < minTextHeight) {
		        textHeight = minTextHeight;
		    }
		    if (isSafari2) {
		        heightExtra -= 7;
		    } else if (dojo.isIE < 7) {
		        if (tabDisabled) {
		            heightExtra += 4;
		        }
		    }
		    if (dojo.isIE){
		        chatHeader.style.width = newConvWidth + 'px';
		        chatConv.style.width = newConvWidth + 'px';
		    }
		    chatInput.style.height = textHeight + 'px';
		    chatConv.style.height = Math.max(0, (newTabHeight - heightExtra - textHeight)) + 'px';
		    this.scrollToBottom(dojo.byId('chat_conv_'+this.id));
		}
}




function buildChatBarUI(chatBar){
	var isSafari3 = (dojo.isSafari == 3);
	var markup = '<div id="leftc"></div>'; 
    markup = markup + '<div id="presence_bar">';
    markup = markup + '<div id="buddyList" class="content" style="display:none;">';
   
    markup = markup + '<h2 id="buddyListHeader" onclick="wtbChat.closeBuddyList()" style="width:195px"><span id="headerTitle">'
    if(chatBar.login){
    	markup = markup + 'Chat ('+chatBar.username +')';
    }else{
    	markup = markup + 'Chat';
    }
    markup = markup + '</span></h2>';
    markup = markup + '<div class="hidden_elem" id="buddy_list_panel"><div class="settings" id="buddy_list_panel_settings_control">';
    markup = markup + '<a class="panel_item" href="#" onclick="wtbChat.toggleOptions(); return false;"><span id="options_item"><div class="panel_icon"></div>Options</span></a>';
    markup = markup + '<div class="flyout hidden_elem" id="buddy_list_panel_settings_flyout"><div class="chat_setting clearfix" id="chat_setting_sound">';
    markup = markup + '<div class="input_box"><span class="show_loading"><img src="'+chatBar.imagePath+'/indicator_blue_small.gif"/></span>';
    markup = markup + '<span class="hide_loading"><input type="checkbox" id="chat_setting_checkbox_sound" onclick="wtbChat.updateSoundSettings()"></input></span></div>';
    markup = markup + '<label for="chat_setting_checkbox_sound">Play Sound for New Messages</label></div>';
    markup = markup + '<div class="chat_setting clearfix" id="chat_setting_sticky_buddylist"><div class="input_box">';
    markup = markup + '<span class="show_loading"><img src="'+chatBar.imagePath+'/indicator_blue_small.gif"/></span>';
    markup = markup + '<span class="hide_loading"><input type="checkbox" id="checkbox_sticky_buddylist" onclick="wtbChat.updateStickyBuddyListSettings()"></input></span></div>'
    markup = markup + '<label for="checkbox_sticky_buddylist">Keep Online Friends Window Open</label></div></div></div></div>';
    if(dojo.isSafari){
    	markup = markup + '<div id="google_adds" class="google_adds" style="display:none;"><iframe id="googleAdd" src="" frameborder="0" style="height:130px;width:130px"></iframe></div>';
    }else{
    	markup = markup + '<div id="google_adds" class="google_adds" style="display:none;"><iframe id="googleAdd" src="" frameborder="0" style="height:125px;width:125px"></iframe></div>';
    }
    markup = markup + '<div id="login_panel"><div id="loginArea" style="display: none;">';
    markup = markup + '<table cellspacing="1" cellpadding="1" align="center" width="100%"><tbody><tr height="30">';
    markup = markup + '<td width="30%"><span class="login_area">Username:</span></td>';
    markup = markup + '<td width="70%"><input id="wtbUsername" type="text" style="width: 125px;"/></td></tr>';
    markup = markup + '<tr height="30"><td width="30%"><span class="login_area">Password:</span></td>'
    markup = markup + '<td width="70%"><input id="wtbPassword" type="password" style="width: 125px;"/></td></tr>';
    markup = markup + '<tr height="30"><td width="30%"/><td width="70%"><input class="login_button" type="button" onclick="wtbChat.doLogin()" value="OK"/>';
    markup = markup + '<input class="login_button" type="button" onclick="wtbChat.cancelLogin()" value="Cancel"/></td></tr></tbody></table></div>';
    markup = markup + '<div id="chat_availability_toggle" class="available"><span id="chat_availability_toggle_image"><span>';
    markup = markup + '<img id="loadingImg" src="'+chatBar.imagePath+'/indicator_blue_small.gif" style="display: none;"/></span>';
    markup = markup + '<div id="onlineImg" class="buddy_icon sx_icons_im_online" style="display: none;"></div>';
    markup = markup + '<div id="offlineImg" class="buddy_icon sx_icons_im_offline" style="display: block;"></div>';
    markup = markup + '<div id="idleImg" class="buddy_icon sx_icons_im_away" style="display: none;"></div></span>';
    markup = markup + '<div id="available" class="availability_text" style="display: none;">You are Online.  '; 
    markup = markup + '<a id="offline" onclick="wtbChat.doLogout()">Go Offline</a></div>';
    markup = markup + '<div id="unAvailable" class="availability_text" style="display: block;">You are Offline. ';
    markup = markup + '<a id="online" onclick="wtbChat.showLoginDiv()">Go Online</a></div>';
    markup = markup + '<div id="idle" class="availability_text" style="display: none;">You are Idle.</div></div></div>';
    markup = markup + '<div id="buddyListError" class="buddy_list_error">Loading...</div><div id="buddyListAll" style="display: none;">';
    markup = markup + '<ul id="buddyListParent" class="list_select"/></div>';
    markup = markup + '<div id="powered_by" style="display:none;">Powered by <a href="http://www.websitetoolbox.com" target="blank"> Website Toolbox</a></div>';
    markup = markup + '</div>';
	markup = markup + '<div id="buddy_list_tab" class="presence_bar_button"  onclick="wtbChat.manageAutoLogin()"';
    markup = markup + ' onmouseover="dojo.query(this).addClass(\'hover\')" onmouseout="dojo.query(this).removeClass(\'hover\')">';
    markup = markup + '<div id="tab_border"></div><div class="inner_button">';
    markup = markup + '<div id="tabOnlineImg" class="buddy_icon sx_icons_im_online" style="display: none;"></div>';
    markup = markup + '<div id="tabOfflineImg" class="buddy_icon sx_icons_im_offline" style="display: block;"></div>';
    markup = markup + '<div id="tabIdleImg" class="buddy_icon sx_icons_im_away" style="display: none;"></div>';
    markup = markup + '<div id="tabLoadingImg" class="sx_icons_im_loading" style="display: none;"></div><div id="buddy_count">'
    if(chatBar.login){
    	markup = markup + 'Chat <span id="buddyCountNumber" class="buddy_count_num">(<strong>0</strong>)</span>';
    }else{
    	markup = markup + 'Sign in to chat';
    }
    markup = markup + '</div></div></div>'; 
    markup = markup + '<div id="chat"><div id="chat_tab_bar"></div></div></div>';
    dojo.byId('presence').innerHTML = markup;
    if(Util.isDoctype()){
    	dojo.query('#buddyList').style('width','195px');
    }else{
	    if(dojo.isIE){
	    	dojo.query('#buddyList').style('width','197px');
	    	dojo.query('#buddyListHeader').style('width','196px');
	    }else{
	    	dojo.query('#buddyList').style('width','195px');
	    }
    }
    dojo.query('#wtbPassword').onkeyup(function(e){if (e.keyCode == dojo.keys.ENTER){chatBar.doLogin();}});
}
