
var Prototype={Browser:{IE:!!(window.attachEvent&&!window.opera),Opera:!!window.opera,WebKit:navigator.userAgent.indexOf('AppleWebKit/')>-1,Gecko:navigator.userAgent.indexOf('Gecko')>-1&&navigator.userAgent.indexOf('KHTML')==-1,MobileSafari:!!navigator.userAgent.match(/Apple.*Mobile.*Safari/)}};function $(id){return(typeof(id)=="string")?document.getElementById(id):id;}
Object.extend=function(destination,source){for(var property in source)
destination[property]=source[property];return destination;};Object.extend(Function.prototype,{bind:function(){var __method=this,args=Array.prototype.slice.call(arguments,0),object=args.shift();return function(){return __method.apply(object,args.concat(Array.prototype.slice.call(arguments,0)));}},bindAsEventListener:function(){var __method=this,args=Array.prototype.slice.call(arguments,0),object=args.shift();return function(event){return __method.apply(object,[(event||window.event)].concat(args).concat(Array.prototype.slice.call(arguments,0)));}}});var Event={observe:function(){if(window.addEventListener){return function(element,eventName,handler){$(element).addEventListener(eventName,handler,false);};}else if(window.attachEvent){return function(element,eventName,handler){$(element).attachEvent("on"+eventName,handler);};}else{return function(element,eventName,handler){};}}(),stopObserving:function(){if(window.removeEventListener){return function(element,eventName,handler){$(element).removeEventListener(eventName,handler,false);};}else if(window.detachEvent){return function(element,eventName,handler){$(element).detachEvent("on"+eventName,handler);};}else{return function(element,eventName,handler){};}}(),pointer:function(event){return{x:event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft)),y:event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop))};}};var Element=new Object();Object.extend(Element,{viewportOffset:function(forElement){var forElement=$(forElement);var element=forElement;var value=[0,0];do{value[0]+=element.offsetLeft||0;value[1]+=element.offsetTop||0;element=element.offsetParent;}while(element);element=forElement;do{if(element.tagName!='HTML'){value[1]-=element.scrollTop||0;value[0]-=element.scrollLeft||0;}}while(element=element.parentNode);return value;}});