var WNG_OBJTYPE_EVENT='WNEvent';var WNG_STATE_ON='on',WNG_STATE_OFF='off';var wng_doc=document,wng_win=window,wng_sById=(wng_doc.getElementById)?true:false,wng_screenSize,wng_userAgent,wng_userAgentChecks={};function wnCheckUserAgent(checkValue){if(!checkValue){return false;}if(!wng_userAgent){wng_userAgent=navigator.userAgent.toLowerCase();}else{var result=wng_userAgentChecks[checkValue];if(result){return result;}}var result=wng_userAgent.indexOf(checkValue)!=-1;wng_userAgentChecks[checkValue]=result;return result;}function wnGetScreenSize(){var width=wng_win.innerWidth,height=wng_win.innerHeight;if(typeof(width)=='undefined'){return{width:wng_doc.body.clientWidth,height:wng_doc.body.clientHeight};}var mmin=Math.min;return{width:mmin(width,wng_doc.body.clientWidth),height:mmin(height,wng_doc.body.clientHeight)};}function wnGetScrollOffset(){try{var x=wng_win.pageXOffset,y=wng_win.pageYOffset;if(typeof(x)=='undefined'){x=wng_doc.body.scrollLeft;y=wng_doc.body.scrollTop;}return{x:x,y:y};}catch(e){return{x:0,y:0};}}function wnImageSwap(img,state,src){try{img=WNElement.getElement(img);if(state==WNG_STATE_OFF){src=img.origsrc;}else{if(!img.origsrc){img.origsrc=img.getAttribute('src');}if(!src){src=img.getAttribute('onsrc');}}if(!src){return;}img.src=src;return src;}catch(e){}}function wnStatusBarToggle(state,value){try{var stateOff=state==WNG_STATE_OFF;if(stateOff){value=wng_win.status;}if(!value){return;}wng_win.status=(stateOff)?'':value;return;}catch(e){}}if(!wng_win.WNElement){var WNElement=new Object();}WNElement.NODETYPE_ELEMENT=1;WNElement.getElement=function(element){try{if(typeof(element)=='string'){element=(wng_sById)?wng_doc.getElementById(element):null;}if(!element||element.nodeType!=this.NODETYPE_ELEMENT){return null;}return element;}catch(e){return null;}};WNElement.getDimensions=function(element,reuse){try{if(reuse&&element.dimensions){return element.dimensions;}var width=0,height=0;if(element.offsetWidth){width=element.offsetWidth;height=element.offsetHeight;}else{width=element.clientWidth;height=element.clientHeight;}element.dimensions={width:width,height:height};return element.dimensions;}catch(e){return{width:0,height:0};}};WNElement.getWidth=function(element,reuse){return this.getDimensions(element,reuse).width;};WNElement.getHeight=function(element,reuse){return this.getDimensions(element,reuse).height;};WNElement.getPosition=function(element,reuse){try{if(reuse&&element.position){return element.position;}var x=0,y=0;var parent=element;if(parent.offsetParent){while(1){x+=parent.offsetLeft;y+=parent.offsetTop;if(!parent.offsetParent){break;}parent=parent.offsetParent;}}else if(element.x){x=element.x;y=element.y;}element.position={x:x,y:y};return element.position;}catch(e){return{x:0,y:0};}};WNElement.getPositionX=function(element,reuse){return(this.getPosition(element,reuse)).x;};WNElement.getPositionY=function(element,reuse){return(this.getPosition(element,reuse)).y;};WNElement.addClassName=function(element,name){try{if(!name){return false;}if(this.hasClassName(element,name,true)){return false;}if(element.className){name=' '+name;}element.className+=name;return true;}catch(e){return false;}};WNElement.hasClassName=function(element,name){try{if(!name){return false;}return(' '+element.className+' ').indexOf(' '+name+' ')!=-1;}catch(e){return false;}};WNElement.removeClassName=function(element,name){try{if(!name){return false;}var origName=element.className;if(typeof(origName)=='undefined'){return false;}name=' '+name+' ';className=' '+origName+' ';while(className.indexOf(name)!=-1){className=className.replace(name,' ');}className=className.substr(1,className.length-2);element.className=className;return origName!=className;}catch(e){return false;}};if(!wng_win.WNEvent){var WNEvent=new Object();WNEvent.unloadListeners=[];}WNEvent.EVENT_CAPTURE=false;WNEvent.EVENT_TYPE_UNLOAD='unload';WNEvent.LISTENER_INDEXES={ELEMENT:0,TYPE:1,KEY:2,HANDLER:3};WNEvent.KEY_DELIMITER='#';WNEvent.addListener=function(element,type,handler,scope){try{if(!element||!type||!handler){return false;}if(!scope){scope=element;}var key=this._getKey(type,handler);var wrappedHandler=function(evt){return handler.call(scope,WNEvent._getEvent(evt,element),element);};if(type==this.EVENT_TYPE_UNLOAD&&scope!==this){this.unloadListeners.push([element,type,key,wrappedHandler]);}else if(element.addEventListener){element.addEventListener(type,wrappedHandler,this.EVENT_CAPTURE);}else if(element.attachEvent){element.attachEvent('on'+type,wrappedHandler);}else{var origHandler=element['on'+type];if(!origHandler){element['on'+type]=wrappedHandler;}else{element[key]=null;var origWrappedHandler=wrappedHandler;wrappedHandler=function(evt){var performDefault=origWrappedHandler(evt);return performDefault&&origHandler(evt);};element['on'+type]=wrappedHandler;}}WNClosureTracker.addCallback(this.removeListenerFromKey,[element,key,type],this);element[key]=wrappedHandler;return true;}catch(e){return false;}};WNEvent.removeListener=function(element,type,handler,key){try{if(!element||!type||(!handler&&!key)){return;}if(!key){key=this._getKey(type,handler);}var wrappedHandler=element[key];if(type==this.EVENT_TYPE_UNLOAD){this._removeUnloadListener(element,key);}else if(element.removeEventListener){element.removeEventListener(type,wrappedHandler,this.EVENT_CAPTURE);}else if(element.detachEvent){element.detachEvent('on'+type,wrappedHandler);}else{element['on'+type]=null;}element[key]=null;wrappedHandler=null;}catch(e){}};WNEvent.removeListenerFromKey=function(element,key,type){try{if(!type){type=key.split(this.KEY_DELIMITER)[0];}this.removeListener(element,type,null,key);}catch(e){}};WNEvent._removeUnloadListener=function(element,key){try{var listeners=this.unloadListeners,listenersLen=listeners.length;if(listenersLen){var indexes=this.LISTENER_INDEXES,elementIndex=indexes.ELEMENT,keyIndex=indexes.KEY;var i=listenersLen-1;var listener;do{listener=listeners[i];if(listener[elementIndex]==element&&listener[keyIndex]==key){this.unloadListeners[i]=null;this.unloadListeners.splice(i,1);break;}}while(i--);}}catch(e){}};WNEvent._getKey=function(type,handler){return type+this.KEY_DELIMITER+handler;};WNEvent._getEvent=function(evt,element){return new WNEventObj(evt,element);};WNEvent._unload=function(evt){try{var listeners=this.unloadListeners,listenersLen=listeners.length;if(listenersLen){var i=listenersLen-1;var handlerIndex=this.LISTENER_INDEXES.HANDLER;do{listeners[i][handlerIndex](evt);}while(i--);}listeners=null;this.unloadListeners=[];WNClosureTracker.clear();}catch(e){}};function WNEventObj(evt,element){this.event=evt||wng_win.event||{};this.type=this.event.type;this.currentTarget=element;}WNEventObj.prototype.MOUSEOVER='mouseover';WNEventObj.prototype.MOUSEOUT='mouseout';WNEventObj.prototype.objectType=WNG_OBJTYPE_EVENT;WNEventObj.prototype.getTarget=function(){var target=this.target;if(target){return target;}var evt=this.event;target=evt.target;if(!target){target=evt.srcElement;}if(target&&target.nodeType==3){target=target.parentNode;}this.target=target;return target;};WNEventObj.prototype.getRelatedTarget=function(){var relatedTarget=this.relatedTarget;if(relatedTarget){return relatedTarget;}var evt=this.event;relatedTarget=evt.relatedTarget;if(!relatedTarget){relatedTarget=(this.type==this.MOUSEOUT)?evt.toElement:evt.fromElement;}this.relatedTarget=relatedTarget;return relatedTarget;};WNEventObj.prototype.stopPropagation=function(){var evt=this.event;evt.cancelBubble=true;if(evt.stopPropagation)evt.stopPropagation();};if(!wng_win.WNClosureTracker){var WNClosureTracker=new Object();WNClosureTracker.closures=[];WNClosureTracker.callbacks=[];}WNClosureTracker.CLOSURE_INDEXES={OBJECT:0,PROPERTY:1};WNClosureTracker.CALLBACK_INDEXES={FUNC:0,ARGS:1,SCOPE:2};WNClosureTracker.add=function(object,property){try{var propertyType=typeof(property);if(typeof(object)!='object'||(propertyType!='string'&&propertyType!='number')){return false;}this.closures.push([object,property]);return true;}catch(e){return false;}};WNClosureTracker.addCallback=function(func,args,scope){try{if(typeof(func)!='function'){return false;}var argsType=wnTypeOf(args);if(argsType!='array'&&argsType!='undefined'&&args!=null){args=[args];}this.callbacks.push([func,args,scope]);return true;}catch(e){return false;}};WNClosureTracker.clear=function(){try{var closures=this.closures,closuresLen=closures.length;if(closuresLen){var closure;var indexes=this.CLOSURE_INDEXES;var objectIndex=indexes.OBJECT,propertyIndex=indexes.PROPERTY;var i=closuresLen-1;do{closure=closures[i];closure[objectIndex][closure[propertyIndex]]=null;closures[i]=null;}while(i--);}closures=null;this.closures=[];var callbacks=this.callbacks,callbacksLen=callbacks.length;if(callbacksLen){var callback,callbackFunc;var indexes=this.CALLBACK_INDEXES;var funcIndex=indexes.FUNC,argsIndex=indexes.ARGS,scopeIndex=indexes.SCOPE;var i=callbacksLen-1;do{callback=callbacks[i];callbackFunc=callback[funcIndex];callbackFunc.apply(callback[scopeIndex]||callbackFunc,callback[argsIndex]||[]);callbacks[i]=null;}while(i--);}callbacks=null;this.callbacks=[];}catch(e){}};function wnTypeOf(variable){try{if(variable.constructor==Array){return 'array';}}catch(e){}return typeof(variable);}Function.prototype.bind=function(){var method=this;var args=[];for(var i=0,arg;arg=arguments[i];i++){args.push(arguments[i]);}var scope=args.shift();return function(){if(arguments.length){for(var i=0,arg;arg=arguments[i];i++){args.push(arguments[i]);}}return method.apply(scope,args);};};if(typeof(Function.prototype.call)=='undefined'){Function.prototype.call=function(){var oObject=arguments[0];oObject._this_func=this;var aArgs=[];var argsLen=arguments.length;for(var i=1;i<argsLen;i++){aArgs.push('arguments['+i+']');}eval('oObject._this_func('+aArgs.join(',')+')');oObject._this_func=null;};}if(typeof(Function.prototype.apply)=='undefined'){Function.prototype.apply=function(){var oObject=arguments[0];oObject._this_func=this;var aArgs=[];var args=arguments[1],argsLen=args.length;for(var i=0;i<argsLen;i++){aArgs.push('args['+i+']');}eval('oObject._this_func('+aArgs.join(',')+')');oObject._this_func=null;};}Object.prototype.inheritFrom=function(obj){for(var name in obj){if(!this[name]){this[name]=obj[name];}}};if(typeof(Array.prototype.push)=='undefined'){Array.prototype.push=function(){for(var i=0,b=this.length,a=arguments,l=a.length;i<l;i++){this[b+i]=a[i];}return this.length;};}if(typeof(Array.prototype.splice)=='undefined'){Array.prototype.splice=function(a,c){var i=0,e=arguments,f=a,l=this.length;var d=[],i=this.length;while(i--){d[i]=this[i];}if(!c){c=l-a;}for(i;i<e.length-2;i++){this[a+i]=e[i+2];}for(a;a<l-c;a++){this[a+e.length-2]=d[a-c];}this.length-=c-e.length+2;return d.slice(f,f+c);};}if(typeof(Array.prototype.slice)=='undefined'){Array.prototype.slice=function(a,c){var l=this.length,r=[];if(!c){c=l;}if(c<0){c=l+c;}if(a<0){a=l-a;}if(c<a){i=a;a=c;c=i;}for(var i=0;i<c-a;i++){r[i]=this[a+i];}return r;};}if(typeof(Array.prototype.shift)=='undefined'){Array.prototype.shift=function(){for(var i=0,b=this[0],l=this.length-1;i<l;i++){this[i]=this[i+l];}this.length--;return b;};}WNEvent.addListener(wng_win,'unload',WNEvent._unload,WNEvent);