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