var Class={
create: function(){
return function(){
this.initialize.apply(this,arguments)}}}
Object.extend=function(destination,source){
for(property in source)destination[property]=source[property]
return destination}
Function.prototype.bind=function(object){
var __method=this
return function(){
return __method.apply(object,arguments)}}
Function.prototype.bindAsEventListener=function(object){
var __method=this
return function(event){
__method.call(object,event || window.event)}}
function $(){
if(arguments.length==1)return get$(arguments[0])
var elements=[]
$c(arguments).each(function(el){
elements.push(get$(el))
})
return elements
function get$(el){
if(typeof el=='string')el=document.getElementById(el)
return el}}
if(!window.Element)var Element=new Object()
Object.extend(Element,{
remove: function(element){
element=$(element)
element.parentNode.removeChild(element)
},
hasClassName: function(element,className){
element=$(element)
if(!element)return
var hasClass=false
element.className.split(' ').each(function(cn){
if(cn==className)hasClass=true
})
return hasClass
},
addClassName: function(element,className){
element=$(element)
Element.removeClassName(element,className)
element.className+=' '+className
},
removeClassName: function(element,className){
element=$(element)
if(!element)return
var newClassName=''
element.className.split(' ').each(function(cn,i){
if(cn !=className){
if(i>0)newClassName+=' '
newClassName+=cn}
})
element.className=newClassName
},
cleanWhitespace: function(element){
element=$(element)
$c(element.childNodes).each(function(node){
if(node.nodeType==3&&!/\S/.test(node.nodeValue))Element.remove(node)
})
},
find: function(element,what){
element=$(element)[what]
while(element.nodeType !=1)element=element[what]
return element}
})
var Position={
cumulativeOffset: function(element){
var valueT=0,valueL=0
do{
valueT+=element.offsetTop || 0
valueL+=element.offsetLeft || 0
element=element.offsetParent
}while(element)
return [valueL,valueT]}}
document.getElementsByClassName=function(className){
var children=document.getElementsByTagName('*')|| document.all
var elements=[]
$c(children).each(function(child){
if(Element.hasClassName(child,className))elements.push(child)
})
return elements}
Array.prototype.iterate=function(func){
for(var i=0;i<this.length;i++)func(this[i],i)}
if(!Array.prototype.each)Array.prototype.each=Array.prototype.iterate
function $c(array){
var nArray=[]
for(var i=0;i<array.length;i++)nArray.push(array[i])
return nArray}
