function getElementById(B,F){var D=["span","input","select","div"];var C;for(var A=0,E=D.length;A<E;A++){C=$E(D[A]+"[id="+F+"]",$(B));if(C){return C}}return null}function getElementsByClass(B,E){var D=["span","input","select","div"];var C;for(var A=0,F=D.length;A<F;A++){C=$ES(D[A]+"[class="+E+"]",$(B));if(C){return C}}return null}function iteritems(C){assert((typeof (C)=="object"),"items takes an object as an argument");var A=[];Log.logDebug("computing items");for(var B in C){A.push([B,C[B]])}return A}function map(C,D){var A=[];for(var B=0;B<D.length;B++){A[B]=C(D[B])}return A}function funcname(B){var A=B.toString().match(/function (\w*)/)[1];if((A==null)||(A.length==0)){return"anonymous"}return A}function stacktrace(){var B="[";for(var A=arguments.caller;A!=null;A=A.caller){B+=funcname(A.callee)+"\n";if(A.caller==A){break}}return B+"]"}function AssertException(A){this.message=A;this.trace=this.stacktrace()}AssertException.prototype.toString=function(){return"AssertException: "+this.message+", "+this.trace};AssertException.prototype.funcname=function(A){return A.toString()};AssertException.prototype.stacktrace=function(){var B="[";for(var A=arguments.caller;A!=null;A=A.caller){B+=funcname(A.callee)+"\n";if(A.caller==A){break}}return B+"]"};function assert(D,B){try{if(console){if(!D){console.trace()}console.assert(D,B)}else{var A=new AssertException(B);Log.logError("trace:"+A.trace);if(!D){if(!B){B=""}var A=new AssertException(B);Log.logError(A);throw A}}}catch(C){if(!D){throw new Error(B)}}}function getEvent(B){var A;if(B){A=B}else{A=window.event}assert(A,"could not determine event");return A}var PRIMITIVE_TYPES=[typeof (""),typeof (1),typeof (1.1),typeof (true)];function isPrimitive(B){for(var A=0;A<PRIMITIVE_TYPES.length;A++){if(typeof (B)==PRIMITIVE_TYPES[A]){return true}}return false}function copyObj(A){return Json.evaluate(Json.toString(A))}function eq(A,B){if(A===B){return true}if((A===null)||(A===undefined)||(B===null)||(B===undefined)){return(A===B)}if(typeof (A)!=typeof (B)){return false}if(typeof (A)=="object"){for(k in A){if(!(k in B)){return false}if(!eq(A[k],B[k])){return false}}return true}return(A==B)}function jsoneq(A,B){return(JSON.stringify(A)==JSON.stringify(B))}function parseNumber(A){return parseFloat(A)}function computeDifference(E,H){var F=[];var B=[];var D,C,G,A;for(C=0;C<E.length;C++){A=true;G=E[C];for(D=0;A&&(D<H.length);D++){A=!eq(G,H[D])}if(A){F.push(G)}}for(D=0;D<H.length;D++){A=true;G=H[D];for(C=0;A&&(C<E.length);C++){A=!eq(G,H[D])}if(A){B.push(G)}}return[F,B]}function getTileLayerDivs(){return $ES("div","map_canvas")}var None=null