function handleMove(element, dx, leftXLimit, rightXLimit)
{
	var xStart = element.getStyle('left').toInt();
	
	var xDest = xStart + dx;
	

	
	xDest = Math.min(xDest, rightXLimit);
	xDest = Math.max(xDest, leftXLimit);
	
	var nextStyle = 'block';
	if (xDest == leftXLimit) {
		nextStyle  = 'none';
	}
	$$('#screenshots .next img').setStyle('display', nextStyle);
	
	var prevStyle = 'block';
	if (xDest == rightXLimit) {
		prevStyle  = 'none';
	}
	$$('#screenshots .prev img').setStyle('display', prevStyle);
	
	element.lastDest = xDest;

	if(element.fx == null){
		element.fx = new Fx.Morph(element, {duration: 'normal', transition: Fx.Transitions.Sine.easeInOut});
	}
	element.fx.start({
	    'left': xDest
	});
}

window.addEvent('domready', function() {
	
	//Overlay functions. Add FadeIN/OUT later.
	$$('div.overlay').addEvents({
		show: function() {
			this.setStyle('display', 'block');
		},
		hide: function() {
			this.setStyle('display', 'none');
		}
	});
	
	//Close Buttons
	$$('div.overlay .closer').addEvent('click', function(event) {
		event.stop();
		this.getParent('div.overlay').fireEvent('hide');
	});
	
	//Signup Buttons
	$$('.signup_link').addEvent('click', function(event) {
		event.stop();
		$('signup_layer').fireEvent('show');
	});
	
	//Login Buttons
	$$('.login_link').addEvent('click', function(event) {
		event.stop();
		$('login_layer').fireEvent('show');
	});
	
	//Login Buttons
	$$('#screenshot_list li a').each(function(item, index){
		item.addEvent('click', function(event) {
			event.stop();
			galarie.show(index);
			$('screenshot_layer').fireEvent('show');
		});
	});

	
	if ($('screenshot_list')) {
		$('screenshot_list').addEvents({
			moveRight: function() {
				var windowSize = 300;
				var w = this.getStyle('width').toInt();
				var leftXLimit = windowSize - w;
				var rightXLimit = 0;
				handleMove(this, 98, leftXLimit, rightXLimit);
			},
			moveLeft: function() {
				var windowSize = 300;
				var w = this.getStyle('width').toInt();
				var leftXLimit = windowSize - w;
				var rightXLimit = 0;
				handleMove(this, -98, leftXLimit, rightXLimit);
			}
		});
		
	    $$('*.dynamic_img').addEvents({
	        'mouseenter': function() {
		        this.addClass('over');
	        },
	        'mouseleave': function() {
		        this.removeClass('over');
	        }
	    });
		
	    $$('*.dynamic_btn').addEvents({
	        'mouseenter': function() {
		        this.addClass('over');
	        },
	        'mouseleave': function() {
		        this.removeClass('over');
		        this.removeClass('clicked');
	        },
	        'mousedown': function() {
		        this.removeClass('over');
		        this.addClass('clicked');
	        },
	        'mouseup': function() {
		        this.removeClass('clicked');
		        this.addClass('over');
	        }
	    });
		
	    
	    $$('#screenshots .next').addEvent('click', function(e) {
	    		$('screenshot_list').fireEvent('moveLeft');    			
	    	});
	    $$('#screenshots .prev').addEvent('click', function(e) {
	    		$('screenshot_list').fireEvent('moveRight');    			
	    	});
	}
	
	t_minus();
	
});

Fx.Screenshots = new Class({

    Implements: [Events, Options],

    $current: 0,
    $length: 0,

    initialize: function(image, headline, comment, elements){
        var self = this;

        this.elements = elements;
        this.targetImg = $(image);
        this.targetHl = $(headline);
        this.targetDesc = $(comment);
        this.$length = this.elements.length;
    },

    showNext: function(){
        var index = this.$current + 1;
        if (index >= this.$length) index = 0;
        this.render(index);
    },

    showPrev: function(){
        var index = this.$current - 1;
        if (index < 0) index = this.$length - 1;
        this.render(index);
    },

    show: function(num){
        this.render(num);
        return this;
    },

    render: function(index){
        index = this.elements[index] != undefined ? index : 0;
        var elem = this.elements[index];
        this.targetImg.src = elem.img;
        this.targetHl.innerHTML = elem.hl;
        this.targetDesc.innerHTML = elem.desc;
        this.$current = index;
    }

});



function Popup(i, j, game_url)
{
	var layer = $('iframe_layer');
	
	$('frame_box').empty();
	$('frame_box').innerHTML = "<iframe frameborder=\"0\" id=\"Frame\" src=\"" + game_url + "manual.php?typ=" + i + "&s=" + j + "\" width=\"412\" height=\"440\" border=\"0\"></iframe>";
	
	$('iframe_layer').fireEvent('show');
	
	var windowSize = window.getSize();
	
	if (windowSize.x < 700 || windowSize.y < 700) {
		$$('#iframe_layer .overlay_content').setStyle('position', 'absolute');
		return true;
	} else {
		$$('#iframe_layer .overlay_content').setStyle('position', 'fixed');
		return false;
	} 
}

function t_minus()
{
	// Zeit wird herunter gezaehlt
	for (i = 1;; i++)
	{
		myElement = document.getElementById("timer" + i);
		if (myElement != null)
		{
			sek = t_format1(myElement) - 1;
			if (sek < 0)
			{
				setTimeout("document.location.reload()", 1000);
			}
			else
			{
				sek = t_format2(sek);
				myElement.innerHTML = sek;
			}
		}
		else
		{
			break;
		}
	}
	setTimeout("t_minus()", 1000);
}

function t_format1(myElement)
{
	// 00:01:30 wird zu 90s umformatiert
	p = myElement.innerHTML.split(":");
	sek = p[0] * 3600 + p[1] * 60 + p[2] * 1;
	return sek;
}

function t_format2(s)
{
	// 90s wird zu 00:01:30 umformatiert
	if (s > -1)
	{
		stunden = Math.floor(s / 3600);
		minuten = Math.floor(s / 60) % 60;
		sekunden = s % 60;
		t = stunden + ":";
		if (minuten < 10)
		{
			t += "0";
		}
		t += minuten + ":";
		if (sekunden < 10)
		{
			t += "0";
		}
		t += sekunden;
	}
	else
	{
		t = "0:00:0?";
	}
	return t;
}



function showLayer(layer)
{
	closeLayers();
	var layerName = layer+'_layer';
	$(layerName).fireEvent('show');
}

function closeLayers()
{
	$$('div.overlay').fireEvent('hide');
}
