var Core={};if(document.addEventListener){Core.addEventListener=function(target,type,listener){target.addEventListener(type,listener,false)};Core.removeEventListener=function(target,type,listener){target.removeEventListener(type,listener,false)};Core.preventDefault=function(event){event.preventDefault()};Core.stopPropagation=function(event){event.stopPropagation()}}else if(document.attachEvent){Core.addEventListener=function(target,type,listener){if(Core._findListener(target,type,listener)!=-1)return;var listener2=function(){var event=window.event;if(Function.prototype.call){listener.call(target,event)}else{target._currentListener=listener;target._currentListener(event);target._currentListener=null}};target.attachEvent("on"+type,listener2);var listenerRecord={target:target,type:type,listener:listener,listener2:listener2};var targetDocument=target.document||target;var targetWindow=targetDocument.parentWindow;var listenerId="l"+Core._listenerCounter++;if(!targetWindow._allListeners)targetWindow._allListeners={};targetWindow._allListeners[listenerId]=listenerRecord;if(!target._listeners)target._listeners=[];target._listeners[target._listeners.length]=listenerId;if(!targetWindow._unloadListenerAdded){targetWindow._unloadListenerAdded=true;targetWindow.attachEvent("onunload",Core._removeAllListeners)}};Core.removeEventListener=function(target,type,listener){var listenerIndex=Core._findListener(target,type,listener);if(listenerIndex==-1)return;var targetDocument=target.document||target;var targetWindow=targetDocument.parentWindow;var listenerId=target._listeners[listenerIndex];var listenerRecord=targetWindow._allListeners[listenerId];target.detachEvent("on"+type,listenerRecord.listener2);target._listeners.splice(listenerIndex,1);delete targetWindow._allListeners[listenerId]};Core.preventDefault=function(event){event.returnValue=false};Core.stopPropagation=function(event){event.cancelBubble=true};Core._findListener=function(target,type,listener){var listeners=target._listeners;if(!listeners)return-1;var targetDocument=target.document||target;var targetWindow=targetDocument.parentWindow;for(var i=listeners.length-1;i>=0;i--){var listenerId=listeners[i];var listenerRecord=targetWindow._allListeners[listenerId];if(listenerRecord.type==type&&listenerRecord.listener==listener){return i}}return-1};Core._removeAllListeners=function(){var targetWindow=this;for(id in targetWindow._allListeners){var listenerRecord=targetWindow._allListeners[id];listenerRecord.target.detachEvent("on"+listenerRecord.type,listenerRecord.listener2);delete targetWindow._allListeners[id]}};Core._listenerCounter=0}Core.addClass=function(target,theClass){if(!Core.hasClass(target,theClass)){if(target.className==""){target.className=theClass}else{target.className+=" "+theClass}}};Core.getElementsByClass=function(theClass){var elementArray=[];if(document.all){elementArray=document.all}else{elementArray=document.getElementsByTagName("*")}var matchedArray=[];var pattern=new RegExp("(^| )"+theClass+"( |$)");for(var i=0;i<elementArray.length;i++){if(pattern.test(elementArray[i].className)){matchedArray[matchedArray.length]=elementArray[i]}}return matchedArray};Core.hasClass=function(target,theClass){var pattern=new RegExp("(^| )"+theClass+"( |$)");if(pattern.test(target.className)){return true}return false};Core.removeClass=function(target,theClass){var pattern=new RegExp("(^| )"+theClass+"( |$)");target.className=target.className.replace(pattern,"$1");target.className=target.className.replace(/ $/,"")};Core.getComputedStyle=function(element,styleProperty){var computedStyle=null;if(typeof element.currentStyle!="undefined"){computedStyle=element.currentStyle}else{computedStyle=document.defaultView.getComputedStyle(element,null)}return computedStyle[styleProperty]};Core.start=function(runnable){Core.addEventListener(window,"load",runnable.init)};
