
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(self,obj){if(self===null||self===undefined){self={};}
for(var i=1;i<arguments.length;i++){var o=arguments[i];if(typeof(o)!='undefined'&&o!==null){for(var k in o){self[k]=o[k];}}}
return self;};MochiKit.Base.update(MochiKit.Base,{__repr__:function(){return"["+this.NAME+" "+this.VERSION+"]";},toString:function(){return this.__repr__();},camelize:function(selector){var arr=selector.split('-');var cc=arr[0];for(var i=1;i<arr.length;i++){cc+=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);}
return cc;},counter:function(n){if(arguments.length===0){n=1;}
return function(){return n++;};},clone:function(obj){var me=arguments.callee;if(arguments.length==1){me.prototype=obj;return new me();}},_flattenArray:function(res,lst){for(var i=0;i<lst.length;i++){var o=lst[i];if(o instanceof Array){arguments.callee(res,o);}else{res.push(o);}}
return res;},flattenArray:function(lst){return MochiKit.Base._flattenArray([],lst);},flattenArguments:function(lst){var res=[];var m=MochiKit.Base;var args=m.extend(null,arguments);while(args.length){var o=args.shift();if(o&&typeof(o)=="object"&&typeof(o.length)=="number"){for(var i=o.length-1;i>=0;i--){args.unshift(o[i]);}}else{res.push(o);}}
return res;},extend:function(self,obj,skip){if(!skip){skip=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(!self){self=[];}
for(var i=skip;i<l;i++){self.push(obj[i]);}}
return self;},updatetree:function(self,obj){if(self===null||self===undefined){self={};}
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(self[k])=='object'&&typeof(v)=='object'){arguments.callee(self[k],v);}else{self[k]=v;}}}}
return self;},setdefault:function(self,obj){if(self===null||self===undefined){self={};}
for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var k in o){if(!(k in self)){self[k]=o[k];}}}
return self;},keys:function(obj){var rval=[];for(var prop in obj){rval.push(prop);}
return rval;},values:function(obj){var rval=[];for(var prop in obj){rval.push(obj[prop]);}
return rval;},items:function(obj){var rval=[];var e;for(var prop in obj){var v;try{v=obj[prop];}catch(e){continue;}
rval.push([prop,v]);}
return rval;},_newNamedError:function(module,name,func){func.prototype=new MochiKit.Base.NamedError(module.NAME+"."+name);module[name]=func;},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(func){return function(){return this[func].apply(this,arguments);};},itemgetter:function(func){return function(arg){return arg[func];};},typeMatcher:function(){var types={};for(var i=0;i<arguments.length;i++){var typ=arguments[i];types[typ]=typ;}
return function(){for(var i=0;i<arguments.length;i++){if(!(typeof(arguments[i])in types)){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||o.nodeType===4){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 rval=[];for(var i=1;i<arguments.length;i++){rval.push(fn(arguments[i]));}
return rval;},map:function(fn,lst){var m=MochiKit.Base;var itr=MochiKit.Iter;var isArrayLike=m.isArrayLike;if(arguments.length<=2){if(!isArrayLike(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 rval=[];for(var i=0;i<lst.length;i++){rval.push(fn(lst[i]));}
return rval;}else{if(fn===null){fn=Array;}
var length=null;for(i=1;i<arguments.length;i++){if(!isArrayLike(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(length===null||length>l){length=l;}}
rval=[];for(i=0;i<length;i++){var args=[];for(var j=1;j<arguments.length;j++){args.push(arguments[j][i]);}
rval.push(fn.apply(this,args));}
return rval;}},xfilter:function(fn){var rval=[];if(fn===null){fn=MochiKit.Base.operator.truth;}
for(var i=1;i<arguments.length;i++){var o=arguments[i];if(fn(o)){rval.push(o);}}
return rval;},filter:function(fn,lst,self){var rval=[];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,self);}else if(typeof(self)=='undefined'||self===null){for(var i=0;i<lst.length;i++){var o=lst[i];if(fn(o)){rval.push(o);}}}else{for(i=0;i<lst.length;i++){o=lst[i];if(fn.call(self,o)){rval.push(o);}}}
return rval;},_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(func){var args=MochiKit.Base.extend(null,arguments,1);if(typeof(func)=="function"){return function(obj){return func.apply(obj,args);};}else{return function(obj){return obj[func].apply(obj,args);};}},method:function(self,func){var m=MochiKit.Base;return m.bind.apply(this,m.extend([func,self],arguments,2));},compose:function(f1,f2){var fnlist=[];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");}
fnlist.push(fn);}
return function(){var args=arguments;for(var i=fnlist.length-1;i>=0;i--){args=[fnlist[i].apply(this,args)];}
return args[0];};},bind:function(func,self){if(typeof(func)=="string"){func=self[func];}
var im_func=func.im_func;var im_preargs=func.im_preargs;var im_self=func.im_self;var m=MochiKit.Base;if(typeof(func)=="function"&&typeof(func.apply)=="undefined"){func=m._wrapDumbFunction(func);}
if(typeof(im_func)!='function'){im_func=func;}
if(typeof(self)!='undefined'){im_self=self;}
if(typeof(im_preargs)=='undefined'){im_preargs=[];}else{im_preargs=im_preargs.slice();}
m.extend(im_preargs,arguments,2);var newfunc=function(){var args=arguments;var me=arguments.callee;if(me.im_preargs.length>0){args=m.concat(me.im_preargs,args);}
var self=me.im_self;if(!self){self=this;}
return me.im_func.apply(self,args);};newfunc.im_self=im_self;newfunc.im_func=im_func;newfunc.im_preargs=im_preargs;return newfunc;},bindMethods:function(self){var bind=MochiKit.Base.bind;for(var k in self){var func=self[k];if(typeof(func)=='function'){self[k]=bind(func,self);}}},registerComparator:function(name,check,comparator,override){MochiKit.Base.comparatorRegistry.register(name,check,comparator,override);},_primitives:{'boolean':true,'string':true,'number':true},compare:function(a,b){if(a==b){return 0;}
var aIsNull=(typeof(a)=='undefined'||a===null);var bIsNull=(typeof(b)=='undefined'||b===null);if(aIsNull&&bIsNull){return 0;}else if(aIsNull){return-1;}else if(bIsNull){return 1;}
var m=MochiKit.Base;var prim=m._primitives;if(!(typeof(a)in prim&&typeof(b)in prim)){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 repr=m.repr;throw new TypeError(repr(a)+" and "+repr(b)+" can not be compared");},compareDateLike:function(a,b){return MochiKit.Base.compare(a.getTime(),b.getTime());},compareArrayLike:function(a,b){var compare=MochiKit.Base.compare;var count=a.length;var rval=0;if(count>b.length){rval=1;count=b.length;}else if(count<b.length){rval=-1;}
for(var i=0;i<count;i++){var cmp=compare(a[i],b[i]);if(cmp){return cmp;}}
return rval;},registerRepr:function(name,check,wrap,override){MochiKit.Base.reprRegistry.register(name,check,wrap,override);},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 ostring=(o+"");}catch(e){return"["+typeof(o)+"]";}
if(typeof(o)=="function"){ostring=ostring.replace(/^\s+/,"").replace(/\s+/g," ");var idx=ostring.indexOf("{");if(idx!=-1){ostring=ostring.substr(0,idx)+"{...}";}}
return ostring;},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(name,check,wrap,override){MochiKit.Base.jsonRegistry.register(name,check,wrap,override);},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 objtype=typeof(o);if(objtype=="number"||objtype=="boolean"){return o+"";}else if(o===null){return"null";}
var m=MochiKit.Base;var reprString=m.reprString;if(objtype=="string"){return reprString(o);}
var me=arguments.callee;var newObj;if(typeof(o.__json__)=="function"){newObj=o.__json__();if(o!==newObj){return me(newObj);}}
if(typeof(o.json)=="function"){newObj=o.json();if(o!==newObj){return me(newObj);}}
if(objtype!="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{newObj=m.jsonRegistry.match(o);if(o!==newObj){return me(newObj);}}catch(e){if(e!=m.NotFound){throw e;}}
if(objtype=="undefined"){throw new TypeError("undefined can not be serialized as JSON");}
if(objtype=="function"){return null;}
res=[];for(var k in o){var useKey;if(typeof(k)=="number"){useKey='"'+k+'"';}else if(typeof(k)=="string"){useKey=reprString(k);}else{continue;}
val=me(o[k]);if(typeof(val)!="string"){continue;}
res.push(useKey+":"+val);}
return"{"+res.join(", ")+"}";},objEqual:function(a,b){return(MochiKit.Base.compare(a,b)===0);},arrayEqual:function(self,arr){if(self.length!=arr.length){return false;}
return(MochiKit.Base.compare(self,arr)===0);},concat:function(){var rval=[];var extend=MochiKit.Base.extend;for(var i=0;i<arguments.length;i++){extend(rval,arguments[i]);}
return rval;},keyComparator:function(key){var m=MochiKit.Base;var compare=m.compare;if(arguments.length==1){return function(a,b){return compare(a[key],b[key]);};}
var compareKeys=m.extend(null,arguments);return function(a,b){var rval=0;for(var i=0;(rval===0)&&(i<compareKeys.length);i++){var key=compareKeys[i];rval=compare(a[key],b[key]);}
return rval;};},reverseKeyComparator:function(key){var comparator=MochiKit.Base.keyComparator.apply(this,arguments);return function(a,b){return comparator(b,a);};},partial:function(func){var m=MochiKit.Base;return m.bind.apply(this,m.extend([func,undefined],arguments,1));},listMinMax:function(which,lst){if(lst.length===0){return null;}
var cur=lst[0];var compare=MochiKit.Base.compare;for(var i=1;i<lst.length;i++){var o=lst[i];if(compare(o,cur)==which){cur=o;}}
return cur;},objMax:function(){return MochiKit.Base.listMinMax(1,arguments);},objMin:function(){return MochiKit.Base.listMinMax(-1,arguments);},findIdentical:function(lst,value,start,end){if(typeof(end)=="undefined"||end===null){end=lst.length;}
if(typeof(start)=="undefined"||start===null){start=0;}
for(var i=start;i<end;i++){if(lst[i]===value){return i;}}
return-1;},mean:function(){var sum=0;var m=MochiKit.Base;var args=m.extend(null,arguments);var count=args.length;while(args.length){var o=args.shift();if(o&&typeof(o)=="object"&&typeof(o.length)=="number"){count+=o.length-1;for(var i=o.length-1;i>=0;i--){sum+=o[i];}}else{sum+=o;}}
if(count<=0){throw new TypeError('mean() requires at least one argument');}
return sum/count;},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 upper=data.length/2;return(data[upper]+data[upper-1])/2;}else{return data[(data.length-1)/2];}},findValue:function(lst,value,start,end){if(typeof(end)=="undefined"||end===null){end=lst.length;}
if(typeof(start)=="undefined"||start===null){start=0;}
var cmp=MochiKit.Base.compare;for(var i=start;i<end;i++){if(cmp(lst[i],value)===0){return i;}}
return-1;},nodeWalk:function(node,visitor){var nodes=[node];var extend=MochiKit.Base.extend;while(nodes.length){var res=visitor(nodes.shift());if(res){extend(nodes,res);}}},nameFunctions:function(namespace){var base=namespace.NAME;if(typeof(base)=='undefined'){base='';}else{base=base+'.';}
for(var name in namespace){var o=namespace[name];if(typeof(o)=='function'&&typeof(o.NAME)=='undefined'){try{o.NAME=base+name;}catch(e){}}}},queryString:function(names,values){if(typeof(MochiKit.DOM)!="undefined"&&arguments.length==1&&(typeof(names)=="string"||(typeof(names.nodeType)!="undefined"&&names.nodeType>0))){var kv=MochiKit.DOM.formContents(names);names=kv[0];values=kv[1];}else if(arguments.length==1){if(typeof(names.length)=="number"&&names.length==2){return arguments.callee(names[0],names[1]);}
var o=names;names=[];values=[];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++){names.push(k);values.push(v[i]);}}else{names.push(k);values.push(v);}}}
var rval=[];var len=Math.min(names.length,values.length);var urlEncode=MochiKit.Base.urlEncode;for(var i=0;i<len;i++){v=values[i];if(typeof(v)!='undefined'&&v!==null){rval.push(urlEncode(names[i])+"="+urlEncode(v));}}
return rval.join("&");},parseQueryString:function(encodedString,useArrays){var qstr=(encodedString.charAt(0)=="?")?encodedString.substring(1):encodedString;var pairs=qstr.replace(/\+/g,"%20").split(/(\&amp\;|\&\#38\;|\&#x26;|\&)/);var o={};var decode;if(typeof(decodeURIComponent)!="undefined"){decode=decodeURIComponent;}else{decode=unescape;}
if(useArrays){for(var i=0;i<pairs.length;i++){var pair=pairs[i].split("=");var name=decode(pair.shift());if(!name){continue;}
var arr=o[name];if(!(arr instanceof Array)){arr=[];o[name]=arr;}
arr.push(decode(pair.join("=")));}}else{for(i=0;i<pairs.length;i++){pair=pairs[i].split("=");var name=pair.shift();if(!name){continue;}
o[decode(name)]=decode(pair.join("="));}}
return o;}});MochiKit.Base.AdapterRegistry=function(){this.pairs=[];};MochiKit.Base.AdapterRegistry.prototype={register:function(name,check,wrap,override){if(override){this.pairs.unshift([name,check,wrap]);}else{this.pairs.push([name,check,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(globals,module){if(!MochiKit.__export__){return;}
var all=module.EXPORT_TAGS[":all"];for(var i=0;i<all.length;i++){globals[all[i]]=module[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(unencoded){return encodeURIComponent(unencoded).replace(/\'/g,'%27');};}else{m.urlEncode=function(unencoded){return escape(unencoded).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;mean=MochiKit.Base.mean;median=MochiKit.Base.median;}
MochiKit.Base._exportSymbols(this,MochiKit.Base);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,level,info){this.num=num;this.level=level;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(minLevel){var self=MochiKit.Logging;if(typeof(minLevel)=='string'){minLevel=self.LogLevel[minLevel];}
return function(msg){var msgLevel=msg.level;if(typeof(msgLevel)=='string'){msgLevel=self.LogLevel[msgLevel];}
return msgLevel>=minLevel;};},isLogMessage:function(){var LogMessage=MochiKit.Logging.LogMessage;for(var i=0;i<arguments.length;i++){if(!(arguments[i]instanceof LogMessage)){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(maxSize){this.counter=0;if(typeof(maxSize)=='undefined'||maxSize===null){maxSize=-1;}
this.maxSize=maxSize;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(ident,filter,listener){if(typeof(filter)=='string'){filter=MochiKit.Logging.logLevelAtLeast(filter);}
var entry=[filter,listener];entry.ident=ident;this.listeners[ident]=entry;},removeListener:function(ident){delete this.listeners[ident];},baseLog:function(level,message){var msg=new MochiKit.Logging.LogMessage(this.counter,level,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(howMany){var firstMsg=0;if(!(typeof(howMany)=='undefined'||howMany===null)){firstMsg=Math.max(0,this._messages.length-howMany);}
return this._messages.slice(firstMsg);},getMessageText:function(howMany){if(typeof(howMany)=='undefined'||howMany===null){howMany=30;}
var messages=this.getMessages(howMany);if(messages.length){var lst=map(function(m){return'\n  ['+m.num+'] '+m.level+': '+m.info.join(' ');},messages);lst.unshift('LAST '+messages.length+' MESSAGES:');return lst.join('');}
return'';},debuggingBookmarklet:function(inline){if(typeof(MochiKit.LoggingPane)=="undefined"){alert(this.getMessageText());}else{MochiKit.LoggingPane.createLoggingPane(inline||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 partial=m.partial;var Logger=this.Logger;var baseLog=Logger.prototype.baseLog;m.update(this.Logger.prototype,{debug:partial(baseLog,'DEBUG'),log:partial(baseLog,'INFO'),error:partial(baseLog,'ERROR'),fatal:partial(baseLog,'FATAL'),warning:partial(baseLog,'WARNING')});var self=this;var connectLog=function(name){return function(){self.logger[name].apply(self.logger,arguments);};};this.log=connectLog('log');this.logError=connectLog('error');this.logDebug=connectLog('debug');this.logFatal=connectLog('fatal');this.logWarning=connectLog('warning');this.logger=new Logger();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.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,check,iterfactory,override){MochiKit.Iter.iteratorRegistry.register(name,check,iterfactory,override);},iter:function(iterable,sentinel){var self=MochiKit.Iter;if(arguments.length==2){return self.takewhile(function(a){return a!=sentinel;},iterable);}
if(typeof(iterable.next)=='function'){return iterable;}else if(typeof(iterable.iter)=='function'){return iterable.iter();}
try{return self.iteratorRegistry.match(iterable);}catch(e){var m=MochiKit.Base;if(e==m.NotFound){e=new TypeError(typeof(iterable)+": "+m.repr(iterable)+" 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 iterator=self.iter(p);return{repr:function(){return"cycle(...)";},toString:m.forwardCall("repr"),next:function(){try{var rval=iterator.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(iterator){return iterator.next();},izip:function(p,q){var m=MochiKit.Base;var self=MochiKit.Iter;var next=self.next;var iterables=m.map(self.iter,arguments);return{repr:function(){return"izip(...)";},toString:m.forwardCall("repr"),next:function(){return m.map(next,iterables);}};},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 start=0;var stop=0;var step=1;var i=-1;if(arguments.length==2){stop=arguments[1];}else if(arguments.length==3){start=arguments[1];stop=arguments[2];}else{start=arguments[1];stop=arguments[2];step=arguments[3];}
return{repr:function(){return"islice("+["...",start,stop,step].join(", ")+")";},toString:m.forwardCall("repr"),next:function(){var rval;while(i<start){rval=seq.next();i++;}
if(start>=stop){throw self.StopIteration;}
start+=step;return rval;}};},imap:function(fun,p,q){var m=MochiKit.Base;var self=MochiKit.Iter;var iterables=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,iterables));}};},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 argiter=m.map(self.iter,arguments);return{repr:function(){return"chain(...)";},toString:m.forwardCall("repr"),next:function(){while(argiter.length>1){try{return argiter[0].next();}catch(e){if(e!=self.StopIteration){throw e;}
argiter.shift();}}
if(argiter.length==1){var arg=argiter.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(ident,sync,iterable){sync.pos[ident]=-1;var m=MochiKit.Base;var listMin=m.listMin;return{repr:function(){return"tee("+ident+", ...)";},toString:m.forwardCall("repr"),next:function(){var rval;var i=sync.pos[ident];if(i==sync.max){rval=iterable.next();sync.deque.push(rval);sync.max+=1;sync.pos[ident]+=1;}else{rval=sync.deque[i-sync.min];sync.pos[ident]+=1;if(i==sync.min&&listMin(sync.pos)!=sync.min){sync.min+=1;sync.deque.shift();}}
return rval;}};},tee:function(iterable,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;iterable=self.iter(iterable);var _tee=self._tee;for(var i=0;i<n;i++){rval.push(_tee(i,sync,iterable));}
return rval;},list:function(iterable){var rval;if(iterable instanceof Array){return iterable.slice();}
if(typeof(iterable)=="function"&&!(iterable instanceof Function)&&typeof(iterable.length)=='number'){rval=[];for(var i=0;i<iterable.length;i++){rval.push(iterable[i]);}
return rval;}
var self=MochiKit.Iter;iterable=self.iter(iterable);var rval=[];try{while(true){rval.push(iterable.next());}}catch(e){if(e!=self.StopIteration){throw e;}
return rval;}
return undefined;},reduce:function(fn,iterable,initial){var i=0;var x=initial;var self=MochiKit.Iter;iterable=self.iter(iterable);if(arguments.length<3){try{x=iterable.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,iterable.next());}}catch(e){if(e!=self.StopIteration){throw e;}}
return x;},range:function(){var start=0;var stop=0;var step=1;if(arguments.length==1){stop=arguments[0];}else if(arguments.length==2){start=arguments[0];stop=arguments[1];}else if(arguments.length==3){start=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&&start>=stop)||(step<0&&start<=stop)){throw MochiKit.Iter.StopIteration;}
var rval=start;start+=step;return rval;},repr:function(){return"range("+[start,stop,step].join(", ")+")";},toString:MochiKit.Base.forwardCall("repr")};},sum:function(iterable,start){if(typeof(start)=="undefined"||start===null){start=0;}
var x=start;var self=MochiKit.Iter;iterable=self.iter(iterable);try{while(true){x+=iterable.next();}}catch(e){if(e!=self.StopIteration){throw e;}}
return x;},exhaust:function(iterable){var self=MochiKit.Iter;iterable=self.iter(iterable);try{while(true){iterable.next();}}catch(e){if(e!=self.StopIteration){throw e;}}},forEach:function(iterable,func,self){var m=MochiKit.Base;if(arguments.length>2){func=m.bind(func,self);}
if(m.isArrayLike(iterable)){try{for(var i=0;i<iterable.length;i++){func(iterable[i]);}}catch(e){if(e!=MochiKit.Iter.StopIteration){throw e;}}}else{self=MochiKit.Iter;self.exhaust(self.imap(func,iterable));}},every:function(iterable,func){var self=MochiKit.Iter;try{self.ifilterfalse(func,iterable).next();return false;}catch(e){if(e!=self.StopIteration){throw e;}
return true;}},sorted:function(iterable,cmp){var rval=MochiKit.Iter.list(iterable);if(arguments.length==1){cmp=MochiKit.Base.compare;}
rval.sort(cmp);return rval;},reversed:function(iterable){var rval=MochiKit.Iter.list(iterable);rval.reverse();return rval;},some:function(iterable,func){var self=MochiKit.Iter;try{self.ifilter(func,iterable).next();return true;}catch(e){if(e!=self.StopIteration){throw e;}
return false;}},iextend:function(lst,iterable){if(MochiKit.Base.isArrayLike(iterable)){for(var i=0;i<iterable.length;i++){lst.push(iterable[i]);}}else{var self=MochiKit.Iter;iterable=self.iter(iterable);try{while(true){lst.push(iterable.next());}}catch(e){if(e!=self.StopIteration){throw e;}}}
return lst;},groupby:function(iterable,keyfunc){var m=MochiKit.Base;var self=MochiKit.Iter;if(arguments.length<2){keyfunc=m.operator.identity;}
iterable=self.iter(iterable);var pk=undefined;var k=undefined;var v;function fetch(){v=iterable.next();k=keyfunc(v);};function eat(){var ret=v;v=undefined;return ret;};var first=true;var compare=m.compare;return{repr:function(){return"groupby(...)";},next:function(){while(compare(k,pk)===0){fetch();if(first){first=false;break;}}
pk=k;return[k,{next:function(){if(v==undefined){fetch();}
if(compare(k,pk)!==0){throw self.StopIteration;}
return eat();}}];}};},groupby_as_array:function(iterable,keyfunc){var m=MochiKit.Base;var self=MochiKit.Iter;if(arguments.length<2){keyfunc=m.operator.identity;}
iterable=self.iter(iterable);var result=[];var first=true;var prev_key;var compare=m.compare;while(true){try{var value=iterable.next();var key=keyfunc(value);}catch(e){if(e==self.StopIteration){break;}
throw e;}
if(first||compare(key,prev_key)!==0){var values=[];result.push([key,values]);}
values.push(value);first=false;prev_key=key;}
return result;},arrayLikeIter:function(iterable){var i=0;return{repr:function(){return"arrayLikeIter(...)";},toString:MochiKit.Base.forwardCall("repr"),next:function(){if(i>=iterable.length){throw MochiKit.Iter.StopIteration;}
return iterable[i++];}};},hasIterateNext:function(iterable){return(iterable&&typeof(iterable.iterateNext)=="function");},iterateNextIter:function(iterable){return{repr:function(){return"iterateNextIter(...)";},toString:MochiKit.Base.forwardCall("repr"),next:function(){var rval=iterable.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.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(win,func){var self=MochiKit.DOM;var oldDoc=self._document;var oldWin=self._window;var rval;try{self._window=win;self._document=win.document;rval=func();}catch(e){self._window=oldWin;self._document=oldDoc;throw e;}
self._window=oldWin;self._document=oldDoc;return rval;},formContents:function(elem){var names=[];var values=[];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 tagName=elem.tagName.toUpperCase();if(tagName==="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){return null;}
if(tagName==="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;}}
names.push(name);values.push(v);return null;}
names.push(name);values.push("");return null;}else{var opts=elem.options;if(!opts.length){names.push(name);values.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;}}
names.push(name);values.push(v);}
return null;}}
if(tagName==="FORM"||tagName==="P"||tagName==="SPAN"||tagName==="DIV"){return elem.childNodes;}
names.push(name);values.push(elem.value||'');return null;}
return elem.childNodes;});return[names,values];},withDocument:function(doc,func){var self=MochiKit.DOM;var oldDoc=self._document;var rval;try{self._document=doc;rval=func();}catch(e){self._document=oldDoc;throw e;}
self._document=oldDoc;return rval;},registerDOMConverter:function(name,check,wrap,override){MochiKit.DOM.domConverters.register(name,check,wrap,override);},coerceToDOM:function(node,ctx){var m=MochiKit.Base;var im=MochiKit.Iter;var self=MochiKit.DOM;if(im){var iter=im.iter;var repeat=im.repeat;var map=m.map;}
var domConverters=self.domConverters;var coerceToDOM=arguments.callee;var NotFound=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 iterNodes=null;try{iterNodes=iter(node);}catch(e){}
if(iterNodes){return map(coerceToDOM,iterNodes,repeat(ctx));}}
try{node=domConverters.match(node,ctx);continue;}catch(e){if(e!=NotFound){throw e;}}
return self._document.createTextNode(node.toString());}
return undefined;},isChildNode:function(node,maybeparent){var self=MochiKit.DOM;if(typeof(node)=="string"){node=self.getElement(node);}
if(typeof(maybeparent)=="string"){maybeparent=self.getElement(maybeparent);}
if(typeof(node)=='undefined'||node===null||node===self._document){return false;}
do{if(node===maybeparent){return true;}
var tagName=node.tagName;node=node.parentNode;if(!tagName){break;}
tagName=tagName.toUpperCase();}while(tagName!="BODY"&&tagName!="HTML");return false;},setNodeAttribute:function(node,attr,value){var o={};o[attr]=value;try{return MochiKit.DOM.updateNodeAttributes(node,o);}catch(e){}
return null;},getNodeAttribute:function(node,attr){var self=MochiKit.DOM;var rename=self.attributeArray.renames[attr];node=self.getElement(node);try{if(rename){return node[rename];}
return node.getAttribute(attr);}catch(e){}
return null;},removeNodeAttribute:function(node,attr){var self=MochiKit.DOM;var rename=self.attributeArray.renames[attr];node=self.getElement(node);try{if(rename){return node[rename];}
return node.removeAttribute(attr);}catch(e){}
return null;},updateNodeAttributes:function(node,attrs){var elem=node;var self=MochiKit.DOM;if(typeof(node)=='string'){elem=self.getElement(node);}
if(attrs){var updatetree=MochiKit.Base.updatetree;if(self.attributeArray.compliant){for(var k in attrs){var v=attrs[k];if(typeof(v)=='object'&&typeof(elem[k])=='object'){if(k=="style"&&MochiKit.Style){MochiKit.Style.setStyle(elem,v);}else{updatetree(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 renames=self.attributeArray.renames;for(var k in attrs){v=attrs[k];var renamed=renames[k];if(k=="style"&&typeof(v)=="string"){elem.style.cssText=v;}else if(typeof(renamed)=="string"){elem[renamed]=v;}else if(typeof(elem[k])=='object'&&typeof(v)=='object'){if(k=="style"&&MochiKit.Style){MochiKit.Style.setStyle(elem,v);}else{updatetree(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 nodeStack=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];var concat=MochiKit.Base.concat;while(nodeStack.length){var n=nodeStack.shift();if(typeof(n)=='undefined'||n===null){}else if(typeof(n.nodeType)=='number'){elem.appendChild(n);}else{nodeStack=concat(n,nodeStack);}}
return elem;},insertSiblingNodesBefore:function(node){var elem=node;var self=MochiKit.DOM;if(typeof(node)=='string'){elem=self.getElement(node);}
var nodeStack=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];var parentnode=elem.parentNode;var concat=MochiKit.Base.concat;while(nodeStack.length){var n=nodeStack.shift();if(typeof(n)=='undefined'||n===null){}else if(typeof(n.nodeType)=='number'){parentnode.insertBefore(n,elem);}else{nodeStack=concat(n,nodeStack);}}
return parentnode;},insertSiblingNodesAfter:function(node){var elem=node;var self=MochiKit.DOM;if(typeof(node)=='string'){elem=self.getElement(node);}
var nodeStack=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];if(elem.nextSibling){return self.insertSiblingNodesBefore(elem.nextSibling,nodeStack);}
else{return self.appendChildNodes(elem.parentNode,nodeStack);}},replaceChildNodes:function(node){var elem=node;var self=MochiKit.DOM;if(typeof(node)=='string'){elem=self.getElement(node);arguments[0]=elem;}
var child;while((child=elem.firstChild)){elem.removeChild(child);}
if(arguments.length<2){return elem;}else{return self.appendChildNodes.apply(this,arguments);}},createDOM:function(name,attrs){var elem;var self=MochiKit.DOM;var m=MochiKit.Base;if(typeof(attrs)=="string"||typeof(attrs)=="number"){var args=m.extend([name,null],arguments,1);return arguments.callee.apply(this,args);}
if(typeof(name)=='string'){var xhtml=self._xhtml;if(attrs&&!self.attributeArray.compliant){var contents="";if('name'in attrs){contents+=' name="'+self.escapeHTML(attrs.name)+'"';}
if(name=='input'&&'type'in attrs){contents+=' type="'+self.escapeHTML(attrs.type)+'"';}
if(contents){name="<"+name+contents+">";xhtml=false;}}
var d=self._document;if(xhtml&&d===document){elem=d.createElementNS("http://www.w3.org/1999/xhtml",name);}else{elem=d.createElement(name);}}else{elem=name;}
if(attrs){self.updateNodeAttributes(elem,attrs);}
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 parent=dest.parentNode;if(src){src=self.getElement(src);parent.replaceChild(src,dest);}else{parent.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(tagName,className,parent){var self=MochiKit.DOM;if(typeof(tagName)=='undefined'||tagName===null){tagName='*';}
if(typeof(parent)=='undefined'||parent===null){parent=self._document;}
parent=self.getElement(parent);var children=(parent.getElementsByTagName(tagName)||self._document.all);if(typeof(className)=='undefined'||className===null){return MochiKit.Base.extend(null,children);}
var elements=[];for(var i=0;i<children.length;i++){var child=children[i];var cls=child.className;if(!cls){continue;}
var classNames=cls.split(' ');for(var j=0;j<classNames.length;j++){if(classNames[j]==className){elements.push(child);break;}}}
return elements;},_newCallStack:function(path,once){var rval=function(){var callStack=arguments.callee.callStack;for(var i=0;i<callStack.length;i++){if(callStack[i].apply(this,arguments)===false){break;}}
if(once){try{this[path]=null;}catch(e){}}};rval.callStack=[];return rval;},addToCallStack:function(target,path,func,once){var self=MochiKit.DOM;var existing=target[path];var regfunc=existing;if(!(typeof(existing)=='function'&&typeof(existing.callStack)=="object"&&existing.callStack!==null)){regfunc=self._newCallStack(path,once);if(typeof(existing)=='function'){regfunc.callStack.push(existing);}
target[path]=regfunc;}
regfunc.callStack.push(func);},addLoadEvent:function(func){var self=MochiKit.DOM;self.addToCallStack(self._window,"onload",func,true);},focusOnLoad:function(element){var self=MochiKit.DOM;self.addLoadEvent(function(){element=self.getElement(element);if(element){element.focus();}});},setElementClass:function(element,className){var self=MochiKit.DOM;var obj=self.getElement(element);if(self.attributeArray.compliant){obj.setAttribute("class",className);}else{obj.setAttribute("className",className);}},toggleElementClass:function(className){var self=MochiKit.DOM;for(var i=1;i<arguments.length;i++){var obj=self.getElement(arguments[i]);if(!self.addElementClass(obj,className)){self.removeElementClass(obj,className);}}},addElementClass:function(element,className){var self=MochiKit.DOM;var obj=self.getElement(element);var cls=obj.className;if(cls==undefined||cls.length===0){self.setElementClass(obj,className);return true;}
if(cls==className){return false;}
var classes=cls.split(" ");for(var i=0;i<classes.length;i++){if(classes[i]==className){return false;}}
self.setElementClass(obj,cls+" "+className);return true;},removeElementClass:function(element,className){var self=MochiKit.DOM;var obj=self.getElement(element);var cls=obj.className;if(cls==undefined||cls.length===0){return false;}
if(cls==className){self.setElementClass(obj,"");return true;}
var classes=cls.split(" ");for(var i=0;i<classes.length;i++){if(classes[i]==className){classes.splice(i,1);self.setElementClass(obj,classes.join(" "));return true;}}
return false;},swapElementClass:function(element,fromClass,toClass){var obj=MochiKit.DOM.getElement(element);var res=MochiKit.DOM.removeElementClass(obj,fromClass);if(res){MochiKit.DOM.addElementClass(obj,toClass);}
return res;},hasElementClass:function(element,className){var obj=MochiKit.DOM.getElement(element);var cls=obj.className;if(!cls){return false;}
var classes=cls.split(" ");for(var i=1;i<arguments.length;i++){var good=false;for(var j=0;j<classes.length;j++){if(classes[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 queue=[dom];var self=MochiKit.DOM;var escapeHTML=self.escapeHTML;var attributeArray=self.attributeArray;while(queue.length){dom=queue.pop();if(typeof(dom)=='string'){lst.push(dom);}else if(dom.nodeType==1){lst.push('<'+dom.tagName.toLowerCase());var attributes=[];var domAttr=attributeArray(dom);for(var i=0;i<domAttr.length;i++){var a=domAttr[i];attributes.push([" ",a.name,'="',escapeHTML(a.value),'"']);}
attributes.sort();for(i=0;i<attributes.length;i++){var attrs=attributes[i];for(var j=0;j<attrs.length;j++){lst.push(attrs[j]);}}
if(dom.hasChildNodes()){lst.push(">");queue.push("</"+dom.tagName.toLowerCase()+">");var cnodes=dom.childNodes;for(i=cnodes.length-1;i>=0;i--){queue.push(cnodes[i]);}}else{lst.push('/>');}}else if(dom.nodeType==3){lst.push(escapeHTML(dom.nodeValue));}}
return lst;},scrapeText:function(node,asArray){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 nodeValue=node.nodeValue;if(typeof(nodeValue)=='string'){rval.push(nodeValue);}})(MochiKit.DOM.getElement(node));if(asArray){return rval;}else{return rval.join("");}},removeEmptyTextNodes:function(element){element=MochiKit.DOM.getElement(element);for(var i=0;i<element.childNodes.length;i++){var node=element.childNodes[i];if(node.nodeType==3&&!/\S/.test(node.nodeValue)){node.parentNode.removeChild(node);}}},makeClipping:function(element){element=MochiKit.DOM.getElement(element);var oldOverflow=element.style.overflow;if((MochiKit.Style.getStyle(element,'overflow')||'visible')!='hidden'){element.style.overflow='hidden';}
return oldOverflow;},undoClipping:function(element,overflow){element=MochiKit.DOM.getElement(element);if(!overflow){return;}
element.style.overflow=overflow;},makePositioned:function(element){element=MochiKit.DOM.getElement(element);var pos=MochiKit.Style.getStyle(element,'position');if(pos=='static'||!pos){element.style.position='relative';if(/Opera/.test(navigator.userAgent)){element.style.top=0;element.style.left=0;}}},undoPositioned:function(element){element=MochiKit.DOM.getElement(element);if(element.style.position=='relative'){element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}},getFirstElementByTagAndClassName:function(tagName,className,parent){var self=MochiKit.DOM;if(typeof(tagName)=='undefined'||tagName===null){tagName='*';}
if(typeof(parent)=='undefined'||parent===null){parent=self._document;}
parent=self.getElement(parent);var children=(parent.getElementsByTagName(tagName)||self._document.all);if(typeof(className)=='undefined'||className===null){return children[0];}
for(var i=0;i<children.length;i++){var child=children[i];var classNames=child.className.split(' ');for(var j=0;j<classNames.length;j++){if(classNames[j]==className){return child;}}}},getFirstParentByTagAndClassName:function(elem,tagName,className){var self=MochiKit.DOM;elem=self.getElement(elem);if(typeof(tagName)=='undefined'||tagName===null){tagName='*';}else{tagName=tagName.toUpperCase();}
if(typeof(className)=='undefined'||className===null){className=null;}
var classList='';var curTagName='';while(elem&&elem.tagName){elem=elem.parentNode;if(tagName=='*'&&className===null){return elem;}
classList=elem.className.split(' ');curTagName=elem.tagName.toUpperCase();if(className===null&&tagName==curTagName){return elem;}else if(className!==null){for(var i=0;i<classList.length;i++){if(tagName=='*'&&classList[i]==className){return elem;}else if(tagName==curTagName&&classList[i]==className){return elem;}}}}
return elem;},isParent:function(child,element){if(!child.parentNode||child==element){return false;}
if(child.parentNode==element){return true;}
return MochiKit.DOM.isParent(child.parentNode,element);},__new__:function(win){var m=MochiKit.Base;if(typeof(document)!="undefined"){this._document=document;var kXULNSURI="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";this._xhtml=(document.documentElement&&document.createElementNS&&document.documentElement.namespaceURI===kXULNSURI);}else if(MochiKit.MockDOM){this._document=MochiKit.MockDOM.document;}
this._window=win;this.domConverters=new m.AdapterRegistry();var __tmpElement=this._document.createElement("span");var attributeArray;if(__tmpElement&&__tmpElement.attributes&&__tmpElement.attributes.length>0){var filter=m.filter;attributeArray=function(node){return filter(attributeArray.ignoreAttrFilter,node.attributes);};attributeArray.ignoreAttr={};var attrs=__tmpElement.attributes;var ignoreAttr=attributeArray.ignoreAttr;for(var i=0;i<attrs.length;i++){var a=attrs[i];ignoreAttr[a.name]=a.value;}
attributeArray.ignoreAttrFilter=function(a){return(attributeArray.ignoreAttr[a.name]!=a.value);};attributeArray.compliant=false;attributeArray.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor","readonly":"readOnly","colspan":"colSpan","bgcolor":"bgColor","cellspacing":"cellSpacing","cellpadding":"cellPadding"};}else{attributeArray=function(node){return node.attributes;};attributeArray.compliant=true;attributeArray.renames={};}
this.attributeArray=attributeArray;var _deprecated=function(fromModule,arr){var modules=arr[1].split('.');var str='';var obj={};str+='if (!MochiKit.'+modules[1]+') { throw new Error("';str+='This function has been deprecated and depends on MochiKit.';str+=modules[1]+'.");}';str+='return MochiKit.'+modules[1]+'.'+arr[0];str+='.apply(this, arguments);';obj[modules[2]]=new Function(str);MochiKit.Base.update(MochiKit[fromModule],obj);}
for(var i;i<MochiKit.DOM.DEPRECATED.length;i++){_deprecated('DOM',MochiKit.DOM.DEPRECATED[i]);}
var createDOMFunc=this.createDOMFunc;this.UL=createDOMFunc("ul");this.OL=createDOMFunc("ol");this.LI=createDOMFunc("li");this.DL=createDOMFunc("dl");this.DT=createDOMFunc("dt");this.DD=createDOMFunc("dd");this.TD=createDOMFunc("td");this.TR=createDOMFunc("tr");this.TBODY=createDOMFunc("tbody");this.THEAD=createDOMFunc("thead");this.TFOOT=createDOMFunc("tfoot");this.TABLE=createDOMFunc("table");this.TH=createDOMFunc("th");this.INPUT=createDOMFunc("input");this.SPAN=createDOMFunc("span");this.A=createDOMFunc("a");this.DIV=createDOMFunc("div");this.IMG=createDOMFunc("img");this.BUTTON=createDOMFunc("button");this.TT=createDOMFunc("tt");this.PRE=createDOMFunc("pre");this.H1=createDOMFunc("h1");this.H2=createDOMFunc("h2");this.H3=createDOMFunc("h3");this.BR=createDOMFunc("br");this.HR=createDOMFunc("hr");this.LABEL=createDOMFunc("label");this.TEXTAREA=createDOMFunc("textarea");this.FORM=createDOMFunc("form");this.P=createDOMFunc("p");this.SELECT=createDOMFunc("select");this.OPTION=createDOMFunc("option");this.OPTGROUP=createDOMFunc("optgroup");this.LEGEND=createDOMFunc("legend");this.FIELDSET=createDOMFunc("fieldset");this.STRONG=createDOMFunc("strong");this.CANVAS=createDOMFunc("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.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(canceller){this.chain=[];this.id=this._nextId();this.fired=-1;this.paused=0;this.results=[null,null];this.canceller=canceller;this.silentlyCancelled=false;this.chained=false;};MochiKit.Async.Deferred.prototype={repr:function(){var state;if(this.fired==-1){state='unfired';}else if(this.fired===0){state='success';}else{state='error';}
return'Deferred('+this.id+', '+state+')';},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 chain=this.chain;var fired=this.fired;var res=this.results[fired];var self=this;var cb=null;while(chain.length>0&&this.paused===0){var pair=chain.shift();var f=pair[fired];if(f===null){continue;}
try{res=f(res);fired=((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){fired=1;if(!(err instanceof Error)){err=new MochiKit.Async.GenericError(err);}
res=err;}}
this.fired=fired;this.results[fired]=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(result){var d=new MochiKit.Async.Deferred();d.callback.apply(d,arguments);return d;},fail:function(result){var d=new MochiKit.Async.Deferred();d.errback.apply(d,arguments);return d;},getXMLHttpRequest:function(){var self=arguments.callee;if(!self.XMLHttpRequest){var tryThese=[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<tryThese.length;i++){var func=tryThese[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 status=null;try{status=this.status;if(!status&&m.isNotEmpty(this.responseText)){status=304;}}catch(e){}
if(status==200||status==201||status==204||status==304||status==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,sendContent){if(typeof(sendContent)=="undefined"||sendContent===null){sendContent="";}
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(sendContent);}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 headers=opts.headers;if(!m.isArrayLike(headers)){headers=m.items(headers);}
for(var i=0;i<headers.length;i++){var header=headers[i];var name=header[0];var value=header[1];req.setRequestHeader(name,value);}}
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(seconds,value){var d=new MochiKit.Async.Deferred();var m=MochiKit.Base;if(typeof(value)!='undefined'){d.addCallback(function(){return value;});}
var timeout=setTimeout(m.bind("callback",d),Math.floor(seconds*1000));d.canceller=function(){try{clearTimeout(timeout);}catch(e){}};return d;},callLater:function(seconds,func){var m=MochiKit.Base;var pfunc=m.partial.apply(m,m.extend(null,arguments,1));return MochiKit.Async.wait(seconds).addCallback(function(res){return pfunc();});}});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 state;if(this.locked){state='locked, '+this.waiting.length+' waiting';}else{state='unlocked';}
return'DeferredLock('+this.id+', '+state+')';},toString:MochiKit.Base.forwardCall("repr")};MochiKit.Async.DeferredList=function(list,fireOnOneCallback,fireOnOneErrback,consumeErrors,canceller){MochiKit.Async.Deferred.apply(this,[canceller]);this.list=list;var resultList=[];this.resultList=resultList;this.finishedCount=0;this.fireOnOneCallback=fireOnOneCallback;this.fireOnOneErrback=fireOnOneErrback;this.consumeErrors=consumeErrors;var cb=MochiKit.Base.bind(this._cbDeferred,this);for(var i=0;i<list.length;i++){var d=list[i];resultList.push(undefined);d.addCallback(cb,i,true);d.addErrback(cb,i,false);}
if(list.length===0&&!fireOnOneCallback){this.callback(this.resultList);}};MochiKit.Async.DeferredList.prototype=new MochiKit.Async.Deferred();MochiKit.Async.DeferredList.prototype._cbDeferred=function(index,succeeded,result){this.resultList[index]=[succeeded,result];this.finishedCount+=1;if(this.fired==-1){if(succeeded&&this.fireOnOneCallback){this.callback([index,result]);}else if(!succeeded&&this.fireOnOneErrback){this.errback(result);}else if(this.finishedCount==this.list.length){this.callback(this.resultList);}}
if(!succeeded&&this.consumeErrors){result=null;}
return result;};MochiKit.Async.gatherResults=function(deferredList){var d=new MochiKit.Async.DeferredList(deferredList,false,true,false);d.addCallback(function(results){var ret=[];for(var i=0;i<results.length;i++){ret.push(results[i][1]);}
return ret;});return d;};MochiKit.Async.maybeDeferred=function(func){var self=MochiKit.Async;var result;try{var r=func.apply(null,MochiKit.Base.extend([],arguments,1));if(r instanceof self.Deferred){result=r;}else if(r instanceof Error){result=self.fail(r);}else{result=self.succeed(r);}}catch(e){result=self.fail(e);}
return result;};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(deferred){this.deferred=deferred;});ne("CancelledError",function(deferred){this.deferred=deferred;});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.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,cssProperty){var dom=MochiKit.DOM;var d=dom._document;elem=dom.getElement(elem);cssProperty=MochiKit.Base.camelize(cssProperty);if(!elem||elem==d){return undefined;}
if(cssProperty=='opacity'&&elem.filters){var opacity=(MochiKit.Style.getStyle(elem,'filter')||'').match(/alpha\(opacity=(.*)\)/);if(opacity&&opacity[1]){return parseFloat(opacity[1])/100;}
return 1.0;}
var value=elem.style?elem.style[cssProperty]:null;if(!value){if(d.defaultView&&d.defaultView.getComputedStyle){var css=d.defaultView.getComputedStyle(elem,null);cssProperty=cssProperty.replace(/([A-Z])/g,'-$1').toLowerCase();value=css?css.getPropertyValue(cssProperty):null;}else if(elem.currentStyle){value=elem.currentStyle[cssProperty];}}
if(cssProperty=='opacity'){value=parseFloat(value);}
if(/Opera/.test(navigator.userAgent)&&(MochiKit.Base.find(['left','top','right','bottom'],cssProperty)!=-1)){if(MochiKit.Style.getStyle(elem,'position')=='static'){value='auto';}}
return value=='auto'?null:value;},setStyle:function(elem,style){elem=MochiKit.DOM.getElement(elem);for(var name in style){if(name=='opacity'){MochiKit.Style.setOpacity(elem,style[name]);}else{elem.style[MochiKit.Base.camelize(name)]=style[name];}}},setOpacity:function(elem,o){elem=MochiKit.DOM.getElement(elem);var self=MochiKit.Style;if(o==1){var toSet=/Gecko/.test(navigator.userAgent)&&!(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent));elem.style["opacity"]=toSet?0.999999:1.0;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,relativeTo){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 parent=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);return c;}else if(elem.offsetParent){c.x+=elem.offsetLeft;c.y+=elem.offsetTop;parent=elem.offsetParent;if(parent!=elem){while(parent){c.x+=parent.offsetLeft;c.y+=parent.offsetTop;parent=parent.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(relativeTo)!='undefined'){relativeTo=arguments.callee(relativeTo);if(relativeTo){c.x-=(relativeTo.x||0);c.y-=(relativeTo.y||0);}}
if(elem.parentNode){parent=elem.parentNode;}else{parent=null;}
while(parent){var tagName=parent.tagName.toUpperCase();if(tagName==='BODY'||tagName==='HTML'){break;}
var disp=self.getStyle(parent,'display');if(disp.search(/^inline|table-row.*$/i)){c.x-=parent.scrollLeft;c.y-=parent.scrollTop;}
if(parent.parentNode){parent=parent.parentNode;}else{parent=null;}}
return c;},setElementPosition:function(elem,newPos,units){elem=MochiKit.DOM.getElement(elem);if(typeof(units)=='undefined'){units='px';}
var newStyle={};var isUndefNull=MochiKit.Base.isUndefinedOrNull;if(!isUndefNull(newPos.x)){newStyle['left']=newPos.x+units;}
if(!isUndefNull(newPos.y)){newStyle['top']=newPos.y+units;}
MochiKit.DOM.updateNodeAttributes(elem,{'style':newStyle});},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 originalVisibility=s.visibility;var originalPosition=s.position;s.visibility='hidden';s.position='absolute';s.display='';var originalWidth=elem.offsetWidth;var originalHeight=elem.offsetHeight;s.display='none';s.position=originalPosition;s.visibility=originalVisibility;return new self.Dimensions(originalWidth,originalHeight);},setElementDimensions:function(elem,newSize,units){elem=MochiKit.DOM.getElement(elem);if(typeof(units)=='undefined'){units='px';}
var newStyle={};var isUndefNull=MochiKit.Base.isUndefinedOrNull;if(!isUndefNull(newSize.w)){newStyle['width']=newSize.w+units;}
if(!isUndefNull(newSize.h)){newStyle['height']=newSize.h+units;}
MochiKit.DOM.updateNodeAttributes(elem,{'style':newStyle});},setDisplayForElement:function(display,element){var elements=MochiKit.Base.extend(null,arguments,1);var getElement=MochiKit.DOM.getElement;for(var i=0;i<elements.length;i++){element=getElement(elements[i]);if(element){element.style.display=display;}}},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 _specialMacKeys=MochiKit.Signal._specialMacKeys;for(i=63236;i<=63242;i++){_specialMacKeys[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 _specialKeys=MochiKit.Signal._specialKeys;for(var i=48;i<=57;i++){_specialKeys[i]='KEY_'+(i-48);}
for(i=65;i<=90;i++){_specialKeys[i]='KEY_'+String.fromCharCode(i);}
for(i=96;i<=105;i++){_specialKeys[i]='KEY_NUM_PAD_'+(i-96);}
for(i=112;i<=123;i++){_specialKeys[i]='KEY_F'+(i-112+1);}})();MochiKit.Signal.Ident=function(ident){this.source=ident.source;this.signal=ident.signal;this.listener=ident.listener;this.isDOM=ident.isDOM;this.objOrFunc=ident.objOrFunc;this.funcOrStr=ident.funcOrStr;this.connected=ident.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 observers=self._observers;for(var i=0;i<observers.length;i++){if(observers[i].signal!=='onload'&&observers[i].signal!=='onunload'){self._disconnect(observers[i]);}}},_listener:function(src,sig,func,obj,isDOM){var self=MochiKit.Signal;var E=self.Event;if(!isDOM){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(nativeEvent){obj[func].apply(obj,[new E(src,nativeEvent)]);var ident=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:obj,funcOrStr:func});MochiKit.Signal._disconnect(ident);};}else{return function(nativeEvent){obj[func].apply(obj,[new E(src,nativeEvent)]);};}}else{if(sig==='onload'||sig==='onunload'){return function(nativeEvent){func.apply(obj,[new E(src,nativeEvent)]);var ident=new MochiKit.Signal.Ident({source:src,signal:sig,objOrFunc:func});MochiKit.Signal._disconnect(ident);};}else{return function(nativeEvent){func.apply(obj,[new E(src,nativeEvent)]);};}}},_browserAlreadyHasMouseEnterAndLeave:function(){return/MSIE/.test(navigator.userAgent);},_mouseEnterListener:function(src,sig,func,obj){var E=MochiKit.Signal.Event;return function(nativeEvent){var e=new E(src,nativeEvent);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(objOrFunc,funcOrStr){var obj=null;var func=null;if(typeof(funcOrStr)!='undefined'){obj=objOrFunc;func=funcOrStr;if(typeof(funcOrStr)=='string'){if(typeof(objOrFunc[funcOrStr])!="function"){throw new Error("'funcOrStr' must be a function on 'objOrFunc'");}}else if(typeof(funcOrStr)!='function'){throw new Error("'funcOrStr' must be a function or string");}}else if(typeof(objOrFunc)!="function"){throw new Error("'objOrFunc' must be a function if 'funcOrStr' is not given");}else{func=objOrFunc;}
return[obj,func];},connect:function(src,sig,objOrFunc,funcOrStr){src=MochiKit.DOM.getElement(src);var self=MochiKit.Signal;if(typeof(sig)!='string'){throw new Error("'sig' must be a string");}
var destPair=self._getDestPair(objOrFunc,funcOrStr);var obj=destPair[0];var func=destPair[1];if(typeof(obj)=='undefined'||obj===null){obj=src;}
var isDOM=!!(src.addEventListener||src.attachEvent);if(isDOM&&(sig==="onmouseenter"||sig==="onmouseleave")&&!self._browserAlreadyHasMouseEnterAndLeave()){var listener=self._mouseEnterListener(src,sig.substr(2),func,obj);if(sig==="onmouseenter"){sig="onmouseover";}else{sig="onmouseout";}}else{var listener=self._listener(src,sig,func,obj,isDOM);}
if(src.addEventListener){src.addEventListener(sig.substr(2),listener,false);}else if(src.attachEvent){src.attachEvent(sig,listener);}
var ident=new MochiKit.Signal.Ident({source:src,signal:sig,listener:listener,isDOM:isDOM,objOrFunc:objOrFunc,funcOrStr:funcOrStr,connected:true});self._observers.push(ident);if(!isDOM&&typeof(src.__connect__)=='function'){var args=MochiKit.Base.extend([ident],arguments,1);src.__connect__.apply(src,args);}
return ident;},_disconnect:function(ident){if(!ident.connected){return;}
ident.connected=false;if(!ident.isDOM){return;}
var src=ident.source;var sig=ident.signal;var listener=ident.listener;if(src.removeEventListener){src.removeEventListener(sig.substr(2),listener,false);}else if(src.detachEvent){src.detachEvent(sig,listener);}else{throw new Error("'src' must be a DOM element");}},disconnect:function(ident){var self=MochiKit.Signal;var observers=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=observers.length-1;i>=0;i--){var o=observers[i];if(o.source===src&&o.signal===sig&&o.objOrFunc===obj&&o.funcOrStr===func){self._disconnect(o);if(!self._lock){observers.splice(i,1);}else{self._dirty=true;}
return true;}}}else{var idx=m.findIdentical(observers,ident);if(idx>=0){self._disconnect(ident);if(!self._lock){observers.splice(idx,1);}else{self._dirty=true;}
return true;}}
return false;},disconnectAllTo:function(objOrFunc,funcOrStr){var self=MochiKit.Signal;var observers=self._observers;var disconnect=self._disconnect;var locked=self._lock;var dirty=self._dirty;if(typeof(funcOrStr)==='undefined'){funcOrStr=null;}
for(var i=observers.length-1;i>=0;i--){var ident=observers[i];if(ident.objOrFunc===objOrFunc&&(funcOrStr===null||ident.funcOrStr===funcOrStr)){disconnect(ident);if(locked){dirty=true;}else{observers.splice(i,1);}}}
self._dirty=dirty;},disconnectAll:function(src,sig){src=MochiKit.DOM.getElement(src);var m=MochiKit.Base;var signals=m.flattenArguments(m.extend(null,arguments,1));var self=MochiKit.Signal;var disconnect=self._disconnect;var observers=self._observers;var i,ident;var locked=self._lock;var dirty=self._dirty;if(signals.length===0){for(i=observers.length-1;i>=0;i--){ident=observers[i];if(ident.source===src){disconnect(ident);if(!locked){observers.splice(i,1);}else{dirty=true;}}}}else{var sigs={};for(i=0;i<signals.length;i++){sigs[signals[i]]=true;}
for(i=observers.length-1;i>=0;i--){ident=observers[i];if(ident.source===src&&ident.signal in sigs){disconnect(ident);if(!locked){observers.splice(i,1);}else{dirty=true;}}}}
self._dirty=dirty;},signal:function(src,sig){var self=MochiKit.Signal;var observers=self._observers;src=MochiKit.DOM.getElement(src);var args=MochiKit.Base.extend(null,arguments,2);var errors=[];self._lock=true;for(var i=0;i<observers.length;i++){var ident=observers[i];if(ident.source===src&&ident.signal===sig&&ident.connected){try{ident.listener.apply(src,args);}catch(e){errors.push(e);}}}
self._lock=false;if(self._dirty){self._dirty=false;for(var i=observers.length-1;i>=0;i--){if(!observers[i].connected){observers.splice(i,1);}}}
if(errors.length==1){throw errors[0];}else if(errors.length>1){var e=new Error("Multiple errors thrown in handling 'sig', see errors property");e.errors=errors;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 deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return"";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;var MindShare={};var searchDefault='SEARCH';MindShare.init=function(){if(getElement("q"))
{searchDefault=getElement("q").value;MindShare.Highlight.init();}
if(typeof(google)!='undefined'){GMap2=google.maps.Map2;GSmallMapControl=google.maps.SmallMapControl;GLatLng=google.maps.LatLng;GMarker=google.maps.Marker;}
MindShare.GlobalNav.markup();MindShare.Media.processAutoVideo();MindShare.Invokrs.init();MindShare.Comments.init();forEach(map(getElement,["q","q2"]),function(elem){if(elem){connect(elem,"onfocus",function(ev){if(elem.value==searchDefault)
elem.value='';});}});if(getElement("officemap"))
{loadmap();}}
addLoadEvent(MindShare.init);MindShare.Invokrs={init:function(){MindShare.Invokrs.Login.init();MindShare.Invokrs.Share.init();MindShare.Invokrs.Offices.init();MindShare.Invokrs.Search.init();},hide:function(){MindShare.Invokrs.Login.hide();MindShare.Invokrs.Share.hide();MindShare.Invokrs.Offices.hide();MindShare.Invokrs.Search.hide();},shimmy:function(div,offset){if(navigator.userAgent.toLowerCase().indexOf("msie 6.0")==-1)
return;if(!offset)offset=0;div=getElement(div);shm=createDOM('IFRAME',{style:"background: transparent, filter: 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'"});shm.id=div.id+"Shim";appendChildNodes(div.parentNode,shm);shm.style.position="absolute";shm.style.left=div.offsetLeft+"px";shm.style.top=(div.offsetTop+offset)+"px";var siz=getElementDimensions(div);siz.h-=offset;setElementDimensions(shm,siz);setStyle(shm,{zIndex:getStyle(div,'z-index')-1,display:'block',border:'none',background:'transparent','background-color':'transparent',filter:'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'});},unshimmy:function(div){shimId=getElement(div).id+"Shim";if(getElement(shimId)){removeElement(shimId);}},magicshim:function(div){if(hasElementClass(div,"Hide")){MindShare.Invokrs.unshimmy(div);}else{MindShare.Invokrs.shimmy(div);}}};MindShare.Invokrs.Search={init:function(){if(getElement("invokr-search-trigger")){if(getElement("invokr-search-trigger")){MochiKit.Signal.connect("invokr-search-trigger","onclick",MindShare.Invokrs.Search.toggle);MochiKit.Signal.connect("invokr-search-close","onclick",MindShare.Invokrs.Search.toggle);MochiKit.Signal.connect("invokr-advsearch-close","onclick",MindShare.Invokrs.Search.toggle);}}},hide:function(){if(!hasElementClass("AdvSearchForm","Hide")){addElementClass("AdvSearchForm","Hide");MindShare.Invokrs.unshimmy("AdvSearchForm");}},toggle:function(ev){ev.preventDefault();if(hasElementClass("AdvSearchForm","Hide")){if(getElement("q").value==searchDefault){getElement("q2").value="";}else{getElement("q2").value=getElement("q").value;}}else{getElement("q").value=getElement("q2").value;}
toggleElementClass("Hide","AdvSearchForm");MindShare.Invokrs.magicshim("AdvSearchForm");if(navigator.userAgent.toLowerCase().indexOf("msie 6.0")!=-1)
toggleElementClass("ProtectSearch","VisualTags");}};MindShare.Invokrs.Login={d:undefined,init:function(){if(getElement("invokr-login-trigger")){MochiKit.Signal.connect("invokr-login-trigger","onmouseenter",MindShare.Invokrs.Login.activate);MochiKit.Signal.connect("invokr-login-trigger","onmouseleave",MindShare.Invokrs.Login.deactivate);MochiKit.Signal.connect("invokr-login-trigger","onclick",MindShare.Invokrs.Login.toggle);MochiKit.Signal.connect("invokr-login-close","onclick",MindShare.Invokrs.Login.hide);}},toggle:function(ev){ev.preventDefault();if(MindShare.Invokrs.Login.d)
MindShare.Invokrs.Login.d.cancel();toggleElementClass("Hide","LoginInvokr");MindShare.Invokrs.magicshim("LoginInvokr");},activate:function(ev){ev.preventDefault();if(hasElementClass("LoginInvokr","Hide")){MindShare.Invokrs.Login.d=MochiKit.Async.callLater(0.5,function(){removeElementClass("LoginInvokr","Hide");MindShare.Invokrs.shimmy("LoginInvokr");});}},deactivate:function(ev){if(MindShare.Invokrs.Login.d)
MindShare.Invokrs.Login.d.cancel();},hide:function(ev){if(ev)ev.preventDefault();addElementClass("LoginInvokr","Hide");MindShare.Invokrs.unshimmy("LoginInvokr");}};MindShare.Invokrs.Share={d:undefined,init:function(){if(getElement("invokr-share-trigger")){MochiKit.Signal.connect("invokr-share-trigger","onmouseenter",MindShare.Invokrs.Share.activate);MochiKit.Signal.connect("invokr-share-trigger","onmouseleave",MindShare.Invokrs.Share.deactivate);MochiKit.Signal.connect("invokr-share-trigger","onclick",MindShare.Invokrs.Share.toggle);MochiKit.Signal.connect("invokr-share-close","onclick",MindShare.Invokrs.Share.toggle);}},toggle:function(ev){ev.preventDefault();toggleElementClass("Hide","Share");MindShare.Invokrs.magicshim("Share");},hide:function(ev){if(ev)ev.preventDefault();addElementClass("Share","Hide");MindShare.Invokrs.unshimmy("Share");},activate:function(ev){ev.preventDefault();if(hasElementClass("Share","Hide")){MindShare.Invokrs.Share.d=MochiKit.Async.callLater(0.5,function(){removeElementClass("Share","Hide");MindShare.Invokrs.shimmy("Share");});}},deactivate:function(ev){if(MindShare.Invokrs.Share.d)
MindShare.Invokrs.Share.d.cancel();}};MindShare.Invokrs.Offices={gmapLoaded:false,d:undefined,init:function(){this.head=getFirstElementByTagAndClassName("head");if(getElement("invokr-offices-trigger")){MochiKit.Signal.connect("invokr-offices-trigger","onmouseenter",MindShare.Invokrs.Offices.activate);MochiKit.Signal.connect("invokr-offices-trigger","onmouseleave",MindShare.Invokrs.Offices.deactivate);MochiKit.Signal.connect("invokr-offices-trigger","onclick",MindShare.Invokrs.Offices.toggle);}},activeElements:function(){return getElementsByTagAndClassName(null,"invokr-link",'OfficesInvokr');},invokerPath:function(realpath){if(realpath.substr(0,1)=='/')
realpath=realpath.substr(1);var path=realpath.split("/");if(!path[path.length-1]){path=path.slice(0,path.length-1);}
var path="/"+concat([path[0],"invokr",path[1]],path.slice(2)).join("/");return path;},connectAll:function(){forEach(MindShare.Invokrs.Offices.activeElements(),function(elem){switch(elem.id){case'invokr-offices-close':MochiKit.Signal.connect(elem,'onclick',MindShare.Invokrs.Offices.toggle);break;case'Country':MochiKit.Signal.connect(elem,'onchange',MindShare.Invokrs.Offices.countrySubmit);break;case'Office':MochiKit.Signal.connect(elem,'onchange',MindShare.Invokrs.Offices.officeSubmit);break;default:if(elem.pathname){MochiKit.Signal.connect(elem,'onclick',function(ev){ev.preventDefault();var path=MindShare.Invokrs.Offices.invokerPath(elem.pathname);MindShare.Invokrs.Offices.load(path);});}else{MochiKit.Signal.connect(elem,'onclick',function(ev){ev.preventDefault()});}
break;}});},countrySubmit:function(ev){ev.preventDefault();var href=getElement("Country").value;if(href){var invokrPath=MindShare.Invokrs.Offices.invokerPath(href);MindShare.Invokrs.Offices.load(invokrPath);}},officeSubmit:function(ev){ev.preventDefault();var href=getElement("Office").value;if(href){var invokrPath=MindShare.Invokrs.Offices.invokerPath(href);MindShare.Invokrs.Offices.loadOffice(invokrPath);}},disconnectAll:function(){forEach(MindShare.Invokrs.Offices.activeElements(),function(elem){MochiKit.Signal.disconnectAll(elem);});},showMap:function(){var lat;var lng;forEach(getElementsByTagAndClassName(null,"invokr-offices-latitude",'OfficesInvokr'),function(e){lat=Number(e.innerHTML);});forEach(getElementsByTagAndClassName(null,"invokr-offices-longitude",'OfficesInvokr'),function(e){lng=Number(e.innerHTML);});forEach(getElementsByTagAndClassName(null,"invokr-offices-mapzoom",'OfficesInvokr'),function(e){zoom=Number(e.innerHTML);});if(lat&&lng){var point=new GLatLng(lat,lng);if(GBrowserIsCompatible()){if(!MindShare.Invokrs.Offices.map){MindShare.Invokrs.Offices.map=new GMap2(document.getElementById("map"));var map=MindShare.Invokrs.Offices.map;map.addControl(new GSmallMapControl());map.setCenter(point,zoom);map.addOverlay(new GMarker(point));}else{var map=MindShare.Invokrs.Offices.map;map.addOverlay(new GMarker(point));map.panTo(point);}}}},load:function(path){var self=this;MindShare.Invokrs.Offices.disconnectAll();MindShare.Invokrs.Offices.map=undefined;var invokr=getElement("OfficesInvokr");return loadJSONDoc(path).addCallback(function(response){invokr.innerHTML=response.body;MindShare.Invokrs.Offices.connectAll();MindShare.Invokrs.Offices.showMap();removeElementClass(invokr,"Hide");MindShare.Invokrs.shimmy(invokr,90);});},loadOffice:function(path){var invokr=getElement("OfficesInvokr");return loadJSONDoc(path).addCallback(function(response){forEach(getElementsByTagAndClassName("div","Address",invokr),function(elem){elem.innerHTML=response.body;MindShare.Invokrs.Offices.showMap();});forEach(getElementsByTagAndClassName("ul","ExtraLinks",invokr),function(elem){var n=getElement("invokr-offices-url");replaceChildNodes(elem,LI(null,A({href:n.href.toLowerCase()},n.innerHTML)));});}).addErrback(logError);},toggle:function(ev){ev.preventDefault();if(MindShare.Invokrs.Offices.d)
MindShare.Invokrs.Offices.d.cancel();var invokr=getElement("OfficesInvokr");if(hasElementClass(invokr,"Hide")){MindShare.Invokrs.Offices.load("/worldwide/invokr");}else{addElementClass(invokr,"Hide");MindShare.Invokrs.unshimmy(invokr);}},hide:function(ev){if(ev)ev.preventDefault();addElementClass("OfficesInvokr","Hide");MindShare.Invokrs.unshimmy("OfficesInvokr");},activate:function(ev){ev.preventDefault();if(hasElementClass("OfficesInvokr","Hide")){MindShare.Invokrs.Offices.d=MochiKit.Async.callLater(0.5,function(){MindShare.Invokrs.Offices.load("/worldwide/invokr");});}},deactivate:function(ev){if(MindShare.Invokrs.Offices.d)
MindShare.Invokrs.Offices.d.cancel();}};MindShare.GlobalNav={Ids:[],closeOtherMenus:function(notId){forEach(MindShare.GlobalNav.Ids,function(id){if(id!=notId)
removeElementClass(id,'RollOver');});},markup:function(){forEach(getElementsByTagAndClassName('li','Tab'),function(elem){MindShare.GlobalNav.Ids.push(elem.id);var d;var widest=MochiKit.Style.getElementDimensions(elem).w;addElementClass(elem,'RollOver');forEach(getElementsByTagAndClassName('li',null,elem),function(subelem){if(MochiKit.Style.getElementDimensions(subelem).w>widest)
{widest=MochiKit.Style.getElementDimensions(subelem).w;}});MochiKit.Style.setElementDimensions(elem.firstChild,{w:widest+2,h:MochiKit.Style.getElementDimensions(elem.firstChild).h});forEach(getElementsByTagAndClassName('li',null,elem),function(subelem){MochiKit.Style.setElementDimensions(subelem,{w:widest-2,h:MochiKit.Style.getElementDimensions(subelem).h});});forEach(getElementsByTagAndClassName('div','foot',elem),function(subelem){MochiKit.Style.setElementDimensions(subelem,{w:widest+4,h:MochiKit.Style.getElementDimensions(subelem).h});});removeElementClass(elem,'RollOver');MochiKit.Signal.connect(elem,'onmouseover',function(){if(d)d.cancel();MochiKit.Async.callLater(0.1,MindShare.GlobalNav.closeOtherMenus,elem.id);d=MochiKit.Async.callLater(0.5,function(){addElementClass(elem,'RollOver');});});MochiKit.Signal.connect(elem,'onmouseout',function(){if(d)d.cancel();d=MochiKit.Async.callLater(0.1,function(){removeElementClass(elem,'RollOver');});});});}}
MindShare.Media={processAutoVideo:function(){forEach(getElementsByTagAndClassName('div','AutoVideo'),function(elem){var id=elem.id;var asset;var thumbnail;forEach(getElementsByTagAndClassName('span','ExoAsset',elem),function(e){asset=e.innerHTML;});forEach(getElementsByTagAndClassName('span','ExoThumb',elem),function(e){thumbnail=e.innerHTML;});var s1=new SWFObject("/static/flvplayer.swf","single","300","170","7");s1.addParam("allowfullscreen","true");s1.addVariable("file",asset+"/flashvideo.flv");s1.addVariable("image",thumbnail);s1.write(id);removeElementClass(elem,'AutoVideo');});}}
MindShare.Highlight={highlightTerms:function(node,word){if(!(word&&word.length>0))return;node=getElement(node);forEach(node.childNodes,function(child){MindShare.Highlight.highlightTerms(child,word);});if(node.nodeType==3){var contents=node.nodeValue;var idx=contents.toLowerCase().indexOf(word.toLowerCase());if(idx>=0){var parent=node.parentNode;if(parent.nodeName.toLowerCase()!="strong"){appendChildNodes(parent,contents.substr(0,idx),STRONG(contents.substr(idx,word.length)),contents.substr(idx+word.length));removeElement(node);}}}},getSearchTermsFromURI:function(uri){if(typeof decodeURI!='undefined'&&typeof unescape!='undefined'){uri=unescape(decodeURI(uri));var qfinder=new RegExp("q=([^&]*)","gi");var qq=qfinder.exec(uri);if(qq&&qq[1]){terms=qq[1];return terms.replace("+"," ");}}
return"";},init:function(){terms=MindShare.Highlight.getSearchTermsFromURI(document.location);if(terms&&terms.length>0){MindShare.Highlight.highlightTerms("PageWrapper",terms);}}}
MindShare.Comments={init:function(){elem=getElement("CommentFormLink");if(elem){connect(elem,"onclick",function(ev){ev.preventDefault();toggleElementClass("Hide","CommentForm");});}
forEach(getElementsByTagAndClassName("a","CommentExpand"),function(elem){if(elem){connect(elem,"onclick",function(ev){ev.preventDefault();e=Ext.get(elem);e.getNextSibling().style.display="inline";e.remove();});}});},updateWorkflow:function(id,ref,newstate){applyTransition(id,ref,newstate,MindShare.Comments.refreshWorkflow);},refreshWorkflow:function(response){var elem=response.responseXML.documentElement;var success=Ext.DomQuery.selectValue("@success",elem);if(success=='true'){window.location.reload(true);}else{Ext.MessageBox.alert("Error","Unable to update this comments workflow state");}}}
if(typeof(dojo)!='undefined'){dojo.provide('MochiKit.Position');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'||typeof(MochiKit.Style)=='undefined'||typeof(MochiKit.DOM)=='undefined'){throw'';}}catch(e){throw'MochiKit.Style depends on MochiKit.Base, MochiKit.DOM, and MochiKit.Style!';}
if(typeof(MochiKit.Position)=='undefined'){MochiKit.Position={};}
MochiKit.Position.NAME='MochiKit.Position';MochiKit.Position.VERSION='1.4';MochiKit.Position.__repr__=function(){return'['+this.NAME+' '+this.VERSION+']';};MochiKit.Position.toString=function(){return this.__repr__();};MochiKit.Position.EXPORT_OK=[];MochiKit.Position.EXPORT=[];MochiKit.Base.update(MochiKit.Position,{includeScrollOffsets:false,prepare:function(){var deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;var deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;this.windowOffset=new MochiKit.Style.Coordinates(deltaX,deltaY);},cumulativeOffset:function(element){var valueT=0;var valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return new MochiKit.Style.Coordinates(valueL,valueT);},realOffset:function(element){var valueT=0;var valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return new MochiKit.Style.Coordinates(valueL,valueT);},within:function(element,x,y){if(this.includeScrollOffsets){return this.withinIncludingScrolloffsets(element,x,y);}
this.xcomp=x;this.ycomp=y;this.offset=this.cumulativeOffset(element);if(element.style.position=="fixed"){this.offset.x+=this.windowOffset.x;this.offset.y+=this.windowOffset.y;}
return(y>=this.offset.y&&y<this.offset.y+element.offsetHeight&&x>=this.offset.x&&x<this.offset.x+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=this.realOffset(element);this.xcomp=x+offsetcache.x-this.windowOffset.x;this.ycomp=y+offsetcache.y-this.windowOffset.y;this.offset=this.cumulativeOffset(element);return(this.ycomp>=this.offset.y&&this.ycomp<this.offset.y+element.offsetHeight&&this.xcomp>=this.offset.x&&this.xcomp<this.offset.x+element.offsetWidth);},overlap:function(mode,element){if(!mode){return 0;}
if(mode=='vertical'){return((this.offset.y+element.offsetHeight)-this.ycomp)/element.offsetHeight;}
if(mode=='horizontal'){return((this.offset.x+element.offsetWidth)-this.xcomp)/element.offsetWidth;}},absolutize:function(element){element=MochiKit.DOM.getElement(element);if(element.style.position=='absolute'){return;}
MochiKit.Position.prepare();var offsets=MochiKit.Position.positionedOffset(element);var width=element.clientWidth;var height=element.clientHeight;var oldStyle={'position':element.style.position,'left':offsets.x-parseFloat(element.style.left||0),'top':offsets.y-parseFloat(element.style.top||0),'width':element.style.width,'height':element.style.height};element.style.position='absolute';element.style.top=offsets.y+'px';element.style.left=offsets.x+'px';element.style.width=width+'px';element.style.height=height+'px';return oldStyle;},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){p=MochiKit.Style.getStyle(element,'position');if(p=='relative'||p=='absolute'){break;}}}while(element);return new MochiKit.Style.Coordinates(valueL,valueT);},relativize:function(element,oldPos){element=MochiKit.DOM.getElement(element);if(element.style.position=='relative'){return;}
MochiKit.Position.prepare();var top=parseFloat(element.style.top||0)-
(oldPos['top']||0);var left=parseFloat(element.style.left||0)-
(oldPos['left']||0);element.style.position=oldPos['position'];element.style.top=top+'px';element.style.left=left+'px';element.style.width=oldPos['width'];element.style.height=oldPos['height'];},clone:function(source,target){source=MochiKit.DOM.getElement(source);target=MochiKit.DOM.getElement(target);target.style.position='absolute';var offsets=this.cumulativeOffset(source);target.style.top=offsets.y+'px';target.style.left=offsets.x+'px';target.style.width=source.offsetWidth+'px';target.style.height=source.offsetHeight+'px';},page:function(forElement){var valueT=0;var valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body&&MochiKit.Style.getStyle(element,'position')=='absolute'){break;}}while(element=element.offsetParent);element=forElement;do{valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}while(element=element.parentNode);return new MochiKit.Style.Coordinates(valueL,valueT);}});MochiKit.Position.__new__=function(win){var m=MochiKit.Base;this.EXPORT_TAGS={':common':this.EXPORT,':all':m.concat(this.EXPORT,this.EXPORT_OK)};m.nameFunctions(this);};MochiKit.Position.__new__(this);if(typeof(dojo)!='undefined'){dojo.provide('MochiKit.Color');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.Color depends on MochiKit.Base";}
try{if(typeof(MochiKit.DOM)=='undefined'){throw"";}}catch(e){throw"MochiKit.Color depends on MochiKit.DOM";}
try{if(typeof(MochiKit.Style)=='undefined'){throw"";}}catch(e){throw"MochiKit.Color depends on MochiKit.Style";}
if(typeof(MochiKit.Color)=="undefined"){MochiKit.Color={};}
MochiKit.Color.NAME="MochiKit.Color";MochiKit.Color.VERSION="1.4";MochiKit.Color.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]";};MochiKit.Color.toString=function(){return this.__repr__();};MochiKit.Color.Color=function(red,green,blue,alpha){if(typeof(alpha)=='undefined'||alpha===null){alpha=1.0;}
this.rgb={r:red,g:green,b:blue,a:alpha};};MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(alpha){var rgb=this.rgb;var m=MochiKit.Color;return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,alpha);},colorWithHue:function(hue){var hsl=this.asHSL();hsl.h=hue;var m=MochiKit.Color;return m.Color.fromHSL(hsl);},colorWithSaturation:function(saturation){var hsl=this.asHSL();hsl.s=saturation;var m=MochiKit.Color;return m.Color.fromHSL(hsl);},colorWithLightness:function(lightness){var hsl=this.asHSL();hsl.l=lightness;var m=MochiKit.Color;return m.Color.fromHSL(hsl);},darkerColorWithLevel:function(level){var hsl=this.asHSL();hsl.l=Math.max(hsl.l-level,0);var m=MochiKit.Color;return m.Color.fromHSL(hsl);},lighterColorWithLevel:function(level){var hsl=this.asHSL();hsl.l=Math.min(hsl.l+level,1);var m=MochiKit.Color;return m.Color.fromHSL(hsl);},blendedColor:function(other,fraction){if(typeof(fraction)=='undefined'||fraction===null){fraction=0.5;}
var sf=1.0-fraction;var s=this.rgb;var d=other.rgb;var df=fraction;return MochiKit.Color.Color.fromRGB((s.r*sf)+(d.r*df),(s.g*sf)+(d.g*df),(s.b*sf)+(d.b*df),(s.a*sf)+(d.a*df));},compareRGB:function(other){var a=this.asRGB();var b=other.asRGB();return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]);},isLight:function(){return this.asHSL().b>0.5;},isDark:function(){return(!this.isLight());},toHSLString:function(){var c=this.asHSL();var ccc=MochiKit.Color.clampColorComponent;var rval=this._hslString;if(!rval){var mid=(ccc(c.h,360).toFixed(0)
+","+ccc(c.s,100).toPrecision(4)+"%"
+","+ccc(c.l,100).toPrecision(4)+"%");var a=c.a;if(a>=1){a=1;rval="hsl("+mid+")";}else{if(a<=0){a=0;}
rval="hsla("+mid+","+a+")";}
this._hslString=rval;}
return rval;},toRGBString:function(){var c=this.rgb;var ccc=MochiKit.Color.clampColorComponent;var rval=this._rgbString;if(!rval){var mid=(ccc(c.r,255).toFixed(0)
+","+ccc(c.g,255).toFixed(0)
+","+ccc(c.b,255).toFixed(0));if(c.a!=1){rval="rgba("+mid+","+c.a+")";}else{rval="rgb("+mid+")";}
this._rgbString=rval;}
return rval;},asRGB:function(){return MochiKit.Base.clone(this.rgb);},toHexString:function(){var m=MochiKit.Color;var c=this.rgb;var ccc=MochiKit.Color.clampColorComponent;var rval=this._hexString;if(!rval){rval=("#"+
m.toColorPart(ccc(c.r,255))+
m.toColorPart(ccc(c.g,255))+
m.toColorPart(ccc(c.b,255)));this._hexString=rval;}
return rval;},asHSV:function(){var hsv=this.hsv;var c=this.rgb;if(typeof(hsv)=='undefined'||hsv===null){hsv=MochiKit.Color.rgbToHSV(this.rgb);this.hsv=hsv;}
return MochiKit.Base.clone(hsv);},asHSL:function(){var hsl=this.hsl;var c=this.rgb;if(typeof(hsl)=='undefined'||hsl===null){hsl=MochiKit.Color.rgbToHSL(this.rgb);this.hsl=hsl;}
return MochiKit.Base.clone(hsl);},toString:function(){return this.toRGBString();},repr:function(){var c=this.rgb;var col=[c.r,c.g,c.b,c.a];return this.__class__.NAME+"("+col.join(", ")+")";}};MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,green,blue,alpha){var Color=MochiKit.Color.Color;if(arguments.length==1){var rgb=red;red=rgb.r;green=rgb.g;blue=rgb.b;if(typeof(rgb.a)=='undefined'){alpha=undefined;}else{alpha=rgb.a;}}
return new Color(red,green,blue,alpha);},fromHSL:function(hue,saturation,lightness,alpha){var m=MochiKit.Color;return m.Color.fromRGB(m.hslToRGB.apply(m,arguments));},fromHSV:function(hue,saturation,value,alpha){var m=MochiKit.Color;return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments));},fromName:function(name){var Color=MochiKit.Color.Color;if(name.charAt(0)=='"'){name=name.substr(1,name.length-2);}
var htmlColor=Color._namedColors[name.toLowerCase()];if(typeof(htmlColor)=='string'){return Color.fromHexString(htmlColor);}else if(name=="transparent"){return Color.transparentColor();}
return null;},fromString:function(colorString){var self=MochiKit.Color.Color;var three=colorString.substr(0,3);if(three=="rgb"){return self.fromRGBString(colorString);}else if(three=="hsl"){return self.fromHSLString(colorString);}else if(colorString.charAt(0)=="#"){return self.fromHexString(colorString);}
return self.fromName(colorString);},fromHexString:function(hexCode){if(hexCode.charAt(0)=='#'){hexCode=hexCode.substring(1);}
var components=[];var i,hex;if(hexCode.length==3){for(i=0;i<3;i++){hex=hexCode.substr(i,1);components.push(parseInt(hex+hex,16)/255.0);}}else{for(i=0;i<6;i+=2){hex=hexCode.substr(i,2);components.push(parseInt(hex,16)/255.0);}}
var Color=MochiKit.Color.Color;return Color.fromRGB.apply(Color,components);},_fromColorString:function(pre,method,scales,colorCode){if(colorCode.indexOf(pre)===0){colorCode=colorCode.substring(colorCode.indexOf("(",3)+1,colorCode.length-1);}
var colorChunks=colorCode.split(/\s*,\s*/);var colorFloats=[];for(var i=0;i<colorChunks.length;i++){var c=colorChunks[i];var val;var three=c.substring(c.length-3);if(c.charAt(c.length-1)=='%'){val=0.01*parseFloat(c.substring(0,c.length-1));}else if(three=="deg"){val=parseFloat(c)/360.0;}else if(three=="rad"){val=parseFloat(c)/(Math.PI*2);}else{val=scales[i]*parseFloat(c);}
colorFloats.push(val);}
return this[method].apply(this,colorFloats);},fromComputedStyle:function(elem,style){var d=MochiKit.DOM;var cls=MochiKit.Color.Color;for(elem=d.getElement(elem);elem;elem=elem.parentNode){var actualColor=MochiKit.Style.getStyle.apply(d,arguments);if(!actualColor){continue;}
var color=cls.fromString(actualColor);if(!color){break;}
if(color.asRGB().a>0){return color;}}
return null;},fromBackground:function(elem){var cls=MochiKit.Color.Color;return cls.fromComputedStyle(elem,"backgroundColor","background-color")||cls.whiteColor();},fromText:function(elem){var cls=MochiKit.Color.Color;return cls.fromComputedStyle(elem,"color","color")||cls.blackColor();},namedColors:function(){return MochiKit.Base.clone(MochiKit.Color.Color._namedColors);}});MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,scale){v*=scale;if(v<0){return 0;}else if(v>scale){return scale;}else{return v;}},_hslValue:function(n1,n2,hue){if(hue>6.0){hue-=6.0;}else if(hue<0.0){hue+=6.0;}
var val;if(hue<1.0){val=n1+(n2-n1)*hue;}else if(hue<3.0){val=n2;}else if(hue<4.0){val=n1+(n2-n1)*(4.0-hue);}else{val=n1;}
return val;},hsvToRGB:function(hue,saturation,value,alpha){if(arguments.length==1){var hsv=hue;hue=hsv.h;saturation=hsv.s;value=hsv.v;alpha=hsv.a;}
var red;var green;var blue;if(saturation===0){red=value;green=value;blue=value;}else{var i=Math.floor(hue*6);var f=(hue*6)-i;var p=value*(1-saturation);var q=value*(1-(saturation*f));var t=value*(1-(saturation*(1-f)));switch(i){case 1:red=q;green=value;blue=p;break;case 2:red=p;green=value;blue=t;break;case 3:red=p;green=q;blue=value;break;case 4:red=t;green=p;blue=value;break;case 5:red=value;green=p;blue=q;break;case 6:case 0:red=value;green=t;blue=p;break;}}
return{r:red,g:green,b:blue,a:alpha};},hslToRGB:function(hue,saturation,lightness,alpha){if(arguments.length==1){var hsl=hue;hue=hsl.h;saturation=hsl.s;lightness=hsl.l;alpha=hsl.a;}
var red;var green;var blue;if(saturation===0){red=lightness;green=lightness;blue=lightness;}else{var m2;if(lightness<=0.5){m2=lightness*(1.0+saturation);}else{m2=lightness+saturation-(lightness*saturation);}
var m1=(2.0*lightness)-m2;var f=MochiKit.Color._hslValue;var h6=hue*6.0;red=f(m1,m2,h6+2);green=f(m1,m2,h6);blue=f(m1,m2,h6-2);}
return{r:red,g:green,b:blue,a:alpha};},rgbToHSV:function(red,green,blue,alpha){if(arguments.length==1){var rgb=red;red=rgb.r;green=rgb.g;blue=rgb.b;alpha=rgb.a;}
var max=Math.max(Math.max(red,green),blue);var min=Math.min(Math.min(red,green),blue);var hue;var saturation;var value=max;if(min==max){hue=0;saturation=0;}else{var delta=(max-min);saturation=delta/max;if(red==max){hue=(green-blue)/delta;}else if(green==max){hue=2+((blue-red)/delta);}else{hue=4+((red-green)/delta);}
hue/=6;if(hue<0){hue+=1;}
if(hue>1){hue-=1;}}
return{h:hue,s:saturation,v:value,a:alpha};},rgbToHSL:function(red,green,blue,alpha){if(arguments.length==1){var rgb=red;red=rgb.r;green=rgb.g;blue=rgb.b;alpha=rgb.a;}
var max=Math.max(red,Math.max(green,blue));var min=Math.min(red,Math.min(green,blue));var hue;var saturation;var lightness=(max+min)/2.0;var delta=max-min;if(delta===0){hue=0;saturation=0;}else{if(lightness<=0.5){saturation=delta/(max+min);}else{saturation=delta/(2-max-min);}
if(red==max){hue=(green-blue)/delta;}else if(green==max){hue=2+((blue-red)/delta);}else{hue=4+((red-green)/delta);}
hue/=6;if(hue<0){hue+=1;}
if(hue>1){hue-=1;}}
return{h:hue,s:saturation,l:lightness,a:alpha};},toColorPart:function(num){num=Math.round(num);var digits=num.toString(16);if(num<16){return'0'+digits;}
return digits;},__new__:function(){var m=MochiKit.Base;this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1.0/255.0,1.0/255.0,1.0/255.0,1]);this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1.0/360.0,0.01,0.01,1]);var third=1.0/3.0;var colors={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[third,third,third],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*third,2*third,2*third],magenta:[1,0,1],orange:[1,0.5,0],purple:[0.5,0,0.5],red:[1,0,0],transparent:[0,0,0,0],white:[1,1,1],yellow:[1,1,0]};var makeColor=function(name,r,g,b,a){var rval=this.fromRGB(r,g,b,a);this[name]=function(){return rval;};return rval;};for(var k in colors){var name=k+"Color";var bindArgs=m.concat([makeColor,this.Color,name],colors[k]);this.Color[name]=m.bind.apply(null,bindArgs);}
var isColor=function(){for(var i=0;i<arguments.length;i++){if(!(arguments[i]instanceof Color)){return false;}}
return true;};var compareColor=function(a,b){return a.compareRGB(b);};m.nameFunctions(this);m.registerComparator(this.Color.NAME,isColor,compareColor);this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};}});MochiKit.Color.EXPORT=["Color"];MochiKit.Color.EXPORT_OK=["clampColorComponent","rgbToHSL","hslToRGB","rgbToHSV","hsvToRGB","toColorPart"];MochiKit.Color.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Color);MochiKit.Color.Color._namedColors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};if(typeof(dojo)