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(B,D){if(B===null||B===undefined){B={}}for(var C=1;C<arguments.length;C++){var E=arguments[C];if(typeof (E)!="undefined"&&E!==null){for(var A in E){B[A]=E[A]}}}return B};MochiKit.Base.update(MochiKit.Base,{__repr__:function(){return"["+this.NAME+" "+this.VERSION+"]"},toString:function(){return this.__repr__()},camelize:function(B){var A=B.split("-");var D=A[0];for(var C=1;C<A.length;C++){D+=A[C].charAt(0).toUpperCase()+A[C].substring(1)}return D},counter:function(A){if(arguments.length===0){A=1}return function(){return A++}},clone:function(B){var A=arguments.callee;if(arguments.length==1){A.prototype=B;return new A()}},_flattenArray:function(C,A){for(var B=0;B<A.length;B++){var D=A[B];if(D instanceof Array){arguments.callee(C,D)}else{C.push(D)}}return C},flattenArray:function(A){return MochiKit.Base._flattenArray([],A)},flattenArguments:function(B){var E=[];var A=MochiKit.Base;var C=A.extend(null,arguments);while(C.length){var F=C.shift();if(F&&typeof (F)=="object"&&typeof (F.length)=="number"){for(var D=F.length-1;D>=0;D--){C.unshift(F[D])}}else{E.push(F)}}return E},extend:function(B,E,D){if(!D){D=0}if(E){var A=E.length;if(typeof (A)!="number"){if(typeof (MochiKit.Iter)!="undefined"){E=MochiKit.Iter.list(E);A=E.length}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present")}}if(!B){B=[]}for(var C=D;C<A;C++){B.push(E[C])}}return B},updatetree:function(C,E){if(C===null||C===undefined){C={}}for(var D=1;D<arguments.length;D++){var F=arguments[D];if(typeof (F)!="undefined"&&F!==null){for(var B in F){var A=F[B];if(typeof (C[B])=="object"&&typeof (A)=="object"){arguments.callee(C[B],A)}else{C[B]=A}}}}return C},setdefault:function(B,D){if(B===null||B===undefined){B={}}for(var C=1;C<arguments.length;C++){var E=arguments[C];for(var A in E){if(!(A in B)){B[A]=E[A]}}}return B},keys:function(B){var A=[];for(var C in B){A.push(C)}return A},values:function(B){var A=[];for(var C in B){A.push(B[C])}return A},items:function(D){var C=[];var B;for(var E in D){var A;try{A=D[E]}catch(B){continue}C.push([E,A])}return C},_newNamedError:function(B,A,C){C.prototype=new MochiKit.Base.NamedError(B.NAME+"."+A);B[A]=C},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(B,A){return B+A},sub:function(B,A){return B-A},div:function(B,A){return B/A},mod:function(B,A){return B%A},mul:function(B,A){return B*A},and:function(B,A){return B&A},or:function(B,A){return B|A},xor:function(B,A){return B^A},lshift:function(B,A){return B<<A},rshift:function(B,A){return B>>A},zrshift:function(B,A){return B>>>A},eq:function(B,A){return B==A},ne:function(B,A){return B!=A},gt:function(B,A){return B>A},ge:function(B,A){return B>=A},lt:function(B,A){return B<A},le:function(B,A){return B<=A},seq:function(B,A){return B===A},sne:function(B,A){return B!==A},ceq:function(B,A){return MochiKit.Base.compare(B,A)===0},cne:function(B,A){return MochiKit.Base.compare(B,A)!==0},cgt:function(B,A){return MochiKit.Base.compare(B,A)==1},cge:function(B,A){return MochiKit.Base.compare(B,A)!=-1},clt:function(B,A){return MochiKit.Base.compare(B,A)==-1},cle:function(B,A){return MochiKit.Base.compare(B,A)!=1},logand:function(B,A){return B&&A},logor:function(B,A){return B||A},contains:function(B,A){return A in B}},forwardCall:function(A){return function(){return this[A].apply(this,arguments)}},itemgetter:function(A){return function(B){return B[A]}},typeMatcher:function(){var B={};for(var A=0;A<arguments.length;A++){var C=arguments[A];B[C]=C}return function(){for(var D=0;D<arguments.length;D++){if(!(typeof (arguments[D]) in B)){return false}}return true}},isNull:function(){for(var A=0;A<arguments.length;A++){if(arguments[A]!==null){return false}}return true},isUndefinedOrNull:function(){for(var A=0;A<arguments.length;A++){var B=arguments[A];if(!(typeof (B)=="undefined"||B===null)){return false}}return true},isEmpty:function(A){return !MochiKit.Base.isNotEmpty.apply(this,arguments)},isNotEmpty:function(B){for(var A=0;A<arguments.length;A++){var C=arguments[A];if(!(C&&C.length)){return false}}return true},isArrayLike:function(){for(var A=0;A<arguments.length;A++){var C=arguments[A];var B=typeof (C);if((B!="object"&&!(B=="function"&&typeof (C.item)=="function"))||C===null||typeof (C.length)!="number"||C.nodeType===3||C.nodeType===4){return false}}return true},isDateLike:function(){for(var A=0;A<arguments.length;A++){var B=arguments[A];if(typeof (B)!="object"||B===null||typeof (B.getTime)!="function"){return false}}return true},xmap:function(B){if(B===null){return MochiKit.Base.extend(null,arguments,1)}var C=[];for(var A=1;A<arguments.length;A++){C.push(B(arguments[A]))}return C},map:function(J,F){var B=MochiKit.Base;var H=MochiKit.Iter;var K=B.isArrayLike;if(arguments.length<=2){if(!K(F)){if(H){F=H.list(F);if(J===null){return F}}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present")}}if(J===null){return B.extend(null,F)}var G=[];for(var E=0;E<F.length;E++){G.push(J(F[E]))}return G}else{if(J===null){J=Array}var A=null;for(E=1;E<arguments.length;E++){if(!K(arguments[E])){if(H){return H.list(H.imap.apply(null,arguments))}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present")}}var C=arguments[E].length;if(A===null||A>C){A=C}}G=[];for(E=0;E<A;E++){var I=[];for(var D=1;D<arguments.length;D++){I.push(arguments[D][E])}G.push(J.apply(this,I))}return G}},xfilter:function(B){var C=[];if(B===null){B=MochiKit.Base.operator.truth}for(var A=1;A<arguments.length;A++){var D=arguments[A];if(B(D)){C.push(D)}}return C},filter:function(E,B,C){var F=[];var A=MochiKit.Base;if(!A.isArrayLike(B)){if(MochiKit.Iter){B=MochiKit.Iter.list(B)}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present")}}if(E===null){E=A.operator.truth}if(typeof (Array.prototype.filter)=="function"){return Array.prototype.filter.call(B,E,C)}else{if(typeof (C)=="undefined"||C===null){for(var D=0;D<B.length;D++){var G=B[D];if(E(G)){F.push(G)}}}else{for(D=0;D<B.length;D++){G=B[D];if(E.call(C,G)){F.push(G)}}}}return F},_wrapDumbFunction:function(func){return function(){switch(arguments.length){case 0:return func();case 1:return func(arguments[0]);case 2:return func(arguments[0],arguments[1]);case 3:return func(arguments[0],arguments[1],arguments[2])}var args=[];for(var i=0;i<arguments.length;i++){args.push("arguments["+i+"]")}return eval("(func("+args.join(",")+"))")}},methodcaller:function(B){var A=MochiKit.Base.extend(null,arguments,1);if(typeof (B)=="function"){return function(C){return B.apply(C,A)}}else{return function(C){return C[B].apply(C,A)}}},method:function(B,C){var A=MochiKit.Base;return A.bind.apply(this,A.extend([C,B],arguments,2))},compose:function(B,F){var E=[];var A=MochiKit.Base;if(arguments.length===0){throw new TypeError("compose() requires at least one argument")}for(var C=0;C<arguments.length;C++){var D=arguments[C];if(typeof (D)!="function"){throw new TypeError(A.repr(D)+" is not a function")}E.push(D)}return function(){var G=arguments;for(var H=E.length-1;H>=0;H--){G=[E[H].apply(this,G)]}return G[0]}},bind:function(E,C){if(typeof (E)=="string"){E=C[E]}var D=E.im_func;var G=E.im_preargs;var B=E.im_self;var A=MochiKit.Base;if(typeof (E)=="function"&&typeof (E.apply)=="undefined"){E=A._wrapDumbFunction(E)}if(typeof (D)!="function"){D=E}if(typeof (C)!="undefined"){B=C}if(typeof (G)=="undefined"){G=[]}else{G=G.slice()}A.extend(G,arguments,2);var F=function(){var I=arguments;var J=arguments.callee;if(J.im_preargs.length>0){I=A.concat(J.im_preargs,I)}var H=J.im_self;if(!H){H=this}return J.im_func.apply(H,I)};F.im_self=B;F.im_func=D;F.im_preargs=G;return F},bindMethods:function(B){var D=MochiKit.Base.bind;for(var A in B){var C=B[A];if(typeof (C)=="function"){B[A]=D(C,B)}}},registerComparator:function(C,B,A,D){MochiKit.Base.comparatorRegistry.register(C,B,A,D)},_primitives:{"boolean":true,"string":true,"number":true},compare:function(F,B){if(F==B){return 0}var E=(typeof (F)=="undefined"||F===null);var G=(typeof (B)=="undefined"||B===null);if(E&&G){return 0}else{if(E){return -1}else{if(G){return 1}}}var A=MochiKit.Base;var D=A._primitives;if(!(typeof (F) in D&&typeof (B) in D)){try{return A.comparatorRegistry.match(F,B)}catch(H){if(H!=A.NotFound){throw H}}}if(F<B){return -1}else{if(F>B){return 1}}var C=A.repr;throw new TypeError(C(F)+" and "+C(B)+" can not be compared")},compareDateLike:function(B,A){return MochiKit.Base.compare(B.getTime(),A.getTime())},compareArrayLike:function(B,A){var F=MochiKit.Base.compare;var E=B.length;var G=0;if(E>A.length){G=1;E=A.length}else{if(E<A.length){G=-1}}for(var C=0;C<E;C++){var D=F(B[C],A[C]);if(D){return D}}return G},registerRepr:function(B,A,D,C){MochiKit.Base.reprRegistry.register(B,A,D,C)},repr:function(D){if(typeof (D)=="undefined"){return"undefined"}else{if(D===null){return"null"}}try{if(typeof (D.__repr__)=="function"){return D.__repr__()}else{if(typeof (D.repr)=="function"&&D.repr!=arguments.callee){return D.repr()}}return MochiKit.Base.reprRegistry.match(D)}catch(B){if(typeof (D.NAME)=="string"&&(D.toString==Function.prototype.toString||D.toString==Object.prototype.toString)){return D.NAME}}try{var C=(D+"")}catch(B){return"["+typeof (D)+"]"}if(typeof (D)=="function"){C=C.replace(/^\s+/,"").replace(/\s+/g," ");var A=C.indexOf("{");if(A!=-1){C=C.substr(0,A)+"{...}"}}return C},reprArrayLike:function(B){var A=MochiKit.Base;return"["+A.map(A.repr,B).join(", ")+"]"},reprString:function(A){return("\""+A.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(A){return A+""},registerJSON:function(B,A,D,C){MochiKit.Base.jsonRegistry.register(B,A,D,C)},evalJSON:function(){return eval("("+MochiKit.Base._filterJSON(arguments[0])+")")},_filterJSON:function(B){var A=B.match(/^\s*\/\*(.*)\*\/\s*$/);if(A){return A[1]}return B},serializeJSON:function(A){var K=typeof (A);if(K=="number"||K=="boolean"){return A+""}else{if(A===null){return"null"}}var C=MochiKit.Base;var L=C.reprString;if(K=="string"){return L(A)}var J=arguments.callee;var E;if(typeof (A.__json__)=="function"){E=A.__json__();if(A!==E){return J(E)}}if(typeof (A.json)=="function"){E=A.json();if(A!==E){return J(E)}}if(K!="function"&&typeof (A.length)=="number"){var I=[];for(var G=0;G<A.length;G++){var B=J(A[G]);if(typeof (B)!="string"){B="undefined"}I.push(B)}return"["+I.join(", ")+"]"}try{E=C.jsonRegistry.match(A);if(A!==E){return J(E)}}catch(H){if(H!=C.NotFound){throw H}}if(K=="undefined"){throw new TypeError("undefined can not be serialized as JSON")}if(K=="function"){return null}I=[];for(var D in A){var F;if(typeof (D)=="number"){F="\""+D+"\""}else{if(typeof (D)=="string"){F=L(D)}else{continue}}B=J(A[D]);if(typeof (B)!="string"){continue}I.push(F+":"+B)}return"{"+I.join(", ")+"}"},objEqual:function(B,A){return(MochiKit.Base.compare(B,A)===0)},arrayEqual:function(B,A){if(B.length!=A.length){return false}return(MochiKit.Base.compare(B,A)===0)},concat:function(){var B=[];var C=MochiKit.Base.extend;for(var A=0;A<arguments.length;A++){C(B,arguments[A])}return B},keyComparator:function(B){var A=MochiKit.Base;var D=A.compare;if(arguments.length==1){return function(F,E){return D(F[B],E[B])}}var C=A.extend(null,arguments);return function(F,E){var I=0;for(var H=0;(I===0)&&(H<C.length);H++){var G=C[H];I=D(F[G],E[G])}return I}},reverseKeyComparator:function(B){var A=MochiKit.Base.keyComparator.apply(this,arguments);return function(D,C){return A(C,D)}},partial:function(B){var A=MochiKit.Base;return A.bind.apply(this,A.extend([B,undefined],arguments,1))},listMinMax:function(F,A){if(A.length===0){return null}var E=A[0];var C=MochiKit.Base.compare;for(var B=1;B<A.length;B++){var D=A[B];if(C(D,E)==F){E=D}}return E},objMax:function(){return MochiKit.Base.listMinMax(1,arguments)},objMin:function(){return MochiKit.Base.listMinMax(-1,arguments)},findIdentical:function(A,D,E,B){if(typeof (B)=="undefined"||B===null){B=A.length}if(typeof (E)=="undefined"||E===null){E=0}for(var C=E;C<B;C++){if(A[C]===D){return C}}return -1},mean:function(){var D=0;var A=MochiKit.Base;var B=A.extend(null,arguments);var E=B.length;while(B.length){var F=B.shift();if(F&&typeof (F)=="object"&&typeof (F.length)=="number"){E+=F.length-1;for(var C=F.length-1;C>=0;C--){D+=F[C]}}else{D+=F}}if(E<=0){throw new TypeError("mean() requires at least one argument")}return D/E},median:function(){var B=MochiKit.Base.flattenArguments(arguments);if(B.length===0){throw new TypeError("median() requires at least one argument")}B.sort(compare);if(B.length%2==0){var A=B.length/2;return(B[A]+B[A-1])/2}else{return B[(B.length-1)/2]}},findValue:function(A,E,F,B){if(typeof (B)=="undefined"||B===null){B=A.length}if(typeof (F)=="undefined"||F===null){F=0}var D=MochiKit.Base.compare;for(var C=F;C<B;C++){if(D(A[C],E)===0){return C}}return -1},nodeWalk:function(C,D){var A=[C];var E=MochiKit.Base.extend;while(A.length){var B=D(A.shift());if(B){E(A,B)}}},nameFunctions:function(B){var C=B.NAME;if(typeof (C)=="undefined"){C=""}else{C=C+"."}for(var A in B){var E=B[A];if(typeof (E)=="function"&&typeof (E.NAME)=="undefined"){try{E.NAME=C+A}catch(D){}}}},queryString:function(H,I){if(typeof (MochiKit.DOM)!="undefined"&&arguments.length==1&&(typeof (H)=="string"||(typeof (H.nodeType)!="undefined"&&H.nodeType>0))){var G=MochiKit.DOM.formContents(H);H=G[0];I=G[1]}else{if(arguments.length==1){if(typeof (H.length)=="number"&&H.length==2){return arguments.callee(H[0],H[1])}var A=H;H=[];I=[];for(var B in A){var J=A[B];if(typeof (J)=="function"){continue}else{if(MochiKit.Base.isArrayLike(J)){for(var D=0;D<J.length;D++){H.push(B);I.push(J[D])}}else{H.push(B);I.push(J)}}}}}var E=[];var F=Math.min(H.length,I.length);var C=MochiKit.Base.urlEncode;for(var D=0;D<F;D++){J=I[D];if(typeof (J)!="undefined"&&J!==null){E.push(C(H[D])+"="+C(J))}}return E.join("&")},parseQueryString:function(I,J){var E=(I.charAt(0)=="?")?I.substring(1):I;var C=E.replace(/\+/g,"%20").split(/(\&amp\;|\&\#38\;|\&#x26;|\&)/);var D={};var A;if(typeof (decodeURIComponent)!="undefined"){A=decodeURIComponent}else{A=unescape}if(J){for(var G=0;G<C.length;G++){var F=C[G].split("=");var B=A(F.shift());if(!B){continue}var H=D[B];if(!(H instanceof Array)){H=[];D[B]=H}H.push(A(F.join("=")))}}else{for(G=0;G<C.length;G++){F=C[G].split("=");var B=F.shift();if(!B){continue}D[A(B)]=A(F.join("="))}}return D}});MochiKit.Base.AdapterRegistry=function(){this.pairs=[]};MochiKit.Base.AdapterRegistry.prototype={register:function(B,A,D,C){if(C){this.pairs.unshift([B,A,D])}else{this.pairs.push([B,A,D])}},match:function(){for(var A=0;A<this.pairs.length;A++){var B=this.pairs[A];if(B[1].apply(this,arguments)){return B[2].apply(this,arguments)}}throw MochiKit.Base.NotFound},unregister:function(A){for(var B=0;B<this.pairs.length;B++){var C=this.pairs[B];if(C[0]==A){this.pairs.splice(B,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(D,B){if(!MochiKit.__export__){return }var C=B.EXPORT_TAGS[":all"];for(var A=0;A<C.length;A++){D[C[A]]=B[C[A]]}};MochiKit.Base.__new__=function(){var A=this;A.noop=A.operator.identity;A.forward=A.forwardCall;A.find=A.findValue;if(typeof (encodeURIComponent)!="undefined"){A.urlEncode=function(C){return encodeURIComponent(C).replace(/\'/g,"%27")}}else{A.urlEncode=function(C){return escape(C).replace(/\+/g,"%2B").replace(/\"/g,"%22").rval.replace(/\'/g,"%27")}}A.NamedError=function(C){this.message=C;this.name=C};A.NamedError.prototype=new Error();A.update(A.NamedError.prototype,{repr:function(){if(this.message&&this.message!=this.name){return this.name+"("+A.repr(this.message)+")"}else{return this.name+"()"}},toString:A.forwardCall("repr")});A.NotFound=new A.NamedError("MochiKit.Base.NotFound");A.listMax=A.partial(A.listMinMax,1);A.listMin=A.partial(A.listMinMax,-1);A.isCallable=A.typeMatcher("function");A.isUndefined=A.typeMatcher("undefined");A.merge=A.partial(A.update,null);A.zip=A.partial(A.map,null);A.average=A.mean;A.comparatorRegistry=new A.AdapterRegistry();A.registerComparator("dateLike",A.isDateLike,A.compareDateLike);A.registerComparator("arrayLike",A.isArrayLike,A.compareArrayLike);A.reprRegistry=new A.AdapterRegistry();A.registerRepr("arrayLike",A.isArrayLike,A.reprArrayLike);A.registerRepr("string",A.typeMatcher("string"),A.reprString);A.registerRepr("numbers",A.typeMatcher("number","boolean"),A.reprNumber);A.jsonRegistry=new A.AdapterRegistry();var B=A.concat(A.EXPORT,A.EXPORT_OK);A.EXPORT_TAGS={":common":A.concat(A.EXPORT_OK),":all":B};A.nameFunctions(this)};MochiKit.Base.__new__();if(MochiKit.__export__){compare=MochiKit.Base.compare;compose=MochiKit.Base.compose;serializeJSON=MochiKit.Base.serializeJSON;mean=MochiKit.Base.mean;median=MochiKit.Base.median}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(B,A,D,C){MochiKit.Iter.iteratorRegistry.register(B,A,D,C)},iter:function(D,C){var B=MochiKit.Iter;if(arguments.length==2){return B.takewhile(function(F){return F!=C},D)}if(typeof (D.next)=="function"){return D}else{if(typeof (D.iter)=="function"){return D.iter()}}try{return B.iteratorRegistry.match(D)}catch(E){var A=MochiKit.Base;if(E==A.NotFound){E=new TypeError(typeof (D)+": "+A.repr(D)+" is not iterable")}throw E}},count:function(B){if(!B){B=0}var A=MochiKit.Base;return{repr:function(){return"count("+B+")"},toString:A.forwardCall("repr"),next:A.counter(B)}},cycle:function(E){var C=MochiKit.Iter;var B=MochiKit.Base;var A=[];var D=C.iter(E);return{repr:function(){return"cycle(...)"},toString:B.forwardCall("repr"),next:function(){try{var H=D.next();A.push(H);return H}catch(G){if(G!=C.StopIteration){throw G}if(A.length===0){this.next=function(){throw C.StopIteration}}else{var F=-1;this.next=function(){F=(F+1)%A.length;return A[F]}}return this.next()}}}},repeat:function(B,C){var A=MochiKit.Base;if(typeof (C)=="undefined"){return{repr:function(){return"repeat("+A.repr(B)+")"},toString:A.forwardCall("repr"),next:function(){return B}}}return{repr:function(){return"repeat("+A.repr(B)+", "+C+")"},toString:A.forwardCall("repr"),next:function(){if(C<=0){throw MochiKit.Iter.StopIteration}C-=1;return B}}},next:function(A){return A.next()},izip:function(F,E){var A=MochiKit.Base;var C=MochiKit.Iter;var D=C.next;var B=A.map(C.iter,arguments);return{repr:function(){return"izip(...)"},toString:A.forwardCall("repr"),next:function(){return A.map(D,B)}}},ifilter:function(C,B){var A=MochiKit.Base;B=MochiKit.Iter.iter(B);if(C===null){C=A.operator.truth}return{repr:function(){return"ifilter(...)"},toString:A.forwardCall("repr"),next:function(){while(true){var D=B.next();if(C(D)){return D}}return undefined}}},ifilterfalse:function(C,B){var A=MochiKit.Base;B=MochiKit.Iter.iter(B);if(C===null){C=A.operator.truth}return{repr:function(){return"ifilterfalse(...)"},toString:A.forwardCall("repr"),next:function(){while(true){var D=B.next();if(!C(D)){return D}}return undefined}}},islice:function(C){var B=MochiKit.Iter;var A=MochiKit.Base;C=B.iter(C);var G=0;var E=0;var F=1;var D=-1;if(arguments.length==2){E=arguments[1]}else{if(arguments.length==3){G=arguments[1];E=arguments[2]}else{G=arguments[1];E=arguments[2];F=arguments[3]}}return{repr:function(){return"islice("+["...",G,E,F].join(", ")+")"},toString:A.forwardCall("repr"),next:function(){var H;while(D<G){H=C.next();D++}if(G>=E){throw B.StopIteration}G+=F;return H}}},imap:function(C,H,F){var A=MochiKit.Base;var D=MochiKit.Iter;var B=A.map(D.iter,A.extend(null,arguments,1));var G=A.map;var E=D.next;return{repr:function(){return"imap(...)"},toString:A.forwardCall("repr"),next:function(){return C.apply(this,G(E,B))}}},applymap:function(B,D,C){D=MochiKit.Iter.iter(D);var A=MochiKit.Base;return{repr:function(){return"applymap(...)"},toString:A.forwardCall("repr"),next:function(){return B.apply(C,D.next())}}},chain:function(E,D){var C=MochiKit.Iter;var B=MochiKit.Base;if(arguments.length==1){return C.iter(arguments[0])}var A=B.map(C.iter,arguments);return{repr:function(){return"chain(...)"},toString:B.forwardCall("repr"),next:function(){while(A.length>1){try{return A[0].next()}catch(G){if(G!=C.StopIteration){throw G}A.shift()}}if(A.length==1){var F=A.shift();this.next=B.bind("next",F);return this.next()}throw C.StopIteration}}},takewhile:function(C,B){var A=MochiKit.Iter;B=A.iter(B);return{repr:function(){return"takewhile(...)"},toString:MochiKit.Base.forwardCall("repr"),next:function(){var D=B.next();if(!C(D)){this.next=function(){throw A.StopIteration};this.next()}return D}}},dropwhile:function(C,B){B=MochiKit.Iter.iter(B);var A=MochiKit.Base;var D=A.bind;return{"repr":function(){return"dropwhile(...)"},"toString":A.forwardCall("repr"),"next":function(){while(true){var E=B.next();if(!C(E)){break}}this.next=D("next",B);return E}}},_tee:function(E,C,D){C.pos[E]=-1;var A=MochiKit.Base;var B=A.listMin;return{repr:function(){return"tee("+E+", ...)"},toString:A.forwardCall("repr"),next:function(){var G;var F=C.pos[E];if(F==C.max){G=D.next();C.deque.push(G);C.max+=1;C.pos[E]+=1}else{G=C.deque[F-C.min];C.pos[E]+=1;if(F==C.min&&B(C.pos)!=C.min){C.min+=1;C.deque.shift()}}return G}}},tee:function(E,G){var F=[];var D={"pos":[],"deque":[],"max":-1,"min":-1};if(arguments.length==1||typeof (G)=="undefined"||G===null){G=2}var B=MochiKit.Iter;E=B.iter(E);var A=B._tee;for(var C=0;C<G;C++){F.push(A(C,D,E))}return F},list:function(C){var E;if(C instanceof Array){return C.slice()}if(typeof (C)=="function"&&!(C instanceof Function)&&typeof (C.length)=="number"){E=[];for(var B=0;B<C.length;B++){E.push(C[B])}return E}var A=MochiKit.Iter;C=A.iter(C);var E=[];try{while(true){E.push(C.next())}}catch(D){if(D!=A.StopIteration){throw D}return E}return undefined},reduce:function(E,F,C){var D=0;var A=C;var B=MochiKit.Iter;F=B.iter(F);if(arguments.length<3){try{A=F.next()}catch(G){if(G==B.StopIteration){G=new TypeError("reduce() of empty sequence with no initial value")}throw G}D++}try{while(true){A=E(A,F.next())}}catch(G){if(G!=B.StopIteration){throw G}}return A},range:function(){var C=0;var A=0;var B=1;if(arguments.length==1){A=arguments[0]}else{if(arguments.length==2){C=arguments[0];A=arguments[1]}else{if(arguments.length==3){C=arguments[0];A=arguments[1];B=arguments[2]}else{throw new TypeError("range() takes 1, 2, or 3 arguments!")}}}if(B===0){throw new TypeError("range() step must not be 0")}return{next:function(){if((B>0&&C>=A)||(B<0&&C<=A)){throw MochiKit.Iter.StopIteration}var D=C;C+=B;return D},repr:function(){return"range("+[C,A,B].join(", ")+")"},toString:MochiKit.Base.forwardCall("repr")}},sum:function(C,E){if(typeof (E)=="undefined"||E===null){E=0}var A=E;var B=MochiKit.Iter;C=B.iter(C);try{while(true){A+=C.next()}}catch(D){if(D!=B.StopIteration){throw D}}return A},exhaust:function(B){var A=MochiKit.Iter;B=A.iter(B);try{while(true){B.next()}}catch(C){if(C!=A.StopIteration){throw C}}},forEach:function(E,D,B){var A=MochiKit.Base;if(arguments.length>2){D=A.bind(D,B)}if(A.isArrayLike(E)){try{for(var C=0;C<E.length;C++){D(E[C])}}catch(F){if(F!=MochiKit.Iter.StopIteration){throw F}}}else{B=MochiKit.Iter;B.exhaust(B.imap(D,E))}},every:function(C,B){var A=MochiKit.Iter;try{A.ifilterfalse(B,C).next();return false}catch(D){if(D!=A.StopIteration){throw D}return true}},sorted:function(B,A){var C=MochiKit.Iter.list(B);if(arguments.length==1){A=MochiKit.Base.compare}C.sort(A);return C},reversed:function(A){var B=MochiKit.Iter.list(A);B.reverse();return B},some:function(C,B){var A=MochiKit.Iter;try{A.ifilter(B,C).next();return true}catch(D){if(D!=A.StopIteration){throw D}return false}},iextend:function(A,D){if(MochiKit.Base.isArrayLike(D)){for(var C=0;C<D.length;C++){A.push(D[C])}}else{var B=MochiKit.Iter;D=B.iter(D);try{while(true){A.push(D.next())}}catch(E){if(E!=B.StopIteration){throw E}}}return A},groupby:function(D,I){var E=MochiKit.Base;var K=MochiKit.Iter;if(arguments.length<2){I=E.operator.identity}D=K.iter(D);var G=undefined;var F=undefined;var J;function A(){J=D.next();F=I(J)}function C(){var L=J;J=undefined;return L}var H=true;var B=E.compare;return{repr:function(){return"groupby(...)"},next:function(){while(B(F,G)===0){A();if(H){H=false;break}}G=F;return[F,{next:function(){if(J==undefined){A()}if(B(F,G)!==0){throw K.StopIteration}return C()}}]}}},groupby_as_array:function(B,G){var C=MochiKit.Base;var K=MochiKit.Iter;if(arguments.length<2){G=C.operator.identity}B=K.iter(B);var L=[];var D=true;var E;var A=C.compare;while(true){try{var H=B.next();var J=G(H)}catch(F){if(F==K.StopIteration){break}throw F}if(D||A(J,E)!==0){var I=[];L.push([J,I])}I.push(H);D=false;E=J}return L},arrayLikeIter:function(B){var A=0;return{repr:function(){return"arrayLikeIter(...)"},toString:MochiKit.Base.forwardCall("repr"),next:function(){if(A>=B.length){throw MochiKit.Iter.StopIteration}return B[A++]}}},hasIterateNext:function(A){return(A&&typeof (A.iterateNext)=="function")},iterateNextIter:function(A){return{repr:function(){return"iterateNextIter(...)"},toString:MochiKit.Base.forwardCall("repr"),next:function(){var B=A.iterateNext();if(B===null||B===undefined){throw MochiKit.Iter.StopIteration}return B}}}});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 A=MochiKit.Base;if(typeof (StopIteration)!="undefined"){this.StopIteration=StopIteration}else{this.StopIteration=new A.NamedError("StopIteration")}this.iteratorRegistry=new A.AdapterRegistry();this.registerIteratorFactory("arrayLike",A.isArrayLike,this.arrayLikeIter);this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter);this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.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.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","DL","DT","DD","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(G,D){var C=MochiKit.DOM;var B=C._document;var A=C._window;var F;try{C._window=G;C._document=G.document;F=D()}catch(E){C._window=A;C._document=B;throw E}C._window=A;C._document=B;return F},formContents:function(D){var E=[];var C=[];var A=MochiKit.Base;var B=MochiKit.DOM;if(typeof (D)=="undefined"||D===null){D=B._document.body}else{D=B.getElement(D)}A.nodeWalk(D,function(M){var G=M.name;if(A.isNotEmpty(G)){var J=M.tagName.toUpperCase();if(J==="INPUT"&&(M.type=="radio"||M.type=="checkbox")&&!M.checked){return null}if(J==="SELECT"){if(M.type=="select-one"){if(M.selectedIndex>=0){var I=M.options[M.selectedIndex];var F=I.value;if(!F){var K=I.outerHTML;if(K&&!K.match(/^[^>]+\svalue\s*=/i)){F=I.text}}E.push(G);C.push(F);return null}E.push(G);C.push("");return null}else{var L=M.options;if(!L.length){E.push(G);C.push("");return null}for(var H=0;H<L.length;H++){var I=L[H];if(!I.selected){continue}var F=I.value;if(!F){var K=I.outerHTML;if(K&&!K.match(/^[^>]+\svalue\s*=/i)){F=I.text}}E.push(G);C.push(F)}return null}}if(J==="FORM"||J==="P"||J==="SPAN"||J==="DIV"){return M.childNodes}E.push(G);C.push(M.value||"");return null}return M.childNodes});return[E,C]},withDocument:function(F,C){var B=MochiKit.DOM;var A=B._document;var E;try{B._document=F;E=C()}catch(D){B._document=A;throw D}B._document=A;return E},registerDOMConverter:function(B,A,D,C){MochiKit.DOM.domConverters.register(B,A,D,C)},coerceToDOM:function(D,M){var E=MochiKit.Base;var I=MochiKit.Iter;var L=MochiKit.DOM;if(I){var J=I.iter;var B=I.repeat;var A=E.map}var K=L.domConverters;var C=arguments.callee;var G=E.NotFound;while(true){if(typeof (D)=="undefined"||D===null){return null}if(typeof (D)=="function"&&typeof (D.length)=="number"&&!(D instanceof Function)){D=I.list(D)}if(typeof (D.nodeType)!="undefined"&&D.nodeType>0){return D}if(typeof (D)=="number"||typeof (D)=="boolean"){D=D.toString()}if(typeof (D)=="string"){return L._document.createTextNode(D)}if(typeof (D.__dom__)=="function"){D=D.__dom__(M);continue}if(typeof (D.dom)=="function"){D=D.dom(M);continue}if(typeof (D)=="function"){D=D.apply(M,[M]);continue}if(I){var F=null;try{F=J(D)}catch(H){}if(F){return A(C,F,B(M))}}try{D=K.match(D,M);continue}catch(H){if(H!=G){throw H}}return L._document.createTextNode(D.toString())}return undefined},isChildNode:function(C,D){var A=MochiKit.DOM;if(typeof (C)=="string"){C=A.getElement(C)}if(typeof (D)=="string"){D=A.getElement(D)}if(typeof (C)=="undefined"||C===null||C===A._document){return false}do{if(C===D){return true}var B=C.tagName;C=C.parentNode;if(!B){break}B=B.toUpperCase()}while(B!="BODY"&&B!="HTML");return false},setNodeAttribute:function(B,A,C){var E={};E[A]=C;try{return MochiKit.DOM.updateNodeAttributes(B,E)}catch(D){}return null},getNodeAttribute:function(D,A){var C=MochiKit.DOM;var B=C.attributeArray.renames[A];D=C.getElement(D);try{if(B){return D[B]}return D.getAttribute(A)}catch(E){}return null},removeNodeAttribute:function(D,A){var C=MochiKit.DOM;var B=C.attributeArray.renames[A];D=C.getElement(D);try{if(B){return D[B]}return D.removeAttribute(A)}catch(E){}return null},updateNodeAttributes:function(B,F){var C=B;var I=MochiKit.DOM;if(typeof (B)=="string"){C=I.getElement(B)}if(F){var H=MochiKit.Base.updatetree;if(I.attributeArray.compliant){for(var D in F){var G=F[D];if(typeof (G)=="object"&&typeof (C[D])=="object"){if(D=="style"&&MochiKit.Style){MochiKit.Style.setStyle(C,G)}else{H(C[D],G)}}else{if(D.substring(0,2)=="on"){if(typeof (G)=="string"){G=new Function(G)}C[D]=G}else{C.setAttribute(D,G)}}}}else{var E=I.attributeArray.renames;for(var D in F){G=F[D];var A=E[D];if(D=="style"&&typeof (G)=="string"){C.style.cssText=G}else{if(typeof (A)=="string"){C[A]=G}else{if(typeof (C[D])=="object"&&typeof (G)=="object"){if(D=="style"&&MochiKit.Style){MochiKit.Style.setStyle(C,G)}else{H(C[D],G)}}else{if(D.substring(0,2)=="on"){if(typeof (G)=="string"){G=new Function(G)}C[D]=G}else{C.setAttribute(D,G)}}}}}}}return C},appendChildNodes:function(C){var B=C;var A=MochiKit.DOM;if(typeof (C)=="string"){B=A.getElement(C)}var D=[A.coerceToDOM(MochiKit.Base.extend(null,arguments,1),B)];var E=MochiKit.Base.concat;while(D.length){var F=D.shift();if(typeof (F)=="undefined"||F===null){}else{if(typeof (F.nodeType)=="number"){B.appendChild(F)}else{D=E(F,D)}}}return B},insertSiblingNodesBefore:function(D){var C=D;var A=MochiKit.DOM;if(typeof (D)=="string"){C=A.getElement(D)}var E=[A.coerceToDOM(MochiKit.Base.extend(null,arguments,1),C)];var B=C.parentNode;var F=MochiKit.Base.concat;while(E.length){var G=E.shift();if(typeof (G)=="undefined"||G===null){}else{if(typeof (G.nodeType)=="number"){B.insertBefore(G,C)}else{E=F(G,E)}}}return B},insertSiblingNodesAfter:function(C){var B=C;var A=MochiKit.DOM;if(typeof (C)=="string"){B=A.getElement(C)}var D=[A.coerceToDOM(MochiKit.Base.extend(null,arguments,1),B)];if(B.nextSibling){return A.insertSiblingNodesBefore(B.nextSibling,D)}else{return A.appendChildNodes(B.parentNode,D)}},replaceChildNodes:function(C){var B=C;var A=MochiKit.DOM;if(typeof (C)=="string"){B=A.getElement(C);arguments[0]=B}var D;while((D=B.firstChild)){B.removeChild(D)}if(arguments.length<2){return B}else{return A.appendChildNodes.apply(this,arguments)}},createDOM:function(B,H){var C;var I=MochiKit.DOM;var E=MochiKit.Base;if(typeof (H)=="string"||typeof (H)=="number"){var G=E.extend([B,null],arguments,1);return arguments.callee.apply(this,G)}if(typeof (B)=="string"){var A=I._xhtml;if(H&&!I.attributeArray.compliant){var D="";if("name" in H){D+=" name=\""+I.escapeHTML(H.name)+"\""}if(B=="input"&&"type" in H){D+=" type=\""+I.escapeHTML(H.type)+"\""}if(D){B="<"+B+D+">";A=false}}var F=I._document;if(A&&F===document){C=F.createElementNS("http://www.w3.org/1999/xhtml",B)}else{C=F.createElement(B)}}else{C=B}if(H){I.updateNodeAttributes(C,H)}if(arguments.length<=2){return C}else{var G=E.extend([C],arguments,2);return I.appendChildNodes.apply(this,G)}},createDOMFunc:function(){var A=MochiKit.Base;return A.partial.apply(this,A.extend([MochiKit.DOM.createDOM],arguments))},removeElement:function(A){var B=MochiKit.DOM.getElement(A);B.parentNode.removeChild(B);return B},swapDOM:function(B,D){var A=MochiKit.DOM;B=A.getElement(B);var C=B.parentNode;if(D){D=A.getElement(D);C.replaceChild(D,B)}else{C.removeChild(B)}return D},getElement:function(B){var A=MochiKit.DOM;if(arguments.length==1){return((typeof (B)=="string")?A._document.getElementById(B):B)}else{return MochiKit.Base.map(A.getElement,arguments)}},getElementsByTagAndClassName:function(E,H,I){var K=MochiKit.DOM;if(typeof (E)=="undefined"||E===null){E="*"}if(typeof (I)=="undefined"||I===null){I=K._document}I=K.getElement(I);var D=(I.getElementsByTagName(E)||K._document.all);if(typeof (H)=="undefined"||H===null){return MochiKit.Base.extend(null,D)}var B=[];for(var G=0;G<D.length;G++){var C=D[G];var J=C.className;if(!J){continue}var A=J.split(" ");for(var F=0;F<A.length;F++){if(A[F]==H){B.push(C);break}}}return B},_newCallStack:function(C,A){var B=function(){var D=arguments.callee.callStack;for(var E=0;E<D.length;E++){if(D[E].apply(this,arguments)===false){break}}if(A){try{this[C]=null}catch(F){}}};B.callStack=[];return B},addToCallStack:function(G,F,E,C){var B=MochiKit.DOM;var D=G[F];var A=D;if(!(typeof (D)=="function"&&typeof (D.callStack)=="object"&&D.callStack!==null)){A=B._newCallStack(F,C);if(typeof (D)=="function"){A.callStack.push(D)}G[F]=A}A.callStack.push(E)},addLoadEvent:function(B){var A=MochiKit.DOM;A.addToCallStack(A._window,"onload",B,true)},focusOnLoad:function(B){var A=MochiKit.DOM;A.addLoadEvent(function(){B=A.getElement(B);if(B){B.focus()}})},setElementClass:function(B,C){var A=MochiKit.DOM;var D=A.getElement(B);if(A.attributeArray.compliant){D.setAttribute("class",C)}else{D.setAttribute("className",C)}},toggleElementClass:function(C){var A=MochiKit.DOM;for(var B=1;B<arguments.length;B++){var D=A.getElement(arguments[B]);if(!A.addElementClass(D,C)){A.removeElementClass(D,C)}}},addElementClass:function(E,F){var B=MochiKit.DOM;var G=B.getElement(E);var A=G.className;if(A==undefined||A.length===0){B.setElementClass(G,F);return true}if(A==F){return false}var D=A.split(" ");for(var C=0;C<D.length;C++){if(D[C]==F){return false}}B.setElementClass(G,A+" "+F);return true},removeElementClass:function(E,F){var B=MochiKit.DOM;var G=B.getElement(E);var A=G.className;if(A==undefined||A.length===0){return false}if(A==F){B.setElementClass(G,"");return true}var D=A.split(" ");for(var C=0;C<D.length;C++){if(D[C]==F){D.splice(C,1);B.setElementClass(G,D.join(" "));return true}}return false},swapElementClass:function(C,E,A){var D=MochiKit.DOM.getElement(C);var B=MochiKit.DOM.removeElementClass(D,E);if(B){MochiKit.DOM.addElementClass(D,A)}return B},hasElementClass:function(E,F){var H=MochiKit.DOM.getElement(E);var A=H.className;if(!A){return false}var D=A.split(" ");for(var C=1;C<arguments.length;C++){var G=false;for(var B=0;B<D.length;B++){if(D[B]==arguments[C]){G=true;break}}if(!G){return false}}return true},escapeHTML:function(A){return A.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},toHTML:function(A){return MochiKit.DOM.emitHTML(A).join("")},emitHTML:function(C,F){if(typeof (F)=="undefined"||F===null){F=[]}var H=[C];var M=MochiKit.DOM;var L=M.escapeHTML;var A=M.attributeArray;while(H.length){C=H.pop();if(typeof (C)=="string"){F.push(C)}else{if(C.nodeType==1){F.push("<"+C.tagName.toLowerCase());var D=[];var I=A(C);for(var E=0;E<I.length;E++){var J=I[E];D.push([" ",J.name,"=\"",L(J.value),"\""])}D.sort();for(E=0;E<D.length;E++){var K=D[E];for(var B=0;B<K.length;B++){F.push(K[B])}}if(C.hasChildNodes()){F.push(">");H.push("</"+C.tagName.toLowerCase()+">");var G=C.childNodes;for(E=G.length-1;E>=0;E--){H.push(G[E])}}else{F.push("/>")}}else{if(C.nodeType==3){F.push(L(C.nodeValue))}}}}return F},scrapeText:function(B,A){var C=[];(function(F){var G=F.childNodes;if(G){for(var E=0;E<G.length;E++){arguments.callee.call(this,G[E])}}var D=F.nodeValue;if(typeof (D)=="string"){C.push(D)}})(MochiKit.DOM.getElement(B));if(A){return C}else{return C.join("")}},removeEmptyTextNodes:function(B){B=MochiKit.DOM.getElement(B);for(var A=0;A<B.childNodes.length;A++){var C=B.childNodes[A];if(C.nodeType==3&&!/\S/.test(C.nodeValue)){C.parentNode.removeChild(C)}}},makeClipping:function(B){B=MochiKit.DOM.getElement(B);var A=B.style.overflow;if((MochiKit.Style.getStyle(B,"overflow")||"visible")!="hidden"){B.style.overflow="hidden"}return A},undoClipping:function(A,B){A=MochiKit.DOM.getElement(A);if(!B){return }A.style.overflow=B},makePositioned:function(A){A=MochiKit.DOM.getElement(A);var B=MochiKit.Style.getStyle(A,"position");if(B=="static"||!B){A.style.position="relative";if(/Opera/.test(navigator.userAgent)){A.style.top=0;A.style.left=0}}},undoPositioned:function(A){A=MochiKit.DOM.getElement(A);if(A.style.position=="relative"){A.style.position=A.style.top=A.style.left=A.style.bottom=A.style.right=""}},getFirstElementByTagAndClassName:function(D,G,H){var I=MochiKit.DOM;if(typeof (D)=="undefined"||D===null){D="*"}if(typeof (H)=="undefined"||H===null){H=I._document}H=I.getElement(H);var C=(H.getElementsByTagName(D)||I._document.all);if(typeof (G)=="undefined"||G===null){return C[0]}for(var F=0;F<C.length;F++){var B=C[F];var A=B.className.split(" ");for(var E=0;E<A.length;E++){if(A[E]==G){return B}}}},getFirstParentByTagAndClassName:function(F,D,E){var A=MochiKit.DOM;F=A.getElement(F);if(typeof (D)=="undefined"||D===null){D="*"}else{D=D.toUpperCase()}if(typeof (E)=="undefined"||E===null){E=null}var G="";var C="";while(F&&F.tagName){F=F.parentNode;if(D=="*"&&E===null){return F}G=F.className.split(" ");C=F.tagName.toUpperCase();if(E===null&&D==C){return F}else{if(E!==null){for(var B=0;B<G.length;B++){if(D=="*"&&G[B]==E){return F}else{if(D==C&&G[B]==E){return F}}}}}}return F},isParent:function(B,A){if(!B.parentNode||B==A){return false}if(B.parentNode==A){return true}return MochiKit.DOM.isParent(B.parentNode,A)},__new__:function(I){var E=MochiKit.Base;if(typeof (document)!="undefined"){this._document=document;var D="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===D)}else{if(MochiKit.MockDOM){this._document=MochiKit.MockDOM.document}}this._window=I;this.domConverters=new E.AdapterRegistry();var K=this._document.createElement("span");var A;if(K&&K.attributes&&K.attributes.length>0){var B=E.filter;A=function(M){return B(A.ignoreAttrFilter,M.attributes)};A.ignoreAttr={};var L=K.attributes;var F=A.ignoreAttr;for(var H=0;H<L.length;H++){var J=L[H];F[J.name]=J.value}A.ignoreAttrFilter=function(M){return(A.ignoreAttr[M.name]!=M.value)};A.compliant=false;A.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor","cellspacing":"cellSpacing","cellpadding":"cellPadding"}}else{A=function(M){return M.attributes};A.compliant=true;A.renames={}}this.attributeArray=A;var G=function(Q,M){var N=M[1].split(".");var P="";var O={};P+="if (!MochiKit."+N[1]+") { throw new Error(\"";P+="This function has been deprecated and depends on MochiKit.";P+=N[1]+".\");}";P+="return MochiKit."+N[1]+"."+M[0];P+=".apply(this, arguments);";O[N[2]]=new Function(P);MochiKit.Base.update(MochiKit[Q],O)};for(var H;H<MochiKit.DOM.DEPRECATED.length;H++){G("DOM",MochiKit.DOM.DEPRECATED[H])}var C=this.createDOMFunc;this.UL=C("ul");this.OL=C("ol");this.LI=C("li");this.DL=C("dl");this.DT=C("dt");this.DD=C("dd");this.TD=C("td");this.TR=C("tr");this.TBODY=C("tbody");this.THEAD=C("thead");this.TFOOT=C("tfoot");this.TABLE=C("table");this.TH=C("th");this.INPUT=C("input");this.SPAN=C("span");this.A=C("a");this.DIV=C("div");this.IMG=C("img");this.BUTTON=C("button");this.TT=C("tt");this.PRE=C("pre");this.H1=C("h1");this.H2=C("h2");this.H3=C("h3");this.BR=C("br");this.HR=C("hr");this.LABEL=C("label");this.TEXTAREA=C("textarea");this.FORM=C("form");this.P=C("p");this.SELECT=C("select");this.OPTION=C("option");this.OPTGROUP=C("optgroup");this.LEGEND=C("legend");this.FIELDSET=C("fieldset");this.STRONG=C("strong");this.CANVAS=C("canvas");this.$=this.getElement;this.EXPORT_TAGS={":common":this.EXPORT,":all":E.concat(this.EXPORT,this.EXPORT_OK)};E.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(A,B){this.w=A;this.h=B};MochiKit.Style.Dimensions.prototype.__repr__=function(){var A=MochiKit.Base.repr;return"{w: "+A(this.w)+", h: "+A(this.h)+"}"};MochiKit.Style.Dimensions.prototype.toString=function(){return this.__repr__()};MochiKit.Style.Coordinates=function(A,B){this.x=A;this.y=B};MochiKit.Style.Coordinates.prototype.__repr__=function(){var A=MochiKit.Base.repr;return"{x: "+A(this.x)+", y: "+A(this.y)+"}"};MochiKit.Style.Coordinates.prototype.toString=function(){return this.__repr__()};MochiKit.Base.update(MochiKit.Style,{getStyle:function(D,A){var G=MochiKit.DOM;var F=G._document;D=G.getElement(D);A=MochiKit.Base.camelize(A);if(!D||D==F){return undefined}if(A=="opacity"&&D.filters){var B=(MochiKit.Style.getStyle(D,"filter")||"").match(/alpha\(opacity=(.*)\)/);if(B&&B[1]){return parseFloat(B[1])/100}return 1}var E=D.style?D.style[A]:null;if(!E){if(F.defaultView&&F.defaultView.getComputedStyle){var C=F.defaultView.getComputedStyle(D,null);A=A.replace(/([A-Z])/g,"-$1").toLowerCase();E=C?C.getPropertyValue(A):null}else{if(D.currentStyle){E=D.currentStyle[A]}}}if(A=="opacity"){E=parseFloat(E)}if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(["left","top","right","bottom"],A)!=-1)){if(MochiKit.Style.getStyle(D,"position")=="static"){E="auto"}}return E=="auto"?null:E},setStyle:function(C,B){C=MochiKit.DOM.getElement(C);for(var A in B){if(A=="opacity"){MochiKit.Style.setOpacity(C,B[A])}else{C.style[MochiKit.Base.camelize(A)]=B[A]}}},setOpacity:function(C,D){C=MochiKit.DOM.getElement(C);var A=MochiKit.Style;if(D==1){var B=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent));C.style["opacity"]=B?0.999999:1;if(/MSIE/.test(navigator.userAgent)){C.style["filter"]=A.getStyle(C,"filter").replace(/alpha\([^\)]*\)/gi,"")}}else{if(D<0.00001){D=0}C.style["opacity"]=D;if(/MSIE/.test(navigator.userAgent)){C.style["filter"]=A.getStyle(C,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+D*100+")"}}},getElementPosition:function(C,D){var M=MochiKit.Style;var E=MochiKit.DOM;C=E.getElement(C);if(!C||(!(C.x&&C.y)&&(!C.parentNode===null||M.getStyle(C,"display")=="none"))){return undefined}var H=new M.Coordinates(0,0);var F=null;var K=null;var G=MochiKit.DOM._document;var J=G.documentElement;var I=G.body;if(!C.parentNode&&C.x&&C.y){H.x+=C.x||0;H.y+=C.y||0}else{if(C.getBoundingClientRect){F=C.getBoundingClientRect();H.x+=F.left+(J.scrollLeft||I.scrollLeft)-(J.clientLeft||0);H.y+=F.top+(J.scrollTop||I.scrollTop)-(J.clientTop||0);return H}else{if(C.offsetParent){H.x+=C.offsetLeft;H.y+=C.offsetTop;K=C.offsetParent;if(K!=C){while(K){H.x+=K.offsetLeft;H.y+=K.offsetTop;K=K.offsetParent}}var A=navigator.userAgent.toLowerCase();if((typeof (opera)!="undefined"&&parseFloat(opera.version())<9)||(A.indexOf("AppleWebKit")!=-1&&M.getStyle(C,"position")=="absolute")){H.x-=I.offsetLeft;H.y-=I.offsetTop}}}}if(typeof (D)!="undefined"){D=arguments.callee(D);if(D){H.x-=(D.x||0);H.y-=(D.y||0)}}if(C.parentNode){K=C.parentNode}else{K=null}while(K){var B=K.tagName.toUpperCase();if(B==="BODY"||B==="HTML"){break}var L=M.getStyle(K,"display");if(L.search(/^inline|table-row.*$/i)){H.x-=K.scrollLeft;H.y-=K.scrollTop}if(K.parentNode){K=K.parentNode}else{K=null}}return H},setElementPosition:function(E,B,A){E=MochiKit.DOM.getElement(E);if(typeof (A)=="undefined"){A="px"}var D={};var C=MochiKit.Base.isUndefinedOrNull;if(!C(B.x)){D["left"]=B.x+A}if(!C(B.y)){D["top"]=B.y+A}MochiKit.DOM.updateNodeAttributes(E,{"style":D})},getElementDimensions:function(B){var H=MochiKit.Style;var C=MochiKit.DOM;if(typeof (B.w)=="number"||typeof (B.h)=="number"){return new H.Dimensions(B.w||0,B.h||0)}B=C.getElement(B);if(!B){return undefined}var F=H.getStyle(B,"display");if(F!="none"&&F!==""&&typeof (F)!="undefined"){return new H.Dimensions(B.offsetWidth||0,B.offsetHeight||0)}var I=B.style;var G=I.visibility;var E=I.position;I.visibility="hidden";I.position="absolute";I.display="";var A=B.offsetWidth;var D=B.offsetHeight;I.display="none";I.position=E;I.visibility=G;return new H.Dimensions(A,D)},setElementDimensions:function(E,B,A){E=MochiKit.DOM.getElement(E);if(typeof (A)=="undefined"){A="px"}var D={};var C=MochiKit.Base.isUndefinedOrNull;if(!C(B.w)){D["width"]=B.w+A}if(!C(B.h)){D["height"]=B.h+A}MochiKit.DOM.updateNodeAttributes(E,{"style":D})},setDisplayForElement:function(E,B){var D=MochiKit.Base.extend(null,arguments,1);var C=MochiKit.DOM.getElement;for(var A=0;A<D.length;A++){B=C(D[A]);if(B){B.style.display=E}}},getViewportDimensions:function(){var C=new MochiKit.Style.Dimensions();var B=MochiKit.DOM._window;var A=MochiKit.DOM._document.body;if(B.innerWidth){C.w=B.innerWidth;C.h=B.innerHeight}else{if(A.parentElement.clientWidth){C.w=A.parentElement.clientWidth;C.h=A.parentElement.clientHeight}else{if(A&&A.clientWidth){C.w=A.clientWidth;C.h=A.clientHeight}}}return C},getViewportPosition:function(){var D=new MochiKit.Style.Coordinates(0,0);var B=MochiKit.DOM._document;var C=B.documentElement;var A=B.body;if(C&&(C.scrollTop||C.scrollLeft)){D.x=C.scrollLeft;D.y=C.scrollTop}else{if(A){D.x=A.scrollLeft;D.y=A.scrollTop}}return D},__new__:function(){var A=MochiKit.Base;this.elementPosition=this.getElementPosition;this.elementDimensions=this.getElementDimensions;this.hideElement=A.partial(this.setDisplayForElement,"none");this.showElement=A.partial(this.setDisplayForElement,"block");this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.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(B,A){this._event=A||window.event;this._src=B};MochiKit.Base.update(MochiKit.Signal.Event.prototype,{__repr__:function(){var A=MochiKit.Base.repr;var B="{event(): "+A(this.event())+", src(): "+A(this.src())+", type(): "+A(this.type())+", target(): "+A(this.target());if(this.type()&&this.type().indexOf("key")===0||this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu"){B+=", modifier(): {alt: "+A(this.modifier().alt)+", ctrl: "+A(this.modifier().ctrl)+", meta: "+A(this.modifier().meta)+", shift: "+A(this.modifier().shift)+", any: "+A(this.modifier().any)+"}"}if(this.type()&&this.type().indexOf("key")===0){B+=", key(): {code: "+A(this.key().code)+", string: "+A(this.key().string)+"}"}if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){B+=", mouse(): {page: "+A(this.mouse().page)+", client: "+A(this.mouse().client);if(this.type()!="mousemove"){B+=", button: {left: "+A(this.mouse().button.left)+", middle: "+A(this.mouse().button.middle)+", right: "+A(this.mouse().button.right)+"}}"}else{B+="}"}}if(this.type()=="mouseover"||this.type()=="mouseout"){B+=", relatedTarget(): "+A(this.relatedTarget())}B+="}";return B},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 A=null;if(this.type()=="mouseover"){A=(this._event.relatedTarget||this._event.fromElement)}else{if(this.type()=="mouseout"){A=(this._event.relatedTarget||this._event.toElement)}}if(A!==null){this._relatedTarget=A;return A}return undefined},_modifier:null,modifier:function(){if(this._modifier!==null){return this._modifier}var A={};A.alt=this._event.altKey;A.ctrl=this._event.ctrlKey;A.meta=this._event.metaKey||false;A.shift=this._event.shiftKey;A.any=A.alt||A.ctrl||A.shift||A.meta;this._modifier=A;return A},_key:null,key:function(){if(this._key!==null){return this._key}var A={};if(this.type()&&this.type().indexOf("key")===0){if(this.type()=="keydown"||this.type()=="keyup"){A.code=this._event.keyCode;A.string=(MochiKit.Signal._specialKeys[A.code]||"KEY_UNKNOWN");this._key=A;return A}else{if(this.type()=="keypress"){A.code=0;A.string="";if(typeof (this._event.charCode)!="undefined"&&this._event.charCode!==0&&!MochiKit.Signal._specialMacKeys[this._event.charCode]){A.code=this._event.charCode;A.string=String.fromCharCode(A.code)}else{if(this._event.keyCode&&typeof (this._event.charCode)=="undefined"){A.code=this._event.keyCode;A.string=String.fromCharCode(A.code)}}this._key=A;return A}}}return undefined},_mouse:null,mouse:function(){if(this._mouse!==null){return this._mouse}var B={};var C=this._event;if(this.type()&&(this.type().indexOf("mouse")===0||this.type().indexOf("click")!=-1||this.type()=="contextmenu")){B.client=new MochiKit.Style.Coordinates(0,0);if(C.clientX||C.clientY){B.client.x=(!C.clientX||C.clientX<0)?0:C.clientX;B.client.y=(!C.clientY||C.clientY<0)?0:C.clientY}B.page=new MochiKit.Style.Coordinates(0,0);if(C.pageX||C.pageY){B.page.x=(!C.pageX||C.pageX<0)?0:C.pageX;B.page.y=(!C.pageY||C.pageY<0)?0:C.pageY}else{var D=MochiKit.DOM._document.documentElement;var A=MochiKit.DOM._document.body;B.page.x=C.clientX+(D.scrollLeft||A.scrollLeft)-(D.clientLeft||0);B.page.y=C.clientY+(D.scrollTop||A.scrollTop)-(D.clientTop||0)}if(this.type()!="mousemove"){B.button={};B.button.left=false;B.button.right=false;B.button.middle=false;if(C.which){B.button.left=(C.which==1);B.button.middle=(C.which==2);B.button.right=(C.which==3)}else{B.button.left=!!(C.button&1);B.button.right=!!(C.button&2);B.button.middle=!!(C.button&4)}}this._mouse=B;return B}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(A){if(this.type()=="beforeunload"){this._confirmUnload=A;this._event.returnValue=A}}});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 A=MochiKit.Signal._specialMacKeys;for(i=63236;i<=63242;i++){A[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 B=MochiKit.Signal._specialKeys;for(var A=48;A<=57;A++){B[A]="KEY_"+(A-48)}for(A=65;A<=90;A++){B[A]="KEY_"+String.fromCharCode(A)}for(A=96;A<=105;A++){B[A]="KEY_NUM_PAD_"+(A-96)}for(A=112;A<=123;A++){B[A]="KEY_F"+(A-112+1)}})();MochiKit.Signal.Ident=function(A){this.source=A.source;this.signal=A.signal;this.listener=A.listener;this.isDOM=A.isDOM;this.objOrFunc=A.objOrFunc;this.funcOrStr=A.funcOrStr;this.connected=A.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 A=MochiKit.Signal;var C=A._observers;for(var B=0;B<C.length;B++){if(C[B].signal!=="onload"&&C[B].signal!=="onunload"){A._disconnect(C[B])}}},_listener:function(H,G,C,F,B){var A=MochiKit.Signal;var D=A.Event;if(!B){if(typeof (C.im_self)=="undefined"){return MochiKit.Base.bind(C,F)}else{return C}}F=F||H;if(typeof (C)=="string"){if(G==="onload"||G==="onunload"){return function(E){F[C].apply(F,[new D(H,E)]);var I=new MochiKit.Signal.Ident({source:H,signal:G,objOrFunc:F,funcOrStr:C});MochiKit.Signal._disconnect(I)}}else{return function(E){F[C].apply(F,[new D(H,E)])}}}else{if(G==="onload"||G==="onunload"){return function(E){C.apply(F,[new D(H,E)]);var I=new MochiKit.Signal.Ident({source:H,signal:G,objOrFunc:C});MochiKit.Signal._disconnect(I)}}else{return function(E){C.apply(F,[new D(H,E)])}}}},_browserAlreadyHasMouseEnterAndLeave:function(){return/MSIE/.test(navigator.userAgent)},_mouseEnterListener:function(F,D,A,C){var B=MochiKit.Signal.Event;return function(E){var H=new B(F,E);try{H.relatedTarget().nodeName}catch(G){return }H.stop();if(MochiKit.DOM.isChildNode(H.relatedTarget(),F)){return }H.type=function(){return D};if(typeof (A)=="string"){return C[A].apply(C,[H])}else{return A.apply(C,[H])}}},_getDestPair:function(B,A){var D=null;var C=null;if(typeof (A)!="undefined"){D=B;C=A;if(typeof (A)=="string"){if(typeof (B[A])!="function"){throw new Error("'funcOrStr' must be a function on 'objOrFunc'")}}else{if(typeof (A)!="function"){throw new Error("'funcOrStr' must be a function or string")}}}else{if(typeof (B)!="function"){throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given")}else{C=B}}return[D,C]},connect:function(A,L,J,B){A=MochiKit.DOM.getElement(A);var K=MochiKit.Signal;if(typeof (L)!="string"){throw new Error("'sig' must be a string")}var H=K._getDestPair(J,B);var F=H[0];var D=H[1];if(typeof (F)=="undefined"||F===null){F=A}var I=!!(A.addEventListener||A.attachEvent);if(I&&(L==="onmouseenter"||L==="onmouseleave")&&!K._browserAlreadyHasMouseEnterAndLeave()){var C=K._mouseEnterListener(A,L.substr(2),D,F);if(L==="onmouseenter"){L="onmouseover"}else{L="onmouseout"}}else{var C=K._listener(A,L,D,F,I)}if(A.addEventListener){A.addEventListener(L.substr(2),C,false)}else{if(A.attachEvent){A.attachEvent(L,C)}}var E=new MochiKit.Signal.Ident({source:A,signal:L,listener:C,isDOM:I,objOrFunc:J,funcOrStr:B,connected:true});K._observers.push(E);if(!I&&typeof (A.__connect__)=="function"){var G=MochiKit.Base.extend([E],arguments,1);A.__connect__.apply(A,G)}return E},_disconnect:function(B){if(!B.connected){return }B.connected=false;if(!B.isDOM){return }var D=B.source;var C=B.signal;var A=B.listener;if(D.removeEventListener){D.removeEventListener(C.substr(2),A,false)}else{if(D.detachEvent){D.detachEvent(C,A)}else{throw new Error("'src' must be a DOM element")}}},disconnect:function(G){var J=MochiKit.Signal;var H=J._observers;var D=MochiKit.Base;if(arguments.length>1){var A=MochiKit.DOM.getElement(arguments[0]);var K=arguments[1];var F=arguments[2];var C=arguments[3];for(var E=H.length-1;E>=0;E--){var B=H[E];if(B.source===A&&B.signal===K&&B.objOrFunc===F&&B.funcOrStr===C){J._disconnect(B);if(!J._lock){H.splice(E,1)}else{J._dirty=true}return true}}}else{var I=D.findIdentical(H,G);if(I>=0){J._disconnect(G);if(!J._lock){H.splice(I,1)}else{J._dirty=true}return true}}return false},disconnectAllTo:function(H,B){var I=MochiKit.Signal;var F=I._observers;var G=I._disconnect;var E=I._lock;var A=I._dirty;if(typeof (B)==="undefined"){B=null}for(var D=F.length-1;D>=0;D--){var C=F[D];if(C.objOrFunc===H&&(B===null||C.funcOrStr===B)){G(C);if(E){A=true}else{F.splice(D,1)}}}I._dirty=A},disconnectAll:function(A,L){A=MochiKit.DOM.getElement(A);var C=MochiKit.Base;var D=C.flattenArguments(C.extend(null,arguments,1));var J=MochiKit.Signal;var I=J._disconnect;var H=J._observers;var G,F;var E=J._lock;var B=J._dirty;if(D.length===0){for(G=H.length-1;G>=0;G--){F=H[G];if(F.source===A){I(F);if(!E){H.splice(G,1)}else{B=true}}}}else{var K={};for(G=0;G<D.length;G++){K[D[G]]=true}for(G=H.length-1;G>=0;G--){F=H[G];if(F.source===A&&F.signal in K){I(F);if(!E){H.splice(G,1)}else{B=true}}}}J._dirty=B},signal:function(A,I){var H=MochiKit.Signal;var D=H._observers;A=MochiKit.DOM.getElement(A);var F=MochiKit.Base.extend(null,arguments,2);var G=[];H._lock=true;for(var C=0;C<D.length;C++){var B=D[C];if(B.source===A&&B.signal===I&&B.connected){try{B.listener.apply(A,F)}catch(E){G.push(E)}}}H._lock=false;if(H._dirty){H._dirty=false;for(var C=D.length-1;C>=0;C--){if(!D[C].connected){D.splice(C,1)}}}if(G.length==1){throw G[0]}else{if(G.length>1){var E=new Error("Multiple errors thrown in handling 'sig', see errors property");E.errors=G;throw E}}}});MochiKit.Signal.EXPORT_OK=[];MochiKit.Signal.EXPORT=["connect","disconnect","signal","disconnectAll","disconnectAllTo"];MochiKit.Signal.__new__=function(C){var A=MochiKit.Base;this._document=document;this._window=C;this._lock=false;this._dirty=false;try{this.connect(window,"onunload",this._unloadCache)}catch(B){}this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.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 (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(A){this.chain=[];this.id=this._nextId();this.fired=-1;this.paused=0;this.results=[null,null];this.canceller=A;this.silentlyCancelled=false;this.chained=false};MochiKit.Async.Deferred.prototype={repr:function(){var A;if(this.fired==-1){A="unfired"}else{if(this.fired===0){A="success"}else{A="error"}}return"Deferred("+this.id+", "+A+")"},toString:MochiKit.Base.forwardCall("repr"),_nextId:MochiKit.Base.counter(),cancel:function(){var A=MochiKit.Async;if(this.fired==-1){if(this.canceller){this.canceller(this)}else{this.silentlyCancelled=true}if(this.fired==-1){this.errback(new A.CancelledError(this))}}else{if((this.fired===0)&&(this.results[0] instanceof A.Deferred)){this.results[0].cancel()}}},_resback:function(A){this.fired=((A instanceof Error)?1:0);this.results[this.fired]=A;this._fire()},_check:function(){if(this.fired!=-1){if(!this.silentlyCancelled){throw new MochiKit.Async.AlreadyCalledError(this)}this.silentlyCancelled=false;return }},callback:function(A){this._check();if(A instanceof MochiKit.Async.Deferred){throw new Error("Deferred instances can only be chained if they are the result of a callback")}this._resback(A)},errback:function(B){this._check();var A=MochiKit.Async;if(B instanceof A.Deferred){throw new Error("Deferred instances can only be chained if they are the result of a callback")}if(!(B instanceof Error)){B=new A.GenericError(B)}this._resback(B)},addBoth:function(A){if(arguments.length>1){A=MochiKit.Base.partial.apply(null,arguments)}return this.addCallbacks(A,A)},addCallback:function(A){if(arguments.length>1){A=MochiKit.Base.partial.apply(null,arguments)}return this.addCallbacks(A,null)},addErrback:function(A){if(arguments.length>1){A=MochiKit.Base.partial.apply(null,arguments)}return this.addCallbacks(null,A)},addCallbacks:function(A,B){if(this.chained){throw new Error("Chained Deferreds can not be re-used")}this.chain.push([A,B]);if(this.fired>=0){this._fire()}return this},_fire:function(){var D=this.chain;var G=this.fired;var C=this.results[G];var B=this;var A=null;while(D.length>0&&this.paused===0){var H=D.shift();var F=H[G];if(F===null){continue}try{C=F(C);G=((C instanceof Error)?1:0);if(C instanceof MochiKit.Async.Deferred){A=function(I){B._resback(I);B.paused--;if((B.paused===0)&&(B.fired>=0)){B._fire()}};this.paused++}}catch(E){G=1;if(!(E instanceof Error)){E=new MochiKit.Async.GenericError(E)}C=E}}this.fired=G;this.results[G]=C;if(A&&this.paused){C.addBoth(A);C.chained=true}}};MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(A){return MochiKit.Base.evalJSON(A.responseText)},succeed:function(A){var B=new MochiKit.Async.Deferred();B.callback.apply(B,arguments);return B},fail:function(A){var B=new MochiKit.Async.Deferred();B.errback.apply(B,arguments);return B},getXMLHttpRequest:function(){var A=arguments.callee;if(!A.XMLHttpRequest){var E=[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 B=0;B<E.length;B++){var C=E[B];try{A.XMLHttpRequest=C;return C()}catch(D){}}}return A.XMLHttpRequest()},_xhr_onreadystatechange:function(E){var A=MochiKit.Base;if(this.readyState==4){try{this.onreadystatechange=null}catch(D){try{this.onreadystatechange=A.noop}catch(D){}}var B=null;try{B=this.status;if(!B&&A.isNotEmpty(this.responseText)){B=304}}catch(D){}if(B==200||B==201||B==204||B==304||B==1223){E.callback(this)}else{var C=new MochiKit.Async.XMLHttpRequestError(this,"Request failed");if(C.number){E.errback(C)}else{E.errback(C)}}}},_xhr_canceller:function(A){try{A.onreadystatechange=null}catch(B){try{A.onreadystatechange=MochiKit.Base.noop}catch(B){}}A.abort()},sendXMLHttpRequest:function(D,C){if(typeof (C)=="undefined"||C===null){C=""}var A=MochiKit.Base;var B=MochiKit.Async;var F=new B.Deferred(A.partial(B._xhr_canceller,D));try{D.onreadystatechange=A.bind(B._xhr_onreadystatechange,D,F);D.send(C)}catch(E){try{D.onreadystatechange=null}catch(G){}F.errback(E)}return F},doXHR:function(B,C){var A=MochiKit.Async;return A.callLater(0,A._doXHR,B,C)},_doXHR:function(C,A){var E=MochiKit.Base;A=E.update({method:"GET",sendContent:""},A);var K=MochiKit.Async;var I=K.getXMLHttpRequest();if(A.queryString){var H=E.queryString(A.queryString);if(H){C+="?"+H}}if("username" in A){I.open(A.method,C,true,A.username,A.password)}else{I.open(A.method,C,true)}if(I.overrideMimeType&&A.mimeType){I.overrideMimeType(A.mimeType)}I.setRequestHeader("X-Requested-With","XMLHttpRequest");if(A.headers){var D=A.headers;if(!E.isArrayLike(D)){D=E.items(D)}for(var F=0;F<D.length;F++){var G=D[F];var B=G[0];var J=G[1];I.setRequestHeader(B,J)}}return K.sendXMLHttpRequest(I,A.sendContent)},_buildURL:function(C){if(arguments.length>1){var B=MochiKit.Base;var A=B.queryString.apply(null,B.extend(null,arguments,1));if(A){return C+"?"+A}}return C},doSimpleXMLHttpRequest:function(B){var A=MochiKit.Async;B=A._buildURL.apply(A,arguments);return A.doXHR(B)},loadJSONDoc:function(B){var A=MochiKit.Async;B=A._buildURL.apply(A,arguments);var C=A.doXHR(B,{"mimeType":"text/plain","headers":[["Accept","application/json"]]});C=C.addCallback(A.evalJSONRequest);return C},wait:function(E,C){var D=new MochiKit.Async.Deferred();var A=MochiKit.Base;if(typeof (C)!="undefined"){D.addCallback(function(){return C})}var B=setTimeout(A.bind("callback",D),Math.floor(E*1000));D.canceller=function(){try{clearTimeout(B)}catch(F){}};return D},callLater:function(D,B){var A=MochiKit.Base;var C=A.partial.apply(A,A.extend(null,arguments,1));return MochiKit.Async.wait(D).addCallback(function(E){return C()})}});MochiKit.Async.DeferredLock=function(){this.waiting=[];this.locked=false;this.id=this._nextId()};MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){var A=new MochiKit.Async.Deferred();if(this.locked){this.waiting.push(A)}else{this.locked=true;A.callback(this)}return A},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 A;if(this.locked){A="locked, "+this.waiting.length+" waiting"}else{A="unlocked"}return"DeferredLock("+this.id+", "+A+")"},toString:MochiKit.Base.forwardCall("repr")};MochiKit.Async.DeferredList=function(G,F,B,D,I){MochiKit.Async.Deferred.apply(this,[I]);this.list=G;var A=[];this.resultList=A;this.finishedCount=0;this.fireOnOneCallback=F;this.fireOnOneErrback=B;this.consumeErrors=D;var C=MochiKit.Base.bind(this._cbDeferred,this);for(var E=0;E<G.length;E++){var H=G[E];A.push(undefined);H.addCallback(C,E,true);H.addErrback(C,E,false)}if(G.length===0&&!F){this.callback(this.resultList)}};MochiKit.Async.DeferredList.prototype=new MochiKit.Async.Deferred();MochiKit.Async.DeferredList.prototype._cbDeferred=function(B,C,A){this.resultList[B]=[C,A];this.finishedCount+=1;if(this.fired==-1){if(C&&this.fireOnOneCallback){this.callback([B,A])}else{if(!C&&this.fireOnOneErrback){this.errback(A)}else{if(this.finishedCount==this.list.length){this.callback(this.resultList)}}}}if(!C&&this.consumeErrors){A=null}return A};MochiKit.Async.gatherResults=function(A){var B=new MochiKit.Async.DeferredList(A,false,true,false);B.addCallback(function(E){var C=[];for(var D=0;D<E.length;D++){C.push(E[D][1])}return C});return B};MochiKit.Async.maybeDeferred=function(D){var B=MochiKit.Async;var A;try{var C=D.apply(null,MochiKit.Base.extend([],arguments,1));if(C instanceof B.Deferred){A=C}else{if(C instanceof Error){A=B.fail(C)}else{A=B.succeed(C)}}}catch(E){A=B.fail(E)}return A};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 A=MochiKit.Base;var B=A.partial(A._newNamedError,this);B("AlreadyCalledError",function(C){this.deferred=C});B("CancelledError",function(C){this.deferred=C});B("BrowserComplianceError",function(C){this.message=C});B("GenericError",function(C){this.message=C});B("XMLHttpRequestError",function(C,E){this.req=C;this.message=E;try{this.number=C.status}catch(D){}});this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)};A.nameFunctions(this)};MochiKit.Async.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Async)