
if(typeof(dojo)!="undefined"){dojo.provide("MochiKit.Base");}
if(typeof(MochiKit)=="undefined"){MochiKit={};}
if(typeof(MochiKit.Base)=="undefined"){MochiKit.Base={};}
if(typeof(MochiKit.__export__)=="undefined"){MochiKit.__export__=(MochiKit.__compat__||(typeof(JSAN)=="undefined"&&typeof(dojo)=="undefined"));}
MochiKit.Base.VERSION="1.4";MochiKit.Base.NAME="MochiKit.Base";MochiKit.Base.update=function(_1,_2){if(_1===null){_1={};}
for(var i=1;i<arguments.length;i++){var o=arguments[i];if(typeof(o)!="undefined"&&o!==null){for(var k in o){_1[k]=o[k];}}}
return _1;};MochiKit.Base.update(MochiKit.Base,{__repr__:function(){return"["+this.NAME+" "+this.VERSION+"]";},toString:function(){return this.__repr__();},camelize:function(_6){var _7=_6.split("-");var cc=_7[0];for(var i=1;i<_7.length;i++){cc+=_7[i].charAt(0).toUpperCase()+_7[i].substring(1);}
return cc;},counter:function(n){if(arguments.length===0){n=1;}
return function(){return n++;};},clone:function(_b){var me=arguments.callee;if(arguments.length==1){me.prototype=_b;return new me();}},_flattenArray:function(_d,_e){for(var i=0;i<_e.length;i++){var o=_e[i];if(o instanceof Array){arguments.callee(_d,o);}else{_d.push(o);}}
return _d;},flattenArray:function(lst){return MochiKit.Base._flattenArray([],lst);},flattenArguments:function(lst){var res=[];var m=MochiKit.Base;var _15=m.extend(null,arguments);while(_15.length){var o=_15.shift();if(o&&typeof(o)=="object"&&typeof(o.length)=="number"){for(var i=o.length-1;i>=0;i--){_15.unshift(o[i]);}}else{res.push(o);}}
return res;},extend:function(_18,obj,_1a){if(!_1a){_1a=0;}
if(obj){var l=obj.length;if(typeof(l)!="number"){if(typeof(MochiKit.Iter)!="undefined"){obj=MochiKit.Iter.list(obj);l=obj.length;}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present");}}
if(!_18){_18=[];}
for(var i=_1a;i<l;i++){_18.push(obj[i]);}}
return _18;},updatetree:function(_1d,obj){if(_1d===null){_1d={};}
for(var i=1;i<arguments.length;i++){var o=arguments[i];if(typeof(o)!="undefined"&&o!==null){for(var k in o){var v=o[k];if(typeof(_1d[k])=="object"&&typeof(v)=="object"){arguments.callee(_1d[k],v);}else{_1d[k]=v;}}}}
return _1d;},setdefault:function(_23,obj){if(_23===null){_23={};}
for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var k in o){if(!(k in _23)){_23[k]=o[k];}}}
return _23;},keys:function(obj){var _29=[];for(var _2a in obj){_29.push(_2a);}
return _29;},values:function(obj){var _2c=[];for(var _2d in obj){_2c.push(obj[_2d]);}
return _2c;},items:function(obj){var _2f=[];var e;for(var _31 in obj){var v;try{v=obj[_31];}
catch(e){continue;}
_2f.push([_31,v]);}
return _2f;},_newNamedError:function(_33,_34,_35){_35.prototype=new MochiKit.Base.NamedError(_33.NAME+"."+_34);_33[_34]=_35;},operator:{truth:function(a){return!!a;},lognot:function(a){return!a;},identity:function(a){return a;},not:function(a){return~a;},neg:function(a){return-a;},add:function(a,b){return a+b;},sub:function(a,b){return a-b;},div:function(a,b){return a/b;},mod:function(a,b){return a%b;},mul:function(a,b){return a*b;},and:function(a,b){return a&b;},or:function(a,b){return a|b;},xor:function(a,b){return a^b;},lshift:function(a,b){return a<<b;},rshift:function(a,b){return a>>b;},zrshift:function(a,b){return a>>>b;},eq:function(a,b){return a==b;},ne:function(a,b){return a!=b;},gt:function(a,b){return a>b;},ge:function(a,b){return a>=b;},lt:function(a,b){return a<b;},le:function(a,b){return a<=b;},seq:function(a,b){return a===b;},sne:function(a,b){return a!==b;},ceq:function(a,b){return MochiKit.Base.compare(a,b)===0;},cne:function(a,b){return MochiKit.Base.compare(a,b)!==0;},cgt:function(a,b){return MochiKit.Base.compare(a,b)==1;},cge:function(a,b){return MochiKit.Base.compare(a,b)!=-1;},clt:function(a,b){return MochiKit.Base.compare(a,b)==-1;},cle:function(a,b){return MochiKit.Base.compare(a,b)!=1;},logand:function(a,b){return a&&b;},logor:function(a,b){return a||b;},contains:function(a,b){return b in a;}},forwardCall:function(_73){return function(){return this[_73].apply(this,arguments);};},itemgetter:function(_74){return function(arg){return arg[_74];};},typeMatcher:function(){var _76={};for(var i=0;i<arguments.length;i++){var typ=arguments[i];_76[typ]=typ;}
return function(){for(var i=0;i<arguments.length;i++){if(!(typeof(arguments[i])in _76)){return false;}}
return true;};},isNull:function(){for(var i=0;i<arguments.length;i++){if(arguments[i]!==null){return false;}}
return true;},isUndefinedOrNull:function(){for(var i=0;i<arguments.length;i++){var o=arguments[i];if(!(typeof(o)=="undefined"||o===null)){return false;}}
return true;},isEmpty:function(obj){return!MochiKit.Base.isNotEmpty.apply(this,arguments);},isNotEmpty:function(obj){for(var i=0;i<arguments.length;i++){var o=arguments[i];if(!(o&&o.length)){return false;}}
return true;},isArrayLike:function(){for(var i=0;i<arguments.length;i++){var o=arguments[i];var typ=typeof(o);if((typ!="object"&&!(typ=="function"&&typeof(o.item)=="function"))||o===null||typeof(o.length)!="number"||o.nodeType===3){return false;}}
return true;},isDateLike:function(){for(var i=0;i<arguments.length;i++){var o=arguments[i];if(typeof(o)!="object"||o===null||typeof(o.getTime)!="function"){return false;}}
return true;},xmap:function(fn){if(fn===null){return MochiKit.Base.extend(null,arguments,1);}
var _87=[];for(var i=1;i<arguments.length;i++){_87.push(fn(arguments[i]));}
return _87;},map:function(fn,lst){var m=MochiKit.Base;var itr=MochiKit.Iter;var _8d=m.isArrayLike;if(arguments.length<=2){if(!_8d(lst)){if(itr){lst=itr.list(lst);if(fn===null){return lst;}}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present");}}
if(fn===null){return m.extend(null,lst);}
var _8e=[];for(var i=0;i<lst.length;i++){_8e.push(fn(lst[i]));}
return _8e;}else{if(fn===null){fn=Array;}
var _90=null;for(i=1;i<arguments.length;i++){if(!_8d(arguments[i])){if(itr){return itr.list(itr.imap.apply(null,arguments));}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present");}}
var l=arguments[i].length;if(_90===null||_90>l){_90=l;}}
_8e=[];for(i=0;i<_90;i++){var _92=[];for(var j=1;j<arguments.length;j++){_92.push(arguments[j][i]);}
_8e.push(fn.apply(this,_92));}
return _8e;}},xfilter:function(fn){var _95=[];if(fn===null){fn=MochiKit.Base.operator.truth;}
for(var i=1;i<arguments.length;i++){var o=arguments[i];if(fn(o)){_95.push(o);}}
return _95;},filter:function(fn,lst,_9a){var _9b=[];var m=MochiKit.Base;if(!m.isArrayLike(lst)){if(MochiKit.Iter){lst=MochiKit.Iter.list(lst);}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present");}}
if(fn===null){fn=m.operator.truth;}
if(typeof(Array.prototype.filter)=="function"){return Array.prototype.filter.call(lst,fn,_9a);}else{if(typeof(_9a)=="undefined"||_9a===null){for(var i=0;i<lst.length;i++){var o=lst[i];if(fn(o)){_9b.push(o);}}}else{for(i=0;i<lst.length;i++){o=lst[i];if(fn.call(_9a,o)){_9b.push(o);}}}}
return _9b;},_wrapDumbFunction:function(_9f){return function(){switch(arguments.length){case 0:return _9f();case 1:return _9f(arguments[0]);case 2:return _9f(arguments[0],arguments[1]);case 3:return _9f(arguments[0],arguments[1],arguments[2]);}
var _a0=[];for(var i=0;i<arguments.length;i++){_a0.push("arguments["+i+"]");}
return eval("(func("+_a0.join(",")+"))");};},methodcaller:function(_a2){var _a3=MochiKit.Base.extend(null,arguments,1);if(typeof(_a2)=="function"){return function(obj){return _a2.apply(obj,_a3);};}else{return function(obj){return obj[_a2].apply(obj,_a3);};}},method:function(_a6,_a7){var m=MochiKit.Base;return m.bind.apply(this,m.extend([_a7,_a6],arguments,2));},compose:function(f1,f2){var _ab=[];var m=MochiKit.Base;if(arguments.length===0){throw new TypeError("compose() requires at least one argument");}
for(var i=0;i<arguments.length;i++){var fn=arguments[i];if(typeof(fn)!="function"){throw new TypeError(m.repr(fn)+" is not a function");}
_ab.push(fn);}
return function(){var _af=arguments;for(var i=_ab.length-1;i>=0;i--){_af=[_ab[i].apply(this,_af)];}
return _af[0];};},bind:function(_b1,_b2){if(typeof(_b1)=="string"){_b1=_b2[_b1];}
var _b3=_b1.im_func;var _b4=_b1.im_preargs;var _b5=_b1.im_self;var m=MochiKit.Base;if(typeof(_b1)=="function"&&typeof(_b1.apply)=="undefined"){_b1=m._wrapDumbFunction(_b1);}
if(typeof(_b3)!="function"){_b3=_b1;}
if(typeof(_b2)!="undefined"){_b5=_b2;}
if(typeof(_b4)=="undefined"){_b4=[];}else{_b4=_b4.slice();}
m.extend(_b4,arguments,2);var _b7=function(){var _b8=arguments;var me=arguments.callee;if(me.im_preargs.length>0){_b8=m.concat(me.im_preargs,_b8);}
var _ba=me.im_self;if(!_ba){_ba=this;}
return me.im_func.apply(_ba,_b8);};_b7.im_self=_b5;_b7.im_func=_b3;_b7.im_preargs=_b4;return _b7;},bindMethods:function(_bb){var _bc=MochiKit.Base.bind;for(var k in _bb){var _be=_bb[k];if(typeof(_be)=="function"){_bb[k]=_bc(_be,_bb);}}},registerComparator:function(_bf,_c0,_c1,_c2){MochiKit.Base.comparatorRegistry.register(_bf,_c0,_c1,_c2);},_primitives:{"boolean":true,"string":true,"number":true},compare:function(a,b){if(a==b){return 0;}
var _c5=(typeof(a)=="undefined"||a===null);var _c6=(typeof(b)=="undefined"||b===null);if(_c5&&_c6){return 0;}else{if(_c5){return-1;}else{if(_c6){return 1;}}}
var m=MochiKit.Base;var _c8=m._primitives;if(!(typeof(a)in _c8&&typeof(b)in _c8)){try{return m.comparatorRegistry.match(a,b);}
catch(e){if(e!=m.NotFound){throw e;}}}
if(a<b){return-1;}else{if(a>b){return 1;}}
var _c9=m.repr;throw new TypeError(_c9(a)+" and "+_c9(b)+" can not be compared");},compareDateLike:function(a,b){return MochiKit.Base.compare(a.getTime(),b.getTime());},compareArrayLike:function(a,b){var _ce=MochiKit.Base.compare;var _cf=a.length;var _d0=0;if(_cf>b.length){_d0=1;_cf=b.length;}else{if(_cf<b.length){_d0=-1;}}
for(var i=0;i<_cf;i++){var cmp=_ce(a[i],b[i]);if(cmp){return cmp;}}
return _d0;},registerRepr:function(_d3,_d4,_d5,_d6){MochiKit.Base.reprRegistry.register(_d3,_d4,_d5,_d6);},repr:function(o){if(typeof(o)=="undefined"){return"undefined";}else{if(o===null){return"null";}}
try{if(typeof(o.__repr__)=="function"){return o.__repr__();}else{if(typeof(o.repr)=="function"&&o.repr!=arguments.callee){return o.repr();}}
return MochiKit.Base.reprRegistry.match(o);}
catch(e){if(typeof(o.NAME)=="string"&&(o.toString==Function.prototype.toString||o.toString==Object.prototype.toString)){return o.NAME;}}
try{var _d8=(o+"");}
catch(e){return"["+typeof(o)+"]";}
if(typeof(o)=="function"){_d8=_d8.replace(/^\s+/,"").replace(/\s+/g," ");var idx=_d8.indexOf("{");if(idx!=-1){_d8=_d8.substr(0,idx)+"{...}";}}
return _d8;},reprArrayLike:function(o){var m=MochiKit.Base;return"["+m.map(m.repr,o).join(", ")+"]";},reprString:function(o){return("\""+o.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");},reprNumber:function(o){return o+"";},registerJSON:function(_de,_df,_e0,_e1){MochiKit.Base.jsonRegistry.register(_de,_df,_e0,_e1);},evalJSON:function(){return eval("("+MochiKit.Base._filterJSON(arguments[0])+")");},_filterJSON:function(s){var m=s.match(/^\s*\/\*(.*)\*\/\s*$/);if(m){return m[1];}
return s;},serializeJSON:function(o){var _e5=typeof(o);if(_e5=="number"||_e5=="boolean"){return o+"";}else{if(o===null){return"null";}}
var m=MochiKit.Base;var _e7=m.reprString;if(_e5=="string"){return _e7(o);}
var me=arguments.callee;var _e9;if(typeof(o.__json__)=="function"){_e9=o.__json__();if(o!==_e9){return me(_e9);}}
if(typeof(o.json)=="function"){_e9=o.json();if(o!==_e9){return me(_e9);}}
if(_e5!="function"&&typeof(o.length)=="number"){var res=[];for(var i=0;i<o.length;i++){var val=me(o[i]);if(typeof(val)!="string"){val="undefined";}
res.push(val);}
return"["+res.join(", ")+"]";}
try{_e9=m.jsonRegistry.match(o);if(o!==_e9){return me(_e9);}}
catch(e){if(e!=m.NotFound){throw e;}}
if(_e5=="undefined"){throw new TypeError("undefined can not be serialized as JSON");}
if(_e5=="function"){return null;}
res=[];for(var k in o){var _ee;if(typeof(k)=="number"){_ee="\""+k+"\"";}else{if(typeof(k)=="string"){_ee=_e7(k);}else{continue;}}
val=me(o[k]);if(typeof(val)!="string"){continue;}
res.push(_ee+":"+val);}
return"{"+res.join(", ")+"}";},objEqual:function(a,b){return(MochiKit.Base.compare(a,b)===0);},arrayEqual:function(_f1,arr){if(_f1.length!=arr.length){return false;}
return(MochiKit.Base.compare(_f1,arr)===0);},concat:function(){var _f3=[];var _f4=MochiKit.Base.extend;for(var i=0;i<arguments.length;i++){_f4(_f3,arguments[i]);}
return _f3;},keyComparator:function(key){var m=MochiKit.Base;var _f8=m.compare;if(arguments.length==1){return function(a,b){return _f8(a[key],b[key]);};}
var _fb=m.extend(null,arguments);return function(a,b){var _fe=0;for(var i=0;(_fe===0)&&(i<_fb.length);i++){var key=_fb[i];_fe=_f8(a[key],b[key]);}
return _fe;};},reverseKeyComparator:function(key){var _102=MochiKit.Base.keyComparator.apply(this,arguments);return function(a,b){return _102(b,a);};},partial:function(func){var m=MochiKit.Base;return m.bind.apply(this,m.extend([func,undefined],arguments,1));},listMinMax:function(_107,lst){if(lst.length===0){return null;}
var cur=lst[0];var _10a=MochiKit.Base.compare;for(var i=1;i<lst.length;i++){var o=lst[i];if(_10a(o,cur)==_107){cur=o;}}
return cur;},objMax:function(){return MochiKit.Base.listMinMax(1,arguments);},objMin:function(){return MochiKit.Base.listMinMax(-1,arguments);},findIdentical:function(lst,_10e,_10f,end){if(typeof(end)=="undefined"||end===null){end=lst.length;}
if(typeof(_10f)=="undefined"||_10f===null){_10f=0;}
for(var i=_10f;i<end;i++){if(lst[i]===_10e){return i;}}
return-1;},mean:function(){var sum=0;var m=MochiKit.Base;var args=m.extend(null,arguments);var _115=args.length;while(args.length){var o=args.shift();if(o&&typeof(o)=="object"&&typeof(o.length)=="number"){_115+=o.length-1;for(var i=o.length-1;i>=0;i--){sum+=o[i];}}else{sum+=o;}}
if(_115<=0){throw new TypeError("mean() requires at least one argument");}
return sum/_115;},median:function(){var data=MochiKit.Base.flattenArguments(arguments);if(data.length===0){throw new TypeError("median() requires at least one argument");}
data.sort(compare);if(data.length%2==0){var _119=data.length/2;return(data[_119]+data[_119-1])/2;}else{return data[(data.length-1)/2];}},findValue:function(lst,_11b,_11c,end){if(typeof(end)=="undefined"||end===null){end=lst.length;}
if(typeof(_11c)=="undefined"||_11c===null){_11c=0;}
var cmp=MochiKit.Base.compare;for(var i=_11c;i<end;i++){if(cmp(lst[i],_11b)===0){return i;}}
return-1;},nodeWalk:function(node,_121){var _122=[node];var _123=MochiKit.Base.extend;while(_122.length){var res=_121(_122.shift());if(res){_123(_122,res);}}},nameFunctions:function(_125){var base=_125.NAME;if(typeof(base)=="undefined"){base="";}else{base=base+".";}
for(var name in _125){var o=_125[name];if(typeof(o)=="function"&&typeof(o.NAME)=="undefined"){try{o.NAME=base+name;}
catch(e){}}}},queryString:function(_129,_12a){if(typeof(MochiKit.DOM)!="undefined"&&arguments.length==1&&(typeof(_129)=="string"||(typeof(_129.nodeType)!="undefined"&&_129.nodeType>0))){var kv=MochiKit.DOM.formContents(_129);_129=kv[0];_12a=kv[1];}else{if(arguments.length==1){if(typeof(_129.length)=="number"&&_129.length==2){return arguments.callee(_129[0],_129[1]);}
var o=_129;_129=[];_12a=[];for(var k in o){var v=o[k];if(typeof(v)=="function"){continue;}else{if(MochiKit.Base.isArrayLike(v)){for(var i=0;i<v.length;i++){_129.push(k);_12a.push(v[i]);}}else{_129.push(k);_12a.push(v);}}}}}
var rval=[];var len=Math.min(_129.length,_12a.length);var _132=MochiKit.Base.urlEncode;for(var i=0;i<len;i++){v=_12a[i];if(typeof(v)!="undefined"&&v!==null){rval.push(_132(_129[i])+"="+_132(v));}}
return rval.join("&");},parseQueryString:function(_133,_134){var qstr=(_133.charAt(0)=="?")?_133.substring(1):_133;var _136=qstr.replace(/\+/g,"%20").split(/(\&amp\;|\&\#38\;|\&#x26;|\&)/);var o={};var _138;if(typeof(decodeURIComponent)!="undefined"){_138=decodeURIComponent;}else{_138=unescape;}
if(_134){for(var i=0;i<_136.length;i++){var pair=_136[i].split("=");var name=_138(pair.shift());if(!name){continue;}
var arr=o[name];if(!(arr instanceof Array)){arr=[];o[name]=arr;}
arr.push(_138(pair.join("=")));}}else{for(i=0;i<_136.length;i++){pair=_136[i].split("=");var name=pair.shift();if(!name){continue;}
o[_138(name)]=_138(pair.join("="));}}
return o;}});MochiKit.Base.AdapterRegistry=function(){this.pairs=[];};MochiKit.Base.AdapterRegistry.prototype={register:function(name,_13e,wrap,_140){if(_140){this.pairs.unshift([name,_13e,wrap]);}else{this.pairs.push([name,_13e,wrap]);}},match:function(){for(var i=0;i<this.pairs.length;i++){var pair=this.pairs[i];if(pair[1].apply(this,arguments)){return pair[2].apply(this,arguments);}}
throw MochiKit.Base.NotFound;},unregister:function(name){for(var i=0;i<this.pairs.length;i++){var pair=this.pairs[i];if(pair[0]==name){this.pairs.splice(i,1);return true;}}
return false;}};MochiKit.Base.EXPORT=["flattenArray","noop","camelize","counter","clone","extend","update","updatetree","setdefault","keys","values","items","NamedError","operator","forwardCall","itemgetter","typeMatcher","isCallable","isUndefined","isUndefinedOrNull","isNull","isEmpty","isNotEmpty","isArrayLike","isDateLike","xmap","map","xfilter","filter","methodcaller","compose","bind","bindMethods","NotFound","AdapterRegistry","registerComparator","compare","registerRepr","repr","objEqual","arrayEqual","concat","keyComparator","reverseKeyComparator","partial","merge","listMinMax","listMax","listMin","objMax","objMin","nodeWalk","zip","urlEncode","queryString","serializeJSON","registerJSON","evalJSON","parseQueryString","findValue","findIdentical","flattenArguments","method","average","mean","median"];MochiKit.Base.EXPORT_OK=["nameFunctions","comparatorRegistry","reprRegistry","jsonRegistry","compareDateLike","compareArrayLike","reprArrayLike","reprString","reprNumber"];MochiKit.Base._exportSymbols=function(_146,_147){if(!MochiKit.__export__){return;}
var all=_147.EXPORT_TAGS[":all"];for(var i=0;i<all.length;i++){_146[all[i]]=_147[all[i]];}};MochiKit.Base.__new__=function(){var m=this;m.noop=m.operator.identity;m.forward=m.forwardCall;m.find=m.findValue;if(typeof(encodeURIComponent)!="undefined"){m.urlEncode=function(_14b){return encodeURIComponent(_14b).replace(/\'/g,"%27");};}else{m.urlEncode=function(_14c){return escape(_14c).replace(/\+/g,"%2B").replace(/\"/g,"%22").rval.replace(/\'/g,"%27");};}
m.NamedError=function(name){this.message=name;this.name=name;};m.NamedError.prototype=new Error();m.update(m.NamedError.prototype,{repr:function(){if(this.message&&this.message!=this.name){return this.name+"("+m.repr(this.message)+")";}else{return this.name+"()";}},toString:m.forwardCall("repr")});m.NotFound=new m.NamedError("MochiKit.Base.NotFound");m.listMax=m.partial(m.listMinMax,1);m.listMin=m.partial(m.listMinMax,-1);m.isCallable=m.typeMatcher("function");m.isUndefined=m.typeMatcher("undefined");m.merge=m.partial(m.update,null);m.zip=m.partial(m.map,null);m.average=m.mean;m.comparatorRegistry=new m.AdapterRegistry();m.registerComparator("dateLike",m.isDateLike,m.compareDateLike);m.registerComparator("arrayLike",m.isArrayLike,m.compareArrayLike);m.reprRegistry=new m.AdapterRegistry();m.registerRepr("arrayLike",m.isArrayLike,m.reprArrayLike);m.registerRepr("string",m.typeMatcher("string"),m.reprString);m.registerRepr("numbers",m.typeMatcher("number","boolean"),m.reprNumber);m.jsonRegistry=new m.AdapterRegistry();var all=m.concat(m.EXPORT,m.EXPORT_OK);m.EXPORT_TAGS={":common":m.concat(m.EXPORT_OK),":all":all};m.nameFunctions(this);};MochiKit.Base.__new__();if(MochiKit.__export__){compare=MochiKit.Base.compare;compose=MochiKit.Base.compose;serializeJSON=MochiKit.Base.serializeJSON;}
MochiKit.Base._exportSymbols(this,MochiKit.Base);if(typeof(dojo)!="undefined"){dojo.provide("MochiKit.Iter");dojo.require("MochiKit.Base");}
if(typeof(JSAN)!="undefined"){JSAN.use("MochiKit.Base",[]);}
try{if(typeof(MochiKit.Base)=="undefined"){throw"";}}
catch(e){throw"MochiKit.Iter depends on MochiKit.Base!";}
if(typeof(MochiKit.Iter)=="undefined"){MochiKit.Iter={};}
MochiKit.Iter.NAME="MochiKit.Iter";MochiKit.Iter.VERSION="1.4";MochiKit.Base.update(MochiKit.Iter,{__repr__:function(){return"["+this.NAME+" "+this.VERSION+"]";},toString:function(){return this.__repr__();},registerIteratorFactory:function(name,_150,_151,_152){MochiKit.Iter.iteratorRegistry.register(name,_150,_151,_152);},iter:function(_153,_154){var self=MochiKit.Iter;if(arguments.length==2){return self.takewhile(function(a){return a!=_154;},_153);}
if(typeof(_153.next)=="function"){return _153;}else{if(typeof(_153.iter)=="function"){return _153.iter();}}
try{return self.iteratorRegistry.match(_153);}
catch(e){var m=MochiKit.Base;if(e==m.NotFound){e=new TypeError(typeof(_153)+": "+m.repr(_153)+" is not iterable");}
throw e;}},count:function(n){if(!n){n=0;}
var m=MochiKit.Base;return{repr:function(){return"count("+n+")";},toString:m.forwardCall("repr"),next:m.counter(n)};},cycle:function(p){var self=MochiKit.Iter;var m=MochiKit.Base;var lst=[];var _15e=self.iter(p);return{repr:function(){return"cycle(...)";},toString:m.forwardCall("repr"),next:function(){try{var rval=_15e.next();lst.push(rval);return rval;}
catch(e){if(e!=self.StopIteration){throw e;}
if(lst.length===0){this.next=function(){throw self.StopIteration;};}else{var i=-1;this.next=function(){i=(i+1)%lst.length;return lst[i];};}
return this.next();}}};},repeat:function(elem,n){var m=MochiKit.Base;if(typeof(n)=="undefined"){return{repr:function(){return"repeat("+m.repr(elem)+")";},toString:m.forwardCall("repr"),next:function(){return elem;}};}
return{repr:function(){return"repeat("+m.repr(elem)+", "+n+")";},toString:m.forwardCall("repr"),next:function(){if(n<=0){throw MochiKit.Iter.StopIteration;}
n-=1;return elem;}};},next:function(_164){return _164.next();},izip:function(p,q){var m=MochiKit.Base;var self=MochiKit.Iter;var next=self.next;var _16a=m.map(self.iter,arguments);return{repr:function(){return"izip(...)";},toString:m.forwardCall("repr"),next:function(){return m.map(next,_16a);}};},ifilter:function(pred,seq){var m=MochiKit.Base;seq=MochiKit.Iter.iter(seq);if(pred===null){pred=m.operator.truth;}
return{repr:function(){return"ifilter(...)";},toString:m.forwardCall("repr"),next:function(){while(true){var rval=seq.next();if(pred(rval)){return rval;}}
return undefined;}};},ifilterfalse:function(pred,seq){var m=MochiKit.Base;seq=MochiKit.Iter.iter(seq);if(pred===null){pred=m.operator.truth;}
return{repr:function(){return"ifilterfalse(...)";},toString:m.forwardCall("repr"),next:function(){while(true){var rval=seq.next();if(!pred(rval)){return rval;}}
return undefined;}};},islice:function(seq){var self=MochiKit.Iter;var m=MochiKit.Base;seq=self.iter(seq);var _176=0;var stop=0;var step=1;var i=-1;if(arguments.length==2){stop=arguments[1];}else{if(arguments.length==3){_176=arguments[1];stop=arguments[2];}else{_176=arguments[1];stop=arguments[2];step=arguments[3];}}
return{repr:function(){return"islice("+["...",_176,stop,step].join(", ")+")";},toString:m.forwardCall("repr"),next:function(){var rval;while(i<_176){rval=seq.next();i++;}
if(_176>=stop){throw self.StopIteration;}
_176+=step;return rval;}};},imap:function(fun,p,q){var m=MochiKit.Base;var self=MochiKit.Iter;var _180=m.map(self.iter,m.extend(null,arguments,1));var map=m.map;var next=self.next;return{repr:function(){return"imap(...)";},toString:m.forwardCall("repr"),next:function(){return fun.apply(this,map(next,_180));}};},applymap:function(fun,seq,self){seq=MochiKit.Iter.iter(seq);var m=MochiKit.Base;return{repr:function(){return"applymap(...)";},toString:m.forwardCall("repr"),next:function(){return fun.apply(self,seq.next());}};},chain:function(p,q){var self=MochiKit.Iter;var m=MochiKit.Base;if(arguments.length==1){return self.iter(arguments[0]);}
var _18b=m.map(self.iter,arguments);return{repr:function(){return"chain(...)";},toString:m.forwardCall("repr"),next:function(){while(_18b.length>1){try{return _18b[0].next();}
catch(e){if(e!=self.StopIteration){throw e;}
_18b.shift();}}
if(_18b.length==1){var arg=_18b.shift();this.next=m.bind("next",arg);return this.next();}
throw self.StopIteration;}};},takewhile:function(pred,seq){var self=MochiKit.Iter;seq=self.iter(seq);return{repr:function(){return"takewhile(...)";},toString:MochiKit.Base.forwardCall("repr"),next:function(){var rval=seq.next();if(!pred(rval)){this.next=function(){throw self.StopIteration;};this.next();}
return rval;}};},dropwhile:function(pred,seq){seq=MochiKit.Iter.iter(seq);var m=MochiKit.Base;var bind=m.bind;return{"repr":function(){return"dropwhile(...)";},"toString":m.forwardCall("repr"),"next":function(){while(true){var rval=seq.next();if(!pred(rval)){break;}}
this.next=bind("next",seq);return rval;}};},_tee:function(_196,sync,_198){sync.pos[_196]=-1;var m=MochiKit.Base;var _19a=m.listMin;return{repr:function(){return"tee("+_196+", ...)";},toString:m.forwardCall("repr"),next:function(){var rval;var i=sync.pos[_196];if(i==sync.max){rval=_198.next();sync.deque.push(rval);sync.max+=1;sync.pos[_196]+=1;}else{rval=sync.deque[i-sync.min];sync.pos[_196]+=1;if(i==sync.min&&_19a(sync.pos)!=sync.min){sync.min+=1;sync.deque.shift();}}
return rval;}};},tee:function(_19d,n){var rval=[];var sync={"pos":[],"deque":[],"max":-1,"min":-1};if(arguments.length==1||typeof(n)=="undefined"||n===null){n=2;}
var self=MochiKit.Iter;_19d=self.iter(_19d);var _tee=self._tee;for(var i=0;i<n;i++){rval.push(_tee(i,sync,_19d));}
return rval;},list:function(_1a4){var rval;if(_1a4 instanceof Array){return _1a4.slice();}
if(typeof(_1a4)=="function"&&!(_1a4 instanceof Function)&&typeof(_1a4.length)=="number"){rval=[];for(var i=0;i<_1a4.length;i++){rval.push(_1a4[i]);}
return rval;}
var self=MochiKit.Iter;_1a4=self.iter(_1a4);var rval=[];try{while(true){rval.push(_1a4.next());}}
catch(e){if(e!=self.StopIteration){throw e;}
return rval;}
return undefined;},reduce:function(fn,_1a9,_1aa){var i=0;var x=_1aa;var self=MochiKit.Iter;_1a9=self.iter(_1a9);if(arguments.length<3){try{x=_1a9.next();}
catch(e){if(e==self.StopIteration){e=new TypeError("reduce() of empty sequence with no initial value");}
throw e;}
i++;}
try{while(true){x=fn(x,_1a9.next());}}
catch(e){if(e!=self.StopIteration){throw e;}}
return x;},range:function(){var _1ae=0;var stop=0;var step=1;if(arguments.length==1){stop=arguments[0];}else{if(arguments.length==2){_1ae=arguments[0];stop=arguments[1];}else{if(arguments.length==3){_1ae=arguments[0];stop=arguments[1];step=arguments[2];}else{throw new TypeError("range() takes 1, 2, or 3 arguments!");}}}
if(step===0){throw new TypeError("range() step must not be 0");}
return{next:function(){if((step>0&&_1ae>=stop)||(step<0&&_1ae<=stop)){throw MochiKit.Iter.StopIteration;}
var rval=_1ae;_1ae+=step;return rval;},repr:function(){return"range("+[_1ae,stop,step].join(", ")+")";},toString:MochiKit.Base.forwardCall("repr")};},sum:function(_1b2,_1b3){if(typeof(_1b3)=="undefined"||_1b3===null){_1b3=0;}
var x=_1b3;var self=MochiKit.Iter;_1b2=self.iter(_1b2);try{while(true){x+=_1b2.next();}}
catch(e){if(e!=self.StopIteration){throw e;}}
return x;},exhaust:function(_1b6){var self=MochiKit.Iter;_1b6=self.iter(_1b6);try{while(true){_1b6.next();}}
catch(e){if(e!=self.StopIteration){throw e;}}},forEach:function(_1b8,func,self){var m=MochiKit.Base;if(arguments.length>2){func=m.bind(func,self);}
if(m.isArrayLike(_1b8)){try{for(var i=0;i<_1b8.length;i++){func(_1b8[i]);}}
catch(e){if(e!=MochiKit.Iter.StopIteration){throw e;}}}else{self=MochiKit.Iter;self.exhaust(self.imap(func,_1b8));}},every:function(_1bd,func){var self=MochiKit.Iter;try{self.ifilterfalse(func,_1bd).next();return false;}
catch(e){if(e!=self.StopIteration){throw e;}
return true;}},sorted:function(_1c0,cmp){var rval=MochiKit.Iter.list(_1c0);if(arguments.length==1){cmp=MochiKit.Base.compare;}
rval.sort(cmp);return rval;},reversed:function(_1c3){var rval=MochiKit.Iter.list(_1c3);rval.reverse();return rval;},some:function(_1c5,func){var self=MochiKit.Iter;try{self.ifilter(func,_1c5).next();return true;}
catch(e){if(e!=self.StopIteration){throw e;}
return false;}},iextend:function(lst,_1c9){if(MochiKit.Base.isArrayLike(_1c9)){for(var i=0;i<_1c9.length;i++){lst.push(_1c9[i]);}}else{var self=MochiKit.Iter;_1c9=self.iter(_1c9);try{while(true){lst.push(_1c9.next());}}
catch(e){if(e!=self.StopIteration){throw e;}}}
return lst;},groupby:function(_1cc,_1cd){var m=MochiKit.Base;var self=MochiKit.Iter;if(arguments.length<2){_1cd=m.operator.identity;}
_1cc=self.iter(_1cc);var pk=undefined;var k=undefined;var v;function fetch(){v=_1cc.next();k=_1cd(v);}
function eat(){var ret=v;v=undefined;return ret;}
var _1d4=true;var _1d5=m.compare;return{repr:function(){return"groupby(...)";},next:function(){while(_1d5(k,pk)===0){fetch();if(_1d4){_1d4=false;break;}}
pk=k;return[k,{next:function(){if(v==undefined){fetch();}
if(_1d5(k,pk)!==0){throw self.StopIteration;}
return eat();}}];}};},groupby_as_array:function(_1d6,_1d7){var m=MochiKit.Base;var self=MochiKit.Iter;if(arguments.length<2){_1d7=m.operator.identity;}
_1d6=self.iter(_1d6);var _1da=[];var _1db=true;var _1dc;var _1dd=m.compare;while(true){try{var _1de=_1d6.next();var key=_1d7(_1de);}
catch(e){if(e==self.StopIteration){break;}
throw e;}
if(_1db||_1dd(key,_1dc)!==0){var _1e0=[];_1da.push([key,_1e0]);}
_1e0.push(_1de);_1db=false;_1dc=key;}
return _1da;},arrayLikeIter:function(_1e1){var i=0;return{repr:function(){return"arrayLikeIter(...)";},toString:MochiKit.Base.forwardCall("repr"),next:function(){if(i>=_1e1.length){throw MochiKit.Iter.StopIteration;}
return _1e1[i++];}};},hasIterateNext:function(_1e3){return(_1e3&&typeof(_1e3.iterateNext)=="function");},iterateNextIter:function(_1e4){return{repr:function(){return"iterateNextIter(...)";},toString:MochiKit.Base.forwardCall("repr"),next:function(){var rval=_1e4.iterateNext();if(rval===null||rval===undefined){throw MochiKit.Iter.StopIteration;}
return rval;}};}});MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter"];MochiKit.Iter.EXPORT=["StopIteration","registerIteratorFactory","iter","count","cycle","repeat","next","izip","ifilter","ifilterfalse","islice","imap","applymap","chain","takewhile","dropwhile","tee","list","reduce","range","sum","exhaust","forEach","every","sorted","reversed","some","iextend","groupby","groupby_as_array"];MochiKit.Iter.__new__=function(){var m=MochiKit.Base;if(typeof(StopIteration)!="undefined"){this.StopIteration=StopIteration;}else{this.StopIteration=new m.NamedError("StopIteration");}
this.iteratorRegistry=new m.AdapterRegistry();this.registerIteratorFactory("arrayLike",m.isArrayLike,this.arrayLikeIter);this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter);this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};m.nameFunctions(this);};MochiKit.Iter.__new__();if(MochiKit.__export__){reduce=MochiKit.Iter.reduce;}
MochiKit.Base._exportSymbols(this,MochiKit.Iter);if(typeof(dojo)!="undefined"){dojo.provide("MochiKit.Logging");dojo.require("MochiKit.Base");}
if(typeof(JSAN)!="undefined"){JSAN.use("MochiKit.Base",[]);}
try{if(typeof(MochiKit.Base)=="undefined"){throw"";}}
catch(e){throw"MochiKit.Logging depends on MochiKit.Base!";}
if(typeof(MochiKit.Logging)=="undefined"){MochiKit.Logging={};}
MochiKit.Logging.NAME="MochiKit.Logging";MochiKit.Logging.VERSION="1.4";MochiKit.Logging.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]";};MochiKit.Logging.toString=function(){return this.__repr__();};MochiKit.Logging.EXPORT=["LogLevel","LogMessage","Logger","alertListener","logger","log","logError","logDebug","logFatal","logWarning"];MochiKit.Logging.EXPORT_OK=["logLevelAtLeast","isLogMessage","compareLogMessage"];MochiKit.Logging.LogMessage=function(num,_1e8,info){this.num=num;this.level=_1e8;this.info=info;this.timestamp=new Date();};MochiKit.Logging.LogMessage.prototype={repr:function(){var m=MochiKit.Base;return"LogMessage("+m.map(m.repr,[this.num,this.level,this.info]).join(", ")+")";},toString:MochiKit.Base.forwardCall("repr")};MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(_1eb){var self=MochiKit.Logging;if(typeof(_1eb)=="string"){_1eb=self.LogLevel[_1eb];}
return function(msg){var _1ee=msg.level;if(typeof(_1ee)=="string"){_1ee=self.LogLevel[_1ee];}
return _1ee>=_1eb;};},isLogMessage:function(){var _1ef=MochiKit.Logging.LogMessage;for(var i=0;i<arguments.length;i++){if(!(arguments[i]instanceof _1ef)){return false;}}
return true;},compareLogMessage:function(a,b){return MochiKit.Base.compare([a.level,a.info],[b.level,b.info]);},alertListener:function(msg){alert("num: "+msg.num+"\nlevel: "+msg.level+"\ninfo: "+msg.info.join(" "));}});MochiKit.Logging.Logger=function(_1f4){this.counter=0;if(typeof(_1f4)=="undefined"||_1f4===null){_1f4=-1;}
this.maxSize=_1f4;this._messages=[];this.listeners={};this.useNativeConsole=false;};MochiKit.Logging.Logger.prototype={clear:function(){this._messages.splice(0,this._messages.length);},logToConsole:function(msg){if(typeof(window)!="undefined"&&window.console&&window.console.log){window.console.log(msg.replace(/%/g,"\uff05"));}else{if(typeof(opera)!="undefined"&&opera.postError){opera.postError(msg);}else{if(typeof(printfire)=="function"){printfire(msg);}else{if(typeof(Debug)!="undefined"&&Debug.writeln){Debug.writeln(msg);}else{if(typeof(debug)!="undefined"&&debug.trace){debug.trace(msg);}}}}}},dispatchListeners:function(msg){for(var k in this.listeners){var pair=this.listeners[k];if(pair.ident!=k||(pair[0]&&!pair[0](msg))){continue;}
pair[1](msg);}},addListener:function(_1f9,_1fa,_1fb){if(typeof(_1fa)=="string"){_1fa=MochiKit.Logging.logLevelAtLeast(_1fa);}
var _1fc=[_1fa,_1fb];_1fc.ident=_1f9;this.listeners[_1f9]=_1fc;},removeListener:function(_1fd){delete this.listeners[_1fd];},baseLog:function(_1fe,_1ff){var msg=new MochiKit.Logging.LogMessage(this.counter,_1fe,MochiKit.Base.extend(null,arguments,1));this._messages.push(msg);this.dispatchListeners(msg);if(this.useNativeConsole){this.logToConsole(msg.level+": "+msg.info.join(" "));}
this.counter+=1;while(this.maxSize>=0&&this._messages.length>this.maxSize){this._messages.shift();}},getMessages:function(_201){var _202=0;if(!(typeof(_201)=="undefined"||_201===null)){_202=Math.max(0,this._messages.length-_201);}
return this._messages.slice(_202);},getMessageText:function(_203){if(typeof(_203)=="undefined"||_203===null){_203=30;}
var _204=this.getMessages(_203);if(_204.length){var lst=map(function(m){return"\n  ["+m.num+"] "+m.level+": "+m.info.join(" ");},_204);lst.unshift("LAST "+_204.length+" MESSAGES:");return lst.join("");}
return"";},debuggingBookmarklet:function(_207){if(typeof(MochiKit.LoggingPane)=="undefined"){alert(this.getMessageText());}else{MochiKit.LoggingPane.createLoggingPane(_207||false);}}};MochiKit.Logging.__new__=function(){this.LogLevel={ERROR:40,FATAL:50,WARNING:30,INFO:20,DEBUG:10};var m=MochiKit.Base;m.registerComparator("LogMessage",this.isLogMessage,this.compareLogMessage);var _209=m.partial;var _20a=this.Logger;var _20b=_20a.prototype.baseLog;m.update(this.Logger.prototype,{debug:_209(_20b,"DEBUG"),log:_209(_20b,"INFO"),error:_209(_20b,"ERROR"),fatal:_209(_20b,"FATAL"),warning:_209(_20b,"WARNING")});var self=this;var _20d=function(name){return function(){self.logger[name].apply(self.logger,arguments);};};this.log=_20d("log");this.logError=_20d("error");this.logDebug=_20d("debug");this.logFatal=_20d("fatal");this.logWarning=_20d("warning");this.logger=new _20a();this.logger.useNativeConsole=true;this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};m.nameFunctions(this);};if(typeof(printfire)=="undefined"&&typeof(document)!="undefined"&&document.createEvent&&typeof(dispatchEvent)!="undefined"){printfire=function(){printfire.args=arguments;var ev=document.createEvent("Events");ev.initEvent("printfire",false,true);dispatchEvent(ev);};}
MochiKit.Logging.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Logging);if(typeof(dojo)!="undefined"){dojo.provide("MochiKit.Async");dojo.require("MochiKit.Base");}
if(typeof(JSAN)!="undefined"){JSAN.use("MochiKit.Base",[]);}
try{if(typeof(MochiKit.Base)=="undefined"){throw"";}}
catch(e){throw"MochiKit.Async depends on MochiKit.Base!";}
if(typeof(MochiKit.Async)=="undefined"){MochiKit.Async={};}
MochiKit.Async.NAME="MochiKit.Async";MochiKit.Async.VERSION="1.4";MochiKit.Async.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]";};MochiKit.Async.toString=function(){return this.__repr__();};MochiKit.Async.Deferred=function(_210){this.chain=[];this.id=this._nextId();this.fired=-1;this.paused=0;this.results=[null,null];this.canceller=_210;this.silentlyCancelled=false;this.chained=false;};MochiKit.Async.Deferred.prototype={repr:function(){var _211;if(this.fired==-1){_211="unfired";}else{if(this.fired===0){_211="success";}else{_211="error";}}
return"Deferred("+this.id+", "+_211+")";},toString:MochiKit.Base.forwardCall("repr"),_nextId:MochiKit.Base.counter(),cancel:function(){var self=MochiKit.Async;if(this.fired==-1){if(this.canceller){this.canceller(this);}else{this.silentlyCancelled=true;}
if(this.fired==-1){this.errback(new self.CancelledError(this));}}else{if((this.fired===0)&&(this.results[0]instanceof self.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 MochiKit.Async.AlreadyCalledError(this);}
this.silentlyCancelled=false;return;}},callback:function(res){this._check();if(res instanceof MochiKit.Async.Deferred){throw new Error("Deferred instances can only be chained if they are the result of a callback");}
this._resback(res);},errback:function(res){this._check();var self=MochiKit.Async;if(res instanceof self.Deferred){throw new Error("Deferred instances can only be chained if they are the result of a callback");}
if(!(res instanceof Error)){res=new self.GenericError(res);}
this._resback(res);},addBoth:function(fn){if(arguments.length>1){fn=MochiKit.Base.partial.apply(null,arguments);}
return this.addCallbacks(fn,fn);},addCallback:function(fn){if(arguments.length>1){fn=MochiKit.Base.partial.apply(null,arguments);}
return this.addCallbacks(fn,null);},addErrback:function(fn){if(arguments.length>1){fn=MochiKit.Base.partial.apply(null,arguments);}
return this.addCallbacks(null,fn);},addCallbacks:function(cb,eb){if(this.chained){throw new Error("Chained Deferreds can not be re-used");}
this.chain.push([cb,eb]);if(this.fired>=0){this._fire();}
return this;},_fire:function(){var _21c=this.chain;var _21d=this.fired;var res=this.results[_21d];var self=this;var cb=null;while(_21c.length>0&&this.paused===0){var pair=_21c.shift();var f=pair[_21d];if(f===null){continue;}
try{res=f(res);_21d=((res instanceof Error)?1:0);if(res instanceof MochiKit.Async.Deferred){cb=function(res){self._resback(res);self.paused--;if((self.paused===0)&&(self.fired>=0)){self._fire();}};this.paused++;}}
catch(err){_21d=1;if(!(err instanceof Error)){err=new MochiKit.Async.GenericError(err);}
res=err;}}
this.fired=_21d;this.results[_21d]=res;if(cb&&this.paused){res.addBoth(cb);res.chained=true;}}};MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(req){return MochiKit.Base.evalJSON(req.responseText);},succeed:function(_225){var d=new MochiKit.Async.Deferred();d.callback.apply(d,arguments);return d;},fail:function(_227){var d=new MochiKit.Async.Deferred();d.errback.apply(d,arguments);return d;},getXMLHttpRequest:function(){var self=arguments.callee;if(!self.XMLHttpRequest){var _22a=[function(){return new XMLHttpRequest();},function(){return new ActiveXObject("Msxml2.XMLHTTP");},function(){return new ActiveXObject("Microsoft.XMLHTTP");},function(){return new ActiveXObject("Msxml2.XMLHTTP.4.0");},function(){throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest");}];for(var i=0;i<_22a.length;i++){var func=_22a[i];try{self.XMLHttpRequest=func;return func();}
catch(e){}}}
return self.XMLHttpRequest();},_xhr_onreadystatechange:function(d){var m=MochiKit.Base;if(this.readyState==4){try{this.onreadystatechange=null;}
catch(e){try{this.onreadystatechange=m.noop;}
catch(e){}}
var _22f=null;try{_22f=this.status;if(!_22f&&m.isNotEmpty(this.responseText)){_22f=304;}}
catch(e){}
if(_22f==200||_22f==201||_22f==204||_22f==304||_22f==1223){d.callback(this);}else{var err=new MochiKit.Async.XMLHttpRequestError(this,"Request failed");if(err.number){d.errback(err);}else{d.errback(err);}}}},_xhr_canceller:function(req){try{req.onreadystatechange=null;}
catch(e){try{req.onreadystatechange=MochiKit.Base.noop;}
catch(e){}}
req.abort();},sendXMLHttpRequest:function(req,_233){if(typeof(_233)=="undefined"||_233===null){_233="";}
var m=MochiKit.Base;var self=MochiKit.Async;var d=new self.Deferred(m.partial(self._xhr_canceller,req));try{req.onreadystatechange=m.bind(self._xhr_onreadystatechange,req,d);req.send(_233);}
catch(e){try{req.onreadystatechange=null;}
catch(ignore){}
d.errback(e);}
return d;},doXHR:function(url,opts){var self=MochiKit.Async;return self.callLater(0,self._doXHR,url,opts);},_doXHR:function(url,opts){var m=MochiKit.Base;opts=m.update({method:"GET",sendContent:""},opts);var self=MochiKit.Async;var req=self.getXMLHttpRequest();if(opts.queryString){var qs=m.queryString(opts.queryString);if(qs){url+="?"+qs;}}
if("username"in opts){req.open(opts.method,url,true,opts.username,opts.password);}else{req.open(opts.method,url,true);}
if(req.overrideMimeType&&opts.mimeType){req.overrideMimeType(opts.mimeType);}
req.setRequestHeader("X-Requested-With","XMLHttpRequest");if(opts.headers){var _240=opts.headers;if(!m.isArrayLike(_240)){_240=m.items(_240);}
for(var i=0;i<_240.length;i++){var _242=_240[i];var name=_242[0];var _244=_242[1];req.setRequestHeader(name,_244);}}
return self.sendXMLHttpRequest(req,opts.sendContent);},_buildURL:function(url){if(arguments.length>1){var m=MochiKit.Base;var qs=m.queryString.apply(null,m.extend(null,arguments,1));if(qs){return url+"?"+qs;}}
return url;},doSimpleXMLHttpRequest:function(url){var self=MochiKit.Async;url=self._buildURL.apply(self,arguments);return self.doXHR(url);},loadJSONDoc:function(url){var self=MochiKit.Async;url=self._buildURL.apply(self,arguments);var d=self.doXHR(url,{"mimeType":"text/plain","headers":[["Accept","application/json"]]});d=d.addCallback(self.evalJSONRequest);return d;},wait:function(_24d,_24e){var d=new MochiKit.Async.Deferred();var m=MochiKit.Base;if(typeof(_24e)!="undefined"){d.addCallback(function(){return _24e;});}
var _251=setTimeout(m.bind("callback",d),Math.floor(_24d*1000));d.canceller=function(){try{clearTimeout(_251);}
catch(e){}};return d;},callLater:function(_252,func){var m=MochiKit.Base;var _255=m.partial.apply(m,m.extend(null,arguments,1));return MochiKit.Async.wait(_252).addCallback(function(res){return _255();});}});MochiKit.Async.DeferredLock=function(){this.waiting=[];this.locked=false;this.id=this._nextId();};MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){var d=new MochiKit.Async.Deferred();if(this.locked){this.waiting.push(d);}else{this.locked=true;d.callback(this);}
return d;},release:function(){if(!this.locked){throw TypeError("Tried to release an unlocked DeferredLock");}
this.locked=false;if(this.waiting.length>0){this.locked=true;this.waiting.shift().callback(this);}},_nextId:MochiKit.Base.counter(),repr:function(){var _258;if(this.locked){_258="locked, "+this.waiting.length+" waiting";}else{_258="unlocked";}
return"DeferredLock("+this.id+", "+_258+")";},toString:MochiKit.Base.forwardCall("repr")};MochiKit.Async.DeferredList=function(list,_25a,_25b,_25c,_25d){MochiKit.Async.Deferred.apply(this,[_25d]);this.list=list;var _25e=[];this.resultList=_25e;this.finishedCount=0;this.fireOnOneCallback=_25a;this.fireOnOneErrback=_25b;this.consumeErrors=_25c;var cb=MochiKit.Base.bind(this._cbDeferred,this);for(var i=0;i<list.length;i++){var d=list[i];_25e.push(undefined);d.addCallback(cb,i,true);d.addErrback(cb,i,false);}
if(list.length===0&&!_25a){this.callback(this.resultList);}};MochiKit.Async.DeferredList.prototype=new MochiKit.Async.Deferred();MochiKit.Async.DeferredList.prototype._cbDeferred=function(_262,_263,_264){this.resultList[_262]=[_263,_264];this.finishedCount+=1;if(this.fired==-1){if(_263&&this.fireOnOneCallback){this.callback([_262,_264]);}else{if(!_263&&this.fireOnOneErrback){this.errback(_264);}else{if(this.finishedCount==this.list.length){this.callback(this.resultList);}}}}
if(!_263&&this.consumeErrors){_264=null;}
return _264;};MochiKit.Async.gatherResults=function(_265){var d=new MochiKit.Async.DeferredList(_265,false,true,false);d.addCallback(function(_267){var ret=[];for(var i=0;i<_267.length;i++){ret.push(_267[i][1]);}
return ret;});return d;};MochiKit.Async.maybeDeferred=function(func){var self=MochiKit.Async;var _26c;try{var r=func.apply(null,MochiKit.Base.extend([],arguments,1));if(r instanceof self.Deferred){_26c=r;}else{if(r instanceof Error){_26c=self.fail(r);}else{_26c=self.succeed(r);}}}
catch(e){_26c=self.fail(e);}
return _26c;};MochiKit.Async.EXPORT=["AlreadyCalledError","CancelledError","BrowserComplianceError","GenericError","XMLHttpRequestError","Deferred","succeed","fail","getXMLHttpRequest","doSimpleXMLHttpRequest","loadJSONDoc","wait","callLater","sendXMLHttpRequest","DeferredLock","DeferredList","gatherResults","maybeDeferred","doXHR"];MochiKit.Async.EXPORT_OK=["evalJSONRequest"];MochiKit.Async.__new__=function(){var m=MochiKit.Base;var ne=m.partial(m._newNamedError,this);ne("AlreadyCalledError",function(_270){this.deferred=_270;});ne("CancelledError",function(_271){this.deferred=_271;});ne("BrowserComplianceError",function(msg){this.message=msg;});ne("GenericError",function(msg){this.message=msg;});ne("XMLHttpRequestError",function(req,msg){this.req=req;this.message=msg;try{this.number=req.status;}
catch(e){}});this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};m.nameFunctions(this);};MochiKit.Async.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Async);if(typeof(dojo)!="undefined"){dojo.provide("MochiKit.DOM");dojo.require("MochiKit.Base");}
if(typeof(JSAN)!="undefined"){JSAN.use("MochiKit.Base",[]);}
try{if(typeof(MochiKit.Base)=="undefined"){throw"";}}
catch(e){throw"MochiKit.DOM depends on MochiKit.Base!";}
if(typeof(MochiKit.DOM)=="undefined"){MochiKit.DOM={};}
MochiKit.DOM.NAME="MochiKit.DOM";MochiKit.DOM.VERSION="1.4";MochiKit.DOM.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]";};MochiKit.DOM.toString=function(){return this.__repr__();};MochiKit.DOM.EXPORT=["removeEmptyTextNodes","formContents","currentWindow","currentDocument","withWindow","withDocument","registerDOMConverter","coerceToDOM","createDOM","createDOMFunc","isChildNode","getNodeAttribute","removeNodeAttribute","setNodeAttribute","updateNodeAttributes","appendChildNodes","insertSiblingNodesAfter","insertSiblingNodesBefore","replaceChildNodes","removeElement","swapDOM","BUTTON","TT","PRE","H1","H2","H3","BR","CANVAS","HR","LABEL","TEXTAREA","FORM","STRONG","SELECT","OPTION","OPTGROUP","LEGEND","FIELDSET","P","UL","OL","LI","TD","TR","THEAD","TBODY","TFOOT","TABLE","TH","INPUT","SPAN","A","DIV","IMG","getElement","$","getElementsByTagAndClassName","addToCallStack","addLoadEvent","focusOnLoad","setElementClass","toggleElementClass","addElementClass","removeElementClass","swapElementClass","hasElementClass","escapeHTML","toHTML","emitHTML","scrapeText","isParent","getFirstParentByTagAndClassName","makeClipping","undoClipping","makePositioned","undoPositioned","getFirstElementByTagAndClassName"];MochiKit.DOM.EXPORT_OK=["domConverters"];MochiKit.DOM.DEPRECATED=[["computedStyle","MochiKit.Style.getStyle","1.4"],["elementDimensions","MochiKit.Style.getElementDimensions","1.4"],["elementPosition","MochiKit.Style.getElementPosition","1.4"],["hideElement","MochiKit.Style.hideElement","1.4"],["setElementDimensions","MochiKit.Style.setElementDimensions","1.4"],["setElementPosition","MochiKit.Style.setElementPosition","1.4"],["setDisplayForElement","MochiKit.Style.setDisplayForElement","1.4"],["setOpacity","MochiKit.Style.setOpacity","1.4"],["showElement","MochiKit.Style.showElement","1.4"],["Coordinates","MochiKit.Style.Coordinates","1.4"],["Dimensions","MochiKit.Style.Dimensions","1.4"]];MochiKit.DOM.getViewportDimensions=new Function(""+"if (!MochiKit[\"Style\"]) {"+"    throw new Error(\"This function has been deprecated and depends on MochiKit.Style.\");"+"}"+"return MochiKit.Style.getViewportDimensions.apply(this, arguments);");MochiKit.Base.update(MochiKit.DOM,{currentWindow:function(){return MochiKit.DOM._window;},currentDocument:function(){return MochiKit.DOM._document;},withWindow:function(win,func){var self=MochiKit.DOM;var _279=self._document;var _27a=self._window;var rval;try{self._window=win;self._document=win.document;rval=func();}
catch(e){self._window=_27a;self._document=_279;throw e;}
self._window=_27a;self._document=_279;return rval;},formContents:function(elem){var _27d=[];var _27e=[];var m=MochiKit.Base;var self=MochiKit.DOM;if(typeof(elem)=="undefined"||elem===null){elem=self._document.body;}else{elem=self.getElement(elem);}
m.nodeWalk(elem,function(elem){var name=elem.name;if(m.isNotEmpty(name)){var _283=elem.tagName.toUpperCase();if(_283==="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){return null;}
if(_283==="SELECT"){if(elem.type=="select-one"){if(elem.selectedIndex>=0){var opt=elem.options[elem.selectedIndex];var v=opt.value;if(!v){var h=opt.outerHTML;if(h&&!h.match(/^[^>]+\svalue\s*=/i)){v=opt.text;}}
_27d.push(name);_27e.push(v);return null;}
_27d.push(name);_27e.push("");return null;}else{var opts=elem.options;if(!opts.length){_27d.push(name);_27e.push("");return null;}
for(var i=0;i<opts.length;i++){var opt=opts[i];if(!opt.selected){continue;}
var v=opt.value;if(!v){var h=opt.outerHTML;if(h&&!h.match(/^[^>]+\svalue\s*=/i)){v=opt.text;}}
_27d.push(name);_27e.push(v);}
return null;}}
if(_283==="FORM"||_283==="P"||_283==="SPAN"||_283==="DIV"){return elem.childNodes;}
_27d.push(name);_27e.push(elem.value||"");return null;}
return elem.childNodes;});return[_27d,_27e];},withDocument:function(doc,func){var self=MochiKit.DOM;var _28c=self._document;var rval;try{self._document=doc;rval=func();}
catch(e){self._document=_28c;throw e;}
self._document=_28c;return rval;},registerDOMConverter:function(name,_28f,wrap,_291){MochiKit.DOM.domConverters.register(name,_28f,wrap,_291);},coerceToDOM:function(node,ctx){var m=MochiKit.Base;var im=MochiKit.Iter;var self=MochiKit.DOM;if(im){var iter=im.iter;var _298=im.repeat;var map=m.map;}
var _29a=self.domConverters;var _29b=arguments.callee;var _29c=m.NotFound;while(true){if(typeof(node)=="undefined"||node===null){return null;}
if(typeof(node)=="function"&&typeof(node.length)=="number"&&!(node instanceof Function)){node=im.list(node);}
if(typeof(node.nodeType)!="undefined"&&node.nodeType>0){return node;}
if(typeof(node)=="number"||typeof(node)=="boolean"){node=node.toString();}
if(typeof(node)=="string"){return self._document.createTextNode(node);}
if(typeof(node.__dom__)=="function"){node=node.__dom__(ctx);continue;}
if(typeof(node.dom)=="function"){node=node.dom(ctx);continue;}
if(typeof(node)=="function"){node=node.apply(ctx,[ctx]);continue;}
if(im){var _29d=null;try{_29d=iter(node);}
catch(e){}
if(_29d){return map(_29b,_29d,_298(ctx));}}
try{node=_29a.match(node,ctx);continue;}
catch(e){if(e!=_29c){throw e;}}
return self._document.createTextNode(node.toString());}
return undefined;},isChildNode:function(node,_29f){var self=MochiKit.DOM;if(typeof(node)=="string"){node=self.getElement(node);}
if(typeof(_29f)=="string"){_29f=self.getElement(_29f);}
if(node===_29f){return true;}
while(node&&node.tagName.toUpperCase()!="BODY"){node=node.parentNode;if(node===_29f){return true;}}
return false;},setNodeAttribute:function(node,attr,_2a3){var o={};o[attr]=_2a3;try{return MochiKit.DOM.updateNodeAttributes(node,o);}
catch(e){}
return null;},getNodeAttribute:function(node,attr){var self=MochiKit.DOM;var _2a8=self.attributeArray.renames[attr];node=self.getElement(node);try{if(_2a8){return node[_2a8];}
return node.getAttribute(attr);}
catch(e){}
return null;},removeNodeAttribute:function(node,attr){var self=MochiKit.DOM;var _2ac=self.attributeArray.renames[attr];node=self.getElement(node);try{if(_2ac){return node[_2ac];}
return node.removeAttribute(attr);}
catch(e){}
return null;},updateNodeAttributes:function(node,_2ae){var elem=node;var self=MochiKit.DOM;if(typeof(node)=="string"){elem=self.getElement(node);}
if(_2ae){var _2b1=MochiKit.Base.updatetree;if(self.attributeArray.compliant){for(var k in _2ae){var v=_2ae[k];if(typeof(v)=="object"&&typeof(elem[k])=="object"){if(k=="style"&&MochiKit.Style){MochiKit.Style.setStyle(elem,v);}else{_2b1(elem[k],v);}}else{if(k.substring(0,2)=="on"){if(typeof(v)=="string"){v=new Function(v);}
elem[k]=v;}else{elem.setAttribute(k,v);}}}}else{var _2b4=self.attributeArray.renames;for(var k in _2ae){v=_2ae[k];var _2b5=_2b4[k];if(k=="style"&&typeof(v)=="string"){elem.style.cssText=v;}else{if(typeof(_2b5)=="string"){elem[_2b5]=v;}else{if(typeof(elem[k])=="object"&&typeof(v)=="object"){if(k=="style"&&MochiKit.Style){MochiKit.Style.setStyle(elem,v);}else{_2b1(elem[k],v);}}else{if(k.substring(0,2)=="on"){if(typeof(v)=="string"){v=new Function(v);}
elem[k]=v;}else{elem.setAttribute(k,v);}}}}}}}
return elem;},appendChildNodes:function(node){var elem=node;var self=MochiKit.DOM;if(typeof(node)=="string"){elem=self.getElement(node);}
var _2b9=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];var _2ba=MochiKit.Base.concat;while(_2b9.length){var n=_2b9.shift();if(typeof(n)=="undefined"||n===null){}else{if(typeof(n.nodeType)=="number"){elem.appendChild(n);}else{_2b9=_2ba(n,_2b9);}}}
return elem;},insertSiblingNodesBefore:function(node){var elem=node;var self=MochiKit.DOM;if(typeof(node)=="string"){elem=self.getElement(node);}
var _2bf=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];var _2c0=elem.parentNode;var _2c1=MochiKit.Base.concat;while(_2bf.length){var n=_2bf.shift();if(typeof(n)=="undefined"||n===null){}else{if(typeof(n.nodeType)=="number"){_2c0.insertBefore(n,elem);}else{_2bf=_2c1(n,_2bf);}}}
return _2c0;},insertSiblingNodesAfter:function(node){var elem=node;var self=MochiKit.DOM;if(typeof(node)=="string"){elem=self.getElement(node);}
var _2c6=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];if(elem.nextSibling){return self.insertSiblingNodesBefore(elem.nextSibling,_2c6);}else{return self.appendChildNodes(elem.parentNode,_2c6);}},replaceChildNodes:function(node){var elem=node;var self=MochiKit.DOM;if(typeof(node)=="string"){elem=self.getElement(node);arguments[0]=elem;}
var _2ca;while((_2ca=elem.firstChild)){elem.removeChild(_2ca);}
if(arguments.length<2){return elem;}else{return self.appendChildNodes.apply(this,arguments);}},createDOM:function(name,_2cc){var elem;var self=MochiKit.DOM;var m=MochiKit.Base;if(typeof(_2cc)=="string"||typeof(_2cc)=="number"){var args=m.extend([name,null],arguments,1);return arguments.callee.apply(this,args);}
if(typeof(name)=="string"){var _2d1=self._xhtml;if(_2cc&&!self.attributeArray.compliant){var _2d2="";if("name"in _2cc){_2d2+=" name=\""+self.escapeHTML(_2cc.name)+"\"";}
if(name=="input"&&"type"in _2cc){_2d2+=" type=\""+self.escapeHTML(_2cc.type)+"\"";}
if(_2d2){name="<"+name+_2d2+">";_2d1=false;}}
var d=self._document;if(_2d1&&d===document){elem=d.createElementNS("http://www.w3.org/1999/xhtml",name);}else{elem=d.createElement(name);}}else{elem=name;}
if(_2cc){self.updateNodeAttributes(elem,_2cc);}
if(arguments.length<=2){return elem;}else{var args=m.extend([elem],arguments,2);return self.appendChildNodes.apply(this,args);}},createDOMFunc:function(){var m=MochiKit.Base;return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments));},removeElement:function(elem){var e=MochiKit.DOM.getElement(elem);e.parentNode.removeChild(e);return e;},swapDOM:function(dest,src){var self=MochiKit.DOM;dest=self.getElement(dest);var _2da=dest.parentNode;if(src){src=self.getElement(src);_2da.replaceChild(src,dest);}else{_2da.removeChild(dest);}
return src;},getElement:function(id){var self=MochiKit.DOM;if(arguments.length==1){return((typeof(id)=="string")?self._document.getElementById(id):id);}else{return MochiKit.Base.map(self.getElement,arguments);}},getElementsByTagAndClassName:function(_2dd,_2de,_2df){var self=MochiKit.DOM;if(typeof(_2dd)=="undefined"||_2dd===null){_2dd="*";}
if(typeof(_2df)=="undefined"||_2df===null){_2df=self._document;}
_2df=self.getElement(_2df);var _2e1=(_2df.getElementsByTagName(_2dd)||self._document.all);if(typeof(_2de)=="undefined"||_2de===null){return MochiKit.Base.extend(null,_2e1);}
var _2e2=[];for(var i=0;i<_2e1.length;i++){var _2e4=_2e1[i];var cls=_2e4.className;if(!cls){continue;}
var _2e6=cls.split(" ");for(var j=0;j<_2e6.length;j++){if(_2e6[j]==_2de){_2e2.push(_2e4);break;}}}
return _2e2;},_newCallStack:function(path,once){var rval=function(){var _2eb=arguments.callee.callStack;for(var i=0;i<_2eb.length;i++){if(_2eb[i].apply(this,arguments)===false){break;}}
if(once){try{this[path]=null;}
catch(e){}}};rval.callStack=[];return rval;},addToCallStack:function(_2ed,path,func,once){var self=MochiKit.DOM;var _2f2=_2ed[path];var _2f3=_2f2;if(!(typeof(_2f2)=="function"&&typeof(_2f2.callStack)=="object"&&_2f2.callStack!==null)){_2f3=self._newCallStack(path,once);if(typeof(_2f2)=="function"){_2f3.callStack.push(_2f2);}
_2ed[path]=_2f3;}
_2f3.callStack.push(func);},addLoadEvent:function(func){var self=MochiKit.DOM;self.addToCallStack(self._window,"onload",func,true);},focusOnLoad:function(_2f6){var self=MochiKit.DOM;self.addLoadEvent(function(){_2f6=self.getElement(_2f6);if(_2f6){_2f6.focus();}});},setElementClass:function(_2f8,_2f9){var self=MochiKit.DOM;var obj=self.getElement(_2f8);if(self.attributeArray.compliant){obj.setAttribute("class",_2f9);}else{obj.setAttribute("className",_2f9);}},toggleElementClass:function(_2fc){var self=MochiKit.DOM;for(var i=1;i<arguments.length;i++){var obj=self.getElement(arguments[i]);if(!self.addElementClass(obj,_2fc)){self.removeElementClass(obj,_2fc);}}},addElementClass:function(_300,_301){var self=MochiKit.DOM;var obj=self.getElement(_300);var cls=obj.className;if(cls==undefined||cls.length===0){self.setElementClass(obj,_301);return true;}
if(cls==_301){return false;}
var _305=cls.split(" ");for(var i=0;i<_305.length;i++){if(_305[i]==_301){return false;}}
self.setElementClass(obj,cls+" "+_301);return true;},removeElementClass:function(_307,_308){var self=MochiKit.DOM;var obj=self.getElement(_307);var cls=obj.className;if(cls==undefined||cls.length===0){return false;}
if(cls==_308){self.setElementClass(obj,"");return true;}
var _30c=cls.split(" ");for(var i=0;i<_30c.length;i++){if(_30c[i]==_308){_30c.splice(i,1);self.setElementClass(obj,_30c.join(" "));return true;}}
return false;},swapElementClass:function(_30e,_30f,_310){var obj=MochiKit.DOM.getElement(_30e);var res=MochiKit.DOM.removeElementClass(obj,_30f);if(res){MochiKit.DOM.addElementClass(obj,_310);}
return res;},hasElementClass:function(_313,_314){var obj=MochiKit.DOM.getElement(_313);var cls=obj.className;if(!cls){return false;}
var _317=cls.split(" ");for(var i=1;i<arguments.length;i++){var good=false;for(var j=0;j<_317.length;j++){if(_317[j]==arguments[i]){good=true;break;}}
if(!good){return false;}}
return true;},escapeHTML:function(s){return s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");},toHTML:function(dom){return MochiKit.DOM.emitHTML(dom).join("");},emitHTML:function(dom,lst){if(typeof(lst)=="undefined"||lst===null){lst=[];}
var _31f=[dom];var self=MochiKit.DOM;var _321=self.escapeHTML;var _322=self.attributeArray;while(_31f.length){dom=_31f.pop();if(typeof(dom)=="string"){lst.push(dom);}else{if(dom.nodeType==1){lst.push("<"+dom.tagName.toLowerCase());var _323=[];var _324=_322(dom);for(var i=0;i<_324.length;i++){var a=_324[i];_323.push([" ",a.name,"=\"",_321(a.value),"\""]);}
_323.sort();for(i=0;i<_323.length;i++){var _327=_323[i];for(var j=0;j<_327.length;j++){lst.push(_327[j]);}}
if(dom.hasChildNodes()){lst.push(">");_31f.push("</"+dom.tagName.toLowerCase()+">");var _329=dom.childNodes;for(i=_329.length-1;i>=0;i--){_31f.push(_329[i]);}}else{lst.push("/>");}}else{if(dom.nodeType==3){lst.push(_321(dom.nodeValue));}}}}
return lst;},scrapeText:function(node,_32b){var rval=[];(function(node){var cn=node.childNodes;if(cn){for(var i=0;i<cn.length;i++){arguments.callee.call(this,cn[i]);}}
var _330=node.nodeValue;if(typeof(_330)=="string"){rval.push(_330);}})(MochiKit.DOM.getElement(node));if(_32b){return rval;}else{return rval.join("");}},removeEmptyTextNodes:function(_331){_331=MochiKit.DOM.getElement(_331);for(var i=0;i<_331.childNodes.length;i++){var node=_331.childNodes[i];if(node.nodeType==3&&!/\S/.test(node.nodeValue)){node.parentNode.removeChild(node);}}},makeClipping:function(_334){_334=MochiKit.DOM.getElement(_334);var _335=_334.style.overflow;if((MochiKit.Style.getStyle(_334,"overflow")||"visible")!="hidden"){_334.style.overflow="hidden";}
return _335;},undoClipping:function(_336,_337){_336=MochiKit.DOM.getElement(_336);if(!_337){return;}
_336.style.overflow=_337;},makePositioned:function(_338){_338=MochiKit.DOM.getElement(_338);var pos=MochiKit.Style.getStyle(_338,"position");if(pos=="static"||!pos){_338.style.position="relative";if(/Opera/.test(navigator.userAgent)){_338.style.top=0;_338.style.left=0;}}},undoPositioned:function(_33a){_33a=MochiKit.DOM.getElement(_33a);if(_33a.style.position=="relative"){_33a.style.position=_33a.style.top=_33a.style.left=_33a.style.bottom=_33a.style.right="";}},getFirstElementByTagAndClassName:function(_33b,_33c,_33d){var self=MochiKit.DOM;if(typeof(_33b)=="undefined"||_33b===null){_33b="*";}
if(typeof(_33d)=="undefined"||_33d===null){_33d=self._document;}
_33d=self.getElement(_33d);var _33f=(_33d.getElementsByTagName(_33b)||self._document.all);if(typeof(_33c)=="undefined"||_33c===null){return _33f[0];}
for(var i=0;i<_33f.length;i++){var _341=_33f[i];var _342=_341.className.split(" ");for(var j=0;j<_342.length;j++){if(_342[j]==_33c){return _341;}}}},getFirstParentByTagAndClassName:function(elem,_345,_346){var self=MochiKit.DOM;elem=self.getElement(elem);if(typeof(_345)=="undefined"||_345===null){_345="*";}else{_345=_345.toUpperCase();}
if(typeof(_346)=="undefined"||_346===null){_346=null;}
var _348="";var _349="";while(elem&&elem.tagName){elem=elem.parentNode;if(_345=="*"&&_346===null){return elem;}
_348=elem.className.split(" ");_349=elem.tagName.toUpperCase();if(_346===null&&_345==_349){return elem;}else{if(_346!==null){for(var i=0;i<_348.length;i++){if(_345=="*"&&_348[i]==_346){return elem;}else{if(_345==_349&&_348[i]==_346){return elem;}}}}}}
return elem;},isParent:function(_34b,_34c){if(!_34b.parentNode||_34b==_34c){return false;}
if(_34b.parentNode==_34c){return true;}
return MochiKit.DOM.isParent(_34b.parentNode,_34c);},__new__:function(win){var m=MochiKit.Base;if(typeof(document)!="undefined"){this._document=document;var _34f="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===_34f);}else{if(MochiKit.MockDOM){this._document=MochiKit.MockDOM.document;}}
this._window=win;this.domConverters=new m.AdapterRegistry();var _350=this._document.createElement("span");var _351;if(_350&&_350.attributes&&_350.attributes.length>0){var _352=m.filter;_351=function(node){return _352(_351.ignoreAttrFilter,node.attributes);};_351.ignoreAttr={};var _354=_350.attributes;var _355=_351.ignoreAttr;for(var i=0;i<_354.length;i++){var a=_354[i];_355[a.name]=a.value;}
_351.ignoreAttrFilter=function(a){return(_351.ignoreAttr[a.name]!=a.value);};_351.compliant=false;_351.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor","cellspacing":"cellSpacing","cellpadding":"cellPadding"};}else{_351=function(node){return node.attributes;};_351.compliant=true;_351.renames={};}
this.attributeArray=_351;var _35a=function(_35b,arr){var _35d=arr[1].split(".");var str="";var obj={};str+="if (!MochiKit."+_35d[1]+") { throw new Error(\"";str+="This function has been deprecated and depends on MochiKit.";str+=_35d[1]+".\");}";str+="return MochiKit."+_35d[1]+"."+arr[0];str+=".apply(this, arguments);";obj[_35d[2]]=new Function(str);MochiKit.Base.update(MochiKit[_35b],obj);};for(var i;i<MochiKit.DOM.DEPRECATED.length;i++){_35a("DOM",MochiKit.DOM.DEPRECATED[i]);}
var _360=this.createDOMFunc;this.UL=_360("ul");this.OL=_360("ol");this.LI=_360("li");this.TD=_360("td");this.TR=_360("tr");this.TBODY=_360("tbody");this.THEAD=_360("thead");this.TFOOT=_360("tfoot");this.TABLE=_360("table");this.TH=_360("th");this.INPUT=_360("input");this.SPAN=_360("span");this.A=_360("a");this.DIV=_360("div");this.IMG=_360("img");this.BUTTON=_360("button");this.TT=_360("tt");this.PRE=_360("pre");this.H1=_360("h1");this.H2=_360("h2");this.H3=_360("h3");this.BR=_360("br");this.HR=_360("hr");this.LABEL=_360("label");this.TEXTAREA=_360("textarea");this.FORM=_360("form");this.P=_360("p");this.SELECT=_360("select");this.OPTION=_360("option");this.OPTGROUP=_360("optgroup");this.LEGEND=_360("legend");this.FIELDSET=_360("fieldset");this.STRONG=_360("strong");this.CANVAS=_360("canvas");this.$=this.getElement;this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};m.nameFunctions(this);}});MochiKit.DOM.__new__(((typeof(window)=="undefined")?this:window));if(MochiKit.__export__){withWindow=MochiKit.DOM.withWindow;withDocument=MochiKit.DOM.withDocument;}
MochiKit.Base._exportSymbols(this,MochiKit.DOM);if(typeof(dojo)!="undefined"){dojo.provide("MochiKit.Style");dojo.require("MochiKit.Base");dojo.require("MochiKit.DOM");}
if(typeof(JSAN)!="undefined"){JSAN.use("MochiKit.Base",[]);JSAN.use("MochiKit.DOM",[]);}
try{if(typeof(MochiKit.Base)=="undefined"){throw"";}}
catch(e){throw"MochiKit.Style depends on MochiKit.Base!";}
try{if(typeof(MochiKit.DOM)=="undefined"){throw"";}}
catch(e){throw"MochiKit.Style depends on MochiKit.DOM!";}
if(typeof(MochiKit.Style)=="undefined"){MochiKit.Style={};}
MochiKit.Style.NAME="MochiKit.Style";MochiKit.Style.VERSION="1.4";MochiKit.Style.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]";};MochiKit.Style.toString=function(){return this.__repr__();};MochiKit.Style.EXPORT_OK=[];MochiKit.Style.EXPORT=["setStyle","setOpacity","getStyle","getElementDimensions","elementDimensions","setElementDimensions","getElementPosition","elementPosition","setElementPosition","setDisplayForElement","hideElement","showElement","getViewportDimensions","getViewportPosition","Dimensions","Coordinates"];MochiKit.Style.Dimensions=function(w,h){this.w=w;this.h=h;};MochiKit.Style.Dimensions.prototype.__repr__=function(){var repr=MochiKit.Base.repr;return"{w: "+repr(this.w)+", h: "+repr(this.h)+"}";};MochiKit.Style.Dimensions.prototype.toString=function(){return this.__repr__();};MochiKit.Style.Coordinates=function(x,y){this.x=x;this.y=y;};MochiKit.Style.Coordinates.prototype.__repr__=function(){var repr=MochiKit.Base.repr;return"{x: "+repr(this.x)+", y: "+repr(this.y)+"}";};MochiKit.Style.Coordinates.prototype.toString=function(){return this.__repr__();};MochiKit.Base.update(MochiKit.Style,{getStyle:function(elem,_368){var dom=MochiKit.DOM;var d=dom._document;elem=dom.getElement(elem);_368=MochiKit.Base.camelize(_368);if(!elem||elem==d){return undefined;}
if(_368=="opacity"&&elem.filters){var _36b=(MochiKit.Style.getStyle(elem,"filter")||"").match(/alpha\(opacity=(.*)\)/);if(_36b&&_36b[1]){return parseFloat(_36b[1])/100;}
return 1;}
var _36c=elem.style?elem.style[_368]:null;if(!_36c){if(d.defaultView&&d.defaultView.getComputedStyle){var css=d.defaultView.getComputedStyle(elem,null);_368=_368.replace(/([A-Z])/g,"-$1").toLowerCase();_36c=css?css.getPropertyValue(_368):null;}else{if(elem.currentStyle){_36c=elem.currentStyle[_368];}}}
if(_368=="opacity"){_36c=parseFloat(_36c);}
if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],_368)!=-1)){if(MochiKit.Style.getStyle(elem,"position")=="static"){_36c="auto";}}
return _36c=="auto"?null:_36c;},setStyle:function(elem,_36f){elem=MochiKit.DOM.getElement(elem);for(var name in _36f){if(name=="opacity"){MochiKit.Style.setOpacity(elem,_36f[name]);}else{elem.style[MochiKit.Base.camelize(name)]=_36f[name];}}},setOpacity:function(elem,o){elem=MochiKit.DOM.getElement(elem);var self=MochiKit.Style;if(o==1){var _374=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent));elem.style["opacity"]=_374?0.999999:1;if(/MSIE/.test(navigator.userAgent)){elem.style["filter"]=self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"");}}else{if(o<0.00001){o=0;}
elem.style["opacity"]=o;if(/MSIE/.test(navigator.userAgent)){elem.style["filter"]=self.getStyle(elem,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+o*100+")";}}},getElementPosition:function(elem,_376){var self=MochiKit.Style;var dom=MochiKit.DOM;elem=dom.getElement(elem);if(!elem||(!(elem.x&&elem.y)&&(!elem.parentNode===null||self.getStyle(elem,"display")=="none"))){return undefined;}
var c=new self.Coordinates(0,0);var box=null;var _37b=null;var d=MochiKit.DOM._document;var de=d.documentElement;var b=d.body;if(!elem.parentNode&&elem.x&&elem.y){c.x+=elem.x||0;c.y+=elem.y||0;}else{if(elem.getBoundingClientRect){box=elem.getBoundingClientRect();c.x+=box.left+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);c.y+=box.top+(de.scrollTop||b.scrollTop)-(de.clientTop||0);}else{if(elem.offsetParent){c.x+=elem.offsetLeft;c.y+=elem.offsetTop;_37b=elem.offsetParent;if(_37b!=elem){while(_37b){c.x+=_37b.offsetLeft;c.y+=_37b.offsetTop;_37b=_37b.offsetParent;}}
var ua=navigator.userAgent.toLowerCase();if((typeof(opera)!="undefined"&&parseFloat(opera.version())<9)||(ua.indexOf("AppleWebKit")!=-1&&self.getStyle(elem,"position")=="absolute")){c.x-=b.offsetLeft;c.y-=b.offsetTop;}}}}
if(typeof(_376)!="undefined"){_376=arguments.callee(_376);if(_376){c.x-=(_376.x||0);c.y-=(_376.y||0);}}
if(elem.parentNode){_37b=elem.parentNode;}else{_37b=null;}
while(_37b){var _380=_37b.tagName.toUpperCase();if(_380==="BODY"||_380==="HTML"){break;}
var disp=self.getStyle(_37b,"display");if(disp!="inline"&&disp!="table-row"){c.x-=_37b.scrollLeft;c.y-=_37b.scrollTop;}
if(_37b.parentNode){_37b=_37b.parentNode;}else{_37b=null;}}
return c;},setElementPosition:function(elem,_383,_384){elem=MochiKit.DOM.getElement(elem);if(typeof(_384)=="undefined"){_384="px";}
var _385={};var _386=MochiKit.Base.isUndefinedOrNull;if(!_386(_383.x)){_385["left"]=_383.x+_384;}
if(!_386(_383.y)){_385["top"]=_383.y+_384;}
MochiKit.DOM.updateNodeAttributes(elem,{"style":_385});},getElementDimensions:function(elem){var self=MochiKit.Style;var dom=MochiKit.DOM;if(typeof(elem.w)=="number"||typeof(elem.h)=="number"){return new self.Dimensions(elem.w||0,elem.h||0);}
elem=dom.getElement(elem);if(!elem){return undefined;}
var disp=self.getStyle(elem,"display");if(disp!="none"&&disp!==""&&typeof(disp)!="undefined"){return new self.Dimensions(elem.offsetWidth||0,elem.offsetHeight||0);}
var s=elem.style;var _38c=s.visibility;var _38d=s.position;s.visibility="hidden";s.position="absolute";s.display="";var _38e=elem.offsetWidth;var _38f=elem.offsetHeight;s.display="none";s.position=_38d;s.visibility=_38c;return new self.Dimensions(_38e,_38f);},setElementDimensions:function(elem,_391,_392){elem=MochiKit.DOM.getElement(elem);if(typeof(_392)=="undefined"){_392="px";}
var _393={};var _394=MochiKit.Base.isUndefinedOrNull;if(!_394(_391.w)){_393["width"]=_391.w+_392;}
if(!_394(_391.h)){_393["height"]=_391.h+_392;}
MochiKit.DOM.updateNodeAttributes(elem,{"style":_393});},setDisplayForElement:function(_395,_396){var _397=MochiKit.Base.extend(null,arguments,1);var _398=MochiKit.DOM.getElement;for(var i=0;i<_397.length;i++){_396=_398(_397[i]);if(_396){_396.style.display=_395;}}},getViewportDimensions:function(){var d=new MochiKit.Style.Dimensions();var w=MochiKit.DOM._window;var b=MochiKit.DOM._document.body;if(w.innerWidth){d.w=w.innerWidth;d.h=w.innerHeight;}else{if(b.parentElement.clientWidth){d.w=b.parentElement.clientWidth;d.h=b.parentElement.clientHeight;}else{if(b&&b.clientWidth){d.w=b.clientWidth;d.h=b.clientHeight;}}}
return d;},getViewportPosition:function(){var c=new MochiKit.Style.Coordinates(0,0);var d=MochiKit.DOM._document;var de=d.documentElement;var db=d.body;if(de&&(de.scrollTop||de.scrollLeft)){c.x=de.scrollLeft;c.y=de.scrollTop;}else{if(db){c.x=db.scrollLeft;c.y=db.scrollTop;}}
return c;},__new__:function(){var m=MochiKit.Base;this.elementPosition=this.getElementPosition;this.elementDimensions=this.getElementDimensions;this.hideElement=m.partial(this.setDisplayForElement,"none");this.showElement=m.partial(this.setDisplayForElement,"block");this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};m.nameFunctions(this);}});MochiKit.Style.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Style);if(typeof(dojo)!="undefined"){dojo.provide("MochiKit.Signal");dojo.require("MochiKit.Base");dojo.require("MochiKit.DOM");dojo.require("MochiKit.Style");}
if(typeof(JSAN)!="undefined"){JSAN.use("MochiKit.Base",[]);JSAN.use("MochiKit.DOM",[]);JSAN.use("MochiKit.Style",[]);}
try{if(typeof(MochiKit.Base)=="undefined"){throw"";}}
catch(e){throw"MochiKit.Signal depends on MochiKit.Base!";}
try{if(typeof(MochiKit.DOM)=="undefined"){throw"";}}
catch(e){throw"MochiKit.Signal depends on MochiKit.DOM!";}
try{if(typeof(MochiKit.Style)=="undefined"){throw"";}}
catch(e){throw"MochiKit.Signal depends on MochiKit.Style!";}
if(typeof(MochiKit.Signal)=="undefined"){MochiKit.Signal={};}
MochiKit.Signal.NAME="MochiKit.Signal";MochiKit.Signal.VERSION="1.4";MochiKit.Signal._observers=[];MochiKit.Signal.Event=function(src,e){this._event=e||window.event;this._src=src;};MochiKit.Base.update(MochiKit.Signal.Event.prototype,{__repr__:function(){var repr=MochiKit.Base.repr;var str="{event(): "+repr(this.event())+", src(): "+repr(this.src())+", type(): "+repr(this.type())+", target(): "+repr(this.target());if(this.type()&&this.type().indexOf("key")===0||this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu"){str+=", modifier(): "+"{alt: "+repr(this.modifier().alt)+", ctrl: "+repr(this.modifier().ctrl)+", meta: "+repr(this.modifier().meta)+", shift: "+repr(this.modifier().shift)+", any: "+repr(this.modifier().any)+"}";}
if(this.type()&&this.type().indexOf("key")===0){str+=", key(): {code: "+repr(this.key().code)+", string: "+repr(this.key().string)+"}";}
if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){str+=", mouse(): {page: "+repr(this.mouse().page)+", client: "+repr(this.mouse().client);if(this.type()!="mousemove"){str+=", button: {left: "+repr(this.mouse().button.left)+", middle: "+repr(this.mouse().button.middle)+", right: "+repr(this.mouse().button.right)+"}}";}else{str+="}";}}
if(this.type()=="mouseover"||this.type()=="mouseout"){str+=", relatedTarget(): "+repr(this.relatedTarget());}
str+="}";return str;},toString:function(){return this.__repr__();},src:function(){return this._src;},event:function(){return this._event;},type:function(){return this._event.type||undefined;},target:function(){return this._event.target||this._event.srcElement;},_relatedTarget:null,relatedTarget:function(){if(this._relatedTarget!==null){return this._relatedTarget;}
var elem=null;if(this.type()=="mouseover"){elem=(this._event.relatedTarget||this._event.fromElement);}else{if(this.type()=="mouseout"){elem=(this._event.relatedTarget||this._event.toElement);}}
if(elem!==null){this._relatedTarget=elem;return elem;}
return undefined;},_modifier:null,modifier:function(){if(this._modifier!==null){return this._modifier;}
var m={};m.alt=this._event.altKey;m.ctrl=this._event.ctrlKey;m.meta=this._event.metaKey||false;m.shift=this._event.shiftKey;m.any=m.alt||m.ctrl||m.shift||m.meta;this._modifier=m;return m;},_key:null,key:function(){if(this._key!==null){return this._key;}
var k={};if(this.type()&&this.type().indexOf("key")===0){if(this.type()=="keydown"||this.type()=="keyup"){k.code=this._event.keyCode;k.string=(MochiKit.Signal._specialKeys[k.code]||"KEY_UNKNOWN");this._key=k;return k;}else{if(this.type()=="keypress"){k.code=0;k.string="";if(typeof(this._event.charCode)!="undefined"&&this._event.charCode!==0&&!MochiKit.Signal._specialMacKeys[this._event.charCode]){k.code=this._event.charCode;k.string=String.fromCharCode(k.code);}else{if(this._event.keyCode&&typeof(this._event.charCode)=="undefined"){k.code=this._event.keyCode;k.string=String.fromCharCode(k.code);}}
this._key=k;return k;}}}
return undefined;},_mouse:null,mouse:function(){if(this._mouse!==null){return this._mouse;}
var m={};var e=this._event;if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){m.client=new MochiKit.Style.Coordinates(0,0);if(e.clientX||e.clientY){m.client.x=(!e.clientX||e.clientX<0)?0:e.clientX;m.client.y=(!e.clientY||e.clientY<0)?0:e.clientY;}
m.page=new MochiKit.Style.Coordinates(0,0);if(e.pageX||e.pageY){m.page.x=(!e.pageX||e.pageX<0)?0:e.pageX;m.page.y=(!e.pageY||e.pageY<0)?0:e.pageY;}else{var de=MochiKit.DOM._document.documentElement;var b=MochiKit.DOM._document.body;m.page.x=e.clientX+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0);m.page.y=e.clientY+(de.scrollTop||b.scrollTop)-(de.clientTop||0);}
if(this.type()!="mousemove"){m.button={};m.button.left=false;m.button.right=false;m.button.middle=false;if(e.which){m.button.left=(e.which==1);m.button.middle=(e.which==2);m.button.right=(e.which==3);}else{m.button.left=!!(e.button&1);m.button.right=!!(e.button&2);m.button.middle=!!(e.button&4);}}
this._mouse=m;return m;}
return undefined;},stop:function(){this.stopPropagation();this.preventDefault();},stopPropagation:function(){if(this._event.stopPropagation){this._event.stopPropagation();}else{this._event.cancelBubble=true;}},preventDefault:function(){if(this._event.preventDefault){this._event.preventDefault();}else{if(this._confirmUnload===null){this._event.returnValue=false;}}},_confirmUnload:null,confirmUnload:function(msg){if(this.type()=="beforeunload"){this._confirmUnload=msg;this._event.returnValue=msg;}}});MochiKit.Signal._specialMacKeys={3:"KEY_ENTER",63289:"KEY_NUM_PAD_CLEAR",63276:"KEY_PAGE_UP",63277:"KEY_PAGE_DOWN",63275:"KEY_END",63273:"KEY_HOME",63234:"KEY_ARROW_LEFT",63232:"KEY_ARROW_UP",63235:"KEY_ARROW_RIGHT",63233:"KEY_ARROW_DOWN",63302:"KEY_INSERT",63272:"KEY_DELETE"};(function(){var _3ae=MochiKit.Signal._specialMacKeys;for(i=63236;i<=63242;i++){_3ae[i]="KEY_F"+(i-63236+1);}})();MochiKit.Signal._specialKeys={8:"KEY_BACKSPACE",9:"KEY_TAB",12:"KEY_NUM_PAD_CLEAR",13:"KEY_ENTER",16:"KEY_SHIFT",17:"KEY_CTRL",18:"KEY_ALT",19:"KEY_PAUSE",20:"KEY_CAPS_LOCK",27:"KEY_ESCAPE",32:"KEY_SPACEBAR",33:"KEY_PAGE_UP",34:"KEY_PAGE_DOWN",35:"KEY_END",36:"KEY_HOME",37:"KEY_ARROW_LEFT",38:"KEY_ARROW_UP",39:"KEY_ARROW_RIGHT",40:"KEY_ARROW_DOWN",44:"KEY_PRINT_SCREEN",45:"KEY_INSERT",46:"KEY_DELETE",59:"KEY_SEMICOLON",91:"KEY_WINDOWS_LEFT",92:"KEY_WINDOWS_RIGHT",93:"KEY_SELECT",106:"KEY_NUM_PAD_ASTERISK",107:"KEY_NUM_PAD_PLUS_SIGN",109:"KEY_NUM_PAD_HYPHEN-MINUS",110:"KEY_NUM_PAD_FULL_STOP",111:"KEY_NUM_PAD_SOLIDUS",144:"KEY_NUM_LOCK",145:"KEY_SCROLL_LOCK",186:"KEY_SEMICOLON",187:"KEY_EQUALS_SIGN",188:"KEY_COMMA",189:"KEY_HYPHEN-MINUS",190:"KEY_FULL_STOP",191:"KEY_SOLIDUS",192:"KEY_GRAVE_ACCENT",219:"KEY_LEFT_SQUARE_BRACKET",220:"KEY_REVERSE_SOLIDUS",221:"KEY_RIGHT_SQUARE_BRACKET",222:"KEY_APOSTROPHE"};(function(){var _3af=MochiKit.Signal._specialKeys;for(var i=48;i<=57;i++){_3af[i]="KEY_"+(i-48);}
for(i=65;i<=90;i++){_3af[i]="KEY_"+String.fromCharCode(i);}
for(i=96;i<=105;i++){_3af[i]="KEY_NUM_PAD_"+(i-96);}
for(i=112;i<=123;i++){_3af[i]="KEY_F"+(i-112+1);}})();MochiKit.Signal.Ident=function(_3b1){this.source=_3b1.source;this.signal=_3b1.signal;this.listener=_3b1.listener;this.isDOM=_3b1.isDOM;this.objOrFunc=_3b1.objOrFunc;this.funcOrStr=_3b1.funcOrStr;this.connected=_3b1.connected;};MochiKit.Signal.Ident.prototype={};MochiKit.Base.update(MochiKit.Signal,{__repr__:function(){return"["+this.NAME+" "+this.VERSION+"]";},toString:function(){return this.__repr__();},_unloadCache:function(){var self=MochiKit.Signal;var _3b3=self._observers;for(var i=0;i<_3b3.length;i++){if(_3b3[i].signal!=="onload"&&_3b3[i].signal!=="onunload"){self._disconnect(_3b3[i]);}}},_listener:function(src,sig,func,obj,_3b9){var self=MochiKit.Signal;var E=self.Event;if(!_3b9){if(typeof(func.im_self)=="undefined"){return MochiKit.Base.bind(func,obj);}else{return func;}}
obj=obj||src;if(typeof(func)=="string"){if(sig==="onload"||sig==="onunload"){return function(_3bc){obj[func].apply(obj,[new E(src,_3bc)]);var _3bd=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:obj,funcOrStr:func});MochiKit.Signal._disconnect(_3bd);};}else{return function(_3be){obj[func].apply(obj,[new E(src,_3be)]);};}}else{if(sig==="onload"||sig==="onunload"){return function(_3bf){func.apply(obj,[new E(src,_3bf)]);MochiKit.Signal.disconnect(src,sig,func);var _3c0=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:func});MochiKit.Signal._disconnect(_3c0);};}else{return function(_3c1){func.apply(obj,[new E(src,_3c1)]);};}}},_browserAlreadyHasMouseEnterAndLeave:function(){return/MSIE/.test(navigator.userAgent);},_mouseEnterListener:function(src,sig,func,obj){var E=MochiKit.Signal.Event;return function(_3c7){var e=new E(src,_3c7);try{e.relatedTarget().nodeName;}
catch(err){return;}
e.stop();if(MochiKit.DOM.isChildNode(e.relatedTarget(),src)){return;}
e.type=function(){return sig;};if(typeof(func)=="string"){return obj[func].apply(obj,[e]);}else{return func.apply(obj,[e]);}};},_getDestPair:function(_3c9,_3ca){var obj=null;var func=null;if(typeof(_3ca)!="undefined"){obj=_3c9;func=_3ca;if(typeof(_3ca)=="string"){if(typeof(_3c9[_3ca])!="function"){throw new Error("'funcOrStr' must be a function on 'objOrFunc'");}}else{if(typeof(_3ca)!="function"){throw new Error("'funcOrStr' must be a function or string");}}}else{if(typeof(_3c9)!="function"){throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given");}else{func=_3c9;}}
return[obj,func];},connect:function(src,sig,_3cf,_3d0){src=MochiKit.DOM.getElement(src);var self=MochiKit.Signal;if(typeof(sig)!="string"){throw new Error("'sig' must be a string");}
var _3d2=self._getDestPair(_3cf,_3d0);var obj=_3d2[0];var func=_3d2[1];if(typeof(obj)=="undefined"||obj===null){obj=src;}
var _3d5=!!(src.addEventListener||src.attachEvent);if(_3d5&&(sig==="onmouseenter"||sig==="onmouseleave")&&!self._browserAlreadyHasMouseEnterAndLeave()){var _3d6=self._mouseEnterListener(src,sig.substr(2),func,obj);if(sig==="onmouseenter"){sig="onmouseover";}else{sig="onmouseout";}}else{var _3d6=self._listener(src,sig,func,obj,_3d5);}
if(src.addEventListener){src.addEventListener(sig.substr(2),_3d6,false);}else{if(src.attachEvent){src.attachEvent(sig,_3d6);}}
var _3d7=new MochiKit.Signal.Ident({source:src,signal:sig,listener:_3d6,isDOM:_3d5,objOrFunc:_3cf,funcOrStr:_3d0,connected:true});self._observers.push(_3d7);if(!_3d5&&typeof(src.__connect__)=="function"){var args=MochiKit.Base.extend([_3d7],arguments,1);src.__connect__.apply(src,args);}
return _3d7;},_disconnect:function(_3d9){if(!_3d9.connected){return;}
_3d9.connected=false;if(!_3d9.isDOM){return;}
var src=_3d9.source;var sig=_3d9.signal;var _3dc=_3d9.listener;if(src.removeEventListener){src.removeEventListener(sig.substr(2),_3dc,false);}else{if(src.detachEvent){src.detachEvent(sig,_3dc);}else{throw new Error("'src' must be a DOM element");}}},disconnect:function(_3dd){var self=MochiKit.Signal;var _3df=self._observers;var m=MochiKit.Base;if(arguments.length>1){var src=MochiKit.DOM.getElement(arguments[0]);var sig=arguments[1];var obj=arguments[2];var func=arguments[3];for(var i=_3df.length-1;i>=0;i--){var o=_3df[i];if(o.source===src&&o.signal===sig&&o.objOrFunc===obj&&o.funcOrStr===func){self._disconnect(o);if(!self._lock){_3df.splice(i,1);}else{self._dirty=true;}
return true;}}}else{var idx=m.findIdentical(_3df,_3dd);if(idx>=0){self._disconnect(_3dd);if(!self._lock){_3df.splice(idx,1);}else{self._dirty=true;}
return true;}}
return false;},disconnectAllTo:function(_3e8,_3e9){var self=MochiKit.Signal;var _3eb=self._observers;var _3ec=self._disconnect;var _3ed=self._lock;var _3ee=self._dirty;if(typeof(_3e9)==="undefined"){_3e9=null;}
for(var i=_3eb.length-1;i>=0;i--){var _3f0=_3eb[i];if(_3f0.objOrFunc===_3e8&&(_3e9===null||_3f0.funcOrStr===_3e9)){_3ec(_3f0);if(_3ed){_3ee=true;}else{_3eb.splice(i,1);}}}
self._dirty=_3ee;},disconnectAll:function(src,sig){src=MochiKit.DOM.getElement(src);var m=MochiKit.Base;var _3f4=m.flattenArguments(m.extend(null,arguments,1));var self=MochiKit.Signal;var _3f6=self._disconnect;var _3f7=self._observers;var i,_3f9;var _3fa=self._lock;var _3fb=self._dirty;if(_3f4.length===0){for(i=_3f7.length-1;i>=0;i--){_3f9=_3f7[i];if(_3f9.source===src){_3f6(_3f9);if(!_3fa){_3f7.splice(i,1);}else{_3fb=true;}}}}else{var sigs={};for(i=0;i<_3f4.length;i++){sigs[_3f4[i]]=true;}
for(i=_3f7.length-1;i>=0;i--){_3f9=_3f7[i];if(_3f9.source===src&&_3f9.signal in sigs){_3f6(_3f9);if(!_3fa){_3f7.splice(i,1);}else{_3fb=true;}}}}
self._dirty=_3fb;},signal:function(src,sig){var self=MochiKit.Signal;var _400=self._observers;src=MochiKit.DOM.getElement(src);var args=MochiKit.Base.extend(null,arguments,2);var _402=[];self._lock=true;for(var i=0;i<_400.length;i++){var _404=_400[i];if(_404.source===src&&_404.signal===sig&&_404.connected){try{_404.listener.apply(src,args);}
catch(e){_402.push(e);}}}
self._lock=false;if(self._dirty){self._dirty=false;for(var i=_400.length-1;i>=0;i--){if(!_400[i].connected){_400.splice(i,1);}}}
if(_402.length==1){throw _402[0];}else{if(_402.length>1){var e=new Error("Multiple errors thrown in handling 'sig', see errors property");e.errors=_402;throw e;}}}});MochiKit.Signal.EXPORT_OK=[];MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll","disconnectAllTo"];MochiKit.Signal.__new__=function(win){var m=MochiKit.Base;this._document=document;this._window=win;this._lock=false;this._dirty=false;try{this.connect(window,"onunload",this._unloadCache);}
catch(e){}
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};m.nameFunctions(this);};MochiKit.Signal.__new__(this);if(MochiKit.__export__){connect=MochiKit.Signal.connect;disconnect=MochiKit.Signal.disconnect;disconnectAll=MochiKit.Signal.disconnectAll;signal=MochiKit.Signal.signal;}
MochiKit.Base._exportSymbols(this,MochiKit.Signal);if(typeof(MochiKit)=="undefined"){MochiKit={};}
if(typeof(MochiKit.MochiKit)=="undefined"){MochiKit.MochiKit={};}
MochiKit.MochiKit.NAME="MochiKit.MochiKit";MochiKit.MochiKit.VERSION="1.4";MochiKit.MochiKit.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]";};MochiKit.MochiKit.toString=function(){return this.__repr__();};MochiKit.MochiKit.SUBMODULES=["Base","Iter","Logging","Async","DOM","Style","Signal",];if(typeof(JSAN)!="undefined"||typeof(dojo)!="undefined"){if(typeof(dojo)!="undefined"){dojo.provide("MochiKit.MochiKit");dojo.require("MochiKit.*");}
if(typeof(JSAN)!="undefined"){(function(lst){for(var i=0;i<lst.length;i++){JSAN.use("MochiKit."+lst[i],[]);}})(MochiKit.MochiKit.SUBMODULES);}
(function(){var _40a=MochiKit.Base.extend;var self=MochiKit.MochiKit;var _40c=self.SUBMODULES;var _40d=[];var _40e=[];var _40f={};var i,k,m,all;for(i=0;i<_40c.length;i++){m=MochiKit[_40c[i]];_40a(_40d,m.EXPORT);_40a(_40e,m.EXPORT_OK);for(k in m.EXPORT_TAGS){_40f[k]=_40a(_40f[k],m.EXPORT_TAGS[k]);}
all=m.EXPORT_TAGS[":all"];if(!all){all=_40a(null,m.EXPORT,m.EXPORT_OK);}
var j;for(j=0;j<all.length;j++){k=all[j];self[k]=m[k];}}
self.EXPORT=_40d;self.EXPORT_OK=_40e;self.EXPORT_TAGS=_40f;}());}else{if(typeof(MochiKit.__compat__)=="undefined"){MochiKit.__compat__=true;}
(function(){if(typeof(document)=="undefined"){return;}
var _415=document.getElementsByTagName("script");var _416="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";var base=null;var _418=null;var _419={};var i;for(i=0;i<_415.length;i++){var src=_415[i].getAttribute("src");if(!src){continue;}
_419[src]=true;if(src.match(/MochiKit.js$/)){base=src.substring(0,src.lastIndexOf("MochiKit.js"));_418=_415[i];}}
if(base===null){return;}
var _41c=MochiKit.MochiKit.SUBMODULES;for(var i=0;i<_41c.length;i++){if(MochiKit[_41c[i]]){continue;}
var uri=base+_41c[i]+".js";if(uri in _419){continue;}
if(document.documentElement&&document.documentElement.namespaceURI==_416){var s=document.createElementNS(_416,"script");s.setAttribute("id","MochiKit_"+base+_41c[i]);s.setAttribute("src",uri);s.setAttribute("type","application/x-javascript");_418.parentNode.appendChild(s);}else{document.write("<script src=\""+uri+"\" type=\"text/javascript\"></script>");}}})();}
var b_version=navigator.appVersion;var IEquirks=b_version.search(/MSIE/i)!=-1;var NS={rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",dc:"http://purl.org/dc/elements/1.1/",cc:"http://web.resource.org/cc/",vcard:"http://www.w3.org/2001/vcard-rdf/3.0#",georss:"http://www.georss.org/georss/",atom:"http://www.w3.org/2005/Atom",none:''};var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS";},searchString:function(data){for(var i=0;i<data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1)
return data[i].identity;}
else if(dataProp)
return data[i].identity;}},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1)return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},dataBrowser:[{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init();function replaceall(str,s1,s2){while(str.indexOf(s1)!=-1){str=str.replace(s1,s2);}
return str;}
var whitespace="\n\r\t ";var dataType={};var valueType={};var xPathCompileSupport=(typeof(XPathResult)!="undefined");if(xPathCompileSupport){dataType={"string":XPathResult.STRING_TYPE,"any":XPathResult.ANY_TYPE,"boolean":XPathResult.BOOLEAN_TYPE,"number":XPathResult.NUMBER_TYPE}
valueType={"string":"stringValue","boolean":"booleanValue","number":"numberValue"}}
function XmlDoc(xml){this.xml=xml;this.access=new XMLparser();}
XmlDoc.prototype.getElements=function(ns,name){var involker=partial(this.access.getElementsByTagNameNS,this.xml);return involker(ns,name);}
function XMLparser(){}
function xmlLoad(url,handler){var d=doXHR(url,{mimeType:'text/xml',Accept:'text/xml'});d.addCallback(handler);d.addErrback(errorHandler);}
function xmlSyncLoad(uri){var req=getXMLHttpRequest();req.open("GET",uri,false);req.send(null);var status=req.status;if(status==200||status==201||status==204||status==304||status==1223){return getDocFromText(req.responseText);}
return"";}
function getDocFromText(text){if(window.ActiveXObject){var doc=new ActiveXObject("Microsoft.XMLDOM");doc.async="false";doc.loadXML(text);}else{var parser=new DOMParser();var doc=parser.parseFromString(text,"text/xml");}
var result=doc.documentElement;return result;}
function errorHandler(err){logError("my error is:",err);if(err.fileName&&err.lineNumber)
logError(err+' on '+err.fileName+':'+err.lineNumber);else
logError(repr(err)+':'+err.message);}
XMLparser.prototype.setXmlDoc=function(xml){this.xmlDomDoc=xml}
XMLparser.prototype.getElementsByTagNameNS=function(parent,ns,name){try{var result=parent.selectNodes('.//'+ns+':'+name);return result;}catch(e){}
try{var result=this.getNodes(NS[ns],name);return result;}catch(e){logError('no getElementNS!');return[];}}
XMLparser.prototype.getAttributeNS=function(node,ns,name){if(node.getAttributeNS){var result=node.getAttributeNS(NS[ns],name);}
else{if(ns!="none"){var result=node.getAttribute(ns+":"+name);}else{var result=node.getAttribute(name);}}
return result;}
XMLparser.prototype.getAttributeNode=function(node,name){var result=node.getAttribute(name);return result;}
XMLparser.prototype.xGetAttrNS=function(node,path,ns,name){var nod=this.getFirstChild(node,path);return this.getAttributeNS(nod,ns,name);}
XMLparser.prototype.getNodes=function(context,path,dtype){var result;if(typeof(context.selectNodes)!="undefined"){path=replaceall(path,"none:","");result=context.selectNodes(path);}
else if(xPathCompileSupport){if(typeof(XPathResult.QueryInterface)=="undefined"){path=replaceall(path,"none:","");}
if(BrowserDetect.browser=='Firefox'){result=this.xmlDomDoc.evaluate(path,context,getNS,dataType[dtype],null);}else{result=document.evaluate(path,context,getNS,dataType[dtype],null);}}
else{result=simpleGetNodes(context,path);}
return result;}
XMLparser.prototype.getChildren=function(node,path){var nodes=this.getChildrenArray(node,path);return iter(nodes);}
XMLparser.prototype.getChildNodes=function(node,path){if(typeof(node.selectNodes)!="undefined"){var nodes=xmlAccess.getChildrenArray(node,path);}
else{var nodes=xmlAccess.getChildren(node,path);}
return nodes;}
XMLparser.prototype.getChildrenArray=function(node,path){var nodes=this.getNodes(node,path,'any');return nodes;}
XMLparser.prototype.getSons=function(node,path){var result=[];if(typeof(node.selectNodes)=="undefined"&&!xPathCompileSupport){result=node.childNodes;result=ifilter(function(node){return node.nodeType=='1';},result);}else{result=this.getNodes(node,path,'any');}
return iter(result);}
XMLparser.prototype.getText=function(node){var result;if(node.text){result=node.text;}else if(node.textContent){result=node.textContent;}else{if(node.childNodes.length>0){result=node.childNodes[0].nodeValue;}}
if(isUndefinedOrNull(result)){result="";}
return result;}
XMLparser.prototype.getCData=function(node){if(node.childNodes.length){var child=node.childNodes[0];if(child.nodeName=='#cdata-section'){return child.data;}}
return"";}
XMLparser.prototype.getSingleChildText=function(node,path){var node=this.getNodes(node,path,"string");if(node){if(node.length){var child=node[0];if(child.text){return child.text;}
else if(child.hasChildNodes()){return child.childNodes[0].nodeValue;}}
else if(xPathCompileSupport){return node[valueType["string"]];}}
return"";}
XMLparser.prototype.getFirstChild=function(node,path,dtype){if(!dtype){dtype='any';}
var nodes=this.getNodes(node,path,dtype);try{if(nodes){return iter(nodes).next();}}catch(e){}
return null;}
function getNS(ns){return NS[ns];}
function simpleGetNodes(node,path){var segments=path.split('/');var result;var tmpNode=[node];var segemntLen=segments.length
for(var i=0;i<segemntLen;i++){var segment=segments[i];if(!segment)continue;var qname=segment.split(':');var ns="";if(qname.length==2){var ns=getNS(qname[0]);var name=qname[1];}
else{var name=qname[0];}
if(tmpNode.length>0){tmpNode=tmpNode[0].getElementsByTagNameNS(ns,name);}
if(!tmpNode){return tmpNode;}}
return tmpNode;}
function isEmpty(str){return(str==null)||(str.length==0);}
function trim(trimString,leftTrim,rightTrim){if(isEmpty(trimString)){return"";}
if(leftTrim==null){leftTrim=true;}
if(rightTrim==null){rightTrim=true;}
var left=0;var right=0;var i=0;var k=0;if(leftTrim==true){while((i<trimString.length)&&(whitespace.indexOf(trimString.charAt(i++))!=-1)){left++;}}
if(rightTrim==true){k=trimString.length-1;while((k>=left)&&(whitespace.indexOf(trimString.charAt(k--))!=-1)){right++;}}
return trimString.substring(left,trimString.length-right);}
function httpFormPost(url,data){var client=getXMLHttpRequest();client.open('POST',url,true);client.onreadystatechange=function(resp){if(client.readyState==4){logDebug("succeed!");}
console.log("resp",resp);}
client.setRequestHeader("Content-Type","application/x-www-form-urlencoded");client.send(data);}