function isUndefined(o) { return(typeof(o)=='undefined'); }
function isObject(o) { return(typeof(o)=='object'); }
function isArray(o) { return(isObject(o)&&o.constructor==Array); }
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 getArg(args, i, ar) { return ((args.length>i)?args[i]:(ar?ar:null)); }
function getInnerHeight() { return ((window.innerHeight)?window.innerHeight:((document.documentElement&&document.documentElement.clientHeight)?document.documentElement.clientHeight:((document.body)?document.body.clientHeight:0))); }