function isUndefined(o){return typeof o=='undefined';}
function isObject(o){return typeof o=='object';}
function isArray(o){return (isObject(o)&&o.constructor==Array);}
function isFunction(o){ return typeof o=='function';}
function isInt(s){return ''+parseInt(s)==s;}
function isFloat(s){return ''+parseFloat(s)==s;}
function isNumber(s){return ''+Number(s)==s;}
function isString(s){return typeof s=='string';}
function isDouble(s){return isInt(s.replace('.',''));}
function LZ(x){return(x<0||x>=10?'':'0')+x;}
function safeAddEventListener(o,e,f,u){if(o.addEventListener){o.addEventListener(e,f,u);return true;}else if(o.attachEvent){return o.attachEvent('on'+e,f);}}
function AEL(o,e,f,u){if(o.addEventListener){o.addEventListener(e,f,u);return true;}else if(o.attachEvent){return o.attachEvent('on'+e, f);}}
function safeRemoveEventListener(o,e,f,u){if(o.removeEventListener){o.removeEventListener(e,f,u);return true;}else if(o.detachEvent){return o.detachEvent('on'+e,f);}}
function safeStopPropagation(e){if(!e){e=window.event;}e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation();}}
function safeEventTarget(e){if(!e){e=window.event;}if(e.target){return(e.target);}else if(e.srcElement){return e.srcElement;}return false;}
function getArg(args,i,ar){return((args.length>i)?args[i]:(ar?ar:null));}
function getElement(el){if(document.getElementById){this.obj=document.getElementById(el);this.style=document.getElementById(el).style;}else if(document.all){this.obj=document.all[el];this.style=document.all[el].style;}else if(document.layers){this.obj=this.style=document.layers[el];}else{this.obj=this.style=null;}}
function getElementOffsetLeft(el){var ol=el.offsetLeft;while((el=el.offsetParent)!=null){ol+=el.offsetLeft;}return ol;}
function getElementOffsetTop(el){var ot=el.offsetTop;while((el=el.offsetParent)!=null){ot+=el.offsetTop;}return ot;}
function getInnerWidth(){return((window.innerWidth)?window.innerWidth:((document.documentElement&&document.documentElement.clientWidth)?document.documentElement.clientWidth:((document.body)?document.body.clientWidth:0)));}
function getInnerHeight(){return((window.innerHeight)?window.innerHeight:((document.documentElement&&document.documentElement.clientHeight)?document.documentElement.clientHeight:((document.body)?document.body.clientHeight:0)));}
function getPageXOffset(){if(self.pageXOffset){return self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollLeft){return document.documentElement.scrollLeft;}else if(document.body){return document.body.scrollLeft;}return 0;}
function getPageYOffset(){if(self.pageYOffset){return self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){return document.documentElement.scrollTop;}else if(document.body){return document.body.scrollTop;}return 0;}
function getElementsByClassName(el,tag,cln){var aEl=(tag=='*'&&document.all)?document.all:el.getElementsByTagName(tag),aRn=[],rx=new RegExp('(^|\\s)'+cln.replace(/\-/g,'\\-')+'(\\s|$)');for(var i=0;i<aEl.length;i++){if(rx.test(aEl[i].className)){aRn.push(aEl[i]);}}return aRn;}
function setElementCss(el,cl,st){if(cl){el.className=cl;}if(st){(!isUndefined(el.style.cssText))?el.style.cssText=st:el.setAttribute('style',st);}}
function setClassName(a,o,c1,c2){switch(a){case 'swap':o.className=!setClassName('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);break;case 'add':if(!setClassName('check',o,c1)){o.className+=o.className?' '+c1:c1;}break;case 'remove':var rep=o.className.match(' '+c1)?' '+c1:c1;o.className=o.className.replace(rep,'');break;case 'check':return new RegExp('\\b'+c1+'\\b').test(o.className);break;}}
function popWindow(){var a=arguments, w=window.open(getArg(a,0,'about:blank'),getArg(a,1),getArg(a,2,'menubar=no'),getArg(a,3,false));w.focus();w.opener=window;return false;}
if(document.getElementsByTagName){AEL(window,'load',function(){var as=document.getElementsByTagName('a');for(var i=0;i<as.length;i++){if(as[i].getAttribute('popup')){as[i].onclick=function(){return popWindow(this.href,this.getAttribute('target'),this.getAttribute('popup'));}}}},false);}
if(![].push){Array.prototype.push=function(){for(var i=0;i<arguments.length;i++){this[this.length]=arguments[i];}return this.length;}}
if(!Date.getFullYear){Date.prototype.getFullYear=function(){var yr=this.getYear();if(yr<1000){yr+=1900;}return yr;}}

