var mBanner = {

	oGallery : null,
	numSlides : 0,
	maxHeight : 0,
	oLayer : null,
	fIndex : 0,
	fBuzy : false,
	oNavigation : null,
	fTransition : null,
	fInterval : 5000,
	fSlideshow : 0,
	fPaused : false,
	sCfg : {
		start: -1035,
		middle : -65,
		end: 905,
		size : 970
	},

	create : function (oDiv) {

		this.oLayer = oDiv;
		this.oTitle = document.getElementById('bannerTitle');
		this.oGallery = new Array();		
		var sBox = document.getElementById("switchBox");
		for (var i = 0; i < oDiv.childNodes.length; i++) {
			var o = oDiv.childNodes[i];
			if (o.tagName && o.tagName.toLowerCase() == 'div') {
				this.oGallery.push(this.createSlide(o,sBox));
				this.numSlides++;
			}
		} if (this.numSlides) {
			this.oGallery[this.numSlides-1].elem.style.visibility = 'visible';
			this.oGallery[this.numSlides-1].current = 1;
			this.fIndex = this.numSlides - 1;
			this.activateTab(this.oGallery[this.numSlides-1].box,true);
			if (this.numSlides > 1) this.play();
		}

	},

	createSlide : function (oElem,sBox) {

		var a;
		var oTab;
		var oRef = {};
		oRef.id = this.numSlides;
		oRef.elem = oElem;
		oRef.elem.style.display = 'block';
		oRef.elem.style.visibility = 'hidden';
//		oRef.elem.style.visibility = oRef.id ? 'hidden' : 'visible';
		if (sBox && (oTab = sBox.childNodes[oRef.id])) oRef.box = this.createTab(oTab,oRef.id);
//		if (!oRef.id) this.activateTab(oRef.box,true);
		if (a = this.nSyb(oElem.childNodes[0],'div','photos')) {			
			oRef.pictures = new Array();
//			oRef.current = oRef.id ? 0 : 1;
			oRef.current = 0;
			for (var i = 0; i < a.childNodes.length; i++) {
				a.childNodes[i].style.display = i ? 'none' : 'block';
				oRef.pictures.push(a.childNodes[i]);
			} 
		} oRef.elem.onmouseover = function (e) {mBanner.fPaused = true;}
		oRef.elem.onmouseout = function (e) {mBanner.fPaused = false;}		
		oRef.elem.style.left = this.sCfg.middle;
		return oRef;

	},

	createTab : function (oElem,oId) {

		var oRef = {};
		oRef.id = oId;
		oRef.elem = oElem;
		oRef.active = false;
		oRef.title = oElem.getAttribute("title");
		oRef.selected = oElem.getAttribute("rel");
		oRef.hover = oElem.style.backgroundColor;
		oRef.elem.style.backgroundColor = '#dddddd';
		oRef.elem.onclick = function (e) {
			if (!mBanner.fBuzy) mBanner.stop(oRef.id);
		}; oRef.elem.onmouseover = function (e) {
			if (oRef.active) return false;
			oRef.elem.style.backgroundColor = oRef.hover;
		}; oRef.elem.onmouseout = function (e) {
			oRef.elem.style.backgroundColor = oRef.active ? oRef.selected : '#dddddd';
		}; return oRef;

	},

	activateTab : function (oTab,oState) {

		oTab.active = oState;
		oTab.elem.style.backgroundColor = oState ? oTab.selected : '#dddddd';
		mBanner.oTitle.innerHTML = oState ? oTab.title : '&nbsp;';

	},

	play : function () {		
		
		if (this.numSlides > 1) {
			if (!this.fSlideshow) { 
				this.fSlideshow = setInterval("mBanner.play()",this.fInterval);
			} else {
				if (this.fPaused) return;
				var cur = this.fIndex;
				this.fIndex--;
				if (this.fIndex < 0) this.fIndex = this.numSlides - 1;
				this.show(this.fIndex,cur);
			}			
		}

	},

	stop : function (oId) {

		if (this.fSlideshow) {
			clearInterval(this.fSlideshow);			
			this.fSlideshow = 0;
		} if (arguments.length > 0 && oId != this.fIndex) this.show(oId,this.fIndex);

	},

	show : function (oId,oCurrent) {

		this.fTransition = {total: 30,current: 0,fps : 30,src: this.oGallery[oCurrent],dst: this.oGallery[oId]};
		this.fTransition.dst.elem.style.left = this.sCfg.start+'px';
		this.fTransition.dst.elem.style.visibility = 'visible';
		this.fTransition.dst.elem.style.zIndex = 2;		
		if (this.fTransition.dst.current >=  this.fTransition.dst.pictures.length) this.fTransition.dst.current = 0;
		for (var i = 0; i < this.fTransition.dst.pictures.length; i++) this.fTransition.dst.pictures[i].style.display = i == this.fTransition.dst.current ? 'block' : 'none';
		if (this.fTransition.src.box) this.activateTab(this.fTransition.src.box,false);
		setTimeout("mBanner.transition()",this.fTransition.fps);
		this.fBuzy = true;
		this.fIndex = oId;

	},

	transition : function () {

		if (this.fTransition.current < this.fTransition.total) {
			var pos = Math.round(this.cubicInOut(this.fTransition.current,0,this.sCfg.size,this.fTransition.total));
			this.fTransition.src.elem.style.left = (this.sCfg.middle+pos)+'px';
			this.fTransition.dst.elem.style.left = (this.sCfg.start+pos)+'px';
			this.fTransition.current++;
			setTimeout("mBanner.transition()",this.fTransition.fps);
		} else {
			this.fTransition.dst.elem.style.left = this.sCfg.middle+'px';
			this.fTransition.src.elem.style.left = this.sCfg.end+'px';
			this.fTransition.src.elem.style.visibility = 'hidden';
			this.fTransition.dst.elem.style.zIndex = 1;
			if (this.fTransition.dst.box) mBanner.activateTab(this.fTransition.dst.box,true);
			this.fTransition.dst.current++;
			this.fBuzy = false;
		}

	},

	cubicInOut : function (t, b, c, d) {
		
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;

	},

	nSyb : function (oDiv,oTag,oClass) {

		var p = oDiv;
		do	{
			if (p.tagName && p.tagName.toLowerCase() == oTag) {
				if (oClass) {
					if (p.className == oClass) return p;
				} else {
					return p;
				}
			}
		} while (p = p.nextSibling);
		return false;

	}

}

