function initPage()
{
	initTabs();
	initBG()
	initNewsScroller();
	var gallery_1 = new fadeGallery($("gallery"), ".slides img", "div.game-title", {duration: 1000, autoplay: false});
}
function initBG()
{
	var fader = document.getElementById('fader');
	if(fader)
	{
		fader.style.height = document.documentElement.clientHeight  + 'px';
	}
}

function resize()
{
	initBG();
}

var duration = 5000;
var width = 16;
function initNewsScroller()
{
	$$(".scroller").each(function(el, i)
	{
		el.current = 0;
		el.sliderbox = el.getElement("ul");
		el.number = el.sliderbox.getElements("li").length;
		el.sliderbox.fx = new Fx.Morph(el.sliderbox, {duration: 400});
		setTimeout(function(){rotation(el)}, duration);
	});
}

function rotation(element)
{
	if(++element.current >= element.number)
		element.current = 0;

	setSlide(element);
	
	setTimeout(function(){rotation(element)}, duration);
}

function setSlide(element)
{
	element.sliderbox.fx.start({"margin-top": -element.current*width});
}

var fadeGallery = new Class(
{
	Implements: [Options],
	options: {
    	duration: 10000,
		autoplay: true,
		thumbnails: ".thumbs li a",
		prev_slide: ".btn-prev",
		next_slide: ".btn-next",
		pause: ".btn-pause",
		play: ".btn-play",
		thumbnails: ".thumbs li a"
	},
	initialize: function(gallery, fade, slide, options)
	{
		this.setOptions(options);
		this.gallery = gallery;
		this.slides = this.gallery.getElements(fade);
		this.titles = this.gallery.getElements(slide);
		this.slide_number = this.slides.length;
		this.tabs = this.gallery.getElements(this.options.thumbnails);
		this.current = 0;
		if(this.options.duration < 3000) this.options.duration = 3000;
		this.slides.setStyles({"opacity": 0})[0].setStyle("opacity", 1);
		this.titles.setStyles({"height": 0})[0].setStyle("height", 54);
		this.bound = { rotate: this.rotate.bind(this) }

		this.tabs.each(function(el, i)
		{
			el.addEvent('click', function(e)
			{
				if(this.current != i)
				{
					if(this.fx_close)
						this.fx_close.cancel();
					if(this.fx_open)
						this.fx_open.cancel();
					e.stop();
					this.options.autoplay = false;
					this.another = this.current;
					this.current = i;
					this.play();
				}
			}.bind(this));
		}.bind(this));

		if(this.options.autoplay) { this.timer = this.bound.rotate.delay(this.options.duration); }
	},
	play: function()
	{
		var prev = this.another;
		var next = this.current;
		var sl = this.slides;
		var tt = this.titles;
		var tb = this.tabs;
		
		this.fx_close = new Fx.Morph(tt[prev],
		{
			duration: 400,
			onComplete: function() { sl[prev].tween("opacity", 0); }	
		});
		
		this.fx_open = new Fx.Morph(sl[next],
		{
			duration: 700,
			onComplete: function()
			{
				tt.setStyle("height", 0);
				tt[next].tween("height", 54);
				tb.removeClass("active")[next].addClass("active");
			}	
		});
		
		this.fx_close.start({"height": 0});
        this.fx_open.start({"opacity": [0,1]});
	},
	rotate : function()
	{
		if(this.options.autoplay)
		{
			if(this.current == this.slide_number-1)
			{
				this.current = 0;
				this.another = this.slide_number-1;
			}
			else
			{
				this.another = this.current++;
			}
			this.play();
			this.timer = this.bound.rotate.delay(this.options.duration);
		}
	}
});
function initTabs()
{
	var index = 999;
	var sets = document.getElementsByTagName("ul");
	for (var i = 0; i < sets.length; i++)
	{
		if (sets[i].className.indexOf("tabset") != -1)
		{
			var tabs = [];
			tabs.prev_index = 0;
			var links = sets[i].getElementsByTagName("a");
			for (var j = 0; j < links.length; j++)
			{
				if (links[j].className.indexOf("tab") != -1)
				{
					links[j].parentNode.style.zIndex = --index;
					links[j].index = index;
					tabs.push(links[j]);
					links[j].tabs = tabs;
					var c = document.getElementById(links[j].href.substr(links[j].href.indexOf("#") + 1));

					//reset all tabs on start
					if (c) if (links[j].className.indexOf("active") != -1)
					{
						c.style.display = "block";
					}
					else c.style.display = "none";
					
					links[j].onclick = function ()
					{
						var c = document.getElementById(this.href.substr(this.href.indexOf("#") + 1));
						if (c)
						{
							for (var i = 0; i < this.tabs.length; i++)
							{
								document.getElementById(this.tabs[i].href.substr(this.tabs[i].href.indexOf("#") + 1)).style.display = "none";
								if(this.tabs[i].className != "active")
								{
									this.tabs[i].parentNode.style.zIndex = this.tabs[i].index;
								}
								this.tabs[i].className = this.tabs[i].className.replace("active", "");
							}
							this.className += " active";
							this.parentNode.style.zIndex = 9999;
							
							c.style.display = "block";
							initBG();
							return false;
						}
					}
				}
			}
		}
	}
}
if (window.addEventListener)
{
	window.addEventListener("load", initPage, false);
	window.addEventListener("resize", resize, false);
}
else if (window.attachEvent)
{
	window.attachEvent("onload", initPage);
	window.attachEvent("onresize", resize);
}
