var W={};(function(){W.Dom={isSafari:navigator.userAgent.indexOf('Safari')!=-1?true:false,$:function(id){if(typeof id=='string'){id=document.getElementById(id);}
return id;},getStyle:function(element,property)
{element=this.$(element);if(element.style[property]){return element.style[property];}else if(element.currentStyle){return element.currentStyle[property];}else if(document.defaultView&&document.defaultView.getComputedStyle){var style=document.defaultView.getComputedStyle(element,null);if(!style){return null;}
return style[property];}else{return null;}},getElementsByClassName:function(searchClass,tag,node){var classElements=[];node=this.$(node)||document.body;tag=tag||'*';var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp('(^|\\s)'+searchClass+'(\\s|$)');for(var i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}
return classElements;},preload:function(img)
{new Image().src=img;},getWindowSize:function()
{var size={x:0,y:0};if(document.documentElement&&document.documentElement.clientHeight){size.x=document.documentElement.clientWidth;size.y=document.documentElement.clientHeight;}else if(document.body){size.x=document.body.clientWidth;size.y=document.body.clientHeight;}
return size;},getScroll:function()
{var scroll={x:0,y:0};if(window.scrollY!==undefined){return function()
{scroll.y=window.scrollY;scroll.x=window.scrollX;return scroll;};}else if(document.documentElement&&document.compatMode){return function()
{scroll.y=document.documentElement.scrollTop;scroll.x=document.documentElement.scrollLeft;return scroll;};}else{return function()
{scroll.y=document.body.scrollTop;scroll.x=document.body.scrollLeft;return scroll;};}}(),getContentSize:function()
{var size={x:0,y:0};var size_ie={x:0,y:0};if(document.documentElement&&document.documentElement.scrollWidth){size.x=document.documentElement.scrollWidth;size.y=document.documentElement.scrollHeight;}
size_ie.x=document.body.scrollWidth;size_ie.y=document.body.scrollHeight;if(size_ie.x>size.x){size.x=size_ie.x;}
if(size_ie.y>size.y){size.y=size_ie.y;}
var win=this.getWindowSize();if(win.y>size.y){size.y=win.y;}
if(win.x>size.x){size.x=win.x;}
return size;},addClassname:function(node,className)
{node=this.$(node);if(node.className.indexOf(className)==-1){node.className=node.className+' '+className;}},removeClassname:function(node,className)
{node=this.$(node);var regex=new RegExp('\\b ?'+className+'\\b');node.className=node.className.replace(regex,'');},changeClassname:function(node,className)
{if(!node){return;}
var elements=[];if(typeof node=='string'){node=this.$(node);elements.push(node);}else{elements=node;}
for(var obj in elements){elements[obj].className=className;}}};})();W.$=W.Dom.$;(function(){W.Event={add:function(obj,type,fn)
{var result,r,old;if(obj.addEventListener){obj.addEventListener(type,fn,false);result=true;}
else if(obj.attachEvent){r=obj.attachEvent('on'+type,fn);result=r;}
else{old=obj['on'+type];if(typeof obj['on'+type]!='function'){obj['on'+type]=fn;}else{obj['on'+type]=function()
{old();fn();};}}
return result;},remove:function(obj,type,fn)
{if(obj.removeEventListener){obj.removeEventListener(type,fn,false);}else if(obj.detachEvent){obj.detachEvent('on'+type,fn);}else{obj['on'+type]=null;}},preventDefault:function(e)
{e.returnValue=false;if(e.preventDefault){e.preventDefault();}
return false;},cancelBubble:function(e)
{e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation();}},stop:function(e)
{if(window.event){window.event.cancelBubble=true;window.event.returnValue=false;}
if(e&&e.stopPropagation&&e.preventDefault){e.stopPropagation();e.preventDefault();}},source:function(e)
{return window.event?window.event.srcElement:e?e.target:null;},target:function(e,targetElement)
{return window.event?targetElement:e?e.currentTarget:null;},getTarget:function(e)
{var targetElement=null;targetElement=this.source(e);while(targetElement.nodeType==3&&targetElement.parentNode!==null){targetElement=targetElement.parentNode;}
return targetElement;},Cache:function()
{var listEvents=[];return{listEvents:listEvents,add:function(node,sEventName,fHandler){listEvents.push(arguments);},flush:function(){var i,item;for(i=listEvents.length-1;i>=0;i=i-1){item=listEvents[i];if(item[0].removeEventListener){item[0].removeEventListener(item[1],item[2],item[3]);}
if(item[1].substring(0,2)!="on"){item[1]="on"+item[1];}
if(item[0].detachEvent){item[0].detachEvent(item[1],item[2]);}
item[0][item[1]]=null;}}};}()};})();Function.prototype.bind=function(object,args)
{var method=this;return function(event){return method.call(object,event||window.event,args);};};if(Array.prototype.push===null){Array.prototype.push=function(){for(var i=0;i<arguments.length;++i){this[this.length]=arguments[i];}
return this.length;};}
W.Event.add(window,'unload',W.Event.Cache.flush);
