/****************************************************************
	Seite: Javascripts							    			*
	Autor: Heinrich Muralt   									*
	Copyright © Heinrich Muralt 2008							*
	Function: visuelle effekte									*
																*
*****************************************************************/

function getPositionCenterLeft(div, plus){
	var x;

	if (self.innerHeight)
	{
		x = self.innerWidth;
	}else if (document.documentElement && document.documentElement.clientHeight)
	{
		x = document.documentElement.clientWidth;
	}else if (document.body)
	{	 
		x = document.body.clientWidth;	 
	}
	
	var left = (x/2)-(document.getElementById(div).offsetWidth/2);

	if(left < 0)
		left = 0;

	return Math.round(left);
}

function getPositionCenterTop(div, plus){
	var y;
	var scrollTop;

	if (self.innerHeight)
	{
		y = self.innerHeight;
	}else if (document.documentElement && document.documentElement.clientHeight)
	{
		y = document.documentElement.clientHeight;

	}else if (document.body)
	{	 
		y = document.body.clientHeight;
	}

	if(document.documentElement.scrollTop)
	{
		scrollTop = document.documentElement.scrollTop;
	}else if(document.body.scrollTop)
	{
		scrollTop = document.body.scrollTop;
	}
	
	if(scrollTop)
	{
		var top = (y/2)-(document.getElementById(div).offsetHeight/2)+scrollTop;
	}else
	{	
		var top = (y/2)-(document.getElementById(div).offsetHeight/2);
	}

	if(top <= 0)
		top = 15;
	
	return Math.round(top);
}

function getNodeValue(obj,tag)
{
	if(obj.getElementsByTagName(tag)[0].firstChild){
		return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
	}else{
		return false;
	}
}

function detectMacXFF() {
		var userAgent = navigator.userAgent.toLowerCase();
		if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
			 return true;
			}
	}

function setOpacity(object, value) {
	
	var d = detectMacXFF();
	if (!d)
	{
		object.style.MozOpacity = value/10;
		object.style.opacity = value/10;
		object.style.filter = 'alpha(opacity=' + value*10 + ')';
	}

}

var hTimer;
var intStep  = 1;
var intDelay = 1;
var startHeight = 0;
var startWidth = 0;

function showModalWinImg(divID, divWidth, divHeight)
{
	var div = $(divID);

	var left = getPositionCenterLeft('modalWinContainer');
	var top = getPositionCenterTop('modalWinContainer');
	$('modalWinClose').style.left = left + parseInt(div.style.width) - 44;
	$('modalWinClose').style.top = top;
	$('modalWinClose').style.visibility = 'visible';
	$('showContent').style.visibility = 'visible';

	//IE Spielfilter ausblenden
	if(typeof document.all=='object'){
		if($('gameListIframe')){
			$('gameListIframe').contentWindow.document.getElementById('filter').style.visibility = 'hidden';
		}

		$('imgBottomDivRight').style.visibility = 'hidden';
	}
	
}

function modalWin(result, width, height)
{
	var newDiv1 = document.createElement('div');
	newDiv1.id = "modalWinContainer";
	
	var newDiv2 = document.createElement('div');
	newDiv2.id = "showContent";

	var newDiv3 = document.createElement('div');
	newDiv3.id = "modalWinContent";

	newDiv2.appendChild(newDiv3);
	newDiv1.appendChild(newDiv2);
	document.body.appendChild(newDiv1);

	var modalWinContainer = $('modalWinContainer');

	$('modalWinContent').innerHTML = result;

	if(width == 0 && height == 0)
	{
		width = modalWinContainer.offsetWidth;
		height = modalWinContainer.offsetHeight;
	}

	var modalWinBg = $('modalWinBg');
	var d = detectMacXFF();
	if (d) {					
		modalWinBg.style.backgroundImage= 'url(images/grey.png)';
		modalWinBg.style.backgroundRepeat= 'repeat';
	} else {
		modalWinBg.style.backgroundColor = '#002040';
		modalWinBg.style.MozOpacity = .0;
		modalWinBg.style.opacity = .0;
		modalWinBg.style.filter = 'alpha(opacity=0)';
	}

	var winHeight = '';

	if (window.innerHeight) {
		winHeight = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		winHeight = document.body.scrollHeight;
	} else {
		winHeight = document.body.offsetHeight;
  	}

	modalWinBg.style.height = winHeight+'px';

	modalWinBg.style.visibility = 'visible';
	setOpacity(modalWinBg, 6);
	setOpacity($('blockFullDocument'), 5);
	
	
	modalWinContainer.style.height = height + "px";
	modalWinContainer.style.width = width + "px";
	var left = getPositionCenterLeft('modalWinContainer', 0);
	var top = getPositionCenterTop('modalWinContainer', 0);
	modalWinContainer.style.left = left;
	modalWinContainer.style.top = top;
	modalWinContainer.style.visibility = 'visible';
	
	startHeight = modalWinContainer.offsetHeight;
	startWidth = modalWinContainer.offsetWidth;
	showModalWinImg('modalWinContainer', $("showContent").offsetWidth, $("showContent").offsetHeight);
	
}

function hideModalWin(){

	document.body.removeChild($('modalWinContainer'));
	$('modalWinClose').style.visibility = 'hidden';
	$('modalWinBg').style.visibility = 'hidden';
	setOpacity($('modalWinBg'), 0);
	setOpacity($('blockFullDocument'), 100);

	if(typeof document.all=='object'){
		if($('gameListIframe')){
			$('gameListIframe').contentWindow.document.getElementById('filter').style.visibility = 'visible';
		}
		$('imgBottomDivRight').style.visibility = 'visible';
	}

}

