function addListener(e,eventName,func,useCapture){try{if(e.addEventListener)
e.addEventListener(eventName,func,useCapture);else if(e.attachEvent)
e.attachEvent("on"+eventName,func);else
e["on"+eventName]=func;}catch(e){}}
function removeListener(e,eventName,func,useCapture){try{if(e.removeEventListener)
e.removeEventListener(eventName,func,useCapture);else if(e.detachEvent)
e.detachEvent("on"+eventName,func);else
e["on"+eventName]=undefined;}catch(e){}}
function getElement(e){return(typeof e=="string"||typeof e=="number")?document.getElementById(e):e;}
function getElementsByClassName(oElm,strTagName,oClassNames){var arrElements=(strTagName=="*"&&oElm.all)?oElm.all:oElm.getElementsByTagName(strTagName);var arrReturnElements=new Array();var arrRegExpClassNames=new Array();if(typeof oClassNames=="object"){for(var i=0;i<oClassNames.length;i++){arrRegExpClassNames.push(new RegExp("(^|\\s)"+oClassNames[i].replace(/\-/g,"\\-")+"(\\s|$)"));}}
else{arrRegExpClassNames.push(new RegExp("(^|\\s)"+oClassNames.replace(/\-/g,"\\-")+"(\\s|$)"));}
var oElement;var bMatchesAll;for(var j=0;j<arrElements.length;j++){oElement=arrElements[j];bMatchesAll=true;for(var k=0;k<arrRegExpClassNames.length;k++){if(!arrRegExpClassNames[k].test(oElement.className)){bMatchesAll=false;break;}}
if(bMatchesAll){arrReturnElements.push(oElement);}}
return(arrReturnElements)}
Function.prototype.bindEventListener=function(object){var method=this;return function(event){method.call(object,event||window.event);};}