var mClock = {

	items : null,
	update: 1000,
	state : false,
	sCount : 0,
	tDelay : 0,

	create : function (oDiv) {

		this.items = new Array();
		var limit = oDiv.childNodes.length;
		for (var i = 0; i < limit; i++) {
			this.items.push(this.elem(oDiv.childNodes[i]));
			this.sCount++;
		} if (this.items.length) this.play();

	},

	elem : function (oElem) {

		var oRef = {};
		oRef.id = this.sCount;
		oRef.map = document.getElementById('zoneMap');
		oRef.offset = Number(oElem.childNodes[1].innerHTML);
		oRef.elem = oElem.childNodes[1];
		oRef.elem.innerHTML = "";
		oRef.elem.style.visibility = 'visible';
		oRef.shader = oElem.parentNode.appendChild(document.createElement("div"));
		oRef.shader.className = oElem.className+'_shade';
		oRef.shader.innerHTML = '<img src="/img/timeactive.gif" width="50" height="44" alt="" />';
		if (oRef.map && (oRef.src = oElem.getAttribute("rel"))) {
			oRef.image = new Image();
			oRef.image.src = oRef.src;
			oElem.onmouseover = function (e) {
				if (mClock.tDelay) {
					clearTimeout(mClock.tDelay);
					for (var i = 0; i < mClock.items.length; i++) {
						if (oRef != mClock.items[i]) mClock.items[i].shader.style.visibility = 'hidden';
					} mClock.tDelay = 0;
				} oRef.map.src = oRef.src; oRef.shader.style.visibility = 'visible';
			}
			oElem.onmouseout = function (e) {
				var cBack = function () {
					oRef.map.src = oRef.map.getAttribute("rel");
					oRef.shader.style.visibility = 'hidden';
				}; mClock.tDelay = setTimeout(cBack,500);
			}
		} return oRef;

	},

	play : function () {

		var a,b,c;
		this.state = !this.state;
		for (var i = 0; i < this.items.length; i++) {
			a = new Date();
			b = a.getUTCHours();
			b += this.items[i].offset;
			if (b > 23) b = b - 24;
			if (b < 10) b = '&nbsp;'+b;
			c = a.getMinutes();
			if (c < 10) c = '0'+c;
			if (this.state) {
				this.items[i].elem.innerHTML = b+':'+c;
			} else {
				this.items[i].elem.innerHTML = b+'&nbsp;'+c;
			}
		} setTimeout("mClock.play()",this.update);
  
	}

}

function mbannerInitScripts () {

	if ((o = document.getElementById("mainBBlock"))) mBanner.create(o);
	if ((o = document.getElementById("timeTable"))) mClock.create(o);

}

if (window.addActiveHook) {
	addActiveHook(mbannerInitScripts);
} else {
	window.onload = mbannerInitScripts;
}