function imgWin(link, width, height){
	var result = '<img src="'+link+'" width="'+width+'" height="'+height+'" alt="">';
	modalWin(result, width, height);
}

function setLogin(){
	var result = '<iframe width="220" height="120" frameborder="0" marginheight="20" marginwidth="0" scrolling="no" src="login.php"></iframe>';
	modalWin(result, 220, 120);
}

function showGameDetails(id){
	
	new Ajax.Request('gameDetails.php',
	{
		method:'post',
		parameters: {
			requestSort: 'getGame',
			id: id
		},
		onSuccess: function(transport) {
			var response = transport.responseXML;
			var attributes = $A(response.getElementsByTagName('game'));
			var attributesCont = '';
			if(getNodeValue(attributes[0],'imageName'))
			{
				var imageName = getNodeValue(attributes[0],'imageName');
				attributesCont += '<div id="gameImg"><img src="contentImgs/gameImgs/'+imageName+'" alt=""></div>';
			}else{
				attributesCont += '<div id="gameImg"><img src="contentImgs/gameImgs/default.gif" alt=""></div>';
			}
		
			attributesCont += '<div id="rightDetails">';
			if(getNodeValue(attributes[0],'gameNr'))
			{
				var gameNr = getNodeValue(attributes[0],'gameNr');
				if(gameNr == '0')
				{
					attributesCont += '<div class="detailsTitle">Spielnummer:</div><div class="detailsVar">&nbsp;</div><div class="stopLeft"></div>';
				}else{
					attributesCont += '<div class="detailsTitle">Spielnummer:</div><div class="detailsVar">'+gameNr+'</div><div class="stopLeft"></div>';
				}
			}
			if(getNodeValue(attributes[0],'gameName'))
			{
				var gameName = getNodeValue(attributes[0],'gameName');
				if(gameName == '-')
				{
					attributesCont += '<div class="detailsTitle">Bezeichnung:</div><div class="detailsVar">&nbsp;</div><div class="stopLeft"></div>';
				}else{
					attributesCont += '<div class="detailsTitle">Bezeichnung:</div><div class="detailsVar">'+gameName+'</div><div class="stopLeft"></div>';
				}
			}
			if(getNodeValue(attributes[0],'gameCategory'))
			{
				var gameCategory = getNodeValue(attributes[0],'gameCategory');
				attributesCont += '<div class="detailsTitle">Kategorie:</div><div class="detailsVar">'+gameCategory+'</div><div class="stopLeft"></div>';
			}
			if(getNodeValue(attributes[0],'ages'))
			{
				var ages = getNodeValue(attributes[0],'ages');
				if(ages == '0-0'){
					attributesCont += '<div class="detailsTitle">Alter:</div><div class="detailsVar">&nbsp;</div><div class="stopLeft"></div>';
				}else{
					attributesCont += '<div class="detailsTitle">Alter:</div><div class="detailsVar">'+ages+'</div><div class="stopLeft"></div>';
				}
			}
			if(getNodeValue(attributes[0],'players'))
			{
				var players = getNodeValue(attributes[0],'players');
				if(players == '0-0'){
					attributesCont += '<div class="detailsTitle">Anzahl Spieler:</div><div class="detailsVar">&nbsp;</div><div class="stopLeft"></div>';
				}else{
					attributesCont += '<div class="detailsTitle">Anzahl Spieler:</div><div class="detailsVar">'+players+'</div><div class="stopLeft"></div>';
				}
				
			}
			if(getNodeValue(attributes[0],'gameTime'))
			{
				var gameTime = getNodeValue(attributes[0],'gameTime');
				if(gameTime == '0'){
					attributesCont += '<div class="detailsTitle">Spielzeit:</div><div class="detailsVar">&nbsp;</div><div class="stopLeft"></div>';
				}else{
					attributesCont += '<div class="detailsTitle">Spielzeit:</div><div class="detailsVar">'+gameTime+' min.</div><div class="stopLeft"></div>';
				}
			}
			if(getNodeValue(attributes[0],'costs'))
			{
				var costs = getNodeValue(attributes[0],'costs');
				if(costs == '0.00'){
					attributesCont += '<div class="detailsTitle">Spielgebühr:</div><div class="detailsVar">&nbsp;</div><div class="stopLeft"></div>';
				}else{
					attributesCont += '<div class="detailsTitle">Spielgebühr:</div><div class="detailsVar">SFr. '+costs+'</div><div class="stopLeft"></div>';
				}
			}
	
			if(isAdmin)
			{
				var gameId = getNodeValue(attributes[0],'gameId');
				attributesCont += '<div class="spacer10">&nbsp;</div><div class="editElement"><a href="javascript:hideModalWin();changeGame('+gameId+');">Spiel ändern</a></div><div class="editElement"><a href="javascript:deleteGame('+gameId+', \'wantDelete\');">Spiel löschen</a></div>';
			}


			attributesCont += '</div><div class="stopLeft">&nbsp;</div><div class="spacer5">&nbsp;</div>';

			modalWin(attributesCont, 0,0);

		},
		onFailure: function(){ 
			//Fehlermeldung
			alert('Fehler bei Ajax Request') ;
		}
	 });
}