Class.prototype.toSingleton=function(){var B=this.prototype;var A=undefined;if($defined(B.initialize)&&$type(B.initialize)=="function"){var C=B.initialize}B.initialize=function(){if(!$defined(A)){if($defined(C)&&$type(C)=="function"){C.apply(this,arguments)}A=this}return A}};Element.implement({getChildElementById:function(D){var B=this.getChildren();for(var A=0;A<B.length;A++){if(B[A].id&&B[A].id==D){return $(B[A])}}for(var A=0;A<B.length;A++){if(B[A].getChildElementById){var C=B[A].getChildElementById(D);if(C){return C}}}return null}});Class.Mutators.Privates=function(B,C){delete B.Privates;var A=B.initialize;B.initialize=function(){var E=$unlink(this);var H=$unlink(C);var D=A.apply(E,arguments);for(var I in E){if(H.hasOwnProperty(I)){H[I]=E[I]}else{this[I]=E[I]}}var G=this;for(var F in E){if($type(E[F])==="function"&&F!=="initialize"){(function(K){var J=G[F];G[K]=function(){var N=$merge(G,H);var L=J.bind(N,arguments);var M=L();for(var O in N){if(H.hasOwnProperty(O)&&$type(H[O]!=="function")){H[O]=N[O]}else{G[O]=N[O]}}return M}})(F)}}return D};return B};Element.implement({appendHTML:function(B,A){return this.grab(new Element("text",{html:B}),A)}});Element.Events.controlMousedown={base:"mousedown",condition:function(A){return(A.control==true)}};Element.Events.shiftMousedown={base:"mousedown",condition:function(A){return(A.shift==true)}};Element.Events.regularMousedown={base:"mousedown",condition:function(A){return(A.control!=true&&A.shift!=true)}};Element.Events.regularClick={base:"click",condition:function(A){return(A.control!=true&&A.shift!=true)}};