var Class={create:function(){return function(){this.initialize.apply(this,arguments)}}};Object.extend=function(a,b){for(property in b)a[property]=b[property];return a};Function.prototype.bind=function(a){var b=this;return function(){return b.apply(a,arguments)}};Function.prototype.bindAsEventListener=function(b){var c=this;return function(a){c.call(b,a||window.event)}};function $(){if(arguments.length==1)return get$(arguments[0]);var b=[];$c(arguments).each(function(a){b.push(get$(a))});return b;function get$(a){if(typeof a=='string')a=document.getElementById(a);return a}};if(!window.Element)var Element=new Object();Object.extend(Element,{remove:function(a){a=$(a);a.parentNode.removeChild(a)},hasClassName:function(b,c){b=$(b);if(!b)return;var d=false;b.className.split(' ').each(function(a){if(a==c)d=true});return d},addClassName:function(a,b){a=$(a);Element.removeClassName(a,b);a.className+=' '+b},removeClassName:function(b,c){b=$(b);if(!b)return;var d='';b.className.split(' ').each(function(a,i){if(a!=c){if(i>0)d+=' ';d+=a}});b.className=d},cleanWhitespace:function(b){b=$(b);$c(b.childNodes).each(function(a){if(a.nodeType==3&&!/\S/.test(a.nodeValue))Element.remove(a)})},find:function(a,b){a=$(a)[b];while(a.nodeType!=1)a=a[b];return a}});var Position={cumulativeOffset:function(a){var b=0,valueL=0;do{b+=a.offsetTop||0;valueL+=a.offsetLeft||0;a=a.offsetParent}while(a);return[valueL,b]}};document.getElementsByClassName=function(b){var c=document.getElementsByTagName('*')||document.all;var d=[];$c(c).each(function(a){if(Element.hasClassName(a,b))d.push(a)});return d};Array.prototype.each=function(a){for(var i=0;ob=this[i];i++)a(ob,i)};function $c(a){var b=[];for(i=0;el=a[i];i++)b.push(el);return b}