var Common={Class:{match:function(a,b){return(a.className&&a.className.match(new RegExp('(^|\\s+)('+b+')($|\\s+)')))?true:false},add:function(a,b){if(!this.match(a,b)){a.className+=' '+b}},replace:function(a,b,c,d){if(this.match(a,b)){a.className=(a.className.replace(new RegExp("(^|\\s+)("+b+"|"+c+")($|\\s+)","g"),"$1")+' '+c).replace(/^\s+/,'')}else if(d&&this.match(a,c)){a.className=(a.className.replace(new RegExp("(^|\\s+)("+c+"|"+b+")($|\\s+)","g"),"$1")+' '+b).replace(/^\s+/,'')}else{this.add(a,c)}},remove:function(a,b){a.className=a.className.replace(new RegExp('(.*)(^|\\s+)('+b+')($|\\s+)(.*)'),'$1$4$5').replace(/(^)\s/,'$1')}},Event:{aObservers:[],add:function(a,b,c){if(a.length&&a.sort){for(var i=0;i<a.length;i++){this.add(a[i],b,c)}return}if(!b.match&&b.length){for(var i=0;i<b.length;i++){this.add(a,b[i],c)}return}if(a.addEventListener){a.addEventListener(b,c,false)}else if(a.attachEvent){if(this.aObservers.length==0){this.aObservers.push([a,b,c]);this.add(window,'unload',function(){Common.Event.detachObservers()})}else{this.aObservers.push([a,b,c])}a.attachEvent('on'+b,c)}},remove:function(a,b,c){if(a.length&&a.sort){for(var i=0;i<a.length;i++){this.remove(a[i],b,c)}return}if(!b.match&&b.length){for(var i=0;i<b.length;i++){this.remove(a,b[i],c)}return}if(a.removeEventListener){a.removeEventListener(b,c,false)}else if(a.detachEvent){a.detachEvent('on'+b,c)}},detachObservers:function(){for(var i=0,iLength=this.aObservers.length;i<iLength;i++){this.remove(this.aObservers[i][0],this.aObservers[i][1],this.aObservers[i][2]);this.aObservers[i][0]=null}this.aObservers.length=0},cancel:function(a){var a=a?a:window.event;a.cancelBubble=true;a.returnValue=false;if(a.cancelable){a.preventDefault();a.stopPropagation()}return false},normalize:function(a){var a=a?a:window.event;if(a&&a.srcElement&&!window.opera){a.target=a.srcElement}if(a){a.iKeyCode=a.keyCode?a.keyCode:(a.which?a.which:null);if(a.wheelDelta){a.iMouseWheelDelta=a.wheelDelta/120;if(window.opera){a.iMouseWheelDelta*=-1}}else if(a.detail){a.iMouseWheelDelta=-a.detail/3}}return a},getAbsoluteCoords:function(a){var a=a?a:window.event,oResult={iLeft:0,iTop:0};if(a.pageX||a.pageY){oResult.iLeft=a.pageX;oResult.iTop=a.pageY}else if(a.clientX||a.clientY){oResult.iLeft=a.clientX+document.body.scrollLeft-document.body.clientLeft;oResult.iTop=a.clientY+document.body.scrollTop-document.body.clientTop;if(document.body.parentElement&&document.body.parentElement.clientLeft){var b=document.body.parentElement;oResult.iLeft+=b.scrollLeft-b.clientLeft;oResult.iTop+=b.scrollTop-b.clientTop}}return oResult}},Dom:{NODE_TYPE_ELEMENT:1,NODE_TYPE_TEXT:3,getAbsoluteCoords:function(a){var b={iTop:0,iLeft:0};while(a){b.iTop+=a.offsetTop;b.iLeft+=a.offsetLeft;a=a.offsetParent}return b},getAttribute:function(a,b){if(a.attributes){for(var i=0,iLength=a.attributes.length;i<iLength;i++){if(a.attributes[i].nodeName==b){return a.attributes[i].nodeValue}}}return a.getAttribute(b)},getElementsByClassName:function(a,b,c,d){var e=[],c=c||'*';if(!d){if(document.evaluate){oQueryResult=document.evaluate('.//'+c+'[contains(concat(\' \', @class, \' \'), \' '+b+' \')]',a,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,iLength=oQueryResult.snapshotLength;i<iLength;i++){e.push(oQueryResult.snapshotItem(i))}return e}var f=a.getElementsByTagName(c);if(f.length>0||c!='*'){for(var i=0,iLength=f.length,oDescendant;i<iLength;i++){oDescendant=f[i];if(Common.Class.match(oDescendant,b)){e.push(oDescendant)}}return e}}for(var i=0,iLength=a.childNodes.length,oChild;i<iLength;i++){oChild=a.childNodes[i];if(oChild.nodeType!=Common.Dom.NODE_TYPE_ELEMENT){continue}if(Common.Class.match(oChild,b)){e.push(oChild)}e=e.concat(this.getElementsByClassName(oChild,b,c,true))}return e},setStyle:function(a,b){if(typeof(a.style.cssText)!='undefined'){a.style.cssText=b}else{a.setAttribute('style',b)}},setOpacity:function(a,b){if(a.runtimeStyle){a.style.zoom=1;a.style.filter=a.style.filter.replace(/alpha\([^)]*\)/,"")+"alpha(opacity="+b*100+")"}else{if(b==1){a.style.opacity=''}else{a.style.opacity=b}}}},Cookie:{set:function(a,b,c,d){document.cookie=a+'='+(window.encodeURI?encodeURI(b):escape(b))+((c==null)?'':('; expires='+c.toGMTString()))+((d==null)?'':('; path='+d))},get:function(a){var b=a+'=';if(document.cookie.length>0){var c=document.cookie.indexOf(b);if(c!=-1){c+=b.length;var d=document.cookie.indexOf(';',c);if(d==-1){d=document.cookie.length}return window.decodeURI?decodeURI(document.cookie.substring(c,d)):unescape(document.cookie.substring(c,d))}}return''}},Object:{extend:function(a,b,c){for(var i in b){if(c||typeof(a[i])=='undefined'){a[i]=b[i]}}return a}},Utils:{oPopupDefaults:{iWidth:540,iHeight:600,sToolbar:'no',sMenubar:'no',sResizeable:'yes',sScrollbars:'yes',sStatus:'yes'},popup:function(a,b,c,d){c=Common.Object.extend(Common.Utils.oPopupDefaults,c,true);var e=screen.availWidth/2-c.iWidth/2;var f=screen.availHeight/2-c.iHeight/2;oNewWindow=window.open(a,'','left='+e+', '+'top = '+f+', '+'width='+c.iWidth+', '+'height='+c.iHeight+', '+'menubar='+c.sMenubar+', '+'toolbar='+c.sToolbar+', '+'resizable='+c.sResizeable+', '+'scrollbars='+c.sScrollbars+', '+'status='+c.sStatus);if(a.match(/\.(gif|jpe?g|png)$/i)){oNewWindow.document.open();oNewWindow.document.write('<html><head>'+(b!=''?'<title>'+b+'</title>':'')+'</head><body style="background: #FFF; margin: 0; padding: 0;">'+'<table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"><tr><td align="center">'+'<img src="'+a+'" />'+'</td></tr></table></body></html>');oNewWindow.document.close()}oNewWindow.focus();return false},aNavigationLinks:[{sRel:'next',iKeyCode:0x27,sHref:''},{sRel:'prev',iKeyCode:0x25,sHref:''},{sRel:'up',iKeyCode:0x26,sHref:''},{sRel:'down',iKeyCode:0x28,sHref:''},{sRel:'start',iKeyCode:0x24,sHref:''}],keyNavigationInit:function(){var c=document.getElementsByTagName('link');for(var i=0,sRel;i<c.length;i++){sRel=c[i].rel;for(var j=0;j<this.aNavigationLinks.length;j++){if(this.aNavigationLinks[j].sRel==sRel){this.aNavigationLinks[j].sHref=c[i].href;break}}}Common.Event.add(document,'keydown',function(a){var a=Common.Event.normalize(a);if(!a.ctrlKey){return true}var b=Common.Utils.aNavigationLinks;for(var i=0;i<b.length;i++){if(b[i].iKeyCode==a.iKeyCode&&b[i].sHref!=''){document.location=b[i].sHref}}})}}};Common.Object.extend(Function.prototype,{call:function(){var a=arguments[0],aArguments=[],oResult;a.fFunction=this;for(var i=1;i<arguments.length;i++){aArguments[aArguments.length]='arguments['+i+']'}eval('oResult = oObject.fFunction('+aArguments.join(',')+')');a.fFunction=null;return oResult},apply:function(){var a,oOldProperty,aArguments=[],oResult;a=arguments.length==0?window:arguments[0];oOldProperty=a.__temp;a.__temp=this;for(var i=0;i<arguments[1].length;i++){aArguments[aArguments.length]='arguments[1]['+i+']'}oResult=eval('oContext.__temp('+aArguments.join(',')+')');a.__temp=oOldProperty;return oResult},inheritFrom:function(a,b){var c=function(){};c.prototype=a.prototype;this.prototype=new c();this.prototype.constructor=this;this.baseConstructor=a;this.superClass=a.prototype;if(b){Common.Object.extend(this.prototype,b,true)}}});Common.Object.extend(Array.prototype,{isEmpty:function(){return this.length==0},push:function(){for(var i=0;i<arguments.length;i++){this[this.length]=arguments[i]}},splice:function(){if(arguments[0]>this.length-1){return}var a=arguments[0]+arguments[1]>this.length?this.length-arguments[0]:arguments[1];if(a>0){for(var i=arguments[0];i<this.length;i++){this[i]=this[i+a]}this.length=this.length-a}var b=arguments.length-2;if(b>0){var c=this.length-1,iNewLastIndex=c+b;for(var i=c,j=0;i>=arguments[0];i--,j++){this[iNewLastIndex-j]=this[i]}for(var i=0;i<b;i++){this[arguments[0]+i]=arguments[i+2]}}},remove:function(a){for(var i=0;i<this.length;i++){if(this[i]==a){this.splice(i,1);break}}},indexOf:function(a,b){for(var i=0;i<this.length;i++){if(this[i]==a){return i}}return-1},indexOfByFunction:function(a,b){if(!b){return this.indexOf(a)}for(var i=0;i<this.length;i++){if(b(this[i],a)){return i}}return-1},contains:function(a,b){return this.indexOfByFunction(a,b)>-1},intersect:function(a){var b=[];for(var i=0;i<a.length;i++){if(this.contains(a[i])){b.push(a[i])}}return b},union:function(a){var b=[].concat(this);for(var i=0;i<a.length;i++){if(!this.contains(a[i])){b.push(a[i])}}return b},subtract:function(a){var b=[].concat(this);for(var i=0;i<a.length;i++){if(this.contains(a[i])){b.remove(a[i])}}return b},foreach:function(a){for(var b in this){if(this.hasOwnProperty(b)){a(b,this[b])}}}});Common.Object.extend(String.prototype,{stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'')},formatNumber:function(a,b){var a=a||' ',b=b||',',iFractionIndex=this.indexOf('.'),sFraction=iFractionIndex>-1?this.substring(iFractionIndex+1):'',sNumber=iFractionIndex>-1?this.substring(0,iFractionIndex):this;if(sNumber.length<5){return sNumber+(iFractionIndex>-1?b+sFraction:'')}var c='';while(sNumber.length>3){c=sNumber.substring(sNumber.length-3)+(c.length>0?a:'')+c;sNumber=sNumber.substring(0,sNumber.length-3)}c=sNumber+a+c+(iFractionIndex>-1?b+sFraction:'');return c}});Common.Object.extend(Number.prototype,{toFixed:function(a){var b=this.toString().split('.',2);if(!b[1]){return this}return b[0]+'.'+Math.round(b[1]/Math.pow(10,b[1].length-a))},formatNumber:function(a,b){return this.toString().formatNumber(a,b)}});Common.Object.extend(Object.prototype,{hasOwnProperty:function(a){return!('undefined'==typeof this[a]||this.constructor&&this.constructor.prototype[a]&&this[a]===this.constructor.prototype[a])}});