
if (!("console" in window) || !("firebug" in console))
{
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

    window.console = {};
    for (var i = 0; i < names.length; ++i)
        window.console[names[i]] = function() {}
}

var Prototype={Version:"1.6.0.2",Browser:{IE:!!(window.attachEvent&&!window.opera),Opera:!!window.opera,WebKit:navigator.userAgent.indexOf("AppleWebKit/")>-1,Gecko:navigator.userAgent.indexOf("Gecko")>-1&&navigator.userAgent.indexOf("KHTML")==-1,MobileSafari:!!navigator.userAgent.match(/Apple.*Mobile.*Safari/)},BrowserFeatures:{XPath:!!document.evaluate,ElementExtensions:!!window.HTMLElement,SpecificElementExtensions:document.createElement("div").__proto__&&document.createElement("div").__proto__!==document.createElement("form").__proto__},ScriptFragment:"<script[^>]*>([\\S\\s]*?)</script>",JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){
},K:function(x){
return x;
}};
if(Prototype.Browser.MobileSafari){
Prototype.BrowserFeatures.SpecificElementExtensions=false;
}
var Class={create:function(){
var _2=null,_3=$A(arguments);
if(Object.isFunction(_3[0])){
_2=_3.shift();
}
function _4(){
this.initialize.apply(this,arguments);
};
Object.extend(_4,Class.Methods);
_4.superclass=_2;
_4.subclasses=[];
if(_2){
var _5=function(){
};
_5.prototype=_2.prototype;
_4.prototype=new _5;
_2.subclasses.push(_4);
}
for(var i=0;i<_3.length;i++){
_4.addMethods(_3[i]);
}
if(!_4.prototype.initialize){
_4.prototype.initialize=Prototype.emptyFunction;
}
_4.prototype.constructor=_4;
return _4;
}};
Class.Methods={addMethods:function(_7){
var _8=this.superclass&&this.superclass.prototype;
var _9=Object.keys(_7);
if(!Object.keys({toString:true}).length){
_9.push("toString","valueOf");
}
for(var i=0,_b=_9.length;i<_b;i++){
var _c=_9[i],_d=_7[_c];
if(_8&&Object.isFunction(_d)&&_d.argumentNames().first()=="$super"){
var _e=_d,_d=Object.extend((function(m){
return function(){
return _8[m].apply(this,arguments);
};
})(_c).wrap(_e),{valueOf:function(){
return _e;
},toString:function(){
return _e.toString();
}});
}
this.prototype[_c]=_d;
}
return this;
}};
var Abstract={};
Object.extend=function(_10,_11){
for(var _12 in _11){
_10[_12]=_11[_12];
}
return _10;
};
Object.extend(Object,{inspect:function(_13){
try{
if(Object.isUndefined(_13)){
return "undefined";
}
if(_13===null){
return "null";
}
return _13.inspect?_13.inspect():String(_13);
}
catch(e){
if(e instanceof RangeError){
return "...";
}
throw e;
}
},toJSON:function(_14){
var _15=typeof _14;
switch(_15){
case "undefined":
case "function":
case "unknown":
return;
case "boolean":
return _14.toString();
}
if(_14===null){
return "null";
}
if(_14.toJSON){
return _14.toJSON();
}
if(Object.isElement(_14)){
return;
}
var _16=[];
for(var _17 in _14){
var _18=Object.toJSON(_14[_17]);
if(!Object.isUndefined(_18)){
_16.push(_17.toJSON()+": "+_18);
}
}
return "{"+_16.join(", ")+"}";
},toQueryString:function(_19){
return $H(_19).toQueryString();
},toHTML:function(_1a){
return _1a&&_1a.toHTML?_1a.toHTML():String.interpret(_1a);
},keys:function(_1b){
var _1c=[];
for(var _1d in _1b){
_1c.push(_1d);
}
return _1c;
},values:function(_1e){
var _1f=[];
for(var _20 in _1e){
_1f.push(_1e[_20]);
}
return _1f;
},clone:function(_21){
return Object.extend({},_21);
},isElement:function(_22){
return _22&&_22.nodeType==1;
},isArray:function(_23){
return _23!=null&&typeof _23=="object"&&"splice" in _23&&"join" in _23;
},isHash:function(_24){
return _24 instanceof Hash;
},isFunction:function(_25){
return typeof _25=="function";
},isString:function(_26){
return typeof _26=="string";
},isNumber:function(_27){
return typeof _27=="number";
},isUndefined:function(_28){
return typeof _28=="undefined";
}});
Object.extend(Function.prototype,{argumentNames:function(){
var _29=this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip");
return _29.length==1&&!_29[0]?[]:_29;
},bind:function(){
if(arguments.length<2&&Object.isUndefined(arguments[0])){
return this;
}
var _2a=this,_2b=$A(arguments),_2c=_2b.shift();
return function(){
return _2a.apply(_2c,_2b.concat($A(arguments)));
};
},bindAsEventListener:function(){
var _2d=this,_2e=$A(arguments),_2f=_2e.shift();
return function(_30){
return _2d.apply(_2f,[_30||window.event].concat(_2e));
};
},curry:function(){
if(!arguments.length){
return this;
}
var _31=this,_32=$A(arguments);
return function(){
return _31.apply(this,_32.concat($A(arguments)));
};
},delay:function(){
var _33=this,_34=$A(arguments),_35=_34.shift()*1000;
return window.setTimeout(function(){
return _33.apply(_33,_34);
},_35);
},wrap:function(_36){
var _37=this;
return function(){
return _36.apply(this,[_37.bind(this)].concat($A(arguments)));
};
},methodize:function(){
if(this._methodized){
return this._methodized;
}
var _38=this;
return this._methodized=function(){
return _38.apply(null,[this].concat($A(arguments)));
};
}});
Function.prototype.defer=Function.prototype.delay.curry(0.01);
Date.prototype.toJSON=function(){
return "\""+this.getUTCFullYear()+"-"+(this.getUTCMonth()+1).toPaddedString(2)+"-"+this.getUTCDate().toPaddedString(2)+"T"+this.getUTCHours().toPaddedString(2)+":"+this.getUTCMinutes().toPaddedString(2)+":"+this.getUTCSeconds().toPaddedString(2)+"Z\"";
};
var Try={these:function(){
var _39;
for(var i=0,_3b=arguments.length;i<_3b;i++){
var _3c=arguments[i];
try{
_39=_3c();
break;
}
catch(e){
}
}
return _39;
}};
RegExp.prototype.match=RegExp.prototype.test;
RegExp.escape=function(str){
return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1");
};
var PeriodicalExecuter=Class.create({initialize:function(_3e,_3f){
this.callback=_3e;
this.frequency=_3f;
this.currentlyExecuting=false;
this.registerCallback();
},registerCallback:function(){
this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000);
},execute:function(){
this.callback(this);
},stop:function(){
if(!this.timer){
return;
}
clearInterval(this.timer);
this.timer=null;
},onTimerEvent:function(){
if(!this.currentlyExecuting){
try{
this.currentlyExecuting=true;
this.execute();
}
finally{
this.currentlyExecuting=false;
}
}
}});
Object.extend(String,{interpret:function(_40){
return _40==null?"":String(_40);
},specialChar:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\\":"\\\\"}});
Object.extend(String.prototype,{gsub:function(_41,_42){
var _43="",_44=this,_45;
_42=arguments.callee.prepareReplacement(_42);
while(_44.length>0){
if(_45=_44.match(_41)){
_43+=_44.slice(0,_45.index);
_43+=String.interpret(_42(_45));
_44=_44.slice(_45.index+_45[0].length);
}else{
_43+=_44,_44="";
}
}
return _43;
},sub:function(_46,_47,_48){
_47=this.gsub.prepareReplacement(_47);
_48=Object.isUndefined(_48)?1:_48;
return this.gsub(_46,function(_49){
if(--_48<0){
return _49[0];
}
return _47(_49);
});
},scan:function(_4a,_4b){
this.gsub(_4a,_4b);
return String(this);
},truncate:function(_4c,_4d){
_4c=_4c||30;
_4d=Object.isUndefined(_4d)?"...":_4d;
return this.length>_4c?this.slice(0,_4c-_4d.length)+_4d:String(this);
},strip:function(){
return this.replace(/^\s+/,"").replace(/\s+$/,"");
},stripTags:function(){
return this.replace(/<\/?[^>]+>/gi,"");
},stripScripts:function(){
return this.replace(new RegExp(Prototype.ScriptFragment,"img"),"");
},extractScripts:function(){
var _4e=new RegExp(Prototype.ScriptFragment,"img");
var _4f=new RegExp(Prototype.ScriptFragment,"im");
return (this.match(_4e)||[]).map(function(_50){
return (_50.match(_4f)||["",""])[1];
});
},evalScripts:function(){
return this.extractScripts().map(function(_51){
return eval(_51);
});
},escapeHTML:function(){
var _52=arguments.callee;
_52.text.data=this;
return _52.div.innerHTML;
},unescapeHTML:function(){
var div=new Element("div");
div.innerHTML=this.stripTags();
return div.childNodes[0]?(div.childNodes.length>1?$A(div.childNodes).inject("",function(_54,_55){
return _54+_55.nodeValue;
}):div.childNodes[0].nodeValue):"";
},toQueryParams:function(_56){
var _57=this.strip().match(/([^?#]*)(#.*)?$/);
if(!_57){
return {};
}
return _57[1].split(_56||"&").inject({},function(_58,_59){
if((_59=_59.split("="))[0]){
var key=decodeURIComponent(_59.shift());
var _5b=_59.length>1?_59.join("="):_59[0];
if(_5b!=undefined){
_5b=decodeURIComponent(_5b);
}
if(key in _58){
if(!Object.isArray(_58[key])){
_58[key]=[_58[key]];
}
_58[key].push(_5b);
}else{
_58[key]=_5b;
}
}
return _58;
});
},toArray:function(){
return this.split("");
},succ:function(){
return this.slice(0,this.length-1)+String.fromCharCode(this.charCodeAt(this.length-1)+1);
},times:function(_5c){
return _5c<1?"":new Array(_5c+1).join(this);
},camelize:function(){
var _5d=this.split("-"),len=_5d.length;
if(len==1){
return _5d[0];
}
var _5f=this.charAt(0)=="-"?_5d[0].charAt(0).toUpperCase()+_5d[0].substring(1):_5d[0];
for(var i=1;i<len;i++){
_5f+=_5d[i].charAt(0).toUpperCase()+_5d[i].substring(1);
}
return _5f;
},capitalize:function(){
return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase();
},underscore:function(){
return this.gsub(/::/,"/").gsub(/([A-Z]+)([A-Z][a-z])/,"#{1}_#{2}").gsub(/([a-z\d])([A-Z])/,"#{1}_#{2}").gsub(/-/,"_").toLowerCase();
},dasherize:function(){
return this.gsub(/_/,"-");
},inspect:function(_61){
var _62=this.gsub(/[\x00-\x1f\\]/,function(_63){
var _64=String.specialChar[_63[0]];
return _64?_64:"\\u00"+_63[0].charCodeAt().toPaddedString(2,16);
});
if(_61){
return "\""+_62.replace(/"/g,"\\\"")+"\"";
}
return "'"+_62.replace(/'/g,"\\'")+"'";
},toJSON:function(){
return this.inspect(true);
},unfilterJSON:function(_65){
return this.sub(_65||Prototype.JSONFilter,"#{1}");
},isJSON:function(){
var str=this;
if(str.blank()){
return false;
}
str=this.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,"");
return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
},evalJSON:function(_67){
var _68=this.unfilterJSON();
try{
if(!_67||_68.isJSON()){
return eval("("+_68+")");
}
}
catch(e){
}
throw new SyntaxError("Badly formed JSON string: "+this.inspect());
},include:function(_69){
return this.indexOf(_69)>-1;
},startsWith:function(_6a){
return this.indexOf(_6a)===0;
},endsWith:function(_6b){
var d=this.length-_6b.length;
return d>=0&&this.lastIndexOf(_6b)===d;
},empty:function(){
return this=="";
},blank:function(){
return /^\s*$/.test(this);
},interpolate:function(_6d,_6e){
return new Template(this,_6e).evaluate(_6d);
}});
if(Prototype.Browser.WebKit||Prototype.Browser.IE){
Object.extend(String.prototype,{escapeHTML:function(){
return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
},unescapeHTML:function(){
return this.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">");
}});
}
String.prototype.gsub.prepareReplacement=function(_6f){
if(Object.isFunction(_6f)){
return _6f;
}
var _70=new Template(_6f);
return function(_71){
return _70.evaluate(_71);
};
};
String.prototype.parseQuery=String.prototype.toQueryParams;
Object.extend(String.prototype.escapeHTML,{div:document.createElement("div"),text:document.createTextNode("")});
with(String.prototype.escapeHTML){
div.appendChild(text);
}
var Template=Class.create({initialize:function(_72,_73){
this.template=_72.toString();
this.pattern=_73||Template.Pattern;
},evaluate:function(_74){
if(Object.isFunction(_74.toTemplateReplacements)){
_74=_74.toTemplateReplacements();
}
return this.template.gsub(this.pattern,function(_75){
if(_74==null){
return "";
}
var _76=_75[1]||"";
if(_76=="\\"){
return _75[2];
}
var ctx=_74,_78=_75[3];
var _79=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
_75=_79.exec(_78);
if(_75==null){
return _76;
}
while(_75!=null){
var _7a=_75[1].startsWith("[")?_75[2].gsub("\\\\]","]"):_75[1];
ctx=ctx[_7a];
if(null==ctx||""==_75[3]){
break;
}
_78=_78.substring("["==_75[3]?_75[1].length:_75[0].length);
_75=_79.exec(_78);
}
return _76+String.interpret(ctx);
});
}});
Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;
var $break={};
var Enumerable={each:function(_7b,_7c){
var _7d=0;
_7b=_7b.bind(_7c);
try{
this._each(function(_7e){
_7b(_7e,_7d++);
});
}
catch(e){
if(e!=$break){
throw e;
}
}
return this;
},eachSlice:function(_7f,_80,_81){
_80=_80?_80.bind(_81):Prototype.K;
var _82=-_7f,_83=[],_84=this.toArray();
while((_82+=_7f)<_84.length){
_83.push(_84.slice(_82,_82+_7f));
}
return _83.collect(_80,_81);
},all:function(_85,_86){
_85=_85?_85.bind(_86):Prototype.K;
var _87=true;
this.each(function(_88,_89){
_87=_87&&!!_85(_88,_89);
if(!_87){
throw $break;
}
});
return _87;
},any:function(_8a,_8b){
_8a=_8a?_8a.bind(_8b):Prototype.K;
var _8c=false;
this.each(function(_8d,_8e){
if(_8c=!!_8a(_8d,_8e)){
throw $break;
}
});
return _8c;
},collect:function(_8f,_90){
_8f=_8f?_8f.bind(_90):Prototype.K;
var _91=[];
this.each(function(_92,_93){
_91.push(_8f(_92,_93));
});
return _91;
},detect:function(_94,_95){
_94=_94.bind(_95);
var _96;
this.each(function(_97,_98){
if(_94(_97,_98)){
_96=_97;
throw $break;
}
});
return _96;
},findAll:function(_99,_9a){
_99=_99.bind(_9a);
var _9b=[];
this.each(function(_9c,_9d){
if(_99(_9c,_9d)){
_9b.push(_9c);
}
});
return _9b;
},grep:function(_9e,_9f,_a0){
_9f=_9f?_9f.bind(_a0):Prototype.K;
var _a1=[];
if(Object.isString(_9e)){
_9e=new RegExp(_9e);
}
this.each(function(_a2,_a3){
if(_9e.match(_a2)){
_a1.push(_9f(_a2,_a3));
}
});
return _a1;
},include:function(_a4){
if(Object.isFunction(this.indexOf)){
if(this.indexOf(_a4)!=-1){
return true;
}
}
var _a5=false;
this.each(function(_a6){
if(_a6==_a4){
_a5=true;
throw $break;
}
});
return _a5;
},inGroupsOf:function(_a7,_a8){
_a8=Object.isUndefined(_a8)?null:_a8;
return this.eachSlice(_a7,function(_a9){
while(_a9.length<_a7){
_a9.push(_a8);
}
return _a9;
});
},inject:function(_aa,_ab,_ac){
_ab=_ab.bind(_ac);
this.each(function(_ad,_ae){
_aa=_ab(_aa,_ad,_ae);
});
return _aa;
},invoke:function(_af){
var _b0=$A(arguments).slice(1);
return this.map(function(_b1){
return _b1[_af].apply(_b1,_b0);
});
},max:function(_b2,_b3){
_b2=_b2?_b2.bind(_b3):Prototype.K;
var _b4;
this.each(function(_b5,_b6){
_b5=_b2(_b5,_b6);
if(_b4==null||_b5>=_b4){
_b4=_b5;
}
});
return _b4;
},min:function(_b7,_b8){
_b7=_b7?_b7.bind(_b8):Prototype.K;
var _b9;
this.each(function(_ba,_bb){
_ba=_b7(_ba,_bb);
if(_b9==null||_ba<_b9){
_b9=_ba;
}
});
return _b9;
},partition:function(_bc,_bd){
_bc=_bc?_bc.bind(_bd):Prototype.K;
var _be=[],_bf=[];
this.each(function(_c0,_c1){
(_bc(_c0,_c1)?_be:_bf).push(_c0);
});
return [_be,_bf];
},pluck:function(_c2){
var _c3=[];
this.each(function(_c4){
_c3.push(_c4[_c2]);
});
return _c3;
},reject:function(_c5,_c6){
_c5=_c5.bind(_c6);
var _c7=[];
this.each(function(_c8,_c9){
if(!_c5(_c8,_c9)){
_c7.push(_c8);
}
});
return _c7;
},sortBy:function(_ca,_cb){
_ca=_ca.bind(_cb);
return this.map(function(_cc,_cd){
return {value:_cc,criteria:_ca(_cc,_cd)};
}).sort(function(_ce,_cf){
var a=_ce.criteria,b=_cf.criteria;
return a<b?-1:a>b?1:0;
}).pluck("value");
},toArray:function(){
return this.map();
},zip:function(){
var _d2=Prototype.K,_d3=$A(arguments);
if(Object.isFunction(_d3.last())){
_d2=_d3.pop();
}
var _d4=[this].concat(_d3).map($A);
return this.map(function(_d5,_d6){
return _d2(_d4.pluck(_d6));
});
},size:function(){
return this.toArray().length;
},inspect:function(){
return "#<Enumerable:"+this.toArray().inspect()+">";
}};
Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,filter:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray,every:Enumerable.all,some:Enumerable.any});
function $A(_d7){
if(!_d7){
return [];
}
if(_d7.toArray){
return _d7.toArray();
}
var _d8=_d7.length||0,_d9=new Array(_d8);
while(_d8--){
_d9[_d8]=_d7[_d8];
}
return _d9;
};
if(Prototype.Browser.WebKit){
$A=function(_da){
if(!_da){
return [];
}
if(!(Object.isFunction(_da)&&_da=="[object NodeList]")&&_da.toArray){
return _da.toArray();
}
var _db=_da.length||0,_dc=new Array(_db);
while(_db--){
_dc[_db]=_da[_db];
}
return _dc;
};
}
Array.from=$A;
Object.extend(Array.prototype,Enumerable);
if(!Array.prototype._reverse){
Array.prototype._reverse=Array.prototype.reverse;
}
Object.extend(Array.prototype,{_each:function(_dd){
for(var i=0,_df=this.length;i<_df;i++){
_dd(this[i]);
}
},clear:function(){
this.length=0;
return this;
},first:function(){
return this[0];
},last:function(){
return this[this.length-1];
},compact:function(){
return this.select(function(_e0){
return _e0!=null;
});
},flatten:function(){
return this.inject([],function(_e1,_e2){
return _e1.concat(Object.isArray(_e2)?_e2.flatten():[_e2]);
});
},without:function(){
var _e3=$A(arguments);
return this.select(function(_e4){
return !_e3.include(_e4);
});
},reverse:function(_e5){
return (_e5!==false?this:this.toArray())._reverse();
},reduce:function(){
return this.length>1?this:this[0];
},uniq:function(_e6){
return this.inject([],function(_e7,_e8,_e9){
if(0==_e9||(_e6?_e7.last()!=_e8:!_e7.include(_e8))){
_e7.push(_e8);
}
return _e7;
});
},intersect:function(_ea){
return this.uniq().findAll(function(_eb){
return _ea.detect(function(_ec){
return _eb===_ec;
});
});
},clone:function(){
return [].concat(this);
},size:function(){
return this.length;
},inspect:function(){
return "["+this.map(Object.inspect).join(", ")+"]";
},toJSON:function(){
var _ed=[];
this.each(function(_ee){
var _ef=Object.toJSON(_ee);
if(!Object.isUndefined(_ef)){
_ed.push(_ef);
}
});
return "["+_ed.join(", ")+"]";
}});
if(Object.isFunction(Array.prototype.forEach)){
Array.prototype._each=Array.prototype.forEach;
}
if(!Array.prototype.indexOf){
Array.prototype.indexOf=function(_f0,i){
i||(i=0);
var _f2=this.length;
if(i<0){
i=_f2+i;
}
for(;i<_f2;i++){
if(this[i]===_f0){
return i;
}
}
return -1;
};
}
if(!Array.prototype.lastIndexOf){
Array.prototype.lastIndexOf=function(_f3,i){
i=isNaN(i)?this.length:(i<0?this.length+i:i)+1;
var n=this.slice(0,i).reverse().indexOf(_f3);
return (n<0)?n:i-n-1;
};
}
Array.prototype.toArray=Array.prototype.clone;
function $w(_f6){
if(!Object.isString(_f6)){
return [];
}
_f6=_f6.strip();
return _f6?_f6.split(/\s+/):[];
};
if(Prototype.Browser.Opera){
Array.prototype.concat=function(){
var _f7=[];
for(var i=0,_f9=this.length;i<_f9;i++){
_f7.push(this[i]);
}
for(var i=0,_f9=arguments.length;i<_f9;i++){
if(Object.isArray(arguments[i])){
for(var j=0,_fb=arguments[i].length;j<_fb;j++){
_f7.push(arguments[i][j]);
}
}else{
_f7.push(arguments[i]);
}
}
return _f7;
};
}
Object.extend(Number.prototype,{toColorPart:function(){
return this.toPaddedString(2,16);
},succ:function(){
return this+1;
},times:function(_fc){
$R(0,this,true).each(_fc);
return this;
},toPaddedString:function(_fd,_fe){
var _ff=this.toString(_fe||10);
return "0".times(_fd-_ff.length)+_ff;
},toJSON:function(){
return isFinite(this)?this.toString():"null";
}});
$w("abs round ceil floor").each(function(_100){
Number.prototype[_100]=Math[_100].methodize();
});
function $H(_101){
return new Hash(_101);
};
var Hash=Class.create(Enumerable,(function(){
function _102(key,_104){
if(Object.isUndefined(_104)){
return key;
}
return key+"="+encodeURIComponent(String.interpret(_104));
};
return {initialize:function(_105){
this._object=Object.isHash(_105)?_105.toObject():Object.clone(_105);
},_each:function(_106){
for(var key in this._object){
var _108=this._object[key],pair=[key,_108];
pair.key=key;
pair.value=_108;
_106(pair);
}
},set:function(key,_10b){
return this._object[key]=_10b;
},get:function(key){
return this._object[key];
},unset:function(key){
var _10e=this._object[key];
delete this._object[key];
return _10e;
},toObject:function(){
return Object.clone(this._object);
},keys:function(){
return this.pluck("key");
},values:function(){
return this.pluck("value");
},index:function(_10f){
var _110=this.detect(function(pair){
return pair.value===_10f;
});
return _110&&_110.key;
},merge:function(_112){
return this.clone().update(_112);
},update:function(_113){
return new Hash(_113).inject(this,function(_114,pair){
_114.set(pair.key,pair.value);
return _114;
});
},toQueryString:function(){
return this.map(function(pair){
var key=encodeURIComponent(pair.key),_118=pair.value;
if(_118&&typeof _118=="object"){
if(Object.isArray(_118)){
return _118.map(_102.curry(key)).join("&");
}
}
return _102(key,_118);
}).join("&");
},inspect:function(){
return "#<Hash:{"+this.map(function(pair){
return pair.map(Object.inspect).join(": ");
}).join(", ")+"}>";
},toJSON:function(){
return Object.toJSON(this.toObject());
},clone:function(){
return new Hash(this);
}};
})());
Hash.prototype.toTemplateReplacements=Hash.prototype.toObject;
Hash.from=$H;
var ObjectRange=Class.create(Enumerable,{initialize:function(_11a,end,_11c){
this.start=_11a;
this.end=end;
this.exclusive=_11c;
},_each:function(_11d){
var _11e=this.start;
while(this.include(_11e)){
_11d(_11e);
_11e=_11e.succ();
}
},include:function(_11f){
if(_11f<this.start){
return false;
}
if(this.exclusive){
return _11f<this.end;
}
return _11f<=this.end;
}});
var $R=function(_120,end,_122){
return new ObjectRange(_120,end,_122);
};
var Ajax={getTransport:function(){
return Try.these(function(){
return new XMLHttpRequest();
},function(){
return new ActiveXObject("Msxml2.XMLHTTP");
},function(){
return new ActiveXObject("Microsoft.XMLHTTP");
})||false;
},activeRequestCount:0};
Ajax.Responders={responders:[],_each:function(_123){
this.responders._each(_123);
},register:function(_124){
if(!this.include(_124)){
this.responders.push(_124);
}
},unregister:function(_125){
this.responders=this.responders.without(_125);
},dispatch:function(_126,_127,_128,json){
this.each(function(_12a){
if(Object.isFunction(_12a[_126])){
try{
_12a[_126].apply(_12a,[_127,_128,json]);
}
catch(e){
}
}
});
}};
Object.extend(Ajax.Responders,Enumerable);
Ajax.Responders.register({onCreate:function(){
Ajax.activeRequestCount++;
},onComplete:function(){
Ajax.activeRequestCount--;
}});
Ajax.Base=Class.create({initialize:function(_12b){
this.options={method:"post",asynchronous:true,contentType:"application/x-www-form-urlencoded",encoding:"UTF-8",parameters:"",evalJSON:true,evalJS:true};
Object.extend(this.options,_12b||{});
this.options.method=this.options.method.toLowerCase();
if(Object.isString(this.options.parameters)){
this.options.parameters=this.options.parameters.toQueryParams();
}else{
if(Object.isHash(this.options.parameters)){
this.options.parameters=this.options.parameters.toObject();
}
}
}});
Ajax.Request=Class.create(Ajax.Base,{_complete:false,initialize:function($super,url,_12e){
$super(_12e);
this.transport=Ajax.getTransport();
this.request(url);
},request:function(url){
this.url=url;
this.method=this.options.method;
var _130=Object.clone(this.options.parameters);
if(!["get","post"].include(this.method)){
_130["_method"]=this.method;
this.method="post";
}
this.parameters=_130;
if(_130=Object.toQueryString(_130)){
if(this.method=="get"){
this.url+=(this.url.include("?")?"&":"?")+_130;
}else{
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){
_130+="&_=";
}
}
}
try{
var _131=new Ajax.Response(this);
if(this.options.onCreate){
this.options.onCreate(_131);
}
Ajax.Responders.dispatch("onCreate",this,_131);
this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);
if(this.options.asynchronous){
this.respondToReadyState.bind(this).defer(1);
}
this.transport.onreadystatechange=this.onStateChange.bind(this);
this.setRequestHeaders();
this.body=this.method=="post"?(this.options.postBody||_130):null;
this.transport.send(this.body);
if(!this.options.asynchronous&&this.transport.overrideMimeType){
this.onStateChange();
}
}
catch(e){
this.dispatchException(e);
}
},onStateChange:function(){
var _132=this.transport.readyState;
if(_132>1&&!((_132==4)&&this._complete)){
this.respondToReadyState(this.transport.readyState);
}
},setRequestHeaders:function(){
var _133={"X-Requested-With":"XMLHttpRequest","X-Prototype-Version":Prototype.Version,"Accept":"text/javascript, text/html, application/xml, text/xml, */*"};
if(this.method=="post"){
_133["Content-type"]=this.options.contentType+(this.options.encoding?"; charset="+this.options.encoding:"");
if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005){
_133["Connection"]="close";
}
}
if(typeof this.options.requestHeaders=="object"){
var _134=this.options.requestHeaders;
if(Object.isFunction(_134.push)){
for(var i=0,_136=_134.length;i<_136;i+=2){
_133[_134[i]]=_134[i+1];
}
}else{
$H(_134).each(function(pair){
_133[pair.key]=pair.value;
});
}
}
for(var name in _133){
this.transport.setRequestHeader(name,_133[name]);
}
},success:function(){
var _139=this.getStatus();
return !_139||(_139>=200&&_139<300);
},getStatus:function(){
try{
return this.transport.status||0;
}
catch(e){
return 0;
}
},respondToReadyState:function(_13a){
var _13b=Ajax.Request.Events[_13a],_13c=new Ajax.Response(this);
if(_13b=="Complete"){
try{
this._complete=true;
(this.options["on"+_13c.status]||this.options["on"+(this.success()?"Success":"Failure")]||Prototype.emptyFunction)(_13c,_13c.headerJSON);
}
catch(e){
this.dispatchException(e);
}
var _13d=_13c.getHeader("Content-type");
if(this.options.evalJS=="force"||(this.options.evalJS&&this.isSameOrigin()&&_13d&&_13d.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))){
this.evalResponse();
}
}
try{
(this.options["on"+_13b]||Prototype.emptyFunction)(_13c,_13c.headerJSON);
Ajax.Responders.dispatch("on"+_13b,this,_13c,_13c.headerJSON);
}
catch(e){
this.dispatchException(e);
}
if(_13b=="Complete"){
this.transport.onreadystatechange=Prototype.emptyFunction;
}
},isSameOrigin:function(){
var m=this.url.match(/^\s*https?:\/\/[^\/]*/);
return !m||(m[0]=="#{protocol}//#{domain}#{port}".interpolate({protocol:location.protocol,domain:document.domain,port:location.port?":"+location.port:""}));
},getHeader:function(name){
try{
return this.transport.getResponseHeader(name)||null;
}
catch(e){
return null;
}
},evalResponse:function(){
try{
return eval((this.transport.responseText||"").unfilterJSON());
}
catch(e){
this.dispatchException(e);
}
},dispatchException:function(_140){
(this.options.onException||Prototype.emptyFunction)(this,_140);
Ajax.Responders.dispatch("onException",this,_140);
}});
Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];
Ajax.Response=Class.create({initialize:function(_141){
this.request=_141;
var _142=this.transport=_141.transport,_143=this.readyState=_142.readyState;
if((_143>2&&!Prototype.Browser.IE)||_143==4){
this.status=this.getStatus();
this.statusText=this.getStatusText();
this.responseText=String.interpret(_142.responseText);
this.headerJSON=this._getHeaderJSON();
}
if(_143==4){
var xml=_142.responseXML;
this.responseXML=Object.isUndefined(xml)?null:xml;
this.responseJSON=this._getResponseJSON();
}
},status:0,statusText:"",getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){
try{
return this.transport.statusText||"";
}
catch(e){
return "";
}
},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){
try{
return this.getAllResponseHeaders();
}
catch(e){
return null;
}
},getResponseHeader:function(name){
return this.transport.getResponseHeader(name);
},getAllResponseHeaders:function(){
return this.transport.getAllResponseHeaders();
},_getHeaderJSON:function(){
var json=this.getHeader("X-JSON");
if(!json){
return null;
}
json=decodeURIComponent(escape(json));
try{
return json.evalJSON(this.request.options.sanitizeJSON||!this.request.isSameOrigin());
}
catch(e){
this.request.dispatchException(e);
}
},_getResponseJSON:function(){
var _147=this.request.options;
if(!_147.evalJSON||(_147.evalJSON!="force"&&!(this.getHeader("Content-type")||"").include("application/json"))||this.responseText.blank()){
return null;
}
try{
return this.responseText.evalJSON(_147.sanitizeJSON||!this.request.isSameOrigin());
}
catch(e){
this.request.dispatchException(e);
}
}});
Ajax.Updater=Class.create(Ajax.Request,{initialize:function(_148,_149,url,_14b){
this.container={success:(_149.success||_149),failure:(_149.failure||(_149.success?null:_149))};
_14b=Object.clone(_14b);
var _14c=_14b.onComplete;
_14b.onComplete=(function(_14d,json){
this.updateContent(_14d.responseText);
if(Object.isFunction(_14c)){
_14c(_14d,json);
}
}).bind(this);
_148(url,_14b);
},updateContent:function(_14f){
var _150=this.container[this.success()?"success":"failure"],_151=this.options;
if(!_151.evalScripts){
_14f=_14f.stripScripts();
}
if(_150=$(_150)){
if(_151.insertion){
if(Object.isString(_151.insertion)){
var _152={};
_152[_151.insertion]=_14f;
_150.insert(_152);
}else{
_151.insertion(_150,_14f);
}
}else{
_150.update(_14f);
}
}
}});
Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function(_153,_154,url,_156){
_153(_156);
this.onComplete=this.options.onComplete;
this.frequency=(this.options.frequency||2);
this.decay=(this.options.decay||1);
this.updater={};
this.container=_154;
this.url=url;
this.start();
},start:function(){
this.options.onComplete=this.updateComplete.bind(this);
this.onTimerEvent();
},stop:function(){
this.updater.options.onComplete=undefined;
clearTimeout(this.timer);
(this.onComplete||Prototype.emptyFunction).apply(this,arguments);
},updateComplete:function(_157){
if(this.options.decay){
this.decay=(_157.responseText==this.lastText?this.decay*this.options.decay:1);
this.lastText=_157.responseText;
}
this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency);
},onTimerEvent:function(){
this.updater=new Ajax.Updater(this.container,this.url,this.options);
}});
function $(_158){
if(arguments.length>1){
for(var i=0,_15a=[],_15b=arguments.length;i<_15b;i++){
_15a.push($(arguments[i]));
}
return _15a;
}
if(Object.isString(_158)){
_158=document.getElementById(_158);
}
return Element.extend(_158);
};
if(Prototype.BrowserFeatures.XPath){
document._getElementsByXPath=function(_15c,_15d){
var _15e=[];
var _15f=document.evaluate(_15c,$(_15d)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
for(var i=0,_161=_15f.snapshotLength;i<_161;i++){
_15e.push(Element.extend(_15f.snapshotItem(i)));
}
return _15e;
};
}
if(!window.Node){
var Node={};
}
if(!Node.ELEMENT_NODE){
Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12});
}
(function(){
var _162=this.Element;
this.Element=function(_163,_164){
_164=_164||{};
_163=_163.toLowerCase();
var _165=Element.cache;
if(Prototype.Browser.IE&&_164.name){
_163="<"+_163+" name=\""+_164.name+"\">";
delete _164.name;
return Element.writeAttribute(document.createElement(_163),_164);
}
if(!_165[_163]){
_165[_163]=Element.extend(document.createElement(_163));
}
return Element.writeAttribute(_165[_163].cloneNode(false),_164);
};
Object.extend(this.Element,_162||{});
}).call(window);
Element.cache={};
Element.Methods={visible:function(_166){
return $(_166).style.display!="none";
},toggle:function(_167){
_167=$(_167);
Element[Element.visible(_167)?"hide":"show"](_167);
return _167;
},hide:function(_168){
$(_168).style.display="none";
return _168;
},show:function(_169){
$(_169).style.display="";
return _169;
},remove:function(_16a){
_16a=$(_16a);
_16a.parentNode.removeChild(_16a);
return _16a;
},update:function(_16b,_16c){
_16b=$(_16b);
if(_16c&&_16c.toElement){
_16c=_16c.toElement();
}
if(Object.isElement(_16c)){
return _16b.update().insert(_16c);
}
_16c=Object.toHTML(_16c);
_16b.innerHTML=_16c.stripScripts();
_16c.evalScripts.bind(_16c).defer();
return _16b;
},replace:function(_16d,_16e){
_16d=$(_16d);
if(_16e&&_16e.toElement){
_16e=_16e.toElement();
}else{
if(!Object.isElement(_16e)){
_16e=Object.toHTML(_16e);
var _16f=_16d.ownerDocument.createRange();
_16f.selectNode(_16d);
_16e.evalScripts.bind(_16e).defer();
_16e=_16f.createContextualFragment(_16e.stripScripts());
}
}
_16d.parentNode.replaceChild(_16e,_16d);
return _16d;
},insert:function(_170,_171){
_170=$(_170);
if(Object.isString(_171)||Object.isNumber(_171)||Object.isElement(_171)||(_171&&(_171.toElement||_171.toHTML))){
_171={bottom:_171};
}
var _172,_173,_174,_175;
for(var _176 in _171){
_172=_171[_176];
_176=_176.toLowerCase();
_173=Element._insertionTranslations[_176];
if(_172&&_172.toElement){
_172=_172.toElement();
}
if(Object.isElement(_172)){
_173(_170,_172);
continue;
}
_172=Object.toHTML(_172);
_174=((_176=="before"||_176=="after")?_170.parentNode:_170).tagName.toUpperCase();
_175=Element._getContentFromAnonymousElement(_174,_172.stripScripts());
if(_176=="top"||_176=="after"){
_175.reverse();
}
_175.each(_173.curry(_170));
_172.evalScripts.bind(_172).defer();
}
return _170;
},wrap:function(_177,_178,_179){
_177=$(_177);
if(Object.isElement(_178)){
$(_178).writeAttribute(_179||{});
}else{
if(Object.isString(_178)){
_178=new Element(_178,_179);
}else{
_178=new Element("div",_178);
}
}
if(_177.parentNode){
_177.parentNode.replaceChild(_178,_177);
}
_178.appendChild(_177);
return _178;
},inspect:function(_17a){
_17a=$(_17a);
var _17b="<"+_17a.tagName.toLowerCase();
$H({"id":"id","className":"class"}).each(function(pair){
var _17d=pair.first(),_17e=pair.last();
var _17f=(_17a[_17d]||"").toString();
if(_17f){
_17b+=" "+_17e+"="+_17f.inspect(true);
}
});
return _17b+">";
},recursivelyCollect:function(_180,_181){
_180=$(_180);
var _182=[];
while(_180=_180[_181]){
if(_180.nodeType==1){
_182.push(Element.extend(_180));
}
}
return _182;
},ancestors:function(_183){
return $(_183).recursivelyCollect("parentNode");
},descendants:function(_184){
return $(_184).select("*");
},firstDescendant:function(_185){
_185=$(_185).firstChild;
while(_185&&_185.nodeType!=1){
_185=_185.nextSibling;
}
return $(_185);
},immediateDescendants:function(_186){
if(!(_186=$(_186).firstChild)){
return [];
}
while(_186&&_186.nodeType!=1){
_186=_186.nextSibling;
}
if(_186){
return [_186].concat($(_186).nextSiblings());
}
return [];
},previousSiblings:function(_187){
return $(_187).recursivelyCollect("previousSibling");
},nextSiblings:function(_188){
return $(_188).recursivelyCollect("nextSibling");
},siblings:function(_189){
_189=$(_189);
return _189.previousSiblings().reverse().concat(_189.nextSiblings());
},match:function(_18a,_18b){
if(Object.isString(_18b)){
_18b=new Selector(_18b);
}
return _18b.match($(_18a));
},up:function(_18c,_18d,_18e){
_18c=$(_18c);
if(arguments.length==1){
return $(_18c.parentNode);
}
var _18f=_18c.ancestors();
return Object.isNumber(_18d)?_18f[_18d]:Selector.findElement(_18f,_18d,_18e);
},down:function(_190,_191,_192){
_190=$(_190);
if(arguments.length==1){
return _190.firstDescendant();
}
return Object.isNumber(_191)?_190.descendants()[_191]:_190.select(_191)[_192||0];
},previous:function(_193,_194,_195){
_193=$(_193);
if(arguments.length==1){
return $(Selector.handlers.previousElementSibling(_193));
}
var _196=_193.previousSiblings();
return Object.isNumber(_194)?_196[_194]:Selector.findElement(_196,_194,_195);
},next:function(_197,_198,_199){
_197=$(_197);
if(arguments.length==1){
return $(Selector.handlers.nextElementSibling(_197));
}
var _19a=_197.nextSiblings();
return Object.isNumber(_198)?_19a[_198]:Selector.findElement(_19a,_198,_199);
},select:function(){
var args=$A(arguments),_19c=$(args.shift());
return Selector.findChildElements(_19c,args);
},adjacent:function(){
var args=$A(arguments),_19e=$(args.shift());
return Selector.findChildElements(_19e.parentNode,args).without(_19e);
},identify:function(_19f){
_19f=$(_19f);
var id=_19f.readAttribute("id"),self=arguments.callee;
if(id){
return id;
}
do{
id="anonymous_element_"+self.counter++;
}while($(id));
_19f.writeAttribute("id",id);
return id;
},readAttribute:function(_1a2,name){
_1a2=$(_1a2);
if(Prototype.Browser.IE){
var t=Element._attributeTranslations.read;
if(t.values[name]){
return t.values[name](_1a2,name);
}
if(t.names[name]){
name=t.names[name];
}
if(name.include(":")){
return (!_1a2.attributes||!_1a2.attributes[name])?null:_1a2.attributes[name].value;
}
}
return _1a2.getAttribute(name);
},writeAttribute:function(_1a5,name,_1a7){
_1a5=$(_1a5);
var _1a8={},t=Element._attributeTranslations.write;
if(typeof name=="object"){
_1a8=name;
}else{
_1a8[name]=Object.isUndefined(_1a7)?true:_1a7;
}
for(var attr in _1a8){
name=t.names[attr]||attr;
_1a7=_1a8[attr];
if(t.values[attr]){
name=t.values[attr](_1a5,_1a7);
}
if(_1a7===false||_1a7===null){
_1a5.removeAttribute(name);
}else{
if(_1a7===true){
_1a5.setAttribute(name,name);
}else{
_1a5.setAttribute(name,_1a7);
}
}
}
return _1a5;
},getHeight:function(_1ab){
return $(_1ab).getDimensions().height;
},getWidth:function(_1ac){
return $(_1ac).getDimensions().width;
},classNames:function(_1ad){
return new Element.ClassNames(_1ad);
},hasClassName:function(_1ae,_1af){
if(!(_1ae=$(_1ae))){
return;
}
var _1b0=_1ae.className;
return (_1b0.length>0&&(_1b0==_1af||new RegExp("(^|\\s)"+_1af+"(\\s|$)").test(_1b0)));
},addClassName:function(_1b1,_1b2){
if(!(_1b1=$(_1b1))){
return;
}
if(!_1b1.hasClassName(_1b2)){
_1b1.className+=(_1b1.className?" ":"")+_1b2;
}
return _1b1;
},removeClassName:function(_1b3,_1b4){
if(!(_1b3=$(_1b3))){
return;
}
_1b3.className=_1b3.className.replace(new RegExp("(^|\\s+)"+_1b4+"(\\s+|$)")," ").strip();
return _1b3;
},toggleClassName:function(_1b5,_1b6){
if(!(_1b5=$(_1b5))){
return;
}
return _1b5[_1b5.hasClassName(_1b6)?"removeClassName":"addClassName"](_1b6);
},cleanWhitespace:function(_1b7){
_1b7=$(_1b7);
var node=_1b7.firstChild;
while(node){
var _1b9=node.nextSibling;
if(node.nodeType==3&&!/\S/.test(node.nodeValue)){
_1b7.removeChild(node);
}
node=_1b9;
}
return _1b7;
},empty:function(_1ba){
return $(_1ba).innerHTML.blank();
},descendantOf:function(_1bb,_1bc){
_1bb=$(_1bb),_1bc=$(_1bc);
var _1bd=_1bc;
if(_1bb.compareDocumentPosition){
return (_1bb.compareDocumentPosition(_1bc)&8)===8;
}
if(_1bb.sourceIndex&&!Prototype.Browser.Opera){
var e=_1bb.sourceIndex,a=_1bc.sourceIndex,_1c0=_1bc.nextSibling;
if(!_1c0){
do{
_1bc=_1bc.parentNode;
}while(!(_1c0=_1bc.nextSibling)&&_1bc.parentNode);
}
if(_1c0&&_1c0.sourceIndex){
return (e>a&&e<_1c0.sourceIndex);
}
}
while(_1bb=_1bb.parentNode){
if(_1bb==_1bd){
return true;
}
}
return false;
},scrollTo:function(_1c1){
_1c1=$(_1c1);
var pos=_1c1.cumulativeOffset();
window.scrollTo(pos[0],pos[1]);
return _1c1;
},getStyle:function(_1c3,_1c4){
_1c3=$(_1c3);
_1c4=_1c4=="float"?"cssFloat":_1c4.camelize();
var _1c5=_1c3.style[_1c4];
if(!_1c5){
var css=document.defaultView.getComputedStyle(_1c3,null);
_1c5=css?css[_1c4]:null;
}
if(_1c4=="opacity"){
return _1c5?parseFloat(_1c5):1;
}
return _1c5=="auto"?null:_1c5;
},getOpacity:function(_1c7){
return $(_1c7).getStyle("opacity");
},setStyle:function(_1c8,_1c9){
_1c8=$(_1c8);
var _1ca=_1c8.style,_1cb;
if(Object.isString(_1c9)){
_1c8.style.cssText+=";"+_1c9;
return _1c9.include("opacity")?_1c8.setOpacity(_1c9.match(/opacity:\s*(\d?\.?\d*)/)[1]):_1c8;
}
for(var _1cc in _1c9){
if(_1cc=="opacity"){
_1c8.setOpacity(_1c9[_1cc]);
}else{
_1ca[(_1cc=="float"||_1cc=="cssFloat")?(Object.isUndefined(_1ca.styleFloat)?"cssFloat":"styleFloat"):_1cc]=_1c9[_1cc];
}
}
return _1c8;
},setOpacity:function(_1cd,_1ce){
_1cd=$(_1cd);
_1cd.style.opacity=(_1ce==1||_1ce==="")?"":(_1ce<0.00001)?0:_1ce;
return _1cd;
},getDimensions:function(_1cf){
_1cf=$(_1cf);
var _1d0=$(_1cf).getStyle("display");
if(_1d0!="none"&&_1d0!=null){
return {width:_1cf.offsetWidth,height:_1cf.offsetHeight};
}
var els=_1cf.style;
var _1d2=els.visibility;
var _1d3=els.position;
var _1d4=els.display;
els.visibility="hidden";
els.position="absolute";
els.display="block";
var _1d5=_1cf.clientWidth;
var _1d6=_1cf.clientHeight;
els.display=_1d4;
els.position=_1d3;
els.visibility=_1d2;
return {width:_1d5,height:_1d6};
},makePositioned:function(_1d7){
_1d7=$(_1d7);
var pos=Element.getStyle(_1d7,"position");
if(pos=="static"||!pos){
_1d7._madePositioned=true;
_1d7.style.position="relative";
if(window.opera){
_1d7.style.top=0;
_1d7.style.left=0;
}
}
return _1d7;
},undoPositioned:function(_1d9){
_1d9=$(_1d9);
if(_1d9._madePositioned){
_1d9._madePositioned=undefined;
_1d9.style.position=_1d9.style.top=_1d9.style.left=_1d9.style.bottom=_1d9.style.right="";
}
return _1d9;
},makeClipping:function(_1da){
_1da=$(_1da);
if(_1da._overflow){
return _1da;
}
_1da._overflow=Element.getStyle(_1da,"overflow")||"auto";
if(_1da._overflow!=="hidden"){
_1da.style.overflow="hidden";
}
return _1da;
},undoClipping:function(_1db){
_1db=$(_1db);
if(!_1db._overflow){
return _1db;
}
_1db.style.overflow=_1db._overflow=="auto"?"":_1db._overflow;
_1db._overflow=null;
return _1db;
},cumulativeOffset:function(_1dc){
_1dc=$(_1dc);
var _1dd=0,_1de=0;
do{
_1dd+=_1dc.offsetTop||0;
_1de+=_1dc.offsetLeft||0;
_1dc=_1dc.offsetParent;
}while(_1dc);
return Element._returnOffset(_1de,_1dd);
},positionedOffset:function(_1df){
_1df=$(_1df);
var _1e0=0,_1e1=0;
do{
_1e0+=_1df.offsetTop||0;
_1e1+=_1df.offsetLeft||0;
_1df=_1df.offsetParent;
if(_1df){
if(_1df.tagName=="BODY"){
break;
}
var p=Element.getStyle(_1df,"position");
if(p!=="static"){
break;
}
}
}while(_1df);
return Element._returnOffset(_1e1,_1e0);
},absolutize:function(_1e3){
_1e3=$(_1e3);
if(_1e3.getStyle("position")=="absolute"){
return;
}
var _1e4=_1e3.positionedOffset();
var top=_1e4[1];
var left=_1e4[0];
var _1e7=_1e3.clientWidth;
var _1e8=_1e3.clientHeight;
_1e3._originalLeft=left-parseFloat(_1e3.style.left||0);
_1e3._originalTop=top-parseFloat(_1e3.style.top||0);
_1e3._originalWidth=_1e3.style.width;
_1e3._originalHeight=_1e3.style.height;
_1e3.style.position="absolute";
_1e3.style.top=top+"px";
_1e3.style.left=left+"px";
_1e3.style.width=_1e7+"px";
_1e3.style.height=_1e8+"px";
return _1e3;
},relativize:function(_1e9){
_1e9=$(_1e9);
if(_1e9.getStyle("position")=="relative"){
return;
}
_1e9.style.position="relative";
var top=parseFloat(_1e9.style.top||0)-(_1e9._originalTop||0);
var left=parseFloat(_1e9.style.left||0)-(_1e9._originalLeft||0);
_1e9.style.top=top+"px";
_1e9.style.left=left+"px";
_1e9.style.height=_1e9._originalHeight;
_1e9.style.width=_1e9._originalWidth;
return _1e9;
},cumulativeScrollOffset:function(_1ec){
_1ec=$(_1ec);
var _1ed=0,_1ee=0;
do{
_1ed+=_1ec.scrollTop||0;
_1ee+=_1ec.scrollLeft||0;
_1ec=_1ec.parentNode;
}while(_1ec);
return Element._returnOffset(_1ee,_1ed);
},getOffsetParent:function(_1ef){
_1ef=$(_1ef);
if(_1ef.offsetParent){
return $(_1ef.offsetParent);
}
if(_1ef==document.body){
return $(_1ef);
}
while((_1ef=_1ef.parentNode)&&_1ef!=document.body&&_1ef!=document){
if(Element.getStyle(_1ef,"position")!="static"){
return $(_1ef);
}
}
return $(document.body);
},viewportOffset:function(_1f0){
_1f0=$(_1f0);
var _1f1=0,_1f2=0;
var _1f3=_1f0;
do{
_1f1+=_1f3.offsetTop||0;
_1f2+=_1f3.offsetLeft||0;
if(_1f3.offsetParent==document.body&&Element.getStyle(_1f3,"position")=="absolute"){
break;
}
}while(_1f3=_1f3.offsetParent);
_1f3=_1f0;
do{
if(!Prototype.Browser.Opera||_1f3.tagName=="BODY"){
_1f1-=_1f3.scrollTop||0;
_1f2-=_1f3.scrollLeft||0;
}
}while(_1f3=_1f3.parentNode);
return Element._returnOffset(_1f2,_1f1);
},clonePosition:function(_1f4,_1f5){
_1f4=$(_1f4);
var _1f6=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});
_1f5=$(_1f5);
var p=_1f5.viewportOffset();
var _1f8=[0,0];
var _1f9=null;
if(Element.getStyle(_1f4,"position")=="absolute"){
_1f9=_1f4.getOffsetParent();
_1f8=_1f9.viewportOffset();
}
if(_1f9==document.body){
_1f8[0]-=document.body.offsetLeft;
_1f8[1]-=document.body.offsetTop;
}
if(_1f6.setLeft){
_1f4.style.left=(p[0]-_1f8[0]+_1f6.offsetLeft)+"px";
}
if(_1f6.setTop){
_1f4.style.top=(p[1]-_1f8[1]+_1f6.offsetTop)+"px";
}
if(_1f6.setWidth){
_1f4.style.width=_1f5.offsetWidth+"px";
}
if(_1f6.setHeight){
_1f4.style.height=_1f5.offsetHeight+"px";
}
return _1f4;
}};
Element.Methods.identify.counter=1;
Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});
Element._attributeTranslations={write:{names:{className:"class",htmlFor:"for"},values:{}}};
if(Prototype.Browser.Opera){
Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(_1fa,_1fb,_1fc){
switch(_1fc){
case "left":
case "top":
case "right":
case "bottom":
if(_1fa(_1fb,"position")==="static"){
return null;
}
case "height":
case "width":
if(!Element.visible(_1fb)){
return null;
}
var dim=parseInt(_1fa(_1fb,_1fc),10);
if(dim!==_1fb["offset"+_1fc.capitalize()]){
return dim+"px";
}
var _1fe;
if(_1fc==="height"){
_1fe=["border-top-width","padding-top","padding-bottom","border-bottom-width"];
}else{
_1fe=["border-left-width","padding-left","padding-right","border-right-width"];
}
return _1fe.inject(dim,function(memo,_200){
var val=_1fa(_1fb,_200);
return val===null?memo:memo-parseInt(val,10);
})+"px";
default:
return _1fa(_1fb,_1fc);
}
});
Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(_202,_203,_204){
if(_204==="title"){
return $(_203).title;
}
return _202(_203,_204);
});
}else{
if(Prototype.Browser.IE){
Element.Methods.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(_205,_206){
_206=$(_206);
var _207=_206.getStyle("position");
if(_207!=="static"){
return _205(_206);
}
_206.setStyle({position:"relative"});
var _208=_205(_206);
_206.setStyle({position:_207});
return _208;
});
$w("positionedOffset viewportOffset").each(function(_209){
Element.Methods[_209]=Element.Methods[_209].wrap(function(_20a,_20b){
_20b=$(_20b);
var _20c=_20b.getStyle("position");
if(_20c!=="static"){
return _20a(_20b);
}
var _20d=_20b.getOffsetParent();
if(_20d&&_20d.getStyle("position")==="fixed"){
_20d.setStyle({zoom:1});
}
_20b.setStyle({position:"relative"});
var _20e=_20a(_20b);
_20b.setStyle({position:_20c});
return _20e;
});
});
Element.Methods.getStyle=function(_20f,_210){
_20f=$(_20f);
_210=(_210=="float"||_210=="cssFloat")?"styleFloat":_210.camelize();
var _211=_20f.style[_210];
if(!_211&&_20f.currentStyle){
_211=_20f.currentStyle[_210];
}
if(_210=="opacity"){
if(_211=(_20f.getStyle("filter")||"").match(/alpha\(opacity=(.*)\)/)){
if(_211[1]){
return parseFloat(_211[1])/100;
}
}
return 1;
}
if(_211=="auto"){
if((_210=="width"||_210=="height")&&(_20f.getStyle("display")!="none")){
return _20f["offset"+_210.capitalize()]+"px";
}
return null;
}
return _211;
};
Element.Methods.setOpacity=function(_212,_213){
function _214(_215){
return _215.replace(/alpha\([^\)]*\)/gi,"");
};
_212=$(_212);
var _216=_212.currentStyle;
if((_216&&!_216.hasLayout)||(!_216&&_212.style.zoom=="normal")){
_212.style.zoom=1;
}
var _217=_212.getStyle("filter"),_218=_212.style;
if(_213==1||_213===""){
(_217=_214(_217))?_218.filter=_217:_218.removeAttribute("filter");
return _212;
}else{
if(_213<0.00001){
_213=0;
}
}
_218.filter=_214(_217)+"alpha(opacity="+(_213*100)+")";
return _212;
};
Element._attributeTranslations={read:{names:{"class":"className","for":"htmlFor"},values:{_getAttr:function(_219,_21a){
return _219.getAttribute(_21a,2);
},_getAttrNode:function(_21b,_21c){
var node=_21b.getAttributeNode(_21c);
return node?node.value:"";
},_getEv:function(_21e,_21f){
_21f=_21e.getAttribute(_21f);
return _21f?_21f.toString().slice(23,-2):null;
},_flag:function(_220,_221){
return $(_220).hasAttribute(_221)?_221:null;
},style:function(_222){
return _222.style.cssText.toLowerCase();
},title:function(_223){
return _223.title;
}}}};
Element._attributeTranslations.write={names:Object.extend({cellpadding:"cellPadding",cellspacing:"cellSpacing"},Element._attributeTranslations.read.names),values:{checked:function(_224,_225){
_224.checked=!!_225;
},style:function(_226,_227){
_226.style.cssText=_227?_227:"";
}}};
Element._attributeTranslations.has={};
$w("colSpan rowSpan vAlign dateTime accessKey tabIndex "+"encType maxLength readOnly longDesc").each(function(attr){
Element._attributeTranslations.write.names[attr.toLowerCase()]=attr;
Element._attributeTranslations.has[attr.toLowerCase()]=attr;
});
(function(v){
Object.extend(v,{href:v._getAttr,src:v._getAttr,type:v._getAttr,action:v._getAttrNode,disabled:v._flag,checked:v._flag,readonly:v._flag,multiple:v._flag,onload:v._getEv,onunload:v._getEv,onclick:v._getEv,ondblclick:v._getEv,onmousedown:v._getEv,onmouseup:v._getEv,onmouseover:v._getEv,onmousemove:v._getEv,onmouseout:v._getEv,onfocus:v._getEv,onblur:v._getEv,onkeypress:v._getEv,onkeydown:v._getEv,onkeyup:v._getEv,onsubmit:v._getEv,onreset:v._getEv,onselect:v._getEv,onchange:v._getEv});
})(Element._attributeTranslations.read.values);
}else{
if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){
Element.Methods.setOpacity=function(_22a,_22b){
_22a=$(_22a);
_22a.style.opacity=(_22b==1)?0.999999:(_22b==="")?"":(_22b<0.00001)?0:_22b;
return _22a;
};
}else{
if(Prototype.Browser.WebKit){
Element.Methods.setOpacity=function(_22c,_22d){
_22c=$(_22c);
_22c.style.opacity=(_22d==1||_22d==="")?"":(_22d<0.00001)?0:_22d;
if(_22d==1){
if(_22c.tagName=="IMG"&&_22c.width){
_22c.width++;
_22c.width--;
}else{
try{
var n=document.createTextNode(" ");
_22c.appendChild(n);
_22c.removeChild(n);
}
catch(e){
}
}
}
return _22c;
};
Element.Methods.cumulativeOffset=function(_22f){
_22f=$(_22f);
var _230=0,_231=0;
do{
_230+=_22f.offsetTop||0;
_231+=_22f.offsetLeft||0;
if(_22f.offsetParent==document.body){
if(Element.getStyle(_22f,"position")=="absolute"){
break;
}
}
_22f=_22f.offsetParent;
}while(_22f);
return Element._returnOffset(_231,_230);
};
}
}
}
}
if(Prototype.Browser.IE||Prototype.Browser.Opera){
Element.Methods.update=function(_232,_233){
_232=$(_232);
if(_233&&_233.toElement){
_233=_233.toElement();
}
if(Object.isElement(_233)){
return _232.update().insert(_233);
}
_233=Object.toHTML(_233);
var _234=_232.tagName.toUpperCase();
if(_234 in Element._insertionTranslations.tags){
$A(_232.childNodes).each(function(node){
_232.removeChild(node);
});
Element._getContentFromAnonymousElement(_234,_233.stripScripts()).each(function(node){
_232.appendChild(node);
});
}else{
_232.innerHTML=_233.stripScripts();
}
_233.evalScripts.bind(_233).defer();
return _232;
};
}
if("outerHTML" in document.createElement("div")){
Element.Methods.replace=function(_237,_238){
_237=$(_237);
if(_238&&_238.toElement){
_238=_238.toElement();
}
if(Object.isElement(_238)){
_237.parentNode.replaceChild(_238,_237);
return _237;
}
_238=Object.toHTML(_238);
var _239=_237.parentNode,_23a=_239.tagName.toUpperCase();
if(Element._insertionTranslations.tags[_23a]){
var _23b=_237.next();
var _23c=Element._getContentFromAnonymousElement(_23a,_238.stripScripts());
_239.removeChild(_237);
if(_23b){
_23c.each(function(node){
_239.insertBefore(node,_23b);
});
}else{
_23c.each(function(node){
_239.appendChild(node);
});
}
}else{
_237.outerHTML=_238.stripScripts();
}
_238.evalScripts.bind(_238).defer();
return _237;
};
}
Element._returnOffset=function(l,t){
var _241=[l,t];
_241.left=l;
_241.top=t;
return _241;
};
Element._getContentFromAnonymousElement=function(_242,html){
var div=new Element("div"),t=Element._insertionTranslations.tags[_242];
if(t){
div.innerHTML=t[0]+html+t[1];
t[2].times(function(){
div=div.firstChild;
});
}else{
div.innerHTML=html;
}
return $A(div.childNodes);
};
Element._insertionTranslations={before:function(_246,node){
_246.parentNode.insertBefore(node,_246);
},top:function(_248,node){
_248.insertBefore(node,_248.firstChild);
},bottom:function(_24a,node){
_24a.appendChild(node);
},after:function(_24c,node){
_24c.parentNode.insertBefore(node,_24c.nextSibling);
},tags:{TABLE:["<table>","</table>",1],TBODY:["<table><tbody>","</tbody></table>",2],TR:["<table><tbody><tr>","</tr></tbody></table>",3],TD:["<table><tbody><tr><td>","</td></tr></tbody></table>",4],SELECT:["<select>","</select>",1]}};
(function(){
Object.extend(this.tags,{THEAD:this.tags.TBODY,TFOOT:this.tags.TBODY,TH:this.tags.TD});
}).call(Element._insertionTranslations);
Element.Methods.Simulated={hasAttribute:function(_24e,_24f){
_24f=Element._attributeTranslations.has[_24f]||_24f;
var node=$(_24e).getAttributeNode(_24f);
return node&&node.specified;
}};
Element.Methods.ByTag={};
Object.extend(Element,Element.Methods);
if(!Prototype.BrowserFeatures.ElementExtensions&&document.createElement("div").__proto__){
window.HTMLElement={};
window.HTMLElement.prototype=document.createElement("div").__proto__;
Prototype.BrowserFeatures.ElementExtensions=true;
}
Element.extend=(function(){
if(Prototype.BrowserFeatures.SpecificElementExtensions){
return Prototype.K;
}
var _251={},_252=Element.Methods.ByTag;
var _253=Object.extend(function(_254){
if(!_254||_254._extendedByPrototype||_254.nodeType!=1||_254==window){
return _254;
}
var _255=Object.clone(_251),_256=_254.tagName,_257,_258;
if(_252[_256]){
Object.extend(_255,_252[_256]);
}
for(_257 in _255){
_258=_255[_257];
if(Object.isFunction(_258)&&!(_257 in _254)){
_254[_257]=_258.methodize();
}
}
_254._extendedByPrototype=Prototype.emptyFunction;
return _254;
},{refresh:function(){
if(!Prototype.BrowserFeatures.ElementExtensions){
Object.extend(_251,Element.Methods);
Object.extend(_251,Element.Methods.Simulated);
}
}});
_253.refresh();
return _253;
})();
Element.hasAttribute=function(_259,_25a){
if((_259=$(_259)).hasAttribute){
return _259.hasAttribute(_25a);
}
return Element.Methods.Simulated.hasAttribute(_259,_25a);
};
Element.addMethods=function(_25b){
var F=Prototype.BrowserFeatures,T=Element.Methods.ByTag;
if(!_25b){
Object.extend(Form,Form.Methods);
Object.extend(Form.Element,Form.Element.Methods);
Object.extend(Element.Methods.ByTag,{"FORM":Object.clone(Form.Methods),"INPUT":Object.clone(Form.Element.Methods),"SELECT":Object.clone(Form.Element.Methods),"TEXTAREA":Object.clone(Form.Element.Methods)});
}
if(arguments.length==2){
var _25e=_25b;
_25b=arguments[1];
}
if(!_25e){
Object.extend(Element.Methods,_25b||{});
}else{
if(Object.isArray(_25e)){
_25e.each(_25f);
}else{
_25f(_25e);
}
}
function _25f(_260){
_260=_260.toUpperCase();
if(!Element.Methods.ByTag[_260]){
Element.Methods.ByTag[_260]={};
}
Object.extend(Element.Methods.ByTag[_260],_25b);
};
function copy(_262,_263,_264){
_264=_264||false;
for(var _265 in _262){
var _266=_262[_265];
if(!Object.isFunction(_266)){
continue;
}
if(!_264||!(_265 in _263)){
_263[_265]=_266.methodize();
}
}
};
function _267(_268){
var _269;
var _26a={"OPTGROUP":"OptGroup","TEXTAREA":"TextArea","P":"Paragraph","FIELDSET":"FieldSet","UL":"UList","OL":"OList","DL":"DList","DIR":"Directory","H1":"Heading","H2":"Heading","H3":"Heading","H4":"Heading","H5":"Heading","H6":"Heading","Q":"Quote","INS":"Mod","DEL":"Mod","A":"Anchor","IMG":"Image","CAPTION":"TableCaption","COL":"TableCol","COLGROUP":"TableCol","THEAD":"TableSection","TFOOT":"TableSection","TBODY":"TableSection","TR":"TableRow","TH":"TableCell","TD":"TableCell","FRAMESET":"FrameSet","IFRAME":"IFrame"};
if(_26a[_268]){
_269="HTML"+_26a[_268]+"Element";
}
if(window[_269]){
return window[_269];
}
_269="HTML"+_268+"Element";
if(window[_269]){
return window[_269];
}
_269="HTML"+_268.capitalize()+"Element";
if(window[_269]){
return window[_269];
}
window[_269]={};
window[_269].prototype=document.createElement(_268).__proto__;
return window[_269];
};
if(F.ElementExtensions){
copy(Element.Methods,HTMLElement.prototype);
copy(Element.Methods.Simulated,HTMLElement.prototype,true);
}
if(F.SpecificElementExtensions){
for(var tag in Element.Methods.ByTag){
var _26c=_267(tag);
if(Object.isUndefined(_26c)){
continue;
}
copy(T[tag],_26c.prototype);
}
}
Object.extend(Element,Element.Methods);
delete Element.ByTag;
if(Element.extend.refresh){
Element.extend.refresh();
}
Element.cache={};
};
document.viewport={getDimensions:function(){
var _26d={};
var B=Prototype.Browser;
$w("width height").each(function(d){
var D=d.capitalize();
_26d[d]=(B.WebKit&&!document.evaluate)?self["inner"+D]:(B.Opera)?document.body["client"+D]:document.documentElement["client"+D];
});
return _26d;
},getWidth:function(){
return this.getDimensions().width;
},getHeight:function(){
return this.getDimensions().height;
},getScrollOffsets:function(){
return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop);
}};
var Selector=Class.create({initialize:function(_271){
this.expression=_271.strip();
this.compileMatcher();
},shouldUseXPath:function(){
if(!Prototype.BrowserFeatures.XPath){
return false;
}
var e=this.expression;
if(Prototype.Browser.WebKit&&(e.include("-of-type")||e.include(":empty"))){
return false;
}
if((/(\[[\w-]*?:|:checked)/).test(this.expression)){
return false;
}
return true;
},compileMatcher:function(){
if(this.shouldUseXPath()){
return this.compileXPathMatcher();
}
var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m;
if(Selector._cache[e]){
this.matcher=Selector._cache[e];
return;
}
this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];
while(e&&le!=e&&(/\S/).test(e)){
le=e;
for(var i in ps){
p=ps[i];
if(m=e.match(p)){
this.matcher.push(Object.isFunction(c[i])?c[i](m):new Template(c[i]).evaluate(m));
e=e.replace(m[0],"");
break;
}
}
}
this.matcher.push("return h.unique(n);\n}");
eval(this.matcher.join("\n"));
Selector._cache[this.expression]=this.matcher;
},compileXPathMatcher:function(){
var e=this.expression,ps=Selector.patterns,x=Selector.xpath,le,m;
if(Selector._cache[e]){
this.xpath=Selector._cache[e];
return;
}
this.matcher=[".//*"];
while(e&&le!=e&&(/\S/).test(e)){
le=e;
for(var i in ps){
if(m=e.match(ps[i])){
this.matcher.push(Object.isFunction(x[i])?x[i](m):new Template(x[i]).evaluate(m));
e=e.replace(m[0],"");
break;
}
}
}
this.xpath=this.matcher.join("");
Selector._cache[this.expression]=this.xpath;
},findElements:function(root){
root=root||document;
if(this.xpath){
return document._getElementsByXPath(this.xpath,root);
}
return this.matcher(root);
},match:function(_282){
this.tokens=[];
var e=this.expression,ps=Selector.patterns,as=Selector.assertions;
var le,p,m;
while(e&&le!==e&&(/\S/).test(e)){
le=e;
for(var i in ps){
p=ps[i];
if(m=e.match(p)){
if(as[i]){
this.tokens.push([i,Object.clone(m)]);
e=e.replace(m[0],"");
}else{
return this.findElements(document).include(_282);
}
}
}
}
var _28a=true,name,_28c;
for(var i=0,_28d;_28d=this.tokens[i];i++){
name=_28d[0],_28c=_28d[1];
if(!Selector.assertions[name](_282,_28c)){
_28a=false;
break;
}
}
return _28a;
},toString:function(){
return this.expression;
},inspect:function(){
return "#<Selector:"+this.expression.inspect()+">";
}});
Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:"/following-sibling::*",tagName:function(m){
if(m[1]=="*"){
return "";
}
return "[local-name()='"+m[1].toLowerCase()+"' or local-name()='"+m[1].toUpperCase()+"']";
},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(m){
m[1]=m[1].toLowerCase();
return new Template("[@#{1}]").evaluate(m);
},attr:function(m){
m[1]=m[1].toLowerCase();
m[3]=m[5]||m[6];
return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
},pseudo:function(m){
var h=Selector.xpath.pseudos[m[1]];
if(!h){
return "";
}
if(Object.isFunction(h)){
return h(m);
}
return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
},operators:{"=":"[@#{1}='#{3}']","!=":"[@#{1}!='#{3}']","^=":"[starts-with(@#{1}, '#{3}')]","$=":"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']","*=":"[contains(@#{1}, '#{3}')]","~=":"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]","|=":"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{"first-child":"[not(preceding-sibling::*)]","last-child":"[not(following-sibling::*)]","only-child":"[not(preceding-sibling::* or following-sibling::*)]","empty":"[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]","checked":"[@checked]","disabled":"[@disabled]","enabled":"[not(@disabled)]","not":function(m){
var e=m[6],p=Selector.patterns,x=Selector.xpath,le,v;
var _299=[];
while(e&&le!=e&&(/\S/).test(e)){
le=e;
for(var i in p){
if(m=e.match(p[i])){
v=Object.isFunction(x[i])?x[i](m):new Template(x[i]).evaluate(m);
_299.push("("+v.substring(1,v.length-1)+")");
e=e.replace(m[0],"");
break;
}
}
}
return "[not("+_299.join(" and ")+")]";
},"nth-child":function(m){
return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",m);
},"nth-last-child":function(m){
return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",m);
},"nth-of-type":function(m){
return Selector.xpath.pseudos.nth("position() ",m);
},"nth-last-of-type":function(m){
return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",m);
},"first-of-type":function(m){
m[6]="1";
return Selector.xpath.pseudos["nth-of-type"](m);
},"last-of-type":function(m){
m[6]="1";
return Selector.xpath.pseudos["nth-last-of-type"](m);
},"only-of-type":function(m){
var p=Selector.xpath.pseudos;
return p["first-of-type"](m)+p["last-of-type"](m);
},nth:function(_2a3,m){
var mm,_2a6=m[6],_2a7;
if(_2a6=="even"){
_2a6="2n+0";
}
if(_2a6=="odd"){
_2a6="2n+1";
}
if(mm=_2a6.match(/^(\d+)$/)){
return "["+_2a3+"= "+mm[1]+"]";
}
if(mm=_2a6.match(/^(-?\d*)?n(([+-])(\d+))?/)){
if(mm[1]=="-"){
mm[1]=-1;
}
var a=mm[1]?Number(mm[1]):1;
var b=mm[2]?Number(mm[2]):0;
_2a7="[((#{fragment} - #{b}) mod #{a} = 0) and "+"((#{fragment} - #{b}) div #{a} >= 0)]";
return new Template(_2a7).evaluate({fragment:_2a3,a:a,b:b});
}
}}},criteria:{tagName:"n = h.tagName(n, r, \"#{1}\", c);      c = false;",className:"n = h.className(n, r, \"#{1}\", c);    c = false;",id:"n = h.id(n, r, \"#{1}\", c);           c = false;",attrPresence:"n = h.attrPresence(n, r, \"#{1}\", c); c = false;",attr:function(m){
m[3]=(m[5]||m[6]);
return new Template("n = h.attr(n, r, \"#{1}\", \"#{3}\", \"#{2}\", c); c = false;").evaluate(m);
},pseudo:function(m){
if(m[6]){
m[6]=m[6].replace(/"/g,"\\\"");
}
return new Template("n = h.pseudo(n, \"#{1}\", \"#{6}\", r, c); c = false;").evaluate(m);
},descendant:"c = \"descendant\";",child:"c = \"child\";",adjacent:"c = \"adjacent\";",laterSibling:"c = \"laterSibling\";"},patterns:{laterSibling:/^\s*~\s*/,child:/^\s*>\s*/,adjacent:/^\s*\+\s*/,descendant:/^\s/,tagName:/^\s*(\*|[\w\-]+)(\b|$)?/,id:/^#([\w\-\*]+)(\b|$)/,className:/^\.([\w\-\*]+)(\b|$)/,pseudo:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,attrPresence:/^\[([\w]+)\]/,attr:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/},assertions:{tagName:function(_2ac,_2ad){
return _2ad[1].toUpperCase()==_2ac.tagName.toUpperCase();
},className:function(_2ae,_2af){
return Element.hasClassName(_2ae,_2af[1]);
},id:function(_2b0,_2b1){
return _2b0.id===_2b1[1];
},attrPresence:function(_2b2,_2b3){
return Element.hasAttribute(_2b2,_2b3[1]);
},attr:function(_2b4,_2b5){
var _2b6=Element.readAttribute(_2b4,_2b5[1]);
return _2b6&&Selector.operators[_2b5[2]](_2b6,_2b5[5]||_2b5[6]);
}},handlers:{concat:function(a,b){
for(var i=0,node;node=b[i];i++){
a.push(node);
}
return a;
},mark:function(_2bb){
var _2bc=Prototype.emptyFunction;
for(var i=0,node;node=_2bb[i];i++){
node._countedByPrototype=_2bc;
}
return _2bb;
},unmark:function(_2bf){
for(var i=0,node;node=_2bf[i];i++){
node._countedByPrototype=undefined;
}
return _2bf;
},index:function(_2c2,_2c3,_2c4){
_2c2._countedByPrototype=Prototype.emptyFunction;
if(_2c3){
for(var _2c5=_2c2.childNodes,i=_2c5.length-1,j=1;i>=0;i--){
var node=_2c5[i];
if(node.nodeType==1&&(!_2c4||node._countedByPrototype)){
node.nodeIndex=j++;
}
}
}else{
for(var i=0,j=1,_2c5=_2c2.childNodes;node=_2c5[i];i++){
if(node.nodeType==1&&(!_2c4||node._countedByPrototype)){
node.nodeIndex=j++;
}
}
}
},unique:function(_2c9){
if(_2c9.length==0){
return _2c9;
}
var _2ca=[],n;
for(var i=0,l=_2c9.length;i<l;i++){
if(!(n=_2c9[i])._countedByPrototype){
n._countedByPrototype=Prototype.emptyFunction;
_2ca.push(Element.extend(n));
}
}
return Selector.handlers.unmark(_2ca);
},descendant:function(_2ce){
var h=Selector.handlers;
for(var i=0,_2d1=[],node;node=_2ce[i];i++){
h.concat(_2d1,node.getElementsByTagName("*"));
}
return _2d1;
},child:function(_2d3){
var h=Selector.handlers;
for(var i=0,_2d6=[],node;node=_2d3[i];i++){
for(var j=0,_2d9;_2d9=node.childNodes[j];j++){
if(_2d9.nodeType==1&&_2d9.tagName!="!"){
_2d6.push(_2d9);
}
}
}
return _2d6;
},adjacent:function(_2da){
for(var i=0,_2dc=[],node;node=_2da[i];i++){
var next=this.nextElementSibling(node);
if(next){
_2dc.push(next);
}
}
return _2dc;
},laterSibling:function(_2df){
var h=Selector.handlers;
for(var i=0,_2e2=[],node;node=_2df[i];i++){
h.concat(_2e2,Element.nextSiblings(node));
}
return _2e2;
},nextElementSibling:function(node){
while(node=node.nextSibling){
if(node.nodeType==1){
return node;
}
}
return null;
},previousElementSibling:function(node){
while(node=node.previousSibling){
if(node.nodeType==1){
return node;
}
}
return null;
},tagName:function(_2e6,root,_2e8,_2e9){
var _2ea=_2e8.toUpperCase();
var _2eb=[],h=Selector.handlers;
if(_2e6){
if(_2e9){
if(_2e9=="descendant"){
for(var i=0,node;node=_2e6[i];i++){
h.concat(_2eb,node.getElementsByTagName(_2e8));
}
return _2eb;
}else{
_2e6=this[_2e9](_2e6);
}
if(_2e8=="*"){
return _2e6;
}
}
for(var i=0,node;node=_2e6[i];i++){
if(node.tagName.toUpperCase()===_2ea){
_2eb.push(node);
}
}
return _2eb;
}else{
return root.getElementsByTagName(_2e8);
}
},id:function(_2ef,root,id,_2f2){
var _2f3=$(id),h=Selector.handlers;
if(!_2f3){
return [];
}
if(!_2ef&&root==document){
return [_2f3];
}
if(_2ef){
if(_2f2){
if(_2f2=="child"){
for(var i=0,node;node=_2ef[i];i++){
if(_2f3.parentNode==node){
return [_2f3];
}
}
}else{
if(_2f2=="descendant"){
for(var i=0,node;node=_2ef[i];i++){
if(Element.descendantOf(_2f3,node)){
return [_2f3];
}
}
}else{
if(_2f2=="adjacent"){
for(var i=0,node;node=_2ef[i];i++){
if(Selector.handlers.previousElementSibling(_2f3)==node){
return [_2f3];
}
}
}else{
_2ef=h[_2f2](_2ef);
}
}
}
}
for(var i=0,node;node=_2ef[i];i++){
if(node==_2f3){
return [_2f3];
}
}
return [];
}
return (_2f3&&Element.descendantOf(_2f3,root))?[_2f3]:[];
},className:function(_2f7,root,_2f9,_2fa){
if(_2f7&&_2fa){
_2f7=this[_2fa](_2f7);
}
return Selector.handlers.byClassName(_2f7,root,_2f9);
},byClassName:function(_2fb,root,_2fd){
if(!_2fb){
_2fb=Selector.handlers.descendant([root]);
}
var _2fe=" "+_2fd+" ";
for(var i=0,_300=[],node,_302;node=_2fb[i];i++){
_302=node.className;
if(_302.length==0){
continue;
}
if(_302==_2fd||(" "+_302+" ").include(_2fe)){
_300.push(node);
}
}
return _300;
},attrPresence:function(_303,root,attr,_306){
if(!_303){
_303=root.getElementsByTagName("*");
}
if(_303&&_306){
_303=this[_306](_303);
}
var _307=[];
for(var i=0,node;node=_303[i];i++){
if(Element.hasAttribute(node,attr)){
_307.push(node);
}
}
return _307;
},attr:function(_30a,root,attr,_30d,_30e,_30f){
if(!_30a){
_30a=root.getElementsByTagName("*");
}
if(_30a&&_30f){
_30a=this[_30f](_30a);
}
var _310=Selector.operators[_30e],_311=[];
for(var i=0,node;node=_30a[i];i++){
var _314=Element.readAttribute(node,attr);
if(_314===null){
continue;
}
if(_310(_314,_30d)){
_311.push(node);
}
}
return _311;
},pseudo:function(_315,name,_317,root,_319){
if(_315&&_319){
_315=this[_319](_315);
}
if(!_315){
_315=root.getElementsByTagName("*");
}
return Selector.pseudos[name](_315,_317,root);
}},pseudos:{"first-child":function(_31a,_31b,root){
for(var i=0,_31e=[],node;node=_31a[i];i++){
if(Selector.handlers.previousElementSibling(node)){
continue;
}
_31e.push(node);
}
return _31e;
},"last-child":function(_320,_321,root){
for(var i=0,_324=[],node;node=_320[i];i++){
if(Selector.handlers.nextElementSibling(node)){
continue;
}
_324.push(node);
}
return _324;
},"only-child":function(_326,_327,root){
var h=Selector.handlers;
for(var i=0,_32b=[],node;node=_326[i];i++){
if(!h.previousElementSibling(node)&&!h.nextElementSibling(node)){
_32b.push(node);
}
}
return _32b;
},"nth-child":function(_32d,_32e,root){
return Selector.pseudos.nth(_32d,_32e,root);
},"nth-last-child":function(_330,_331,root){
return Selector.pseudos.nth(_330,_331,root,true);
},"nth-of-type":function(_333,_334,root){
return Selector.pseudos.nth(_333,_334,root,false,true);
},"nth-last-of-type":function(_336,_337,root){
return Selector.pseudos.nth(_336,_337,root,true,true);
},"first-of-type":function(_339,_33a,root){
return Selector.pseudos.nth(_339,"1",root,false,true);
},"last-of-type":function(_33c,_33d,root){
return Selector.pseudos.nth(_33c,"1",root,true,true);
},"only-of-type":function(_33f,_340,root){
var p=Selector.pseudos;
return p["last-of-type"](p["first-of-type"](_33f,_340,root),_340,root);
},getIndices:function(a,b,_345){
if(a==0){
return b>0?[b]:[];
}
return $R(1,_345).inject([],function(memo,i){
if(0==(i-b)%a&&(i-b)/a>=0){
memo.push(i);
}
return memo;
});
},nth:function(_348,_349,root,_34b,_34c){
if(_348.length==0){
return [];
}
if(_349=="even"){
_349="2n+0";
}
if(_349=="odd"){
_349="2n+1";
}
var h=Selector.handlers,_34e=[],_34f=[],m;
h.mark(_348);
for(var i=0,node;node=_348[i];i++){
if(!node.parentNode._countedByPrototype){
h.index(node.parentNode,_34b,_34c);
_34f.push(node.parentNode);
}
}
if(_349.match(/^\d+$/)){
_349=Number(_349);
for(var i=0,node;node=_348[i];i++){
if(node.nodeIndex==_349){
_34e.push(node);
}
}
}else{
if(m=_349.match(/^(-?\d*)?n(([+-])(\d+))?/)){
if(m[1]=="-"){
m[1]=-1;
}
var a=m[1]?Number(m[1]):1;
var b=m[2]?Number(m[2]):0;
var _355=Selector.pseudos.getIndices(a,b,_348.length);
for(var i=0,node,l=_355.length;node=_348[i];i++){
for(var j=0;j<l;j++){
if(node.nodeIndex==_355[j]){
_34e.push(node);
}
}
}
}
}
h.unmark(_348);
h.unmark(_34f);
return _34e;
},"empty":function(_358,_359,root){
for(var i=0,_35c=[],node;node=_358[i];i++){
if(node.tagName=="!"||(node.firstChild&&!node.innerHTML.match(/^\s*$/))){
continue;
}
_35c.push(node);
}
return _35c;
},"not":function(_35e,_35f,root){
var h=Selector.handlers,_362,m;
var _364=new Selector(_35f).findElements(root);
h.mark(_364);
for(var i=0,_366=[],node;node=_35e[i];i++){
if(!node._countedByPrototype){
_366.push(node);
}
}
h.unmark(_364);
return _366;
},"enabled":function(_368,_369,root){
for(var i=0,_36c=[],node;node=_368[i];i++){
if(!node.disabled){
_36c.push(node);
}
}
return _36c;
},"disabled":function(_36e,_36f,root){
for(var i=0,_372=[],node;node=_36e[i];i++){
if(node.disabled){
_372.push(node);
}
}
return _372;
},"checked":function(_374,_375,root){
for(var i=0,_378=[],node;node=_374[i];i++){
if(node.checked){
_378.push(node);
}
}
return _378;
}},operators:{"=":function(nv,v){
return nv==v;
},"!=":function(nv,v){
return nv!=v;
},"^=":function(nv,v){
return nv.startsWith(v);
},"$=":function(nv,v){
return nv.endsWith(v);
},"*=":function(nv,v){
return nv.include(v);
},"~=":function(nv,v){
return (" "+nv+" ").include(" "+v+" ");
},"|=":function(nv,v){
return ("-"+nv.toUpperCase()+"-").include("-"+v.toUpperCase()+"-");
}},split:function(_388){
var _389=[];
_388.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){
_389.push(m[1].strip());
});
return _389;
},matchElements:function(_38b,_38c){
var _38d=$$(_38c),h=Selector.handlers;
h.mark(_38d);
for(var i=0,_390=[],_391;_391=_38b[i];i++){
if(_391._countedByPrototype){
_390.push(_391);
}
}
h.unmark(_38d);
return _390;
},findElement:function(_392,_393,_394){
if(Object.isNumber(_393)){
_394=_393;
_393=false;
}
return Selector.matchElements(_392,_393||"*")[_394||0];
},findChildElements:function(_395,_396){
_396=Selector.split(_396.join(","));
var _397=[],h=Selector.handlers;
for(var i=0,l=_396.length,_39b;i<l;i++){
_39b=new Selector(_396[i].strip());
h.concat(_397,_39b.findElements(_395));
}
return (l>1)?h.unique(_397):_397;
}});
if(Prototype.Browser.IE){
Object.extend(Selector.handlers,{concat:function(a,b){
for(var i=0,node;node=b[i];i++){
if(node.tagName!=="!"){
a.push(node);
}
}
return a;
},unmark:function(_3a0){
for(var i=0,node;node=_3a0[i];i++){
node.removeAttribute("_countedByPrototype");
}
return _3a0;
}});
}
function $$(){
return Selector.findChildElements(document,$A(arguments));
};
var Form={reset:function(form){
$(form).reset();
return form;
},serializeElements:function(_3a4,_3a5){
if(typeof _3a5!="object"){
_3a5={hash:!!_3a5};
}else{
if(Object.isUndefined(_3a5.hash)){
_3a5.hash=true;
}
}
var key,_3a7,_3a8=false,_3a9=_3a5.submit;
var data=_3a4.inject({},function(_3ab,_3ac){
if(!_3ac.disabled&&_3ac.name){
key=_3ac.name;
_3a7=$(_3ac).getValue();
if(_3a7!=null&&(_3ac.type!="submit"||(!_3a8&&_3a9!==false&&(!_3a9||key==_3a9)&&(_3a8=true)))){
if(key in _3ab){
if(!Object.isArray(_3ab[key])){
_3ab[key]=[_3ab[key]];
}
_3ab[key].push(_3a7);
}else{
_3ab[key]=_3a7;
}
}
}
return _3ab;
});
return _3a5.hash?data:Object.toQueryString(data);
}};
Form.Methods={serialize:function(form,_3ae){
return Form.serializeElements(Form.getElements(form),_3ae);
},getElements:function(form){
return $A($(form).getElementsByTagName("*")).inject([],function(_3b0,_3b1){
if(Form.Element.Serializers[_3b1.tagName.toLowerCase()]){
_3b0.push(Element.extend(_3b1));
}
return _3b0;
});
},getInputs:function(form,_3b3,name){
form=$(form);
var _3b5=form.getElementsByTagName("input");
if(!_3b3&&!name){
return $A(_3b5).map(Element.extend);
}
for(var i=0,_3b7=[],_3b8=_3b5.length;i<_3b8;i++){
var _3b9=_3b5[i];
if((_3b3&&_3b9.type!=_3b3)||(name&&_3b9.name!=name)){
continue;
}
_3b7.push(Element.extend(_3b9));
}
return _3b7;
},disable:function(form){
form=$(form);
Form.getElements(form).invoke("disable");
return form;
},enable:function(form){
form=$(form);
Form.getElements(form).invoke("enable");
return form;
},findFirstElement:function(form){
var _3bd=$(form).getElements().findAll(function(_3be){
return "hidden"!=_3be.type&&!_3be.disabled;
});
var _3bf=_3bd.findAll(function(_3c0){
return _3c0.hasAttribute("tabIndex")&&_3c0.tabIndex>=0;
}).sortBy(function(_3c1){
return _3c1.tabIndex;
}).first();
return _3bf?_3bf:_3bd.find(function(_3c2){
return ["input","select","textarea"].include(_3c2.tagName.toLowerCase());
});
},focusFirstElement:function(form){
form=$(form);
form.findFirstElement().activate();
return form;
},request:function(form,_3c5){
form=$(form),_3c5=Object.clone(_3c5||{});
var _3c6=_3c5.parameters,_3c7=form.readAttribute("action")||"";
if(_3c7.blank()){
_3c7=window.location.href;
}
_3c5.parameters=form.serialize(true);
if(_3c6){
if(Object.isString(_3c6)){
_3c6=_3c6.toQueryParams();
}
Object.extend(_3c5.parameters,_3c6);
}
if(form.hasAttribute("method")&&!_3c5.method){
_3c5.method=form.method;
}
return new Ajax.Request(_3c7,_3c5);
}};
Form.Element={focus:function(_3c8){
$(_3c8).focus();
return _3c8;
},select:function(_3c9){
$(_3c9).select();
return _3c9;
}};
Form.Element.Methods={serialize:function(_3ca){
_3ca=$(_3ca);
if(!_3ca.disabled&&_3ca.name){
var _3cb=_3ca.getValue();
if(_3cb!=undefined){
var pair={};
pair[_3ca.name]=_3cb;
return Object.toQueryString(pair);
}
}
return "";
},getValue:function(_3cd){
_3cd=$(_3cd);
var _3ce=_3cd.tagName.toLowerCase();
return Form.Element.Serializers[_3ce](_3cd);
},setValue:function(_3cf,_3d0){
_3cf=$(_3cf);
var _3d1=_3cf.tagName.toLowerCase();
Form.Element.Serializers[_3d1](_3cf,_3d0);
return _3cf;
},clear:function(_3d2){
$(_3d2).value="";
return _3d2;
},present:function(_3d3){
return $(_3d3).value!="";
},activate:function(_3d4){
_3d4=$(_3d4);
try{
_3d4.focus();
if(_3d4.select&&(_3d4.tagName.toLowerCase()!="input"||!["button","reset","submit"].include(_3d4.type))){
_3d4.select();
}
}
catch(e){
}
return _3d4;
},disable:function(_3d5){
_3d5=$(_3d5);
_3d5.blur();
_3d5.disabled=true;
return _3d5;
},enable:function(_3d6){
_3d6=$(_3d6);
_3d6.disabled=false;
return _3d6;
}};
var Field=Form.Element;
var $F=Form.Element.Methods.getValue;
Form.Element.Serializers={input:function(_3d7,_3d8){
switch(_3d7.type.toLowerCase()){
case "checkbox":
case "radio":
return Form.Element.Serializers.inputSelector(_3d7,_3d8);
default:
return Form.Element.Serializers.textarea(_3d7,_3d8);
}
},inputSelector:function(_3d9,_3da){
if(Object.isUndefined(_3da)){
return _3d9.checked?_3d9.value:null;
}else{
_3d9.checked=!!_3da;
}
},textarea:function(_3db,_3dc){
if(Object.isUndefined(_3dc)){
return _3db.value;
}else{
_3db.value=_3dc;
}
},select:function(_3dd,_3de){
if(Object.isUndefined(_3de)){
return this[_3dd.type=="select-one"?"selectOne":"selectMany"](_3dd);
}else{
var opt,_3e0,_3e1=!Object.isArray(_3de);
for(var i=0,_3e3=_3dd.length;i<_3e3;i++){
opt=_3dd.options[i];
_3e0=this.optionValue(opt);
if(_3e1){
if(_3e0==_3de){
opt.selected=true;
return;
}
}else{
opt.selected=_3de.include(_3e0);
}
}
}
},selectOne:function(_3e4){
var _3e5=_3e4.selectedIndex;
return _3e5>=0?this.optionValue(_3e4.options[_3e5]):null;
},selectMany:function(_3e6){
var _3e7,_3e8=_3e6.length;
if(!_3e8){
return null;
}
for(var i=0,_3e7=[];i<_3e8;i++){
var opt=_3e6.options[i];
if(opt.selected){
_3e7.push(this.optionValue(opt));
}
}
return _3e7;
},optionValue:function(opt){
return Element.extend(opt).hasAttribute("value")?opt.value:opt.text;
}};
Abstract.TimedObserver=Class.create(PeriodicalExecuter,{initialize:function(_3ec,_3ed,_3ee,_3ef){
_3ec(_3ef,_3ee);
this.element=$(_3ed);
this.lastValue=this.getValue();
},execute:function(){
var _3f0=this.getValue();
if(Object.isString(this.lastValue)&&Object.isString(_3f0)?this.lastValue!=_3f0:String(this.lastValue)!=String(_3f0)){
this.callback(this.element,_3f0);
this.lastValue=_3f0;
}
}});
Form.Element.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){
return Form.Element.getValue(this.element);
}});
Form.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){
return Form.serialize(this.element);
}});
Abstract.EventObserver=Class.create({initialize:function(_3f1,_3f2){
this.element=$(_3f1);
this.callback=_3f2;
this.lastValue=this.getValue();
if(this.element.tagName.toLowerCase()=="form"){
this.registerFormCallbacks();
}else{
this.registerCallback(this.element);
}
},onElementEvent:function(){
var _3f3=this.getValue();
if(this.lastValue!=_3f3){
this.callback(this.element,_3f3);
this.lastValue=_3f3;
}
},registerFormCallbacks:function(){
Form.getElements(this.element).each(this.registerCallback,this);
},registerCallback:function(_3f4){
if(_3f4.type){
switch(_3f4.type.toLowerCase()){
case "checkbox":
case "radio":
Event.observe(_3f4,"click",this.onElementEvent.bind(this));
break;
default:
Event.observe(_3f4,"change",this.onElementEvent.bind(this));
break;
}
}
}});
Form.Element.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){
return Form.Element.getValue(this.element);
}});
Form.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){
return Form.serialize(this.element);
}});
if(!window.Event){
var Event={};
}
Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,KEY_INSERT:45,cache:{},relatedTarget:function(_3f5){
var _3f6;
switch(_3f5.type){
case "mouseover":
_3f6=_3f5.fromElement;
break;
case "mouseout":
_3f6=_3f5.toElement;
break;
default:
return null;
}
return Element.extend(_3f6);
}});
Event.Methods=(function(){
var _3f7;
if(Prototype.Browser.IE){
var _3f8={0:1,1:4,2:2};
_3f7=function(_3f9,code){
return _3f9.button==_3f8[code];
};
}else{
if(Prototype.Browser.WebKit){
_3f7=function(_3fb,code){
switch(code){
case 0:
return _3fb.which==1&&!_3fb.metaKey;
case 1:
return _3fb.which==1&&_3fb.metaKey;
default:
return false;
}
};
}else{
_3f7=function(_3fd,code){
return _3fd.which?(_3fd.which===code+1):(_3fd.button===code);
};
}
}
return {isLeftClick:function(_3ff){
return _3f7(_3ff,0);
},isMiddleClick:function(_400){
return _3f7(_400,1);
},isRightClick:function(_401){
return _3f7(_401,2);
},element:function(_402){
var node=Event.extend(_402).target;
return Element.extend(node.nodeType==Node.TEXT_NODE?node.parentNode:node);
},findElement:function(_404,_405){
var _406=Event.element(_404);
if(!_405){
return _406;
}
var _407=[_406].concat(_406.ancestors());
return Selector.findElement(_407,_405,0);
},pointer:function(_408){
return {x:_408.pageX||(_408.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)),y:_408.pageY||(_408.clientY+(document.documentElement.scrollTop||document.body.scrollTop))};
},pointerX:function(_409){
return Event.pointer(_409).x;
},pointerY:function(_40a){
return Event.pointer(_40a).y;
},stop:function(_40b){
Event.extend(_40b);
_40b.preventDefault();
_40b.stopPropagation();
_40b.stopped=true;
}};
})();
Event.extend=(function(){
var _40c=Object.keys(Event.Methods).inject({},function(m,name){
m[name]=Event.Methods[name].methodize();
return m;
});
if(Prototype.Browser.IE){
Object.extend(_40c,{stopPropagation:function(){
this.cancelBubble=true;
},preventDefault:function(){
this.returnValue=false;
},inspect:function(){
return "[object Event]";
}});
return function(_40f){
if(!_40f){
return false;
}
if(_40f._extendedByPrototype){
return _40f;
}
_40f._extendedByPrototype=Prototype.emptyFunction;
var _410=Event.pointer(_40f);
Object.extend(_40f,{target:_40f.srcElement,relatedTarget:Event.relatedTarget(_40f),pageX:_410.x,pageY:_410.y});
return Object.extend(_40f,_40c);
};
}else{
Event.prototype=Event.prototype||document.createEvent("HTMLEvents").__proto__;
Object.extend(Event.prototype,_40c);
return Prototype.K;
}
})();
Object.extend(Event,(function(){
var _411=Event.cache;
function _412(_413){
if(_413._prototypeEventID){
return _413._prototypeEventID[0];
}
arguments.callee.id=arguments.callee.id||1;
return _413._prototypeEventID=[++arguments.callee.id];
};
function _414(_415){
if(_415&&_415.include(":")){
return "dataavailable";
}
return _415;
};
function _416(id){
return _411[id]=_411[id]||{};
};
function _418(id,_41a){
var c=_416(id);
return c[_41a]=c[_41a]||[];
};
function _41c(_41d,_41e,_41f){
var id=_412(_41d);
var c=_418(id,_41e);
if(c.pluck("handler").include(_41f)){
return false;
}
var _422=function(_423){
if(!Event||!Event.extend||(_423.eventName&&_423.eventName!=_41e)){
return false;
}
Event.extend(_423);
_41f.call(_41d,_423);
};
_422.handler=_41f;
c.push(_422);
return _422;
};
function _424(id,_426,_427){
var c=_418(id,_426);
return c.find(function(_429){
return _429.handler==_427;
});
};
function _42a(id,_42c,_42d){
var c=_416(id);
if(!c[_42c]){
return false;
}
c[_42c]=c[_42c].without(_424(id,_42c,_42d));
};
function _42f(){
for(var id in _411){
for(var _431 in _411[id]){
_411[id][_431]=null;
}
}
};
if(window.attachEvent){
window.attachEvent("onunload",_42f);
}
return {observe:function(_432,_433,_434){
_432=$(_432);
var name=_414(_433);
var _436=_41c(_432,_433,_434);
if(!_436){
return _432;
}
if(_432.addEventListener){
_432.addEventListener(name,_436,false);
}else{
_432.attachEvent("on"+name,_436);
}
return _432;
},stopObserving:function(_437,_438,_439){
_437=$(_437);
var id=_412(_437),name=_414(_438);
if(!_439&&_438){
_418(id,_438).each(function(_43c){
_437.stopObserving(_438,_43c.handler);
});
return _437;
}else{
if(!_438){
Object.keys(_416(id)).each(function(_43d){
_437.stopObserving(_43d);
});
return _437;
}
}
var _43e=_424(id,_438,_439);
if(!_43e){
return _437;
}
if(_437.removeEventListener){
_437.removeEventListener(name,_43e,false);
}else{
_437.detachEvent("on"+name,_43e);
}
_42a(id,_438,_439);
return _437;
},fire:function(_43f,_440,memo){
_43f=$(_43f);
if(_43f==document&&document.createEvent&&!_43f.dispatchEvent){
_43f=document.documentElement;
}
var _442;
if(document.createEvent){
_442=document.createEvent("HTMLEvents");
_442.initEvent("dataavailable",true,true);
}else{
_442=document.createEventObject();
_442.eventType="ondataavailable";
}
_442.eventName=_440;
_442.memo=memo||{};
if(document.createEvent){
_43f.dispatchEvent(_442);
}else{
_43f.fireEvent(_442.eventType,_442);
}
return Event.extend(_442);
}};
})());
Object.extend(Event,Event.Methods);
Element.addMethods({fire:Event.fire,observe:Event.observe,stopObserving:Event.stopObserving});
Object.extend(document,{fire:Element.Methods.fire.methodize(),observe:Element.Methods.observe.methodize(),stopObserving:Element.Methods.stopObserving.methodize(),loaded:false});
(function(){
var _443;
function _444(){
if(document.loaded){
return;
}
if(_443){
window.clearInterval(_443);
}
document.fire("dom:loaded");
document.loaded=true;
};
if(document.addEventListener){
if(Prototype.Browser.WebKit){
_443=window.setInterval(function(){
if(/loaded|complete/.test(document.readyState)){
_444();
}
},0);
Event.observe(window,"load",_444);
}else{
document.addEventListener("DOMContentLoaded",_444,false);
}
}else{
document.write("<script id=__onDOMContentLoaded defer src=//:></script>");
$("__onDOMContentLoaded").onreadystatechange=function(){
if(this.readyState=="complete"){
this.onreadystatechange=null;
_444();
}
};
}
})();
Hash.toQueryString=Object.toQueryString;
var Toggle={display:Element.toggle};
Element.Methods.childOf=Element.Methods.descendantOf;
var Insertion={Before:function(_445,_446){
return Element.insert(_445,{before:_446});
},Top:function(_447,_448){
return Element.insert(_447,{top:_448});
},Bottom:function(_449,_44a){
return Element.insert(_449,{bottom:_44a});
},After:function(_44b,_44c){
return Element.insert(_44b,{after:_44c});
}};
var $continue=new Error("\"throw $continue\" is deprecated, use \"return\" instead");
var Position={includeScrollOffsets:false,prepare:function(){
this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;
this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;
},within:function(_44d,x,y){
if(this.includeScrollOffsets){
return this.withinIncludingScrolloffsets(_44d,x,y);
}
this.xcomp=x;
this.ycomp=y;
this.offset=Element.cumulativeOffset(_44d);
return (y>=this.offset[1]&&y<this.offset[1]+_44d.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+_44d.offsetWidth);
},withinIncludingScrolloffsets:function(_450,x,y){
var _453=Element.cumulativeScrollOffset(_450);
this.xcomp=x+_453[0]-this.deltaX;
this.ycomp=y+_453[1]-this.deltaY;
this.offset=Element.cumulativeOffset(_450);
return (this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+_450.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+_450.offsetWidth);
},overlap:function(mode,_455){
if(!mode){
return 0;
}
if(mode=="vertical"){
return ((this.offset[1]+_455.offsetHeight)-this.ycomp)/_455.offsetHeight;
}
if(mode=="horizontal"){
return ((this.offset[0]+_455.offsetWidth)-this.xcomp)/_455.offsetWidth;
}
},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(_456){
Position.prepare();
return Element.absolutize(_456);
},relativize:function(_457){
Position.prepare();
return Element.relativize(_457);
},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(_458,_459,_45a){
_45a=_45a||{};
return Element.clonePosition(_459,_458,_45a);
}};
if(!document.getElementsByClassName){
document.getElementsByClassName=function(_45b){
function iter(name){
return name.blank()?null:"[contains(concat(' ', @class, ' '), ' "+name+" ')]";
};
_45b.getElementsByClassName=Prototype.BrowserFeatures.XPath?function(_45e,_45f){
_45f=_45f.toString().strip();
var cond=/\s/.test(_45f)?$w(_45f).map(iter).join(""):iter(_45f);
return cond?document._getElementsByXPath(".//*"+cond,_45e):[];
}:function(_461,_462){
_462=_462.toString().strip();
var _463=[],_464=(/\s/.test(_462)?$w(_462):null);
if(!_464&&!_462){
return _463;
}
var _465=$(_461).getElementsByTagName("*");
_462=" "+_462+" ";
for(var i=0,_467,cn;_467=_465[i];i++){
if(_467.className&&(cn=" "+_467.className+" ")&&(cn.include(_462)||(_464&&_464.all(function(name){
return !name.toString().blank()&&cn.include(" "+name+" ");
})))){
_463.push(Element.extend(_467));
}
}
return _463;
};
return function(_46a,_46b){
return $(_46b||document.body).getElementsByClassName(_46a);
};
}(Element.Methods);
}
Element.ClassNames=Class.create();
Element.ClassNames.prototype={initialize:function(_46c){
this.element=$(_46c);
},_each:function(_46d){
this.element.className.split(/\s+/).select(function(name){
return name.length>0;
})._each(_46d);
},set:function(_46f){
this.element.className=_46f;
},add:function(_470){
if(this.include(_470)){
return;
}
this.set($A(this).concat(_470).join(" "));
},remove:function(_471){
if(!this.include(_471)){
return;
}
this.set($A(this).without(_471).join(" "));
},toString:function(){
return $A(this).join(" ");
}};
Object.extend(Element.ClassNames.prototype,Enumerable);
Element.addMethods();



// script.aculo.us scriptaculous.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008

// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// 
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
// 
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// For details, see the script.aculo.us web site: http://script.aculo.us/

var Scriptaculous = {
  Version: '1.8.1',
  require: function(libraryName) {
    // inserting via DOM fails in Safari 2.0, so brute force approach
    document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
  },
  REQUIRED_PROTOTYPE: '1.6.0',
  load: function() {
    function convertVersionString(versionString){
      var r = versionString.split('.');
      return parseInt(r[0])*100000 + parseInt(r[1])*1000 + parseInt(r[2]);
    }
 
    if((typeof Prototype=='undefined') || 
       (typeof Element == 'undefined') || 
       (typeof Element.Methods=='undefined') ||
       (convertVersionString(Prototype.Version) < 
        convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
       throw("script.aculo.us requires the Prototype JavaScript framework >= " +
        Scriptaculous.REQUIRED_PROTOTYPE);
    
    $A(document.getElementsByTagName("script")).findAll( function(s) {
      return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))
    }).each( function(s) {
      var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');
      var includes = s.src.match(/\?.*load=([a-z,]*)/);
      (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each(
       function(include) { Scriptaculous.require(path+include+'.js') });
    });
  }
}

Scriptaculous.load();

String.prototype.parseColor=function(){
var _1="#";
if(this.slice(0,4)=="rgb("){
var _2=this.slice(4,this.length-1).split(",");
var i=0;
do{
_1+=parseInt(_2[i]).toColorPart();
}while(++i<3);
}else{
if(this.slice(0,1)=="#"){
if(this.length==4){
for(var i=1;i<4;i++){
_1+=(this.charAt(i)+this.charAt(i)).toLowerCase();
}
}
if(this.length==7){
_1=this.toLowerCase();
}
}
}
return (_1.length==7?_1:(arguments[0]||this));
};
Element.collectTextNodes=function(_4){
return $A($(_4).childNodes).collect(function(_5){
return (_5.nodeType==3?_5.nodeValue:(_5.hasChildNodes()?Element.collectTextNodes(_5):""));
}).flatten().join("");
};
Element.collectTextNodesIgnoreClass=function(_6,_7){
return $A($(_6).childNodes).collect(function(_8){
return (_8.nodeType==3?_8.nodeValue:((_8.hasChildNodes()&&!Element.hasClassName(_8,_7))?Element.collectTextNodesIgnoreClass(_8,_7):""));
}).flatten().join("");
};
Element.setContentZoom=function(_9,_a){
_9=$(_9);
_9.setStyle({fontSize:(_a/100)+"em"});
if(Prototype.Browser.WebKit){
window.scrollBy(0,0);
}
return _9;
};
Element.getInlineOpacity=function(_b){
return $(_b).style.opacity||"";
};
Element.forceRerendering=function(_c){
try{
_c=$(_c);
var n=document.createTextNode(" ");
_c.appendChild(n);
_c.removeChild(n);
}
catch(e){
}
};
var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},Transitions:{linear:Prototype.K,sinoidal:function(_e){
return (-Math.cos(_e*Math.PI)/2)+0.5;
},reverse:function(_f){
return 1-_f;
},flicker:function(pos){
var pos=((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;
return pos>1?1:pos;
},wobble:function(pos){
return (-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;
},pulse:function(pos,_13){
_13=_13||5;
return (((pos%(1/_13))*_13).round()==0?((pos*_13*2)-(pos*_13*2).floor()):1-((pos*_13*2)-(pos*_13*2).floor()));
},spring:function(pos){
return 1-(Math.cos(pos*4.5*Math.PI)*Math.exp(-pos*6));
},none:function(pos){
return 0;
},full:function(pos){
return 1;
}},DefaultOptions:{duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"},tagifyText:function(_17){
var _18="position:relative";
if(Prototype.Browser.IE){
_18+=";zoom:1";
}
_17=$(_17);
$A(_17.childNodes).each(function(_19){
if(_19.nodeType==3){
_19.nodeValue.toArray().each(function(_1a){
_17.insertBefore(new Element("span",{style:_18}).update(_1a==" "?String.fromCharCode(160):_1a),_19);
});
Element.remove(_19);
}
});
},multiple:function(_1b,_1c){
var _1d;
if(((typeof _1b=="object")||Object.isFunction(_1b))&&(_1b.length)){
_1d=_1b;
}else{
_1d=$(_1b).childNodes;
}
var _1e=Object.extend({speed:0.1,delay:0},arguments[2]||{});
var _1f=_1e.delay;
$A(_1d).each(function(_20,_21){
new _1c(_20,Object.extend(_1e,{delay:_21*_1e.speed+_1f}));
});
},PAIRS:{"slide":["SlideDown","SlideUp"],"blind":["BlindDown","BlindUp"],"appear":["Appear","Fade"]},toggle:function(_22,_23){
_22=$(_22);
_23=(_23||"appear").toLowerCase();
var _24=Object.extend({queue:{position:"end",scope:(_22.id||"global"),limit:1}},arguments[2]||{});
Effect[_22.visible()?Effect.PAIRS[_23][1]:Effect.PAIRS[_23][0]](_22,_24);
}};
Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;
Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){
this.effects=[];
this.interval=null;
},_each:function(_25){
this.effects._each(_25);
},add:function(_26){
var _27=new Date().getTime();
var _28=Object.isString(_26.options.queue)?_26.options.queue:_26.options.queue.position;
switch(_28){
case "front":
this.effects.findAll(function(e){
return e.state=="idle";
}).each(function(e){
e.startOn+=_26.finishOn;
e.finishOn+=_26.finishOn;
});
break;
case "with-last":
_27=this.effects.pluck("startOn").max()||_27;
break;
case "end":
_27=this.effects.pluck("finishOn").max()||_27;
break;
}
_26.startOn+=_27;
_26.finishOn+=_27;
if(!_26.options.queue.limit||(this.effects.length<_26.options.queue.limit)){
this.effects.push(_26);
}
if(!this.interval){
this.interval=setInterval(this.loop.bind(this),15);
}
},remove:function(_2b){
this.effects=this.effects.reject(function(e){
return e==_2b;
});
if(this.effects.length==0){
clearInterval(this.interval);
this.interval=null;
}
},loop:function(){
var _2d=new Date().getTime();
for(var i=0,len=this.effects.length;i<len;i++){
this.effects[i]&&this.effects[i].loop(_2d);
}
}});
Effect.Queues={instances:$H(),get:function(_30){
if(!Object.isString(_30)){
return _30;
}
return this.instances.get(_30)||this.instances.set(_30,new Effect.ScopedQueue());
}};
Effect.Queue=Effect.Queues.get("global");
Effect.Base=Class.create({position:null,start:function(_31){
function _32(_33,_34){
return ((_33[_34+"Internal"]?"this.options."+_34+"Internal(this);":"")+(_33[_34]?"this.options."+_34+"(this);":""));
};
if(_31&&_31.transition===false){
_31.transition=Effect.Transitions.linear;
}
this.options=Object.extend(Object.extend({},Effect.DefaultOptions),_31||{});
this.currentFrame=0;
this.state="idle";
this.startOn=this.options.delay*1000;
this.finishOn=this.startOn+(this.options.duration*1000);
this.fromToDelta=this.options.to-this.options.from;
this.totalTime=this.finishOn-this.startOn;
this.totalFrames=this.options.fps*this.options.duration;
eval("this.render = function(pos){ "+"if (this.state==\"idle\"){this.state=\"running\";"+_32(this.options,"beforeSetup")+(this.setup?"this.setup();":"")+_32(this.options,"afterSetup")+"};if (this.state==\"running\"){"+"pos=this.options.transition(pos)*"+this.fromToDelta+"+"+this.options.from+";"+"this.position=pos;"+_32(this.options,"beforeUpdate")+(this.update?"this.update(pos);":"")+_32(this.options,"afterUpdate")+"}}");
this.event("beforeStart");
if(!this.options.sync){
Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).add(this);
}
},loop:function(_35){
if(_35>=this.startOn){
if(_35>=this.finishOn){
this.render(1);
this.cancel();
this.event("beforeFinish");
if(this.finish){
this.finish();
}
this.event("afterFinish");
return;
}
var pos=(_35-this.startOn)/this.totalTime,_37=(pos*this.totalFrames).round();
if(_37>this.currentFrame){
this.render(pos);
this.currentFrame=_37;
}
}
},cancel:function(){
if(!this.options.sync){
Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).remove(this);
}
this.state="finished";
},event:function(_38){
if(this.options[_38+"Internal"]){
this.options[_38+"Internal"](this);
}
if(this.options[_38]){
this.options[_38](this);
}
},inspect:function(){
var _39=$H();
for(property in this){
if(!Object.isFunction(this[property])){
_39.set(property,this[property]);
}
}
return "#<Effect:"+_39.inspect()+",options:"+$H(this.options).inspect()+">";
}});
Effect.Parallel=Class.create(Effect.Base,{initialize:function(_3a){
this.effects=_3a||[];
this.start(arguments[1]);
},update:function(_3b){
this.effects.invoke("render",_3b);
},finish:function(_3c){
this.effects.each(function(_3d){
_3d.render(1);
_3d.cancel();
_3d.event("beforeFinish");
if(_3d.finish){
_3d.finish(_3c);
}
_3d.event("afterFinish");
});
}});
Effect.Tween=Class.create(Effect.Base,{initialize:function(_3e,_3f,to){
_3e=Object.isString(_3e)?$(_3e):_3e;
var _41=$A(arguments),_42=_41.last(),_43=_41.length==5?_41[3]:null;
this.method=Object.isFunction(_42)?_42.bind(_3e):Object.isFunction(_3e[_42])?_3e[_42].bind(_3e):function(_44){
_3e[_42]=_44;
};
this.start(Object.extend({from:_3f,to:to},_43||{}));
},update:function(_45){
this.method(_45);
}});
Effect.Event=Class.create(Effect.Base,{initialize:function(){
this.start(Object.extend({duration:0},arguments[0]||{}));
},update:Prototype.emptyFunction});
Effect.Opacity=Class.create(Effect.Base,{initialize:function(_46){
this.element=$(_46);
if(!this.element){
throw (Effect._elementDoesNotExistError);
}
if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){
this.element.setStyle({zoom:1});
}
var _47=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});
this.start(_47);
},update:function(_48){
this.element.setOpacity(_48);
}});
Effect.Move=Class.create(Effect.Base,{initialize:function(_49){
this.element=$(_49);
if(!this.element){
throw (Effect._elementDoesNotExistError);
}
var _4a=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});
this.start(_4a);
},setup:function(){
this.element.makePositioned();
this.originalLeft=parseFloat(this.element.getStyle("left")||"0");
this.originalTop=parseFloat(this.element.getStyle("top")||"0");
if(this.options.mode=="absolute"){
this.options.x=this.options.x-this.originalLeft;
this.options.y=this.options.y-this.originalTop;
}
},update:function(_4b){
this.element.setStyle({left:(this.options.x*_4b+this.originalLeft).round()+"px",top:(this.options.y*_4b+this.originalTop).round()+"px"});
}});
Effect.MoveBy=function(_4c,_4d,_4e){
return new Effect.Move(_4c,Object.extend({x:_4e,y:_4d},arguments[3]||{}));
};
Effect.Scale=Class.create(Effect.Base,{initialize:function(_4f,_50){
this.element=$(_4f);
if(!this.element){
throw (Effect._elementDoesNotExistError);
}
var _51=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:_50},arguments[2]||{});
this.start(_51);
},setup:function(){
this.restoreAfterFinish=this.options.restoreAfterFinish||false;
this.elementPositioning=this.element.getStyle("position");
this.originalStyle={};
["top","left","width","height","fontSize"].each(function(k){
this.originalStyle[k]=this.element.style[k];
}.bind(this));
this.originalTop=this.element.offsetTop;
this.originalLeft=this.element.offsetLeft;
var _53=this.element.getStyle("font-size")||"100%";
["em","px","%","pt"].each(function(_54){
if(_53.indexOf(_54)>0){
this.fontSize=parseFloat(_53);
this.fontSizeType=_54;
}
}.bind(this));
this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;
this.dims=null;
if(this.options.scaleMode=="box"){
this.dims=[this.element.offsetHeight,this.element.offsetWidth];
}
if(/^content/.test(this.options.scaleMode)){
this.dims=[this.element.scrollHeight,this.element.scrollWidth];
}
if(!this.dims){
this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];
}
},update:function(_55){
var _56=(this.options.scaleFrom/100)+(this.factor*_55);
if(this.options.scaleContent&&this.fontSize){
this.element.setStyle({fontSize:this.fontSize*_56+this.fontSizeType});
}
this.setDimensions(this.dims[0]*_56,this.dims[1]*_56);
},finish:function(_57){
if(this.restoreAfterFinish){
this.element.setStyle(this.originalStyle);
}
},setDimensions:function(_58,_59){
var d={};
if(this.options.scaleX){
d.width=_59.round()+"px";
}
if(this.options.scaleY){
d.height=_58.round()+"px";
}
if(this.options.scaleFromCenter){
var _5b=(_58-this.dims[0])/2;
var _5c=(_59-this.dims[1])/2;
if(this.elementPositioning=="absolute"){
if(this.options.scaleY){
d.top=this.originalTop-_5b+"px";
}
if(this.options.scaleX){
d.left=this.originalLeft-_5c+"px";
}
}else{
if(this.options.scaleY){
d.top=-_5b+"px";
}
if(this.options.scaleX){
d.left=-_5c+"px";
}
}
}
this.element.setStyle(d);
}});
Effect.Highlight=Class.create(Effect.Base,{initialize:function(_5d){
this.element=$(_5d);
if(!this.element){
throw (Effect._elementDoesNotExistError);
}
var _5e=Object.extend({startcolor:"#ffff99"},arguments[1]||{});
this.start(_5e);
},setup:function(){
if(this.element.getStyle("display")=="none"){
this.cancel();
return;
}
this.oldStyle={};
if(!this.options.keepBackgroundImage){
this.oldStyle.backgroundImage=this.element.getStyle("background-image");
this.element.setStyle({backgroundImage:"none"});
}
if(!this.options.endcolor){
this.options.endcolor=this.element.getStyle("background-color").parseColor("#ffffff");
}
if(!this.options.restorecolor){
this.options.restorecolor=this.element.getStyle("background-color");
}
this._base=$R(0,2).map(function(i){
return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16);
}.bind(this));
this._delta=$R(0,2).map(function(i){
return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i];
}.bind(this));
},update:function(_61){
this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(m,v,i){
return m+((this._base[i]+(this._delta[i]*_61)).round().toColorPart());
}.bind(this))});
},finish:function(){
this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));
}});
Effect.ScrollTo=function(_65){
var _66=arguments[1]||{},_67=document.viewport.getScrollOffsets(),_68=$(_65).cumulativeOffset(),max=(window.height||document.body.scrollHeight)-document.viewport.getHeight();
if(_66.offset){
_68[1]+=_66.offset;
}
return new Effect.Tween(null,_67.top,_68[1]>max?max:_68[1],_66,function(p){
scrollTo(_67.left,p.round());
});
};
Effect.Fade=function(_6b){
_6b=$(_6b);
var _6c=_6b.getInlineOpacity();
var _6d=Object.extend({from:_6b.getOpacity()||1,to:0,afterFinishInternal:function(_6e){
if(_6e.options.to!=0){
return;
}
_6e.element.hide().setStyle({opacity:_6c});
}},arguments[1]||{});
return new Effect.Opacity(_6b,_6d);
};
Effect.Appear=function(_6f){
_6f=$(_6f);
var _70=Object.extend({from:(_6f.getStyle("display")=="none"?0:_6f.getOpacity()||0),to:1,afterFinishInternal:function(_71){
_71.element.forceRerendering();
},beforeSetup:function(_72){
_72.element.setOpacity(_72.options.from).show();
}},arguments[1]||{});
return new Effect.Opacity(_6f,_70);
};
Effect.Puff=function(_73){
_73=$(_73);
var _74={opacity:_73.getInlineOpacity(),position:_73.getStyle("position"),top:_73.style.top,left:_73.style.left,width:_73.style.width,height:_73.style.height};
return new Effect.Parallel([new Effect.Scale(_73,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(_73,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(_75){
Position.absolutize(_75.effects[0].element);
},afterFinishInternal:function(_76){
_76.effects[0].element.hide().setStyle(_74);
}},arguments[1]||{}));
};
Effect.BlindUp=function(_77){
_77=$(_77);
_77.makeClipping();
return new Effect.Scale(_77,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(_78){
_78.element.hide().undoClipping();
}},arguments[1]||{}));
};
Effect.BlindDown=function(_79){
_79=$(_79);
var _7a=_79.getDimensions();
return new Effect.Scale(_79,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:_7a.height,originalWidth:_7a.width},restoreAfterFinish:true,afterSetup:function(_7b){
_7b.element.makeClipping().setStyle({height:"0px"}).show();
},afterFinishInternal:function(_7c){
_7c.element.undoClipping();
}},arguments[1]||{}));
};
Effect.SwitchOff=function(_7d){
_7d=$(_7d);
var _7e=_7d.getInlineOpacity();
return new Effect.Appear(_7d,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(_7f){
new Effect.Scale(_7f.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(_80){
_80.element.makePositioned().makeClipping();
},afterFinishInternal:function(_81){
_81.element.hide().undoClipping().undoPositioned().setStyle({opacity:_7e});
}});
}},arguments[1]||{}));
};
Effect.DropOut=function(_82){
_82=$(_82);
var _83={top:_82.getStyle("top"),left:_82.getStyle("left"),opacity:_82.getInlineOpacity()};
return new Effect.Parallel([new Effect.Move(_82,{x:0,y:100,sync:true}),new Effect.Opacity(_82,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(_84){
_84.effects[0].element.makePositioned();
},afterFinishInternal:function(_85){
_85.effects[0].element.hide().undoPositioned().setStyle(_83);
}},arguments[1]||{}));
};
Effect.Shake=function(_86){
_86=$(_86);
var _87=Object.extend({distance:20,duration:0.5},arguments[1]||{});
var _88=parseFloat(_87.distance);
var _89=parseFloat(_87.duration)/10;
var _8a={top:_86.getStyle("top"),left:_86.getStyle("left")};
return new Effect.Move(_86,{x:_88,y:0,duration:_89,afterFinishInternal:function(_8b){
new Effect.Move(_8b.element,{x:-_88*2,y:0,duration:_89*2,afterFinishInternal:function(_8c){
new Effect.Move(_8c.element,{x:_88*2,y:0,duration:_89*2,afterFinishInternal:function(_8d){
new Effect.Move(_8d.element,{x:-_88*2,y:0,duration:_89*2,afterFinishInternal:function(_8e){
new Effect.Move(_8e.element,{x:_88*2,y:0,duration:_89*2,afterFinishInternal:function(_8f){
new Effect.Move(_8f.element,{x:-_88,y:0,duration:_89,afterFinishInternal:function(_90){
_90.element.undoPositioned().setStyle(_8a);
}});
}});
}});
}});
}});
}});
};
Effect.SlideDown=function(_91){
_91=$(_91).cleanWhitespace();
var _92=_91.down().getStyle("bottom");
var _93=_91.getDimensions();
return new Effect.Scale(_91,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:_93.height,originalWidth:_93.width},restoreAfterFinish:true,afterSetup:function(_94){
_94.element.makePositioned();
_94.element.down().makePositioned();
if(window.opera){
_94.element.setStyle({top:""});
}
_94.element.makeClipping().setStyle({height:"0px"}).show();
},afterUpdateInternal:function(_95){
_95.element.down().setStyle({bottom:(_95.dims[0]-_95.element.clientHeight)+"px"});
},afterFinishInternal:function(_96){
_96.element.undoClipping().undoPositioned();
_96.element.down().undoPositioned().setStyle({bottom:_92});
}},arguments[1]||{}));
};
Effect.SlideUp=function(_97){
_97=$(_97).cleanWhitespace();
var _98=_97.down().getStyle("bottom");
var _99=_97.getDimensions();
return new Effect.Scale(_97,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,scaleMode:{originalHeight:_99.height,originalWidth:_99.width},restoreAfterFinish:true,afterSetup:function(_9a){
_9a.element.makePositioned();
_9a.element.down().makePositioned();
if(window.opera){
_9a.element.setStyle({top:""});
}
_9a.element.makeClipping().show();
},afterUpdateInternal:function(_9b){
_9b.element.down().setStyle({bottom:(_9b.dims[0]-_9b.element.clientHeight)+"px"});
},afterFinishInternal:function(_9c){
_9c.element.hide().undoClipping().undoPositioned();
_9c.element.down().undoPositioned().setStyle({bottom:_98});
}},arguments[1]||{}));
};
Effect.Squish=function(_9d){
return new Effect.Scale(_9d,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(_9e){
_9e.element.makeClipping();
},afterFinishInternal:function(_9f){
_9f.element.hide().undoClipping();
}});
};
Effect.Grow=function(_a0){
_a0=$(_a0);
var _a1=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});
var _a2={top:_a0.style.top,left:_a0.style.left,height:_a0.style.height,width:_a0.style.width,opacity:_a0.getInlineOpacity()};
var _a3=_a0.getDimensions();
var _a4,_a5;
var _a6,_a7;
switch(_a1.direction){
case "top-left":
_a4=_a5=_a6=_a7=0;
break;
case "top-right":
_a4=_a3.width;
_a5=_a7=0;
_a6=-_a3.width;
break;
case "bottom-left":
_a4=_a6=0;
_a5=_a3.height;
_a7=-_a3.height;
break;
case "bottom-right":
_a4=_a3.width;
_a5=_a3.height;
_a6=-_a3.width;
_a7=-_a3.height;
break;
case "center":
_a4=_a3.width/2;
_a5=_a3.height/2;
_a6=-_a3.width/2;
_a7=-_a3.height/2;
break;
}
return new Effect.Move(_a0,{x:_a4,y:_a5,duration:0.01,beforeSetup:function(_a8){
_a8.element.hide().makeClipping().makePositioned();
},afterFinishInternal:function(_a9){
new Effect.Parallel([new Effect.Opacity(_a9.element,{sync:true,to:1,from:0,transition:_a1.opacityTransition}),new Effect.Move(_a9.element,{x:_a6,y:_a7,sync:true,transition:_a1.moveTransition}),new Effect.Scale(_a9.element,100,{scaleMode:{originalHeight:_a3.height,originalWidth:_a3.width},sync:true,scaleFrom:window.opera?1:0,transition:_a1.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(_aa){
_aa.effects[0].element.setStyle({height:"0px"}).show();
},afterFinishInternal:function(_ab){
_ab.effects[0].element.undoClipping().undoPositioned().setStyle(_a2);
}},_a1));
}});
};
Effect.Shrink=function(_ac){
_ac=$(_ac);
var _ad=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});
var _ae={top:_ac.style.top,left:_ac.style.left,height:_ac.style.height,width:_ac.style.width,opacity:_ac.getInlineOpacity()};
var _af=_ac.getDimensions();
var _b0,_b1;
switch(_ad.direction){
case "top-left":
_b0=_b1=0;
break;
case "top-right":
_b0=_af.width;
_b1=0;
break;
case "bottom-left":
_b0=0;
_b1=_af.height;
break;
case "bottom-right":
_b0=_af.width;
_b1=_af.height;
break;
case "center":
_b0=_af.width/2;
_b1=_af.height/2;
break;
}
return new Effect.Parallel([new Effect.Opacity(_ac,{sync:true,to:0,from:1,transition:_ad.opacityTransition}),new Effect.Scale(_ac,window.opera?1:0,{sync:true,transition:_ad.scaleTransition,restoreAfterFinish:true}),new Effect.Move(_ac,{x:_b0,y:_b1,sync:true,transition:_ad.moveTransition})],Object.extend({beforeStartInternal:function(_b2){
_b2.effects[0].element.makePositioned().makeClipping();
},afterFinishInternal:function(_b3){
_b3.effects[0].element.hide().undoClipping().undoPositioned().setStyle(_ae);
}},_ad));
};
Effect.Pulsate=function(_b4){
_b4=$(_b4);
var _b5=arguments[1]||{};
var _b6=_b4.getInlineOpacity();
var _b7=_b5.transition||Effect.Transitions.sinoidal;
var _b8=function(pos){
return _b7(1-Effect.Transitions.pulse(pos,_b5.pulses));
};
_b8.bind(_b7);
return new Effect.Opacity(_b4,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(_ba){
_ba.element.setStyle({opacity:_b6});
}},_b5),{transition:_b8}));
};
Effect.Fold=function(_bb){
_bb=$(_bb);
var _bc={top:_bb.style.top,left:_bb.style.left,width:_bb.style.width,height:_bb.style.height};
_bb.makeClipping();
return new Effect.Scale(_bb,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(_bd){
new Effect.Scale(_bb,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(_be){
_be.element.hide().undoClipping().setStyle(_bc);
}});
}},arguments[1]||{}));
};
Effect.Morph=Class.create(Effect.Base,{initialize:function(_bf){
this.element=$(_bf);
if(!this.element){
throw (Effect._elementDoesNotExistError);
}
var _c0=Object.extend({style:{}},arguments[1]||{});
if(!Object.isString(_c0.style)){
this.style=$H(_c0.style);
}else{
if(_c0.style.include(":")){
this.style=_c0.style.parseStyle();
}else{
this.element.addClassName(_c0.style);
this.style=$H(this.element.getStyles());
this.element.removeClassName(_c0.style);
var css=this.element.getStyles();
this.style=this.style.reject(function(_c2){
return _c2.value==css[_c2.key];
});
_c0.afterFinishInternal=function(_c3){
_c3.element.addClassName(_c3.options.style);
_c3.transforms.each(function(_c4){
_c3.element.style[_c4.style]="";
});
};
}
}
this.start(_c0);
},setup:function(){
function _c5(_c6){
if(!_c6||["rgba(0, 0, 0, 0)","transparent"].include(_c6)){
_c6="#ffffff";
}
_c6=_c6.parseColor();
return $R(0,2).map(function(i){
return parseInt(_c6.slice(i*2+1,i*2+3),16);
});
};
this.transforms=this.style.map(function(_c8){
var _c9=_c8[0],_ca=_c8[1],_cb=null;
if(_ca.parseColor("#zzzzzz")!="#zzzzzz"){
_ca=_ca.parseColor();
_cb="color";
}else{
if(_c9=="opacity"){
_ca=parseFloat(_ca);
if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){
this.element.setStyle({zoom:1});
}
}else{
if(Element.CSS_LENGTH.test(_ca)){
var _cc=_ca.match(/^([\+\-]?[0-9\.]+)(.*)$/);
_ca=parseFloat(_cc[1]);
_cb=(_cc.length==3)?_cc[2]:null;
}
}
}
var _cd=this.element.getStyle(_c9);
return {style:_c9.camelize(),originalValue:_cb=="color"?_c5(_cd):parseFloat(_cd||0),targetValue:_cb=="color"?_c5(_ca):_ca,unit:_cb};
}.bind(this)).reject(function(_ce){
return ((_ce.originalValue==_ce.targetValue)||(_ce.unit!="color"&&(isNaN(_ce.originalValue)||isNaN(_ce.targetValue))));
});
},update:function(_cf){
var _d0={},_d1,i=this.transforms.length;
while(i--){
_d0[(_d1=this.transforms[i]).style]=_d1.unit=="color"?"#"+(Math.round(_d1.originalValue[0]+(_d1.targetValue[0]-_d1.originalValue[0])*_cf)).toColorPart()+(Math.round(_d1.originalValue[1]+(_d1.targetValue[1]-_d1.originalValue[1])*_cf)).toColorPart()+(Math.round(_d1.originalValue[2]+(_d1.targetValue[2]-_d1.originalValue[2])*_cf)).toColorPart():(_d1.originalValue+(_d1.targetValue-_d1.originalValue)*_cf).toFixed(3)+(_d1.unit===null?"":_d1.unit);
}
this.element.setStyle(_d0,true);
}});
Effect.Transform=Class.create({initialize:function(_d3){
this.tracks=[];
this.options=arguments[1]||{};
this.addTracks(_d3);
},addTracks:function(_d4){
_d4.each(function(_d5){
_d5=$H(_d5);
var _d6=_d5.values().first();
this.tracks.push($H({ids:_d5.keys().first(),effect:Effect.Morph,options:{style:_d6}}));
}.bind(this));
return this;
},play:function(){
return new Effect.Parallel(this.tracks.map(function(_d7){
var ids=_d7.get("ids"),_d9=_d7.get("effect"),_da=_d7.get("options");
var _db=[$(ids)||$$(ids)].flatten();
return _db.map(function(e){
return new _d9(e,Object.extend({sync:true},_da));
});
}).flatten(),this.options);
}});
Element.CSS_PROPERTIES=$w("backgroundColor backgroundPosition borderBottomColor borderBottomStyle "+"borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth "+"borderRightColor borderRightStyle borderRightWidth borderSpacing "+"borderTopColor borderTopStyle borderTopWidth bottom clip color "+"fontSize fontWeight height left letterSpacing lineHeight "+"marginBottom marginLeft marginRight marginTop markerOffset maxHeight "+"maxWidth minHeight minWidth opacity outlineColor outlineOffset "+"outlineWidth paddingBottom paddingLeft paddingRight paddingTop "+"right textIndent top width wordSpacing zIndex");
Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;
String.__parseStyleElement=document.createElement("div");
String.prototype.parseStyle=function(){
var _dd,_de=$H();
if(Prototype.Browser.WebKit){
_dd=new Element("div",{style:this}).style;
}else{
String.__parseStyleElement.innerHTML="<div style=\""+this+"\"></div>";
_dd=String.__parseStyleElement.childNodes[0].style;
}
Element.CSS_PROPERTIES.each(function(_df){
if(_dd[_df]){
_de.set(_df,_dd[_df]);
}
});
if(Prototype.Browser.IE&&this.include("opacity")){
_de.set("opacity",this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);
}
return _de;
};
if(document.defaultView&&document.defaultView.getComputedStyle){
Element.getStyles=function(_e0){
var css=document.defaultView.getComputedStyle($(_e0),null);
return Element.CSS_PROPERTIES.inject({},function(_e2,_e3){
_e2[_e3]=css[_e3];
return _e2;
});
};
}else{
Element.getStyles=function(_e4){
_e4=$(_e4);
var css=_e4.currentStyle,_e6;
_e6=Element.CSS_PROPERTIES.inject({},function(_e7,_e8){
_e7[_e8]=css[_e8];
return _e7;
});
if(!_e6.opacity){
_e6.opacity=_e4.getOpacity();
}
return _e6;
};
}
Effect.Methods={morph:function(_e9,_ea){
_e9=$(_e9);
new Effect.Morph(_e9,Object.extend({style:_ea},arguments[2]||{}));
return _e9;
},visualEffect:function(_eb,_ec,_ed){
_eb=$(_eb);
var s=_ec.dasherize().camelize(),_ef=s.charAt(0).toUpperCase()+s.substring(1);
new Effect[_ef](_eb,_ed);
return _eb;
},highlight:function(_f0,_f1){
_f0=$(_f0);
new Effect.Highlight(_f0,_f1);
return _f0;
}};
$w("fade appear grow shrink fold blindUp blindDown slideUp slideDown "+"pulsate shake puff squish switchOff dropOut").each(function(_f2){
Effect.Methods[_f2]=function(_f3,_f4){
_f3=$(_f3);
Effect[_f2.charAt(0).toUpperCase()+_f2.substring(1)](_f3,_f4);
return _f3;
};
});
$w("getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles").each(function(f){
Effect.Methods[f]=Element[f];
});
Element.addMethods(Effect.Methods);



// Based on X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xNN4,xUA=navigator.userAgent.toLowerCase();
if(window.opera){
  var i=xUA.indexOf('opera');
  if(i!=-1){
    var v=parseInt(xUA.charAt(i+6));
    xOp7Up=v>=7;
    xOp6Dn=v<7;
  }
}
else if(navigator.vendor!='KDE' && document.all && xUA.indexOf('msie')!=-1){
  xIE4Up=parseFloat(navigator.appVersion)>=4;
  xIE4=xUA.indexOf('msie 4')!=-1;
  xIE5=xUA.indexOf('msie 5')!=-1;
}
else if(document.layers){xNN4=true;}
xMac=xUA.indexOf('mac')!=-1;

function xAddEventListener(e,eT,eL,cap)
{
  if(!(e=xGetElementById(e))) return;
  eT=eT.toLowerCase();
  if((!xIE4Up && !xOp7Up) && e==window) {
    if(eT=='resize') { window.xPCW=xClientWidth(); window.xPCH=xClientHeight(); window.xREL=eL; xResizeEvent(); return; }
    if(eT=='scroll') { window.xPSL=xScrollLeft(); window.xPST=xScrollTop(); window.xSEL=eL; xScrollEvent(); return; }
  }
  var eh='e.on'+eT+'=eL';
  if(e.addEventListener) e.addEventListener(eT,eL,cap);
  else if(e.attachEvent) e.attachEvent('on'+eT,eL);
  else eval(eh);
}
// called only from the above
function xResizeEvent()
{
  if (window.xREL) setTimeout('xResizeEvent()', 250);
  var cw = xClientWidth(), ch = xClientHeight();
  if (window.xPCW != cw || window.xPCH != ch) { window.xPCW = cw; window.xPCH = ch; if (window.xREL) window.xREL(); }
}
function xScrollEvent()
{
  if (window.xSEL) setTimeout('xScrollEvent()', 250);
  var sl = xScrollLeft(), st = xScrollTop();
  if (window.xPSL != sl || window.xPST != st) { window.xPSL = sl; window.xPST = st; if (window.xSEL) window.xSEL(); }
}

function xAppendChild(oParent, oChild)
{
  if (oParent.appendChild) return oParent.appendChild(oChild);
  else return null;
}

function xClientHeight()
{
  var h=0;
  if(xOp6Dn) h=window.innerHeight;
  else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientHeight)
    h=document.documentElement.clientHeight;
  else if(document.body && document.body.clientHeight)
    h=document.body.clientHeight;
  else if(xDef(window.innerWidth,window.innerHeight,document.width)) {
    h=window.innerHeight;
    if(document.width>window.innerWidth) h-=16;
  }
  return h;
}

function xClientWidth()
{
  var w=0;
  if(xOp6Dn) w=window.innerWidth;
  else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientWidth)
    w=document.documentElement.clientWidth;
  else if(document.body && document.body.clientWidth)
    w=document.body.clientWidth;
  else if(xDef(window.innerWidth,window.innerHeight,document.height)) {
    w=window.innerWidth;
    if(document.height>window.innerHeight) w-=16;
  }
  return w;
}

function xClip(e,t,r,b,l)
{
  if(!(e=xGetElementById(e))) return;
  if(e.style) {
    if (xNum(l)) e.style.clip='rect('+t+'px '+r+'px '+b+'px '+l+'px)';
    else e.style.clip='rect(0 '+parseInt(e.style.width)+'px '+parseInt(e.style.height)+'px 0)';
  }
}

function xCreateElement(sTag)
{
  if (document.createElement) return document.createElement(sTag);
  else return null;
}

function xDef()
{
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
  return true;
}

function xDeleteCookie(name, path)
{
  if (xGetCookie(name)) {
    document.cookie = name + "=" +
                    "; path=" + ((!path) ? "/" : path) +
                    "; expires=" + new Date(0).toGMTString();
  }
}

function xDisableDrag(id, last)
{
  if (!window._xDrgMgr) return;
  var ele = xGetElementById(id);
  ele.xDraggable = false;
  ele.xODS = null;
  ele.xOD = null;
  ele.xODE = null;
  xRemoveEventListener(ele, 'mousedown', _xOMD, false);
  if (_xDrgMgr.mm && last) {
    _xDrgMgr.mm = false;
    xRemoveEventListener(document, 'mousemove', _xOMM, false);
  }
}

function xDisplay(e,s)
{
  if(!(e=xGetElementById(e))) return null;
  if(e.style && xDef(e.style.display)) {
    if (xStr(s)) e.style.display = s;
    return e.style.display;
  }
  return null;
}

//// Private Data
var _xDrgMgr = {ele:null, mm:false};
//// Public Functions
function xEnableDrag(id,fS,fD,fE)
{
  var ele = xGetElementById(id);
  ele.xDraggable = true;
  ele.xODS = fS;
  ele.xOD = fD;
  ele.xODE = fE;
  xAddEventListener(ele, 'mousedown', _xOMD, false);
  if (!_xDrgMgr.mm) {
    _xDrgMgr.mm = true;
    xAddEventListener(document, 'mousemove', _xOMM, false);
  }
}
//// Private Event Listeners
function _xOMD(e) // drag start
{
  var evt = new xEvent(e);
  var ele = evt.target;
  while(ele && !ele.xDraggable) {
    ele = xParent(ele);
  }
  if (ele) {
    xPreventDefault(e);
    ele.xDPX = evt.pageX;
    ele.xDPY = evt.pageY;
    _xDrgMgr.ele = ele;
    xAddEventListener(document, 'mouseup', _xOMU, false);
    if (ele.xODS) {
      ele.xODS(ele, evt.pageX, evt.pageY);
    }
  }
}
function _xOMM(e) // drag
{
  var evt = new xEvent(e);
  if (_xDrgMgr.ele) {
    xPreventDefault(e);
    var ele = _xDrgMgr.ele;
    var dx = evt.pageX - ele.xDPX;
    var dy = evt.pageY - ele.xDPY;
    ele.xDPX = evt.pageX;
    ele.xDPY = evt.pageY;
    if (ele.xOD) {
      ele.xOD(ele, dx, dy);
    }
    else {
      xMoveTo(ele, xLeft(ele) + dx, xTop(ele) + dy);
    }
  }  
}
function _xOMU(e) // drag end
{
  if (_xDrgMgr.ele) {
    xPreventDefault(e);
    xRemoveEventListener(document, 'mouseup', _xOMU, false);
    if (_xDrgMgr.ele.xODE) {
      var evt = new xEvent(e);
      _xDrgMgr.ele.xODE(_xDrgMgr.ele, evt.pageX, evt.pageY);
    }
    _xDrgMgr.ele = null;
  }  
}

function xEvent(evt) // object prototype
{
  var e = evt || window.event;
  if(!e) return;
  if(e.type) this.type = e.type;
  if(e.target) this.target = e.target;
  else if(e.srcElement) this.target = e.srcElement;

  // Section B
  if (e.relatedTarget) this.relatedTarget = e.relatedTarget;
  else if (e.type == 'mouseover' && e.fromElement) this.relatedTarget = e.fromElement;
  else if (e.type == 'mouseout') this.relatedTarget = e.toElement;
  // End Section B

  if(xOp6Dn) { this.pageX = e.clientX; this.pageY = e.clientY; }
  else if(xDef(e.pageX,e.pageY)) { this.pageX = e.pageX; this.pageY = e.pageY; }
  else if(xDef(e.clientX,e.clientY)) { this.pageX = e.clientX + xScrollLeft(); this.pageY = e.clientY + xScrollTop(); }

  // Section A
  if (xDef(e.offsetX,e.offsetY)) {
    this.offsetX = e.offsetX;
    this.offsetY = e.offsetY;
  }
  else if (xDef(e.layerX,e.layerY)) {
    this.offsetX = e.layerX;
    this.offsetY = e.layerY;
  }
  else {
    this.offsetX = this.pageX - xPageX(this.target);
    this.offsetY = this.pageY - xPageY(this.target);
  }
  // End Section A
  
  if (e.keyCode) { this.keyCode = e.keyCode; } // for moz/fb, if keyCode==0 use which
  else if (xDef(e.which) && e.type.indexOf('key')!=-1) { this.keyCode = e.which; }

  this.shiftKey = e.shiftKey;
  this.ctrlKey = e.ctrlKey;
  this.altKey = e.altKey;
}


function xFirstChild(e, t)
{
  var c = e ? e.firstChild : null;
  if (t) while (c && c.nodeName != t) { c = c.nextSibling; }
  else while (c && c.nodeType != 1) { c = c.nextSibling; }
  return c;
}

function xGetComputedStyle(oEle, sProp, bInt)
{
  var s, p = 'undefined';
  var dv = document.defaultView;
  if(dv && dv.getComputedStyle){
    s = dv.getComputedStyle(oEle,'');
    if (s) p = s.getPropertyValue(sProp);
  }
  else if(oEle.currentStyle) {
    // convert css property name to object property name for IE
    var a = sProp.split('-');
    sProp = a[0];
    for (var i=1; i<a.length; ++i) {
      c = a[i].charAt(0);
      sProp += a[i].replace(c, c.toUpperCase());
    }   
    p = oEle.currentStyle[sProp];
  }
  else return null;
  return bInt ? (parseInt(p) || 0) : p;
}

function xGetCookie(name)
{
  var value=null, search=name+"=";
  if (document.cookie.length > 0) {
    var offset = document.cookie.indexOf(search);
    if (offset != -1) {
      offset += search.length;
      var end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      value = unescape(document.cookie.substring(offset, end));
    }
  }
  return value;
}

function xGetElementById(e)
{
  if(typeof(e)!='string') return e;
  if(document.getElementById) e=document.getElementById(e);
  else if(document.all) e=document.all[e];
  else e=null;
  return e;
}

function xGetElementsByAttribute(sTag, sAtt, sRE, fn)
{
  var a, list, found = new Array(), re = new RegExp(sRE, 'i');
  list = xGetElementsByTagName(sTag);
  for (var i = 0; i < list.length; ++i) {
    a = list[i].getAttribute(sAtt);
    if (!a) {a = list[i][sAtt];}
    if (typeof(a)=='string' && a.search(re) != -1) {
      found[found.length] = list[i];
      if (fn) fn(list[i]);
    }
  }
  return found;
}

function xGetElementsByClassName(c,p,t,f)
{
  var found = new Array();
  var re = new RegExp('\\b'+c+'\\b', 'i');
  var list = xGetElementsByTagName(t, p);
  for (var i = 0; i < list.length; ++i) {
    if (list[i].className && list[i].className.search(re) != -1) {
      found[found.length] = list[i];
      if (f) f(list[i]);
    }
  }
  return found;
}

function xGetElementsByTagName(t,p)
{
  var list = null;
  t = t || '*';
  p = p || document;
  if (xIE4 || xIE5) {
    if (t == '*') list = p.all;
    else list = p.all.tags(t);
  }
  else if (p.getElementsByTagName) list = p.getElementsByTagName(t);
  return list || new Array();
}

function xHasPoint(e,x,y,t,r,b,l)
{
  if (!xNum(t)){t=r=b=l=0;}
  else if (!xNum(r)){r=b=l=t;}
  else if (!xNum(b)){l=r; b=t;}
  var eX = xPageX(e), eY = xPageY(e);
  return (x >= eX + l && x <= eX + xWidth(e) - r &&
          y >= eY + t && y <= eY + xHeight(e) - b );
}

function xHeight(e,h)
{
  if(!(e=xGetElementById(e))) return 0;
  if (xNum(h)) {
    if (h<0) h = 0;
    else h=Math.round(h);
  }
  else h=-1;
  var css=xDef(e.style);
  if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
    h = xClientHeight();
  }
  else if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {
    if(h>=0) {
      var pt=0,pb=0,bt=0,bb=0;
      if (document.compatMode=='CSS1Compat') {
        var gcs = xGetComputedStyle;
        pt=gcs(e,'padding-top',1);
        if (pt !== null) {
          pb=gcs(e,'padding-bottom',1);
          bt=gcs(e,'border-top-width',1);
          bb=gcs(e,'border-bottom-width',1);
        }
        // Should we try this as a last resort?
        // At this point getComputedStyle and currentStyle do not exist.
        else if(xDef(e.offsetHeight,e.style.height)){
          e.style.height=h+'px';
          pt=e.offsetHeight-h;
        }
      }
      h-=(pt+pb+bt+bb);
      if(isNaN(h)||h<0) return;
      else e.style.height=h+'px';
    }
    h=e.offsetHeight;
  }
  else if(css && xDef(e.style.pixelHeight)) {
    if(h>=0) e.style.pixelHeight=h;
    h=e.style.pixelHeight;
  }
  return h;
}

function xHide(e){return xVisibility(e,0);}

function xImgRollSetup(p,s,x)
{
  var ele, id;
  for (var i=3; i<arguments.length; ++i) {
    id = arguments[i];
    if (ele = xGetElementById(id)) {
      ele.xIOU = p + id + x;
      ele.xIOO = new Image();
      ele.xIOO.src = p + id + s + x;
      ele.onmouseout = imgOnMouseout;
      ele.onmouseover = imgOnMouseover;
    }
  }
  function imgOnMouseout(e)
  {
    if (this.xIOU) {
      this.src = this.xIOU;
    }
  }
  function imgOnMouseover(e)
  {
    if (this.xIOO && this.xIOO.complete) {
      this.src = this.xIOO.src;
    }
  }
}

function xInnerHtml(e,h)
{
  if(!(e=xGetElementById(e)) || !xStr(e.innerHTML)) return null;
  var s = e.innerHTML;
  if (xStr(h)) {e.innerHTML = h;}
  return s;
}


function xLeft(e, iX)
{
  if(!(e=xGetElementById(e))) return 0;
  var css=xDef(e.style);
  if (css && xStr(e.style.left)) {
    if(xNum(iX)) e.style.left=iX+'px';
    else {
      iX=parseInt(e.style.left);
      if(isNaN(iX)) iX=0;
    }
  }
  else if(css && xDef(e.style.pixelLeft)) {
    if(xNum(iX)) e.style.pixelLeft=iX;
    else iX=e.style.pixelLeft;
  }
  return iX;
}

function xMoveTo(e,x,y)
{
  xLeft(e,x);
  xTop(e,y);
}

function xName(e)
{
  if (!e) return e;
  else if (e.id && e.id != "") return e.id;
  else if (e.name && e.name != "") return e.name;
  else if (e.nodeName && e.nodeName != "") return e.nodeName;
  else if (e.tagName && e.tagName != "") return e.tagName;
  else return e;
}

function xNextSib(e,t)
{
  var s = e ? e.nextSibling : null;
  if (t) while (s && s.nodeName != t) { s = s.nextSibling; }
  else while (s && s.nodeType != 1) { s = s.nextSibling; }
  return s;
}

function xNum()
{
  for(var i=0; i<arguments.length; ++i){if(isNaN(arguments[i]) || typeof(arguments[i])!='number') return false;}
  return true;
}

function xOffsetLeft(e)
{
  if (!(e=xGetElementById(e))) return 0;
  if (xDef(e.offsetLeft)) return e.offsetLeft;
  else return 0;
}

function xOffsetTop(e)
{
  if (!(e=xGetElementById(e))) return 0;
  if (xDef(e.offsetTop)) return e.offsetTop;
  else return 0;
}

function xPad(s,len,c,left)
{
  if(typeof s != 'string') s=s+'';
  if(left) {for(var i=s.length; i<len; ++i) s=c+s;}
  else {for (var i=s.length; i<len; ++i) s+=c;}
  return s;
}

function xPageX(e)
{
  if (!(e=xGetElementById(e))) return 0;
  var x = 0;
  while (e) {
    if (xDef(e.offsetLeft)) x += e.offsetLeft;
    e = xDef(e.offsetParent) ? e.offsetParent : null;
  }
  return x;
}

function xPageY(e)
{
  if (!(e=xGetElementById(e))) return 0;
  var y = 0;
  while (e) {
    if (xDef(e.offsetTop)) y += e.offsetTop;
    e = xDef(e.offsetParent) ? e.offsetParent : null;
  }
//  if (xOp7Up) return y - document.body.offsetTop; // v3.14, temporary hack for opera bug 130324 (reported 1nov03)
  return y;
}

function xParent(e, bNode)
{
  if (!(e=xGetElementById(e))) return null;
  var p=null;
  if (!bNode && xDef(e.offsetParent)) p=e.offsetParent;
  else if (xDef(e.parentNode)) p=e.parentNode;
  else if (xDef(e.parentElement)) p=e.parentElement;
  return p;
}

function xPreventDefault(e)
{
  if (e && e.preventDefault) e.preventDefault();
  else if (window.event) window.event.returnValue = false;
}

function xPrevSib(e,t)
{
  var s = e ? e.previousSibling : null;
  if (t) while(s && s.nodeName != t) {s=s.previousSibling;}
  else while(s && s.nodeType != 1) {s=s.previousSibling;}
  return s;
}

function xRemoveEventListener(e,eT,eL,cap)
{
  if(!(e=xGetElementById(e))) return;
  eT=eT.toLowerCase();
  if((!xIE4Up && !xOp7Up) && e==window) {
    if(eT=='resize') { window.xREL=null; return; }
    if(eT=='scroll') { window.xSEL=null; return; }
  }
  var eh='e.on'+eT+'=null';
  if(e.removeEventListener) e.removeEventListener(eT,eL,cap);
  else if(e.detachEvent) e.detachEvent('on'+eT,eL);
  else eval(eh);
}

function xResizeTo(e,w,h)
{
  xWidth(e,w);
  xHeight(e,h);
}

function xScrollLeft(e, bWin)
{
  var offset=0;
  if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
    var w = window;
    if (bWin && e) w = e;
    if(w.document.documentElement && w.document.documentElement.scrollLeft) offset=w.document.documentElement.scrollLeft;
    else if(w.document.body && xDef(w.document.body.scrollLeft)) offset=w.document.body.scrollLeft;
  }
  else {
    e = xGetElementById(e);
    if (e && xNum(e.scrollLeft)) offset = e.scrollLeft;
  }
  return offset;
}

function xScrollTop(e, bWin)
{
  var offset=0;
  if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
    var w = window;
    if (bWin && e) w = e;
    if(w.document.documentElement && w.document.documentElement.scrollTop) offset=w.document.documentElement.scrollTop;
    else if(w.document.body && xDef(w.document.body.scrollTop)) offset=w.document.body.scrollTop;
  }
  else {
    e = xGetElementById(e);
    if (e && xNum(e.scrollTop)) offset = e.scrollTop;
  }
  return offset;
}

function xSetCookie(name, value, expire, path)
{
  document.cookie = name + "=" + escape(value) +
                    ((!expire) ? "" : ("; expires=" + expire.toGMTString())) +
                    "; path=" + ((!path) ? "/" : path);
}

function xShow(e) {return xVisibility(e,1);}

function xStopPropagation(evt)
{
  if (evt && evt.stopPropagation) evt.stopPropagation();
  else if (window.event) window.event.cancelBubble = true;
}

function xStr(s)
{
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])!='string') return false;}
  return true;
}

function xTop(e, iY)
{
  if(!(e=xGetElementById(e))) return 0;
  var css=xDef(e.style);
  if(css && xStr(e.style.top)) {
    if(xNum(iY)) e.style.top=iY+'px';
    else {
      iY=parseInt(e.style.top);
      if(isNaN(iY)) iY=0;
    }
  }
  else if(css && xDef(e.style.pixelTop)) {
    if(xNum(iY)) e.style.pixelTop=iY;
    else iY=e.style.pixelTop;
  }
  return iY;
}

function xTriStateImage(idOut, urlOver, urlDown, fnUp) // Object Prototype
{
  var img;
  // Downgrade Detection
  if (typeof Image != 'undefined' && document.getElementById) {
    img = document.getElementById(idOut);
    if (img) {
      // Constructor Code
      var urlOut = img.src;
      var i = new Image();
      i.src = urlOver;
      i = new Image();
      i.src = urlDown;
      // Event Listeners (closure)
      img.onmouseover = function()
      {
        this.src = urlOver;
      };
      img.onmouseout = function()
      {
        this.src = urlOut;
      };
      img.onmousedown = function()
      {
        this.src = urlDown;
      };
      img.onmouseup = function()
      {
        this.src = urlOver;
        if (fnUp) {
          fnUp();
        }
      };
    }
  }
  // Destructor Method
  this.onunload = function()
  {
    if (xIE4Up && img) { // Remove any circular references for IE
      img.onmouseover = img.onmouseout = img.onmousedown = null;
      img = null;
    }
  };    
}

var xVersion = "4.0";

function xVisibility(e, bShow)
{
  if(!(e=xGetElementById(e))) return null;
  if(e.style && xDef(e.style.visibility)) {
    if (xDef(bShow)) e.style.visibility = bShow ? 'visible' : 'hidden';
    return e.style.visibility;
  }
  return null;
}

function xWalkEleTree(n,f,d,l,b)
{
  if (typeof l == 'undefined') l = 0;
  if (typeof b == 'undefined') b = 0;
  var v = f(n,l,b,d);
  if (!v) return 0;
  if (v == 1) {
    for (var c = n.firstChild; c; c = c.nextSibling) {
      if (c.nodeType == 1) {
        if (!l) ++b;
        if (!xWalkEleTree(c,f,d,l+1,b)) return 0;
      }
    }
  }
  return 1;
}

function xWalkTree(n, f)
{
  f(n);
  for (var c = n.firstChild; c; c = c.nextSibling) {
    if (c.nodeType == 1) xWalkTree(c, f);
  }
}

function xWidth(e,w)
{
  if(!(e=xGetElementById(e))) return 0;
  if (xNum(w)) {
    if (w<0) w = 0;
    else w=Math.round(w);
  }
  else w=-1;
  var css=xDef(e.style);
  if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
    w = xClientWidth();
  }
  else if(css && xDef(e.offsetWidth) && xStr(e.style.width)) {
    if(w>=0) {
      var pl=0,pr=0,bl=0,br=0;
      if (document.compatMode=='CSS1Compat') {
        var gcs = xGetComputedStyle;
        pl=gcs(e,'padding-left',1);
        if (pl !== null) {
          pr=gcs(e,'padding-right',1);
          bl=gcs(e,'border-left-width',1);
          br=gcs(e,'border-right-width',1);
        }
        // Should we try this as a last resort?
        // At this point getComputedStyle and currentStyle do not exist.
        else if(xDef(e.offsetWidth,e.style.width)){
          e.style.width=w+'px';
          pl=e.offsetWidth-w;
        }
      }
      w-=(pl+pr+bl+br);
      if(isNaN(w)||w<0) return;
      else e.style.width=w+'px';
    }
    w=e.offsetWidth;
  }
  else if(css && xDef(e.style.pixelWidth)) {
    if(w>=0) e.style.pixelWidth=w;
    w=e.style.pixelWidth;
  }
  return w;
}

function xZIndex(e,uZ)
{
  if(!(e=xGetElementById(e))) return 0;
  if(e.style && xDef(e.style.zIndex)) {
    if(xNum(uZ)) e.style.zIndex=uZ;
    uZ=parseInt(e.style.zIndex);
  }
  return uZ;
}

// SciVantage additions

function xAddClass(e,cls) {
  if (!(e=xGetElementById(e))) return null;
  var newClassName = e.className + " " + cls;
  e.className = newClassName.replace(new RegExp(" +", "g"), " ");
}

function xRemoveClass(e,cls) {
  if (!(e=xGetElementById(e))) return null;
  var newClassName = e.className.replace(new RegExp(cls, "gi"), "");
  e.className = newClassName.replace(new RegExp(" +", "g"), " ");
}

function xHasClass(e,cls) {
  if (!(e=xGetElementById(e))) return false;
  var classes = e.className.split(" ");
  for (var x in classes) {if (classes[x] === cls) return true;}
  return false;
}

function xGetClasses(e) {
  if (!(e=xGetElementById(e))) return new Array();
  return (e.className.split(" "));
}

function xSendXMLHttpRequest(method, url, callFunc) {
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    req.onreadystatechange = callFunc;
    req.open(method, url, true);
    req.send(null);
    return req;
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req) {
      req.onreadystatechange = callFunc;
      req.open(method, url, true);
      req.send();
      return req;
    }
  }
  return null;
}

// retrieve text of an XML document element
function xGetElementText(local, parentElem, index) {
  var result = parentElem.getElementsByTagName(local)[index];
  if (result) {
    // get text, accounting for possible
    // whitespace (carriage return) text nodes 
    if (result.childNodes.length > 1) {
      return result.childNodes[1].nodeValue;
    } else {
      child = result.firstChild;
      if (child == null) return "";
      return child.nodeValue;
    }
  } else {
    return "";
  }
}


// Flash Player Version Detection - Rev 1.6
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
			//alert("flashVer="+flashVer);
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

       	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
    var str = '';
    if (isIE && isWin && !isOpera)
    {
  		str += '<object ';
  		for (var i in objAttrs)
  			str += i + '="' + objAttrs[i] + '" ';
  		for (var i in params)
  			str += '><param name="' + i + '" value="' + params[i] + '" /> ';
  		str += '></object>';
    } else {
  		str += '<embed ';
  		for (var i in embedAttrs)
  			str += i + '="' + embedAttrs[i] + '" ';
  		str += '> </embed>';
    }

    document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "id":
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

// Major version of Flash required
var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
// Version check based upon the values entered above in "Globals"
var hasRequestedFlashVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

var ErrorObj=Class.create();
ErrorObj.prototype={
	/**
	* constructor - initializes object
	* @param mix - either a string, array of string, or an ErrorObj object
	* @return void
	**/
	initialize:function(errors, identifier) {
		this.errors=[];
		this.className='jsErrors';
		
		if(typeof(errors)=="string") {
			this.errors.push(errors);
		}
		else if(errors instanceof Array) {
			this.errors=errors;
		}
		else if(errors instanceof ErrorObj) {
			this.errors=errors.getErrors();
		}
		else if(errors instanceof Error) {
			this.errors.push(errors.message);
		}
		return;
	},
	/**
	* return the errors in an array
	* @return array - the errors in an array of strings
	**/
	getErrors:function() {
		return this.errors;
	},
	/**
	* display errors on the page
	* @return void
	**/
	display:function() {
		var errorArea=null;
		
		if(this.errors.length < 0) {
			return;
		}
		if(!(errorArea = $("main"))) {
			errorArea=document.createElement("UL");
			errorArea.id='main';
			errorArea.className='errors';
		}
		
		for(var i=0; i< this.errors.length; i++) {
			var error=document.createElement("LI");
			error.innerHTML=this.errors[i];
			error.className=this.className;
			errorArea.appendChild(error);
			$$(".messageContainer")[0].appendChild(errorArea);
		}
	},
	/**
	* Clear all errors set by ErrorObj class
	* @return void
	**/
	clearAll:function() {
		$$("."+this.className).each(function(element) {
			var parent=element.parentNode;
			parent.removeChild(element);
			
			//if no errors at all, remove the parent's parent node
			if(parent.childNodes.length <= 0) {
				parent.parentNode.removeChild(parent);
			}
			return false;
		});
	}
};

var HTML = new Object;
HTML["positive"] = new Object;
HTML["negative"] = new Object;
HTML["zero"] = new Object;
HTML["bidMidAsk"] = new Object;
HTML["positive"]["normal"] = "<span class=\"positive\">*VALUE*</span>";
HTML["positive"]["arrow"] = "<span class=\"positive\">*VALUE*<img src=\"https://www.tradeking.com/Web/Images/Icons/gain.gif\" /></span>";
HTML["positive"]["brackets"] = "<span class=\"positive\">[*VALUE*]</span>";
HTML["negative"]["normal"] = "<span class=\"negative\">*VALUE*</span>";
HTML["negative"]["arrow"] = "<span class=\"negative\">*VALUE*<img src=\"https://www.tradeking.com/Web/Images/Icons/loss.gif\" /></span>";
HTML["negative"]["brackets"] = "<span class=\"negative\">[*VALUE*]</span>";
HTML["zero"]["normal"] = "*VALUE*";
HTML["zero"]["arrow"] = "*VALUE*";
HTML["zero"]["brackets"] = "[*VALUE*]";
HTML["bidMidAsk"]["debit"]="<span class=\"bidMidAsk\">*VALUE*</span><span class=\"creditDebitEven\" id=\"debit\">debit</span>";
HTML["bidMidAsk"]["credit"]="<span class=\"bidMidAsk\">*VALUE*</span><span class=\"creditDebitEven\" id=\"credit\">credit</span>";
HTML["bidMidAsk"]["even"]="<span class=\"bidMidAsk\">*VALUE*</span><span class=\"creditDebitEven\" id=\"even\">even</span>";

HTML["zero"]["sign"] = "*VALUE*";
HTML["positive"]["sign"] = "<span class=\"positive\">+*VALUE*</span>";
HTML["negative"]["sign"] = "<span class=\"negative\">*VALUE*</span>";

var rtTradeQuotes = true;

var FORMAT = new Object;
FORMAT["quoteLast"] = "|2|.|,|3||N/A";
FORMAT["quoteChange"] = "|2|.|,|3||N/A";
FORMAT["quotePctChange"] = "|2|.|,|3|%|N/A";
FORMAT["quoteBid"] = "|2|.|,|3||0.00";
FORMAT["quoteMid"] = "|2|.|,|3||0.00";
FORMAT["quoteAsk"] = "|2|.|,|3||0.00";
FORMAT["quoteVolume"] = "|0|.|,|3||0";
FORMAT["quoteDelta"] = "|2|.|,|3||0";
FORMAT["quoteOpenInterest"] = "|0|.|,|3||0";

var showStateIfNonUS = false;
var hideSSNIfNonUs = false;
var rolloverMenuBesideBox = false;
var showGreencardRegistrationInfo = false;
var showVisaRegistrationInfo = false;


var globalMFA = true;

// turn flash keyboard on/off
var hasGlobalFlashVersion = true;

/* if no firebug */
if (!window.console) {
	window.console = {
		log:function(e){alert(e);}
	}
}

/* scivantage Investor JS lib */
function winPop(url,winName,width,height,scroll,resize,menus){
	w = (typeof width != "undefined") ? width : 750;
	h = (typeof height != "undefined") ? height : 600;
	s = (typeof scroll != "undefined") ? scroll : "yes";
	r = (typeof resize != "undefined") ? resize : "yes";
	m = (typeof resize != "undefined") ? menus : "no";

	window.open(url,winName,"width="+w+",height="+h+",scrollbars="+s+",resizable="+r+",menubar="+m);
	return false;
}

// Enable popup links created by HTML::createLink()
function addPopupLinks(configs) {
	xGetElementsByClassName("popupWindow", null, "A", function(ele) {
		var href = ele.href;
		var eleID = ele.id;
		xAddEventListener(ele, "click", function(evt) {
			var winName = "popupWindow";
			if (typeof configs != "undefined" && typeof configs[eleID] != "undefined") {
				var width = configs[eleID].width;
				var height = configs[eleID].height;
				var scroll = configs[eleID].scroll;
				var resize = configs[eleID].resize;
				var menus = configs[eleID].menus;
			}
			winPop(href, winName, width, height, scroll, resize, menus);
			xPreventDefault(evt);
			xStopPropagation(evt);
		});
	});
}

function toggleElement(id,imgId,imgOn,imgOff,useEmptyStr) {
	if(useEmptyStr == null)
		useEmptyStr = false;

	if(!useEmptyStr){
		if (xDisplay(id, null) != "block") {
			xDisplay(id, "block");
			if(imgOff)
				xGetElementById(imgId).src = imgOff;
		} else {
			xDisplay(id, "none");
			if(imgOn)
				xGetElementById(imgId).src = imgOn;
		}
	}else{
		if (xDisplay(id, null) == "none") {
			xDisplay(id, "");
			if(imgOff)
				xGetElementById(imgId).src = imgOff;
		} else {
			xDisplay(id, "none");
			if(imgOn)
			xGetElementById(imgId).src = imgOn;
		}
	}
}

/**
 * @author		Reginald Mullin <reginald.mullin@scivantage.com>
 * @copyright	Scivantage 9/15/2005
 * @example		toggleElements(['id1','id2','id3'],imgId,imgOn,imgOff)
 * @name		toggleElements
 * @param		array [ids] an array of element ids
 * @param		string [imgId] the id of active/inactive image
 * @param		string [imgOff] the path to inactive image
 * @param		string [imgOn] the path to active image
 */
function toggleElements(ids, imgId, imgOn, imgOff,useEmptyStr)
{
	for ( var i = 0; i < ids.length; i++ )
	{
		toggleElement(ids[i], imgId, imgOn, imgOff,useEmptyStr);
	}
}

function doSubstitutions(originalString, substitutions) {
	if (substitutions.length == 0) return originalString;
	for (var token in substitutions) {
		var replacement = substitutions[token];
		originalString = originalString.replace(new RegExp("\\*" + token + "\\*", "g"), replacement);
	}
	return originalString;
}

function applyPosNegStyle(value, styleName) {
	var subs = new Object;
	subs["VALUE"] = value;
	if (value.match(/^[-]+/)) {
		// negative
		return doSubstitutions(HTML["negative"][styleName], subs);
	}
	if (value != "N/A" && value != "" && parseFloat(value) != 0) {
		// positive
		return doSubstitutions(HTML["positive"][styleName], subs);
	}

	// zero or unformatted
	return doSubstitutions(HTML["zero"][styleName], subs);
}

/**
* append the label debit, credit, or even for positive, netative, 
* or 0 values respectively for given bid, mid, and ask 
* @param string - the value
* @param int - the style name; debit, credit, or zero
* @return string - the HTML value
**/
function applyDebitCreditEven(value, styleName) {
	var subs=new Object;
	subs["VALUE"]=value;
	
	return doSubstitutions(HTML["bidMidAsk"][styleName], subs);
}

// Formats a number based on a format string, which is a pipe-delimited list:
// Item 1: prefix string, e.g. $
// Item 2: number of decimal places, e.g. 3
// Item 3: decimal separator, e.g. .
// Item 4: group separator, e.g. ,
// Item 5: group length, e.g. 3
// Item 6: suffix string, e.g. %
// Item 7: value to display if zero or empty; e.g. N/A
function formatNumber(value, formatStr) {
	if (typeof formatStr != "string") return "ERROR";
	var formatItems = formatStr.split("|");
	if (formatItems.length != 7) return "ERROR";
	var result = "";

	if (typeof value == "string") {
		if (value == "") return formatItems[6];
		if (isNaN(parseFloat(value))) return value;
		value = parseFloat(value);
	}

	var numDecimals = parseInt(formatItems[1]);
	value = value.toFixed(numDecimals);
	if (value == 0) return formatItems[6];

	var valueParts = value.split(".");
	if (valueParts[0].charAt(0) == "-") {
		result += "-";
		valueParts[0] = valueParts[0].substr(1);
	}
	result += formatItems[0];

	var intLength = valueParts[0].length;
	var groupLength = parseInt(formatItems[4]);
	var remainder = intLength % groupLength;
	result += valueParts[0].substr(0, remainder);
	for (var i = remainder; i < intLength; i = i + groupLength) {
		if (i > 0) result += formatItems[3];
		result += valueParts[0].substr(i, groupLength);
	}
	if (valueParts.length == 2)
		result += formatItems[2] + valueParts[1];

	result += formatItems[5];
	return result;
}

// Gets the number of elements for a given checkbox/radio array. If there's only one element,
// it's not an array, but this function will still return 1. Use getFormArrayItem to get an
// individual item.
function getFormArrayCount(element) {
	if (!xDef(element))
		return 0;
	if (element[0]) {
		return element.length;
	}
	return 1;
}

// Gets an individual element of a checkbox/radio array. If there's only one element, it's not
// an array, but this function will get the element itself.
function getFormArrayItem(element, index) {
	if (!xDef(element))
		return null;
	if (element[0]) {
		return element[index];
	}
	return element;
}

function isArray(obj) {return obj instanceof Array || typeof obj == "Array";}
function inArray(obj, val) {for (var x in obj) {if (obj[x] === val) return true;} return false;}

// Get the value of a form field. The element can be either a form field object,
// or an array obtained from form.elements[]. The result will be an array if
// multiple is true (useful for checkbox groups and multi-select boxes)
function getFormVal(element, multiple) {
	if (typeof multiple == "undefined") multiple = false;
	var result = [];
	if (element[0] && !element.tagName) {
		// checkbox or radio array
		for (var i = 0; i < element.length; i++) {
			if (element[i].checked)
				result.push(element[i].value);
		}
	} else switch (element.tagName) {
		case "SELECT":
			if (element.type == "select-multiple") {
				for (var i = 0; i < element.options.length; i++) {
					if (element.options[i].selected)
						result.push(element.options[i].value);
				}
			} else {
				result.push(element.options[element.selectedIndex].value);
			}
			break;
		case "TEXTAREA":
			result.push(element.value);
			break;
		case "INPUT":
			switch (element.type) {
				case "hidden":
				case "text":
				case "password":
					result.push(element.value);
					break;
				case "radio":
				case "checkbox":
					if (element.checked)
						result.push(element.value);
					break;
			}
	}
	if (multiple) return result;
	if (result.length == 0) return null;
	return result[0];
}

// Set the value of a form field. The element can be either a form field object,
// or an array obtained from form.elements[]. The new value may be an array
// (useful for checkbox groups and multi-select boxes)
function setFormVal(element, newVal) {
	var multiple = isArray(newVal);
	if (multiple && newVal.length == 0) {
		multiple = false;
		newVal = "";
	}
	if (element[0] && !element.tagName) {
		// checkbox or radio array
		for (var i = 0; i < element.length; i++) {
			if (multiple) {
				element[i].checked = inArray(newVal, element[i].value);
			}
			else element[i].checked = newVal === element[i].value;
		}
	} else switch (element.tagName) {
		case "SELECT":
			if (element.type == "select-multiple") {
				for (var i = 0; i < element.options.length; i++) {
					if (multiple)
						element.options[i].selected = inArray(newVal, element.options[i].value);
					else element.options[i].selected = newVal === element.options[i].value;
				}
			} else {
				for (var i = 0; i < element.options.length; i++) {
					if ((multiple && inArray(newVal, element.options[i].value))
						|| (!multiple && newVal === element.options[i].value)) {
						element.selectedIndex = i;
						break;
					}
				}
			}
			break;
		case "TEXTAREA":
			if (multiple) element.value = newVal[0];
			else element.value = newVal;
			break;
		case "INPUT":
			switch (element.type) {
				case "hidden":
				case "text":
				case "password":
					if (multiple) element.value = newVal[0];
					else element.value = newVal;
					break;
				case "radio":
				case "checkbox":
					if (multiple)
						element.checked = inArray(newVal, element.value);
					else element.checked = newVal === element.value;
					break;
			}
	}
}

// Given a form element and a parent element, look for a label inside the
// parent element that is attached to the form element
function getLabelForId(formEle, parentEle) {
	var label;
	var labels = xGetElementsByTagName("label", parentEle);
	for (var i = 0; (label = labels[i]); i++) {
		if (label.htmlFor == formEle) return label;
	}
	return false;
}

function isFormElement(element, allowHidden, allowButtons) {
	if (typeof allowHidden == "undefined") allowHidden = false;
	if (typeof allowButtons == "undefined") allowButtons = false;
	if (!xDef(element))
		return false;
	if (element[0]) element = element[0];
	if (element.tagName == "SELECT" || element.tagName == "TEXTAREA")
		return true;
	if (element.tagName == "INPUT") {
		if (element.type == "hidden" && !allowHidden) return false;
		else if ((element.type == "button" || element.type == "submit") && !allowButtons) return false;
		else return true;
	}
	return false;
}

function selectFormField(field, errorsOverride) {
	if (errorsOverride && typeof firstError != "undefined")
		field = firstError;
	var ele = xGetElementById(field);
	if (!ele) return;
	ele.focus();
}

// To make a rollover menu appear when you move the mouse over a target element,
// give the element the class "rolloverTarget" and the ID "rolloverTarget_x",
// where x is a unique ID.
// Then create a menu element (e.g. a UL) and give it the ID "rolloverMenu_x".
function initRollovers() {
	xGetElementsByClassName("rolloverTarget", null, "",
		function(targetEle) {
			// find the associated rollover menu
			var idParts = targetEle.id.split("_");
			var menuEle = xGetElementById("rolloverMenu_" + idParts[1]);
			xAddEventListener(targetEle, "mouseover", getRolloverMoveInFunc(targetEle, menuEle));
			xAddEventListener(targetEle, "mouseout", getRolloverMoveOutFunc(targetEle, menuEle));
			xAddEventListener(menuEle, "mouseover", getRolloverMoveInFunc(targetEle, menuEle));
			xAddEventListener(menuEle, "mouseout", getRolloverMoveOutFunc(targetEle, menuEle));
		}
	);
}

var rolloverTimer;
var visibleRollover;

function getRolloverMoveInFunc(targetEle, menuEle) {
	return function(evt) {
		// stop the timer to hide the old menu, and just hide it now
		if (rolloverTimer)
			clearTimeout(rolloverTimer);
		if (visibleRollover && visibleRollover.id != menuEle.id)
			hideRollover();
		m = (typeof resize != "undefined") ? menus : "no";

		coordX = (rolloverMenuBesideBox) ? xPageX(targetEle)  + xWidth(targetEle) + 2 : xPageX(targetEle);
		coordY = (rolloverMenuBesideBox) ? xPageY(targetEle) : xPageY(targetEle) + xHeight(targetEle) + 2;
		xMoveTo(menuEle, coordX, coordY);
		xDisplay(menuEle, "block");
		visibleRollover = menuEle;
	};
}

function getRolloverMoveOutFunc(targetEle, menuEle) {
	return function(evt) {
		// start a timer to hide the menu
		if (visibleRollover)
			rolloverTimer = setTimeout('hideRollover()', 50);
	};
}

function hideRollover() {
	xDisplay(visibleRollover.id, "none");
}


// If fieldEle is an input field, this will hook things up so that when you press enter in the field,
// it sends a click to submitItem. Or if submitItem is a function, it will call it.
// If you pass cancelItem, it will use it when you press escape.
// If fieldEle is a form, it will apply this behavior to every input field in the form.
function attachDefaultButton(fieldEle, submitItem, cancelItem) {
	var eventFunc = function(evt) {
		myEvent = new xEvent(evt);
		if (myEvent.keyCode == 13 || myEvent.keyCode == 3) {
			xPreventDefault(evt);
			if (typeof submitItem == "function")
				submitItem();
			else submitItem.click();
		} else if (typeof cancelItem != "undefined" && myEvent.keyCode == 27) {
			xPreventDefault(evt);
			if (typeof cancelItem == "function")
				cancelItem();
			else cancelItem.click();
		}
	};

	if (isFormElement(fieldEle)) {
		xAddEventListener(fieldEle, "keypress", eventFunc);
	} else if (fieldEle.tagName == "FORM") {
		var formElements = xGetElementsByTagName("*", fieldEle);
		for (var i = 0; i < formElements.length; i++) {
			if (isFormElement(formElements[i]))
				xAddEventListener(formElements[i], "keypress", eventFunc);
		}
	}
}

function nlToBR(str) {
	return str.replace(/\r\n|\r|\n/g, "<br />");
}

function getFilterCharsFunc(allowedChars, illegalChars) {
	var eventFunc = function(evt) {
		myEvent = new xEvent(evt);
		if (illegalChars == "")
			regex = new RegExp("[^" + allowedChars + "]", "g");
		else if (allowedChars == "")
			regex = new RegExp("[" + allowedChars + "]", "g");
		else return;
		myEvent.target.value = myEvent.target.value.replace(regex, "");
	};

	return eventFunc;
}

function sortForm(sortBy, sortDir, formID) {
	xGetElementById(formID).sortBy.value = sortBy;
	xGetElementById(formID).sortDir.value = sortDir;
	xGetElementById(formID).submit();
}

function removeErrorIndicators(containerID) {
	xGetElementsByClassName("errorField", xGetElementById(containerID), "*",
		function(ele){xRemoveClass(ele, "errorField");}, false);
}

function removeErrorMessages(messageID) {
	if (typeof messageID == "undefined") {
		xGetElementsByClassName("errors", null, "UL",
			function(ele){xDisplay(ele, "none");}, false);
	} else {
		xDisplay(messageID, "none");
	}
}

function reportDownloadTimes() {
	var downloadTimerJSEnd = new Date().getTime();
	var loadTime = downloadTimerJSStart - downloadTimerStart;
	var scriptTime = downloadTimerJSEnd - downloadTimerJSStart;
	var currentURL = escape(location.href);

	var url = "/Modules/Util/downloadTimer.php?loadTime=" + loadTime
		+ "&scriptTime=" + scriptTime + "&currentURL=" + currentURL;
	xSendXMLHttpRequest("GET", url, function(){}); // ignore response
}


var currentHostname = "https://www.tradeking.com";
var isDragDropPage = false;//this should be overridden later by a script in the page itself, if it is a drag-drip page, which affects the position ing of tooltips
var stdEffectDuration = 0.5;

function BrowserDetectLite() {
    var ua = navigator.userAgent.toLowerCase(); 
    var versionMinor = parseFloat(navigator.appVersion);
    if (this.isNS && this.isGecko) {
        this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
	}
	// correct version number for IE4+ 
	else if (this.isIE && this.versionMinor >= 4) {
	        this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
	}
	var versionMajor = parseInt(this.versionMinor,10); 

	return {
	    isIE:   Prototype.Browser.IE,
	    isOpera:  Prototype.Browser.Opera,
	    isWebKit: Prototype.Browser.WebKit,
	    isGecko:  Prototype.Browser.Gecko, 
	    isMobileSafari: Prototype.Browser.MobileSafari,
	    isMozilla: (this.isGecko && ua.indexOf("gecko/") + 14 == ua.length),
	    isNS:  ((this.isGecko) ? (ua.indexOf('netscape') != -1) : ((ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1))),
		geckoVersion: ((this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 ),
        isNS6: (this.isNS && versionMajor == 6),
        isIE6: (this.isIE && versionMajor == 6),
        isIE7: (this.isIE && versionMajor == 7),   
        isIE8: (this.isIE && versionMajor == 8),            
        isIEv6: (navigator.appVersion.indexOf("MSIE 6.")==-1) ? false : true,
        isIEv7: (navigator.appVersion.indexOf("MSIE 7.")==-1) ? false : true,
        isIEv8: (navigator.appVersion.indexOf("MSIE 8.")==-1) ? false : true
	};
}
var brsr = new BrowserDetectLite();
/* String utility functions, added directly to the String object */

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
};
String.prototype.ltrim = function() {
    return this.replace(/^\s+/,"");
};
String.prototype.rtrim = function() {
    return this.replace(/\s+$/,"");
};

String.prototype.squeeze = function(pattern) {
    if (pattern == '') {
        return this;
    }
    if (pattern === undefined) {
        pattern = /(.)\1+/g;
    }
    else {
        pattern = new RegExp('([' + pattern.replace(/(\\|\^)/g, '\\$1') + '])\\1+', 'g');
    }
    return this.replace(pattern, '$1');
};

/* attach event handlers to html elements */
function loadHandler() {
        downloadTimerJSStart = new Date().getTime();
        if (typeof(tkGlobals.inlineEvents)!='undefined')
        var evnetList = tkGlobals.inlineEvents;
        var l = evnetList.length
        for(var i=0;i<l;i++) {
        	evnetList[i].f.apply(evnetList[i].scope||window,evnetList[i].args||[]);
        }
    	// Structure of  inlineEvents:  
    	//	{ f     : function to call, 
    	//	  scope : object scopt to run the function (becomes the "this" object within the function.), 
    	//	  args  : arguments to send to function.
    	//	}

        if (typeof autoLoadAccount != "undefined" && autoLoadAccount
                        && $("currentAccount")) {
                $("currentAccount").observe("change",
                        function(){this.form.submit();});
        }

        $$(".showTooltip").invoke('observe','mouseover',showTip);
        $$(".showTooltip").invoke('observe','mouseout',hideTip);
        installTooltipChrome();
        
        initPowerMenus();

        // Load page-specific events
        if (typeof initEvents != "undefined"){
            initEvents();
        }

        shouldReportDownloadTimes && reportDownloadTimes();
		
}

function initPowerMenus(){
    $$(".powerMenuTrigger").invoke('observe','mouseover',powerMenuRollover);
    $$(".powerMenuTrigger").invoke('observe','mouseout',powerMenuRollout);
    $$(".powerMenu").invoke('observe','mouseover',powerMenuRollover);
    $$(".powerMenu").invoke('observe','mouseout',powerMenuRollout);
	
	$$(".pmQuote").invoke('observe', 'click', powerMenuQuote);	
	$$(".pmTradeAgain").invoke('observe','click', powerMenuTradeAgain)
}

//these dummy functions are here to get called on all pages which are not the Summary page
//on that page, we have to disable dragdrop and un-position the elements on the page in order
//for the tooltips to sit properly above everything else. In the summay page JS file is the full definition
//of these functions, which overrides these.
function deactivateDragDrop(){
        //no op
        return null;
}
function activateDragDrop(){
        //no op
        return null;
}


var iFrameMoved = false; //global to indicate whether the IFrame that hides form elements in IE has been moved behind the tooltip - so it only happens once
//var draggingInProgress = false;

var tooltipItemCounter = 0;//counter to make tooltip element IDs unique
function installTooltipChrome(){
    $$(".tooltip").each(function(ttEl){                                          
        if( ttEl ){
            var content = ttEl.innerHTML;//grab existing text
            ttEl.innerHTML = "";
            tooltipItemCounter++;//generic counter, so that elements that are inserted have unique IDs  
            ttEl.insert('<div class="tooltipHeader" id="ActiveTooltipTop-'+ tooltipItemCounter+'"></div>','bottom');
            ttEl.insert('<div class="tooltipContent" id="ActiveTooltipContent-'+ tooltipItemCounter+'"><div class="tipWrapper">'+content+'</div></div>','bottom');
            ttEl.insert('<div class="tooltipFooterLeft" id="ActiveTooltipBottomLeft-'+ tooltipItemCounter+'" style="display:block"></div>','bottom');
            ttEl.insert('<div class="tooltipFooterRight" id="ActiveTooltipBottomRight-'+ tooltipItemCounter+'" style="display:none"></div>','bottom');
        }              
    });
}

var UI={}; // Create a namespace for some UI stuff... tired of using global
function showTip(e){
    // in IE, we  move an iFrame behind the tooltip element so that form elements do not show through
	if (UI.currentTip)
		hideTip(UI.currentTip);
	UI.currentTip=e;
    var el = Event.element(e);
    var elWithProperId = el;//clone element, so that one can be used to find the tooltip element and the other can be used for positioning
    while (!elWithProperId.hasClassName("showTooltip")) {
        //loop up the containign element list to find the element that has the "showTooltip" class
        //that's the element whose ID is combined with "Tooltip" to find the tooltip element.
        elWithProperId = elWithProperId.up();
    }
    ttEl = $(elWithProperId.id + "Tooltip");
    if(ttEl){
        var minDistanceToRightEdge = 320;//used to reposition the tooltip if it will end up going off the right edge of the screen
        //var tooCloseToRightEdge = true;
        var tooCloseToRightEdge = ((Position.cumulativeOffset(el)[0]+el.offsetWidth+minDistanceToRightEdge)> document.body.clientWidth);
    
        currentTooltipIndex = ttEl.down().id.split("-")[1];
        
        if (tooCloseToRightEdge ||  isDragDropPage) {
            $('ActiveTooltipBottomLeft-'+ currentTooltipIndex).show();
            $('ActiveTooltipBottomRight-'+ currentTooltipIndex).hide();
        }else {
            $('ActiveTooltipBottomLeft-'+ currentTooltipIndex).hide();
            $('ActiveTooltipBottomRight-'+ currentTooltipIndex).show();
    
        }

        //the tooltips are positioned differently on pages where they appear within elements that are drag and droppable
        
        if(!tooCloseToRightEdge && !isDragDropPage){//the usual execution path  
            ttEl.clonePosition(el,{setWidth: false, setHeight: false, offsetTop: -ttEl.offsetHeight+3,offsetLeft: el.offsetWidth-5});
        }else{
            ttEl.clonePosition(el,{setWidth: false, setHeight: false, offsetTop: -ttEl.offsetHeight+3,offsetLeft: -ttEl.offsetWidth});
        }

            }
        }  

function hideTip(e){
		UI.currentTip=undefined;
        var el = Event.element(e);
        while (!el.hasClassName("showTooltip")) {
            el = el.up();
        }
        tooltipElementName = el.id+"Tooltip";
		if ($('MenuDisplayFixer')) {
			$('MenuDisplayFixer').style.display = "none";
			//$('MenuDisplayFixer').hide();
			iFrameMoved = false;
		}
        if($(tooltipElementName)){
            $(tooltipElementName).style.left="-10000px";
        }
}

function keepTipVisible(e){
        var el = Event.element(e);
        //??not done here
}

function initCommon() {
    // deprecated
    addPopupLinks( {"nav_watchList":{height:300}} );
        
    /* If a link with the class extLink is clicked then open leaving light box */
    if (typeof(Lightbox) != "undefined") {
        Lightbox.init();
    }
    $$('.extLink').invoke('observe','click',activateOffsiteLightbox);
}

// activate off site link lightbox lightbox
function activateOffsiteLightbox(e){
    
    var oldLightBox;
    var lightBox;
    var url;
    var el;
    
    // remove old lightBox elements
    if ($('lightBox')) {
        $('lightBox').remove();
    }
    
    // get the element used to cause the event (link, button, etc) usually a link.
    el = e.element();
    
    //handle clicking on the image, rather than the href
    if (el.tagName != 'A') {
        url = el.parentNode.href;
    } else {
        url = el.href;
    }

    lightBox = document.createElement('div');
    lightBox.setAttribute('id', 'lightBox');
    lightBox.innerHTML = '<div class="pageContent"><h2>You are leaving TradeKing</h2><p>The Company whose website you are choosing to enter is not associated with TradeKing.  TradeKing does not endorse or warrant the content, product or service, commentary or opinions expressed on their website.  TradeKing does not validate the Company\'s business practices or privacy policy, and we recommend that you review the Company\'s privacy and security statements thoroughly.  TradeKing provides access to the Company\'s website for educational and information purposes only.</p><div class="link">Continue to <a href="' + url + '" target="_new"  onclick="Lightbox.hideBox()">' + url + '</a></div></div>';

    document.body.appendChild(lightBox);
    
    Lightbox.showBoxByID("lightBox", 425, 265);
    Event.stop(e);
}


function capsDetect( e ) {
  var theKey = 0;
  if( e.keyCode ) { theKey = e.keyCode; } //Internet Explorer, etc.
  else if( e.charCode ) { theKey = e.charCode;} //Gecko - probably not needed
  //was the shift key was pressed
  var theShift = false;
  if( e.shiftKey ) { theShift = e.shiftKey; } //Internet Explorer, etc.
  else if( e.modifiers ) { //Netscape 4
    //check the third bit of the modifiers value (says if SHIFT is pressed)
    if( e.modifiers & 4 ) { //bitwise AND
      theShift = true;
    }
  }
  //if upper case, check if shift is not pressed
  if( theKey > 64 && theKey < 91 && !theShift ) {
        $("password").addClassName("passwordCapsLock");
                $("passwordWarning").update("Caps Lock is On");
  }
  //if lower case, check if shift is pressed
  else if( theKey > 96 && theKey < 123 && theShift ) {
        $("password").addClassName("passwordCapsLock");
                $("passwordWarning").update("Caps Lock is On");
  }else{
        $("password").addClassName("passwordNonCapsLock");
                $("passwordWarning").update("");
  }
          
}



//Power Menu, new code
var pmTimer;

function powerMenuRollover(e) {
	clearTimeout(pmTimer);
    var el = Event.element(e);

	if(!$('pmEl')) {
		var pmEl = document.createElement('ul');
		pmEl.setAttribute('id', 'pmEl');
		pmEl.style.zIndex = '500';
		if (pmEl.addEventListener) {
	        pmEl.addEventListener("mouseout", powerMenuRollout, false); //Mozilla
	        pmEl.addEventListener("mouseover", function(){ clearTimeout(pmTimer)},false);
	    } else {
	        pmEl.attachEvent("onmouseout", powerMenuRollout); //IE
	        pmEl.attachEvent("onmouseover", function(){ clearTimeout(pmTimer)});
	    }
		document.body.appendChild(pmEl);
	}

	$('pmEl').innerHTML = $(el.id+"Menu").innerHTML;
	$('pmEl').addClassName('powerMenu');
 
    var minDistanceToRightEdge = 120;//used to reposition the tooltip if it will end up going off the right edge of the screen
    var tooCloseToRightEdge = ((Position.cumulativeOffset(el)[0]+el.offsetWidth+minDistanceToRightEdge)> document.body.clientWidth);

    (!tooCloseToRightEdge) ? pmOffset = el.offsetWidth : pmOffset = -$('pmEl').offsetWidth+1;
    Position.clone(el, $('pmEl'),{setWidth: false, setHeight: false, offsetTop:+0,offsetLeft: pmOffset });
	
	$('pmEl').style.display = 'block';
		
	// reloading event listeners
	$$(".pmQuote").invoke('observe', 'click', powerMenuQuote);	
	$$(".pmTradeAgain").invoke('observe','click', powerMenuTradeAgain);
	$$(".multilegQuote").invoke('observe', 'click', showQuote, false);
	
	if(typeof attachPMPositionsListeners == 'function') attachPMPositionsListeners();
}           

function powerMenuRollout() {
	clearTimeout(pmTimer);
	pmTimer = setTimeout("hideRollover()", 150);
}

function hideRollover() {  
	if($('pmEl') && $('pmEl').style.display == 'block') $('pmEl').style.display = 'none';
}



function powerMenuQuote(e) {
	var el = Event.element(e);
	var pmSymbol = el.id.split("_")
	pmSymbol = pmSymbol[1];
	
	showSnapQuote(); 
	$('quotePopSymbol').value = pmSymbol; 
	makePopQuoteRequest(false); 
	return false;
}

function powerMenuTradeAgain(e){
	var el = Event.element(e);
	var pmSymbol = el.id.split("_")
	pmSymbol = pmSymbol[1];
	window.location = '/Modules/Trading/Trade/Standard/Stock/enter.php?symbol=' + pmSymbol;
	return false; 
}

var today = new Date();
var zero_date = new Date(0,0,0);
today.setTime(today.getTime() - zero_date.getTime());
var cookieExpireDateNever= new Date(today.getTime() + (8 * 7 * 86400000));

function showSnapQuote(e){
        $('snapQuote').show();
        $('getQuote').style.visibility = "hidden";
        $('hideQuote').style.visibility = "visible";
        xSetCookie("snapQuoteIsOpen", "true", cookieExpireDateNever, "/");
        setTimeout(function(){$('quotePopSymbol').focus();new Effect.Highlight($("snapQuote"));},800);
        e && Event.stop(e);
}

function hideSnapQuote(e){
        xSetCookie("snapQuoteIsOpen", "false", cookieExpireDateNever, "/");
        $('snapQuote').hide();
        $('hideQuote').style.visibility = "hidden";
        $('getQuote').style.visibility = "visible";
        hideSnapQuoteRegions();
        xSetCookie("snapQuoteIsOpen", "false", cookieExpireDateNever, "/");
        xDeleteCookie("sqSymbol", "/");
        xDeleteCookie("sqUsSymbol", "/");
        xDeleteCookie("sqDesc", "/");
        xDeleteCookie("sqChange", "/");
        xDeleteCookie("sqPctChange", "/");
        xDeleteCookie("sqLast", "/");
        xDeleteCookie("sqBid", "/");
        xDeleteCookie("sqBidSize", "/");
        xDeleteCookie("sqAsk", "/");
        xDeleteCookie("sqAskSize", "/");
        xDeleteCookie("sqVol", "/");
        xDeleteCookie("sqTimestamp", "/");
        if($("popUsSymbol"))
                $("popUsSymbol").value = "";
        if ($("popDescription"))
                $("popDescription").innerHTML = "&nbsp;";
        if ($("popChange"))
                $("popChange").innerHTML = "&nbsp;";
        if ($("pctChange"))
                $("pctChange").innerHTML = "&nbsp;";
        if ($("popLast"))
                $("popLast").innerHTML = "&nbsp;";
        if ($("popBid"))
                $("popBid").innerHTML = "&nbsp;";
        if ($("popBidSize"))
                $("popBidSize").innerHTML = "&nbsp;";
        if ($("popAsk"))
                $("popAsk").innerHTML = "&nbsp;";
        if ($("popAskSize"))
                $("popAskSize").innerHTML = "&nbsp;";
        if ($("popVolume"))
                $("popVolume").innerHTML = "&nbsp;";
        if ($("popTimestamp")){
                $("popTimestamp").innerHTML =  "&nbsp;";
        }
        e && Event.stop(e);
}

//this is called onClick on the symbol input, it sets the color back to black, just in case it was red before from having an error on the last quote
function removeErrorState(){
        $("quotePopSymbol").style.color="black";
}



function hideSnapQuoteRegions(){
        $$(".hiddenSnippyElements").invoke("hide");
        xDeleteCookie("sqDesc");
        xDeleteCookie("sqSymbol");
        xDeleteCookie("sqUsSymbol");
        xDeleteCookie("sqChange");
        xDeleteCookie("sqPctChange");
        xDeleteCookie("sqLast");
        xDeleteCookie("sqBid");
        xDeleteCookie("sqBidSize");
        xDeleteCookie("sqAsk");
        xDeleteCookie("sqAskSize");
        xDeleteCookie("sqVol");
}
function showSnapQuoteRegions(){
        $$(".hiddenSnippyElements").invoke("show");
}

function enterDetect(e){
                if(e.keyCode == Event.KEY_RETURN){
                        makePopQuoteRequest(false);
                }else{
                        return false;
                }
}

var monthConverter = [];
monthConverter[1] = "Jan";
monthConverter[2] = "Feb";
monthConverter[3] = "Mar";
monthConverter[4] = "Apr";
monthConverter[5] = "May";
monthConverter[6] = "Jun";
monthConverter[7] = "Jul";
monthConverter[8] = "Aug";
monthConverter[9] = "Sep";
monthConverter[10] = "Oct";
monthConverter[11] = "Nov";
monthConverter[12] = "Dec";
        
function getThreeLetterMonth(month){
        var intMonth = parseInt(month, 10);
        return monthConverter[intMonth];
}
        
function formatSecurityDescription(desc, extractionType, underlyingSymbol){
        //extractionType is not currently used
        underlyingSymbol = underlyingSymbol || "";
        var format = /(.+)(\d{2}?)\/(\d{2})\/(\d{2})(\d{2})\s(\d{1,8})(\.\d{1})?(\d{3})?\s(.+)/;
        if(desc.match(format)){//used on order entry Ack pages
                var shortDescExtractor = "$1";
                var putCallExtractor = "$9";
                var centsExtractor = "$7";
                var monthExtractor = "$2";
                var yearExtractor = "$5";
                var dollarExtractor = "$6";
                var centsValue = desc.replace(format, centsExtractor);
                var replacedString =  underlyingSymbol+" "+getThreeLetterMonth(desc.replace(format, monthExtractor));
                replacedString += desc.replace(format, yearExtractor)+" $"+desc.replace(format, dollarExtractor);
                if(centsValue!=".0"){
                        replacedString += centsValue;
                }
                return replacedString+' '+desc.replace(format, putCallExtractor).toUpperCase(); 
        }

        format = /(.+)\s(.+)\s(.+)\s(\d{1,8})\s(1\/2)/;
        if(desc.match(format)){//for option orders on order status
                var monthExtractor = "$3";
                var symbolExtractor = "$2";
                var priceExtractor = "&#36;$4";
                var centsExtractor = "$5";
                var centsValue = desc.replace(format, centsExtractor);
                var putCallExtractor= " $1";
                var replacedString = desc.replace(format, symbolExtractor)+" "+desc.replace(format, monthExtractor).capitalize()+" "+desc.replace(format, priceExtractor);
                if(centsValue!=""){
                        replacedString+= ".5 "
                }
                replacedString+=desc.replace(format,putCallExtractor) ;
                return replacedString;
        }
        format = /(.+)\s(.+)\s(\d{2})(\d{2})\s(\d{1,8})(\.\d{1,2})?\s(.+)/;
        if(desc.match(format)){//for option orders on order status       AAPL Apr 2007 42.5 Call
                var monthExtractor = "$2";
                var companyExtractor = "$1";
                var yearExtractor = "$4";
                var priceExtractor = "&#36;$5";
                var centsExtractor = "$6";
                var centsValue = desc.replace(format, centsExtractor);
                var putCallExtractor= " $7";
                var replacedString = desc.replace(format, companyExtractor)+" "+desc.replace(format, monthExtractor).capitalize();
                replacedString += desc.replace(format, yearExtractor)+" "+desc.replace(format, priceExtractor);
                if(centsValue!=""){
                        replacedString+= ".5 "
                }
                replacedString+=desc.replace(format,putCallExtractor) ;
                return replacedString;
        }

        
        format = /(.+)\s(.+)\s(.+)\s(\d{1,8})(\.\d{1,1})?(\s1\/2)?/;//CALL QAA APR 80
        if(desc.match(format)){//for option orders on order status      
                var monthExtractor = "$3";
                var symbolExtractor = "$2";
                var priceExtractor = "&#36;$4";
                var centsExtractor = "$5";
                var centsValue = desc.replace(format, centsExtractor);
                var putCallExtractor= " $1";
                var replacedString = desc.replace(format, symbolExtractor)+" "+desc.replace(format, monthExtractor).capitalize()+" "+desc.replace(format, priceExtractor);
                if(centsValue!=""){
                        replacedString+= ".5 "
                }
                replacedString+=desc.replace(format,putCallExtractor) ;
                return replacedString;
        }else{
                //console.info("default - no match");
                return desc;    
        }
}


/*---------------------------AJAX QUOTE HANDLING, USED BY SNAPQUOTE AND TRADING PAGES--------------------*/

//convert symbol into proper format, pass in the element to be cleaned up, value will be replaced
function changeSymbol(el) {
        //remove error indicator, if present
        el.style.color="#000";
        // trim surrounding spaces, change to uppercase, and add space for option symbols
        if(el.value){
                var newValue = el.value;
                newValue = newValue.replace(/^\s*(.*?)\s*$/, "$1");//remove leading and trailing spaces
                newValue = newValue.replace("."," ");//convert a period to a space
                newValue = newValue.toUpperCase();
                if (el.hasClassName("optionSymbol")) {
                        if (newValue.length > 2 && newValue.charAt(newValue.length - 3) != " ") {
                                newValue = newValue.substr(0, newValue.length - 2)
                                        + " " + newValue.substr(newValue.length - 2);
                        }
                }
                el.value = newValue;
        }
}
var isHoliday=false;

var isHalfDay=false;

var isWeekend=false;



myTime = (new Date()).getTime(); //used for calculating delta.
eventSchedule={"tzoffset":0,"order":["preOpen","mktOpen","mktClose","postClose","closed"],"events":{"preOpen":{"eventType":"preOpen","startTime":28800,"text":"U.S. Extra-Hours Trading Begins in "},"preClose":{"eventType":"preClose","startTime":34200,"text":"Pre-Market Trading. U.S. Markets Open In"},"mktOpen":{"eventType":"mktOpen","startTime":34200,"text":"Pre-Market Trading. U.S. Markets Open In"},"mktClose":{"eventType":"mktClose","startTime":57600,"text":"U.S. Markets close in "},"postOpen":{"eventType":"mktClose","startTime":57600,"text":"U.S. Markets close in "},"postClose":{"eventType":"postClose","startTime":61200,"text":"U.S. Extra-Hours Trading Ends in "},"closed":{"eventType":"closed","startTime":86399,"text":"U.S. Markets closed."}}};
//Get difference between now and midnight.
//-eventSchedule.tzoffset;

function inExtraHours(){
    var delta = Math.floor(((new Date()).getTime() - myTime)/1000);
    var time = tkGlobals.gmtTime + delta;

	var preOpen 	= eventSchedule['events']['preOpen']['startTime'] + tkGlobals.startOfDay;
	var preClose	= eventSchedule['events']['preClose']['startTime'] + tkGlobals.startOfDay;
	var postOpen	= eventSchedule['events']['postOpen']['startTime'] + tkGlobals.startOfDay;
	var postClose	= eventSchedule['events']['postClose']['startTime'] + tkGlobals.startOfDay;

    if ((preOpen <= time && time <= preClose) || (postOpen <= time && time <= postClose)) {
		return true;
	} else {
		return false;
	}
	
}

function getLegName(el){
        return el.id.substring(el.id.length-1);
}

function hmr_popup(pct){
	var rand_num = Math.ceil(Math.random()*1000);
	
	var html = " <a href='#' target='_new' style='position: relative; display: inline' onclick='$(%Qrand_hmr%Q).style.display=%Qnone%Q; return false' onmouseover='$(%Qrand_hmr%Q).style.display=%Qblock%Q'>	<img src='https://www.tradeking.com/Images/Icons/hmr.gif' alt='' border='0' /><div id='rand_hmr' class='hmr_bubble' style='display: none' onmouseout='$(%Qrand_hmr%Q).style.display=%Qnone%Q'>pct% </div></a>"; //doing this so everythig can be done in one place.  This is the only js file that can process php
	html = html.replace(/rand/g, rand_num); // replacing the 'pct' we put into the php static method with the actual percentage that was passed to the js function
	html = html.replace(/pct/, pct); // replacing the 'pct' we put into the php static method with the actual percentage that was passed to the js function
	html = html.replace(/%Q/g, '\"');
	return html;
}

function displayPopQuote(quoteContainer) {
        var q = quoteContainer.legs["0"];
        var ulQ = quoteContainer.legs.underlying0;
        if(quoteContainer.error){
                $("quotePopSymbol").style.color="red";
                $("popDescription").update("&nbsp;");
                hideSnapQuoteRegions();
        }else{
                
				//popDescription = q.desc;
				if(q.hmr != 0) q.desc += hmr_popup(q.hmr);
				$("popDescription").update(q.desc);
				
				
                xSetCookie("sqDesc", q.desc, "", "/");
                xSetCookie("sqSymbol", q.symbol, "", "/");
                if ($("quotePopSymbolUL")){
                        $("quotePopSymbolUL").value = ulQ?ulQ.symbol:"";
                        xSetCookie("sqUsSymbol", ulQ?ulQ.symbol:" ", "", "/");
                }
                if ($("popChange")){
                        $("popChange").update(applyPosNegStyle(q.change, "arrow"));
                        xSetCookie("sqChange", q.change, "", "/");
                }
                if ($("pctChange")){
                        $("pctChange").update(applyPosNegStyle(q.pctChange,"brackets"));
                        xSetCookie("sqPctChange", q.pctChange, "", "/");
                }
                if ($("popLast")){
                        $("popLast").update(q.last);
                        xSetCookie("sqLast", q.last, "", "/");
                }
                if ($("popBid")){
                        $("popBid").update(q.bid);
                        xSetCookie("sqBid", q.bid, "", "/");
                }
                if ($("popBidSize")){
                        $("popBidSize").update(q.bidSize);
                        xSetCookie("sqBidSize", q.bidSize, "", "/");
                }
                if ($("popAsk")){
                        $("popAsk").update(q.ask);
                        xSetCookie("sqAsk", q.ask, "", "/");
                }
                if ($("popAskSize")){
                        $("popAskSize").update(q.askSize);
                        xSetCookie("sqAskSize", q.askSize, "", "/");
                }               
                if ($("popVolume")){
                        $("popVolume").update(q.vol);
                        xSetCookie("sqVol", q.vol, "", "/");
                }
/*                // TICKET: 23603: trading a FRO from snapquote doesn't work
                if ($("sqSymbolType")){
                    xSetCookie("sqSymbolType", q.symbolType, "", "/");
                    $("sqSymbolType").value=q.symbolType;
                }
                if ($("sqSymbolSubClass")){
                    xSetCookie("sqSymbolSubClass", q.subclass, "", "/");
                    $("sqSymbolSubClass").value=q.subclass;
                    setPQURL();
                }
*/
                
                if ($("popTimestamp")){
                        var d = new Date();
                        var popTimestamp = monthConverter[parseInt(d.getMonth()+1,10)];
                        popTimestamp += " "+d.getDate()+" "+(d.getHours()<=12?d.getHours():d.getHours()-12)+":"+(d.getMinutes()<10?"0"+d.getMinutes():d.getMinutes())+" "+(d.getHours()<12?"AM":"PM");
                        popTimestamp += inExtraHours() ? " <span class='red afterHoursLabel'>( "+q.afterHoursSessionType+" Market )</span>":"";
                        $("popTimestamp").update(popTimestamp);
                        xSetCookie("sqTimestamp", popTimestamp, "", "/");
                }
                showSnapQuoteRegions();
                $("quotePopSymbol").focus();
                $("quotePopSymbol").select();
        }
}
var QuoteUpdater = Class.create();

/** 
* Class for rendering quotes on the page
* @return {Object}      none
*/
QuoteUpdater.prototype = {
        initialize: function(quoteContainer){
                this.quoteContainer = quoteContainer;
                this.fieldList = $$([".stockSymbol",".optionSymbol",".fundsymbol"]);//list of all symbol input fields
                //this.matchQuotes().bind(this);
                this.renderQuote().bind(this);
        },
        matchQuotes: function(){  //matches quotes coming back from server with the fields where the symbols are
                this.quoteContainer.legs.each(function(leg){
                        this.fieldLIst.each(function(el, ndx){
                                console.log(el.id +" is "+el.value+ "and value="+leg.value);
                                if(el.value==q.symbol){//TODO might need to check isFormEleement here, not sure
                                                leg.legName = getLegName(el);//grab the number off of the end of the id
                                }
                        }.bind(this));
                }.bind(this));
        },
        
        renderQuote: function (){
                var holdingsText = "";
                tabs.setActiveTab("ulQuotePanel");
                if(!this.quoteContainer.error){
                        this.quoteContainer.legs.each(function(pair){
                                        var legName = pair.key;
                                        var q = pair.value;
                                        switch(legName){
                                                case "underlying0": //note, no handling for multiiple underlyings - there is no UI for that
                                                        this.updateUnderlyingLeg(q);
                                                        break;
                                                case "net":
                                                        this.updateNetLeg(q);
                                                        break;  
                                                default: 
                                                        this.updateLeg(q);
                                                }//end switch
                                }.bind(this));
                }else{//if error
                        if ($("ulError")){
                                $("ulError").update("Error: "+quoteContainer.error);
                        }
                        if($("ulQuote").style.display==="none"){
                                Effect.Appear($("ulQuote"),{duration: stdEffectDuration});
                        }else{
                                new Effect.Highlight($("ulQuote"));
                        }
                }
        },
        
        updateUnderlyingLeg: function(q){
                        if ($("ulError")){
                                $("ulError").update(q.error?"Error: "+q.error:"");
                        }
                        //even if there is an error, draw the blank fields so that they clear out
                        if ($("ulSymbol")){
                                $("ulSymbol").update(q.symbol);
                        }
                        if ($("ulDescription")){
                                $("ulDescription").update(q.desc);
                        }
                        if ($("ulLast")){
                                $("ulLast").update(q.last);
                        }
                        if ($("ulChange")){
                                $("ulChange").update(applyPosNegStyle(q.change, "arrow"));
                        }
                        if ($("ulBid")){
                                $("ulBid").update(q.bid);
                        }
                        if ($("ulAsk")){
                                $("ulAsk").update(q.ask);
                        }
                        if ($("ulVolume")){
                                $("ulVolume").update(q.vol);
                        }
                        if ($("ulDelta")){
                                $("ulDelta").update(q.delta);
                        }
                        if ($("ulOpenInterest")){
                                $("ulOpenInterest").update(q.openInterest);     
                        }
                        //display
                        //if(q.ulSymbol!==""){
                                //tabs.setActiveTab("ulQuotePanel");
                                setTimeout(new Effect.Highlight($("ulQuotePanel")),500);//TODO not sure the timeout is necessary
                        //}
        },

        updateNetLeg: function(q){
                        if ($("netBid") && $("netBidField")){
                                $("netBid").update(q.bid);
                                $("netBidField").value = q.bid;
                        }
                        if ($("netAsk") && $("netAskField")){
                                $("netAsk").update(q.ask);
                                $("netAskField").value = q.ask;
                        }
                
                        //if(q.bid !==""){
                                tabs.setActiveTab("ulQuotePanel");
                                if($("netQuote").style.display==="none"){
                                        Effect.Appear($("netQuote"),{duration:stdEffectDuration });
                                }else{
                                        new Effect.Highlight($("netQuote"));
                                }
                        //}
        },

        updateLeg: function(q){
                        //correct leg names by matching the symbols to leg names
                        //in case symbols come in out of order
                        $$([".stockSymbol",".optionSymbol",".fundsymbol"]).each(function(el, ndx){
                                        console.log(el.id +" is "+el.value+ "and value="+q.value);
                                        if(el.value==q.symbol){//TODO might need to check isFormEleement here, not sure
                                                if(el.id!=="symbol"){//don't do this if there is only one symbol
                                                        legName = getLegName(el);//grab the number off of the end of the id
                                                //      console.log("leg:" +legName);
                                                }
                                        }
                        }.bind(this));
                        //these next four lines are arranged thusly so that error text erases itself when there is no longer an error
                        //but we need to separately highlight the symbol generating the error
                        if ($("error" + legName)){
                                $("error" + legName).update(q.legError?"Error: " +q.legError:"");
                        }
                        if(q.legError!==null){
                                $("symbol"+legName).style.color="red";
                        }               
                        if ($("description" + legName)){
                                $("description" + legName).update(q.desc?q.desc:"");
                        }
                        if ($("last" + legName)){
                                $("last" + legName).update(q.last?q.last:"");
                        }
                        if ($("change" + legName)){
                                $("change" + legName).update(q.change?applyPosNegStyle(q.change, "arrow"):"");
                        }
                        if ($("pctChange" + legName)){
                                $("pctChange" + legName).update(q.pctChange?applyPosNegStyle(q.pctChange, "brackets"):"");
                        }
                        if ($("bid" + legName)){
                                $("bid" + legName).update(q.bid?q.bid:"");
                        }
                        if ($("ask" + legName)){
                                $("ask" + legName).update(q.ask?q.ask:"");
                        }
                        if ($("volume" + legName)){
                                $("volume" + legName).update(q.vol?q.vol:"");
                        }
                        if ($("delta" + legName)){
                                $("delta" + legName).update(q.delta?q.delta:"");
                        }
                        if ($("openInterest" + legName)){
                                $("openInterest" + legName).update(q.openInterest);
                        }
                        if ($("holdings"+legName)){
                                if(q.holdings !== "" && q.holdings>0) {
                                        holdingsText += "You currently hold " + q.holdings;
                                        if (q.symbolType === "Option"){
                                                holdingsText += " contracts of ";
                                        }else{
                                                holdingsText += " shares of ";
                                        }
                                        holdingsText += q.symbol + " in this account";
                                }else{
                                        holdingsText = "None";
                                }
                                if ($("holdings" + legName)){
                                        $("holdings" + legName).update(holdingsText);
                                }
                        }//end holdings
                        //display it
                        if($("quoteBar"+legName).style.display==="none"){
                                Effect.Appear($("quoteBar"+legName),{duration: stdEffectDuration});
                                if(!chainManager.activeChains[legName]){
                                        Effect.Appear($("quoteDescription"+legName),{duration: stdEffectDuration});
                                }
                        }else{
                                new Effect.Highlight($("quoteBar"+legName));
                        }
        }
};


function makeTradeQuoteRequest(sameUnderlying,getNet){
        var symbolArr = [];
        var typeArr = [];
        var sideArr = [];
        var amountArr = [];
        sameUnderlying = sameUnderlying || false;

        if ($("type")) {
                var complexOptionType = $F("type");
                var needAmountForNet = (complexOptionType == "spread" || complexOptionType == "combo");
        } else{
                getNet = false;
        }
        
        //process all the symbols/tx/amt data in the form into  arrays
        $$([".stockSymbol",".optionSymbol",".fundSymbol"]).each(function(el, ndx){
                var symbol = (isFormElement(el) ? el.value : el.innerHTML);
                if (!!symbol) {
                        symbolArr.push(symbol);         
                        if(el.hasClassName("stockSymbol")){
                                typeArr.push("Stock");
                        }else if(el.hasClassName("optionSymbol")){
                                typeArr.push("Option");                          
                        }else if(el.hasClassName("fundSymbol")){
                                typeArr.push("Fund"); 
                        }
                }else{
                        getNet = false;
                }
                // If we're getting a net quote, figure out the associated transaction and quantity values for this symbol.
                if (getNet) {
                        var leg = (el.id).substring(6);
                        // deal with quirks in field IDs
                        if (isFormElement(el)) { // order form
                                var transaction = $F("transaction" + leg);
                                var amount = $F("amount" + leg);
                        } else { // edit/cancel form
                                transaction = $F("transaction_" + leg);
                                amount = $F("amount_" + leg);
                        }
                        if (transaction === null){
                                sideArr.push("");
                        }else if (transaction.charAt(0) == "B" || transaction.charAt(0) == "1"){
                                sideArr.push("1");
                        }else {
                                sideArr.push("2");
                        }
                        amountArr.push(amount);
                        // need quantity for spreads and combos
                        if (amount == "" && needAmountForNet){
                                getNet = false;
                        }
                }
        });
        
        //put together the URL
        if (symbolArr.length > 0) {
                var baseURL = "/Modules/Research/Quote/quoteXML.php";
                var params = "?realTime=" + (rtTradeQuotes ? "Y" : "N");
                params += "&sameUnderlying=" + (sameUnderlying ? "Y" : "N");
                if (getNet){
                        params += "&type=" + complexOptionType;
                }
                for (var i = 0; i < symbolArr.length; i++) {
                        params += "&symbol[" + i + "]=" + symbolArr[i].toUpperCase();
                        params += "&securityType[" + i + "]=" + typeArr[i];
                        if (getNet) {
                                params += "&side[" + i + "]=" + sideArr[i];
                                params += "&amount[" + i + "]=" + amountArr[i];
                        }
                }
         new Ajax.Request(baseURL, {
           method:'POST',
           asynchronous:true,
           parameters:params,
           onSuccess:handleTradeQuoteSuccess,
           onFailure:handleQuoteError,
           onError:handleQuoteError
          });
                //requests["quote"] = xSendXMLHttpRequest("GET", baseURL+params, getQuoteData);
        } else {
                //hid eall quote bar, there are no symbols
                if($("quoteBar0") && $("quoteBar0").style.display!=="none" ){
                        Effect.Fade($("quoteBar0"),{duration:stdEffectDuration});
                }
                if($("quoteBar1") && $("quoteBar1").style.display!=="none" ){
                        Effect.Fade($("quoteBar1"),{duration:stdEffectDuration});
                }
                if($("quoteBar2") && $("quoteBar2").style.display!=="none" ){
                        Effect.Fade($("quoteBar2"),{duration:stdEffectDuration});
                }
                if($("quoteBar3") && $("quoteBar3").style.display!=="none" ){
                        Effect.Fade($("quoteBar3"),{duration:stdEffectDuration});
                }
                if($("quoteBarCO") && $("quoteBarCO").style.display!=="none" ){
                        Effect.Fade($("quoteBar3"),{duration:stdEffectDuration});
                }
                if($("quoteBarTS") && $("quoteBarTS").style.display!=="none" ){
                        Effect.Fade($("quoteBar3"),{duration:stdEffectDuration});
                }
                if($("underlyingQuote") && $("underlyingQuote").style.display!=="none" ){
                        Effect.Fade($("underlyingQuote"),{duration:stdEffectDuration});
                }
                if($("netQuote") && $("netQuote").style.display!=="none" ){
                        Effect.Fade($("netQuote"),{duration:stdEffectDuration});
                }
        }
}

//function triggerSnapquoteForSymbol(symbol){
//    $("quotePopSymbol").value = symbol;
//    makePopQuoteRequest(true);
//}

function makeMarketsQuoteRequest() {
        var realTime = "";       
        var getNet = false;
        var symbolArr = ["DJI","VIX","COMP","SPX"];
        var baseURL = "/Modules/Research/Quote/quoteXML.php";
        var params = "?realTime=" + (rtTradeQuotes ? "Y" : "N");
        params += "&sameUnderlying=N";
        for (var i = 0; i < symbolArr.length; i++) {
                params += "&symbol[" + i + "]=" + symbolArr[i].toUpperCase();
                params += "&securityType[" + i + "]=Stock";
        }
        
        new Ajax.Request(baseURL, {
           method:'POST',
           asynchronous:true,
           parameters:params,
           onSuccess:handleMarketsQuoteSuccess,
           onFailure:handleQuoteError,
           onError:handleQuoteError
          });
}

function handleMarketsQuoteSuccess(req){
        displayMarketsQuote(getQuoteData(req));
}

function displayMarketsQuote(quoteContainer) {
    if (quoteContainer.error) {
        $("DJIValue").style.color = "red";
        $("DJIValue").update("ERROR");
        $("SPXValue").style.color = "red";
        $("SPXValue").update("ERROR");
        $("VIXValue").style.color = "red";
        $("VIXValue").update("ERROR");
        $("COMPValue").style.color = "red";
        $("COMPValue").update("ERROR");
    }
    else {
        for (var x = 0; x < 4; x++) {//magic number, arrgh
            q = quoteContainer.legs[x];
            if ($(q.symbol + "Value")) {
                $(q.symbol + "Value").update(q.last+' '+applyPosNegStyle(q.change, "brackets"));
            }
        }
    }
}

function makePopQuoteRequest(sameUnderlying) {
        removeErrorState();
        var symbol=$("quotePopSymbol").value.toUpperCase();
        symbol.strip();
        if(symbol.indexOf(" ")!=-1){
                var type="Option";
        }else{
            if(symbol.length==5 && symbol.indexOf("X")==4){
                type="Fund";
            }else{
                type="Stock";
            }
        }
        
        var getNet = false;

        var baseURL = "/Modules/Research/Quote/quoteXML.php";
        var params = "?realTime=" + (realTime=="1" ? "Y" : "N");
        params += "&sameUnderlying=" + (sameUnderlying ? "Y" : "N");
        params += "&symbol[0]=" + symbol.toUpperCase();
        params += "&securityType[0]=" + type;
        if(inExtraHours()){
                params += "&xtraHoursEnabled=Y";
        }
        new Ajax.Request(baseURL, {
           method:'POST',
           asynchronous:true,
           parameters:params,
           onSuccess:handlePopQuoteSuccess,
           onFailure:handleQuoteError,
           onError:handleQuoteError
          });
}

//function makeMultiLegPopQuoteRequest(leg1, leg2, leg3, leg4) {
//      removeErrorState();
//        var baseURL = "/Modules/Research/Quote/quoteXML.php";
//        var params = "?realTime=" + (realTime=="1" ? "Y" : "N");
//        params += "&sameUnderlying=true&getNet=true";
//        $A(arguments).each(function(symb,i){
//            params += "&symbol["+i+"]=" + symb;
//            params += "&type["+i+"]=Option";
//        });
//        console.log(params);
//        new Ajax.Request(baseURL, {method:'get',
//                                                                                   asynchronous:true,
//                                                                                   parameters:params,
//                                                                                   onSuccess:handlePopQuoteSuccess,
//                                                                                   onFailure:handleQuoteError,
//                                                                                   onError:handleQuoteError
//                                                                                  });
//}

//error in the whole quote request
function handleQuoteError(req){
        var quoteContainer = new QuoteContainer();
        if(req){
                var result = req.responseXML.documentElement;
                var error = result.getElementsByTagName("error");
                if (error !== null && error[0].firstChild && error[0].firstChild.data !== "") {
                        quoteContainer.error = error[0].firstChild.data;
                }
        }
        $("quotePopSymbol").style.color = "red";
        displayTradeQuote(quoteContainer);
}

function handleMarketsQuoteSuccess(req){
        displayMarketsQuote(getQuoteData(req));
}
function handleTradeQuoteSuccess(req){
        //mightnot want to create a new one each time, buit works for now
        var qr = new QuoteUpdater(getQuoteData(req));
}
function handlePopQuoteSuccess(req){
        displayPopQuote(getQuoteData(req));
}
function getXMLValue(key,src){
        //get the value of an XML element, returning an empty string if it is not present
        try{
                return xGetElementText(key, src, 0);
        }catch(err){
                console.error(err);
                return "";
        }
}


//returns QuoteData object
function getQuoteData(req){
        //var req = requests["quote"];
        var quoteContainer = new QuoteContainer();
        var result = req.responseXML.documentElement;

        //usually, you get an actual error message in the <error> element
        var error = result.getElementsByTagName("error");
        if (error !== null && error[0].firstChild && error[0].firstChild.data !== "") {
                quoteContainer.error = error[0].firstChild.data;
                return quoteContainer;
        }
        //for some reason, the server sometimes sends back just a result with an empty <error> element
        //and nothing else
        var quotes = result.getElementsByTagName("quote");
        if(quotes.length == 0){
                quoteContainer.error = "ERROR";
                return quoteContainer;
        }
        var complexOptionType;
        
        // Put underlying stock quotes into quote obj -- note that in the XML it's "usQuote" not "ulQuote"
        var ulQuotes = result.getElementsByTagName("usQuote");
        for (var i = 0; i < ulQuotes.length; i++) {
                var q = new Quote();
                q.symbol = getXMLValue("symbol", ulQuotes[i]);
                q.desc = getXMLValue("description", ulQuotes[i]);
                q.hmr = getXMLValue("hmr", ulQuotes[i]);
                q.change = formatNumber(getXMLValue("change", ulQuotes[i]), FORMAT.quoteChange);
                q.last = formatNumber(getXMLValue("last", ulQuotes[i]), FORMAT.quoteLast);
                q.bid = formatNumber(getXMLValue("bid", ulQuotes[i]), FORMAT.quoteBid);
                q.ask = formatNumber(getXMLValue("ask", ulQuotes[i]), FORMAT.quoteAsk);
                q.vol = formatNumber(getXMLValue("volume", ulQuotes[i]), FORMAT.quoteVolume);
                q.timestamp = getXMLValue("time", quotes[i]);
                q.symbolType = "Stock";
                quoteContainer.addQuote(q,"underlying"+i);
        }
        
        // Put requested quotes into quote object
        for (i = 0; i < quotes.length; i++) {
                q = new Quote();
                if (getXMLValue("legError", quotes[i]) === "") {
                        q.numQuotes = i;
                        q.symbol = getXMLValue("symbol", quotes[i]);
                        q.hmr = getXMLValue("hmr", quotes[i]);
                // TICKET: 23603: trading a FRO from snapquote doesn't work
                        q.subclass = getXMLValue("op_subclass", quotes[i]);
                        q.change = formatNumber(getXMLValue("change", quotes[i]), FORMAT.quoteChange);
                        q.pctChange = formatNumber(getXMLValue("pctChange", quotes[i]), FORMAT.quotePctChange);
                        q.last = formatNumber(getXMLValue("last", quotes[i]), FORMAT.quoteLast);
                        q.bid = formatNumber(getXMLValue("bid", quotes[i]), FORMAT.quoteBid);
                        q.bidSize = formatNumber(getXMLValue("bidSize", quotes[i]), FORMAT.quoteVolume);
                        q.ask = formatNumber(getXMLValue("ask", quotes[i]), FORMAT.quoteAsk);
                        q.askSize = formatNumber(getXMLValue("askSize", quotes[i]), FORMAT.quoteVolume);
                        q.vol = formatNumber(getXMLValue("volume", quotes[i]), FORMAT.quoteVolume);
                        q.delta= formatNumber(getXMLValue("delta", quotes[i]), FORMAT.quoteDelta);
                        q.openInterest = formatNumber(getXMLValue("openInterest", quotes[i]), FORMAT.quoteOpenInterest);
                        q.holdings = getXMLValue("holdings", quotes[i]);
                        q.symbolType = getXMLValue("type", quotes[i]);
                        q.holdings = getXMLValue("holdings", quotes[i]);
                        q.timestamp = new Date(parseInt(getXMLValue("time", quotes[i]),10)*1000);//time comes in seconds, we need millis
                        q.afterHoursSessionType = getXMLValue("session", quotes[i]);
                        //concisely format option descriptions
                        if(q.symbolType=="Option"){
                                 //grabbing the underlying symbol from position zero because we have no capacity for multiple underlyings
                                 //cov_call, prot_put and collar all have the underlying as one of their legs, so there is no underlying
                                //if(complexOptionType=="covered_call" || complexOptionType=="protective_put" || complexOptionType=="collar"){
                                //      quoteData.description[quoteData.numQuotes] = formatSecurityDescription(getXMLValue("description", quotes[i]),"");
                                 //}else{
                                        q.desc= formatSecurityDescription(getXMLValue("description", quotes[i]),"",quoteContainer.legs.underlying0?quoteContainer.legs.underlying0.symbol:""); 
                                 //}
                        }else{//don't do anything for stocks and funds
                                q.desc= getXMLValue("description", quotes[i]);
                        }
                }else{
                        q.legError = getXMLValue("legError", quotes[i]);
                        q.symbol = getXMLValue("symbol", quotes[i]);//need symbol to match errors with original legs
                }
                quoteContainer.addQuote(q,i+"");
        }
        
        //hid euntil we soclve the number ov quotes problem
        //if (quoteData.numQuotes === 0) {
//              if($("underlyingQuote") && $("underlyingQuote").style.display!="none"){
//                      Effect.Fade($("quotePanel"));
//              }
//              if($("netQuote") && $("netQuote").style.display!="none"){
//                      Effect.Fade($("netQuote"));
//              }
//              return;
//      }
        

        // Put net quote data into quote obj
        var net = result.getElementsByTagName("net");
        if (net.length == 1) {
                q = new Quote();
                q.netSymbol = "NET";
                q.bid = formatNumber(getXMLValue("bid", net[0]), FORMAT.quoteBid);
                q.ask = formatNumber(getXMLValue("ask", net[0]), FORMAT.quoteAsk);
                quoteContainer.addQuote(q,"net");
        }
        
        return quoteContainer;
}

var QuoteContainer = Class.create();

/** 
* Class for representing a quote on the site, which may contain multiple legs, each of which 
* is represented by a Quote object
* @return {Object}      none
*/
QuoteContainer.prototype = {
        initialize: function(){
                        this.error="";//general errors with request
                        this.numQuotes = 0;
                        this.legs = new Hash();
        },
        getNumQuotes: function(){
                return this.legs.length;
        },
        addQuote: function(quote, legName){
                this.legs[legName] = quote;
        }
};

var Quote = Class.create();

/** 
* Class representing a security quote, can represent stock, option, net, underlying
* @return {Object}      none
*/
Quote.prototype = {
        initialize: function(){
                        this.legError = null;
                        this.symbol = null;
                        this.desc = null;
                        this.change = null;
                        this.pctChange = null;
                        this.last = null;
                        this.bid = null;
                        this.bidSize = null;
                        this.ask = null;
                        this.askSize = null;
                        this.vol = null;
                        this.delta = null;
                        this.openInterest = null;
                        this.holdings = null;
                        this.symbolType = null;
                        this.holdings = null;
                        this.timestamp = null;
                        this.afterHoursSessionType = null;
        }       
};

var today = new Date();
var zero_date = new Date(0,0,0);
today.setTime(today.getTime() - zero_date.getTime());
var cookieExpireDateNever= new Date(today.getTime() + (8 * 7 * 86400000));


//this is called onClick on the symbol input, it sets the color back to black, just in case it was red before from having an error on the last quote
function removeErrorState(){
        $("quotePopSymbol").style.color="black";
}

function hideSymbolBasedLinks(){
                $$(".hiddenSnippyElements").each(function(el){
                                                                el.hide();
                                                                });
}
function showSymbolBasedLinks(){
                $$(".hiddenSnippyElements").each(function(el){
                                                                el.show();
                                                                });
}

function popAddSymbol(ele, type) {
        if (!ele) return;
        var symbol = (isFormElement(ele) ? ele.value : ele.innerHTML);
        symbolArr.push(symbol);
        typeArr.push(type);
}



function handleSnippyLinkClick(e,linkType){
    var el = Event.element(e);
    var symbol=$("quotePopSymbol").value.toUpperCase();
    var usSymbol=$("quotePopSymbolUL").value.toUpperCase();
    var linkUrl=el.href;
    
    if(linkType=="Trade"){
            if(symbol!=usSymbol || usSymbol==""){//option
                    linkUrl = optionTradeLink + symbol;//in this instance, change the whle URL
            }else if(symbol.length==5 && symbol.indexOf("X")==4){
                    linkUrl = fundTradeLink + symbol;//in this instance, change the whle URL
            }else{
                    linkUrl += symbol;
            }
    }else if(linkType=="Chain"){
            if(symbol!=usSymbol || usSymbol==""){//option
                    linkUrl += usSymbol;
            }else{
                    linkUrl += symbol;
            }
    }else{
            if(symbol!=usSymbol || usSymbol==""){//option
                    linkUrl += usSymbol;
            }else{
                    linkUrl += symbol;
            }
    }
    
    window.location=linkUrl;
}
        
        
function popSendXMLHttpRequest(method, url, callFunc) {
        if (window.XMLHttpRequest) {
                req = new XMLHttpRequest();
                req.onreadystatechange = callFunc;
                req.open(method, url, true);
                req.send(null);
        } else if (window.ActiveXObject) {
                req = new ActiveXObject("Microsoft.XMLHTTP");
                if (req) {
                        req.onreadystatechange = callFunc;
                        req.open(method, url, true);
                        req.send();
                }
        }
}

var monthConverter = new Array();
monthConverter[1] = "Jan";
monthConverter[2] = "Feb";
monthConverter[3] = "Mar";
monthConverter[4] = "Apr";
monthConverter[5] = "May";
monthConverter[6] = "Jun";
monthConverter[7] = "Jul";
monthConverter[8] = "Aug";
monthConverter[9] = "Sep";
monthConverter[10] = "Oct";
monthConverter[11] = "Nov";
monthConverter[12] = "Dec";


function popGetQuoteResponse() {
        if (req && req.readyState == 4) {
                
                if (req.status == 200) {
                        if (req.parseError) {
                                //???????????????
                                return;
                        }
                        var result = req.responseXML.documentElement;

                        var error = result.getElementsByTagName("error");
                        if (error != null && error[0].firstChild && error[0].firstChild.data != "") {
                                //??????????
                                return;
                        }

                        var quotes = result.getElementsByTagName("quote");
                        var symbol = ""
                        var description = ""
                        var change = ""
                        var pctChange = ""
                        var last = ""
                        var bid = "";
                        var ask = ""
                        var bidSize = "";
                        var askSize = ""
        
        
                        var volume = ""
                        var delta = ""
                        var openInterest = ""
                        var holdings = ""
                        var type = ""
                        
                        var usSymbol = "";
                        var usDescription = "";
                        var usChange = "";
                        var usPctChange = "";
                        var usLast = "";
                        var usBid = "";
                        var usAsk = "";
                        var usBidSize = "";
                        var usAskSize = "";
        
                        var usVolume = "";
                        var usDelta = "";
                        var usOpenInterest = "";
                        var usHoldings = "";
                        var usType = "";

        
        
                        //var optionValue = /(.+)(\d{2}?)\/(\d{2})\/(\d{2})(\d{2})\s(\d{1,4})\.(\d{1})(\d{3})\s(.+)/;
//                      var fullExtraction = " $3 $4$5 &#36;$6";
//                      var monthExtraction = "$2";
//                      var decimalExtraction = "$7";
//                      var putCallExtraction = "$9";
//                      
//                      var optionValue2 = /\s(.{3})\s(\d{2})(\d{2})\s(\d{1,3})/;
//                      var extraction2 = "$1$3 $4";
                        // Put underlying stock quotes into quote array
                        var usQuotes = result.getElementsByTagName("usQuote");
                        // Put requested quotes into quote array
                        for (var i = 0; i < quotes.length; i++) {
                                if (xGetElementText("legError", quotes[i], 0) == "") {
                                        //var month = monthConverter[parseInt(xGetElementText("description", quotes[i], 0).replace(optionValue, monthExtraction),10)];
                                        //var putCall = xGetElementText("description", quotes[i], 0).replace(optionValue, putCallExtraction)
                                        //var strikeDecimal = parseInt(xGetElementText("description", quotes[i], 0).replace(optionValue, decimalExtraction));
                                        //strikeDecimal = strikeDecimal>0?"."+strikeDecimal:"";//only show decimal if it's not zero
                                        symbol = xGetElementText("symbol", quotes[i], 0);
                                        if(symbol.indexOf(" ")!=-1){//concisely format option descriptions
                                                 //description = symbol + " " +month + xGetElementText("description", quotes[i], 0).replace(optionValue, fullExtraction)+strikeDecimal + " " +putCall.toUpperCase();
                                                 description = formatSecurityDescription(xGetElementText("description", quotes[i], 0),"",xGetElementText("symbol", usQuotes[i], 0));
                                        }else{
                                                description = xGetElementText("description", quotes[i], 0);
                                        }
                                        change = formatNumber(xGetElementText("change", quotes[i], 0), FORMAT["quoteChange"]);
                                        pctChange = formatNumber(xGetElementText("pctChange", quotes[i], 0), FORMAT["quotePctChange"]);
                                        last = formatNumber(xGetElementText("last", quotes[i], 0), FORMAT["quoteLast"]);
                                        bid = formatNumber(xGetElementText("bid", quotes[i], 0), FORMAT["quoteBid"]);
                                        ask = formatNumber(xGetElementText("ask", quotes[i], 0), FORMAT["quoteAsk"]);
                                        bidSize = formatNumber(xGetElementText("bidSize", quotes[i], 0), FORMAT["quoteVolume"]);
                                        askSize = formatNumber(xGetElementText("askSize", quotes[i], 0), FORMAT["quoteVolume"]);
                                        volume = formatNumber(xGetElementText("volume", quotes[i], 0), FORMAT["quoteVolume"]);
                                        delta = formatNumber(xGetElementText("delta", quotes[i], 0), FORMAT["quoteDelta"]);
                                        openInterest = formatNumber(xGetElementText("openInterest", quotes[i], 0), FORMAT["quoteOpenInterest"]);
                                        type = xGetElementText("type", quotes[i], 0);
                                }
                        }
                        

                        for (var i = 0; i < usQuotes.length; i++) {
                                usSymbol = xGetElementText("symbol", usQuotes[i], 0);
                                $("quotePopSymbolUL").value = xGetElementText("symbol", usQuotes[i], 0);
                                usDescription = xGetElementText("description", usQuotes[i], 0);
                                usChange = formatNumber(xGetElementText("change", usQuotes[i], 0), FORMAT["quoteChange"]);
                                usPctChange = formatNumber(xGetElementText("pctChange", usQuotes[i], 0), FORMAT["quotePctChange"]);
                                usLast = formatNumber(xGetElementText("last", usQuotes[i], 0), FORMAT["quoteLast"]);
                                usBid = formatNumber(xGetElementText("bid", usQuotes[i], 0), FORMAT["quoteBid"]);
                                usAsk = formatNumber(xGetElementText("ask", usQuotes[i], 0), FORMAT["quoteAsk"]);
                                usBidSize = formatNumber(xGetElementText("bidSize", usQuotes[i], 0), FORMAT["quoteVolume"]);
                                usAskSize = formatNumber(xGetElementText("askSize", usQuotes[i], 0), FORMAT["quoteVolume"]);
                                usVolume = formatNumber(xGetElementText("volume", usQuotes[i], 0), FORMAT["quoteVolume"]);
                                usDelta = "";
                                usOpenInterest = "";
                                usHoldings = "";
                                usType = "Stock";
                        }


                        if(description==""){//indicate error
                                $("quotePopSymbol").style.color="red";
                                $("popDescription").innerHTML = "&nbsp;";
                                hideSymbolBasedLinks();
                        }else{
                                $("popDescription").innerHTML = description;
                                xSetCookie("sqDesc", description, "", "/");
                                xSetCookie("sqSymbol", symbol, "", "/");
                                if ($("quotePopSymbolUL"))
                                        $("quotePopSymbolUL").value = usSymbol;
                                        xSetCookie("sqUsSymbol", usSymbol, "", "/");
                                if ($("popChange"))
                                        $("popChange").innerHTML = applyPosNegStyle(change, "arrow");
                                        xSetCookie("sqChange", change, "", "/");
                                if ($("pctChange"))
                                        $("pctChange").innerHTML = applyPosNegStyle(pctChange,"brackets");
                                        xSetCookie("sqPctChange", pctChange, "", "/");
                                if ($("popLast"))
                                        $("popLast").innerHTML = last;
                                        xSetCookie("sqLast", last, "", "/");
                                if ($("popBid"))
                                        $("popBid").innerHTML = bid;
                                        xSetCookie("sqBid", bid, "", "/");
                                if ($("popAsk"))
                                        $("popAsk").innerHTML = ask;
                                        xSetCookie("sqAsk", ask, "", "/");
                                if ($("popBidSize"))
                                        $("popBidSize").innerHTML = bidSize;
                                        xSetCookie("sqBidSize", bidSize, "", "/");
                                if ($("popAskSize"))
                                        $("popAskSize").innerHTML = askSize;
                                        xSetCookie("sqAskSize", askSize, "", "/");
                                if ($("popVolume"))
                                        $("popVolume").innerHTML = volume;
                                        xSetCookie("sqVol", volume, "", "/");
                                
                                var d = new Date();
                                
                                if ($("popTimestamp")){
                                        var popTimestamp = monthConverter[parseInt(d.getMonth()+1)]
                                        popTimestamp += " "+d.getDate()+" "+(d.getHours()<=12?d.getHours():d.getHours()-12)+":"+(d.getMinutes()<10?"0"+d.getMinutes():d.getMinutes())+" "+(d.getHours()<12?"AM":"PM");
                                        $("popTimestamp").innerHTML =  popTimestamp
                                        xSetCookie("sqTimestamp", popTimestamp, "", "/");
                                }
                                showSymbolBasedLinks();
                                $("quotePopSymbol").focus();
                                $("quotePopSymbol").select();
                        }
                }
                } else {
                        // error; do nothing
                }
        }

function showQuote(event) {
    try {
        var element=event.element();
        var quoteData=new QuoteData();
        parts=$F(element.id+"_hidden").evalJSON();
        var strategy=parts.strategy;
        
        for(var leg=0; typeof(parts[leg]) != "undefined"; leg++) {
            quoteData.setValue("symbol", parts[leg].symbol);
            quoteData.setValue("amount", parts[leg].amount);
            quoteData.setValue("transaction", parts[leg].transaction);
            quoteData.setValue("strikePrice", parts[leg].strikePrice);
            quoteData.setValue("securityType", parts[leg].securityType);
            quoteData.setLeg();
        }
        
        (new QuoteRequestMgr(quoteData, "popup", strategy)).sendRequest();
    } catch (error) {
    }
}

//Cookie Functions
function $C(name) {
  return Try.these(function() {
      return document.cookie.split(';').find(function(c) {
          return (c.split('=')[0].indexOf(name) >= 0);
      }).split('=')[1];
  }, function() {
      return null;
  })
}

function clearAllCheckBoxes() {
  var inputs = document.getElementsByTagName('input');
  for (var i = 0; i < inputs.length; i++) {
      if (inputs[i].type === 'checkbox') {
          inputs[i].checked = false
      }
  }
}

/*
 * Changes the display value for an entire table column.
 * table_id:The ID of the table you want to effect
 * col_num:	The column number you want to effect - Starts at 0
 * display:	What you want the display property to be changed to.  Most commonly "table-cell" or "none";
 */
function show_hide_column(table_id, col_num, display) {	
	var rows = $(table_id).getElementsByTagName('tr'); // get table rows

	// loop through rows
	for (var row=0; row < rows.length; row++) {
		
		if (rows[row].getElementsByTagName('td')[col_num]) {
			var cel = rows[row].getElementsByTagName('td')[col_num]; // get rows td elements
		} else if (rows[row].getElementsByTagName('th')[col_num]){
			var cel = rows[row].getElementsByTagName('th')[col_num]; // if no td elements check for th elements
		}
		
		cel.style.display = display;
	}
}



// TICKET: 24391 - JS Error logging

jserrornum=0;
jsLogIndex=0;
_errors = {
	    "FATAL" : 1,
	    "ERROR" : 2,
	    "WARN"  : 4,
	    "INFO"  : 8,
	    "DEBUG" : 16
	};

jsLogLevel = 4|2|1;
var errorArray=[];
log=function(){return false};
if (!(brsr.isIE7 || brsr.isIE6)) {
	function log(type,msg) {
	    if (! (_errors[type] & jsLogLevel)) return; // don't log anything if we are masking it.
	    errorArray.push({type:type,index:++jsLogIndex,log:msg});
	}

if (document.domain.indexOf("tradeking.com")>0) {
	function sendLog() {
		jserrornum=errorArray.length;
		var sendArray=$A(errorArray); 
		errorArray=[];
		if (sendArray.size()>0) {
			new Ajax.Request('/log.php', { 
		        parameters: {
		            logs  : sendArray.toJSON()
		        },
		        onComplete: function(transport) {
		            window.status=jserrornum+' JS lines logged.';
		        }
		    });
		}
	}

		onerror=function() {
		  log('ERROR',''+arguments[0]+' in file '+arguments[1]+' on line '+arguments[2]);
		}
		setInterval("sendLog()",5000);
}
	
	Object.extend(Event, (function() {
	  var cache = Event.cache;

	  function getEventID(element) {
	    if (element._prototypeEventID) return element._prototypeEventID[0];
	    arguments.callee.id = arguments.callee.id || 1;
	    return element._prototypeEventID = [++arguments.callee.id];
	  }

	  function getDOMEventName(eventName) {
	    if (eventName && eventName.include(':')) return "dataavailable";
	    return eventName;
	  }

	  function getCacheForID(id) {
	    return cache[id] = cache[id] || { };
	  }

	  function getWrappersForEventName(id, eventName) {
	    var c = getCacheForID(id);
	    return c[eventName] = c[eventName] || [];
	  }

	  function createWrapper(element, eventName, handler) {
	    var id = getEventID(element);
	    var c = getWrappersForEventName(id, eventName);
	    if (c.pluck("handler").include(handler)) return false;

	    var eventTriggers=[];
	    var wrapper = function(event) {
	      if (!Event || !Event.extend ||
	        (event.eventName && event.eventName != eventName))
	          return false;

	      Event.extend(event);
	      try {
	      handler.call(element, event);
		  } catch (e) {
			  if (eventTriggers[e.fileName+e.lineNumber]) return; // stop repeat occurrences.
			  eventTriggers[e.fileName+e.lineNumber]=(new Date()).getTime();
			  // Log event errors.
			  log('ERROR',"Event: "+e+" on line "+e.lineNumber+" in file "+e.fileName+"\n"+e.stack);
		  }
	    };

	    wrapper.handler = handler;
	    c.push(wrapper);
	    return wrapper;
	  }

	  function findWrapper(id, eventName, handler) {
	    var c = getWrappersForEventName(id, eventName);
	    return c.find(function(wrapper) { return wrapper.handler == handler });
	  }

	  function destroyWrapper(id, eventName, handler) {
	    var c = getCacheForID(id);
	    if (!c[eventName]) return false;
	    c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
	  }

	  function destroyCache() {
	    for (var id in cache)
	      for (var eventName in cache[id])
	        cache[id][eventName] = null;
	  }

	  if (window.attachEvent) {
	    window.attachEvent("onunload", destroyCache);
	  }

	  return {
	    observe: function(element, eventName, handler) {
	      element = $(element);
	      var name = getDOMEventName(eventName);

	      var wrapper = createWrapper(element, eventName, handler);
	      if (!wrapper) return element;

	      if (element.addEventListener) {
	        element.addEventListener(name, wrapper, false);
	      } else {
	        element.attachEvent("on" + name, wrapper);
	      }

	      return element;
	    },

	    stopObserving: function(element, eventName, handler) {
	      element = $(element);
	      var id = getEventID(element), name = getDOMEventName(eventName);

	      if (!handler && eventName) {
	        getWrappersForEventName(id, eventName).each(function(wrapper) {
	          element.stopObserving(eventName, wrapper.handler);
	        });
	        return element;

	      } else if (!eventName) {
	        Object.keys(getCacheForID(id)).each(function(eventName) {
	          element.stopObserving(eventName);
	        });
	        return element;
	      }

	      var wrapper = findWrapper(id, eventName, handler);
	      if (!wrapper) return element;

	      if (element.removeEventListener) {
	        element.removeEventListener(name, wrapper, false);
	      } else {
	        element.detachEvent("on" + name, wrapper);
	      }

	      destroyWrapper(id, eventName, handler);

	      return element;
	    },

	    fire: function(element, eventName, memo) {
	      element = $(element);
	      if (element == document && document.createEvent && !element.dispatchEvent)
	        element = document.documentElement;

	      var event;
	      if (document.createEvent) {
	        event = document.createEvent("HTMLEvents");
	        event.initEvent("dataavailable", true, true);
	      } else {
	        event = document.createEventObject();
	        event.eventType = "ondataavailable";
	      }

	      event.eventName = eventName;
	      event.memo = memo || { };

	      if (document.createEvent) {
	        element.dispatchEvent(event);
	      } else {
	        element.fireEvent(event.eventType, event);
	      }

	      return Event.extend(event);
	    }
	  };
	})());
}


var djConfig = {
    isDebug: false,
    baseUrl: 'https://www.tradeking.com/JS/lib/dojo-release-1.3.2/dojo/',
    parseOnLoad: false
};

/*
	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/

/*
	This is a compiled version of Dojo, built for deployment and not for
	development. To get an editable version, please visit:

		http://dojotoolkit.org

	for documentation and information on getting the source.
*/

(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 _8=_1[i];_2+="var "+_8[0]+" = {}; "+_8[1]+" = "+_8[0]+";"+_8[1]+"._scopeName = '"+_8[1]+"';";_3+=(i==0?"":",")+_8[0];_4+=(i==0?"":",")+_8[1];_5[_8[0]]=_8[1];_6[_8[1]]=_8[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 _c=tn+"";console[_c]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(_c+":");console["log"](a.join(" "));}:function(){};})();}}}if(typeof dojo=="undefined"){this.dojo={_scopeName:"dojo",_scopePrefix:"",_scopePrefixArgs:"",_scopeSuffix:"",_scopeMap:{},_scopeMapRev:{}};}var d=dojo;if(typeof dijit=="undefined"){this.dijit={_scopeName:"dijit"};}if(typeof dojox=="undefined"){this.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 _f in djConfig){d.config[_f]=djConfig[_f];}}dojo.locale=d.config.locale;var rev="$Rev: 18832 $".match(/\d+/);dojo.version={major:0,minor:0,patch:0,flag:"dev",revision:rev?+rev[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 _11={};dojo._mixin=function(obj,_13){for(var x in _13){if(_11[x]===undefined||_11[x]!=_13[x]){obj[x]=_13[x];}}if(d.isIE&&_13){var p=_13.toString;if(typeof p=="function"&&p!=obj.toString&&p!=_11.toString&&p!="\nfunction toString() {\n    [native code]\n}\n"){obj.toString=_13.toString;}}return obj;};dojo.mixin=function(obj,_17){if(!obj){obj={};}for(var i=1,l=arguments.length;i<l;i++){d._mixin(obj,arguments[i]);}return obj;};dojo._getProp=function(_1a,_1b,_1c){var obj=_1c||d.global;for(var i=0,p;obj&&(p=_1a[i]);i++){if(i==0&&this._scopeMap[p]){p=this._scopeMap[p];}obj=(p in obj?obj[p]:(_1b?obj[p]={}:undefined));}return obj;};dojo.setObject=function(_20,_21,_22){var _23=_20.split("."),p=_23.pop(),obj=d._getProp(_23,true,_22);return obj&&p?(obj[p]=_21):undefined;};dojo.getObject=function(_26,_27,_28){return d._getProp(_26.split("."),_27,_28);};dojo.exists=function(_29,obj){return !!d.getObject(_29,false,obj);};dojo["eval"]=function(_2b){return d.global.eval?d.global.eval(_2b):eval(_2b);};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(_2d){var mp=this._modulePrefixes;return !!(mp[_2d]&&mp[_2d].value);},_getModulePrefix:function(_2f){var mp=this._modulePrefixes;if(this._moduleHasPrefix(_2f)){return mp[_2f].value;}return _2f;},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false});dojo._loadPath=function(_31,_32,cb){var uri=((_31.charAt(0)=="/"||_31.match(/^\w+:/))?"":this.baseUrl)+_31;try{return !_32?this._loadUri(uri,cb):this._loadUriAndCheck(uri,_32,cb);}catch(e){console.error(e);return false;}};dojo._loadUri=function(uri,cb){if(this._loadedUrls[uri]){return true;}var _37=this._getText(uri,true);if(!_37){return false;}this._loadedUrls[uri]=true;this._loadedUrls.push(uri);if(cb){_37="("+_37+")";}else{_37=this._scopePrefix+_37+this._scopeSuffix;}if(d.isMoz){_37+="\r\n//@ sourceURL="+uri;}var _38=d["eval"](_37);if(cb){cb(_38);}return true;};dojo._loadUriAndCheck=function(uri,_3a,cb){var ok=false;try{ok=this._loadUri(uri,cb);}catch(e){console.error("failed loading "+uri+" with error: "+e);}return !!(ok&&this._loadedModules[_3a]);};dojo.loaded=function(){this._loadNotifying=true;this._postLoad=true;var mll=d._loaders;this._loaders=[];for(var x=0;x<mll.length;x++){mll[x]();}this._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 _43=(typeof fn=="string")?obj[fn]:fn;arr.push(function(){_43.call(obj);});}}};dojo.addOnLoad=function(obj,_45){d._onto(d._loaders,obj,_45);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"||(dojo.config.useXDomain&&d.isOpera)){if(dojo.isAIR){setTimeout(function(){dojo.loaded();},0);}else{setTimeout(dojo._scopeName+".loaded();",0);}}else{d.loaded();}};dojo._getModuleSymbols=function(_47){var _48=_47.split(".");for(var i=_48.length;i>0;i--){var _4a=_48.slice(0,i).join(".");if((i==1)&&!this._moduleHasPrefix(_4a)){_48[0]="../"+_48[0];}else{var _4b=this._getModulePrefix(_4a);if(_4b!=_4a){_48.splice(0,i,_4b);break;}}}return _48;};dojo._global_omit_module_check=false;dojo.loadInit=function(_4c){_4c();};dojo._loadModule=dojo.require=function(_4d,_4e){_4e=this._global_omit_module_check||_4e;var _4f=this._loadedModules[_4d];if(_4f){return _4f;}var _50=this._getModuleSymbols(_4d).join("/")+".js";var _51=(!_4e)?_4d:null;var ok=this._loadPath(_50,_51);if(!ok&&!_4e){throw new Error("Could not load '"+_4d+"'; last tried '"+_50+"'");}if(!_4e&&!this._isXDomain){_4f=this._loadedModules[_4d];if(!_4f){throw new Error("symbol '"+_4d+"' is not defined after loading '"+_50+"'");}}return _4f;};dojo.provide=function(_53){_53=_53+"";return (d._loadedModules[_53]=d.getObject(_53,true));};dojo.platformRequire=function(_54){var _55=_54.common||[];var _56=_55.concat(_54[d._name]||_54["default"]||[]);for(var x=0;x<_56.length;x++){var _58=_56[x];if(_58.constructor==Array){d._loadModule.apply(d,_58);}else{d._loadModule(_58);}}};dojo.requireIf=function(_59,_5a){if(_59===true){var _5b=[];for(var i=1;i<arguments.length;i++){_5b.push(arguments[i]);}d.require.apply(d,_5b);}};dojo.requireAfterIf=d.requireIf;dojo.registerModulePath=function(_5d,_5e){d._modulePrefixes[_5d]={name:_5d,value:_5e};};dojo.requireLocalization=function(_5f,_60,_61,_62){d.require("dojo.i18n");d.i18n._requireLocalization.apply(d.hostenv,arguments);};var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$");var ire=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$");dojo._Url=function(){var n=null;var _a=arguments;var uri=[_a[0]];for(var i=1;i<_a.length;i++){if(!_a[i]){continue;}var _69=new d._Url(_a[i]+"");var _6a=new d._Url(uri[0]+"");if(_69.path==""&&!_69.scheme&&!_69.authority&&!_69.query){if(_69.fragment!=n){_6a.fragment=_69.fragment;}_69=_6a;}else{if(!_69.scheme){_69.scheme=_6a.scheme;if(!_69.authority){_69.authority=_6a.authority;if(_69.path.charAt(0)!="/"){var _6b=_6a.path.substring(0,_6a.path.lastIndexOf("/")+1)+_69.path;var _6c=_6b.split("/");for(var j=0;j<_6c.length;j++){if(_6c[j]=="."){if(j==_6c.length-1){_6c[j]="";}else{_6c.splice(j,1);j--;}}else{if(j>0&&!(j==1&&_6c[0]=="")&&_6c[j]==".."&&_6c[j-1]!=".."){if(j==(_6c.length-1)){_6c.splice(j,1);_6c[j-1]="";}else{_6c.splice(j-1,2);j-=2;}}}}_69.path=_6c.join("/");}}}}uri=[];if(_69.scheme){uri.push(_69.scheme,":");}if(_69.authority){uri.push("//",_69.authority);}uri.push(_69.path);if(_69.query){uri.push("?",_69.query);}if(_69.fragment){uri.push("#",_69.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(_6f,url){var loc=d._getModuleSymbols(_6f).join("/");if(!loc){return null;}if(loc.lastIndexOf("/")!=loc.length-1){loc+="/";}var _72=loc.indexOf(":");if(loc.charAt(0)!="/"&&(_72==-1||_72>loc.indexOf("/"))){loc=d.baseUrl+loc;}return new d._Url(loc,url);};})();if(typeof window!="undefined"){dojo.isBrowser=true;dojo._name="browser";(function(){var d=dojo;if(document&&document.getElementsByTagName){var _74=document.getElementsByTagName("script");var _75=/dojo(\.xd)?\.js(\W|$)/i;for(var i=0;i<_74.length;i++){var src=_74[i].getAttribute("src");if(!src){continue;}var m=src.match(_75);if(m){if(!d.config.baseUrl){d.config.baseUrl=src.substring(0,m.index);}var cfg=_74[i].getAttribute("djConfig");if(cfg){var _7a=eval("({ "+cfg+" })");for(var x in _7a){dojo.config[x]=_7a[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;var _80=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_80&&!dojo.isChrome){d.isSafari=parseFloat(dav.split("Version/")[1]);if(!d.isSafari||parseFloat(dav.substr(_80+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]||dua.split("Shiretoko/")[1])||undefined;}if(document.all&&!d.isOpera){d.isIE=parseFloat(dav.split("MSIE ")[1])||undefined;if(d.isIE>=8&&document.documentMode!=5){d.isIE=document.documentMode;}}if(dojo.isIE&&window.location.protocol==="file:"){dojo.config.ieForceActiveXXhr=true;}var cm=document.compatMode;d.isQuirks=cm=="BackCompat"||cm=="QuirksMode"||d.isIE<6;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 _82,_83;if(!dojo.isIE||!dojo.config.ieForceActiveXXhr){try{_82=new XMLHttpRequest();}catch(e){}}if(!_82){for(var i=0;i<3;++i){var _85=d._XMLHTTP_PROGIDS[i];try{_82=new ActiveXObject(_85);}catch(e){_83=e;}if(_82){d._XMLHTTP_PROGIDS=[_85];break;}}}if(!_82){throw new Error("XMLHTTP not available: "+_83);}return _82;};d._isDocumentOk=function(_86){var _87=_86.status||0;return (_87>=200&&_87<300)||_87==304||_87==1223||(!_87&&(location.protocol=="file:"||location.protocol=="chrome:"));};var _88=window.location+"";var _89=document.getElementsByTagName("base");var _8a=(_89&&_89.length>0);d._getText=function(uri,_8c){var _8d=this._xhrObj();if(!_8a&&dojo._Url){uri=(new dojo._Url(_88,uri)).toString();}if(d.config.cacheBust){uri+="";uri+=(uri.indexOf("?")==-1?"?":"&")+String(d.config.cacheBust).replace(/\W+/g,"");}_8d.open("GET",uri,false);try{_8d.send(null);if(!d._isDocumentOk(_8d)){var err=Error("Unable to load "+uri+" status:"+_8d.status);err.status=_8d.status;err.responseText=_8d.responseText;throw err;}}catch(e){if(_8c){return null;}throw e;}return _8d.responseText;};var _w=window;var _90=function(_91,fp){var _93=_w[_91]||function(){};_w[_91]=function(){fp.apply(_w,arguments);_93.apply(_w,arguments);};};d._windowUnloaders=[];d.windowUnloaded=function(){var mll=d._windowUnloaders;while(mll.length){(mll.pop())();}};var _95=0;d.addOnWindowUnload=function(obj,_97){d._onto(d._windowUnloaders,obj,_97);if(!_95){_95=1;_90("onunload",d.windowUnloaded);}};var _98=0;d.addOnUnload=function(obj,_9a){d._onto(d._unloaders,obj,_9a);if(!_98){_98=1;_90("onbeforeunload",dojo.unloaded);}};})();dojo._initFired=false;dojo._loadInit=function(e){dojo._initFired=true;var _9c=e&&e.type?e.type.toLowerCase():"load";if(arguments.callee.initialized||(_9c!="domcontentloaded"&&_9c!="load")){return;}arguments.callee.initialized=true;if("_khtmlTimer" in dojo){clearInterval(dojo._khtmlTimer);delete dojo._khtmlTimer;}if(dojo._inFlightCount==0){dojo._modulesLoaded();}};if(!dojo.config.afterOnLoad){if(document.addEventListener){if(dojo.isWebKit>525||dojo.isOpera||dojo.isFF>=3||(dojo.isMoz&&dojo.config.enableMozDomContentLoaded===true)){document.addEventListener("DOMContentLoaded",dojo._loadInit,null);}window.addEventListener("load",dojo._loadInit,null);}if(dojo.isAIR){window.addEventListener("load",dojo._loadInit,null);}else{if((dojo.isWebKit<525)||dojo.isKhtml){dojo._khtmlTimer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){dojo._loadInit();}},10);}}}if(dojo.isIE){if(!dojo.config.afterOnLoad){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");document.createStyleSheet().addRule("v\\:*","behavior:url(#default#VML);  display:inline-block");}catch(e){}}}(function(){var mp=dojo.config["modulePaths"];if(mp){for(var _9e in mp){dojo.registerModulePath(_9e,mp[_9e]);}}})();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");dojo.require("dojo.i18n");}if(!dojo._hasResource["dojo._base.lang"]){dojo._hasResource["dojo._base.lang"]=true;dojo.provide("dojo._base.lang");dojo.isString=function(it){return !!arguments.length&&it!=null&&(typeof it=="string"||it instanceof String);};dojo.isArray=function(it){return it&&(it instanceof Array||typeof it=="array");};dojo.isFunction=(function(){var _a1=function(it){var t=typeof it;return it&&(t=="function"||it instanceof Function);};return dojo.isSafari?function(it){if(typeof it=="function"&&it=="[object NodeList]"){return false;}return _a1(it);}:_a1;})();dojo.isObject=function(it){return it!==undefined&&(it===null||typeof it=="object"||dojo.isArray(it)||dojo.isFunction(it));};dojo.isArrayLike=function(it){var d=dojo;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&&!dojo.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));};dojo.extend=function(_a9,_aa){for(var i=1,l=arguments.length;i<l;i++){dojo._mixin(_a9.prototype,arguments[i]);}return _a9;};dojo._hitchArgs=function(_ad,_ae){var pre=dojo._toArray(arguments,2);var _b0=dojo.isString(_ae);return function(){var _b1=dojo._toArray(arguments);var f=_b0?(_ad||dojo.global)[_ae]:_ae;return f&&f.apply(_ad||this,pre.concat(_b1));};};dojo.hitch=function(_b3,_b4){if(arguments.length>2){return dojo._hitchArgs.apply(dojo,arguments);}if(!_b4){_b4=_b3;_b3=null;}if(dojo.isString(_b4)){_b3=_b3||dojo.global;if(!_b3[_b4]){throw (["dojo.hitch: scope[\"",_b4,"\"] is null (scope=\"",_b3,"\")"].join(""));}return function(){return _b3[_b4].apply(_b3,arguments||[]);};}return !_b3?_b4:function(){return _b4.apply(_b3,arguments||[]);};};dojo.delegate=dojo._delegate=(function(){function TMP(){};return function(obj,_b7){TMP.prototype=obj;var tmp=new TMP();if(_b7){dojo._mixin(tmp,_b7);}return tmp;};})();(function(){var _b9=function(obj,_bb,_bc){return (_bc||[]).concat(Array.prototype.slice.call(obj,_bb||0));};var _bd=function(obj,_bf,_c0){var arr=_c0||[];for(var x=_bf||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};dojo._toArray=dojo.isIE?function(obj){return ((obj.item)?_bd:_b9).apply(this,arguments);}:_b9;})();dojo.partial=function(_c4){var arr=[null];return dojo.hitch.apply(dojo,arr.concat(dojo._toArray(arguments)));};dojo.clone=function(o){if(!o){return o;}if(dojo.isArray(o)){var r=[];for(var i=0;i<o.length;++i){r.push(dojo.clone(o[i]));}return r;}if(!dojo.isObject(o)){return o;}if(o.nodeType&&o.cloneNode){return o.cloneNode(true);}if(o instanceof Date){return new Date(o.getTime());}r=new o.constructor();for(i in o){if(!(i in r)||r[i]!=o[i]){r[i]=dojo.clone(o[i]);}}return r;};dojo.trim=String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};}if(!dojo._hasResource["dojo._base.declare"]){dojo._hasResource["dojo._base.declare"]=true;dojo.provide("dojo._base.declare");dojo.declare=function(_cb,_cc,_cd){var dd=arguments.callee,_cf;if(dojo.isArray(_cc)){_cf=_cc;_cc=_cf.shift();}if(_cf){dojo.forEach(_cf,function(m,i){if(!m){throw (_cb+": mixin #"+i+" is null");}_cc=dd._delegate(_cc,m);});}var _d2=dd._delegate(_cc);_cd=_cd||{};_d2.extend(_cd);dojo.extend(_d2,{declaredClass:_cb,_constructor:_cd.constructor});_d2.prototype.constructor=_d2;return dojo.setObject(_cb,_d2);};dojo.mixin(dojo.declare,{_delegate:function(_d3,_d4){var bp=(_d3||0).prototype,mp=(_d4||0).prototype,dd=dojo.declare;var _d8=dd._makeCtor();dojo.mixin(_d8,{superclass:bp,mixin:mp,extend:dd._extend});if(_d3){_d8.prototype=dojo._delegate(bp);}dojo.extend(_d8,dd._core,mp||0,{_constructor:null,preamble:null});_d8.prototype.constructor=_d8;_d8.prototype.declaredClass=(bp||0).declaredClass+"_"+(mp||0).declaredClass;return _d8;},_extend:function(_d9){var i,fn;for(i in _d9){if(dojo.isFunction(fn=_d9[i])&&!0[i]){fn.nom=i;fn.ctor=this;}}dojo.extend(this,_d9);},_makeCtor:function(){return function(){this._construct(arguments);};},_core:{_construct:function(_dc){var c=_dc.callee,s=c.superclass,ct=s&&s.constructor,m=c.mixin,mct=m&&m.constructor,a=_dc,ii,fn;if(a[0]){if(((fn=a[0].preamble))){a=fn.apply(this,a)||a;}}if((fn=c.prototype.preamble)){a=fn.apply(this,a)||a;}if(ct&&ct.apply){ct.apply(this,a);}if(mct&&mct.apply){mct.apply(this,a);}if((ii=c.prototype._constructor)){ii.apply(this,_dc);}if(this.constructor.prototype==c.prototype&&(ct=this.postscript)){ct.apply(this,_dc);}},_findMixin:function(_e5){var c=this.constructor,p,m;while(c){p=c.superclass;m=c.mixin;if(m==_e5||(m instanceof _e5.constructor)){return p;}if(m&&m._findMixin&&(m=m._findMixin(_e5))){return m;}c=p&&p.constructor;}},_findMethod:function(_e9,_ea,_eb,has){var p=_eb,c,m,f;do{c=p.constructor;m=c.mixin;if(m&&(m=this._findMethod(_e9,_ea,m,has))){return m;}if((f=p[_e9])&&(has==(f==_ea))){return p;}p=c.superclass;}while(p);return !has&&(p=this._findMixin(_eb))&&this._findMethod(_e9,_ea,p,has);},inherited:function(_f1,_f2,_f3){var a=arguments;if(!dojo.isString(a[0])){_f3=_f2;_f2=_f1;_f1=_f2.callee.nom;}a=_f3||_f2;var c=_f2.callee,p=this.constructor.prototype,fn,mp;if(this[_f1]!=c||p[_f1]==c){mp=(c.ctor||0).superclass||this._findMethod(_f1,c,p,true);if(!mp){throw (this.declaredClass+": inherited method \""+_f1+"\" mismatch");}p=this._findMethod(_f1,c,mp,false);}fn=p&&p[_f1];if(!fn){throw (mp.declaredClass+": inherited method \""+_f1+"\" not found");}return fn.apply(this,a);}}});}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(_100,_101,_102){_100=_100||dojo.global;var f=_100[_101];if(!f||!f._listeners){var d=dojo._listener.getDispatcher();d.target=f;d._listeners=[];f=_100[_101]=d;}return f._listeners.push(_102);},remove:function(_105,_106,_107){var f=(_105||dojo.global)[_106];if(f&&f._listeners&&_107--){delete f._listeners[_107];}}};dojo.connect=function(obj,_10a,_10b,_10c,_10d){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,_113,_114,_115){var l=dojo._listener,h=l.add(obj,_113,dojo.hitch(_114,_115));return [obj,_113,h,l];};dojo.disconnect=function(_118){if(_118&&_118[0]!==undefined){dojo._disconnect.apply(this,_118);delete _118[0];}};dojo._disconnect=function(obj,_11a,_11b,_11c){_11c.remove(obj,_11a,_11b);};dojo._topics={};dojo.subscribe=function(_11d,_11e,_11f){return [_11d,dojo._listener.add(dojo._topics,_11d,dojo.hitch(_11e,_11f))];};dojo.unsubscribe=function(_120){if(_120){dojo._listener.remove(dojo._topics,_120[0],_120[1]);}};dojo.publish=function(_121,args){var f=dojo._topics[_121];if(f){f.apply(this,args||[]);}};dojo.connectPublisher=function(_124,obj,_126){var pf=function(){dojo.publish(_124,arguments);};return (_126)?dojo.connect(obj,_126,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(_128){this.chain=[];this.id=this._nextId();this.fired=-1;this.paused=0;this.results=[null,null];this.canceller=_128;this.silentlyCancelled=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 _132=dojo.hitch.apply(dojo,arguments);return this.addCallbacks(_132,_132);},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._fire();}return this;},_fire:function(){var _139=this.chain;var _13a=this.fired;var res=this.results[_13a];var self=this;var cb=null;while((_139.length>0)&&(this.paused==0)){var f=_139.shift()[_13a];if(!f){continue;}var func=function(){var ret=f(res);if(typeof ret!="undefined"){res=ret;}_13a=((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){_13a=1;res=err;}}}this.fired=_13a;this.results[_13a]=res;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,_145,_146){if(it===undefined){return "undefined";}var _147=typeof it;if(_147=="number"||_147=="boolean"){return it+"";}if(it===null){return "null";}if(dojo.isString(it)){return dojo._escapeString(it);}var _148=arguments.callee;var _149;_146=_146||"";var _14a=_145?_146+dojo.toJsonIndentStr:"";var tf=it.__json__||it.json;if(dojo.isFunction(tf)){_149=tf.call(it);if(it!==_149){return _148(_149,_145,_14a);}}if(it.nodeType&&it.cloneNode){throw new Error("Can't serialize DOM nodes");}var sep=_145?" ":"";var _14d=_145?"\n":"";if(dojo.isArray(it)){var res=dojo.map(it,function(obj){var val=_148(obj,_145,_14a);if(typeof val!="string"){val="undefined";}return _14d+_14a+val;});return "["+res.join(","+sep)+_14d+_146+"]";}if(_147=="function"){return null;}var _151=[],key;for(key in it){var _153,val;if(typeof key=="number"){_153="\""+key+"\"";}else{if(typeof key=="string"){_153=dojo._escapeString(key);}else{continue;}}val=_148(it[key],_145,_14a);if(typeof val!="string"){continue;}_151.push(_14d+_14a+_153+":"+sep+val);}return "{"+_151.join(","+sep)+_14d+_146+"}";};}if(!dojo._hasResource["dojo._base.array"]){dojo._hasResource["dojo._base.array"]=true;dojo.provide("dojo._base.array");(function(){var _155=function(arr,obj,cb){return [dojo.isString(arr)?arr.split(""):arr,obj||dojo.global,dojo.isString(cb)?new Function("item","index","array",cb):cb];};dojo.mixin(dojo,{indexOf:function(_159,_15a,_15b,_15c){var step=1,end=_159.length||0,i=0;if(_15c){i=end-1;step=end=-1;}if(_15b!=undefined){i=_15b;}if((_15c&&i>end)||i<end){for(;i!=end;i+=step){if(_159[i]==_15a){return i;}}}return -1;},lastIndexOf:function(_15f,_160,_161){return dojo.indexOf(_15f,_160,_161,true);},forEach:function(arr,_163,_164){if(!arr||!arr.length){return;}var _p=_155(arr,_164,_163);arr=_p[0];for(var i=0,l=arr.length;i<l;++i){_p[2].call(_p[1],arr[i],i,arr);}},_everyOrSome:function(_168,arr,_16a,_16b){var _p=_155(arr,_16b,_16a);arr=_p[0];for(var i=0,l=arr.length;i<l;++i){var _16f=!!_p[2].call(_p[1],arr[i],i,arr);if(_168^_16f){return _16f;}}return _168;},every:function(arr,_171,_172){return dojo._everyOrSome(true,arr,_171,_172);},some:function(arr,_174,_175){return dojo._everyOrSome(false,arr,_174,_175);},map:function(arr,_177,_178){var _p=_155(arr,_178,_177);arr=_p[0];var _17a=(arguments[3]?(new arguments[3]()):[]);for(var i=0,l=arr.length;i<l;++i){_17a.push(_p[2].call(_p[1],arr[i],i,arr));}return _17a;},filter:function(arr,_17e,_17f){var _p=_155(arr,_17f,_17e);arr=_p[0];var _181=[];for(var i=0,l=arr.length;i<l;++i){if(_p[2].call(_p[1],arr[i],i,arr)){_181.push(arr[i]);}}return _181;}});})();}if(!dojo._hasResource["dojo._base.Color"]){dojo._hasResource["dojo._base.Color"]=true;dojo.provide("dojo._base.Color");(function(){var d=dojo;dojo.Color=function(_185){if(_185){this.setColor(_185);}};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]};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(_18b){if(d.isString(_18b)){d.colorFromString(_18b,this);}else{if(d.isArray(_18b)){d.colorFromArray(_18b,this);}else{this._set(_18b.r,_18b.g,_18b.b,_18b.a);if(!(_18b 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(_191){var t=this,rgb=t.r+", "+t.g+", "+t.b;return (_191?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")";},toString:function(){return this.toCss(true);}});dojo.blendColors=function(_194,end,_196,obj){var t=obj||new d.Color();d.forEach(["r","g","b","a"],function(x){t[x]=_194[x]+(end[x]-_194[x])*_196;if(x!="a"){t[x]=Math.round(t[x]);}});return t.sanitize();};dojo.colorFromRgb=function(_19a,obj){var m=_19a.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&dojo.colorFromArray(m[1].split(/\s*,\s*/),obj);};dojo.colorFromHex=function(_19d,obj){var t=obj||new d.Color(),bits=(_19d.length==4)?4:8,mask=(1<<bits)-1;_19d=Number("0x"+_19d.substr(1));if(isNaN(_19d)){return null;}d.forEach(["b","g","r"],function(x){var c=_19d&mask;_19d>>=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(_1aa,_1ab){dojo.global=_1aa;dojo.doc=_1ab;};dojo.withGlobal=function(_1ac,_1ad,_1ae,_1af){var _1b0=dojo.global;try{dojo.global=_1ac;return dojo.withDoc.call(null,_1ac.document,_1ad,_1ae,_1af);}finally{dojo.global=_1b0;}};dojo.withDoc=function(_1b1,_1b2,_1b3,_1b4){var _1b5=dojo.doc,_1b6=dojo._bodyLtr;try{dojo.doc=_1b1;delete dojo._bodyLtr;if(_1b3&&dojo.isString(_1b2)){_1b2=_1b3[_1b2];}return _1b2.apply(_1b3,_1b4||[]);}finally{dojo.doc=_1b5;if(_1b6!==undefined){dojo._bodyLtr=_1b6;}}};}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 _1bb=name;if(!dojo.isIE&&(name=="mouseenter"||name=="mouseleave")){var ofp=fp;name=(name=="mouseenter")?"mouseover":"mouseout";fp=function(e){if(dojo.isFF<=2){try{e.relatedTarget.tagName;}catch(e2){return;}}if(!dojo.isDescendant(e.relatedTarget,node)){return ofp.call(this,e);}};}node.addEventListener(name,fp,false);return fp;},remove:function(node,_1bf,_1c0){if(node){_1bf=del._normalizeEventName(_1bf);if(!dojo.isIE&&(_1bf=="mouseenter"||_1bf=="mouseleave")){_1bf=(_1bf=="mouseenter")?"mouseover":"mouseout";}node.removeEventListener(_1bf,_1c0,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,_1c6){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,_1c9){return del._fixEvent(evt,_1c9);};dojo.stopEvent=function(evt){evt.preventDefault();evt.stopPropagation();};var _1cb=dojo._listener;dojo._connect=function(obj,_1cd,_1ce,_1cf,_1d0){var _1d1=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener);var lid=_1d1?(_1d0?2:1):0,l=[dojo._listener,del,_1cb][lid];var h=l.add(obj,_1cd,dojo.hitch(_1ce,_1cf));return [obj,_1cd,h,lid];};dojo._disconnect=function(obj,_1d6,_1d7,_1d8){([dojo._listener,del,_1cb][_1d8]).remove(obj,_1d6,_1d7);};dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,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};if(dojo.isIE){var _1d9=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};var iel=dojo._listener;var _1dd=(dojo._ieListenersName="_"+dojo._scopeName+"_listeners");if(!dojo.config._allow_leaks){_1cb=iel=dojo._ie_listener={handlers:[],add:function(_1de,_1df,_1e0){_1de=_1de||dojo.global;var f=_1de[_1df];if(!f||!f[_1dd]){var d=dojo._getIeDispatcher();d.target=f&&(ieh.push(f)-1);d[_1dd]=[];f=_1de[_1df]=d;}return f[_1dd].push(ieh.push(_1e0)-1);},remove:function(_1e4,_1e5,_1e6){var f=(_1e4||dojo.global)[_1e5],l=f&&f[_1dd];if(f&&l&&_1e6--){delete ieh[l[_1e6]];delete l[_1e6];}}};var ieh=iel.handlers;}dojo.mixin(del,{add:function(node,_1ea,fp){if(!node){return;}_1ea=del._normalizeEventName(_1ea);if(_1ea=="onkeypress"){var kd=node.onkeydown;if(!kd||!kd[_1dd]||!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,_1ea,del._fixCallback(fp));},remove:function(node,_1ef,_1f0){_1ef=del._normalizeEventName(_1ef);iel.remove(node,_1ef,_1f0);if(_1ef=="onkeypress"){var kd=node.onkeydown;if(--kd._stealthKeydownRefs<=0){iel.remove(node,"onkeydown",kd._stealthKeydownHandle);delete kd._stealthKeydownHandle;}}},_normalizeEventName:function(_1f2){return _1f2.slice(0,2)!="on"?"on"+_1f2:_1f2;},_nop:function(){},_fixEvent:function(evt,_1f4){if(!evt){var w=_1f4&&(_1f4.ownerDocument||_1f4.document||_1f4).parentWindow||window;evt=w.event;}if(!evt){return (evt);}evt.target=evt.srcElement;evt.currentTarget=(_1f4||evt.srcElement);evt.layerX=evt.offsetX;evt.layerY=evt.offsetY;var se=evt.srcElement,doc=(se&&se.ownerDocument)||document;var _1f8=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;var _1f9=dojo._getIeDocumentElementOffset();evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_1f8.scrollLeft||0)-_1f9.x;evt.pageY=evt.clientY+(_1f8.scrollTop||0)-_1f9.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[_1dd]){return;}var k=evt.keyCode;var _1ff=k!=13&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_1ff||evt.ctrlKey){var c=_1ff?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;_1d9(evt,faux.keyCode);}},_stopPropagation:function(){this.cancelBubble=true;},_preventDefault:function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){_1d9(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,_204){var faux=dojo.mixin({},evt,_204);del._setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};if(dojo.isOpera){dojo.mixin(del,{_fixEvent:function(evt,_207){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,_20a,fp){if(!node){return;}var _20c=del._add(node,_20a,fp);if(del._normalizeEventName(_20a)=="keypress"){_20c._stealthKeyDownHandle=del._add(node,"keydown",function(evt){var k=evt.keyCode;var _20f=k!=13&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_20f||evt.ctrlKey){var c=_20f?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 _20c;},remove:function(node,_213,_214){if(node){if(_214._stealthKeyDownHandle){del._remove(node,"keydown",_214._stealthKeyDownHandle);}del._remove(node,_213,_214);}},_fixEvent:function(evt,_216){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,_219){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(_219,args);var lls=[].concat(ls);for(var i in lls){var f=h[lls[i]];if(!(i in ap)&&f){f.apply(_219,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(dojo.isString(id)){var _d=doc||dojo.doc;var te=_d.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_d.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{return id;}};}else{dojo.byId=function(id,doc){return dojo.isString(id)?(doc||dojo.doc).getElementById(id):id;};}(function(){var d=dojo;var _22f=null;d.addOnWindowUnload(function(){_22f=null;});dojo._destroyElement=dojo.destroy=function(node){node=d.byId(node);try{if(!_22f||_22f.ownerDocument!=node.ownerDocument){_22f=node.ownerDocument.createElement("div");}_22f.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_22f.innerHTML="";}catch(e){}};dojo.isDescendant=function(node,_232){try{node=d.byId(node);_232=d.byId(_232);while(node){if(node===_232){return true;}node=node.parentNode;}}catch(e){}return false;};dojo.setSelectable=function(node,_234){node=d.byId(node);if(d.isMozilla){node.style.MozUserSelect=_234?"":"none";}else{if(d.isKhtml||d.isWebKit){node.style.KhtmlUserSelect=_234?"auto":"none";}else{if(d.isIE){var v=(node.unselectable=_234?"":"on");d.query("*",node).forEach("item.unselectable = '"+v+"'");}}}};var _236=function(node,ref){var _239=ref.parentNode;if(_239){_239.insertBefore(node,ref);}};var _23a=function(node,ref){var _23d=ref.parentNode;if(_23d){if(_23d.lastChild==ref){_23d.appendChild(node);}else{_23d.insertBefore(node,ref.nextSibling);}}};dojo.place=function(node,_23f,_240){_23f=d.byId(_23f);if(d.isString(node)){node=node.charAt(0)=="<"?d._toDom(node,_23f.ownerDocument):d.byId(node);}if(typeof _240=="number"){var cn=_23f.childNodes;if(!cn.length||cn.length<=_240){_23f.appendChild(node);}else{_236(node,cn[_240<0?0:_240]);}}else{switch(_240){case "before":_236(node,_23f);break;case "after":_23a(node,_23f);break;case "replace":_23f.parentNode.replaceChild(node,_23f);break;case "only":d.empty(_23f);_23f.appendChild(node);break;case "first":if(_23f.firstChild){_236(node,_23f.firstChild);break;}default:_23f.appendChild(node);}}return node;};dojo.boxModel="content-box";if(d.isIE){var _dcm=document.compatMode;d.boxModel=_dcm=="BackCompat"||_dcm=="QuirksMode"||d.isIE<6?"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(_249,_24a){return parseFloat(_24a)||0;};}else{d._toPixelValue=function(_24b,_24c){if(!_24c){return 0;}if(_24c=="medium"){return 4;}if(_24c.slice&&_24c.slice(-2)=="px"){return parseFloat(_24c);}with(_24b){var _24d=style.left;var _24e=runtimeStyle.left;runtimeStyle.left=currentStyle.left;try{style.left=_24c;_24c=style.pixelLeft;}catch(e){_24c=0;}style.left=_24d;runtimeStyle.left=_24e;}return _24c;};}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,_257){var ov=_257*100;node.style.zoom=1;af(node,1).Enabled=!(_257==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,_257);});}return _257;}:function(node,_25b){return node.style.opacity=_25b;};var _25c={left:true,top:true};var _25d=/margin|padding|width|height|max|min|offset/;var _25e=function(node,type,_261){type=type.toLowerCase();if(d.isIE){if(_261=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_261){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _25c)){_25c[type]=_25d.test(type);}return _25c[type]?px(node,_261):_261;};var _262=d.isIE?"styleFloat":"cssFloat",_263={"cssFloat":_262,"styleFloat":_262,"float":_262};dojo.style=function(node,_265,_266){var n=d.byId(node),args=arguments.length,op=(_265=="opacity");_265=_263[_265]||_265;if(args==3){return op?d._setOpacity(n,_266):n.style[_265]=_266;}if(args==2&&op){return d._getOpacity(n);}var s=gcs(n);if(args==2&&!d.isString(_265)){for(var x in _265){d.style(node,x,_265[x]);}return s;}return (args==1)?s:_25e(n,_265,s[_265]||n.style[_265]);};dojo._getPadExtents=function(n,_26d){var s=_26d||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,_272){var ne="none",s=_272||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,_278){var s=_278||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,_27d){var s=_27d||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,_284){var s=_284||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,_28f){var s=_28f||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,_296){var s=_296||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,_2a5,_2a6,_2a7){if(d._usesBorderBox(node)){var pb=d._getPadBorderExtents(node,_2a7);if(_2a5>=0){_2a5+=pb.w;}if(_2a6>=0){_2a6+=pb.h;}}d._setBox(node,NaN,NaN,_2a5,_2a6);};dojo._setMarginBox=function(node,_2aa,_2ab,_2ac,_2ad,_2ae){var s=_2ae||gcs(node),bb=d._usesBorderBox(node),pb=bb?_2b2:d._getPadBorderExtents(node,s);if(d.isWebKit){if(d._isButtonTag(node)){var ns=node.style;if(_2ac>=0&&!ns.width){ns.width="4px";}if(_2ad>=0&&!ns.height){ns.height="4px";}}}var mb=d._getMarginExtents(node,s);if(_2ac>=0){_2ac=Math.max(_2ac-pb.w-mb.w,0);}if(_2ad>=0){_2ad=Math.max(_2ad-pb.h-mb.h,0);}d._setBox(node,_2aa,_2ab,_2ac,_2ad);};var _2b2={l:0,t:0,w:0,h:0};dojo.marginBox=function(node,box){var n=d.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=d.byId(node),s=gcs(n),b=box;return !b?d._getContentBox(n,s):d._setContentSize(n,b.w,b.h,s);};var _2bf=function(node,prop){if(!(node=(node||0).parentNode)){return 0;}var val,_2c3=0,_b=d.body();while(node&&node.style){if(gcs(node).position=="fixed"){return 0;}val=node[prop];if(val){_2c3+=val-0;if(node==_b){break;}}node=node.parentNode;}return _2c3;};dojo._docScroll=function(){var _b=d.body(),_w=d.global,de=d.doc.documentElement;return {y:(_w.pageYOffset||de.scrollTop||_b.scrollTop||0),x:(_w.pageXOffset||d._fixIeBiDiScrollLeft(de.scrollLeft)||_b.scrollLeft||0)};};dojo._isBodyLtr=function(){return ("_bodyLtr" in d)?d._bodyLtr:d._bodyLtr=gcs(d.body()).direction=="ltr";};dojo._getIeDocumentElementOffset=function(){var de=d.doc.documentElement;if(d.isIE<7){return {x:d._isBodyLtr()||window.parent==window?de.clientLeft:de.offsetWidth-de.clientWidth-de.clientLeft,y:de.clientTop};}else{if(d.isIE<8){return {x:de.getBoundingClientRect().left,y:de.getBoundingClientRect().top};}else{return {x:0,y:0};}}};dojo._fixIeBiDiScrollLeft=function(_2c9){var dd=d.doc;if(d.isIE<8&&!d._isBodyLtr()){var de=dd.compatMode=="BackCompat"?dd.body:dd.documentElement;return _2c9+de.clientWidth-de.scrollWidth;}return _2c9;};dojo._abs=function(node,_2cd){var db=d.body(),dh=d.body().parentNode,ret;if(node["getBoundingClientRect"]){var _2d1=node.getBoundingClientRect();ret={x:_2d1.left,y:_2d1.top};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);}if(d.isIE){var _2d3=d._getIeDocumentElementOffset();ret.x-=_2d3.x+(d.isQuirks?db.clientLeft:0);ret.y-=_2d3.y+(d.isQuirks?db.clientTop:0);}}else{ret={x:0,y:0};if(node["offsetParent"]){ret.x-=_2bf(node,"scrollLeft");ret.y-=_2bf(node,"scrollTop");var _2d4=node;do{var n=_2d4.offsetLeft,t=_2d4.offsetTop;ret.x+=isNaN(n)?0:n;ret.y+=isNaN(t)?0:t;cs=gcs(_2d4);if(_2d4!=node){if(d.isFF){ret.x+=2*px(_2d4,cs.borderLeftWidth);ret.y+=2*px(_2d4,cs.borderTopWidth);}else{ret.x+=px(_2d4,cs.borderLeftWidth);ret.y+=px(_2d4,cs.borderTopWidth);}}if(d.isFF&&cs.position=="static"){var _2d7=_2d4.parentNode;while(_2d7!=_2d4.offsetParent){var pcs=gcs(_2d7);if(pcs.position=="static"){ret.x+=px(_2d4,pcs.borderLeftWidth);ret.y+=px(_2d4,pcs.borderTopWidth);}_2d7=_2d7.parentNode;}}_2d4=_2d4.offsetParent;}while((_2d4!=dh)&&_2d4);}else{if(node.x&&node.y){ret.x+=isNaN(node.x)?0:node.x;ret.y+=isNaN(node.y)?0:node.y;}}}if(_2cd){var _2d9=d._docScroll();ret.x+=_2d9.x;ret.y+=_2d9.y;}return ret;};dojo.coords=function(node,_2db){var n=d.byId(node),s=gcs(n),mb=d._getMarginBox(n,s);var abs=d._abs(n,_2db);mb.x=abs.x;mb.y=abs.y;return mb;};var _2e0=d.isIE<8;var _2e1=function(name){switch(name.toLowerCase()){case "tabindex":return _2e0?"tabIndex":"tabindex";case "readonly":return "readOnly";case "class":return "className";case "for":case "htmlfor":return _2e0?"htmlFor":"for";default:return name;}};var _2e3={colspan:"colSpan",enctype:"enctype",frameborder:"frameborder",method:"method",rowspan:"rowSpan",scrolling:"scrolling",shape:"shape",span:"span",type:"type",valuetype:"valueType",classname:"className",innerhtml:"innerHTML"};dojo.hasAttr=function(node,name){node=d.byId(node);var _2e6=_2e1(name);_2e6=_2e6=="htmlFor"?"for":_2e6;var attr=node.getAttributeNode&&node.getAttributeNode(_2e6);return attr?attr.specified:false;};var _2e8={},_ctr=0,_2ea=dojo._scopeName+"attrid",_2eb={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};dojo.attr=function(node,name,_2ee){node=d.byId(node);var args=arguments.length;if(args==2&&!d.isString(name)){for(var x in name){d.attr(node,x,name[x]);}return;}name=_2e1(name);if(args==3){if(d.isFunction(_2ee)){var _2f1=d.attr(node,_2ea);if(!_2f1){_2f1=_ctr++;d.attr(node,_2ea,_2f1);}if(!_2e8[_2f1]){_2e8[_2f1]={};}var h=_2e8[_2f1][name];if(h){d.disconnect(h);}else{try{delete node[name];}catch(e){}}_2e8[_2f1][name]=d.connect(node,name,_2ee);}else{if(typeof _2ee=="boolean"){node[name]=_2ee;}else{if(name==="style"&&!d.isString(_2ee)){d.style(node,_2ee);}else{if(name=="className"){node.className=_2ee;}else{if(name==="innerHTML"){if(d.isIE&&node.tagName.toLowerCase() in _2eb){d.empty(node);node.appendChild(d._toDom(_2ee,node.ownerDocument));}else{node[name]=_2ee;}}else{node.setAttribute(name,_2ee);}}}}}}else{var prop=_2e3[name.toLowerCase()];if(prop){return node[prop];}var _2f4=node[name];return (typeof _2f4=="boolean"||typeof _2f4=="function")?_2f4:(d.hasAttr(node,name)?node.getAttribute(name):null);}};dojo.removeAttr=function(node,name){d.byId(node).removeAttribute(_2e1(name));};dojo.create=function(tag,_2f8,_2f9,pos){var doc=d.doc;if(_2f9){_2f9=d.byId(_2f9);doc=_2f9.ownerDocument;}if(d.isString(tag)){tag=doc.createElement(tag);}if(_2f8){d.attr(tag,_2f8);}if(_2f9){d.place(tag,_2f9,pos);}return tag;};d.empty=d.isIE?function(node){node=d.byId(node);for(var c;c=node.lastChild;){d.destroy(c);}}:function(node){d.byId(node).innerHTML="";};var _2ff={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"]},_300=/<\s*([\w\:]+)/,_301={},_302=0,_303="__"+d._scopeName+"ToDomId";for(var _304 in _2ff){var tw=_2ff[_304];tw.pre=_304=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}d._toDom=function(frag,doc){doc=doc||d.doc;var _308=doc[_303];if(!_308){doc[_303]=_308=++_302+"";_301[_308]=doc.createElement("div");}frag+="";var _309=frag.match(_300),tag=_309?_309[1].toLowerCase():"",_30b=_301[_308],wrap,i,fc,df;if(_309&&_2ff[tag]){wrap=_2ff[tag];_30b.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_30b=_30b.firstChild;}}else{_30b.innerHTML=frag;}if(_30b.childNodes.length==1){return _30b.removeChild(_30b.firstChild);}df=doc.createDocumentFragment();while(fc=_30b.firstChild){df.appendChild(fc);}return df;};var _30f="className";dojo.hasClass=function(node,_311){return ((" "+d.byId(node)[_30f]+" ").indexOf(" "+_311+" ")>=0);};dojo.addClass=function(node,_313){node=d.byId(node);var cls=node[_30f];if((" "+cls+" ").indexOf(" "+_313+" ")<0){node[_30f]=cls+(cls?" ":"")+_313;}};dojo.removeClass=function(node,_316){node=d.byId(node);var t=d.trim((" "+node[_30f]+" ").replace(" "+_316+" "," "));if(node[_30f]!=t){node[_30f]=t;}};dojo.toggleClass=function(node,_319,_31a){if(_31a===undefined){_31a=!d.hasClass(node,_319);}d[_31a?"addClass":"removeClass"](node,_319);};})();}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){a.constructor=d.NodeList;dojo._mixin(a,d.NodeList.prototype);return a;};var _321=function(f,a,o){a=[0].concat(aps.call(a,0));if(!a.sort){a=aps.call(a,0);}o=o||d.global;return function(node){a[0]=node;return f.apply(o,a);};};var _326=function(f,o){return function(){this.forEach(_321(f,arguments,o));return this;};};var _329=function(f,o){return function(){return this.map(_321(f,arguments,o));};};var _32c=function(f,o){return function(){return this.filter(_321(f,arguments,o));};};var _32f=function(f,g,o){return function(){var a=arguments,body=_321(f,a,o);if(g.call(o||d.global,a)){return this.map(body);}this.forEach(body);return this;};};var _335=function(a){return a.length==1&&d.isString(a[0]);};var _337=function(node){var p=node.parentNode;if(p){p.removeChild(node);}};dojo.NodeList=function(){return tnl(Array.apply(null,arguments));};var nl=d.NodeList,nlp=nl.prototype;nl._wrap=tnl;nl._adaptAsMap=_329;nl._adaptAsForEach=_326;nl._adaptAsFilter=_32c;nl._adaptWithCondition=_32f;d.forEach(["slice","splice"],function(name){var f=ap[name];nlp[name]=function(){return tnl(f.apply(this,arguments));};});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]=_32f(d[name],_335);});d.forEach(["connect","addClass","removeClass","toggleClass","empty"],function(name){nlp[name]=_326(d[name]);});dojo.extend(dojo.NodeList,{concat:function(item){var t=d.isArray(this)?this:aps.call(this,0),m=d.map(arguments,function(a){return a&&!d.isArray(a)&&(a.constructor===NodeList||a.constructor==nl)?aps.call(a,0):a;});return tnl(apc.apply(t,m));},map:function(func,obj){return tnl(d.map(this,func,obj));},forEach:function(_348,_349){d.forEach(this,_348,_349);return this;},coords:_329(d.coords),place:function(_34a,_34b){var item=d.query(_34a)[0];return this.forEach(function(node){d.place(node,item,_34b);});},orphan:function(_34e){return (_34e?d._filterQueryResult(this,_34e):this).forEach(_337);},adopt:function(_34f,_350){return d.query(_34f).place(this[0],_350);},query:function(_351){if(!_351){return this;}var ret=this.map(function(node){return d.query(_351,node).filter(function(_354){return _354!==undefined;});});return tnl(apc.apply([],ret));},filter:function(_355){var a=arguments,_357=this,_358=0;if(d.isString(_355)){_357=d._filterQueryResult(this,a[0]);if(a.length==1){return _357;}_358=1;}return tnl(d.filter(_357,a[_358],a[_358+1]));},addContent:function(_359,_35a){var c=d.isString(_359)?d._toDom(_359,this[0]&&this[0].ownerDocument):_359,i,l=this.length-1;for(i=0;i<l;++i){d.place(c.cloneNode(true),this[i],_35a);}if(l>=0){d.place(c,this[l],_35a);}return this;},instantiate:function(_35d,_35e){var c=d.isFunction(_35d)?_35d:d.getObject(_35d);_35e=_35e||{};return this.forEach(function(node){new c(_35e,node);});},at:function(){var t=new dojo.NodeList();d.forEach(arguments,function(i){if(this[i]){t.push(this[i]);}},this);return t;}});d.forEach(["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"],function(evt){var _oe="on"+evt;nlp[_oe]=function(a,b){return this.connect(_oe,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._queryListCtor=d.NodeList;var _36b=d.isString;var _36c=function(){return d.doc;};var _36d=((d.isWebKit||d.isMozilla)&&((_36c().compatMode)=="BackCompat"));var _36e=!!_36c().firstChild["children"]?"children":"childNodes";var _36f=">~+";var _370=false;var _371=function(){return true;};var _372=function(_373){if(_36f.indexOf(_373.slice(-1))>=0){_373+=" * ";}else{_373+=" ";}var ts=function(s,e){return trim(_373.slice(s,e));};var _377=[];var _378=-1,_379=-1,_37a=-1,_37b=-1,_37c=-1,inId=-1,_37e=-1,lc="",cc="",_381;var x=0,ql=_373.length,_384=null,_cp=null;var _386=function(){if(_37e>=0){var tv=(_37e==x)?null:ts(_37e,x);_384[(_36f.indexOf(tv)<0)?"tag":"oper"]=tv;_37e=-1;}};var _388=function(){if(inId>=0){_384.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _389=function(){if(_37c>=0){_384.classes.push(ts(_37c+1,x).replace(/\\/g,""));_37c=-1;}};var _38a=function(){_388();_386();_389();};var _38b=function(){_38a();if(_37b>=0){_384.pseudos.push({name:ts(_37b+1,x)});}_384.loops=(_384.pseudos.length||_384.attrs.length||_384.classes.length);_384.oquery=_384.query=ts(_381,x);_384.otag=_384.tag=(_384["oper"])?null:(_384.tag||"*");if(_384.tag){_384.tag=_384.tag.toUpperCase();}if(_377.length&&(_377[_377.length-1].oper)){_384.infixOper=_377.pop();_384.query=_384.infixOper.query+" "+_384.query;}_377.push(_384);_384=null;};for(;lc=cc,cc=_373.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_384){_381=x;_384={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return (_370)?this.otag:this.tag;}};_37e=x;}if(_378>=0){if(cc=="]"){if(!_cp.attr){_cp.attr=ts(_378+1,x);}else{_cp.matchFor=ts((_37a||_378+1),x);}var cmf=_cp.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_cp.matchFor=cmf.slice(1,-1);}}_384.attrs.push(_cp);_cp=null;_378=_37a=-1;}else{if(cc=="="){var _38d=("|~^$*".indexOf(lc)>=0)?lc:"";_cp.type=_38d+cc;_cp.attr=ts(_378+1,x-_38d.length);_37a=x+1;}}}else{if(_379>=0){if(cc==")"){if(_37b>=0){_cp.value=ts(_379+1,x);}_37b=_379=-1;}}else{if(cc=="#"){_38a();inId=x+1;}else{if(cc=="."){_38a();_37c=x;}else{if(cc==":"){_38a();_37b=x;}else{if(cc=="["){_38a();_378=x;_cp={};}else{if(cc=="("){if(_37b>=0){_cp={name:ts(_37b+1,x),value:null};_384.pseudos.push(_cp);}_379=x;}else{if((cc==" ")&&(lc!=cc)){_38b();}}}}}}}}}return _377;};var _38e=function(_38f,_390){if(!_38f){return _390;}if(!_390){return _38f;}return function(){return _38f.apply(window,arguments)&&_390.apply(window,arguments);};};var _391=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _395=function(n){return (1==n.nodeType);};var _397="";var _398=function(elem,attr){if(!elem){return _397;}if(attr=="class"){return elem.className||_397;}if(attr=="for"){return elem.htmlFor||_397;}if(attr=="style"){return elem.style.cssText||_397;}return (_370?elem.getAttribute(attr):elem.getAttribute(attr,2))||_397;};var _39b={"*=":function(attr,_39d){return function(elem){return (_398(elem,attr).indexOf(_39d)>=0);};},"^=":function(attr,_3a0){return function(elem){return (_398(elem,attr).indexOf(_3a0)==0);};},"$=":function(attr,_3a3){var tval=" "+_3a3;return function(elem){var ea=" "+_398(elem,attr);return (ea.lastIndexOf(_3a3)==(ea.length-_3a3.length));};},"~=":function(attr,_3a8){var tval=" "+_3a8+" ";return function(elem){var ea=" "+_398(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_3ad){var _3ae=" "+_3ad+"-";return function(elem){var ea=" "+_398(elem,attr);return ((ea==_3ad)||(ea.indexOf(_3ae)==0));};},"=":function(attr,_3b2){return function(elem){return (_398(elem,attr)==_3b2);};}};var _3b4=(typeof _36c().firstChild.nextElementSibling=="undefined");var _ns=!_3b4?"nextElementSibling":"nextSibling";var _ps=!_3b4?"previousElementSibling":"previousSibling";var _3b7=(_3b4?_395:_371);var _3b8=function(node){while(node=node[_ps]){if(_3b7(node)){return false;}}return true;};var _3ba=function(node){while(node=node[_ns]){if(_3b7(node)){return false;}}return true;};var _3bc=function(node){var root=node.parentNode;var i=0,tret=root[_36e],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[_ns]){if(_3b7(te)){te["_i"]=++i;if(node===te){ci=i;}}}return ci;};var _3c5=function(elem){return !((_3bc(elem))%2);};var _3c7=function(elem){return ((_3bc(elem))%2);};var _3c9={"checked":function(name,_3cb){return function(elem){return !!d.attr(elem,"checked");};},"first-child":function(){return _3b8;},"last-child":function(){return _3ba;},"only-child":function(name,_3ce){return function(node){if(!_3b8(node)){return false;}if(!_3ba(node)){return false;}return true;};},"empty":function(name,_3d1){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,_3d8){var cz=_3d8.charAt(0);if(cz=="\""||cz=="'"){_3d8=_3d8.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_3d8)>=0);};},"not":function(name,_3dc){var p=_372(_3dc)[0];var _3de={el:1};if(p.tag!="*"){_3de.tag=1;}if(!p.classes.length){_3de.classes=1;}var ntf=_3e0(p,_3de);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_3e3){var pi=parseInt;if(_3e3=="odd"){return _3c7;}else{if(_3e3=="even"){return _3c5;}}if(_3e3.indexOf("n")!=-1){var _3e5=_3e3.split("n",2);var pred=_3e5[0]?((_3e5[0]=="-")?-1:pi(_3e5[0])):1;var idx=_3e5[1]?pi(_3e5[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=_3bc(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_3e3=idx;}}var _3ec=pi(_3e3);return function(elem){return (_3bc(elem)==_3ec);};}};var _3ee=(d.isIE)?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_370?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _3e0=function(_3f4,_3f5){if(!_3f4){return _371;}_3f5=_3f5||{};var ff=null;if(!("el" in _3f5)){ff=_38e(ff,_395);}if(!("tag" in _3f5)){if(_3f4.tag!="*"){ff=_38e(ff,function(elem){return (elem&&(elem.tagName==_3f4.getTag()));});}}if(!("classes" in _3f5)){each(_3f4.classes,function(_3f8,idx,arr){var re=new RegExp("(?:^|\\s)"+_3f8+"(?:\\s|$)");ff=_38e(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _3f5)){each(_3f4.pseudos,function(_3fd){var pn=_3fd.name;if(_3c9[pn]){ff=_38e(ff,_3c9[pn](pn,_3fd.value));}});}if(!("attrs" in _3f5)){each(_3f4.attrs,function(attr){var _400;var a=attr.attr;if(attr.type&&_39b[attr.type]){_400=_39b[attr.type](a,attr.matchFor);}else{if(a.length){_400=_3ee(a);}}if(_400){ff=_38e(ff,_400);}});}if(!("id" in _3f5)){if(_3f4.id){ff=_38e(ff,function(elem){return (!!elem&&(elem.id==_3f4.id));});}}if(!ff){if(!("default" in _3f5)){ff=_371;}}return ff;};var _403=function(_404){return function(node,ret,bag){while(node=node[_ns]){if(_3b4&&(!_395(node))){continue;}if((!bag||_408(node,bag))&&_404(node)){ret.push(node);}break;}return ret;};};var _409=function(_40a){return function(root,ret,bag){var te=root[_ns];while(te){if(_3b7(te)){if(bag&&!_408(te,bag)){break;}if(_40a(te)){ret.push(te);}}te=te[_ns];}return ret;};};var _40f=function(_410){_410=_410||_371;return function(root,ret,bag){var te,x=0,tret=root[_36e];while(te=tret[x++]){if(_3b7(te)&&(!bag||_408(te,bag))&&(_410(te,x))){ret.push(te);}}return ret;};};var _417=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _41b={};var _41c=function(_41d){var _41e=_41b[_41d.query];if(_41e){return _41e;}var io=_41d.infixOper;var oper=(io?io.oper:"");var _421=_3e0(_41d,{el:1});var qt=_41d.tag;var _423=("*"==qt);var ecs=_36c()["getElementsByClassName"];if(!oper){if(_41d.id){_421=(!_41d.loops&&_423)?_371:_3e0(_41d,{el:1,id:1});_41e=function(root,arr){var te=d.byId(_41d.id,(root.ownerDocument||root));if(!te||!_421(te)){return;}if(9==root.nodeType){return _391(te,arr);}else{if(_417(te,root)){return _391(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_41d.classes.length&&!_36d){_421=_3e0(_41d,{el:1,classes:1,id:1});var _428=_41d.classes.join(" ");_41e=function(root,arr,bag){var ret=_391(0,arr),te,x=0;var tret=root.getElementsByClassName(_428);while((te=tret[x++])){if(_421(te,root)&&_408(te,bag)){ret.push(te);}}return ret;};}else{if(!_423&&!_41d.loops){_41e=function(root,arr,bag){var ret=_391(0,arr),te,x=0;var tret=root.getElementsByTagName(_41d.getTag());while((te=tret[x++])){if(_408(te,bag)){ret.push(te);}}return ret;};}else{_421=_3e0(_41d,{el:1,tag:1,id:1});_41e=function(root,arr,bag){var ret=_391(0,arr),te,x=0;var tret=root.getElementsByTagName(_41d.getTag());while((te=tret[x++])){if(_421(te,root)&&_408(te,bag)){ret.push(te);}}return ret;};}}}}else{var _43e={el:1};if(_423){_43e.tag=1;}_421=_3e0(_41d,_43e);if("+"==oper){_41e=_403(_421);}else{if("~"==oper){_41e=_409(_421);}else{if(">"==oper){_41e=_40f(_421);}}}}return _41b[_41d.query]=_41e;};var _43f=function(root,_441){var _442=_391(root),qp,x,te,qpl=_441.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_441[i];x=_442.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_41c(qp);while(te=_442[x--]){gef(te,ret,bag);}if(!ret.length){break;}_442=ret;}return ret;};var _44b={},_44c={};var _44d=function(_44e){var _44f=_372(trim(_44e));if(_44f.length==1){var tef=_41c(_44f[0]);return function(root){var r=tef(root,new qlc());if(r){r.nozip=true;}return r;};}return function(root){return _43f(root,_44f);};};var nua=navigator.userAgent;var wk="WebKit/";var _456=(d.isWebKit&&(nua.indexOf(wk)>0)&&(parseFloat(nua.split(wk)[1])>528));var _457=d.isIE?"commentStrip":"nozip";var qsa="querySelectorAll";var _459=(!!_36c()[qsa]&&(!d.isSafari||(d.isSafari>3.1)||_456));var _45a=function(_45b,_45c){if(_459){var _45d=_44c[_45b];if(_45d&&!_45c){return _45d;}}var _45e=_44b[_45b];if(_45e){return _45e;}var qcz=_45b.charAt(0);var _460=(-1==_45b.indexOf(" "));if((_45b.indexOf("#")>=0)&&(_460)){_45c=true;}var _461=(_459&&(!_45c)&&(_36f.indexOf(qcz)==-1)&&(!d.isIE||(_45b.indexOf(":")==-1))&&(!(_36d&&(_45b.indexOf(".")>=0)))&&(_45b.indexOf(":contains")==-1)&&(_45b.indexOf("|=")==-1));if(_461){var tq=(_36f.indexOf(_45b.charAt(_45b.length-1))>=0)?(_45b+" *"):_45b;return _44c[_45b]=function(root){try{if(!((9==root.nodeType)||_460)){throw "";}var r=root[qsa](tq);r[_457]=true;return r;}catch(e){return _45a(_45b,true)(root);}};}else{var _465=_45b.split(/\s*,\s*/);return _44b[_45b]=((_465.length<2)?_44d(_45b):function(root){var _467=0,ret=[],tp;while((tp=_465[_467++])){ret=ret.concat(_44d(tp)(root));}return ret;});}};var _46a=0;var _46b=d.isIE?function(node){if(_370){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_46a)||_46a);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_46a));};var _408=function(node,bag){if(!bag){return 1;}var id=_46b(node);if(!bag[id]){return bag[id]=1;}return 0;};var _471="_zipIdx";var _zip=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;}_46a++;if(d.isIE&&_370){var _475=_46a+"";arr[0].setAttribute(_471,_475);for(var x=1,te;te=arr[x];x++){if(arr[x].getAttribute(_471)!=_475){ret.push(te);}te.setAttribute(_471,_475);}}else{if(d.isIE&&arr.commentStrip){try{for(var x=1,te;te=arr[x];x++){if(_395(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_471]=_46a;}for(var x=1,te;te=arr[x];x++){if(arr[x][_471]!=_46a){ret.push(te);}te[_471]=_46a;}}}return ret;};d.query=function(_478,root){qlc=d._queryListCtor;if(!_478){return new qlc();}if(_478.constructor==qlc){return _478;}if(!_36b(_478)){return new qlc(_478);}if(_36b(root)){root=d.byId(root);if(!root){return new qlc();}}root=root||_36c();var od=root.ownerDocument||root.documentElement;_370=(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=_45a(_478)(root);if(r&&r.nozip&&!qlc._wrap){return r;}return _zip(r);};d.query.pseudos=_3c9;d._filterQueryResult=function(_47c,_47d){var _47e=new d._queryListCtor();var _47f=_3e0(_372(_47d)[0]);for(var x=0,te;te=_47c[x];x++){if(_47f(te)){_47e.push(te);}}return _47e;};})(this["queryPortability"]||this["acme"]||dojo);}if(!dojo._hasResource["dojo._base.xhr"]){dojo._hasResource["dojo._base.xhr"]=true;dojo.provide("dojo._base.xhr");(function(){var _d=dojo;function _483(obj,name,_486){var val=obj[name];if(_d.isString(val)){obj[name]=[val,_486];}else{if(_d.isArray(val)){val.push(_486);}else{obj[name]=_486;}}};dojo.formToObject=function(_488){var ret={};var _48a="file|submit|image|reset|button|";_d.forEach(dojo.byId(_488).elements,function(item){var _in=item.name;var type=(item.type||"").toLowerCase();if(_in&&type&&_48a.indexOf(type)==-1&&!item.disabled){if(type=="radio"||type=="checkbox"){if(item.checked){_483(ret,_in,item.value);}}else{if(item.multiple){ret[_in]=[];_d.query("option",item).forEach(function(opt){if(opt.selected){_483(ret,_in,opt.value);}});}else{_483(ret,_in,item.value);if(type=="image"){ret[_in+".x"]=ret[_in+".y"]=ret[_in].x=ret[_in].y=0;}}}}});return ret;};dojo.objectToQuery=function(map){var enc=encodeURIComponent;var _491=[];var _492={};for(var name in map){var _494=map[name];if(_494!=_492[name]){var _495=enc(name)+"=";if(_d.isArray(_494)){for(var i=0;i<_494.length;i++){_491.push(_495+enc(_494[i]));}}else{_491.push(_495+enc(_494));}}}return _491.join("&");};dojo.formToQuery=function(_497){return _d.objectToQuery(_d.formToObject(_497));};dojo.formToJson=function(_498,_499){return _d.toJson(_d.formToObject(_498),_499);};dojo.queryToObject=function(str){var ret={};var qp=str.split("&");var dec=decodeURIComponent;_d.forEach(qp,function(item){if(item.length){var _49f=item.split("=");var name=dec(_49f.shift());var val=dec(_49f.join("="));if(_d.isString(ret[name])){ret[name]=[ret[name]];}if(_d.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}});return ret;};dojo._blockAsync=false;dojo._contentHandlers={text:function(xhr){return xhr.responseText;},json:function(xhr){return _d.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 _4a5=xhr.responseText;var _4a6=_4a5.indexOf("/*");var _4a7=_4a5.lastIndexOf("*/");if(_4a6==-1||_4a7==-1){throw new Error("JSON was not comment filtered");}return _d.fromJson(_4a5.substring(_4a6+2,_4a7));},javascript:function(xhr){return _d.eval(xhr.responseText);},xml:function(xhr){var _4aa=xhr.responseXML;if(_d.isIE&&(!_4aa||!_4aa.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_d.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_4aa=dom;}catch(e){return false;}return true;});}return _4aa;}};dojo._contentHandlers["json-comment-optional"]=function(xhr){var _4b1=_d._contentHandlers;if(xhr.responseText&&xhr.responseText.indexOf("/*")!=-1){return _4b1["json-comment-filtered"](xhr);}else{return _4b1["json"](xhr);}};dojo._ioSetArgs=function(args,_4b3,_4b4,_4b5){var _4b6={args:args,url:args.url};var _4b7=null;if(args.form){var form=_d.byId(args.form);var _4b9=form.getAttributeNode("action");_4b6.url=_4b6.url||(_4b9?_4b9.value:null);_4b7=_d.formToObject(form);}var _4ba=[{}];if(_4b7){_4ba.push(_4b7);}if(args.content){_4ba.push(args.content);}if(args.preventCache){_4ba.push({"dojo.preventCache":new Date().valueOf()});}_4b6.query=_d.objectToQuery(_d.mixin.apply(null,_4ba));_4b6.handleAs=args.handleAs||"text";var d=new _d.Deferred(_4b3);d.addCallbacks(_4b4,function(_4bc){return _4b5(_4bc,d);});var ld=args.load;if(ld&&_d.isFunction(ld)){d.addCallback(function(_4be){return ld.call(args,_4be,_4b6);});}var err=args.error;if(err&&_d.isFunction(err)){d.addErrback(function(_4c0){return err.call(args,_4c0,_4b6);});}var _4c1=args.handle;if(_4c1&&_d.isFunction(_4c1)){d.addBoth(function(_4c2){return _4c1.call(args,_4c2,_4b6);});}d.ioArgs=_4b6;return d;};var _4c3=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _at=typeof xhr.abort;if(_at=="function"||_at=="object"||_at=="unknown"){xhr.abort();}var err=dfd.ioArgs.error;if(!err){err=new Error("xhr cancelled");err.dojoType="cancel";}return err;};var _4c8=function(dfd){var ret=_d._contentHandlers[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _4cb=function(_4cc,dfd){console.error(_4cc);return _4cc;};var _4ce=null;var _4cf=[];var _4d0=function(){var now=(new Date()).getTime();if(!_d._blockAsync){for(var i=0,tif;i<_4cf.length&&(tif=_4cf[i]);i++){var dfd=tif.dfd;var func=function(){if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_4cf.splice(i--,1);}else{if(tif.ioCheck(dfd)){_4cf.splice(i--,1);tif.resHandle(dfd);}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){_4cf.splice(i--,1);var err=new Error("timeout exceeded");err.dojoType="timeout";dfd.errback(err);dfd.cancel();}}}}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(e){dfd.errback(e);}}}}if(!_4cf.length){clearInterval(_4ce);_4ce=null;return;}};dojo._ioCancelAll=function(){try{_d.forEach(_4cf,function(i){try{i.dfd.cancel();}catch(e){}});}catch(e){}};if(_d.isIE){_d.addOnWindowUnload(_d._ioCancelAll);}_d._ioWatch=function(dfd,_4d9,_4da,_4db){var args=dfd.ioArgs.args;if(args.timeout){dfd.startTime=(new Date()).getTime();}_4cf.push({dfd:dfd,validCheck:_4d9,ioCheck:_4da,resHandle:_4db});if(!_4ce){_4ce=setInterval(_4d0,50);}if(args.sync){_4d0();}};var _4dd="application/x-www-form-urlencoded";var _4de=function(dfd){return dfd.ioArgs.xhr.readyState;};var _4e0=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var _4e2=function(dfd){var xhr=dfd.ioArgs.xhr;if(_d._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(_4e6){if(_4e6.query.length){_4e6.url+=(_4e6.url.indexOf("?")==-1?"?":"&")+_4e6.query;_4e6.query=null;}};dojo.xhr=function(_4e7,args,_4e9){var dfd=_d._ioSetArgs(args,_4c3,_4c8,_4cb);dfd.ioArgs.xhr=_d._xhrObj(dfd.ioArgs.args);if(_4e9){if("postData" in args){dfd.ioArgs.query=args.postData;}else{if("putData" in args){dfd.ioArgs.query=args.putData;}}}else{_d._ioAddQueryToUrl(dfd.ioArgs);}var _4eb=dfd.ioArgs;var xhr=_4eb.xhr;xhr.open(_4e7,_4eb.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{xhr.setRequestHeader(hdr,args.headers[hdr]);}}}xhr.setRequestHeader("Content-Type",args.contentType||_4dd);if(!args.headers||!args.headers["X-Requested-With"]){xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");}if(dojo.config.debugAtAllCosts){xhr.send(_4eb.query);}else{try{xhr.send(_4eb.query);}catch(e){dfd.ioArgs.error=e;dfd.cancel();}}_d._ioWatch(dfd,_4de,_4e0,_4e2);xhr=null;return dfd;};dojo.xhrGet=function(args){return _d.xhr("GET",args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return _d.xhr("POST",args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return _d.xhr("PUT",args,true);};dojo.xhrDelete=function(args){return _d.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 _4f3=d.mixin;dojo._Line=function(_4f4,end){this.start=_4f4;this.end=end;};dojo._Line.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};d.declare("dojo._Animation",null,{constructor:function(args){_4f3(this,args);if(d.isArray(this.curve)){this.curve=new d._Line(this.curve[0],this.curve[1]);}},duration:350,repeat:0,rate:10,_percent:0,_startRepeatCount:0,_fire:function(evt,args){if(this[evt]){if(dojo.config.debugAtAllCosts){this[evt].apply(this,args||[]);}else{try{this[evt].apply(this,args||[]);}catch(e){console.error("exception in animation handler for:",evt);console.error(e);}}}return this;},play:function(_4fa,_4fb){var _t=this;if(_t._delayTimer){_t._clearTimer();}if(_4fb){_t._stopTimer();_t._active=_t._paused=false;_t._percent=0;}else{if(_t._active&&!_t._paused){return _t;}}_t._fire("beforeBegin");var de=_4fa||_t.delay,_p=dojo.hitch(_t,"_play",_4fb);if(de>0){_t._delayTimer=setTimeout(_p,de);return _t;}_p();return _t;},_play:function(_4ff){var _t=this;if(_t._delayTimer){_t._clearTimer();}_t._startTime=new Date().valueOf();if(_t._paused){_t._startTime-=_t.duration*_t._percent;}_t._endTime=_t._startTime+_t.duration;_t._active=true;_t._paused=false;var _501=_t.curve.getValue(_t._percent);if(!_t._percent){if(!_t._startRepeatCount){_t._startRepeatCount=_t.repeat;}_t._fire("onBegin",[_501]);}_t._fire("onPlay",[_501]);_t._cycle();return _t;},pause:function(){var _t=this;if(_t._delayTimer){_t._clearTimer();}_t._stopTimer();if(!_t._active){return _t;}_t._paused=true;_t._fire("onPause",[_t.curve.getValue(_t._percent)]);return _t;},gotoPercent:function(_503,_504){var _t=this;_t._stopTimer();_t._active=_t._paused=true;_t._percent=_503;if(_504){_t.play();}return _t;},stop:function(_506){var _t=this;if(_t._delayTimer){_t._clearTimer();}if(!_t._timer){return _t;}_t._stopTimer();if(_506){_t._percent=1;}_t._fire("onStop",[_t.curve.getValue(_t._percent)]);_t._active=_t._paused=false;return _t;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _t=this;if(_t._active){var curr=new Date().valueOf();var step=(curr-_t._startTime)/(_t._endTime-_t._startTime);if(step>=1){step=1;}_t._percent=step;if(_t.easing){step=_t.easing(step);}_t._fire("onAnimate",[_t.curve.getValue(step)]);if(_t._percent<1){_t._startTimer();}else{_t._active=false;if(_t.repeat>0){_t.repeat--;_t.play(null,true);}else{if(_t.repeat==-1){_t.play(null,true);}else{if(_t._startRepeatCount){_t.repeat=_t._startRepeatCount;_t._startRepeatCount=0;}}}_t._percent=0;_t._fire("onEnd");_t._stopTimer();}}return _t;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_50c=[],_50d=null,_50e={run:function(){}};dojo._Animation.prototype._startTimer=function(){if(!this._timer){this._timer=d.connect(_50e,"run",this,"_cycle");ctr++;}if(!_50d){_50d=setInterval(d.hitch(_50e,"run"),this.rate);}};dojo._Animation.prototype._stopTimer=function(){if(this._timer){d.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_50d);_50d=null;ctr=0;}};var _50f=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 _513=_4f3({properties:{}},args),_514=(_513.properties.opacity={});_514.start=!("start" in _513)?function(){return +d.style(_513.node,"opacity")||0;}:_513.start;_514.end=_513.end;var anim=d.animateProperty(_513);d.connect(anim,"beforeBegin",d.partial(_50f,_513.node));return anim;};dojo.fadeIn=function(args){return d._fade(_4f3({end:1},args));};dojo.fadeOut=function(args){return d._fade(_4f3({end:0},args));};dojo._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _519=function(_51a){this._properties=_51a;for(var p in _51a){var prop=_51a[p];if(prop.start instanceof d.Color){prop.tempColor=new d.Color();}}};_519.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_521=prop.start;if(_521 instanceof d.Color){ret[p]=d.blendColors(_521,prop.end,r,prop.tempColor).toCss();}else{if(!d.isArray(_521)){ret[p]=((prop.end-_521)*r)+_521+(p!="opacity"?prop.units||"px":0);}}}return ret;};dojo.animateProperty=function(args){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];prop=pm[p]=_4f3({},(d.isObject(prop)?prop:{end:prop}));if(d.isFunction(prop.start)){prop.start=prop.start();}if(d.isFunction(prop.end)){prop.end=prop.end();}var _527=(p.toLowerCase().indexOf("color")>=0);function _528(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:(_527?v:parseFloat(v));};if(!("end" in prop)){prop.end=_528(this.node,p);}else{if(!("start" in prop)){prop.start=_528(this.node,p);}}if(_527){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 _519(pm);});d.connect(anim,"onAnimate",d.hitch(d,"style",anim.node));return anim;};dojo.anim=function(node,_52d,_52e,_52f,_530,_531){return d.animateProperty({node:node,duration:_52e||d._Animation.prototype.duration,properties:_52d,easing:_52f,onEnd:_530}).play(_531||0);};})();}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);}})();


dojo.provide("dojo.nls.dojo-tk-qt_en-us");dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en_us");dijit.nls.loading.en_us={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dojox.layout.nls.GridContainer");dojox.layout.nls.GridContainer._built=true;dojo.provide("dojox.layout.nls.GridContainer.en_us");dojox.layout.nls.GridContainer.en_us={"err_onSetNbColsRightMode":"Move boxes in first columns, in all tabs before changing the organization of the page","err_onSetNbColsLeftMode":"Move boxes in last columns, in all tabs before changing the organization of the page","alertPopup":"this widget type is not accepted to be moved !"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en_us");dijit.nls.common.en_us={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en_us");dijit.nls.common.en_us={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en_us");dijit.nls.common.en_us={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en_us");dijit.form.nls.validate.en_us={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en_us");dijit.form.nls.ComboBox.en_us={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.en_us");dojo.cldr.nls.gregorian.en_us={"dateFormatItem-yM":"M/yyyy","field-dayperiod":"AM/PM","dateFormatItem-yQ":"Q yyyy","field-minute":"Minute","eraNames":["Before Christ","Anno Domini"],"dateFormatItem-MMMEd":"E, MMM d","field-weekday":"Day of the Week","dateFormatItem-yQQQ":"QQQ yyyy","days-standAlone-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-era":"Era","field-hour":"Hour","dateFormatItem-y":"yyyy","timeFormat-full":"h:mm:ss a v","months-standAlone-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dateFormatItem-yMMM":"MMM yyyy","days-standAlone-narrow":["S","M","T","W","T","F","S"],"eraAbbr":["BC","AD"],"dateFormat-long":"MMMM d, yyyy","timeFormat-medium":"h:mm:ss a","field-zone":"Zone","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"MMM d, yyyy","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateTimeFormat":"{1} {0}","dateFormatItem-yMMMM":"MMMM yyyy","dateFormatItem-ms":"mm:ss","field-year":"Year","quarters-standAlone-narrow":["1","2","3","4"],"months-standAlone-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"field-week":"Week","dateFormatItem-MMMMEd":"E, MMMM d","dateFormatItem-MMMd":"MMM d","timeFormat-long":"h:mm:ss a z","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"timeFormat-short":"h:mm a","field-month":"Month","dateFormatItem-MMMMd":"MMMM d","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"pm":"PM","dateFormatItem-M":"L","days-format-narrow":["S","M","T","W","T","F","S"],"field-second":"Second","field-day":"Day","dateFormatItem-MEd":"E, M/d","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-hm":"h:mm a","am":"AM","days-standAlone-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormat-short":"M/d/yy","dateFormatItem-yMMMEd":"EEE, MMM d, yyyy","dateFormat-full":"EEEE, MMMM d, yyyy","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"EEE, M/d/yyyy","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-d":"d","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"eraNarrow":["B","A"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","patternChars":"GyMdkHmsSEDFwWahKzYeugAZvcL","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}"};


/*
	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/

/*
	This is a compiled version of Dojo, built for deployment and not for
	development. To get an editable version, please visit:

		http://dojotoolkit.org

	for documentation and information on getting the source.
*/

if(!dojo._hasResource["dojo.date.stamp"]){dojo._hasResource["dojo.date.stamp"]=true;dojo.provide("dojo.date.stamp");dojo.date.stamp.fromISOString=function(_1,_2){if(!dojo.date.stamp._isoRegExp){dojo.date.stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;}var _3=dojo.date.stamp._isoRegExp.exec(_1);var _4=null;if(_3){_3.shift();if(_3[1]){_3[1]--;}if(_3[6]){_3[6]*=1000;}if(_2){_2=new Date(_2);dojo.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(_5){return _2["get"+_5]();}).forEach(function(_6,_7){if(_3[_7]===undefined){_3[_7]=_6;}});}_4=new Date(_3[0]||1970,_3[1]||0,_3[2]||1,_3[3]||0,_3[4]||0,_3[5]||0,_3[6]||0);var _8=0;var _9=_3[7]&&_3[7].charAt(0);if(_9!="Z"){_8=((_3[8]||0)*60)+(Number(_3[9])||0);if(_9!="-"){_8*=-1;}}if(_9){_8-=_4.getTimezoneOffset();}if(_8){_4.setTime(_4.getTime()+_8*60000);}}return _4;};dojo.date.stamp.toISOString=function(_a,_b){var _=function(n){return (n<10)?"0"+n:n;};_b=_b||{};var _e=[];var _f=_b.zulu?"getUTC":"get";var _10="";if(_b.selector!="time"){var _11=_a[_f+"FullYear"]();_10=["0000".substr((_11+"").length)+_11,_(_a[_f+"Month"]()+1),_(_a[_f+"Date"]())].join("-");}_e.push(_10);if(_b.selector!="date"){var _12=[_(_a[_f+"Hours"]()),_(_a[_f+"Minutes"]()),_(_a[_f+"Seconds"]())].join(":");var _13=_a[_f+"Milliseconds"]();if(_b.milliseconds){_12+="."+(_13<100?"0":"")+_(_13);}if(_b.zulu){_12+="Z";}else{if(_b.selector!="time"){var _14=_a.getTimezoneOffset();var _15=Math.abs(_14);_12+=(_14>0?"-":"+")+_(Math.floor(_15/60))+":"+_(_15%60);}}_e.push(_12);}return _e.join("T");};}if(!dojo._hasResource["dojo.parser"]){dojo._hasResource["dojo.parser"]=true;dojo.provide("dojo.parser");dojo.parser=new function(){var d=dojo;var _17=d._scopeName+"Type";var qry="["+_17+"]";var _19=0,_1a={};var _1b=function(_1c,_1d){var nso=_1d||_1a;if(dojo.isIE){var cn=_1c["__dojoNameCache"];if(cn&&nso[cn]===_1c){return cn;}}var _20;do{_20="__"+_19++;}while(_20 in nso);nso[_20]=_1c;return _20;};function _21(_22){if(d.isString(_22)){return "string";}if(typeof _22=="number"){return "number";}if(typeof _22=="boolean"){return "boolean";}if(d.isFunction(_22)){return "function";}if(d.isArray(_22)){return "array";}if(_22 instanceof Date){return "date";}if(_22 instanceof d._Url){return "url";}return "object";};function _23(_24,_25){switch(_25){case "string":return _24;case "number":return _24.length?Number(_24):NaN;case "boolean":return typeof _24=="boolean"?_24:!(_24.toLowerCase()=="false");case "function":if(d.isFunction(_24)){_24=_24.toString();_24=d.trim(_24.substring(_24.indexOf("{")+1,_24.length-1));}try{if(_24.search(/[^\w\.]+/i)!=-1){_24=_1b(new Function(_24),this);}return d.getObject(_24,false);}catch(e){return new Function();}case "array":return _24?_24.split(/\s*,\s*/):[];case "date":switch(_24){case "":return new Date("");case "now":return new Date();default:return d.date.stamp.fromISOString(_24);}case "url":return d.baseUrl+_24;default:return d.fromJson(_24);}};var _26={};function _27(_28){if(!_26[_28]){var cls=d.getObject(_28);if(!d.isFunction(cls)){throw new Error("Could not load class '"+_28+"'. Did you spell the name correctly and use a full path, like 'dijit.form.Button'?");}var _2a=cls.prototype;var _2b={},_2c={};for(var _2d in _2a){if(_2d.charAt(0)=="_"){continue;}if(_2d in _2c){continue;}var _2e=_2a[_2d];_2b[_2d]=_21(_2e);}_26[_28]={cls:cls,params:_2b};}return _26[_28];};this._functionFromScript=function(_2f){var _30="";var _31="";var _32=_2f.getAttribute("args");if(_32){d.forEach(_32.split(/\s*,\s*/),function(_33,idx){_30+="var "+_33+" = arguments["+idx+"]; ";});}var _35=_2f.getAttribute("with");if(_35&&_35.length){d.forEach(_35.split(/\s*,\s*/),function(_36){_30+="with("+_36+"){";_31+="}";});}return new Function(_30+_2f.innerHTML+_31);};this.instantiate=function(_37,_38){var _39=[];_38=_38||{};d.forEach(_37,function(_3a){if(!_3a){return;}var _3b=_17 in _38?_38[_17]:_3a.getAttribute(_17);if(!_3b||!_3b.length){return;}var _3c=_27(_3b),_3d=_3c.cls,ps=_3d._noScript||_3d.prototype._noScript;var _3f={},_40=_3a.attributes;for(var _41 in _3c.params){var _42=_41 in _38?{value:_38[_41],specified:true}:_40.getNamedItem(_41);if(!_42||(!_42.specified&&(!dojo.isIE||_41.toLowerCase()!="value"))){continue;}var _43=_42.value;switch(_41){case "class":_43="className" in _38?_38.className:_3a.className;break;case "style":_43="style" in _38?_38.style:(_3a.style&&_3a.style.cssText);}var _44=_3c.params[_41];if(typeof _43=="string"){_3f[_41]=_23(_43,_44);}else{_3f[_41]=_43;}}if(!ps){var _45=[],_46=[];d.query("> script[type^='dojo/']",_3a).orphan().forEach(function(_47){var _48=_47.getAttribute("event"),_3b=_47.getAttribute("type"),nf=d.parser._functionFromScript(_47);if(_48){if(_3b=="dojo/connect"){_45.push({event:_48,func:nf});}else{_3f[_48]=nf;}}else{_46.push(nf);}});}var _4a=_3d["markupFactory"];if(!_4a&&_3d["prototype"]){_4a=_3d.prototype["markupFactory"];}var _4b=_4a?_4a(_3f,_3a,_3d):new _3d(_3f,_3a);_39.push(_4b);var _4c=_3a.getAttribute("jsId");if(_4c){d.setObject(_4c,_4b);}if(!ps){d.forEach(_45,function(_4d){d.connect(_4b,_4d.event,null,_4d.func);});d.forEach(_46,function(_4e){_4e.call(_4b);});}});d.forEach(_39,function(_4f){if(_4f&&_4f.startup&&!_4f._started&&(!_4f.getParent||!_4f.getParent())){_4f.startup();}});return _39;};this.parse=function(_50){var _51=d.query(qry,_50);var _52=this.instantiate(_51);return _52;};}();(function(){var _53=function(){if(dojo.config["parseOnLoad"]==true){dojo.parser.parse();}};if(dojo.exists("dijit.wai.onload")&&(dijit.wai.onload===dojo._loaders[0])){dojo._loaders.splice(1,0,_53);}else{dojo._loaders.unshift(_53);}})();}if(!dojo._hasResource["dijit._base.focus"]){dojo._hasResource["dijit._base.focus"]=true;dojo.provide("dijit._base.focus");dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){var _54=dojo.doc;if(_54.selection){var s=_54.selection;if(s.type=="Text"){return !s.createRange().htmlText.length;}else{return !s.createRange().length;}}else{var _56=dojo.global;var _57=_56.getSelection();if(dojo.isString(_57)){return !_57;}else{return !_57||_57.isCollapsed||!_57.toString();}}},getBookmark:function(){var _58,_59=dojo.doc.selection;if(_59){var _5a=_59.createRange();if(_59.type.toUpperCase()=="CONTROL"){if(_5a.length){_58=[];var i=0,len=_5a.length;while(i<len){_58.push(_5a.item(i++));}}else{_58=null;}}else{_58=_5a.getBookmark();}}else{if(window.getSelection){_59=dojo.global.getSelection();if(_59){_5a=_59.getRangeAt(0);_58=_5a.cloneRange();}}else{console.warn("No idea how to store the current selection for this browser!");}}return _58;},moveToBookmark:function(_5d){var _5e=dojo.doc;if(_5e.selection){var _5f;if(dojo.isArray(_5d)){_5f=_5e.body.createControlRange();dojo.forEach(_5d,function(n){_5f.addElement(n);});}else{_5f=_5e.selection.createRange();_5f.moveToBookmark(_5d);}_5f.select();}else{var _61=dojo.global.getSelection&&dojo.global.getSelection();if(_61&&_61.removeAllRanges){_61.removeAllRanges();_61.addRange(_5d);}else{console.warn("No idea how to restore selection for this browser!");}}},getFocus:function(_62,_63){return {node:_62&&dojo.isDescendant(dijit._curFocus,_62.domNode)?dijit._prevFocus:dijit._curFocus,bookmark:!dojo.withGlobal(_63||dojo.global,dijit.isCollapsed)?dojo.withGlobal(_63||dojo.global,dijit.getBookmark):null,openedForWindow:_63};},focus:function(_64){if(!_64){return;}var _65="node" in _64?_64.node:_64,_66=_64.bookmark,_67=_64.openedForWindow;if(_65){var _68=(_65.tagName.toLowerCase()=="iframe")?_65.contentWindow:_65;if(_68&&_68.focus){try{_68.focus();}catch(e){}}dijit._onFocusNode(_65);}if(_66&&dojo.withGlobal(_67||dojo.global,dijit.isCollapsed)){if(_67){_67.focus();}try{dojo.withGlobal(_67||dojo.global,dijit.moveToBookmark,null,[_66]);}catch(e){}}},_activeStack:[],registerIframe:function(_69){dijit.registerWin(_69.contentWindow,_69);},registerWin:function(_6a,_6b){dojo.connect(_6a.document,"onmousedown",function(evt){dijit._justMouseDowned=true;setTimeout(function(){dijit._justMouseDowned=false;},0);dijit._onTouchNode(_6b||evt.target||evt.srcElement);});var doc=_6a.document;if(doc){if(dojo.isIE){doc.attachEvent("onactivate",function(evt){if(evt.srcElement.tagName.toLowerCase()!="#document"){dijit._onFocusNode(_6b||evt.srcElement);}});doc.attachEvent("ondeactivate",function(evt){dijit._onBlurNode(_6b||evt.srcElement);});}else{doc.addEventListener("focus",function(evt){dijit._onFocusNode(_6b||evt.target);},true);doc.addEventListener("blur",function(evt){dijit._onBlurNode(_6b||evt.target);},true);}}doc=null;},_onBlurNode:function(_72){dijit._prevFocus=dijit._curFocus;dijit._curFocus=null;if(dijit._justMouseDowned){return;}if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);}dijit._clearActiveWidgetsTimer=setTimeout(function(){delete dijit._clearActiveWidgetsTimer;dijit._setStack([]);dijit._prevFocus=null;},100);},_onTouchNode:function(_73){if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);delete dijit._clearActiveWidgetsTimer;}var _74=[];try{while(_73){if(_73.dijitPopupParent){_73=dijit.byId(_73.dijitPopupParent).domNode;}else{if(_73.tagName&&_73.tagName.toLowerCase()=="body"){if(_73===dojo.body()){break;}_73=dijit.getDocumentWindow(_73.ownerDocument).frameElement;}else{var id=_73.getAttribute&&_73.getAttribute("widgetId");if(id){_74.unshift(id);}_73=_73.parentNode;}}}}catch(e){}dijit._setStack(_74);},_onFocusNode:function(_76){if(!_76){return;}if(_76.nodeType==9){return;}dijit._onTouchNode(_76);if(_76==dijit._curFocus){return;}if(dijit._curFocus){dijit._prevFocus=dijit._curFocus;}dijit._curFocus=_76;dojo.publish("focusNode",[_76]);},_setStack:function(_77){var _78=dijit._activeStack;dijit._activeStack=_77;for(var _79=0;_79<Math.min(_78.length,_77.length);_79++){if(_78[_79]!=_77[_79]){break;}}for(var i=_78.length-1;i>=_79;i--){var _7b=dijit.byId(_78[i]);if(_7b){_7b._focused=false;_7b._hasBeenBlurred=true;if(_7b._onBlur){_7b._onBlur();}if(_7b._setStateClass){_7b._setStateClass();}dojo.publish("widgetBlur",[_7b]);}}for(i=_79;i<_77.length;i++){_7b=dijit.byId(_77[i]);if(_7b){_7b._focused=true;if(_7b._onFocus){_7b._onFocus();}if(_7b._setStateClass){_7b._setStateClass();}dojo.publish("widgetFocus",[_7b]);}}}});dojo.addOnLoad(function(){dijit.registerWin(window);});}if(!dojo._hasResource["dijit._base.manager"]){dojo._hasResource["dijit._base.manager"]=true;dojo.provide("dijit._base.manager");dojo.declare("dijit.WidgetSet",null,{constructor:function(){this._hash={};},add:function(_7c){if(this._hash[_7c.id]){throw new Error("Tried to register widget with id=="+_7c.id+" but that id is already registered");}this._hash[_7c.id]=_7c;},remove:function(id){delete this._hash[id];},forEach:function(_7e){for(var id in this._hash){_7e(this._hash[id]);}},filter:function(_80){var res=new dijit.WidgetSet();this.forEach(function(_82){if(_80(_82)){res.add(_82);}});return res;},byId:function(id){return this._hash[id];},byClass:function(cls){return this.filter(function(_85){return _85.declaredClass==cls;});}});dijit.registry=new dijit.WidgetSet();dijit._widgetTypeCtr={};dijit.getUniqueId=function(_86){var id;do{id=_86+"_"+(_86 in dijit._widgetTypeCtr?++dijit._widgetTypeCtr[_86]:dijit._widgetTypeCtr[_86]=0);}while(dijit.byId(id));return id;};dijit.findWidgets=function(_88){var _89=[];function _8a(_8b){var _8c=dojo.isIE?_8b.children:_8b.childNodes,i=0,_8e;while(_8e=_8c[i++]){if(_8e.nodeType!=1){continue;}var _8f=_8e.getAttribute("widgetId");if(_8f){var _90=dijit.byId(_8f);_89.push(_90);}else{_8a(_8e);}}};_8a(_88);return _89;};if(dojo.isIE){dojo.addOnWindowUnload(function(){dojo.forEach(dijit.findWidgets(dojo.body()),function(_91){if(_91.destroyRecursive){_91.destroyRecursive();}else{if(_91.destroy){_91.destroy();}}});});}dijit.byId=function(id){return (dojo.isString(id))?dijit.registry.byId(id):id;};dijit.byNode=function(_93){return dijit.registry.byId(_93.getAttribute("widgetId"));};dijit.getEnclosingWidget=function(_94){while(_94){if(_94.getAttribute&&_94.getAttribute("widgetId")){return dijit.registry.byId(_94.getAttribute("widgetId"));}_94=_94.parentNode;}return null;};dijit._tabElements={area:true,button:true,input:true,object:true,select:true,textarea:true};dijit._isElementShown=function(_95){var _96=dojo.style(_95);return (_96.visibility!="hidden")&&(_96.visibility!="collapsed")&&(_96.display!="none")&&(dojo.attr(_95,"type")!="hidden");};dijit.isTabNavigable=function(_97){if(dojo.hasAttr(_97,"disabled")){return false;}var _98=dojo.hasAttr(_97,"tabindex");var _99=dojo.attr(_97,"tabindex");if(_98&&_99>=0){return true;}var _9a=_97.nodeName.toLowerCase();if(((_9a=="a"&&dojo.hasAttr(_97,"href"))||dijit._tabElements[_9a])&&(!_98||_99>=0)){return true;}return false;};dijit._getTabNavigable=function(_9b){var _9c,_9d,_9e,_9f,_a0,_a1;var _a2=function(_a3){dojo.query("> *",_a3).forEach(function(_a4){var _a5=dijit._isElementShown(_a4);if(_a5&&dijit.isTabNavigable(_a4)){var _a6=dojo.attr(_a4,"tabindex");if(!dojo.hasAttr(_a4,"tabindex")||_a6==0){if(!_9c){_9c=_a4;}_9d=_a4;}else{if(_a6>0){if(!_9e||_a6<_9f){_9f=_a6;_9e=_a4;}if(!_a0||_a6>=_a1){_a1=_a6;_a0=_a4;}}}}if(_a5&&_a4.nodeName.toUpperCase()!="SELECT"){_a2(_a4);}});};if(dijit._isElementShown(_9b)){_a2(_9b);}return {first:_9c,last:_9d,lowest:_9e,highest:_a0};};dijit.getFirstInTabbingOrder=function(_a7){var _a8=dijit._getTabNavigable(dojo.byId(_a7));return _a8.lowest?_a8.lowest:_a8.first;};dijit.getLastInTabbingOrder=function(_a9){var _aa=dijit._getTabNavigable(dojo.byId(_a9));return _aa.last?_aa.last:_aa.highest;};dijit.defaultDuration=dojo.config["defaultDuration"]||200;}if(!dojo._hasResource["dojo.AdapterRegistry"]){dojo._hasResource["dojo.AdapterRegistry"]=true;dojo.provide("dojo.AdapterRegistry");dojo.AdapterRegistry=function(_ab){this.pairs=[];this.returnWrappers=_ab||false;};dojo.extend(dojo.AdapterRegistry,{register:function(_ac,_ad,_ae,_af,_b0){this.pairs[((_b0)?"unshift":"push")]([_ac,_ad,_ae,_af]);},match:function(){for(var i=0;i<this.pairs.length;i++){var _b2=this.pairs[i];if(_b2[1].apply(this,arguments)){if((_b2[3])||(this.returnWrappers)){return _b2[2];}else{return _b2[2].apply(this,arguments);}}}throw new Error("No match found");},unregister:function(_b3){for(var i=0;i<this.pairs.length;i++){var _b5=this.pairs[i];if(_b5[0]==_b3){this.pairs.splice(i,1);return true;}}return false;}});}if(!dojo._hasResource["dijit._base.place"]){dojo._hasResource["dijit._base.place"]=true;dojo.provide("dijit._base.place");dijit.getViewport=function(){var _b6=(dojo.doc.compatMode=="BackCompat")?dojo.body():dojo.doc.documentElement;var _b7=dojo._docScroll();return {w:_b6.clientWidth,h:_b6.clientHeight,l:_b7.x,t:_b7.y};};dijit.placeOnScreen=function(_b8,pos,_ba,_bb){var _bc=dojo.map(_ba,function(_bd){var c={corner:_bd,pos:{x:pos.x,y:pos.y}};if(_bb){c.pos.x+=_bd.charAt(1)=="L"?_bb.x:-_bb.x;c.pos.y+=_bd.charAt(0)=="T"?_bb.y:-_bb.y;}return c;});return dijit._place(_b8,_bc);};dijit._place=function(_bf,_c0,_c1){var _c2=dijit.getViewport();if(!_bf.parentNode||String(_bf.parentNode.tagName).toLowerCase()!="body"){dojo.body().appendChild(_bf);}var _c3=null;dojo.some(_c0,function(_c4){var _c5=_c4.corner;var pos=_c4.pos;if(_c1){_c1(_bf,_c4.aroundCorner,_c5);}var _c7=_bf.style;var _c8=_c7.display;var _c9=_c7.visibility;_c7.visibility="hidden";_c7.display="";var mb=dojo.marginBox(_bf);_c7.display=_c8;_c7.visibility=_c9;var _cb=(_c5.charAt(1)=="L"?pos.x:Math.max(_c2.l,pos.x-mb.w)),_cc=(_c5.charAt(0)=="T"?pos.y:Math.max(_c2.t,pos.y-mb.h)),_cd=(_c5.charAt(1)=="L"?Math.min(_c2.l+_c2.w,_cb+mb.w):pos.x),_ce=(_c5.charAt(0)=="T"?Math.min(_c2.t+_c2.h,_cc+mb.h):pos.y),_cf=_cd-_cb,_d0=_ce-_cc,_d1=(mb.w-_cf)+(mb.h-_d0);if(_c3==null||_d1<_c3.overflow){_c3={corner:_c5,aroundCorner:_c4.aroundCorner,x:_cb,y:_cc,w:_cf,h:_d0,overflow:_d1};}return !_d1;});_bf.style.left=_c3.x+"px";_bf.style.top=_c3.y+"px";if(_c3.overflow&&_c1){_c1(_bf,_c3.aroundCorner,_c3.corner);}return _c3;};dijit.placeOnScreenAroundNode=function(_d2,_d3,_d4,_d5){_d3=dojo.byId(_d3);var _d6=_d3.style.display;_d3.style.display="";var _d7=_d3.offsetWidth;var _d8=_d3.offsetHeight;var _d9=dojo.coords(_d3,true);_d3.style.display=_d6;return dijit._placeOnScreenAroundRect(_d2,_d9.x,_d9.y,_d7,_d8,_d4,_d5);};dijit.placeOnScreenAroundRectangle=function(_da,_db,_dc,_dd){return dijit._placeOnScreenAroundRect(_da,_db.x,_db.y,_db.width,_db.height,_dc,_dd);};dijit._placeOnScreenAroundRect=function(_de,x,y,_e1,_e2,_e3,_e4){var _e5=[];for(var _e6 in _e3){_e5.push({aroundCorner:_e6,corner:_e3[_e6],pos:{x:x+(_e6.charAt(1)=="L"?0:_e1),y:y+(_e6.charAt(0)=="T"?0:_e2)}});}return dijit._place(_de,_e5,_e4);};dijit.placementRegistry=new dojo.AdapterRegistry();dijit.placementRegistry.register("node",function(n,x){return typeof x=="object"&&typeof x.offsetWidth!="undefined"&&typeof x.offsetHeight!="undefined";},dijit.placeOnScreenAroundNode);dijit.placementRegistry.register("rect",function(n,x){return typeof x=="object"&&"x" in x&&"y" in x&&"width" in x&&"height" in x;},dijit.placeOnScreenAroundRectangle);dijit.placeOnScreenAroundElement=function(_eb,_ec,_ed,_ee){return dijit.placementRegistry.match.apply(dijit.placementRegistry,arguments);};}if(!dojo._hasResource["dijit._base.window"]){dojo._hasResource["dijit._base.window"]=true;dojo.provide("dijit._base.window");dijit.getDocumentWindow=function(doc){if(dojo.isIE&&window!==document.parentWindow&&!doc._parentWindow){doc.parentWindow.execScript("document._parentWindow = window;","Javascript");var win=doc._parentWindow;doc._parentWindow=null;return win;}return doc._parentWindow||doc.parentWindow||doc.defaultView;};}if(!dojo._hasResource["dijit._base.popup"]){dojo._hasResource["dijit._base.popup"]=true;dojo.provide("dijit._base.popup");dijit.popup=new function(){var _f1=[],_f2=1000,_f3=1;this.prepare=function(_f4){var s=_f4.style;s.visibility="hidden";s.position="absolute";s.top="-9999px";if(s.display=="none"){s.display="";}dojo.body().appendChild(_f4);};this.open=function(_f6){var _f7=_f6.popup,_f8=_f6.orient||{"BL":"TL","TL":"BL"},_f9=_f6.around,id=(_f6.around&&_f6.around.id)?(_f6.around.id+"_dropdown"):("popup_"+_f3++);var _fb=dojo.create("div",{id:id,"class":"dijitPopup",style:{zIndex:_f2+_f1.length,visibility:"hidden"}},dojo.body());dijit.setWaiRole(_fb,"presentation");_fb.style.left=_fb.style.top="0px";if(_f6.parent){_fb.dijitPopupParent=_f6.parent.id;}var s=_f7.domNode.style;s.display="";s.visibility="";s.position="";s.top="0px";_fb.appendChild(_f7.domNode);var _fd=new dijit.BackgroundIframe(_fb);var _fe=_f9?dijit.placeOnScreenAroundElement(_fb,_f9,_f8,_f7.orient?dojo.hitch(_f7,"orient"):null):dijit.placeOnScreen(_fb,_f6,_f8=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],_f6.padding);_fb.style.visibility="visible";var _ff=[];var _100=function(){for(var pi=_f1.length-1;pi>0&&_f1[pi].parent===_f1[pi-1].widget;pi--){}return _f1[pi];};_ff.push(dojo.connect(_fb,"onkeypress",this,function(evt){if(evt.charOrCode==dojo.keys.ESCAPE&&_f6.onCancel){dojo.stopEvent(evt);_f6.onCancel();}else{if(evt.charOrCode===dojo.keys.TAB){dojo.stopEvent(evt);var _103=_100();if(_103&&_103.onCancel){_103.onCancel();}}}}));if(_f7.onCancel){_ff.push(dojo.connect(_f7,"onCancel",null,_f6.onCancel));}_ff.push(dojo.connect(_f7,_f7.onExecute?"onExecute":"onChange",null,function(){var _104=_100();if(_104&&_104.onExecute){_104.onExecute();}}));_f1.push({wrapper:_fb,iframe:_fd,widget:_f7,parent:_f6.parent,onExecute:_f6.onExecute,onCancel:_f6.onCancel,onClose:_f6.onClose,handlers:_ff});if(_f7.onOpen){_f7.onOpen(_fe);}return _fe;};this.close=function(_105){while(dojo.some(_f1,function(elem){return elem.widget==_105;})){var top=_f1.pop(),_108=top.wrapper,_109=top.iframe,_10a=top.widget,_10b=top.onClose;if(_10a.onClose){_10a.onClose();}dojo.forEach(top.handlers,dojo.disconnect);if(!_10a||!_10a.domNode){return;}this.prepare(_10a.domNode);_109.destroy();dojo.destroy(_108);if(_10b){_10b();}}};}();dijit._frames=new function(){var _10c=[];this.pop=function(){var _10d;if(_10c.length){_10d=_10c.pop();_10d.style.display="";}else{if(dojo.isIE){var burl=dojo.config["dojoBlankHtmlUrl"]||(dojo.moduleUrl("dojo","resources/blank.html")+"")||"javascript:\"\"";var html="<iframe src='"+burl+"'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_10d=dojo.doc.createElement(html);}else{_10d=dojo.create("iframe");_10d.src="javascript:\"\"";_10d.className="dijitBackgroundIframe";}_10d.tabIndex=-1;dojo.body().appendChild(_10d);}return _10d;};this.push=function(_110){_110.style.display="none";if(dojo.isIE){_110.style.removeExpression("width");_110.style.removeExpression("height");}_10c.push(_110);};}();dijit.BackgroundIframe=function(node){if(!node.id){throw new Error("no id");}if(dojo.isIE<7||(dojo.isFF<3&&dojo.hasClass(dojo.body(),"dijit_a11y"))){var _112=dijit._frames.pop();node.appendChild(_112);if(dojo.isIE){_112.style.setExpression("width",dojo._scopeName+".doc.getElementById('"+node.id+"').offsetWidth");_112.style.setExpression("height",dojo._scopeName+".doc.getElementById('"+node.id+"').offsetHeight");}this.iframe=_112;}};dojo.extend(dijit.BackgroundIframe,{destroy:function(){if(this.iframe){dijit._frames.push(this.iframe);delete this.iframe;}}});}if(!dojo._hasResource["dijit._base.scroll"]){dojo._hasResource["dijit._base.scroll"]=true;dojo.provide("dijit._base.scroll");dijit.scrollIntoView=function(node){try{node=dojo.byId(node);var doc=dojo.doc;var body=dojo.body();var html=body.parentNode;if((!(dojo.isFF>=3||dojo.isIE||dojo.isWebKit)||node==body||node==html)&&(typeof node.scrollIntoView=="function")){node.scrollIntoView(false);return;}var ltr=dojo._isBodyLtr();var _118=dojo.isIE>=8&&!_119;var rtl=!ltr&&!_118;var _11b=body;var _119=doc.compatMode=="BackCompat";if(_119){html._offsetWidth=html._clientWidth=body._offsetWidth=body.clientWidth;html._offsetHeight=html._clientHeight=body._offsetHeight=body.clientHeight;}else{if(dojo.isWebKit){body._offsetWidth=body._clientWidth=html.clientWidth;body._offsetHeight=body._clientHeight=html.clientHeight;}else{_11b=html;}html._offsetHeight=html.clientHeight;html._offsetWidth=html.clientWidth;}function _11c(_11d){var ie=dojo.isIE;return ((ie<=6||(ie>=7&&_119))?false:(dojo.style(_11d,"position").toLowerCase()=="fixed"));};function _11f(_120){var _121=_120.parentNode;var _122=_120.offsetParent;if(_122==null||_11c(_120)){_122=html;_121=(_120==body)?html:null;}_120._offsetParent=_122;_120._parent=_121;var bp=dojo._getBorderExtents(_120);_120._borderStart={H:(_118&&!ltr)?(bp.w-bp.l):bp.l,V:bp.t};_120._borderSize={H:bp.w,V:bp.h};_120._scrolledAmount={H:_120.scrollLeft,V:_120.scrollTop};_120._offsetSize={H:_120._offsetWidth||_120.offsetWidth,V:_120._offsetHeight||_120.offsetHeight};_120._offsetStart={H:(_118&&!ltr)?_122.clientWidth-_120.offsetLeft-_120._offsetSize.H:_120.offsetLeft,V:_120.offsetTop};_120._clientSize={H:_120._clientWidth||_120.clientWidth,V:_120._clientHeight||_120.clientHeight};if(_120!=body&&_120!=html&&_120!=node){for(var dir in _120._offsetSize){var _125=_120._offsetSize[dir]-_120._clientSize[dir]-_120._borderSize[dir];var _126=_120._clientSize[dir]>0&&_125>0;if(_126){_120._offsetSize[dir]-=_125;if(dojo.isIE&&rtl&&dir=="H"){_120._offsetStart[dir]+=_125;}}}}};var _127=node;while(_127!=null){if(_11c(_127)){node.scrollIntoView(false);return;}_11f(_127);_127=_127._parent;}if(dojo.isIE&&node._parent){var _128=node._offsetParent;node._offsetStart.H+=_128._borderStart.H;node._offsetStart.V+=_128._borderStart.V;}if(dojo.isIE>=7&&_11b==html&&rtl&&body._offsetStart&&body._offsetStart.H==0){var _129=html.scrollWidth-html._offsetSize.H;if(_129>0){body._offsetStart.H=-_129;}}if(dojo.isIE<=6&&!_119){html._offsetSize.H+=html._borderSize.H;html._offsetSize.V+=html._borderSize.V;}if(rtl&&body._offsetStart&&_11b==html&&html._scrolledAmount){var ofs=body._offsetStart.H;if(ofs<0){html._scrolledAmount.H+=ofs;body._offsetStart.H=0;}}_127=node;while(_127){var _12b=_127._parent;if(!_12b){break;}if(_12b.tagName=="TD"){var _12c=_12b._parent._parent._parent;if(_12b!=_127._offsetParent&&_12b._offsetParent!=_127._offsetParent){_12b=_12c;}}var _12d=_127._offsetParent==_12b;for(var dir in _127._offsetStart){var _12f=dir=="H"?"V":"H";if(rtl&&dir=="H"&&(_12b!=html)&&(_12b!=body)&&(dojo.isIE||dojo.isWebKit)&&_12b._clientSize.H>0&&_12b.scrollWidth>_12b._clientSize.H){var _130=_12b.scrollWidth-_12b._clientSize.H;if(_130>0){_12b._scrolledAmount.H-=_130;}}if(_12b._offsetParent.tagName=="TABLE"){if(dojo.isIE){_12b._offsetStart[dir]-=_12b._offsetParent._borderStart[dir];_12b._borderStart[dir]=_12b._borderSize[dir]=0;}else{_12b._offsetStart[dir]+=_12b._offsetParent._borderStart[dir];}}if(dojo.isIE){_12b._offsetStart[dir]+=_12b._offsetParent._borderStart[dir];}var _131=_127._offsetStart[dir]-_12b._scrolledAmount[dir]-(_12d?0:_12b._offsetStart[dir])-_12b._borderStart[dir];var _132=_131+_127._offsetSize[dir]-_12b._offsetSize[dir]+_12b._borderSize[dir];var _133=(dir=="H")?"scrollLeft":"scrollTop";var _134=dir=="H"&&rtl;var _135=_134?-_132:_131;var _136=_134?-_131:_132;var _137=(_135*_136<=0)?0:Math[(_135<0)?"max":"min"](_135,_136);if(_137!=0){var _138=_12b[_133];_12b[_133]+=(_134)?-_137:_137;var _139=_12b[_133]-_138;}if(_12d){_127._offsetStart[dir]+=_12b._offsetStart[dir];}_127._offsetStart[dir]-=_12b[_133];}_127._parent=_12b._parent;_127._offsetParent=_12b._offsetParent;}_12b=node;var next;while(_12b&&_12b.removeAttribute){next=_12b.parentNode;_12b.removeAttribute("_offsetParent");_12b.removeAttribute("_parent");_12b=next;}}catch(error){console.error("scrollIntoView: "+error);node.scrollIntoView(false);}};}if(!dojo._hasResource["dijit._base.sniff"]){dojo._hasResource["dijit._base.sniff"]=true;dojo.provide("dijit._base.sniff");(function(){var d=dojo,html=d.doc.documentElement,ie=d.isIE,_13e=d.isOpera,maj=Math.floor,ff=d.isFF,_141=d.boxModel.replace(/-/,""),_142={dj_ie:ie,dj_ie6:maj(ie)==6,dj_ie7:maj(ie)==7,dj_iequirks:ie&&d.isQuirks,dj_opera:_13e,dj_opera8:maj(_13e)==8,dj_opera9:maj(_13e)==9,dj_khtml:d.isKhtml,dj_webkit:d.isWebKit,dj_safari:d.isSafari,dj_gecko:d.isMozilla,dj_ff2:maj(ff)==2,dj_ff3:maj(ff)==3};_142["dj_"+_141]=true;for(var p in _142){if(_142[p]){if(html.className){html.className+=" "+p;}else{html.className=p;}}}dojo._loaders.unshift(function(){if(!dojo._isBodyLtr()){html.className+=" dijitRtl";for(var p in _142){if(_142[p]){html.className+=" "+p+"-rtl";}}}});})();}if(!dojo._hasResource["dijit._base.typematic"]){dojo._hasResource["dijit._base.typematic"]=true;dojo.provide("dijit._base.typematic");dijit.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=(this._currentTimeout<0)?this._initialDelay:((this._subsequentDelay>1)?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay));this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(evt,_146,node,_148,obj,_14a,_14b){if(obj!=this._obj){this.stop();this._initialDelay=_14b||500;this._subsequentDelay=_14a||0.9;this._obj=obj;this._evt=evt;this._node=node;this._currentTimeout=-1;this._count=-1;this._callback=dojo.hitch(_146,_148);this._fireEventAndReload();}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(node,_14d,_14e,_14f,_150,_151){if(_14d.keyCode){_14d.charOrCode=_14d.keyCode;dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}else{if(_14d.charCode){_14d.charOrCode=String.fromCharCode(_14d.charCode);dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}}return [dojo.connect(node,"onkeypress",this,function(evt){if(evt.charOrCode==_14d.charOrCode&&(_14d.ctrlKey===undefined||_14d.ctrlKey==evt.ctrlKey)&&(_14d.altKey===undefined||_14d.altKey==evt.ctrlKey)&&(_14d.shiftKey===undefined||_14d.shiftKey==evt.ctrlKey)){dojo.stopEvent(evt);dijit.typematic.trigger(_14d,_14e,node,_14f,_14d,_150,_151);}else{if(dijit.typematic._obj==_14d){dijit.typematic.stop();}}}),dojo.connect(node,"onkeyup",this,function(evt){if(dijit.typematic._obj==_14d){dijit.typematic.stop();}})];},addMouseListener:function(node,_155,_156,_157,_158){var dc=dojo.connect;return [dc(node,"mousedown",this,function(evt){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_155,node,_156,node,_157,_158);}),dc(node,"mouseup",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mouseout",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(node,"mousemove",this,function(evt){dojo.stopEvent(evt);}),dc(node,"dblclick",this,function(evt){dojo.stopEvent(evt);if(dojo.isIE){dijit.typematic.trigger(evt,_155,node,_156,node,_157,_158);setTimeout(dojo.hitch(this,dijit.typematic.stop),50);}})];},addListener:function(_15f,_160,_161,_162,_163,_164,_165){return this.addKeyListener(_160,_161,_162,_163,_164,_165).concat(this.addMouseListener(_15f,_162,_163,_164,_165));}};}if(!dojo._hasResource["dijit._base.wai"]){dojo._hasResource["dijit._base.wai"]=true;dojo.provide("dijit._base.wai");dijit.wai={onload:function(){var div=dojo.create("div",{id:"a11yTestNode",style:{cssText:"border: 1px solid;"+"border-color:red green;"+"position: absolute;"+"height: 5px;"+"top: -999px;"+"background-image: url(\""+(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif"))+"\");"}},dojo.body());var cs=dojo.getComputedStyle(div);if(cs){var _168=cs.backgroundImage;var _169=(cs.borderTopColor==cs.borderRightColor)||(_168!=null&&(_168=="none"||_168=="url(invalid-url:)"));dojo[_169?"addClass":"removeClass"](dojo.body(),"dijit_a11y");if(dojo.isIE){div.outerHTML="";}else{dojo.body().removeChild(div);}}}};if(dojo.isIE||dojo.isMoz){dojo._loaders.unshift(dijit.wai.onload);}dojo.mixin(dijit,{_XhtmlRoles:/banner|contentinfo|definition|main|navigation|search|note|secondary|seealso/,hasWaiRole:function(elem,role){var _16c=this.getWaiRole(elem);return role?(_16c.indexOf(role)>-1):(_16c.length>0);},getWaiRole:function(elem){return dojo.trim((dojo.attr(elem,"role")||"").replace(this._XhtmlRoles,"").replace("wairole:",""));},setWaiRole:function(elem,role){var _170=dojo.attr(elem,"role")||"";if(dojo.isFF<3||!this._XhtmlRoles.test(_170)){dojo.attr(elem,"role",dojo.isFF<3?"wairole:"+role:role);}else{if((" "+_170+" ").indexOf(" "+role+" ")<0){var _171=dojo.trim(_170.replace(this._XhtmlRoles,""));var _172=dojo.trim(_170.replace(_171,""));dojo.attr(elem,"role",_172+(_172?" ":"")+role);}}},removeWaiRole:function(elem,role){var _175=dojo.attr(elem,"role");if(!_175){return;}if(role){var _176=dojo.isFF<3?"wairole:"+role:role;var t=dojo.trim((" "+_175+" ").replace(" "+_176+" "," "));dojo.attr(elem,"role",t);}else{elem.removeAttribute("role");}},hasWaiState:function(elem,_179){if(dojo.isFF<3){return elem.hasAttributeNS("http://www.w3.org/2005/07/aaa",_179);}return elem.hasAttribute?elem.hasAttribute("aria-"+_179):!!elem.getAttribute("aria-"+_179);},getWaiState:function(elem,_17b){if(dojo.isFF<3){return elem.getAttributeNS("http://www.w3.org/2005/07/aaa",_17b);}return elem.getAttribute("aria-"+_17b)||"";},setWaiState:function(elem,_17d,_17e){if(dojo.isFF<3){elem.setAttributeNS("http://www.w3.org/2005/07/aaa","aaa:"+_17d,_17e);}else{elem.setAttribute("aria-"+_17d,_17e);}},removeWaiState:function(elem,_180){if(dojo.isFF<3){elem.removeAttributeNS("http://www.w3.org/2005/07/aaa",_180);}else{elem.removeAttribute("aria-"+_180);}}});}if(!dojo._hasResource["dijit._base"]){dojo._hasResource["dijit._base"]=true;dojo.provide("dijit._base");}if(!dojo._hasResource["dijit._Widget"]){dojo._hasResource["dijit._Widget"]=true;dojo.provide("dijit._Widget");dojo.require("dijit._base");dojo.connect(dojo,"connect",function(_181,_182){if(_181&&dojo.isFunction(_181._onConnect)){_181._onConnect(_182);}});dijit._connectOnUseEventHandler=function(_183){};(function(){var _184={};var _185=function(dc){if(!_184[dc]){var r=[];var _188;var _189=dojo.getObject(dc).prototype;for(var _18a in _189){if(dojo.isFunction(_189[_18a])&&(_188=_18a.match(/^_set([a-zA-Z]*)Attr$/))&&_188[1]){r.push(_188[1].charAt(0).toLowerCase()+_188[1].substr(1));}}_184[dc]=r;}return _184[dc]||[];};dojo.declare("dijit._Widget",null,{id:"",lang:"",dir:"","class":"",style:"",title:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},_deferredConnects:{onClick:"",onDblClick:"",onKeyDown:"",onKeyPress:"",onKeyUp:"",onMouseMove:"",onMouseDown:"",onMouseOut:"",onMouseOver:"",onMouseLeave:"",onMouseEnter:"",onMouseUp:""},onClick:dijit._connectOnUseEventHandler,onDblClick:dijit._connectOnUseEventHandler,onKeyDown:dijit._connectOnUseEventHandler,onKeyPress:dijit._connectOnUseEventHandler,onKeyUp:dijit._connectOnUseEventHandler,onMouseDown:dijit._connectOnUseEventHandler,onMouseMove:dijit._connectOnUseEventHandler,onMouseOut:dijit._connectOnUseEventHandler,onMouseOver:dijit._connectOnUseEventHandler,onMouseLeave:dijit._connectOnUseEventHandler,onMouseEnter:dijit._connectOnUseEventHandler,onMouseUp:dijit._connectOnUseEventHandler,_blankGif:(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif")),postscript:function(_18b,_18c){this.create(_18b,_18c);},create:function(_18d,_18e){this.srcNodeRef=dojo.byId(_18e);this._connects=[];this._deferredConnects=dojo.clone(this._deferredConnects);for(var attr in this.attributeMap){delete this._deferredConnects[attr];}for(attr in this._deferredConnects){if(this[attr]!==dijit._connectOnUseEventHandler){delete this._deferredConnects[attr];}}if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_18d){this.params=_18d;dojo.mixin(this,_18d);}this.postMixInProperties();if(!this.id){this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));}dijit.registry.add(this);this.buildRendering();if(this.domNode){this._applyAttributes();var _190=this.srcNodeRef;if(_190&&_190.parentNode){_190.parentNode.replaceChild(this.domNode,_190);}for(attr in this.params){this._onConnect(attr);}}if(this.domNode){this.domNode.setAttribute("widgetId",this.id);}this.postCreate();if(this.srcNodeRef&&!this.srcNodeRef.parentNode){delete this.srcNodeRef;}this._created=true;},_applyAttributes:function(){var _191=function(attr,_193){if((_193.params&&attr in _193.params)||_193[attr]){_193.attr(attr,_193[attr]);}};for(var attr in this.attributeMap){_191(attr,this);}dojo.forEach(_185(this.declaredClass),function(a){if(!(a in this.attributeMap)){_191(a,this);}},this);},postMixInProperties:function(){},buildRendering:function(){this.domNode=this.srcNodeRef||dojo.create("div");},postCreate:function(){},startup:function(){this._started=true;},destroyRecursive:function(_196){this.destroyDescendants(_196);this.destroy(_196);},destroy:function(_197){this.uninitialize();dojo.forEach(this._connects,function(_198){dojo.forEach(_198,dojo.disconnect);});dojo.forEach(this._supportingWidgets||[],function(w){if(w.destroy){w.destroy();}});this.destroyRendering(_197);dijit.registry.remove(this.id);},destroyRendering:function(_19a){if(this.bgIframe){this.bgIframe.destroy(_19a);delete this.bgIframe;}if(this.domNode){if(_19a){dojo.removeAttr(this.domNode,"widgetId");}else{dojo.destroy(this.domNode);}delete this.domNode;}if(this.srcNodeRef){if(!_19a){dojo.destroy(this.srcNodeRef);}delete this.srcNodeRef;}},destroyDescendants:function(_19b){dojo.forEach(this.getChildren(),function(_19c){if(_19c.destroyRecursive){_19c.destroyRecursive(_19b);}});},uninitialize:function(){return false;},onFocus:function(){},onBlur:function(){},_onFocus:function(e){this.onFocus();},_onBlur:function(){this.onBlur();},_onConnect:function(_19e){if(_19e in this._deferredConnects){var _19f=this[this._deferredConnects[_19e]||"domNode"];this.connect(_19f,_19e.toLowerCase(),_19e);delete this._deferredConnects[_19e];}},_setClassAttr:function(_1a0){var _1a1=this[this.attributeMap["class"]||"domNode"];dojo.removeClass(_1a1,this["class"]);this["class"]=_1a0;dojo.addClass(_1a1,_1a0);},_setStyleAttr:function(_1a2){var _1a3=this[this.attributeMap["style"]||"domNode"];if(dojo.isObject(_1a2)){dojo.style(_1a3,_1a2);}else{if(_1a3.style.cssText){_1a3.style.cssText+="; "+_1a2;}else{_1a3.style.cssText=_1a2;}}this["style"]=_1a2;},setAttribute:function(attr,_1a5){dojo.deprecated(this.declaredClass+"::setAttribute() is deprecated. Use attr() instead.","","2.0");this.attr(attr,_1a5);},_attrToDom:function(attr,_1a7){var _1a8=this.attributeMap[attr];dojo.forEach(dojo.isArray(_1a8)?_1a8:[_1a8],function(_1a9){var _1aa=this[_1a9.node||_1a9||"domNode"];var type=_1a9.type||"attribute";switch(type){case "attribute":if(dojo.isFunction(_1a7)){_1a7=dojo.hitch(this,_1a7);}if(/^on[A-Z][a-zA-Z]*$/.test(attr)){attr=attr.toLowerCase();}dojo.attr(_1aa,attr,_1a7);break;case "innerHTML":_1aa.innerHTML=_1a7;break;case "class":dojo.removeClass(_1aa,this[attr]);dojo.addClass(_1aa,_1a7);break;}},this);this[attr]=_1a7;},attr:function(name,_1ad){var args=arguments.length;if(args==1&&!dojo.isString(name)){for(var x in name){this.attr(x,name[x]);}return this;}var _1b0=this._getAttrNames(name);if(args==2){if(this[_1b0.s]){return this[_1b0.s](_1ad)||this;}else{if(name in this.attributeMap){this._attrToDom(name,_1ad);}this[name]=_1ad;}return this;}else{if(this[_1b0.g]){return this[_1b0.g]();}else{return this[name];}}},_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name]){return apn[name];}var uc=name.charAt(0).toUpperCase()+name.substr(1);return apn[name]={n:name+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"};},toString:function(){return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]";},getDescendants:function(){if(this.containerNode){var list=dojo.query("[widgetId]",this.containerNode);return list.map(dijit.byNode);}else{return [];}},getChildren:function(){if(this.containerNode){return dijit.findWidgets(this.containerNode);}else{return [];}},nodesWithKeyClick:["input","button"],connect:function(obj,_1b6,_1b7){var d=dojo;var dc=dojo.connect;var _1ba=[];if(_1b6=="ondijitclick"){if(!this.nodesWithKeyClick[obj.nodeName]){var m=d.hitch(this,_1b7);_1ba.push(dc(obj,"onkeydown",this,function(e){if(!d.isFF&&e.keyCode==d.keys.ENTER&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){return m(e);}else{if(e.keyCode==d.keys.SPACE){d.stopEvent(e);}}}),dc(obj,"onkeyup",this,function(e){if(e.keyCode==d.keys.SPACE&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){return m(e);}}));if(d.isFF){_1ba.push(dc(obj,"onkeypress",this,function(e){if(e.keyCode==d.keys.ENTER&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){return m(e);}}));}}_1b6="onclick";}_1ba.push(dc(obj,_1b6,this,_1b7));this._connects.push(_1ba);return _1ba;},disconnect:function(_1bf){for(var i=0;i<this._connects.length;i++){if(this._connects[i]==_1bf){dojo.forEach(_1bf,dojo.disconnect);this._connects.splice(i,1);return;}}},isLeftToRight:function(){return dojo._isBodyLtr();},isFocusable:function(){return this.focus&&(dojo.style(this.domNode,"display")!="none");},placeAt:function(_1c1,_1c2){if(_1c1["declaredClass"]&&_1c1["addChild"]){_1c1.addChild(this,_1c2);}else{dojo.place(this.domNode,_1c1,_1c2);}return this;}});})();}if(!dojo._hasResource["dijit._Contained"]){dojo._hasResource["dijit._Contained"]=true;dojo.provide("dijit._Contained");dojo.declare("dijit._Contained",null,{getParent:function(){for(var p=this.domNode.parentNode;p;p=p.parentNode){var id=p.getAttribute&&p.getAttribute("widgetId");if(id){var _1c5=dijit.byId(id);return _1c5.isContainer?_1c5:null;}}return null;},_getSibling:function(_1c6){var node=this.domNode;do{node=node[_1c6+"Sibling"];}while(node&&node.nodeType!=1);if(!node){return null;}var id=node.getAttribute("widgetId");return dijit.byId(id);},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");},getIndexInParent:function(){var p=this.getParent();if(!p||!p.getIndexOfChild){return -1;}return p.getIndexOfChild(this);}});}if(!dojo._hasResource["dijit._Container"]){dojo._hasResource["dijit._Container"]=true;dojo.provide("dijit._Container");dojo.declare("dijit._Container",null,{isContainer:true,buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(_1ca,_1cb){var _1cc=this.containerNode;if(_1cb&&typeof _1cb=="number"){var _1cd=this.getChildren();if(_1cd&&_1cd.length>=_1cb){_1cc=_1cd[_1cb-1].domNode;_1cb="after";}}dojo.place(_1ca.domNode,_1cc,_1cb);if(this._started&&!_1ca._started){_1ca.startup();}},removeChild:function(_1ce){if(typeof _1ce=="number"&&_1ce>0){_1ce=this.getChildren()[_1ce];}if(!_1ce||!_1ce.domNode){return;}var node=_1ce.domNode;node.parentNode.removeChild(node);},_nextElement:function(node){do{node=node.nextSibling;}while(node&&node.nodeType!=1);return node;},_firstElement:function(node){node=node.firstChild;if(node&&node.nodeType!=1){node=this._nextElement(node);}return node;},getChildren:function(){return dojo.query("> [widgetId]",this.containerNode).map(dijit.byNode);},hasChildren:function(){return !!this._firstElement(this.containerNode);},destroyDescendants:function(_1d2){dojo.forEach(this.getChildren(),function(_1d3){_1d3.destroyRecursive(_1d2);});},_getSiblingOfChild:function(_1d4,dir){var node=_1d4.domNode;var _1d7=(dir>0?"nextSibling":"previousSibling");do{node=node[_1d7];}while(node&&(node.nodeType!=1||!dijit.byNode(node)));return node?dijit.byNode(node):null;},getIndexOfChild:function(_1d8){var _1d9=this.getChildren();for(var i=0,c;c=_1d9[i];i++){if(c==_1d8){return i;}}return -1;}});}if(!dojo._hasResource["dijit.layout._LayoutWidget"]){dojo._hasResource["dijit.layout._LayoutWidget"]=true;dojo.provide("dijit.layout._LayoutWidget");dojo.declare("dijit.layout._LayoutWidget",[dijit._Widget,dijit._Container,dijit._Contained],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,postCreate:function(){dojo.addClass(this.domNode,"dijitContainer");dojo.addClass(this.domNode,this.baseClass);},startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_1dc){_1dc.startup();});if(!this.getParent||!this.getParent()){this.resize();this._viewport=dijit.getViewport();this.connect(dojo.global,"onresize",function(){var _1dd=dijit.getViewport();if(_1dd.w!=this._viewport.w||_1dd.h!=this._viewport.h){this._viewport=_1dd;this.resize();}});}this.inherited(arguments);},resize:function(_1de,_1df){var node=this.domNode;if(_1de){dojo.marginBox(node,_1de);if(_1de.t){node.style.top=_1de.t+"px";}if(_1de.l){node.style.left=_1de.l+"px";}}var mb=_1df||{};dojo.mixin(mb,_1de||{});if(!("h" in mb)||!("w" in mb)){mb=dojo.mixin(dojo.marginBox(node),mb);}var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var be=dojo._getBorderExtents(node,cs);var bb=(this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)});var pe=dojo._getPadExtents(node,cs);this._contentBox={l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout();},layout:function(){},_setupChild:function(_1e7){dojo.addClass(_1e7.domNode,this.baseClass+"-child");if(_1e7.baseClass){dojo.addClass(_1e7.domNode,this.baseClass+"-"+_1e7.baseClass);}},addChild:function(_1e8,_1e9){this.inherited(arguments);if(this._started){this._setupChild(_1e8);}},removeChild:function(_1ea){dojo.removeClass(_1ea.domNode,this.baseClass+"-child");if(_1ea.baseClass){dojo.removeClass(_1ea.domNode,this.baseClass+"-"+_1ea.baseClass);}this.inherited(arguments);}});dijit.layout.marginBox2contentBox=function(node,mb){var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var pb=dojo._getPadBorderExtents(node,cs);return {l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};(function(){var _1f0=function(word){return word.substring(0,1).toUpperCase()+word.substring(1);};var size=function(_1f3,dim){_1f3.resize?_1f3.resize(dim):dojo.marginBox(_1f3.domNode,dim);dojo.mixin(_1f3,dojo.marginBox(_1f3.domNode));dojo.mixin(_1f3,dim);};dijit.layout.layoutChildren=function(_1f5,dim,_1f7){dim=dojo.mixin({},dim);dojo.addClass(_1f5,"dijitLayoutContainer");_1f7=dojo.filter(_1f7,function(item){return item.layoutAlign!="client";}).concat(dojo.filter(_1f7,function(item){return item.layoutAlign=="client";}));dojo.forEach(_1f7,function(_1fa){var elm=_1fa.domNode,pos=_1fa.layoutAlign;var _1fd=elm.style;_1fd.left=dim.l+"px";_1fd.top=dim.t+"px";_1fd.bottom=_1fd.right="auto";dojo.addClass(elm,"dijitAlign"+_1f0(pos));if(pos=="top"||pos=="bottom"){size(_1fa,{w:dim.w});dim.h-=_1fa.h;if(pos=="top"){dim.t+=_1fa.h;}else{_1fd.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){size(_1fa,{h:dim.h});dim.w-=_1fa.w;if(pos=="left"){dim.l+=_1fa.w;}else{_1fd.left=dim.l+dim.w+"px";}}else{if(pos=="client"){size(_1fa,dim);}}}});};})();}if(!dojo._hasResource["dojo.string"]){dojo._hasResource["dojo.string"]=true;dojo.provide("dojo.string");dojo.string.rep=function(str,num){if(num<=0||!str){return "";}var buf=[];for(;;){if(num&1){buf.push(str);}if(!(num>>=1)){break;}str+=str;}return buf.join("");};dojo.string.pad=function(text,size,ch,end){if(!ch){ch="0";}var out=String(text),pad=dojo.string.rep(ch,Math.ceil((size-out.length)/ch.length));return end?out+pad:pad+out;};dojo.string.substitute=function(_207,map,_209,_20a){_20a=_20a||dojo.global;_209=(!_209)?function(v){return v;}:dojo.hitch(_20a,_209);return _207.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_20c,key,_20e){var _20f=dojo.getObject(key,false,map);if(_20e){_20f=dojo.getObject(_20e,false,_20a).call(_20a,_20f,key);}return _209(_20f,key).toString();});};dojo.string.trim=String.prototype.trim?dojo.trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;};}if(!dojo._hasResource["dojo.html"]){dojo._hasResource["dojo.html"]=true;dojo.provide("dojo.html");(function(){var _212=0;dojo.html._secureForInnerHtml=function(cont){return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");};dojo.html._emptyNode=dojo.empty;dojo.html._setNodeContent=function(node,cont,_216){if(_216){dojo.html._emptyNode(node);}if(typeof cont=="string"){var pre="",post="",walk=0,name=node.nodeName.toLowerCase();switch(name){case "tr":pre="<tr>";post="</tr>";walk+=1;case "tbody":case "thead":pre="<tbody>"+pre;post+="</tbody>";walk+=1;case "table":pre="<table>"+pre;post+="</table>";walk+=1;break;}if(walk){var n=node.ownerDocument.createElement("div");n.innerHTML=pre+cont+post;do{n=n.firstChild;}while(--walk);dojo.forEach(n.childNodes,function(n){node.appendChild(n.cloneNode(true));});}else{node.innerHTML=cont;}}else{if(cont.nodeType){node.appendChild(cont);}else{dojo.forEach(cont,function(n){node.appendChild(n.cloneNode(true));});}}return node;};dojo.declare("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,constructor:function(_21e,node){dojo.mixin(this,_21e||{});node=this.node=dojo.byId(this.node||node);if(!this.id){this.id=["Setter",(node)?node.id||node.tagName:"",_212++].join("_");}if(!(this.node||node)){new Error(this.declaredClass+": no node provided to "+this.id);}},set:function(cont,_221){if(undefined!==cont){this.content=cont;}if(_221){this._mixin(_221);}this.onBegin();this.setContent();this.onEnd();return this.node;},setContent:function(){var node=this.node;if(!node){console.error("setContent given no node");}try{node=dojo.html._setNodeContent(node,this.content);}catch(e){var _223=this.onContentError(e);try{node.innerHTML=_223;}catch(e){console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e);}}this.node=node;},empty:function(){if(this.parseResults&&this.parseResults.length){dojo.forEach(this.parseResults,function(w){if(w.destroy){w.destroy();}});delete this.parseResults;}dojo.html._emptyNode(this.node);},onBegin:function(){var cont=this.content;if(dojo.isString(cont)){if(this.cleanContent){cont=dojo.html._secureForInnerHtml(cont);}if(this.extractContent){var _226=cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_226){cont=_226[1];}}}this.empty();this.content=cont;return this.node;},onEnd:function(){if(this.parseContent){this._parse();}return this.node;},tearDown:function(){delete this.parseResults;delete this.node;delete this.content;},onContentError:function(err){return "Error occured setting content: "+err;},_mixin:function(_228){var _229={},key;for(key in _228){if(key in _229){continue;}this[key]=_228[key];}},_parse:function(){var _22b=this.node;try{this.parseResults=dojo.parser.parse(_22b,true);}catch(e){this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id);}},_onError:function(type,err,_22e){var _22f=this["on"+type+"Error"].call(this,err);if(_22e){console.error(_22e,err);}else{if(_22f){dojo.html._setNodeContent(this.node,_22f,true);}}}});dojo.html.set=function(node,cont,_232){if(undefined==cont){console.warn("dojo.html.set: no cont argument provided, using empty string");cont="";}if(!_232){return dojo.html._setNodeContent(node,cont,true);}else{var op=new dojo.html._ContentSetter(dojo.mixin(_232,{content:cont,node:node}));return op.set();}};})();}if(!dojo._hasResource["dojo.i18n"]){dojo._hasResource["dojo.i18n"]=true;dojo.provide("dojo.i18n");dojo.i18n.getLocalization=function(_234,_235,_236){_236=dojo.i18n.normalizeLocale(_236);var _237=_236.split("-");var _238=[_234,"nls",_235].join(".");var _239=dojo._loadedModules[_238];if(_239){var _23a;for(var i=_237.length;i>0;i--){var loc=_237.slice(0,i).join("_");if(_239[loc]){_23a=_239[loc];break;}}if(!_23a){_23a=_239.ROOT;}if(_23a){var _23d=function(){};_23d.prototype=_23a;return new _23d();}}throw new Error("Bundle not found: "+_235+" in "+_234+" , locale="+_236);};dojo.i18n.normalizeLocale=function(_23e){var _23f=_23e?_23e.toLowerCase():dojo.locale;if(_23f=="root"){_23f="ROOT";}return _23f;};dojo.i18n._requireLocalization=function(_240,_241,_242,_243){var _244=dojo.i18n.normalizeLocale(_242);var _245=[_240,"nls",_241].join(".");var _246="";if(_243){var _247=_243.split(",");for(var i=0;i<_247.length;i++){if(_244["indexOf"](_247[i])==0){if(_247[i].length>_246.length){_246=_247[i];}}}if(!_246){_246="ROOT";}}var _249=_243?_246:_244;var _24a=dojo._loadedModules[_245];var _24b=null;if(_24a){if(dojo.config.localizationComplete&&_24a._built){return;}var _24c=_249.replace(/-/g,"_");var _24d=_245+"."+_24c;_24b=dojo._loadedModules[_24d];}if(!_24b){_24a=dojo["provide"](_245);var syms=dojo._getModuleSymbols(_240);var _24f=syms.concat("nls").join("/");var _250;dojo.i18n._searchLocalePath(_249,_243,function(loc){var _252=loc.replace(/-/g,"_");var _253=_245+"."+_252;var _254=false;if(!dojo._loadedModules[_253]){dojo["provide"](_253);var _255=[_24f];if(loc!="ROOT"){_255.push(loc);}_255.push(_241);var _256=_255.join("/")+".js";_254=dojo._loadPath(_256,null,function(hash){var _258=function(){};_258.prototype=_250;_24a[_252]=new _258();for(var j in hash){_24a[_252][j]=hash[j];}});}else{_254=true;}if(_254&&_24a[_252]){_250=_24a[_252];}else{_24a[_252]=_250;}if(_243){return true;}});}if(_243&&_244!=_246){_24a[_244.replace(/-/g,"_")]=_24a[_246.replace(/-/g,"_")];}};(function(){var _25a=dojo.config.extraLocale;if(_25a){if(!_25a instanceof Array){_25a=[_25a];}var req=dojo.i18n._requireLocalization;dojo.i18n._requireLocalization=function(m,b,_25e,_25f){req(m,b,_25e,_25f);if(_25e){return;}for(var i=0;i<_25a.length;i++){req(m,b,_25a[i],_25f);}};}})();dojo.i18n._searchLocalePath=function(_261,down,_263){_261=dojo.i18n.normalizeLocale(_261);var _264=_261.split("-");var _265=[];for(var i=_264.length;i>0;i--){_265.push(_264.slice(0,i).join("-"));}_265.push(false);if(down){_265.reverse();}for(var j=_265.length-1;j>=0;j--){var loc=_265[j]||"ROOT";var stop=_263(loc);if(stop){break;}}};dojo.i18n._preloadLocalizations=function(_26a,_26b){function _26c(_26d){_26d=dojo.i18n.normalizeLocale(_26d);dojo.i18n._searchLocalePath(_26d,true,function(loc){for(var i=0;i<_26b.length;i++){if(_26b[i]==loc){dojo["require"](_26a+"_"+loc);return true;}}return false;});};_26c();var _270=dojo.config.extraLocale||[];for(var i=0;i<_270.length;i++){_26c(_270[i]);}};}if(!dojo._hasResource["dijit.layout.ContentPane"]){dojo._hasResource["dijit.layout.ContentPane"]=true;dojo.provide("dijit.layout.ContentPane");dojo.declare("dijit.layout.ContentPane",dijit._Widget,{href:"",extractContent:false,parseOnLoad:true,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",doLayout:true,ioArgs:{},isContainer:true,postMixInProperties:function(){this.inherited(arguments);var _272=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,_272);this.errorMessage=dojo.string.substitute(this.errorMessage,_272);if(!this.href&&this.srcNodeRef&&this.srcNodeRef.innerHTML){this.isLoaded=true;}},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},postCreate:function(){this.domNode.title="";if(!dojo.attr(this.domNode,"role")){dijit.setWaiRole(this.domNode,"group");}dojo.addClass(this.domNode,this.baseClass);},startup:function(){if(this._started){return;}if(this.isLoaded){dojo.forEach(this.getChildren(),function(_273){_273.startup();});if(this.doLayout){this._checkIfSingleChild();}if(!this._singleChild||!dijit._Contained.prototype.getParent.call(this)){this._scheduleLayout();}}this._loadCheck();this.inherited(arguments);},_checkIfSingleChild:function(){var _274=dojo.query(">",this.containerNode),_275=_274.filter(function(node){return dojo.hasAttr(node,"dojoType")||dojo.hasAttr(node,"widgetId");}),_277=dojo.filter(_275.map(dijit.byNode),function(_278){return _278&&_278.domNode&&_278.resize;});if(_274.length==_275.length&&_277.length==1){this._singleChild=_277[0];}else{delete this._singleChild;}},setHref:function(href){dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use attr('href', ...) instead.","","2.0");return this.attr("href",href);},_setHrefAttr:function(href){this.cancel();this.href=href;if(this._created&&(this.preload||this._isShown())){return this.refresh();}else{this._hrefChanged=true;}},setContent:function(data){dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated.  Use attr('content', ...) instead.","","2.0");this.attr("content",data);},_setContentAttr:function(data){this.href="";this.cancel();this._setContent(data||"");this._isDownloaded=false;},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;},uninitialize:function(){if(this._beingDestroyed){this.cancel();}},destroyRecursive:function(_27d){if(this._beingDestroyed){return;}this._beingDestroyed=true;this.inherited(arguments);},resize:function(size){dojo.marginBox(this.domNode,size);var node=this.containerNode,mb=dojo.mixin(dojo.marginBox(node),size||{});var cb=(this._contentBox=dijit.layout.marginBox2contentBox(node,mb));if(this._singleChild&&this._singleChild.resize){this._singleChild.resize({w:cb.w,h:cb.h});}},_isShown:function(){if("open" in this){return this.open;}else{var node=this.domNode;return (node.style.display!="none")&&(node.style.visibility!="hidden")&&!dojo.hasClass(node,"dijitHidden");}},_onShow:function(){if(this._needLayout){this._layoutChildren();}this._loadCheck();if(this.onShow){this.onShow();}},_loadCheck:function(){if((this.href&&!this._xhrDfd)&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)&&(this.preload||this._isShown())){delete this._hrefChanged;this.refresh();}},refresh:function(){this.cancel();this._setContent(this.onDownloadStart(),true);var self=this;var _284={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(dojo.isObject(this.ioArgs)){dojo.mixin(_284,this.ioArgs);}var hand=(this._xhrDfd=(this.ioMethod||dojo.xhrGet)(_284));hand.addCallback(function(html){try{self._isDownloaded=true;self._setContent(html,false);self.onDownloadEnd();}catch(err){self._onError("Content",err);}delete self._xhrDfd;return html;});hand.addErrback(function(err){if(!hand.canceled){self._onError("Download",err);}delete self._xhrDfd;return err;});},_onLoadHandler:function(data){this.isLoaded=true;try{this.onLoad(data);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);}},_onUnloadHandler:function(){this.isLoaded=false;try{this.onUnload();}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);}},destroyDescendants:function(){if(this.isLoaded){this._onUnloadHandler();}var _289=this._contentSetter;dojo.forEach(this.getChildren(),function(_28a){if(_28a.destroyRecursive){_28a.destroyRecursive();}});if(_289){dojo.forEach(_289.parseResults,function(_28b){if(_28b.destroyRecursive&&_28b.domNode&&_28b.domNode.parentNode==dojo.body()){_28b.destroyRecursive();}});delete _289.parseResults;}dojo.html._emptyNode(this.containerNode);},_setContent:function(cont,_28d){this.destroyDescendants();delete this._singleChild;var _28e=this._contentSetter;if(!(_28e&&_28e instanceof dojo.html._ContentSetter)){_28e=this._contentSetter=new dojo.html._ContentSetter({node:this.containerNode,_onError:dojo.hitch(this,this._onError),onContentError:dojo.hitch(this,function(e){var _290=this.onContentError(e);try{this.containerNode.innerHTML=_290;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}})});}var _291=dojo.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:this.parseOnLoad},this._contentSetterParams||{});dojo.mixin(_28e,_291);_28e.set((dojo.isObject(cont)&&cont.domNode)?cont.domNode:cont);delete this._contentSetterParams;if(!_28d){dojo.forEach(this.getChildren(),function(_292){_292.startup();});if(this.doLayout){this._checkIfSingleChild();}this._scheduleLayout();this._onLoadHandler(cont);}},_onError:function(type,err,_295){var _296=this["on"+type+"Error"].call(this,err);if(_295){console.error(_295,err);}else{if(_296){this._setContent(_296,true);}}},_scheduleLayout:function(){if(this._isShown()){this._layoutChildren();}else{this._needLayout=true;}},_layoutChildren:function(){if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||dojo.contentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}else{dojo.forEach(this.getChildren(),function(_298){if(_298.resize){_298.resize();}});}delete this._needLayout;},onLoad:function(data){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(_29a){},onDownloadError:function(_29b){return this.errorMessage;},onDownloadEnd:function(){}});}if(!dojo._hasResource["dijit._Templated"]){dojo._hasResource["dijit._Templated"]=true;dojo.provide("dijit._Templated");dojo.declare("dijit._Templated",null,{templateString:null,templatePath:null,widgetsInTemplate:false,_skipNodeCache:false,_stringRepl:function(tmpl){var _29d=this.declaredClass,_29e=this;return dojo.string.substitute(tmpl,this,function(_29f,key){if(key.charAt(0)=="!"){_29f=dojo.getObject(key.substr(1),false,_29e);}if(typeof _29f=="undefined"){throw new Error(_29d+" template:"+key);}if(_29f==null){return "";}return key.charAt(0)=="!"?_29f:_29f.toString().replace(/"/g,"&quot;");},this);},buildRendering:function(){var _2a1=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache);var node;if(dojo.isString(_2a1)){node=dojo._toDom(this._stringRepl(_2a1));}else{node=_2a1.cloneNode(true);}this.domNode=node;this._attachTemplateNodes(node);if(this.widgetsInTemplate){var cw=(this._supportingWidgets=dojo.parser.parse(node));this._attachTemplateNodes(cw,function(n,p){return n[p];});}this._fillContent(this.srcNodeRef);},_fillContent:function(_2a6){var dest=this.containerNode;if(_2a6&&dest){while(_2a6.hasChildNodes()){dest.appendChild(_2a6.firstChild);}}},_attachTemplateNodes:function(_2a8,_2a9){_2a9=_2a9||function(n,p){return n.getAttribute(p);};var _2ac=dojo.isArray(_2a8)?_2a8:(_2a8.all||_2a8.getElementsByTagName("*"));var x=dojo.isArray(_2a8)?0:-1;for(;x<_2ac.length;x++){var _2ae=(x==-1)?_2a8:_2ac[x];if(this.widgetsInTemplate&&_2a9(_2ae,"dojoType")){continue;}var _2af=_2a9(_2ae,"dojoAttachPoint");if(_2af){var _2b0,_2b1=_2af.split(/\s*,\s*/);while((_2b0=_2b1.shift())){if(dojo.isArray(this[_2b0])){this[_2b0].push(_2ae);}else{this[_2b0]=_2ae;}}}var _2b2=_2a9(_2ae,"dojoAttachEvent");if(_2b2){var _2b3,_2b4=_2b2.split(/\s*,\s*/);var trim=dojo.trim;while((_2b3=_2b4.shift())){if(_2b3){var _2b6=null;if(_2b3.indexOf(":")!=-1){var _2b7=_2b3.split(":");_2b3=trim(_2b7[0]);_2b6=trim(_2b7[1]);}else{_2b3=trim(_2b3);}if(!_2b6){_2b6=_2b3;}this.connect(_2ae,_2b3,_2b6);}}}var role=_2a9(_2ae,"waiRole");if(role){dijit.setWaiRole(_2ae,role);}var _2b9=_2a9(_2ae,"waiState");if(_2b9){dojo.forEach(_2b9.split(/\s*,\s*/),function(_2ba){if(_2ba.indexOf("-")!=-1){var pair=_2ba.split("-");dijit.setWaiState(_2ae,pair[0],pair[1]);}});}}}});dijit._Templated._templateCache={};dijit._Templated.getCachedTemplate=function(_2bc,_2bd,_2be){var _2bf=dijit._Templated._templateCache;var key=_2bd||_2bc;var _2c1=_2bf[key];if(_2c1){if(!_2c1.ownerDocument||_2c1.ownerDocument==dojo.doc){return _2c1;}dojo.destroy(_2c1);}if(!_2bd){_2bd=dijit._Templated._sanitizeTemplateString(dojo.trim(dojo._getText(_2bc)));}_2bd=dojo.string.trim(_2bd);if(_2be||_2bd.match(/\$\{([^\}]+)\}/g)){return (_2bf[key]=_2bd);}else{return (_2bf[key]=dojo._toDom(_2bd));}};dijit._Templated._sanitizeTemplateString=function(_2c2){if(_2c2){_2c2=_2c2.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _2c3=_2c2.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_2c3){_2c2=_2c3[1];}}else{_2c2="";}return _2c2;};if(dojo.isIE){dojo.addOnWindowUnload(function(){var _2c4=dijit._Templated._templateCache;for(var key in _2c4){var _2c6=_2c4[key];if(!isNaN(_2c6.nodeType)){dojo.destroy(_2c6);}delete _2c4[key];}});}dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""});}if(!dojo._hasResource["dojo.dnd.common"]){dojo._hasResource["dojo.dnd.common"]=true;dojo.provide("dojo.dnd.common");dojo.dnd._isMac=navigator.appVersion.indexOf("Macintosh")>=0;dojo.dnd._copyKey=dojo.dnd._isMac?"metaKey":"ctrlKey";dojo.dnd.getCopyKeyState=function(e){return e[dojo.dnd._copyKey];};dojo.dnd._uniqueId=0;dojo.dnd.getUniqueId=function(){var id;do{id=dojo._scopeName+"Unique"+(++dojo.dnd._uniqueId);}while(dojo.byId(id));return id;};dojo.dnd._empty={};dojo.dnd.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};dojo.dnd._lmb=dojo.isIE?1:0;dojo.dnd._isLmbPressed=dojo.isIE?function(e){return e.button&1;}:function(e){return e.button===0;};}if(!dojo._hasResource["dojo.dnd.autoscroll"]){dojo._hasResource["dojo.dnd.autoscroll"]=true;dojo.provide("dojo.dnd.autoscroll");dojo.dnd.getViewport=function(){var d=dojo.doc,dd=d.documentElement,w=window,b=dojo.body();if(dojo.isMozilla){return {w:dd.clientWidth,h:w.innerHeight};}else{if(!dojo.isOpera&&w.innerWidth){return {w:w.innerWidth,h:w.innerHeight};}else{if(!dojo.isOpera&&dd&&dd.clientWidth){return {w:dd.clientWidth,h:dd.clientHeight};}else{if(b.clientWidth){return {w:b.clientWidth,h:b.clientHeight};}}}}return null;};dojo.dnd.V_TRIGGER_AUTOSCROLL=32;dojo.dnd.H_TRIGGER_AUTOSCROLL=32;dojo.dnd.V_AUTOSCROLL_VALUE=16;dojo.dnd.H_AUTOSCROLL_VALUE=16;dojo.dnd.autoScroll=function(e){var v=dojo.dnd.getViewport(),dx=0,dy=0;if(e.clientX<dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=-dojo.dnd.H_AUTOSCROLL_VALUE;}else{if(e.clientX>v.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=dojo.dnd.H_AUTOSCROLL_VALUE;}}if(e.clientY<dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=-dojo.dnd.V_AUTOSCROLL_VALUE;}else{if(e.clientY>v.h-dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=dojo.dnd.V_AUTOSCROLL_VALUE;}}window.scrollBy(dx,dy);};dojo.dnd._validNodes={"div":1,"p":1,"td":1};dojo.dnd._validOverflow={"auto":1,"scroll":1};dojo.dnd.autoScrollNodes=function(e){for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase() in dojo.dnd._validNodes)){var s=dojo.getComputedStyle(n);if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){var b=dojo._getContentBox(n,s),t=dojo._abs(n,true);var w=Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL,b.w/2),h=Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL,b.h/2),rx=e.pageX-t.x,ry=e.pageY-t.y,dx=0,dy=0;if(dojo.isWebKit||dojo.isOpera){rx+=dojo.body().scrollLeft,ry+=dojo.body().scrollTop;}if(rx>0&&rx<b.w){if(rx<w){dx=-w;}else{if(rx>b.w-w){dx=w;}}}if(ry>0&&ry<b.h){if(ry<h){dy=-h;}else{if(ry>b.h-h){dy=h;}}}var _2e0=n.scrollLeft,_2e1=n.scrollTop;n.scrollLeft=n.scrollLeft+dx;n.scrollTop=n.scrollTop+dy;if(_2e0!=n.scrollLeft||_2e1!=n.scrollTop){return;}}}try{n=n.parentNode;}catch(x){n=null;}}dojo.dnd.autoScroll(e);};}if(!dojo._hasResource["dojo.dnd.Mover"]){dojo._hasResource["dojo.dnd.Mover"]=true;dojo.provide("dojo.dnd.Mover");dojo.declare("dojo.dnd.Mover",null,{constructor:function(node,e,host){this.node=dojo.byId(node);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=this.host=host,d=node.ownerDocument,_2e7=dojo.connect(d,"onmousemove",this,"onFirstMove");this.events=[dojo.connect(d,"onmousemove",this,"onMouseMove"),dojo.connect(d,"onmouseup",this,"onMouseUp"),dojo.connect(d,"ondragstart",dojo.stopEvent),dojo.connect(d.body,"onselectstart",dojo.stopEvent),_2e7];if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY});dojo.stopEvent(e);},onMouseUp:function(e){if(dojo.isWebKit&&dojo.dnd._isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}dojo.stopEvent(e);},onFirstMove:function(){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left));t=Math.round(parseFloat(s.top));break;default:s.position="absolute";var m=dojo.marginBox(this.node);var b=dojo.doc.body;var bs=dojo.getComputedStyle(b);var bm=dojo._getMarginBox(b,bs);var bc=dojo._getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this);}dojo.disconnect(this.events.pop());},destroy:function(){dojo.forEach(this.events,dojo.disconnect);var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=this.host=null;}});}if(!dojo._hasResource["dojo.dnd.Moveable"]){dojo._hasResource["dojo.dnd.Moveable"]=true;dojo.provide("dojo.dnd.Moveable");dojo.declare("dojo.dnd.Moveable",null,{handle:"",delay:0,skip:false,constructor:function(node,_2f6){this.node=dojo.byId(node);if(!_2f6){_2f6={};}this.handle=_2f6.handle?dojo.byId(_2f6.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_2f6.delay>0?_2f6.delay:0;this.skip=_2f6.skip;this.mover=_2f6.mover?_2f6.mover:dojo.dnd.Mover;this.events=[dojo.connect(this.handle,"onmousedown",this,"onMouseDown"),dojo.connect(this.handle,"ondragstart",this,"onSelectStart"),dojo.connect(this.handle,"onselectstart",this,"onSelectStart")];},markupFactory:function(_2f7,node){return new dojo.dnd.Moveable(node,_2f7);},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&dojo.dnd.isFormElement(e)){return;}if(this.delay){this.events.push(dojo.connect(this.handle,"onmousemove",this,"onMouseMove"),dojo.connect(this.handle,"onmouseup",this,"onMouseUp"));this._lastX=e.pageX;this._lastY=e.pageY;}else{this.onDragDetected(e);}dojo.stopEvent(e);},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e);}dojo.stopEvent(e);},onMouseUp:function(e){for(var i=0;i<2;++i){dojo.disconnect(this.events.pop());}dojo.stopEvent(e);},onSelectStart:function(e){if(!this.skip||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onDragDetected:function(e){new this.mover(this.node,e,this);},onMoveStart:function(_2ff){dojo.publish("/dnd/move/start",[_2ff]);dojo.addClass(dojo.body(),"dojoMove");dojo.addClass(this.node,"dojoMoveItem");},onMoveStop:function(_300){dojo.publish("/dnd/move/stop",[_300]);dojo.removeClass(dojo.body(),"dojoMove");dojo.removeClass(this.node,"dojoMoveItem");},onFirstMove:function(_301){},onMove:function(_302,_303){this.onMoving(_302,_303);var s=_302.node.style;s.left=_303.l+"px";s.top=_303.t+"px";this.onMoved(_302,_303);},onMoving:function(_305,_306){},onMoved:function(_307,_308){}});}if(!dojo._hasResource["dojo.dnd.move"]){dojo._hasResource["dojo.dnd.move"]=true;dojo.provide("dojo.dnd.move");dojo.declare("dojo.dnd.move.constrainedMoveable",dojo.dnd.Moveable,{constraints:function(){},within:false,markupFactory:function(_309,node){return new dojo.dnd.move.constrainedMoveable(node,_309);},constructor:function(node,_30c){if(!_30c){_30c={};}this.constraints=_30c.constraints;this.within=_30c.within;},onFirstMove:function(_30d){var c=this.constraintBox=this.constraints.call(this,_30d);c.r=c.l+c.w;c.b=c.t+c.h;if(this.within){var mb=dojo.marginBox(_30d.node);c.r-=mb.w;c.b-=mb.h;}},onMove:function(_310,_311){var c=this.constraintBox,s=_310.node.style;s.left=(_311.l<c.l?c.l:c.r<_311.l?c.r:_311.l)+"px";s.top=(_311.t<c.t?c.t:c.b<_311.t?c.b:_311.t)+"px";}});dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},markupFactory:function(_314,node){return new dojo.dnd.move.boxConstrainedMoveable(node,_314);},constructor:function(node,_317){var box=_317&&_317.box;this.constraints=function(){return box;};}});dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",markupFactory:function(_319,node){return new dojo.dnd.move.parentConstrainedMoveable(node,_319);},constructor:function(node,_31c){var area=_31c&&_31c.area;this.constraints=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(area=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};}});dojo.dnd.move.constrainedMover=function(fun,_323){dojo.deprecated("dojo.dnd.move.constrainedMover, use dojo.dnd.move.constrainedMoveable instead");var _324=function(node,e,_327){dojo.dnd.Mover.call(this,node,e,_327);};dojo.extend(_324,dojo.dnd.Mover.prototype);dojo.extend(_324,{onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox,c=this.constraintBox,l=m.l+e.pageX,t=m.t+e.pageY;l=l<c.l?c.l:c.r<l?c.r:l;t=t<c.t?c.t:c.b<t?c.b:t;this.host.onMove(this,{l:l,t:t});},onFirstMove:function(){dojo.dnd.Mover.prototype.onFirstMove.call(this);var c=this.constraintBox=fun.call(this);c.r=c.l+c.w;c.b=c.t+c.h;if(_323){var mb=dojo.marginBox(this.node);c.r-=mb.w;c.b-=mb.h;}}});return _324;};dojo.dnd.move.boxConstrainedMover=function(box,_330){dojo.deprecated("dojo.dnd.move.boxConstrainedMover, use dojo.dnd.move.boxConstrainedMoveable instead");return dojo.dnd.move.constrainedMover(function(){return box;},_330);};dojo.dnd.move.parentConstrainedMover=function(area,_332){dojo.deprecated("dojo.dnd.move.parentConstrainedMover, use dojo.dnd.move.parentConstrainedMoveable instead");var fun=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(area=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(area=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};return dojo.dnd.move.constrainedMover(fun,_332);};dojo.dnd.constrainedMover=dojo.dnd.move.constrainedMover;dojo.dnd.boxConstrainedMover=dojo.dnd.move.boxConstrainedMover;dojo.dnd.parentConstrainedMover=dojo.dnd.move.parentConstrainedMover;}if(!dojo._hasResource["dojo.dnd.Container"]){dojo._hasResource["dojo.dnd.Container"]=true;dojo.provide("dojo.dnd.Container");dojo.declare("dojo.dnd.Container",null,{skipForm:false,constructor:function(node,_339){this.node=dojo.byId(node);if(!_339){_339={};}this.creator=_339.creator||null;this.skipForm=_339.skipForm;this.parent=_339.dropParent&&dojo.byId(_339.dropParent);this.map={};this.current=null;this.containerState="";dojo.addClass(this.node,"dojoDndContainer");if(!(_339&&_339._skipStartup)){this.startup();}this.events=[dojo.connect(this.node,"onmouseover",this,"onMouseOver"),dojo.connect(this.node,"onmouseout",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",this,"onSelectStart"),dojo.connect(this.node,"onselectstart",this,"onSelectStart")];},creator:function(){},getItem:function(key){return this.map[key];},setItem:function(key,data){this.map[key]=data;},delItem:function(key){delete this.map[key];},forInItems:function(f,o){o=o||dojo.global;var m=this.map,e=dojo.dnd._empty;for(var i in m){if(i in e){continue;}f.call(o,m[i],i,this);}return o;},clearItems:function(){this.map={};},getAllNodes:function(){return dojo.query("> .dojoDndItem",this.parent);},sync:function(){var map={};this.getAllNodes().forEach(function(node){if(node.id){var item=this.getItem(node.id);if(item){map[node.id]=item;return;}}else{node.id=dojo.dnd.getUniqueId();}var type=node.getAttribute("dndType"),data=node.getAttribute("dndData");map[node.id]={data:data||node.innerHTML,type:type?type.split(/\s*,\s*/):["text"]};},this);this.map=map;return this;},insertNodes:function(data,_349,_34a){if(!this.parent.firstChild){_34a=null;}else{if(_349){if(!_34a){_34a=this.parent.firstChild;}}else{if(_34a){_34a=_34a.nextSibling;}}}if(_34a){for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.insertBefore(t.node,_34a);}}else{for(var i=0;i<data.length;++i){var t=this._normalizedCreator(data[i]);this.setItem(t.node.id,{data:t.data,type:t.type});this.parent.appendChild(t.node);}}return this;},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.clearItems();this.node=this.parent=this.current=null;},markupFactory:function(_34d,node){_34d._skipStartup=true;return new dojo.dnd.Container(node,_34d);},startup:function(){if(!this.parent){this.parent=this.node;if(this.parent.tagName.toLowerCase()=="table"){var c=this.parent.getElementsByTagName("tbody");if(c&&c.length){this.parent=c[0];}}}this.defaultCreator=dojo.dnd._defaultCreator(this.parent);this.sync();},onMouseOver:function(e){var n=e.relatedTarget;while(n){if(n==this.node){break;}try{n=n.parentNode;}catch(x){n=null;}}if(!n){this._changeState("Container","Over");this.onOverEvent();}n=this._getChildByEvent(e);if(this.current==n){return;}if(this.current){this._removeItemClass(this.current,"Over");}if(n){this._addItemClass(n,"Over");}this.current=n;},onMouseOut:function(e){for(var n=e.relatedTarget;n;){if(n==this.node){return;}try{n=n.parentNode;}catch(x){n=null;}}if(this.current){this._removeItemClass(this.current,"Over");this.current=null;}this._changeState("Container","");this.onOutEvent();},onSelectStart:function(e){if(!this.skipForm||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onOverEvent:function(){},onOutEvent:function(){},_changeState:function(type,_356){var _357="dojoDnd"+type;var _358=type.toLowerCase()+"State";dojo.removeClass(this.node,_357+this[_358]);dojo.addClass(this.node,_357+_356);this[_358]=_356;},_addItemClass:function(node,type){dojo.addClass(node,"dojoDndItem"+type);},_removeItemClass:function(node,type){dojo.removeClass(node,"dojoDndItem"+type);},_getChildByEvent:function(e){var node=e.target;if(node){for(var _35f=node.parentNode;_35f;node=_35f,_35f=node.parentNode){if(_35f==this.parent&&dojo.hasClass(node,"dojoDndItem")){return node;}}}return null;},_normalizedCreator:function(item,hint){var t=(this.creator||this.defaultCreator).call(this,item,hint);if(!dojo.isArray(t.type)){t.type=["text"];}if(!t.node.id){t.node.id=dojo.dnd.getUniqueId();}dojo.addClass(t.node,"dojoDndItem");return t;}});dojo.dnd._createNode=function(tag){if(!tag){return dojo.dnd._createSpan;}return function(text){return dojo.create(tag,{innerHTML:text});};};dojo.dnd._createTrTd=function(text){var tr=dojo.create("tr");dojo.create("td",{innerHTML:text},tr);return tr;};dojo.dnd._createSpan=function(text){return dojo.create("span",{innerHTML:text});};dojo.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"};dojo.dnd._defaultCreator=function(node){var tag=node.tagName.toLowerCase();var c=tag=="tbody"||tag=="thead"?dojo.dnd._createTrTd:dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]);return function(item,hint){var _36d=item&&dojo.isObject(item),data,type,n;if(_36d&&item.tagName&&item.nodeType&&item.getAttribute){data=item.getAttribute("dndData")||item.innerHTML;type=item.getAttribute("dndType");type=type?type.split(/\s*,\s*/):["text"];n=item;}else{data=(_36d&&item.data)?item.data:item;type=(_36d&&item.type)?item.type:["text"];n=(hint=="avatar"?dojo.dnd._createSpan:c)(String(data));}n.id=dojo.dnd.getUniqueId();return {node:n,data:data,type:type};};};}if(!dojo._hasResource["dojo.dnd.Selector"]){dojo._hasResource["dojo.dnd.Selector"]=true;dojo.provide("dojo.dnd.Selector");dojo.declare("dojo.dnd.Selector",dojo.dnd.Container,{constructor:function(node,_372){if(!_372){_372={};}this.singular=_372.singular;this.autoSync=_372.autoSync;this.selection={};this.anchor=null;this.simpleSelection=false;this.events.push(dojo.connect(this.node,"onmousedown",this,"onMouseDown"),dojo.connect(this.node,"onmouseup",this,"onMouseUp"));},singular:false,getSelectedNodes:function(){var t=new dojo.NodeList();var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}t.push(dojo.byId(i));}return t;},selectNone:function(){return this._removeSelection()._removeAnchor();},selectAll:function(){this.forInItems(function(data,id){this._addItemClass(dojo.byId(id),"Selected");this.selection[id]=1;},this);return this._removeAnchor();},deleteSelectedNodes:function(){var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}var n=dojo.byId(i);this.delItem(i);dojo.destroy(n);}this.anchor=null;this.selection={};return this;},forInSelectedItems:function(f,o){o=o||dojo.global;var s=this.selection,e=dojo.dnd._empty;for(var i in s){if(i in e){continue;}f.call(o,this.getItem(i),i,this);}},sync:function(){dojo.dnd.Selector.superclass.sync.call(this);if(this.anchor){if(!this.getItem(this.anchor.id)){this.anchor=null;}}var t=[],e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}if(!this.getItem(i)){t.push(i);}}dojo.forEach(t,function(i){delete this.selection[i];},this);return this;},insertNodes:function(_384,data,_386,_387){var _388=this._normalizedCreator;this._normalizedCreator=function(item,hint){var t=_388.call(this,item,hint);if(_384){if(!this.anchor){this.anchor=t.node;this._removeItemClass(t.node,"Selected");this._addItemClass(this.anchor,"Anchor");}else{if(this.anchor!=t.node){this._removeItemClass(t.node,"Anchor");this._addItemClass(t.node,"Selected");}}this.selection[t.node.id]=1;}else{this._removeItemClass(t.node,"Selected");this._removeItemClass(t.node,"Anchor");}return t;};dojo.dnd.Selector.superclass.insertNodes.call(this,data,_386,_387);this._normalizedCreator=_388;return this;},destroy:function(){dojo.dnd.Selector.superclass.destroy.call(this);this.selection=this.anchor=null;},markupFactory:function(_38c,node){_38c._skipStartup=true;return new dojo.dnd.Selector(node,_38c);},onMouseDown:function(e){if(this.autoSync){this.sync();}if(!this.current){return;}if(!this.singular&&!dojo.dnd.getCopyKeyState(e)&&!e.shiftKey&&(this.current.id in this.selection)){this.simpleSelection=true;if(e.button===dojo.dnd._lmb){dojo.stopEvent(e);}return;}if(!this.singular&&e.shiftKey){if(!dojo.dnd.getCopyKeyState(e)){this._removeSelection();}var c=this.getAllNodes();if(c.length){if(!this.anchor){this.anchor=c[0];this._addItemClass(this.anchor,"Anchor");}this.selection[this.anchor.id]=1;if(this.anchor!=this.current){var i=0;for(;i<c.length;++i){var node=c[i];if(node==this.anchor||node==this.current){break;}}for(++i;i<c.length;++i){var node=c[i];if(node==this.anchor||node==this.current){break;}this._addItemClass(node,"Selected");this.selection[node.id]=1;}this._addItemClass(this.current,"Selected");this.selection[this.current.id]=1;}}}else{if(this.singular){if(this.anchor==this.current){if(dojo.dnd.getCopyKeyState(e)){this.selectNone();}}else{this.selectNone();this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}}else{if(dojo.dnd.getCopyKeyState(e)){if(this.anchor==this.current){delete this.selection[this.anchor.id];this._removeAnchor();}else{if(this.current.id in this.selection){this._removeItemClass(this.current,"Selected");delete this.selection[this.current.id];}else{if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this._addItemClass(this.anchor,"Selected");}this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}else{if(!(this.current.id in this.selection)){this.selectNone();this.anchor=this.current;this._addItemClass(this.current,"Anchor");this.selection[this.current.id]=1;}}}}dojo.stopEvent(e);},onMouseUp:function(e){if(!this.simpleSelection){return;}this.simpleSelection=false;this.selectNone();if(this.current){this.anchor=this.current;this._addItemClass(this.anchor,"Anchor");this.selection[this.current.id]=1;}},onMouseMove:function(e){this.simpleSelection=false;},onOverEvent:function(){this.onmousemoveEvent=dojo.connect(this.node,"onmousemove",this,"onMouseMove");},onOutEvent:function(){dojo.disconnect(this.onmousemoveEvent);delete this.onmousemoveEvent;},_removeSelection:function(){var e=dojo.dnd._empty;for(var i in this.selection){if(i in e){continue;}var node=dojo.byId(i);if(node){this._removeItemClass(node,"Selected");}}this.selection={};return this;},_removeAnchor:function(){if(this.anchor){this._removeItemClass(this.anchor,"Anchor");this.anchor=null;}return this;}});}if(!dojo._hasResource["dojo.dnd.Avatar"]){dojo._hasResource["dojo.dnd.Avatar"]=true;dojo.provide("dojo.dnd.Avatar");dojo.declare("dojo.dnd.Avatar",null,{constructor:function(_397){this.manager=_397;this.construct();},construct:function(){var a=dojo.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),b=dojo.create("tbody",null,a),tr=dojo.create("tr",null,b),td=dojo.create("td",{innerHTML:this._generateText()},tr),k=Math.min(5,this.manager.nodes.length),i=0,_39e=this.manager.source,node;dojo.attr(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}});for(;i<k;++i){if(_39e.creator){node=_39e._normalizedCreator(_39e.getItem(this.manager.nodes[i].id).data,"avatar").node;}else{node=this.manager.nodes[i].cloneNode(true);if(node.tagName.toLowerCase()=="tr"){var _3a0=dojo.create("table"),_3a1=dojo.create("tbody",null,_3a0);_3a1.appendChild(node);node=_3a0;}}node.id="";tr=dojo.create("tr",null,b);td=dojo.create("td",null,tr);td.appendChild(node);dojo.attr(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}});}this.node=a;},destroy:function(){dojo.destroy(this.node);this.node=false;},update:function(){dojo[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop");dojo.query("tr.dojoDndAvatarHeader td",this.node).forEach(function(node){node.innerHTML=this._generateText();},this);},_generateText:function(){return this.manager.nodes.length.toString();}});}if(!dojo._hasResource["dojo.dnd.Manager"]){dojo._hasResource["dojo.dnd.Manager"]=true;dojo.provide("dojo.dnd.Manager");dojo.declare("dojo.dnd.Manager",null,{constructor:function(){this.avatar=null;this.source=null;this.nodes=[];this.copy=true;this.target=null;this.canDropFlag=false;this.events=[];},OFFSET_X:16,OFFSET_Y:16,overSource:function(_3a3){if(this.avatar){this.target=(_3a3&&_3a3.targetState!="Disabled")?_3a3:null;this.canDropFlag=Boolean(this.target);this.avatar.update();}dojo.publish("/dnd/source/over",[_3a3]);},outSource:function(_3a4){if(this.avatar){if(this.target==_3a4){this.target=null;this.canDropFlag=false;this.avatar.update();dojo.publish("/dnd/source/over",[null]);}}else{dojo.publish("/dnd/source/over",[null]);}},startDrag:function(_3a5,_3a6,copy){this.source=_3a5;this.nodes=_3a6;this.copy=Boolean(copy);this.avatar=this.makeAvatar();dojo.body().appendChild(this.avatar.node);dojo.publish("/dnd/start",[_3a5,_3a6,this.copy]);this.events=[dojo.connect(dojo.doc,"onmousemove",this,"onMouseMove"),dojo.connect(dojo.doc,"onmouseup",this,"onMouseUp"),dojo.connect(dojo.doc,"onkeydown",this,"onKeyDown"),dojo.connect(dojo.doc,"onkeyup",this,"onKeyUp"),dojo.connect(dojo.doc,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent)];var c="dojoDnd"+(copy?"Copy":"Move");dojo.addClass(dojo.body(),c);},canDrop:function(flag){var _3aa=Boolean(this.target&&flag);if(this.canDropFlag!=_3aa){this.canDropFlag=_3aa;this.avatar.update();}},stopDrag:function(){dojo.removeClass(dojo.body(),"dojoDndCopy");dojo.removeClass(dojo.body(),"dojoDndMove");dojo.forEach(this.events,dojo.disconnect);this.events=[];this.avatar.destroy();this.avatar=null;this.source=this.target=null;this.nodes=[];},makeAvatar:function(){return new dojo.dnd.Avatar(this);},updateAvatar:function(){this.avatar.update();},onMouseMove:function(e){var a=this.avatar;if(a){dojo.dnd.autoScrollNodes(e);var s=a.node.style;s.left=(e.pageX+this.OFFSET_X)+"px";s.top=(e.pageY+this.OFFSET_Y)+"px";var copy=Boolean(this.source.copyState(dojo.dnd.getCopyKeyState(e)));if(this.copy!=copy){this._setCopyStatus(copy);}}},onMouseUp:function(e){if(this.avatar){if(this.target&&this.canDropFlag){var copy=Boolean(this.source.copyState(dojo.dnd.getCopyKeyState(e))),_3b1=[this.source,this.nodes,copy,this.target];dojo.publish("/dnd/drop/before",_3b1);dojo.publish("/dnd/drop",_3b1);}else{dojo.publish("/dnd/cancel");}this.stopDrag();}},onKeyDown:function(e){if(this.avatar){switch(e.keyCode){case dojo.keys.CTRL:var copy=Boolean(this.source.copyState(true));if(this.copy!=copy){this._setCopyStatus(copy);}break;case dojo.keys.ESCAPE:dojo.publish("/dnd/cancel");this.stopDrag();break;}}},onKeyUp:function(e){if(this.avatar&&e.keyCode==dojo.keys.CTRL){var copy=Boolean(this.source.copyState(false));if(this.copy!=copy){this._setCopyStatus(copy);}}},_setCopyStatus:function(copy){this.copy=copy;this.source._markDndStatus(this.copy);this.updateAvatar();dojo.removeClass(dojo.body(),"dojoDnd"+(this.copy?"Move":"Copy"));dojo.addClass(dojo.body(),"dojoDnd"+(this.copy?"Copy":"Move"));}});dojo.dnd._manager=null;dojo.dnd.manager=function(){if(!dojo.dnd._manager){dojo.dnd._manager=new dojo.dnd.Manager();}return dojo.dnd._manager;};}if(!dojo._hasResource["dojo.dnd.Source"]){dojo._hasResource["dojo.dnd.Source"]=true;dojo.provide("dojo.dnd.Source");dojo.declare("dojo.dnd.Source",dojo.dnd.Selector,{isSource:true,horizontal:false,copyOnly:false,selfCopy:false,selfAccept:true,skipForm:false,withHandles:false,autoSync:false,delay:0,accept:["text"],constructor:function(node,_3b8){dojo.mixin(this,dojo.mixin({},_3b8));var type=this.accept;if(type.length){this.accept={};for(var i=0;i<type.length;++i){this.accept[type[i]]=1;}}this.isDragging=false;this.mouseDown=false;this.targetAnchor=null;this.targetBox=null;this.before=true;this._lastX=0;this._lastY=0;this.sourceState="";if(this.isSource){dojo.addClass(this.node,"dojoDndSource");}this.targetState="";if(this.accept){dojo.addClass(this.node,"dojoDndTarget");}if(this.horizontal){dojo.addClass(this.node,"dojoDndHorizontal");}this.topics=[dojo.subscribe("/dnd/source/over",this,"onDndSourceOver"),dojo.subscribe("/dnd/start",this,"onDndStart"),dojo.subscribe("/dnd/drop",this,"onDndDrop"),dojo.subscribe("/dnd/cancel",this,"onDndCancel")];},checkAcceptance:function(_3bb,_3bc){if(this==_3bb){return !this.copyOnly||this.selfAccept;}for(var i=0;i<_3bc.length;++i){var type=_3bb.getItem(_3bc[i].id).type;var flag=false;for(var j=0;j<type.length;++j){if(type[j] in this.accept){flag=true;break;}}if(!flag){return false;}}return true;},copyState:function(_3c1,self){if(_3c1){return true;}if(arguments.length<2){self=this==dojo.dnd.manager().target;}if(self){if(this.copyOnly){return this.selfCopy;}}else{return this.copyOnly;}return false;},destroy:function(){dojo.dnd.Source.superclass.destroy.call(this);dojo.forEach(this.topics,dojo.unsubscribe);this.targetAnchor=null;},markupFactory:function(_3c3,node){_3c3._skipStartup=true;return new dojo.dnd.Source(node,_3c3);},onMouseMove:function(e){if(this.isDragging&&this.targetState=="Disabled"){return;}dojo.dnd.Source.superclass.onMouseMove.call(this,e);var m=dojo.dnd.manager();if(this.isDragging){var _3c7=false;if(this.current){if(!this.targetBox||this.targetAnchor!=this.current){this.targetBox={xy:dojo.coords(this.current,true),w:this.current.offsetWidth,h:this.current.offsetHeight};}if(this.horizontal){_3c7=(e.pageX-this.targetBox.xy.x)<(this.targetBox.w/2);}else{_3c7=(e.pageY-this.targetBox.xy.y)<(this.targetBox.h/2);}}if(this.current!=this.targetAnchor||_3c7!=this.before){this._markTargetAnchor(_3c7);m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection));}}else{if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay)){var _3c8=this.getSelectedNodes();if(_3c8.length){m.startDrag(this,_3c8,this.copyState(dojo.dnd.getCopyKeyState(e),true));}}}},onMouseDown:function(e){if(!this.mouseDown&&this._legalMouseDown(e)&&(!this.skipForm||!dojo.dnd.isFormElement(e))){this.mouseDown=true;this._lastX=e.pageX;this._lastY=e.pageY;dojo.dnd.Source.superclass.onMouseDown.call(this,e);}},onMouseUp:function(e){if(this.mouseDown){this.mouseDown=false;dojo.dnd.Source.superclass.onMouseUp.call(this,e);}},onDndSourceOver:function(_3cb){if(this!=_3cb){this.mouseDown=false;if(this.targetAnchor){this._unmarkTargetAnchor();}}else{if(this.isDragging){var m=dojo.dnd.manager();m.canDrop(this.targetState!="Disabled"&&(!this.current||m.source!=this||!(this.current.id in this.selection)));}}},onDndStart:function(_3cd,_3ce,copy){if(this.autoSync){this.sync();}if(this.isSource){this._changeState("Source",this==_3cd?(copy?"Copied":"Moved"):"");}var _3d0=this.accept&&this.checkAcceptance(_3cd,_3ce);this._changeState("Target",_3d0?"":"Disabled");if(this==_3cd){dojo.dnd.manager().overSource(this);}this.isDragging=true;},onDndDrop:function(_3d1,_3d2,copy,_3d4){if(this==_3d4){this.onDrop(_3d1,_3d2,copy);}this.onDndCancel();},onDndCancel:function(){if(this.targetAnchor){this._unmarkTargetAnchor();this.targetAnchor=null;}this.before=true;this.isDragging=false;this.mouseDown=false;this._changeState("Source","");this._changeState("Target","");},onDrop:function(_3d5,_3d6,copy){if(this!=_3d5){this.onDropExternal(_3d5,_3d6,copy);}else{this.onDropInternal(_3d6,copy);}},onDropExternal:function(_3d8,_3d9,copy){var _3db=this._normalizedCreator;if(this.creator){this._normalizedCreator=function(node,hint){return _3db.call(this,_3d8.getItem(node.id).data,hint);};}else{if(copy){this._normalizedCreator=function(node,hint){var t=_3d8.getItem(node.id);var n=node.cloneNode(true);n.id=dojo.dnd.getUniqueId();return {node:n,data:t.data,type:t.type};};}else{this._normalizedCreator=function(node,hint){var t=_3d8.getItem(node.id);_3d8.delItem(node.id);return {node:node,data:t.data,type:t.type};};}}this.selectNone();if(!copy&&!this.creator){_3d8.selectNone();}this.insertNodes(true,_3d9,this.before,this.current);if(!copy&&this.creator){_3d8.deleteSelectedNodes();}this._normalizedCreator=_3db;},onDropInternal:function(_3e5,copy){var _3e7=this._normalizedCreator;if(this.current&&this.current.id in this.selection){return;}if(copy){if(this.creator){this._normalizedCreator=function(node,hint){return _3e7.call(this,this.getItem(node.id).data,hint);};}else{this._normalizedCreator=function(node,hint){var t=this.getItem(node.id);var n=node.cloneNode(true);n.id=dojo.dnd.getUniqueId();return {node:n,data:t.data,type:t.type};};}}else{if(!this.current){return;}this._normalizedCreator=function(node,hint){var t=this.getItem(node.id);return {node:node,data:t.data,type:t.type};};}this._removeSelection();this.insertNodes(true,_3e5,this.before,this.current);this._normalizedCreator=_3e7;},onDraggingOver:function(){},onDraggingOut:function(){},onOverEvent:function(){dojo.dnd.Source.superclass.onOverEvent.call(this);dojo.dnd.manager().overSource(this);if(this.isDragging&&this.targetState!="Disabled"){this.onDraggingOver();}},onOutEvent:function(){dojo.dnd.Source.superclass.onOutEvent.call(this);dojo.dnd.manager().outSource(this);if(this.isDragging&&this.targetState!="Disabled"){this.onDraggingOut();}},_markTargetAnchor:function(_3f1){if(this.current==this.targetAnchor&&this.before==_3f1){return;}if(this.targetAnchor){this._removeItemClass(this.targetAnchor,this.before?"Before":"After");}this.targetAnchor=this.current;this.targetBox=null;this.before=_3f1;if(this.targetAnchor){this._addItemClass(this.targetAnchor,this.before?"Before":"After");}},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this._removeItemClass(this.targetAnchor,this.before?"Before":"After");this.targetAnchor=null;this.targetBox=null;this.before=true;},_markDndStatus:function(copy){this._changeState("Source",copy?"Copied":"Moved");},_legalMouseDown:function(e){if(!dojo.dnd._isLmbPressed(e)){return false;}if(!this.withHandles){return true;}for(var node=e.target;node&&node!==this.node;node=node.parentNode){if(dojo.hasClass(node,"dojoDndHandle")){return true;}if(dojo.hasClass(node,"dojoDndItem")){break;}}return false;}});dojo.declare("dojo.dnd.Target",dojo.dnd.Source,{constructor:function(node,_3f6){this.isSource=false;dojo.removeClass(this.node,"dojoDndSource");},markupFactory:function(_3f7,node){_3f7._skipStartup=true;return new dojo.dnd.Target(node,_3f7);}});dojo.declare("dojo.dnd.AutoSource",dojo.dnd.Source,{constructor:function(node,_3fa){this.autoSync=true;},markupFactory:function(_3fb,node){_3fb._skipStartup=true;return new dojo.dnd.AutoSource(node,_3fb);}});}if(!dojo._hasResource["dojox.layout.dnd.Avatar"]){dojo._hasResource["dojox.layout.dnd.Avatar"]=true;dojo.provide("dojox.layout.dnd.Avatar");dojox.layout.dnd.Avatar=function(_3fd,_3fe){this.manager=_3fd;this.construct(_3fe);};dojo.extend(dojox.layout.dnd.Avatar,{construct:function(_3ff){var _400=this.manager.source;var node=(_400.creator)?_400._normalizedCreator(_400.getItem(this.manager.nodes[0].id).data,"avatar").node:this.manager.nodes[0].cloneNode(true);node.id=dojo.dnd.getUniqueId();dojo.addClass(node,"dojoDndAvatar");node.style.position="absolute";node.style.zIndex=1999;node.style.margin="0px";node.style.width=dojo.marginBox(_400.node).w+"px";dojo.style(node,"opacity",_3ff);this.node=node;},destroy:function(){dojo.destroy(this.node);this.node=false;},update:function(){dojo[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop");},_generateText:function(){}});}if(!dojo._hasResource["dojox.layout.dnd.PlottedDnd"]){dojo._hasResource["dojox.layout.dnd.PlottedDnd"]=true;dojo.provide("dojox.layout.dnd.PlottedDnd");dojo.declare("dojox.layout.dnd.PlottedDnd",[dojo.dnd.Source],{GC_OFFSET_X:dojo.dnd.manager().OFFSET_X,GC_OFFSET_Y:dojo.dnd.manager().OFFSET_Y,constructor:function(node,_403){this.childBoxes=null;this.dropIndicator=new dojox.layout.dnd.DropIndicator("dndDropIndicator","div");this.withHandles=_403.withHandles;this.handleClasses=_403.handleClasses;this.opacity=_403.opacity;this.allowAutoScroll=_403.allowAutoScroll;this.dom=_403.dom;this.singular=true;this.skipForm=true;this._over=false;this.defaultHandleClass="GcDndHandle";this.isDropped=false;this._timer=null;this.isOffset=(_403.isOffset)?true:false;this.offsetDrag=(_403.offsetDrag)?_403.offsetDrag:{x:0,y:0};this.hideSource=_403.hideSource?_403.hideSource:true;this._drop=this.dropIndicator.create();},_calculateCoords:function(_404){dojo.forEach(this.node.childNodes,function(_405){var c=dojo.coords(_405,true);_405.coords={xy:c,w:_405.offsetWidth/2,h:_405.offsetHeight/2,mw:c.w};if(_404){_405.coords.mh=c.h;}},this);},_legalMouseDown:function(e){if(!this.withHandles){return true;}for(var node=(e.target);node&&node!=this.node;node=node.parentNode){if(dojo.hasClass(node,this.defaultHandleClass)){return true;}}return false;},setDndItemSelectable:function(node,_40a){for(var _40b=node;_40b&&node!=this.node;_40b=_40b.parentNode){if(dojo.hasClass(_40b,"dojoDndItem")){dojo.setSelectable(_40b,_40a);return;}}},getDraggedWidget:function(node){var _40d=node;while(_40d&&_40d.nodeName.toLowerCase()!="body"&&!dojo.hasClass(_40d,"dojoDndItem")){_40d=_40d.parentNode;}return (_40d)?dijit.byNode(_40d):null;},isAccepted:function(node){var _40f=(node)?node.getAttribute("dndtype"):null;return (_40f&&_40f in this.accept);},onDndStart:function(_410,_411,copy){this.firstIndicator=(_410==this);this._calculateCoords(true);var m=dojo.dnd.manager();if(_411[0].coords){this._drop.style.height=_411[0].coords.mh+"px";dojo.style(m.avatar.node,"width",_411[0].coords.mw+"px");}else{this._drop.style.height=m.avatar.node.clientHeight+"px";}this.dndNodes=_411;dojox.layout.dnd.PlottedDnd.superclass.onDndStart.call(this,_410,_411,copy);if(_410==this&&this.hideSource){dojo.forEach(_411,function(n){dojo.style(n,"display","none");});}},onDndCancel:function(){var m=dojo.dnd.manager();if(m.source==this&&this.hideSource){var _416=this.getSelectedNodes();dojo.forEach(_416,function(n){dojo.style(n,"display","");});}dojox.layout.dnd.PlottedDnd.superclass.onDndCancel.call(this);this.deleteDashedZone();},onDndDrop:function(_418,_419,copy,_41b){try{if(!this.isAccepted(_419[0])){this.onDndCancel();}else{if(_418==this&&this._over&&this.dropObject){this.current=this.dropObject.c;}dojox.layout.dnd.PlottedDnd.superclass.onDndDrop.call(this,_418,_419,copy,_41b);this._calculateCoords(true);}}catch(e){console.warn(e);}},onMouseDown:function(e){if(this.current==null){this.selection={};}else{if(this.current==this.anchor){this.anchor=null;}}if(this.current!==null){var c=dojo.coords(this.current,true);this.current.coords={xy:c,w:this.current.offsetWidth/2,h:this.current.offsetHeight/2,mh:c.h,mw:c.w};this._drop.style.height=this.current.coords.mh+"px";if(this.isOffset){if(this.offsetDrag.x==0&&this.offsetDrag.y==0){var _41e=true;var _41f=dojo.coords(this._getChildByEvent(e));this.offsetDrag.x=_41f.x-e.pageX;this.offsetDrag.y=_41f.y-e.clientY;}if(this.offsetDrag.y<16&&this.current!=null){this.offsetDrag.y=this.GC_OFFSET_Y;}var m=dojo.dnd.manager();m.OFFSET_X=this.offsetDrag.x;m.OFFSET_Y=this.offsetDrag.y;if(_41e){this.offsetDrag.x=0;this.offsetDrag.y=0;}}}if(dojo.dnd.isFormElement(e)){this.setDndItemSelectable(e.target,true);}else{this.containerSource=true;var _421=this.getDraggedWidget(e.target);if(_421&&_421.dragRestriction){}else{dojox.layout.dnd.PlottedDnd.superclass.onMouseDown.call(this,e);}}},onMouseUp:function(e){dojox.layout.dnd.PlottedDnd.superclass.onMouseUp.call(this,e);this.containerSource=false;if(!dojo.isIE&&this.mouseDown){this.setDndItemSelectable(e.target,true);}var m=dojo.dnd.manager();m.OFFSET_X=this.GC_OFFSET_X;m.OFFSET_Y=this.GC_OFFSET_Y;},onMouseMove:function(e){var m=dojo.dnd.manager();if(this.isDragging){var _426=false;if(this.current!=null||(this.current==null&&!this.dropObject)){if(this.isAccepted(m.nodes[0])||this.containerSource){_426=this.setIndicatorPosition(e);}}if(this.current!=this.targetAnchor||_426!=this.before){this._markTargetAnchor(_426);m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection));}if(this.allowAutoScroll){this._checkAutoScroll(e);}}else{if(this.mouseDown&&this.isSource){var _427=this.getSelectedNodes();if(_427.length){m.startDrag(this,_427,this.copyState(dojo.dnd.getCopyKeyState(e)));}}if(this.allowAutoScroll){this._stopAutoScroll();}}},_markTargetAnchor:function(_428){if(this.current==this.targetAnchor&&this.before==_428){return;}this.targetAnchor=this.current;this.targetBox=null;this.before=_428;},_unmarkTargetAnchor:function(){if(!this.targetAnchor){return;}this.targetAnchor=null;this.targetBox=null;this.before=true;},setIndicatorPosition:function(e){var _42a=false;if(this.current){if(!this.current.coords||this.allowAutoScroll){this.current.coords={xy:dojo.coords(this.current,true),w:this.current.offsetWidth/2,h:this.current.offsetHeight/2};}_42a=this.horizontal?(e.pageX-this.current.coords.xy.x)<this.current.coords.w:(e.pageY-this.current.coords.xy.y)<this.current.coords.h;this.insertDashedZone(_42a);}else{if(!this.dropObject){this.insertDashedZone(false);}}return _42a;},onOverEvent:function(){this._over=true;dojox.layout.dnd.PlottedDnd.superclass.onOverEvent.call(this);if(this.isDragging){var m=dojo.dnd.manager();if(!this.current&&!this.dropObject&&this.getSelectedNodes()[0]&&this.isAccepted(m.nodes[0])){this.insertDashedZone(false);}}},onOutEvent:function(){this._over=false;this.containerSource=false;dojox.layout.dnd.PlottedDnd.superclass.onOutEvent.call(this);if(this.dropObject){this.deleteDashedZone();}},deleteDashedZone:function(){this._drop.style.display="none";var next=this._drop.nextSibling;while(next!=null){next.coords.xy.y-=parseInt(this._drop.style.height);next=next.nextSibling;}delete this.dropObject;},insertDashedZone:function(_42d){if(this.dropObject){if(_42d==this.dropObject.b&&((this.current&&this.dropObject.c==this.current.id)||(!this.current&&!this.dropObject.c))){return;}else{this.deleteDashedZone();}}this.dropObject={n:this._drop,c:this.current?this.current.id:null,b:_42d};if(this.current){dojo.place(this._drop,this.current,_42d?"before":"after");if(!this.firstIndicator){var next=this._drop.nextSibling;while(next!=null){next.coords.xy.y+=parseInt(this._drop.style.height);next=next.nextSibling;}}else{this.firstIndicator=false;}}else{this.node.appendChild(this._drop);}this._drop.style.display="";},insertNodes:function(_42f,data,_431,_432){if(this.dropObject){dojo.style(this.dropObject.n,"display","none");dojox.layout.dnd.PlottedDnd.superclass.insertNodes.call(this,true,data,true,this.dropObject.n);this.deleteDashedZone();}else{return dojox.layout.dnd.PlottedDnd.superclass.insertNodes.call(this,_42f,data,_431,_432);}var _433=dijit.byId(data[0].getAttribute("widgetId"));if(_433){dojox.layout.dnd._setGcDndHandle(_433,this.withHandles,this.handleClasses);if(this.hideSource){dojo.style(_433.domNode,"display","");}}},_checkAutoScroll:function(e){if(this._timer){clearTimeout(this._timer);}this._stopAutoScroll();var node=this.dom,y=this._sumAncestorProperties(node,"offsetTop");if((e.pageY-node.offsetTop+30)>node.clientHeight){this.autoScrollActive=true;this._autoScrollDown(node);}else{if((node.scrollTop>0)&&(e.pageY-y)<30){this.autoScrollActive=true;this._autoScrollUp(node);}}},_autoScrollUp:function(node){if(this.autoScrollActive&&node.scrollTop>0){node.scrollTop-=30;this._timer=setTimeout(dojo.hitch(this,"_autoScrollUp",node),100);}},_autoScrollDown:function(node){if(this.autoScrollActive&&(node.scrollTop<(node.scrollHeight-node.clientHeight))){node.scrollTop+=30;this._timer=setTimeout(dojo.hitch(this,"_autoScrollDown",node),100);}},_stopAutoScroll:function(){this.autoScrollActive=false;},_sumAncestorProperties:function(node,prop){node=dojo.byId(node);if(!node){return 0;}var _43b=0;while(node){var val=node[prop];if(val){_43b+=val-0;if(node==dojo.body()){break;}}node=node.parentNode;}return _43b;}});dojox.layout.dnd._setGcDndHandle=function(_43d,_43e,_43f,_440){var cls="GcDndHandle";if(!_440){dojo.query(".GcDndHandle",_43d.domNode).removeClass(cls);}if(!_43e){dojo.addClass(_43d.domNode,cls);}else{var _442=false;for(var i=_43f.length-1;i>=0;i--){var _444=dojo.query("."+_43f[i],_43d.domNode)[0];if(_444){_442=true;if(_43f[i]!=cls){var _445=dojo.query("."+cls,_43d.domNode);if(_445.length==0){dojo.removeClass(_43d.domNode,cls);}else{_445.removeClass(cls);}dojo.addClass(_444,cls);}}}if(!_442){dojo.addClass(_43d.domNode,cls);}}};dojo.declare("dojox.layout.dnd.DropIndicator",null,{constructor:function(cn,tag){this.tag=tag||"div";this.style=cn||null;},isInserted:function(){return (this.node.parentNode&&this.node.parentNode.nodeType==1);},create:function(){if(this.node&&this.isInserted()){return this.node;}var h="90px",el=dojo.doc.createElement(this.tag);if(this.style){el.className=this.style;el.style.height=h;}else{dojo.style(el,{position:"relative",border:"1px dashed #F60",margin:"2px",height:h});}this.node=el;return el;},destroy:function(){if(!this.node||!this.isInserted()){return;}this.node.parentNode.removeChild(this.node);this.node=null;}});dojo.extend(dojo.dnd.Manager,{canDrop:function(flag){var _44b=this.target&&flag;if(this.canDropFlag!=_44b){this.canDropFlag=_44b;if(this.avatar){this.avatar.update();}}},makeAvatar:function(){return (this.source.declaredClass=="dojox.layout.dnd.PlottedDnd")?new dojox.layout.dnd.Avatar(this,this.source.opacity):new dojo.dnd.Avatar(this);}});if(dojo.isIE){dojox.layout.dnd.handdleIE=[dojo.subscribe("/dnd/start",null,function(){IEonselectstart=document.body.onselectstart;document.body.onselectstart=function(){return false;};}),dojo.subscribe("/dnd/cancel",null,function(){document.body.onselectstart=IEonselectstart;}),dojo.subscribe("/dnd/drop",null,function(){document.body.onselectstart=IEonselectstart;})];dojo.addOnWindowUnload(function(){dojo.forEach(dojox.layout.dnd.handdleIE,dojo.unsubscribe);});}}if(!dojo._hasResource["dojox.layout.GridContainer"]){dojo._hasResource["dojox.layout.GridContainer"]=true;dojo.provide("dojox.layout.GridContainer");dojo.experimental("dojox.layout.GridContainer");dojo.declare("dojox.layout.GridContainer",[dijit._Widget,dijit._Templated,dijit._Container,dijit._Contained],{templateString:"<div id=\"${id}\" class=\"gridContainer\" dojoAttachPoint=\"containerNode\" tabIndex=\"0\" dojoAttachEvent=\"onkeypress:_selectFocus\">\n\t<table class=\"gridContainerTable\" dojoAttachPoint=\"gridContainerTable\" cellspacing=\"0\" cellpadding=\"0\">\n\t\t<tbody class=\"gridContainerBody\">\n\t\t\t<tr class=\"gridContainerRow\" dojoAttachPoint=\"gridNode\"></tr>\n\t\t</tbody>\n\t</table>\n</div>\n",isContainer:true,i18n:null,isAutoOrganized:true,isRightFixed:false,isLeftFixed:false,hasResizableColumns:true,nbZones:1,opacity:1,minColWidth:20,minChildWidth:150,acceptTypes:[],mode:"right",allowAutoScroll:false,timeDisplayPopup:1500,isOffset:false,offsetDrag:{},withHandles:false,handleClasses:[],_draggedWidget:null,_isResized:false,_activeGrip:null,_oldwidth:0,_oldheight:0,_a11yOn:false,_canDisplayPopup:true,constructor:function(_44c,node){this.acceptTypes=_44c["acceptTypes"]||["dijit.layout.ContentPane"];this.dragOffset=_44c["dragOffset"]||{x:0,y:0};},postMixInProperties:function(){this.i18n=dojo.i18n.getLocalization("dojox.layout","GridContainer");},_createCells:function(){if(this.nbZones===0){this.nbZones=1;}var wCol=100/this.nbZones;if(dojo.isIE&&dojo.marginBox(this.gridNode).height){var _44f=document.createTextNode(" ");this.gridNode.appendChild(_44f);}var grid=[];this.cell=[];var i=0;while(i<this.nbZones){var node=dojo.doc.createElement("td");dojo.addClass(node,"gridContainerZone");node.id=this.id+"_dz"+i;node.style.width=wCol+"%";var zone=this.gridNode.appendChild(node);this.cell[i]=zone;i++;}},startup:function(){this.inherited(arguments);this._createCells();if(this.usepref!==true){this[(this.isAutoOrganized?"_organizeServices":"_organizeServicesManually")]();}else{return;}this.init();dojo.forEach(this.getChildren(),function(_454){!_454.started&&!_454._started&&_454.startup();});},init:function(){this.grid=this._createGrid();this.connect(dojo.global,"onresize","onResized");this.connect(this,"onDndDrop","_placeGrips");this.dropHandler=dojo.subscribe("/dnd/drop",this,"_placeGrips");this._oldwidth=this.domNode.offsetWidth;if(this.hasResizableColumns){this._initPlaceGrips();this._placeGrips();}},destroy:function(){for(var i=0;i<this.handleDndStart;i++){dojo.disconnect(this.handleDndStart[i]);}dojo.unsubscribe(this.dropHandler);this.inherited(arguments);},onResized:function(){if(this.hasResizableColumns){this._placeGrips();this._oldwidth=this.domNode.offsetWidth;this._oldheight=this.domNode.offsetHeight;}},_organizeServices:function(){var nbz=this.nbZones;var nbs=this.getChildren().length;var res=Math.floor(nbs/nbz);var mod=nbs%nbz;var i=0;for(var z=0;z<nbz;z++){for(var r=0;r<res;r++){this._insertService(z,i++,0,true);}if(mod>0){try{this._insertService(z,i++,0,true);}catch(e){console.error("Unable to insert service in grid container",e,this.getChildren());}mod--;}else{if(res===0){break;}}}},_organizeServicesManually:function(){var _45d=this.getChildren();for(var i=0;i<_45d.length;i++){try{this._insertService(_45d[i].column-1,i,0,true);}catch(e){console.error("Unable to insert service in grid container",e,_45d[i]);}}},_insertService:function(z,p,i,_462){var zone=this.cell[z];var _464=zone.childNodes.length;var _465=this.getChildren()[(i?i:0)];if(typeof (p)=="undefined"||p>_464){p=_464;}var toto=dojo.place(_465.domNode,zone,p);_465.domNode.setAttribute("tabIndex",0);if(!_465.dragRestriction){dojo.addClass(_465.domNode,"dojoDndItem");}if(!_465.domNode.getAttribute("dndType")){_465.domNode.setAttribute("dndType",_465.declaredClass);}dojox.layout.dnd._setGcDndHandle(_465,this.withHandles,this.handleClasses,_462);if(this.hasResizableColumns){if(_465.onLoad){this.connect(_465,"onLoad","_placeGrips");}if(_465.onExecError){this.connect(_465,"onExecError","_placeGrips");}if(_465.onUnLoad){this.connect(_465,"onUnLoad","_placeGrips");}}this._placeGrips();return _465.id;},addService:function(_467,z,p){_467.domNode.id=_467.id;this.addChild(_467);if(p<=0){p=0;}var _46a=this._insertService(z,p);this.grid[z].setItem(_467.id,{data:_467.domNode,type:[_467.domNode.getAttribute("dndType")]});return _46a;},_createGrid:function(){var grid=[];var i=0;this.tabDZ=[];while(i<this.nbZones){var zone=this.cell[i];this.tabDZ[i]=this._createZone(zone);if(this.hasResizableColumns&&i!=(this.nbZones-1)){this._createGrip(this.tabDZ[i]);}grid.push(this.tabDZ[i]);i++;}if(this.hasResizableColumns){this.handleDndStart=[];for(var j=0;j<this.tabDZ.length;j++){var dz=this.tabDZ[j];var self=this;this.handleDndStart.push(dojo.connect(dz,"onDndStart",dz,function(_471){if(_471==this){self.handleDndInsertNodes=[];for(i=0;i<self.tabDZ.length;i++){self.handleDndInsertNodes.push(dojo.connect(self.tabDZ[i],"insertNodes",self,function(){self._disconnectDnd();}));}self.handleDndInsertNodes.push(dojo.connect(dz,"onDndCancel",self,self._disconnectDnd));self.onResized();}}));}}return grid;},_disconnectDnd:function(){dojo.forEach(this.handleDndInsertNodes,dojo.disconnect);setTimeout(dojo.hitch(this,"onResized"),0);},_createZone:function(zone){var dz=null;dz=new dojox.layout.dnd.PlottedDnd(zone.id,{accept:this.acceptTypes,withHandles:this.withHandles,handleClasses:this.handleClasses,singular:true,hideSource:true,opacity:this.opacity,dom:this.domNode,allowAutoScroll:this.allowAutoScroll,isOffset:this.isOffset,offsetDrag:this.offsetDrag});this.connect(dz,"insertDashedZone","_placeGrips");this.connect(dz,"deleteDashedZone","_placeGrips");return dz;},_createGrip:function(dz){var grip=document.createElement("div");grip.className="gridContainerGrip";grip.setAttribute("tabIndex","0");var _476=this;this.onMouseOver=this.connect(grip,"onmouseover",function(e){var _478=false;for(var i=0;i<_476.grid.length-1;i++){if(dojo.hasClass(_476.grid[i].grip,"gridContainerGripShow")){_478=true;break;}}if(!_478){dojo.removeClass(e.target,"gridContainerGrip");dojo.addClass(e.target,"gridContainerGripShow");}});this.connect(grip,"onmouseout",function(e){if(!_476._isResized){dojo.removeClass(e.target,"gridContainerGripShow");dojo.addClass(e.target,"gridContainerGrip");}});this.connect(grip,"onmousedown",function(e){_476._a11yOn=false;_476._activeGrip=e.target;_476.resizeColumnOn(e);});this.domNode.appendChild(grip);dz.grip=grip;},_initPlaceGrips:function(){var dcs=dojo.getComputedStyle(this.domNode);var gcs=dojo.getComputedStyle(this.gridContainerTable);this._x=parseInt(dcs.paddingLeft);this._topGrip=parseInt(dcs.paddingTop);if(dojo.isIE||gcs.borderCollapse!="collapse"){var ex=dojo._getBorderExtents(this.gridContainerTable);this._x+=ex.l;this._topGrip+=ex.t;}this._topGrip+="px";dojo.forEach(this.grid,function(zone){if(zone.grip){var grip=zone.grip;if(!dojo.isIE){zone.pad=dojo._getPadBorderExtents(zone.node).w;}grip.style.top=this._topGrip;}},this);},_placeGrips:function(){var _481;if(this.allowAutoScroll){_481=this.gridNode.scrollHeight;}else{_481=dojo.contentBox(this.gridNode).h;}var size=this._x;dojo.forEach(this.grid,function(zone){if(zone.grip){var grip=zone.grip;size+=dojo[(dojo.isIE?"marginBox":"contentBox")](zone.node).w+(dojo.isIE?0:zone.pad);dojo.style(grip,{left:size+"px",height:_481+"px"});}},this);},_getZoneByIndex:function(n){return this.grid[(n>=0&&n<this.grid.length?n:0)];},getIndexZone:function(zone){for(var z=0;z<this.grid.length;z++){if(this.grid[z].domNode==zone){return z;}}return -1;},resizeColumnOn:function(e){var k=dojo.keys;if(this._a11yOn&&e.keyCode!=k.LEFT_ARROW&&e.keyCode!=k.RIGHT_ARROW){return;}e.preventDefault();dojo.body().style.cursor="ew-resize";this._isResized=true;this.initX=e.pageX;var _48a=[];for(var i=0;i<this.grid.length;i++){_48a[i]=dojo.contentBox(this.grid[i].node).w;}this.oldTabSize=_48a;for(var i=0;i<this.grid.length;i++){if(this._activeGrip==this.grid[i].grip){this.currentColumn=this.grid[i].node;this.currentColumnWidth=_48a[i];this.nextColumn=this.currentColumn.nextSibling;this.nextColumnWidth=_48a[i+1];}this.grid[i].node.style.width=_48a[i]+"px";}var _48c=function(_48d,_48e){var _48f=0;var _490=0;dojo.forEach(_48d,function(_491){if(_491.nodeType==1){var _492=dojo.getComputedStyle(_491);var _493=(dojo.isIE?_48e:parseInt(_492.minWidth));_490=_493+parseInt(_492.marginLeft)+parseInt(_492.marginRight);if(_48f<_490){_48f=_490;}}});return _48f;};var _494=_48c(this.currentColumn.childNodes,this.minChildWidth);var _495=_48c(this.nextColumn.childNodes,this.minChildWidth);var _496=Math.round((dojo.marginBox(this.gridContainerTable).w*this.minColWidth)/100);this.currentMinCol=_494;this.nextMinCol=_495;if(_496>this.currentMinCol){this.currentMinCol=_496;}if(_496>this.nextMinCol){this.nextMinCol=_496;}if(this._a11yOn){this.connectResizeColumnMove=this.connect(dojo.doc,"onkeypress","resizeColumnMove");}else{this.connectResizeColumnMove=this.connect(dojo.doc,"onmousemove","resizeColumnMove");this.connectResizeColumnOff=this.connect(document,"onmouseup","resizeColumnOff");}},resizeColumnMove:function(e){var d=0;if(this._a11yOn){var k=dojo.keys;switch(e.keyCode){case k.LEFT_ARROW:d=-10;break;case k.RIGHT_ARROW:d=10;break;}}else{e.preventDefault();d=e.pageX-this.initX;}if(d==0){return;}if(!(this.currentColumnWidth+d<this.currentMinCol||this.nextColumnWidth-d<this.nextMinCol)){this.currentColumnWidth+=d;this.nextColumnWidth-=d;this.initX=e.pageX;this.currentColumn.style["width"]=this.currentColumnWidth+"px";this.nextColumn.style["width"]=this.nextColumnWidth+"px";this._activeGrip.style.left=parseInt(this._activeGrip.style.left)+d+"px";this._placeGrips();}if(this._a11yOn){this.resizeColumnOff(e);}},resizeColumnOff:function(e){dojo.body().style.cursor="default";if(this._a11yOn){this.disconnect(this.connectResizeColumnMove);this._a11yOn=false;}else{this.disconnect(this.connectResizeColumnMove);this.disconnect(this.connectResizeColumnOff);}var _49b=[];var _49c=[];var _49d=this.gridContainerTable.clientWidth;for(var i=0;i<this.grid.length;i++){var _cb=dojo.contentBox(this.grid[i].node);if(dojo.isIE){_49b[i]=dojo.marginBox(this.grid[i].node).w;_49c[i]=_cb.w;}else{_49b[i]=_cb.w;_49c=_49b;}}var _4a0=false;for(var i=0;i<_49c.length;i++){if(_49c[i]!=this.oldTabSize[i]){_4a0=true;break;}}if(_4a0){var mul=dojo.isIE?100:10000;for(var i=0;i<this.grid.length;i++){this.grid[i].node.style.width=Math.round((100*mul*_49b[i])/_49d)/mul+"%";}this._placeGrips();}if(this._activeGrip){dojo.removeClass(this._activeGrip,"gridContainerGripShow");dojo.addClass(this._activeGrip,"gridContainerGrip");}this._isResized=false;},setColumns:function(_4a2){if(_4a2>0){var _4a3=this.grid.length-_4a2;if(_4a3>0){var _4a4=[];var zone,_4a6,end;if(this.mode=="right"){end=(this.isLeftFixed&&this.grid.length>0)?1:0;_4a6=this.grid.length-(this.isRightFixed?2:1);for(var z=_4a6;z>=end;z--){var _4a9=0;var zone=this.grid[z].node;for(var j=0;j<zone.childNodes.length;j++){if(zone.childNodes[j].nodeType==1&&!(zone.childNodes[j].id=="")){_4a9++;break;}}if(_4a9==0){_4a4[_4a4.length]=z;}if(_4a4.length>=_4a3){this._deleteColumn(_4a4);break;}}if(_4a4.length<_4a3){console.error(this.i18n.err_onSetNbColsRightMode);}}else{if(this.isLeftFixed&&this.grid.length>0){_4a6=1;}else{_4a6=0;}if(this.isRightFixed){end=this.grid.length-1;}else{end=this.grid.length;}for(var z=_4a6;z<end;z++){var _4a9=0;var zone=this.grid[z].node;for(var j=0;j<zone.childNodes.length;j++){if(zone.childNodes[j].nodeType==1&&!(zone.childNodes[j].id=="")){_4a9++;break;}}if(_4a9==0){_4a4[_4a4.length]=z;}if(_4a4.length>=_4a3){this._deleteColumn(_4a4);break;}}if(_4a4.length<_4a3){alert(this.i18n.err_onSetNbColsLeftMode);}}}else{if(_4a3<0){this._addColumn(Math.abs(_4a3));}}this._initPlaceGrips();this._placeGrips();}},_addColumn:function(_4ab){var node;if(this.hasResizableColumns&&!this.isRightFixed&&this.mode=="right"){node=this.grid[this.grid.length-1];this._createGrip(node);}for(var i=0;i<_4ab;i++){node=dojo.doc.createElement("td");dojo.addClass(node,"gridContainerZone");node.id=this.id+"_dz"+this.nbZones;var dz;if(this.mode=="right"){if(this.isRightFixed){this.grid[this.grid.length-1].node.parentNode.insertBefore(node,this.grid[this.grid.length-1].node);dz=this._createZone(node);this.tabDZ.splice(this.tabDZ.length-1,0,dz);this.grid.splice(this.grid.length-1,0,dz);this.cell.splice(this.cell.length-1,0,node);}else{var zone=this.gridNode.appendChild(node);dz=this._createZone(node);this.tabDZ.push(dz);this.grid.push(dz);this.cell.push(node);}}else{if(this.isLeftFixed){(this.grid.length==1)?this.grid[0].node.parentNode.appendChild(node,this.grid[0].node):this.grid[1].node.parentNode.insertBefore(node,this.grid[1].node);dz=this._createZone(node);this.tabDZ.splice(1,0,dz);this.grid.splice(1,0,dz);this.cell.splice(1,0,node);}else{this.grid[this.grid.length-this.nbZones].node.parentNode.insertBefore(node,this.grid[this.grid.length-this.nbZones].node);dz=this._createZone(node);this.tabDZ.splice(this.tabDZ.length-this.nbZones,0,dz);this.grid.splice(this.grid.length-this.nbZones,0,dz);this.cell.splice(this.cell.length-this.nbZones,0,node);}}if(this.hasResizableColumns){var self=this;var _4b1=dojo.connect(dz,"onDndStart",dz,function(_4b2){if(_4b2==this){self.handleDndInsertNodes=[];for(var o=0;o<self.tabDZ.length;o++){self.handleDndInsertNodes.push(dojo.connect(self.tabDZ[o],"insertNodes",self,function(){self._disconnectDnd();}));}self.handleDndInsertNodes.push(dojo.connect(dz,"onDndCancel",self,self._disconnectDnd));self.onResized();}});if(this.mode=="right"){if(this.isRightFixed){this.handleDndStart.splice(this.handleDndStart.length-1,0,_4b1);}else{this.handleDndStart.push(_4b1);}}else{if(this.isLeftFixed){this.handleDndStart.splice(1,0,_4b1);}else{this.handleDndStart.splice(this.handleDndStart.length-this.nbZones,0,_4b1);}}this._createGrip(dz);}this.nbZones++;}this._updateColumnsWidth();},_deleteColumn:function(_4b4){var zone,_4b6,_4b7;_4b7=0;for(var i=0;i<_4b4.length;i++){var idx=_4b4[i];if(this.mode=="right"){zone=this.grid[idx];}else{zone=this.grid[idx-_4b7];}for(var j=0;j<zone.node.childNodes.length;j++){if(zone.node.childNodes[j].nodeType!=1){continue;}_4b6=dijit.byId(zone.node.childNodes[j].id);for(var x=0;x<this.getChildren().length;x++){if(this.getChildren()[x]===_4b6){this.getChildren().splice(x,1);break;}}}zone.node.parentNode.removeChild(zone.node);if(this.mode=="right"){if(this.hasResizableColumns){dojo.disconnect(this.handleDndStart[idx]);}this.grid.splice(idx,1);this.tabDZ.splice(idx,1);this.cell.splice(idx,1);}else{if(this.hasResizableColumns){dojo.disconnect(this.handleDndStart[idx-_4b7]);}this.grid.splice(idx-_4b7,1);this.tabDZ.splice(idx-_4b7,1);this.cell.splice(idx-_4b7,1);}this.nbZones--;_4b7++;if(zone.grip){this.domNode.removeChild(zone.grip);}}this._updateColumnsWidth();},_updateColumnsWidth:function(){var wCol=100/this.nbZones;var zone;for(var z=0;z<this.grid.length;z++){zone=this.grid[z].node;zone.style.width=wCol+"%";}},_selectFocus:function(_4bf){var e=_4bf.keyCode;var zone=null;var _4c2=dijit.getFocus();var _4c3=_4c2.node;var k=dojo.keys;var _4c5=(e==k.UP_ARROW||e==k.LEFT_ARROW)?"lastChild":"firstChild";var pos=(e==k.UP_ARROW||e==k.LEFT_ARROW)?"previousSibling":"nextSibling";if(_4c3==this.containerNode){switch(e){case k.DOWN_ARROW:case k.RIGHT_ARROW:for(var i=0;i<this.gridNode.childNodes.length;i++){zone=this.gridNode.childNodes[i].firstChild;var _4c8=false;while(!_4c8){if(zone!=null){if(zone.style.display!=="none"){dijit.focus(zone);dojo.stopEvent(_4bf);_4c8=true;}else{zone=zone[pos];}}else{break;}}if(_4c8){break;}}break;case k.UP_ARROW:case k.LEFT_ARROW:for(var i=this.gridNode.childNodes.length-1;i>=0;i--){zone=this.gridNode.childNodes[i].lastChild;var _4c8=false;while(!_4c8){if(zone!=null){if(zone.style.display!=="none"){dijit.focus(zone);dojo.stopEvent(_4bf);_4c8=true;}else{zone=zone[pos];}}else{break;}}if(_4c8){break;}}break;}}else{if(_4c3.parentNode.parentNode==this.gridNode){switch(e){case k.UP_ARROW:case k.DOWN_ARROW:dojo.stopEvent(_4bf);var _4c9=0;dojo.forEach(_4c3.parentNode.childNodes,function(_4ca){if(_4ca.style.display!=="none"){_4c9++;}});if(_4c9==1){return;}var _4c8=false;zone=_4c3[pos];while(!_4c8){if(zone==null){zone=_4c3.parentNode[_4c5];if(zone.style.display!=="none"){_4c8=true;}else{zone=zone[pos];}}else{if(zone.style.display!=="none"){_4c8=true;}else{zone=zone[pos];}}}if(_4bf.shiftKey){if(dijit.byNode(_4c3).dragRestriction){return;}var _4cb=_4c3.getAttribute("dndtype");var _4cc=false;for(var i=0;i<this.acceptTypes.length;i++){if(_4cb==this.acceptTypes[i]){var _4cc=true;break;}}if(_4cc){var _4cd=_4c3.parentNode;var _4ce=_4cd.firstChild;var _4cf=_4cd.lastChild;while(_4ce.style.display=="none"||_4cf.style.display=="none"){if(_4ce.style.display=="none"){_4ce=_4ce.nextSibling;}if(_4cf.style.display=="none"){_4cf=_4cf.previousSibling;}}if(e==k.UP_ARROW){var r=_4cd.removeChild(_4c3);if(r==_4ce){_4cd.appendChild(r);}else{_4cd.insertBefore(r,zone);}r.setAttribute("tabIndex","0");dijit.focus(r);}else{if(_4c3==_4cf){var r=_4cd.removeChild(_4c3);_4cd.insertBefore(r,zone);r.setAttribute("tabIndex","0");dijit.focus(r);}else{var r=_4cd.removeChild(zone);_4cd.insertBefore(r,_4c3);_4c3.setAttribute("tabIndex","0");dijit.focus(_4c3);}}}else{this._displayPopup();}}else{dijit.focus(zone);}break;case k.RIGHT_ARROW:case k.LEFT_ARROW:dojo.stopEvent(_4bf);if(_4bf.shiftKey){if(dijit.byNode(_4c3).dragRestriction){return;}var z=0;if(_4c3.parentNode[pos]==null){if(e==k.LEFT_ARROW){var z=this.gridNode.childNodes.length-1;}}else{if(_4c3.parentNode[pos].nodeType==3){z=this.gridNode.childNodes.length-2;}else{for(var i=0;i<this.gridNode.childNodes.length;i++){if(_4c3.parentNode[pos]==this.gridNode.childNodes[i]){break;}z++;}}}var _4cb=_4c3.getAttribute("dndtype");var _4cc=false;for(var i=0;i<this.acceptTypes.length;i++){if(_4cb==this.acceptTypes[i]){_4cc=true;break;}}if(_4cc){var _4d2=_4c3.parentNode;var _4d3=dijit.byNode(_4c3);var r=_4d2.removeChild(_4c3);var _4d4=(e==k.RIGHT_ARROW?0:this.gridNode.childNodes[z].length);this.addService(_4d3,z,_4d4);r.setAttribute("tabIndex","0");dijit.focus(r);this._placeGrips();}else{this._displayPopup();}}else{var node=_4c3.parentNode;while(zone===null){if(node[pos]!==null&&node[pos].nodeType!==3){node=node[pos];}else{if(pos==="previousSibling"){node=node.parentNode.childNodes[node.parentNode.childNodes.length-1];}else{node=node.parentNode.childNodes[0];}}var _4c8=false;var _4d6=node[_4c5];while(!_4c8){if(_4d6!=null){if(_4d6.style.display!=="none"){zone=_4d6;_4c8=true;}else{_4d6=_4d6[pos];}}else{break;}}}dijit.focus(zone);}break;}}else{if(dojo.hasClass(_4c3,"gridContainerGrip")||dojo.hasClass(_4c3,"gridContainerGripShow")){this._activeGrip=_4bf.target;this._a11yOn=true;this.resizeColumnOn(_4bf);}}}},_displayPopup:function(){if(this._canDisplayPopup){var _4d7=dojo.doc.createElement("div");dojo.addClass(_4d7,"gridContainerPopup");_4d7.innerHTML=this.i18n.alertPopup;var _4d8=this.containerNode.appendChild(_4d7);this._canDisplayPopup=false;setTimeout(dojo.hitch(this,function(){this.containerNode.removeChild(_4d8);dojo.destroy(_4d8);this._canDisplayPopup=true;}),this.timeDisplayPopup);}}});dojo.extend(dijit._Widget,{dragRestriction:false,column:"1",group:""});}if(!dojo._hasResource["dojo.fx.Toggler"]){dojo._hasResource["dojo.fx.Toggler"]=true;dojo.provide("dojo.fx.Toggler");dojo.declare("dojo.fx.Toggler",null,{constructor:function(args){var _t=this;dojo.mixin(_t,args);_t.node=args.node;_t._showArgs=dojo.mixin({},args);_t._showArgs.node=_t.node;_t._showArgs.duration=_t.showDuration;_t.showAnim=_t.showFunc(_t._showArgs);_t._hideArgs=dojo.mixin({},args);_t._hideArgs.node=_t.node;_t._hideArgs.duration=_t.hideDuration;_t.hideAnim=_t.hideFunc(_t._hideArgs);dojo.connect(_t.showAnim,"beforeBegin",dojo.hitch(_t.hideAnim,"stop",true));dojo.connect(_t.hideAnim,"beforeBegin",dojo.hitch(_t.showAnim,"stop",true));},node:null,showFunc:dojo.fadeIn,hideFunc:dojo.fadeOut,showDuration:200,hideDuration:200,show:function(_4db){return this.showAnim.play(_4db||0);},hide:function(_4dc){return this.hideAnim.play(_4dc||0);}});}if(!dojo._hasResource["dojo.fx"]){dojo._hasResource["dojo.fx"]=true;dojo.provide("dojo.fx");(function(){var d=dojo,_4de={_fire:function(evt,args){if(this[evt]){this[evt].apply(this,args||[]);}return this;}};var _4e1=function(_4e2){this._index=-1;this._animations=_4e2||[];this._current=this._onAnimateCtx=this._onEndCtx=null;this.duration=0;d.forEach(this._animations,function(a){this.duration+=a.duration;if(a.delay){this.duration+=a.delay;}},this);};d.extend(_4e1,{_onAnimate:function(){this._fire("onAnimate",arguments);},_onEnd:function(){d.disconnect(this._onAnimateCtx);d.disconnect(this._onEndCtx);this._onAnimateCtx=this._onEndCtx=null;if(this._index+1==this._animations.length){this._fire("onEnd");}else{this._current=this._animations[++this._index];this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");this._current.play(0,true);}},play:function(_4e4,_4e5){if(!this._current){this._current=this._animations[this._index=0];}if(!_4e5&&this._current.status()=="playing"){return this;}var _4e6=d.connect(this._current,"beforeBegin",this,function(){this._fire("beforeBegin");}),_4e7=d.connect(this._current,"onBegin",this,function(arg){this._fire("onBegin",arguments);}),_4e9=d.connect(this._current,"onPlay",this,function(arg){this._fire("onPlay",arguments);d.disconnect(_4e6);d.disconnect(_4e7);d.disconnect(_4e9);});if(this._onAnimateCtx){d.disconnect(this._onAnimateCtx);}this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");if(this._onEndCtx){d.disconnect(this._onEndCtx);}this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");this._current.play.apply(this._current,arguments);return this;},pause:function(){if(this._current){var e=d.connect(this._current,"onPause",this,function(arg){this._fire("onPause",arguments);d.disconnect(e);});this._current.pause();}return this;},gotoPercent:function(_4ed,_4ee){this.pause();var _4ef=this.duration*_4ed;this._current=null;d.some(this._animations,function(a){if(a.duration<=_4ef){this._current=a;return true;}_4ef-=a.duration;return false;});if(this._current){this._current.gotoPercent(_4ef/this._current.duration,_4ee);}return this;},stop:function(_4f1){if(this._current){if(_4f1){for(;this._index+1<this._animations.length;++this._index){this._animations[this._index].stop(true);}this._current=this._animations[this._index];}var e=d.connect(this._current,"onStop",this,function(arg){this._fire("onStop",arguments);d.disconnect(e);});this._current.stop();}return this;},status:function(){return this._current?this._current.status():"stopped";},destroy:function(){if(this._onAnimateCtx){d.disconnect(this._onAnimateCtx);}if(this._onEndCtx){d.disconnect(this._onEndCtx);}}});d.extend(_4e1,_4de);dojo.fx.chain=function(_4f4){return new _4e1(_4f4);};var _4f5=function(_4f6){this._animations=_4f6||[];this._connects=[];this._finished=0;this.duration=0;d.forEach(_4f6,function(a){var _4f8=a.duration;if(a.delay){_4f8+=a.delay;}if(this.duration<_4f8){this.duration=_4f8;}this._connects.push(d.connect(a,"onEnd",this,"_onEnd"));},this);this._pseudoAnimation=new d._Animation({curve:[0,1],duration:this.duration});var self=this;d.forEach(["beforeBegin","onBegin","onPlay","onAnimate","onPause","onStop"],function(evt){self._connects.push(d.connect(self._pseudoAnimation,evt,function(){self._fire(evt,arguments);}));});};d.extend(_4f5,{_doAction:function(_4fb,args){d.forEach(this._animations,function(a){a[_4fb].apply(a,args);});return this;},_onEnd:function(){if(++this._finished==this._animations.length){this._fire("onEnd");}},_call:function(_4fe,args){var t=this._pseudoAnimation;t[_4fe].apply(t,args);},play:function(_501,_502){this._finished=0;this._doAction("play",arguments);this._call("play",arguments);return this;},pause:function(){this._doAction("pause",arguments);this._call("pause",arguments);return this;},gotoPercent:function(_503,_504){var ms=this.duration*_503;d.forEach(this._animations,function(a){a.gotoPercent(a.duration<ms?1:(ms/a.duration),_504);});this._call("gotoPercent",arguments);return this;},stop:function(_507){this._doAction("stop",arguments);this._call("stop",arguments);return this;},status:function(){return this._pseudoAnimation.status();},destroy:function(){d.forEach(this._connects,dojo.disconnect);}});d.extend(_4f5,_4de);dojo.fx.combine=function(_508){return new _4f5(_508);};dojo.fx.wipeIn=function(args){args.node=d.byId(args.node);var node=args.node,s=node.style,o;var anim=d.animateProperty(d.mixin({properties:{height:{start:function(){o=s.overflow;s.overflow="hidden";if(s.visibility=="hidden"||s.display=="none"){s.height="1px";s.display="";s.visibility="";return 1;}else{var _50e=d.style(node,"height");return Math.max(_50e,1);}},end:function(){return node.scrollHeight;}}}},args));d.connect(anim,"onEnd",function(){s.height="auto";s.overflow=o;});return anim;};dojo.fx.wipeOut=function(args){var node=args.node=d.byId(args.node),s=node.style,o;var anim=d.animateProperty(d.mixin({properties:{height:{end:1}}},args));d.connect(anim,"beforeBegin",function(){o=s.overflow;s.overflow="hidden";s.display="";});d.connect(anim,"onEnd",function(){s.overflow=o;s.height="auto";s.display="none";});return anim;};dojo.fx.slideTo=function(args){var node=args.node=d.byId(args.node),top=null,left=null;var init=(function(n){return function(){var cs=d.getComputedStyle(n);var pos=cs.position;top=(pos=="absolute"?n.offsetTop:parseInt(cs.top)||0);left=(pos=="absolute"?n.offsetLeft:parseInt(cs.left)||0);if(pos!="absolute"&&pos!="relative"){var ret=d.coords(n,true);top=ret.y;left=ret.x;n.style.position="absolute";n.style.top=top+"px";n.style.left=left+"px";}};})(node);init();var anim=d.animateProperty(d.mixin({properties:{top:args.top||0,left:args.left||0}},args));d.connect(anim,"beforeBegin",anim,init);return anim;};})();}if(!dojo._hasResource["dojo.io.script"]){dojo._hasResource["dojo.io.script"]=true;dojo.provide("dojo.io.script");dojo.io.script={get:function(args){var dfd=this._makeScriptDeferred(args);var _520=dfd.ioArgs;dojo._ioAddQueryToUrl(_520);if(this._canAttach(_520)){this.attach(_520.id,_520.url,args.frameDoc);}dojo._ioWatch(dfd,this._validCheck,this._ioCheck,this._resHandle);return dfd;},attach:function(id,url,_523){var doc=(_523||dojo.doc);var _525=doc.createElement("script");_525.type="text/javascript";_525.src=url;_525.id=id;_525.charset="utf-8";doc.getElementsByTagName("head")[0].appendChild(_525);},remove:function(id,_527){dojo.destroy(dojo.byId(id,_527));if(this["jsonp_"+id]){delete this["jsonp_"+id];}},_makeScriptDeferred:function(args){var dfd=dojo._ioSetArgs(args,this._deferredCancel,this._deferredOk,this._deferredError);var _52a=dfd.ioArgs;_52a.id=dojo._scopeName+"IoScript"+(this._counter++);_52a.canDelete=false;if(args.callbackParamName){_52a.query=_52a.query||"";if(_52a.query.length>0){_52a.query+="&";}_52a.query+=args.callbackParamName+"="+(args.frameDoc?"parent.":"")+dojo._scopeName+".io.script.jsonp_"+_52a.id+"._jsonpCallback";_52a.frameDoc=args.frameDoc;_52a.canDelete=true;dfd._jsonpCallback=this._jsonpCallback;this["jsonp_"+_52a.id]=dfd;}return dfd;},_deferredCancel:function(dfd){dfd.canceled=true;if(dfd.ioArgs.canDelete){dojo.io.script._addDeadScript(dfd.ioArgs);}},_deferredOk:function(dfd){if(dfd.ioArgs.canDelete){dojo.io.script._addDeadScript(dfd.ioArgs);}if(dfd.ioArgs.json){return dfd.ioArgs.json;}else{return dfd.ioArgs;}},_deferredError:function(_52d,dfd){if(dfd.ioArgs.canDelete){if(_52d.dojoType=="timeout"){dojo.io.script.remove(dfd.ioArgs.id,dfd.ioArgs.frameDoc);}else{dojo.io.script._addDeadScript(dfd.ioArgs);}}console.log("dojo.io.script error",_52d);return _52d;},_deadScripts:[],_counter:1,_addDeadScript:function(_52f){dojo.io.script._deadScripts.push({id:_52f.id,frameDoc:_52f.frameDoc});_52f.frameDoc=null;},_validCheck:function(dfd){var _531=dojo.io.script;var _532=_531._deadScripts;if(_532&&_532.length>0){for(var i=0;i<_532.length;i++){_531.remove(_532[i].id,_532[i].frameDoc);_532[i].frameDoc=null;}dojo.io.script._deadScripts=[];}return true;},_ioCheck:function(dfd){if(dfd.ioArgs.json){return true;}var _535=dfd.ioArgs.args.checkString;if(_535&&eval("typeof("+_535+") != 'undefined'")){return true;}return false;},_resHandle:function(dfd){if(dojo.io.script._ioCheck(dfd)){dfd.callback(dfd);}else{dfd.errback(new Error("inconceivable dojo.io.script._resHandle error"));}},_canAttach:function(_537){return true;},_jsonpCallback:function(json){this.ioArgs.json=json;}};}if(!dojo._hasResource["dojo.regexp"]){dojo._hasResource["dojo.regexp"]=true;dojo.provide("dojo.regexp");dojo.regexp.escapeString=function(str,_53a){return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){if(_53a&&_53a.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};dojo.regexp.buildGroupRE=function(arr,re,_53e){if(!(arr instanceof Array)){return re(arr);}var b=[];for(var i=0;i<arr.length;i++){b.push(re(arr[i]));}return dojo.regexp.group(b.join("|"),_53e);};dojo.regexp.group=function(_541,_542){return "("+(_542?"?:":"")+_541+")";};}if(!dojo._hasResource["dojo.cookie"]){dojo._hasResource["dojo.cookie"]=true;dojo.provide("dojo.cookie");dojo.cookie=function(name,_544,_545){var c=document.cookie;if(arguments.length==1){var _547=c.match(new RegExp("(?:^|; )"+dojo.regexp.escapeString(name)+"=([^;]*)"));return _547?decodeURIComponent(_547[1]):undefined;}else{_545=_545||{};var exp=_545.expires;if(typeof exp=="number"){var d=new Date();d.setTime(d.getTime()+exp*24*60*60*1000);exp=_545.expires=d;}if(exp&&exp.toUTCString){_545.expires=exp.toUTCString();}_544=encodeURIComponent(_544);var _54a=name+"="+_544,_54b;for(_54b in _545){_54a+="; "+_54b;var _54c=_545[_54b];if(_54c!==true){_54a+="="+_54c;}}document.cookie=_54a;}};dojo.cookie.isSupported=function(){if(!("cookieEnabled" in navigator)){this("__djCookieTest__","CookiesAllowed");navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";if(navigator.cookieEnabled){this("__djCookieTest__","",{expires:-1});}}return navigator.cookieEnabled;};}if(!dojo._hasResource["dojox.string.Builder"]){dojo._hasResource["dojox.string.Builder"]=true;dojo.provide("dojox.string.Builder");dojox.string.Builder=function(str){var b="";this.length=0;this.append=function(s){if(arguments.length>1){var tmp="",l=arguments.length;switch(l){case 9:tmp=""+arguments[8]+tmp;case 8:tmp=""+arguments[7]+tmp;case 7:tmp=""+arguments[6]+tmp;case 6:tmp=""+arguments[5]+tmp;case 5:tmp=""+arguments[4]+tmp;case 4:tmp=""+arguments[3]+tmp;case 3:tmp=""+arguments[2]+tmp;case 2:b+=""+arguments[0]+arguments[1]+tmp;break;default:var i=0;while(i<arguments.length){tmp+=arguments[i++];}b+=tmp;}}else{b+=s;}this.length=b.length;return this;};this.concat=function(s){return this.append.apply(this,arguments);};this.appendArray=function(_554){return this.append.apply(this,_554);};this.clear=function(){b="";this.length=0;return this;};this.replace=function(_555,_556){b=b.replace(_555,_556);this.length=b.length;return this;};this.remove=function(_557,len){if(len===undefined){len=b.length;}if(len==0){return this;}b=b.substr(0,_557)+b.substr(_557+len);this.length=b.length;return this;};this.insert=function(_559,str){if(_559==0){b=str+b;}else{b=b.slice(0,_559)+str+b.slice(_559);}this.length=b.length;return this;};this.toString=function(){return b;};if(str){this.append(str);}};}if(!dojo._hasResource["dojox.string.tokenize"]){dojo._hasResource["dojox.string.tokenize"]=true;dojo.provide("dojox.string.tokenize");dojox.string.tokenize=function(str,re,_55d,_55e){var _55f=[];var _560,_561,_562=0;while(_560=re.exec(str)){_561=str.slice(_562,re.lastIndex-_560[0].length);if(_561.length){_55f.push(_561);}if(_55d){if(dojo.isOpera){var copy=_560.slice(0);while(copy.length<_560.length){copy.push(null);}_560=copy;}var _564=_55d.apply(_55e,_560.slice(1).concat(_55f.length));if(typeof _564!="undefined"){_55f.push(_564);}}_562=re.lastIndex;}_561=str.slice(_562);if(_561.length){_55f.push(_561);}return _55f;};}if(!dojo._hasResource["dojox.dtl._base"]){dojo._hasResource["dojox.dtl._base"]=true;dojo.provide("dojox.dtl._base");dojo.experimental("dojox.dtl");(function(){var dd=dojox.dtl;dd.TOKEN_BLOCK=-1;dd.TOKEN_VAR=-2;dd.TOKEN_COMMENT=-3;dd.TOKEN_TEXT=3;dd._Context=dojo.extend(function(dict){dojo._mixin(this,dict||{});this._dicts=[];},{push:function(){var last=this;var _568=dojo.delegate(this);_568.pop=function(){return last;};return _568;},pop:function(){throw new Error("pop() called on empty Context");},get:function(key,_56a){if(typeof this[key]!="undefined"){return this._normalize(this[key]);}for(var i=0,dict;dict=this._dicts[i];i++){if(typeof dict[key]!="undefined"){return this._normalize(dict[key]);}}return _56a;},_normalize:function(_56d){if(_56d instanceof Date){_56d.year=_56d.getFullYear();_56d.month=_56d.getMonth()+1;_56d.day=_56d.getDate();_56d.date=_56d.year+"-"+("0"+_56d.month).slice(-2)+"-"+("0"+_56d.day).slice(-2);_56d.hour=_56d.getHours();_56d.minute=_56d.getMinutes();_56d.second=_56d.getSeconds();_56d.microsecond=_56d.getMilliseconds();}return _56d;},update:function(dict){var _56f=this.push();if(dict){dojo._mixin(this,dict);}return _56f;}});var _570=/("(?:[^"\\]*(?:\\.[^"\\]*)*)"|'(?:[^'\\]*(?:\\.[^'\\]*)*)'|[^\s]+)/g;var _571=/\s+/g;var _572=function(_573,_574){_573=_573||_571;if(!(_573 instanceof RegExp)){_573=new RegExp(_573,"g");}if(!_573.global){throw new Error("You must use a globally flagged RegExp with split "+_573);}_573.exec("");var part,_576=[],_577=0,i=0;while(part=_573.exec(this)){_576.push(this.slice(_577,_573.lastIndex-part[0].length));_577=_573.lastIndex;if(_574&&(++i>_574-1)){break;}}_576.push(this.slice(_577));return _576;};dd.Token=function(_579,_57a){this.token_type=_579;this.contents=new String(dojo.trim(_57a));this.contents.split=_572;this.split=function(){return String.prototype.split.apply(this.contents,arguments);};};dd.Token.prototype.split_contents=function(_57b){var bit,bits=[],i=0;_57b=_57b||999;while(i++<_57b&&(bit=_570.exec(this.contents))){bit=bit[0];if(bit.charAt(0)=="\""&&bit.slice(-1)=="\""){bits.push("\""+bit.slice(1,-1).replace("\\\"","\"").replace("\\\\","\\")+"\"");}else{if(bit.charAt(0)=="'"&&bit.slice(-1)=="'"){bits.push("'"+bit.slice(1,-1).replace("\\'","'").replace("\\\\","\\")+"'");}else{bits.push(bit);}}}return bits;};var ddt=dd.text={_get:function(_580,name,_582){var _583=dd.register.get(_580,name.toLowerCase(),_582);if(!_583){if(!_582){throw new Error("No tag found for "+name);}return null;}var fn=_583[1];var _585=_583[2];var _586;if(fn.indexOf(":")!=-1){_586=fn.split(":");fn=_586.pop();}dojo["require"](_585);var _587=dojo.getObject(_585);return _587[fn||name]||_587[name+"_"]||_587[fn+"_"];},getTag:function(name,_589){return ddt._get("tag",name,_589);},getFilter:function(name,_58b){return ddt._get("filter",name,_58b);},getTemplate:function(file){return new dd.Template(ddt.getTemplateString(file));},getTemplateString:function(file){return dojo._getText(file.toString())||"";},_resolveLazy:function(_58e,sync,json){if(sync){if(json){return dojo.fromJson(dojo._getText(_58e))||{};}else{return dd.text.getTemplateString(_58e);}}else{return dojo.xhrGet({handleAs:(json)?"json":"text",url:_58e});}},_resolveTemplateArg:function(arg,sync){if(ddt._isTemplate(arg)){if(!sync){var d=new dojo.Deferred();d.callback(arg);return d;}return arg;}return ddt._resolveLazy(arg,sync);},_isTemplate:function(arg){return (typeof arg=="undefined")||(typeof arg=="string"&&(arg.match(/^\s*[<{]/)||arg.indexOf(" ")!=-1));},_resolveContextArg:function(arg,sync){if(arg.constructor==Object){if(!sync){var d=new dojo.Deferred;d.callback(arg);return d;}return arg;}return ddt._resolveLazy(arg,sync,true);},_re:/(?:\{\{\s*(.+?)\s*\}\}|\{%\s*(load\s*)?(.+?)\s*%\})/g,tokenize:function(str){return dojox.string.tokenize(str,ddt._re,ddt._parseDelims);},_parseDelims:function(varr,load,tag){if(varr){return [dd.TOKEN_VAR,varr];}else{if(load){var _59c=dojo.trim(tag).split(/\s+/g);for(var i=0,part;part=_59c[i];i++){dojo["require"](part);}}else{return [dd.TOKEN_BLOCK,tag];}}}};dd.Template=dojo.extend(function(_59f,_5a0){var str=_5a0?_59f:ddt._resolveTemplateArg(_59f,true)||"";var _5a2=ddt.tokenize(str);var _5a3=new dd._Parser(_5a2);this.nodelist=_5a3.parse();},{update:function(node,_5a5){return ddt._resolveContextArg(_5a5).addCallback(this,function(_5a6){var _5a7=this.render(new dd._Context(_5a6));if(node.forEach){node.forEach(function(item){item.innerHTML=_5a7;});}else{dojo.byId(node).innerHTML=_5a7;}return this;});},render:function(_5a9,_5aa){_5aa=_5aa||this.getBuffer();_5a9=_5a9||new dd._Context({});return this.nodelist.render(_5a9,_5aa)+"";},getBuffer:function(){return new dojox.string.Builder();}});var qfRe=/\{\{\s*(.+?)\s*\}\}/g;dd.quickFilter=function(str){if(!str){return new dd._NodeList();}if(str.indexOf("{%")==-1){return new dd._QuickNodeList(dojox.string.tokenize(str,qfRe,function(_5ad){return new dd._Filter(_5ad);}));}};dd._QuickNodeList=dojo.extend(function(_5ae){this.contents=_5ae;},{render:function(_5af,_5b0){for(var i=0,l=this.contents.length;i<l;i++){if(this.contents[i].resolve){_5b0=_5b0.concat(this.contents[i].resolve(_5af));}else{_5b0=_5b0.concat(this.contents[i]);}}return _5b0;},dummyRender:function(_5b3){return this.render(_5b3,dd.Template.prototype.getBuffer()).toString();},clone:function(_5b4){return this;}});dd._Filter=dojo.extend(function(_5b5){if(!_5b5){throw new Error("Filter must be called with variable name");}this.contents=_5b5;var _5b6=this._cache[_5b5];if(_5b6){this.key=_5b6[0];this.filters=_5b6[1];}else{this.filters=[];dojox.string.tokenize(_5b5,this._re,this._tokenize,this);this._cache[_5b5]=[this.key,this.filters];}},{_cache:{},_re:/(?:^_\("([^\\"]*(?:\\.[^\\"])*)"\)|^"([^\\"]*(?:\\.[^\\"]*)*)"|^([a-zA-Z0-9_.]+)|\|(\w+)(?::(?:_\("([^\\"]*(?:\\.[^\\"])*)"\)|"([^\\"]*(?:\\.[^\\"]*)*)"|([a-zA-Z0-9_.]+)|'([^\\']*(?:\\.[^\\']*)*)'))?|^'([^\\']*(?:\\.[^\\']*)*)')/g,_values:{0:"\"",1:"\"",2:"",8:"\""},_args:{4:"\"",5:"\"",6:"",7:"'"},_tokenize:function(){var pos,arg;for(var i=0,has=[];i<arguments.length;i++){has[i]=(typeof arguments[i]!="undefined"&&typeof arguments[i]=="string"&&arguments[i]);}if(!this.key){for(pos in this._values){if(has[pos]){this.key=this._values[pos]+arguments[pos]+this._values[pos];break;}}}else{for(pos in this._args){if(has[pos]){var _5bb=arguments[pos];if(this._args[pos]=="'"){_5bb=_5bb.replace(/\\'/g,"'");}else{if(this._args[pos]=="\""){_5bb=_5bb.replace(/\\"/g,"\"");}}arg=[!this._args[pos],_5bb];break;}}var fn=ddt.getFilter(arguments[3]);if(!dojo.isFunction(fn)){throw new Error(arguments[3]+" is not registered as a filter");}this.filters.push([fn,arg]);}},getExpression:function(){return this.contents;},resolve:function(_5bd){if(typeof this.key=="undefined"){return "";}var str=this.resolvePath(this.key,_5bd);for(var i=0,_5c0;_5c0=this.filters[i];i++){if(_5c0[1]){if(_5c0[1][0]){str=_5c0[0](str,this.resolvePath(_5c0[1][1],_5bd));}else{str=_5c0[0](str,_5c0[1][1]);}}else{str=_5c0[0](str);}}return str;},resolvePath:function(path,_5c2){var _5c3,_5c4;var _5c5=path.charAt(0);var last=path.slice(-1);if(!isNaN(parseInt(_5c5))){_5c3=(path.indexOf(".")==-1)?parseInt(path):parseFloat(path);}else{if(_5c5=="\""&&_5c5==last){_5c3=path.slice(1,-1);}else{if(path=="true"){return true;}if(path=="false"){return false;}if(path=="null"||path=="None"){return null;}_5c4=path.split(".");_5c3=_5c2.get(_5c4[0]);if(dojo.isFunction(_5c3)){var self=_5c2.getThis&&_5c2.getThis();if(_5c3.alters_data){_5c3="";}else{if(self){_5c3=_5c3.call(self);}else{_5c3="";}}}for(var i=1;i<_5c4.length;i++){var part=_5c4[i];if(_5c3){var base=_5c3;if(dojo.isObject(_5c3)&&part=="items"&&typeof _5c3[part]=="undefined"){var _5cb=[];for(var key in _5c3){_5cb.push([key,_5c3[key]]);}_5c3=_5cb;continue;}if(_5c3.get&&dojo.isFunction(_5c3.get)&&_5c3.get.safe){_5c3=_5c3.get(part);}else{if(typeof _5c3[part]=="undefined"){_5c3=_5c3[part];break;}else{_5c3=_5c3[part];}}if(dojo.isFunction(_5c3)){if(_5c3.alters_data){_5c3="";}else{_5c3=_5c3.call(base);}}else{if(_5c3 instanceof Date){_5c3=dd._Context.prototype._normalize(_5c3);}}}else{return "";}}}}return _5c3;}});dd._TextNode=dd._Node=dojo.extend(function(obj){this.contents=obj;},{set:function(data){this.contents=data;return this;},render:function(_5cf,_5d0){return _5d0.concat(this.contents);},isEmpty:function(){return !dojo.trim(this.contents);},clone:function(){return this;}});dd._NodeList=dojo.extend(function(_5d1){this.contents=_5d1||[];this.last="";},{push:function(node){this.contents.push(node);return this;},concat:function(_5d3){this.contents=this.contents.concat(_5d3);return this;},render:function(_5d4,_5d5){for(var i=0;i<this.contents.length;i++){_5d5=this.contents[i].render(_5d4,_5d5);if(!_5d5){throw new Error("Template must return buffer");}}return _5d5;},dummyRender:function(_5d7){return this.render(_5d7,dd.Template.prototype.getBuffer()).toString();},unrender:function(){return arguments[1];},clone:function(){return this;},rtrim:function(){while(1){i=this.contents.length-1;if(this.contents[i] instanceof dd._TextNode&&this.contents[i].isEmpty()){this.contents.pop();}else{break;}}return this;}});dd._VarNode=dojo.extend(function(str){this.contents=new dd._Filter(str);},{render:function(_5d9,_5da){var str=this.contents.resolve(_5d9);if(!str.safe){str=dd._base.escape(""+str);}return _5da.concat(str);}});dd._noOpNode=new function(){this.render=this.unrender=function(){return arguments[1];};this.clone=function(){return this;};};dd._Parser=dojo.extend(function(_5dc){this.contents=_5dc;},{i:0,parse:function(_5dd){var _5de={};_5dd=_5dd||[];for(var i=0;i<_5dd.length;i++){_5de[_5dd[i]]=true;}var _5e0=new dd._NodeList();while(this.i<this.contents.length){token=this.contents[this.i++];if(typeof token=="string"){_5e0.push(new dd._TextNode(token));}else{var type=token[0];var text=token[1];if(type==dd.TOKEN_VAR){_5e0.push(new dd._VarNode(text));}else{if(type==dd.TOKEN_BLOCK){if(_5de[text]){--this.i;return _5e0;}var cmd=text.split(/\s+/g);if(cmd.length){cmd=cmd[0];var fn=ddt.getTag(cmd);if(fn){_5e0.push(fn(this,new dd.Token(type,text)));}}}}}}if(_5dd.length){throw new Error("Could not find closing tag(s): "+_5dd.toString());}this.contents.length=0;return _5e0;},next_token:function(){var _5e5=this.contents[this.i++];return new dd.Token(_5e5[0],_5e5[1]);},delete_first_token:function(){this.i++;},skip_past:function(_5e6){while(this.i<this.contents.length){var _5e7=this.contents[this.i++];if(_5e7[0]==dd.TOKEN_BLOCK&&_5e7[1]==_5e6){return;}}throw new Error("Unclosed tag found when looking for "+_5e6);},create_variable_node:function(expr){return new dd._VarNode(expr);},create_text_node:function(expr){return new dd._TextNode(expr||"");},getTemplate:function(file){return new dd.Template(file);}});dd.register={_registry:{attributes:[],tags:[],filters:[]},get:function(_5eb,name){var _5ed=dd.register._registry[_5eb+"s"];for(var i=0,_5ef;_5ef=_5ed[i];i++){if(typeof _5ef[0]=="string"){if(_5ef[0]==name){return _5ef;}}else{if(name.match(_5ef[0])){return _5ef;}}}},getAttributeTags:function(){var tags=[];var _5f1=dd.register._registry.attributes;for(var i=0,_5f3;_5f3=_5f1[i];i++){if(_5f3.length==3){tags.push(_5f3);}else{var fn=dojo.getObject(_5f3[1]);if(fn&&dojo.isFunction(fn)){_5f3.push(fn);tags.push(_5f3);}}}return tags;},_any:function(type,base,_5f7){for(var path in _5f7){for(var i=0,fn;fn=_5f7[path][i];i++){var key=fn;if(dojo.isArray(fn)){key=fn[0];fn=fn[1];}if(typeof key=="string"){if(key.substr(0,5)=="attr:"){var attr=fn;if(attr.substr(0,5)=="attr:"){attr=attr.slice(5);}dd.register._registry.attributes.push([attr.toLowerCase(),base+"."+path+"."+attr]);}key=key.toLowerCase();}dd.register._registry[type].push([key,fn,base+"."+path]);}}},tags:function(base,_5fe){dd.register._any("tags",base,_5fe);},filters:function(base,_600){dd.register._any("filters",base,_600);}};var _601=/&/g;var _602=/</g;var _603=/>/g;var _604=/'/g;var _605=/"/g;dd._base.escape=function(_606){return dd.mark_safe(_606.replace(_601,"&amp;").replace(_602,"&lt;").replace(_603,"&gt;").replace(_605,"&quot;").replace(_604,"&#39;"));};dd._base.safe=function(_607){if(typeof _607=="string"){_607=new String(_607);}if(typeof _607=="object"){_607.safe=true;}return _607;};dd.mark_safe=dd._base.safe;dd.register.tags("dojox.dtl.tag",{"date":["now"],"logic":["if","for","ifequal","ifnotequal"],"loader":["extends","block","include","load","ssi"],"misc":["comment","debug","filter","firstof","spaceless","templatetag","widthratio","with"],"loop":["cycle","ifchanged","regroup"]});dd.register.filters("dojox.dtl.filter",{"dates":["date","time","timesince","timeuntil"],"htmlstrings":["linebreaks","linebreaksbr","removetags","striptags"],"integers":["add","get_digit"],"lists":["dictsort","dictsortreversed","first","join","length","length_is","random","slice","unordered_list"],"logic":["default","default_if_none","divisibleby","yesno"],"misc":["filesizeformat","pluralize","phone2numeric","pprint"],"strings":["addslashes","capfirst","center","cut","fix_ampersands","floatformat","iriencode","linenumbers","ljust","lower","make_list","rjust","slugify","stringformat","title","truncatewords","truncatewords_html","upper","urlencode","urlize","urlizetrunc","wordcount","wordwrap"]});dd.register.filters("dojox.dtl",{"_base":["escape","safe"]});})();}if(!dojo._hasResource["dojox.dtl"]){dojo._hasResource["dojox.dtl"]=true;dojo.provide("dojox.dtl");}if(!dojo._hasResource["dojox.dtl.Context"]){dojo._hasResource["dojox.dtl.Context"]=true;dojo.provide("dojox.dtl.Context");dojox.dtl.Context=dojo.extend(function(dict){this._this={};dojox.dtl._Context.call(this,dict);},dojox.dtl._Context.prototype,{getKeys:function(){var keys=[];for(var key in this){if(this.hasOwnProperty(key)&&key!="_dicts"&&key!="_this"){keys.push(key);}}return keys;},extend:function(obj){return dojo.delegate(this,obj);},filter:function(_60c){var _60d=new dojox.dtl.Context();var keys=[];var i,arg;if(_60c instanceof dojox.dtl.Context){keys=_60c.getKeys();}else{if(typeof _60c=="object"){for(var key in _60c){keys.push(key);}}else{for(i=0;arg=arguments[i];i++){if(typeof arg=="string"){keys.push(arg);}}}}for(i=0,key;key=keys[i];i++){_60d[key]=this[key];}return _60d;},setThis:function(_612){this._this=_612;},getThis:function(){return this._this;},hasKey:function(key){if(typeof this[key]!="undefined"){return true;}for(var i=0,dict;dict=this._dicts[i];i++){if(typeof dict[key]!="undefined"){return true;}}return false;}});}if(!dojo._hasResource["dojox.dtl._Templated"]){dojo._hasResource["dojox.dtl._Templated"]=true;dojo.provide("dojox.dtl._Templated");dojo.declare("dojox.dtl._Templated",dijit._Templated,{_dijitTemplateCompat:false,buildRendering:function(){var node;if(this.domNode&&!this._template){return;}if(!this._template){var t=this.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache);if(t instanceof dojox.dtl.Template){this._template=t;}else{node=t;}}if(!node){var _618=dojo._toDom(this._template.render(new dojox.dtl._Context(this)));if(_618.nodeType!==1&&_618.nodeType!==3){for(var i=0,l=_618.childNodes.length;i<l;++i){node=_618.childNodes[i];if(node.nodeType==1){break;}}}else{node=_618;}}this._attachTemplateNodes(node);if(this.widgetsInTemplate){var _61b=dojo.parser.parse(node);this._attachTemplateNodes(_61b,function(n,p){return n[p];});}if(this.domNode){dojo.place(node,this.domNode,"before");this.destroyDescendants();dojo.destroy(this.domNode);}this.domNode=node;this._fillContent(this.srcNodeRef);},_templateCache:{},getCachedTemplate:function(_61e,_61f,_620){var _621=this._templateCache;var key=_61f||_61e;if(_621[key]){return _621[key];}_61f=dojo.string.trim(_61f||dijit._Templated._sanitizeTemplateString(dojo._getText(_61e)));if(this._dijitTemplateCompat&&(_620||_61f.match(/\$\{([^\}]+)\}/g))){_61f=this._stringRepl(_61f);}if(_620||!_61f.match(/\{[{%]([^\}]+)[%}]\}/g)){return _621[key]=dojo._toDom(_61f);}else{return _621[key]=new dojox.dtl.Template(_61f);}},render:function(){this.buildRendering();}});}if(!dojo._hasResource["dijit.form._FormWidget"]){dojo._hasResource["dijit.form._FormWidget"]=true;dojo.provide("dijit.form._FormWidget");dojo.declare("dijit.form._FormWidget",[dijit._Widget,dijit._Templated],{baseClass:"",name:"",alt:"",value:"",type:"text",tabIndex:"0",disabled:false,readOnly:false,intermediateChanges:false,scrollOnFocus:true,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{value:"focusNode",disabled:"focusNode",readOnly:"focusNode",id:"focusNode",tabIndex:"focusNode",alt:"focusNode"}),postMixInProperties:function(){this.nameAttrSetting=this.name?("name='"+this.name+"'"):"";this.inherited(arguments);},_setDisabledAttr:function(_623){this.disabled=_623;dojo.attr(this.focusNode,"disabled",_623);dijit.setWaiState(this.focusNode,"disabled",_623);if(_623){this._hovering=false;this._active=false;this.focusNode.removeAttribute("tabIndex");}else{this.focusNode.setAttribute("tabIndex",this.tabIndex);}this._setStateClass();},setDisabled:function(_624){dojo.deprecated("setDisabled("+_624+") is deprecated. Use attr('disabled',"+_624+") instead.","","2.0");this.attr("disabled",_624);},_onFocus:function(e){if(this.scrollOnFocus){dijit.scrollIntoView(this.domNode);}this.inherited(arguments);},_onMouse:function(_626){var _627=_626.currentTarget;if(_627&&_627.getAttribute){this.stateModifier=_627.getAttribute("stateModifier")||"";}if(!this.disabled){switch(_626.type){case "mouseenter":case "mouseover":this._hovering=true;this._active=this._mouseDown;break;case "mouseout":case "mouseleave":this._hovering=false;this._active=false;break;case "mousedown":this._active=true;this._mouseDown=true;var _628=this.connect(dojo.body(),"onmouseup",function(){if(this._mouseDown&&this.isFocusable()){this.focus();}this._active=false;this._mouseDown=false;this._setStateClass();this.disconnect(_628);});break;}this._setStateClass();}},isFocusable:function(){return !this.disabled&&!this.readOnly&&this.focusNode&&(dojo.style(this.domNode,"display")!="none");},focus:function(){dijit.focus(this.focusNode);},_setStateClass:function(){var _629=this.baseClass.split(" ");function _62a(_62b){_629=_629.concat(dojo.map(_629,function(c){return c+_62b;}),"dijit"+_62b);};if(this.checked){_62a("Checked");}if(this.state){_62a(this.state);}if(this.selected){_62a("Selected");}if(this.disabled){_62a("Disabled");}else{if(this.readOnly){_62a("ReadOnly");}else{if(this._active){_62a(this.stateModifier+"Active");}else{if(this._focused){_62a("Focused");}if(this._hovering){_62a(this.stateModifier+"Hover");}}}}var tn=this.stateNode||this.domNode,_62e={};dojo.forEach(tn.className.split(" "),function(c){_62e[c]=true;});if("_stateClasses" in this){dojo.forEach(this._stateClasses,function(c){delete _62e[c];});}dojo.forEach(_629,function(c){_62e[c]=true;});var _632=[];for(var c in _62e){_632.push(c);}tn.className=_632.join(" ");this._stateClasses=_629;},compare:function(val1,val2){if((typeof val1=="number")&&(typeof val2=="number")){return (isNaN(val1)&&isNaN(val2))?0:(val1-val2);}else{if(val1>val2){return 1;}else{if(val1<val2){return -1;}else{return 0;}}}},onChange:function(_636){},_onChangeActive:false,_handleOnChange:function(_637,_638){this._lastValue=_637;if(this._lastValueReported==undefined&&(_638===null||!this._onChangeActive)){this._resetValue=this._lastValueReported=_637;}if((this.intermediateChanges||_638||_638===undefined)&&((typeof _637!=typeof this._lastValueReported)||this.compare(_637,this._lastValueReported)!=0)){this._lastValueReported=_637;if(this._onChangeActive){this.onChange(_637);}}},create:function(){this.inherited(arguments);this._onChangeActive=true;this._setStateClass();},destroy:function(){if(this._layoutHackHandle){clearTimeout(this._layoutHackHandle);}this.inherited(arguments);},setValue:function(_639){dojo.deprecated("dijit.form._FormWidget:setValue("+_639+") is deprecated.  Use attr('value',"+_639+") instead.","","2.0");this.attr("value",_639);},getValue:function(){dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use attr('value') instead.","","2.0");return this.attr("value");},_layoutHack:function(){if(dojo.isFF==2&&!this._layoutHackHandle){var node=this.domNode;var old=node.style.opacity;node.style.opacity="0.999";this._layoutHackHandle=setTimeout(dojo.hitch(this,function(){this._layoutHackHandle=null;node.style.opacity=old;}),0);}}});dojo.declare("dijit.form._FormValueWidget",dijit.form._FormWidget,{attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:""}),postCreate:function(){if(dojo.isIE||dojo.isWebKit){this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);}if(this._resetValue===undefined){this._resetValue=this.value;}},_setValueAttr:function(_63c,_63d){this.value=_63c;this._handleOnChange(_63c,_63d);},_getValueAttr:function(_63e){return this._lastValue;},undo:function(){this._setValueAttr(this._lastValueReported,false);},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},_onKeyDown:function(e){if(e.keyCode==dojo.keys.ESCAPE&&!e.ctrlKey&&!e.altKey){var te;if(dojo.isIE){e.preventDefault();te=document.createEventObject();te.keyCode=dojo.keys.ESCAPE;te.shiftKey=e.shiftKey;e.srcElement.fireEvent("onkeypress",te);}else{if(dojo.isWebKit){te=document.createEvent("Events");te.initEvent("keypress",true,true);te.keyCode=dojo.keys.ESCAPE;te.shiftKey=e.shiftKey;e.target.dispatchEvent(te);}}}}});}if(!dojo._hasResource["dijit.form.Button"]){dojo._hasResource["dijit.form.Button"]=true;dojo.provide("dijit.form.Button");dojo.declare("dijit.form.Button",dijit.form._FormWidget,{label:"",showLabel:true,iconClass:"",type:"button",baseClass:"dijitButton",templateString:"<span class=\"dijit dijitReset dijitLeft dijitInline\"\n\tdojoAttachEvent=\"ondijitclick:_onButtonClick,onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"\n\t><span class=\"dijitReset dijitRight dijitInline\"\n\t\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\t\t><button class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\t\tdojoAttachPoint=\"titleNode,focusNode\" \n\t\t\t\t${nameAttrSetting} type=\"${type}\" value=\"${value}\" waiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t\t><span class=\"dijitReset dijitInline\" dojoAttachPoint=\"iconNode\" \n\t\t\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">&#10003;</span \n\t\t\t\t></span \n\t\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" \n\t\t\t\t\tid=\"${id}_label\"  \n\t\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t\t></span\n\t\t\t></button\n\t\t></span\n\t></span\n></span>\n",attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),_onClick:function(e){if(this.disabled||this.readOnly){return false;}this._clicked();return this.onClick(e);},_onButtonClick:function(e){if(e.type!="click"&&!(this.type=="submit"||this.type=="reset")){dojo.stopEvent(e);}if(this._onClick(e)===false){e.preventDefault();}else{if(this.type=="submit"&&!this.focusNode.form){for(var node=this.domNode;node.parentNode;node=node.parentNode){var _644=dijit.byNode(node);if(_644&&typeof _644._onSubmit=="function"){_644._onSubmit(e);break;}}}}},_setValueAttr:function(_645){var attr=this.attributeMap.value||"";if(this[attr.node||attr||"domNode"].tagName=="BUTTON"){if(_645!=this.value){console.debug("Cannot change the value attribute on a Button widget.");}}},_fillContent:function(_647){if(_647&&!("label" in this.params)){this.attr("label",_647.innerHTML);}},postCreate:function(){if(this.showLabel==false){dojo.addClass(this.containerNode,"dijitDisplayNone");}dojo.setSelectable(this.focusNode,false);this.inherited(arguments);},onClick:function(e){return true;},_clicked:function(e){},setLabel:function(_64a){dojo.deprecated("dijit.form.Button.setLabel() is deprecated.  Use attr('label', ...) instead.","","2.0");this.attr("label",_64a);},_setLabelAttr:function(_64b){this.containerNode.innerHTML=this.label=_64b;this._layoutHack();if(this.showLabel==false&&!this.params.title){this.titleNode.title=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||"");}}});dojo.declare("dijit.form.DropDownButton",[dijit.form.Button,dijit._Container],{baseClass:"dijitDropDownButton",templateString:"<span class=\"dijit dijitReset dijitLeft dijitInline\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse,onclick:_onDropDownClick,onkeydown:_onDropDownKeydown,onblur:_onDropDownBlur,onkeypress:_onKey\"\n\t><span class='dijitReset dijitRight dijitInline'\n\t\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\t\t><button class=\"dijitReset dijitStretch dijitButtonContents\" \n\t\t\t\t${nameAttrSetting} type=\"${type}\" value=\"${value}\"\n\t\t\t\tdojoAttachPoint=\"focusNode,titleNode\" \n\t\t\t\twaiRole=\"button\" waiState=\"haspopup-true,labelledby-${id}_label\"\n\t\t\t\t><span class=\"dijitReset dijitInline\" \n\t\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t\t></span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"  \n\t\t\t\t\tdojoAttachPoint=\"containerNode,popupStateNode\" \n\t\t\t\t\tid=\"${id}_label\"\n\t\t\t\t></span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\">&thinsp;</span\n\t\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">&#9660;</span\n\t\t\t></button\n\t\t></span\n\t></span\n></span>\n",_fillContent:function(){if(this.srcNodeRef){var _64c=dojo.query("*",this.srcNodeRef);dijit.form.DropDownButton.superclass._fillContent.call(this,_64c[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}if(!this.dropDown){var _64d=dojo.query("[widgetId]",this.dropDownContainer)[0];this.dropDown=dijit.byNode(_64d);delete this.dropDownContainer;}dijit.popup.prepare(this.dropDown.domNode);this.inherited(arguments);},destroyDescendants:function(){if(this.dropDown){this.dropDown.destroyRecursive();delete this.dropDown;}this.inherited(arguments);},_onArrowClick:function(e){if(this.disabled||this.readOnly){return;}this._toggleDropDown();},_onDropDownClick:function(e){var _650=dojo.isFF&&dojo.isFF<3&&navigator.appVersion.indexOf("Macintosh")!=-1;if(!_650||e.detail!=0||this._seenKeydown){this._onArrowClick(e);}this._seenKeydown=false;},_onDropDownKeydown:function(e){this._seenKeydown=true;},_onDropDownBlur:function(e){this._seenKeydown=false;},_onKey:function(e){if(this.disabled||this.readOnly){return;}if(e.charOrCode==dojo.keys.DOWN_ARROW){if(!this.dropDown||this.dropDown.domNode.style.visibility=="hidden"){dojo.stopEvent(e);this._toggleDropDown();}}},_onBlur:function(){this._closeDropDown();this.inherited(arguments);},_toggleDropDown:function(){if(this.disabled||this.readOnly){return;}dijit.focus(this.popupStateNode);var _654=this.dropDown;if(!_654){return;}if(!this._opened){if(_654.href&&!_654.isLoaded){var self=this;var _656=dojo.connect(_654,"onLoad",function(){dojo.disconnect(_656);self._openDropDown();});_654.refresh();return;}else{this._openDropDown();}}else{this._closeDropDown();}},_openDropDown:function(){var _657=this.dropDown;var _658=_657.domNode.style.width;var self=this;dijit.popup.open({parent:this,popup:_657,around:this.domNode,orient:this.isLeftToRight()?{"BL":"TL","BR":"TR","TL":"BL","TR":"BR"}:{"BR":"TR","BL":"TL","TR":"BR","TL":"BL"},onExecute:function(){self._closeDropDown(true);},onCancel:function(){self._closeDropDown(true);},onClose:function(){_657.domNode.style.width=_658;self.popupStateNode.removeAttribute("popupActive");self._opened=false;}});if(this.domNode.offsetWidth>_657.domNode.offsetWidth){var _65a=null;if(!this.isLeftToRight()){_65a=_657.domNode.parentNode;var _65b=_65a.offsetLeft+_65a.offsetWidth;}dojo.marginBox(_657.domNode,{w:this.domNode.offsetWidth});if(_65a){_65a.style.left=_65b-this.domNode.offsetWidth+"px";}}this.popupStateNode.setAttribute("popupActive","true");this._opened=true;if(_657.focus){_657.focus();}},_closeDropDown:function(_65c){if(this._opened){dijit.popup.close(this.dropDown);if(_65c){this.focus();}this._opened=false;}}});dojo.declare("dijit.form.ComboButton",dijit.form.DropDownButton,{templateString:"<table class='dijit dijitReset dijitInline dijitLeft'\n\tcellspacing='0' cellpadding='0' waiRole=\"presentation\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\"\n\t\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick,onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"  dojoAttachPoint=\"titleNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline\" dojoAttachPoint=\"iconNode\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" waiRole=\"presentation\"></div\n\t\t></td\n\t\t><td class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton'\n\t\t\tdojoAttachPoint=\"popupStateNode,focusNode\"\n\t\t\tdojoAttachEvent=\"ondijitclick:_onArrowClick, onkeypress:_onKey,onmouseenter:_onMouse,onmouseleave:_onMouse\"\n\t\t\tstateModifier=\"DownArrow\"\n\t\t\ttitle=\"${optionsTitle}\" ${nameAttrSetting}\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\">&thinsp;</div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">&#9660;</div\n\t\t></td\n\t></tr></tbody\n></table>\n",attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{id:"",tabIndex:["focusNode","titleNode"]}),optionsTitle:"",baseClass:"dijitComboButton",_focusedNode:null,postCreate:function(){this.inherited(arguments);this._focalNodes=[this.titleNode,this.popupStateNode];dojo.forEach(this._focalNodes,dojo.hitch(this,function(node){if(dojo.isIE){this.connect(node,"onactivate",this._onNodeFocus);this.connect(node,"ondeactivate",this._onNodeBlur);}else{this.connect(node,"onfocus",this._onNodeFocus);this.connect(node,"onblur",this._onNodeBlur);}}));},focusFocalNode:function(node){this._focusedNode=node;dijit.focus(node);},hasNextFocalNode:function(){return this._focusedNode!==this.getFocalNodes()[1];},focusNext:function(){this._focusedNode=this.getFocalNodes()[this._focusedNode?1:0];dijit.focus(this._focusedNode);},hasPrevFocalNode:function(){return this._focusedNode!==this.getFocalNodes()[0];},focusPrev:function(){this._focusedNode=this.getFocalNodes()[this._focusedNode?0:1];dijit.focus(this._focusedNode);},getFocalNodes:function(){return this._focalNodes;},_onNodeFocus:function(evt){this._focusedNode=evt.currentTarget;var fnc=this._focusedNode==this.focusNode?"dijitDownArrowButtonFocused":"dijitButtonContentsFocused";dojo.addClass(this._focusedNode,fnc);},_onNodeBlur:function(evt){var fnc=evt.currentTarget==this.focusNode?"dijitDownArrowButtonFocused":"dijitButtonContentsFocused";dojo.removeClass(evt.currentTarget,fnc);},_onBlur:function(){this.inherited(arguments);this._focusedNode=null;}});dojo.declare("dijit.form.ToggleButton",dijit.form.Button,{baseClass:"dijitToggleButton",checked:false,attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{checked:"focusNode"}),_clicked:function(evt){this.attr("checked",!this.checked);},_setCheckedAttr:function(_664){this.checked=_664;dojo.attr(this.focusNode||this.domNode,"checked",_664);dijit.setWaiState(this.focusNode||this.domNode,"pressed",_664);this._setStateClass();this._handleOnChange(_664,true);},setChecked:function(_665){dojo.deprecated("setChecked("+_665+") is deprecated. Use attr('checked',"+_665+") instead.","","2.0");this.attr("checked",_665);},reset:function(){this._hasBeenBlurred=false;this.attr("checked",this.params.checked||false);}});}if(!dojo._hasResource["dijit.form.ToggleButton"]){dojo._hasResource["dijit.form.ToggleButton"]=true;dojo.provide("dijit.form.ToggleButton");}if(!dojo._hasResource["dijit._KeyNavContainer"]){dojo._hasResource["dijit._KeyNavContainer"]=true;dojo.provide("dijit._KeyNavContainer");dojo.declare("dijit._KeyNavContainer",[dijit._Container],{tabIndex:"0",_keyNavCodes:{},connectKeyNavHandlers:function(_666,_667){var _668=this._keyNavCodes={};var prev=dojo.hitch(this,this.focusPrev);var next=dojo.hitch(this,this.focusNext);dojo.forEach(_666,function(code){_668[code]=prev;});dojo.forEach(_667,function(code){_668[code]=next;});this.connect(this.domNode,"onkeypress","_onContainerKeypress");this.connect(this.domNode,"onfocus","_onContainerFocus");},startupKeyNavChildren:function(){dojo.forEach(this.getChildren(),dojo.hitch(this,"_startupChild"));},addChild:function(_66d,_66e){dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);this._startupChild(_66d);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild());},focusNext:function(){if(this.focusedChild&&this.focusedChild.hasNextFocalNode&&this.focusedChild.hasNextFocalNode()){this.focusedChild.focusNext();return;}var _66f=this._getNextFocusableChild(this.focusedChild,1);if(_66f.getFocalNodes){this.focusChild(_66f,_66f.getFocalNodes()[0]);}else{this.focusChild(_66f);}},focusPrev:function(){if(this.focusedChild&&this.focusedChild.hasPrevFocalNode&&this.focusedChild.hasPrevFocalNode()){this.focusedChild.focusPrev();return;}var _670=this._getNextFocusableChild(this.focusedChild,-1);if(_670.getFocalNodes){var _671=_670.getFocalNodes();this.focusChild(_670,_671[_671.length-1]);}else{this.focusChild(_670);}},focusChild:function(_672,node){if(_672){if(this.focusedChild&&_672!==this.focusedChild){this._onChildBlur(this.focusedChild);}this.focusedChild=_672;if(node&&_672.focusFocalNode){_672.focusFocalNode(node);}else{_672.focus();}}},_startupChild:function(_674){if(_674.getFocalNodes){dojo.forEach(_674.getFocalNodes(),function(node){dojo.attr(node,"tabindex",-1);this._connectNode(node);},this);}else{var node=_674.focusNode||_674.domNode;if(_674.isFocusable()){dojo.attr(node,"tabindex",-1);}this._connectNode(node);}},_connectNode:function(node){this.connect(node,"onfocus","_onNodeFocus");this.connect(node,"onblur","_onNodeBlur");},_onContainerFocus:function(evt){if(evt.target!==this.domNode){return;}this.focusFirstChild();dojo.removeAttr(this.domNode,"tabIndex");},_onBlur:function(evt){if(this.tabIndex){dojo.attr(this.domNode,"tabindex",this.tabIndex);}},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}var func=this._keyNavCodes[evt.charOrCode];if(func){func();dojo.stopEvent(evt);}},_onNodeFocus:function(evt){var _67d=dijit.getEnclosingWidget(evt.target);if(_67d&&_67d.isFocusable()){this.focusedChild=_67d;}dojo.stopEvent(evt);},_onNodeBlur:function(evt){dojo.stopEvent(evt);},_onChildBlur:function(_67f){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getNextFocusableChild:function(_680,dir){if(_680){_680=this._getSiblingOfChild(_680,dir);}var _682=this.getChildren();for(var i=0;i<_682.length;i++){if(!_680){_680=_682[(dir>0)?0:(_682.length-1)];}if(_680.isFocusable()){return _680;}_680=this._getSiblingOfChild(_680,dir);}return null;}});}if(!dojo._hasResource["dijit.MenuItem"]){dojo._hasResource["dijit.MenuItem"]=true;dojo.provide("dijit.MenuItem");dojo.declare("dijit.MenuItem",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon\" dojoAttachPoint=\"iconNode\">\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\">\n\t\t<div dojoAttachPoint=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\">\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n",attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),label:"",iconClass:"",accelKey:"",disabled:false,_fillContent:function(_684){if(_684&&!("label" in this.params)){this.attr("label",_684.innerHTML);}},postCreate:function(){dojo.setSelectable(this.domNode,false);dojo.attr(this.containerNode,"id",this.id+"_text");dijit.setWaiState(this.domNode,"labelledby",this.id+"_text");},_onHover:function(){dojo.addClass(this.domNode,"dijitMenuItemHover");this.getParent().onItemHover(this);},_onUnhover:function(){dojo.removeClass(this.domNode,"dijitMenuItemHover");this.getParent().onItemUnhover(this);},_onClick:function(evt){this.getParent().onItemClick(this,evt);dojo.stopEvent(evt);},onClick:function(evt){},focus:function(){try{dijit.focus(this.focusNode);}catch(e){}},_onFocus:function(){this._setSelected(true);},_setSelected:function(_687){dojo.toggleClass(this.domNode,"dijitMenuItemSelected",_687);},setLabel:function(_688){dojo.deprecated("dijit.MenuItem.setLabel() is deprecated.  Use attr('label', ...) instead.","","2.0");this.attr("label",_688);},setDisabled:function(_689){dojo.deprecated("dijit.Menu.setDisabled() is deprecated.  Use attr('disabled', bool) instead.","","2.0");this.attr("disabled",_689);},_setDisabledAttr:function(_68a){this.disabled=_68a;dojo[_68a?"addClass":"removeClass"](this.domNode,"dijitMenuItemDisabled");dijit.setWaiState(this.focusNode,"disabled",_68a?"true":"false");},_setAccelKeyAttr:function(_68b){this.accelKey=_68b;this.accelKeyNode.style.display=_68b?"":"none";this.accelKeyNode.innerHTML=_68b;dojo.attr(this.containerNode,"colSpan",_68b?"1":"2");}});}if(!dojo._hasResource["dijit.PopupMenuItem"]){dojo._hasResource["dijit.PopupMenuItem"]=true;dojo.provide("dijit.PopupMenuItem");dojo.declare("dijit.PopupMenuItem",dijit.MenuItem,{_fillContent:function(){if(this.srcNodeRef){var _68c=dojo.query("*",this.srcNodeRef);dijit.PopupMenuItem.superclass._fillContent.call(this,_68c[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}this.inherited(arguments);if(!this.popup){var node=dojo.query("[widgetId]",this.dropDownContainer)[0];this.popup=dijit.byNode(node);}dojo.body().appendChild(this.popup.domNode);this.popup.domNode.style.display="none";if(this.arrowWrapper){dojo.style(this.arrowWrapper,"visibility","");}dijit.setWaiState(this.focusNode,"haspopup","true");},destroyDescendants:function(){if(this.popup){this.popup.destroyRecursive();delete this.popup;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.CheckedMenuItem"]){dojo._hasResource["dijit.CheckedMenuItem"]=true;dojo.provide("dijit.CheckedMenuItem");dojo.declare("dijit.CheckedMenuItem",dijit.MenuItem,{templateString:"<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" dojoAttachPoint=\"iconNode\">\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">&#10003;</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\">\n\t</td>\n</tr>\n",checked:false,_setCheckedAttr:function(_68e){dojo.toggleClass(this.domNode,"dijitCheckedMenuItemChecked",_68e);dijit.setWaiState(this.domNode,"checked",_68e);this.checked=_68e;},onChange:function(_68f){},_onClick:function(e){if(!this.disabled){this.attr("checked",!this.checked);this.onChange(this.checked);}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.MenuSeparator"]){dojo._hasResource["dijit.MenuSeparator"]=true;dojo.provide("dijit.MenuSeparator");dojo.declare("dijit.MenuSeparator",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:"<tr class=\"dijitMenuSeparator\">\n\t<td colspan=\"4\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>\n",postCreate:function(){dojo.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});}if(!dojo._hasResource["dijit.Menu"]){dojo._hasResource["dijit.Menu"]=true;dojo.provide("dijit.Menu");dojo.declare("dijit._MenuBase",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{parentMenu:null,popupDelay:500,startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_691){_691.startup();});this.startupKeyNavChildren();this.inherited(arguments);},onExecute:function(){},onCancel:function(_692){},_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.focusedChild._onClick(evt);}else{var _694=this._getTopMenu();if(_694&&_694._isMenuBar){_694.focusNext();}}},onItemHover:function(item){if(this.isActive){this.focusChild(item);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=setTimeout(dojo.hitch(this,"_openPopup"),this.popupDelay);}}},_onChildBlur:function(item){item._setSelected(false);dijit.popup.close(item.popup);this._stopPopupTimer();},onItemUnhover:function(item){if(this.isActive){this._stopPopupTimer();}},_stopPopupTimer:function(){if(this.hover_timer){clearTimeout(this.hover_timer);this.hover_timer=null;}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu){}return top;},onItemClick:function(item,evt){if(item.disabled){return false;}this.focusChild(item);if(item.popup){if(!this.is_open){this._openPopup();}}else{this.onExecute();item.onClick(evt);}},_openPopup:function(){this._stopPopupTimer();var _69b=this.focusedChild;var _69c=_69b.popup;if(_69c.isShowingNow){return;}_69c.parentMenu=this;var self=this;dijit.popup.open({parent:this,popup:_69c,around:_69b.domNode,orient:this._orient||(this.isLeftToRight()?{"TR":"TL","TL":"TR"}:{"TL":"TR","TR":"TL"}),onCancel:function(){dijit.popup.close(_69c);_69b.focus();self.currentPopup=null;},onExecute:dojo.hitch(this,"_onDescendantExecute")});this.currentPopup=_69c;if(_69c.focus){setTimeout(dojo.hitch(_69c,"focus"),0);}},onOpen:function(e){this.isShowingNow=true;},onClose:function(){this._stopPopupTimer();this.parentMenu=null;this.isShowingNow=false;this.currentPopup=null;if(this.focusedChild){this._onChildBlur(this.focusedChild);this.focusedChild=null;}},_onFocus:function(){this.isActive=true;dojo.addClass(this.domNode,"dijitMenuActive");dojo.removeClass(this.domNode,"dijitMenuPassive");this.inherited(arguments);},_onBlur:function(){this.isActive=false;dojo.removeClass(this.domNode,"dijitMenuActive");dojo.addClass(this.domNode,"dijitMenuPassive");this.onClose();this.inherited(arguments);},_onDescendantExecute:function(){this.onClose();}});dojo.declare("dijit.Menu",dijit._MenuBase,{constructor:function(){this._bindings=[];},templateString:"<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" waiRole=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n",targetNodeIds:[],contextMenuForWindow:false,leftClickToOpen:false,_contextMenuWithMouse:false,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(dojo.body());}else{dojo.forEach(this.targetNodeIds,this.bindDomNode,this);}var k=dojo.keys,l=this.isLeftToRight();this._openSubMenuKey=l?k.RIGHT_ARROW:k.LEFT_ARROW;this._closeSubMenuKey=l?k.LEFT_ARROW:k.RIGHT_ARROW;this.connectKeyNavHandlers([k.UP_ARROW],[k.DOWN_ARROW]);},_onKeyPress:function(evt){if(evt.ctrlKey||evt.altKey){return;}switch(evt.charOrCode){case this._openSubMenuKey:this._moveToPopup(evt);dojo.stopEvent(evt);break;case this._closeSubMenuKey:if(this.parentMenu){if(this.parentMenu._isMenuBar){this.parentMenu.focusPrev();}else{this.onCancel(false);}}else{dojo.stopEvent(evt);}break;}},_iframeContentWindow:function(_6a2){var win=dijit.getDocumentWindow(dijit.Menu._iframeContentDocument(_6a2))||dijit.Menu._iframeContentDocument(_6a2)["__parent__"]||(_6a2.name&&dojo.doc.frames[_6a2.name])||null;return win;},_iframeContentDocument:function(_6a4){var doc=_6a4.contentDocument||(_6a4.contentWindow&&_6a4.contentWindow.document)||(_6a4.name&&dojo.doc.frames[_6a4.name]&&dojo.doc.frames[_6a4.name].document)||null;return doc;},bindDomNode:function(node){node=dojo.byId(node);var win=dijit.getDocumentWindow(node.ownerDocument);if(node.tagName.toLowerCase()=="iframe"){win=this._iframeContentWindow(node);node=dojo.withGlobal(win,dojo.body);}var cn=(node==dojo.body()?dojo.doc:node);node[this.id]=this._bindings.push([dojo.connect(cn,(this.leftClickToOpen)?"onclick":"oncontextmenu",this,"_openMyself"),dojo.connect(cn,"onkeydown",this,"_contextKey"),dojo.connect(cn,"onmousedown",this,"_contextMouse")]);},unBindDomNode:function(_6a9){var node=dojo.byId(_6a9);if(node){var bid=node[this.id]-1,b=this._bindings[bid];dojo.forEach(b,dojo.disconnect);delete this._bindings[bid];}},_contextKey:function(e){this._contextMenuWithMouse=false;if(e.keyCode==dojo.keys.F10){dojo.stopEvent(e);if(e.shiftKey&&e.type=="keydown"){var _e={target:e.target,pageX:e.pageX,pageY:e.pageY};_e.preventDefault=_e.stopPropagation=function(){};window.setTimeout(dojo.hitch(this,function(){this._openMyself(_e);}),1);}}},_contextMouse:function(e){this._contextMenuWithMouse=true;},_openMyself:function(e){if(this.leftClickToOpen&&e.button>0){return;}dojo.stopEvent(e);var x,y;if(dojo.isSafari||this._contextMenuWithMouse){x=e.pageX;y=e.pageY;}else{var _6b3=dojo.coords(e.target,true);x=_6b3.x+10;y=_6b3.y+10;}var self=this;var _6b5=dijit.getFocus(this);function _6b6(){dijit.focus(_6b5);dijit.popup.close(self);};dijit.popup.open({popup:this,x:x,y:y,onExecute:_6b6,onCancel:_6b6,orient:this.isLeftToRight()?"L":"R"});this.focus();this._onBlur=function(){this.inherited("_onBlur",arguments);dijit.popup.close(this);};},uninitialize:function(){dojo.forEach(this.targetNodeIds,this.unBindDomNode,this);this.inherited(arguments);}});}if(!dojo._hasResource["dijit.layout.StackController"]){dojo._hasResource["dijit.layout.StackController"]=true;dojo.provide("dijit.layout.StackController");dojo.declare("dijit.layout.StackController",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<span wairole='tablist' dojoAttachEvent='onkeypress' class='dijitStackController'></span>",containerId:"",buttonWidget:"dijit.layout._StackButton",postCreate:function(){dijit.setWaiRole(this.domNode,"tablist");this.pane2button={};this.pane2handles={};this.pane2menu={};this._subscriptions=[dojo.subscribe(this.containerId+"-startup",this,"onStartup"),dojo.subscribe(this.containerId+"-addChild",this,"onAddChild"),dojo.subscribe(this.containerId+"-removeChild",this,"onRemoveChild"),dojo.subscribe(this.containerId+"-selectChild",this,"onSelectChild"),dojo.subscribe(this.containerId+"-containerKeyPress",this,"onContainerKeyPress")];},onStartup:function(info){dojo.forEach(info.children,this.onAddChild,this);this.onSelectChild(info.selected);},destroy:function(){for(var pane in this.pane2button){this.onRemoveChild(pane);}dojo.forEach(this._subscriptions,dojo.unsubscribe);this.inherited(arguments);},onAddChild:function(page,_6ba){var _6bb=dojo.doc.createElement("span");this.domNode.appendChild(_6bb);var cls=dojo.getObject(this.buttonWidget);var _6bd=new cls({label:page.title,closeButton:page.closable},_6bb);this.addChild(_6bd,_6ba);this.pane2button[page]=_6bd;page.controlButton=_6bd;var _6be=[];_6be.push(dojo.connect(_6bd,"onClick",dojo.hitch(this,"onButtonClick",page)));if(page.closable){_6be.push(dojo.connect(_6bd,"onClickCloseButton",dojo.hitch(this,"onCloseButtonClick",page)));var _6bf=dojo.i18n.getLocalization("dijit","common");var _6c0=new dijit.Menu({targetNodeIds:[_6bd.id],id:_6bd.id+"_Menu"});var _6c1=new dijit.MenuItem({label:_6bf.itemClose});_6be.push(dojo.connect(_6c1,"onClick",dojo.hitch(this,"onCloseButtonClick",page)));_6c0.addChild(_6c1);this.pane2menu[page]=_6c0;}this.pane2handles[page]=_6be;if(!this._currentChild){_6bd.focusNode.setAttribute("tabIndex","0");this._currentChild=page;}if(!this.isLeftToRight()&&dojo.isIE&&this._rectifyRtlTabList){this._rectifyRtlTabList();}},onRemoveChild:function(page){if(this._currentChild===page){this._currentChild=null;}dojo.forEach(this.pane2handles[page],dojo.disconnect);delete this.pane2handles[page];var menu=this.pane2menu[page];if(menu){menu.destroyRecursive();delete this.pane2menu[page];}var _6c4=this.pane2button[page];if(_6c4){_6c4.destroy();delete this.pane2button[page];}},onSelectChild:function(page){if(!page){return;}if(this._currentChild){var _6c6=this.pane2button[this._currentChild];_6c6.attr("checked",false);_6c6.focusNode.setAttribute("tabIndex","-1");}var _6c7=this.pane2button[page];_6c7.attr("checked",true);this._currentChild=page;_6c7.focusNode.setAttribute("tabIndex","0");var _6c8=dijit.byId(this.containerId);dijit.setWaiState(_6c8.containerNode,"labelledby",_6c7.id);},onButtonClick:function(page){var _6ca=dijit.byId(this.containerId);_6ca.selectChild(page);},onCloseButtonClick:function(page){var _6cc=dijit.byId(this.containerId);_6cc.closeChild(page);var b=this.pane2button[this._currentChild];if(b){dijit.focus(b.focusNode||b.domNode);}},adjacent:function(_6ce){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){_6ce=!_6ce;}var _6cf=this.getChildren();var _6d0=dojo.indexOf(_6cf,this.pane2button[this._currentChild]);var _6d1=_6ce?1:_6cf.length-1;return _6cf[(_6d0+_6d1)%_6cf.length];},onkeypress:function(e){if(this.disabled||e.altKey){return;}var _6d3=null;if(e.ctrlKey||!e._djpage){var k=dojo.keys;switch(e.charOrCode){case k.LEFT_ARROW:case k.UP_ARROW:if(!e._djpage){_6d3=false;}break;case k.PAGE_UP:if(e.ctrlKey){_6d3=false;}break;case k.RIGHT_ARROW:case k.DOWN_ARROW:if(!e._djpage){_6d3=true;}break;case k.PAGE_DOWN:if(e.ctrlKey){_6d3=true;}break;case k.DELETE:if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}dojo.stopEvent(e);break;default:if(e.ctrlKey){if(e.charOrCode===k.TAB){this.adjacent(!e.shiftKey).onClick();dojo.stopEvent(e);}else{if(e.charOrCode=="w"){if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}dojo.stopEvent(e);}}}}if(_6d3!==null){this.adjacent(_6d3).onClick();dojo.stopEvent(e);}}},onContainerKeyPress:function(info){info.e._djpage=info.page;this.onkeypress(info.e);}});dojo.declare("dijit.layout._StackButton",dijit.form.ToggleButton,{tabIndex:"-1",postCreate:function(evt){dijit.setWaiRole((this.focusNode||this.domNode),"tab");this.inherited(arguments);},onClick:function(evt){dijit.fo