function $(e){return document.getElementById(e)}
var global=function(){var e={},i=/^\s+|\s+$/g;e.trim=function(b){return b.replace(i,"")};e.d2h=function(b){return b.toString(16)};e.h2d=function(b){return parseInt(b,16)};e.getvalbounds=function(b,f,g){b=Math.max(b,f);return Math.min(b,g)};e.getquerystring=function(){return window.location.search.replace(/^\?/,"")};e.addhtmlclass=function(b){var f=document.getElementsByTagName("html"),g=new RegExp("(^| )"+b+"( |$)");if(f.length){f=f[0];if(!g.test(f.className))f.className=e.trim(f.className+" "+b)}};
return e}();
global.event=function(){function e(a){return a=="mousewheel"}function i(a,c){if(!c)return false;if(a==c)return true;return i(a,c.parentNode)}var b={},f=document,g=window,h=[];b.add=function(a,c,d){if(g.addEventListener){a.addEventListener(c,d,false);e(c)&&a.addEventListener("DOMMouseScroll",d,false)}else if(g.attachEvent){var j=c+d,k="e"+j;a[k]=d;a[j]=function(){return a[k](g.event)};a.attachEvent("on"+c,a[j]);h[h.length]={o:a,type:c,func:d}}};b.remove=function(a,c,d){if(g.removeEventListener){a.removeEventListener(c,d,
false);e(c)&&a.removeEventListener("DOMMouseScroll",d,false)}else if(g.detachEvent){d=c+d;a.detachEvent("on"+c,a[d]);a[d]=null;a["e"+d]=null}};b.preventdefault=function(a){if(a.preventDefault)a.preventDefault();else a.returnValue=false};b.gettarget=function(a){a=a.target||a.srcElement;return a.nodeType==3?a.parentNode:a};b.getrelatedtarget=function(a){return a.relatedTarget||(a.type=="mouseover"?a.fromElement:a.type=="mouseout"?a.toElement:false)};b.getmouseposition=function(a){if(a.pageX||a.pageY)return{x:a.pageX,
y:a.pageY};var c=f.body,d=f.documentElement;if(a.clientX||a.clientY)return{x:a.clientX+c.scrollLeft+d.scrollLeft,y:a.clientY+c.scrollTop+d.scrollTop};return{x:0,y:0}};b.getmousewheeldir=function(a){return(a.detail?a.detail*-1:a.wheelDelta)<0?1:-1};b.ismouseenterleave=function(a,c){c=b.getrelatedtarget(c);return!(!c||i(a,c))};b.getkeycode=function(a){return a.keyCode||a.which};g.detachEvent&&b.add(g,"unload",function(){for(var a=0,c=h.length;a<c;a++)b.remove(h[a].o,h[a].type,h[a].func);h=null});return b}();
