var idCache={};function getById(id){if(!(id in idCache))idCache[id]=document.getElementById(id);return idCache[id]}var addEvent=function(){if(document.addEventListener){function checkMouseLeaveOrEnter(element,handler){return function(e){var target=e.relatedTarget||(e.type=='mouseover'?e.fromElement:e.toElement);while(target){if(target==element)return;target=target.parentNode}return handler.call(this,e)}}return function(element,type,handler){if(type=='mouseenter'){type='mouseover';handler=checkMouseLeaveOrEnter(element,handler)}else if(type=='mouseleave'){type='mouseout';handler=checkMouseLeaveOrEnter(element,handler)}element.addEventListener(type,handler,false)}}else{function handleEvent(event){event=event||fixEvent(window.event);if(event.type=='resize'){var page=getPageDimensions();var currentDimensions=page.innerWidth+'x'+page.innerHeight;if(this.__dimensions&&this.__dimensions==currentDimensions)return true;this.__dimensions=currentDimensions}var handlers=this.events[event.type],returnValue;for(var i in handlers){if(handlers.hasOwnProperty(i)&&handlers[i].call(this,event)===false)returnValue=false}return returnValue}function fixEvent(event){event.preventDefault=preventDefault;event.stopPropagation=stopPropagation;event.target=event.srcElement;return event}function preventDefault(){this.returnValue=false}function stopPropagation(){this.cancelBubble=true}function removeAllEvents(){while((cachedEvent=eventCache.pop()))removeEvent(cachedEvent.element,cachedEvent.type,cachedEvent.handler);if(window.idCache)window.idCache=null}var guid=1;var eventCache=[];return function(element,type,handler){if(!handler.$$guid)handler.$$guid=guid++;if(!element.events)element.events={};if(!element.events[type]){element.events[type]={};if(element['on'+type])element.events[type][0]=element['on'+type];element['on'+type]=handleEvent}element.events[type][handler.$$guid]=handler;if(type!='unload'){if(!eventCache.length)addEvent(window,'unload',removeAllEvents);eventCache.push({element:element,type:type,handler:handler})}}}}();var removeEvent=function(){if(document.removeEventListener){return function(element,type,handler){element.removeEventListener(type,handler,false)}}else{return function(element,type,handler){if(element.events&&element.events[type]&&handler.$$guid)delete element.events[type][handler.$$guid]}}}();