var Common={
	Browser:{
		bIE:!!(window.attachEvent&&!window.opera),
		bOpera:!!window.opera,bSafari:/webkit/i.test(navigator.userAgent),
		bMozilla:/mozilla/i.test(navigator.userAgent)&&!/(compatible|webkit)/i.test(navigator.userAgent),
		isIE:function(){return this.bIE},isOpera:function(){return this.bOpera},
		isSafari:function(){return this.bSafari},
		isMozilla:function(){return this.bMozilla}
	},

	Class:{
		match:function(a,b){return a.className!=''&&(' '+a.className+' ').indexOf(' '+b+' ')>-1},
		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:[],TYPE_DOM_CONTENT_LOADED:'DOMContentLoaded',add:function(a,b,c){if(a instanceof Array||(a.item&&a.length&&!a.tagName)){for(var i=0;i<a.length;i++){this.add(a[i],b,c)}return}if(b instanceof Array){for(var i=0;i<b.length;i++){this.add(a,b[i],c)}return}if(b==this.TYPE_DOM_CONTENT_LOADED){return this.addDomContentLoaded(a,c)}if(a.addEventListener){a.addEventListener(b,c,false)}else if(a.attachEvent){this.attachObserver(a,b,c);a.attachEvent('on'+b,c)}},remove:function(a,b,c){if(a instanceof Array||(a.item&&a.length&&!a.tagName)){for(var i=0;i<a.length;i++){this.remove(a[i],b,c)}return}if(b instanceof Array){for(var i=0;i<b.length;i++){this.remove(a,b[i],c)}return}if(b==this.TYPE_DOM_CONTENT_LOADED){return this.removeDomContentLoaded(a,c)}if(a.removeEventListener){a.removeEventListener(b,c,false)}else if(a.detachEvent){a.detachEvent('on'+b,c)}},addDomContentLoaded:function(c,d){if(document.addEventListener&&!/webkit/i.test(navigator.userAgent)){document.addEventListener(this.TYPE_DOM_CONTENT_LOADED,d,false)}else{if(this.aObservers.indexOfByFunction(this.TYPE_DOM_CONTENT_LOADED,function(a,b){return a[1]==b})>-1){this.attachObserver(c,this.TYPE_DOM_CONTENT_LOADED,d);return}this.attachObserver(c,this.TYPE_DOM_CONTENT_LOADED,d);if(document.addEventListener){setTimeout(function(){if(document.readyState=='loaded'||document.readyState=='complete'){Common.Event.fireDomContentLoaded()}else{setTimeout(arguments.callee,10)}},10)}else{(function(){var a=document.createElement('document:ready');try{a.doScroll('left');a=null;Common.Event.fireDomContentLoaded()}catch(oException){setTimeout(arguments.callee,10)}})()}}},removeDomContentLoaded:function(c,d){if(document.addEventListener&&!/webkit/i.test(navigator.userAgent)){return document.removeEventListener(this.TYPE_DOM_CONTENT_LOADED,d,false)}var e=this.aObservers.filtrate(d,function(a,b){return a[1]==Common.Event.TYPE_DOM_CONTENT_LOADED&&a[2]==b});for(var i=0;i<e.length;i++){this.aObservers.remove(e[i])}},fireDomContentLoaded:function(){var c=this.aObservers.filtrate(this.TYPE_DOM_CONTENT_LOADED,function(a,b){return a[1]==b});for(var i=0;i<c.length;i++){c[i][2]()}},attachObserver:function(a,b,c){this.aObservers.push([a,b,c]);if(this.aObservers.length==1){this.add(window,'unload',function(){Common.Event.detachObservers()})}},detachObservers:function(){for(var i=0;i<this.aObservers.length;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,
		getUniqueId:function(a){if(a.uniqueID){return a.uniqueID}if(!arguments.callee.counter){arguments.callee.counter=0}a.uniqueID='__unique_id_'+arguments.callee.counter++;return a.uniqueID},
		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)},
		createElement:function(c,d,e){var f;if(Common.Browser.isIE()){var g='<'+c;if(d){Common.Object.foreach(d,function(a,b){g+=' '+a+'="'+b+'"'})}f=document.createElement(g+' />')}else{f=document.createElement(c);if(d){Common.Object.foreach(d,function(a,b){f.setAttribute(a,b)})}}if(e){f.innerHTML=e}return f},
		getElementsByClassName:function(a,b,c,d){var e=[],c=c||'*';if(document.evaluate){oQueryResult=document.evaluate('./'+(d?'':'/')+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}if(d){for(var i=0,iLength=a.childNodes.length,oChild;i<iLength;i++){oChild=a.childNodes[i];if(oChild.nodeType==Common.Dom.NODE_TYPE_ELEMENT&&(c=='*'||oChild.tagName.toLowerCase()==c)&&Common.Class.match(oChild,b)){e.push(oChild)}}return e}var f=c=='*'&&a.all?a.all:a.getElementsByTagName(c);for(var i=0,iLength=f.length;i<iLength;i++){if(Common.Class.match(f[i],b)){e.push(f[i])}}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')&&typeof(b[i])!='undefined'){a[i]=b[i]}}return a},
		foreach:function(a,b){for(var c in a){if(a.hasOwnProperty(c)){b(c,a[c])}}}
	},

	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(
	Object.prototype,
	{
		hasOwnProperty:function(a){return!('undefined'==typeof this[a]||this.constructor&&this.constructor.prototype[a]&&this[a]===this.constructor.prototype[a])}
	}
);
Common.Object.extend(
	Function.prototype,
	{call:function(){var o=arguments[0],aArguments=[],r;o.f=this;for(var i=1;i<arguments.length;i++){aArguments[aArguments.length]='arguments['+i+']'}eval('r = o.f('+aArguments.join(',')+')');o.f=null;return r},apply:function(){var o,oOldProperty,aArguments=[],oResult;o=arguments.length==0?window:arguments[0];o.f=this;if(arguments[1]){for(var i=0;i<arguments[1].length;i++){aArguments[aArguments.length]='arguments[1]['+i+']'}}oResult=eval('o.f('+aArguments.join(',')+')');o.f=null;return oResult},inheritTo:function(d,e){var f=this,Result=function(){if(this.__constructor){this.__constructor.apply(this,arguments)}},

	Inheritance=function(){};Common.Object.extend(Result,f);Inheritance.prototype=this.prototype;Result.prototype=new Inheritance();Result.prototype.constructor=Result;Result.prototype.__self=Result;if(d){for(var i in d){if(typeof(Result.prototype[i])=='function'){(function(c){Result.prototype[c]=function(){var a=this.__base;this.__base=f.prototype[c];var b=d[c].apply(this,arguments);this.__base=a;return b}})(i)}else{Result.prototype[i]=d[i]}}}if(e){Common.Object.extend(Result,e,true)}return Result}}
);
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&&arguments[1]==0){for(var i=2;i<arguments.length;i++){this.push(arguments[i])}return}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){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},
		filtrate:function(a,b){var c=[];for(var i=0;i<this.length;i++){if(b(this[i],a)){c.push(this[i])}}return c},
		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},
		unique:function(){var a=[],i=-1,mItem;while((mItem=this[++i])!=null){if(!this[i].__marked){this[i].__marked=true;a.push(mItem)}}while(mItem=this[--i]){this[i].__marked=undefined}return a}
	}
);
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)}}
);
try{undefined}catch(oException){window.undefined=void 0}
function Abstract(){throw('abstract class');}
Common.Class.add(document.documentElement,'with-js');
Common.Event.add(window,'error',function(a){Common.Class.add(document.documentElement,'with-js-error')});
Common.Event.add(document,Common.Event.TYPE_DOM_CONTENT_LOADED,function(){Common.Utils.keyNavigationInit()});
