var USER_AGENT = navigator.userAgent.toLowerCase();
var IS_OPERA = (USER_AGENT.indexOf('opera') != -1);
var IS_SAFARI = ((USER_AGENT.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
var IS_IE = ((USER_AGENT.indexOf('msie') != -1) && !IS_OPERA && !IS_SAFARI);
var IS_IE7 = false;
var IS_IE6 = false;
if (IS_IE) {
    if (!IS_OPERA && window.XMLHttpRequest) IS_IE7 = true;
    else IS_IE6 = true;
}
var IS_MOZILLA = ((navigator.product == 'Gecko') && !IS_SAFARI);
var IS_KONQUEROR = (USER_AGENT.indexOf('konqueror') != -1);


/* WindowOnLoad Object */
windowOnLoad = new Object();
windowOnLoad.func = new Array();
windowOnLoad.add = function(str) {
	this.func.push(str);
}
windowOnLoad.exec = function() {
	for(var i = 0; i < this.func.length; i++) {
		window.setTimeout(this.func[i], 0);
	}
}

window.onload = function() {
	windowOnLoad.exec();
}

/* Use this to add a function to windows onload */
windowOnLoad.add("Index.init()");

var hider;

var Index = {
	init: function() {
		this.quickSearchHandler();

		if(document.quickLogin) {
			this.quickLoginHandler();
		}
		if($('leftGameLink')){
			var pos = $('all').cumulativeOffset();
			var dim = $('all').getDimensions();
			var vDim = document.viewport.getDimensions();
			$('leftGameLink').style.width =pos[0]+8+"px";
			$('rightGameLink').style.width = vDim['width'] - ($('leftGameLink').getWidth()+dim['width'])+17+"px";
			$('rightGameLink').style.left =pos[0]+dim['width']-10+"px";
		}

		if($('loadSpeedGames')){
		  document.TeasergameLogin.submit();
		}
	},

	/** close custom message box **/
	closeCustomLayer: function(divLayerId) {
	    $(divLayerId).addClassName('hidden');
	    if(IS_IE6){
			$('selectShowStopper').addClassName('hidden');
		}
	},

	/** open successlayer **/
	showSuccessLayer: function(text) {
	    if(text) $('successText').update(text);
	    InfoLayer.show('successLayer');
	},

	/** open errorlayer **/
	openErrorLayer: function(text) {
		    if(text) $('errorTextReg').innerHTML = '<p class="redDotTop">'+text+'</p>';
		    if ($('errorLayerStyle').hasClassName('hidden')) $('errorLayerStyle').removeClassName('hidden');
		    Index.posErrorLayerStyle();
	},

	openErrorRegLayer: function(text) {
		    if(text) $('errorText').innerHTML = '<p class="redDotTop">'+text+'</p>';
		    if ($('errorLayer').hasClassName('hidden')) $('errorLayer').removeClassName('hidden');
	},

	posErrorLayerStyle: function(){
   	    $('coreg_error_left').style.height = $('errorTextReg').getHeight() + "px";
	    $('coreg_error_right').style.height = $('errorTextReg').getHeight() + "px";
	    //Positioning
	    var vDim = document.viewport.getDimensions();
	    var pos = document.viewport.getScrollOffsets();
	    var lDim = $('errorLayerStyle').getDimensions();
	    $('errorLayerStyle').style.top = 200 + pos.top + "px";
	    $('errorLayerStyle').style.left = vDim.width/2 - lDim.width/2 + 'px';
	    if(IS_IE6){
            $$('select').each(function(n) {
                n.addClassName('invisible');
            });
	    }
	},

	openErrorLayerReg: function(text, divLayer) {
	    if(text) $('errorTextReg').innerHTML = '<p class="redDotTop">'+text+'</p>';
	    if ($('errorLayerStyle').hasClassName('hidden')) $('errorLayerStyle').removeClassName('hidden');
	    $('coreg_error_left').style.height = $('errorTextReg').getHeight() + "px";
	    $('coreg_error_right').style.height = $('errorTextReg').getHeight() + "px";
	    //Positioning
	    var vDim = document.viewport.getDimensions();
	    var pos = $(divLayer).cumulativeOffset();
	    var lDim = $(divLayer).getDimensions();
	    $('errorLayerStyle').style.top = pos.top - 50 + 'px';
	    $('errorLayerStyle').style.left = pos.left + (lDim.width / 2) - 115 + 'px';
	},

	open_loginDataLayer: function(divLayer) {
	    if ($('lb_loginDataLayer').hasClassName('hidden')) $('lb_loginDataLayer').removeClassName('hidden');
	    $('lb_loginDataLayer_left').style.height = $('lb_loginDataLayer_content').getHeight() + "px";
	    $('lb_loginDataLayer_right').style.height = $('lb_loginDataLayer_content').getHeight() + "px";
	    //Positioning
	    var vDim = document.viewport.getDimensions();
	    var pos = $(divLayer).cumulativeOffset();
	    var lDim = $(divLayer).getDimensions();
	    $('lb_loginDataLayer').style.top = pos.top - 50 + 'px';
	    $('lb_loginDataLayer').style.left = pos.left + (lDim.width / 2) - 115 + 'px';
	},

	closeErrorLayerReg: function() {
	    if ($('errorLayerStyle')) {
	        if (!$('errorLayerStyle').hasClassName('hidden')) {
	            $('errorLayerStyle').addClassName('hidden');
	            $$('select').each(function(n) {
    	           n.removeClassName('invisible');
	            });
	        }
	    }
	    if(IS_IE6){
            $$('select').each(function(n) {
                n.removeClassName('invisible');
            });
	    }
	},

	posInfoLayer: function(){
        if ($('infoLayerStyle').hasClassName('hidden')) $('infoLayerStyle').removeClassName('hidden');
   	    $('coreg_info_left').style.height = $('infoTextReg').getHeight() + "px";
	    $('coreg_info_right').style.height = $('infoTextReg').getHeight() + "px";
	    //Positioning
	    var vDim = document.viewport.getDimensions();
	    //var pos = $(divLayer).cumulativeOffset();
	    var lDim = $('infoLayerStyle').getDimensions();
	    $('infoLayerStyle').style.top = 200 + "px";
	    $('infoLayerStyle').style.left = vDim.width/2 - lDim.width/2 + 'px';
	    if(IS_IE6){
            $$('select').each(function(n) {
                n.addClassName('invisible');
            });
	    }
	},

	closeInfoLayer: function() {
        if ($('infoLayerStyle')) {
            if (!$('infoLayerStyle').hasClassName('hidden')) {
                $('infoLayerStyle').addClassName('hidden');
                $$('select').each(function(n) {
    	           n.removeClassName('invisible');
                });
            }
	    }
	    if(IS_IE6){
            $$('select').each(function(n) {
                n.removeClassName('invisible');
            });
        }
	},

	/** close errorlayer  **/
	closeErrorLayer: function() {
	    if ($('errorLayer')) {
	        if (!$('errorLayer').hasClassName('hidden')) {
	            $('errorLayer').addClassName('hidden');
	            $$('select').each(function(n) {
    	           n.removeClassName('invisible');
	            });
	        }
	    }
	},

	showLoadingLayer: function(alignLayer){
	  var pos = $(alignLayer).cumulativeOffset();
	  var dim = $(alignLayer).getDimensions();
	  $('loadingLayer').style.top = pos.top + (dim.height/2) - 50 + "px";
	  $('loadingLayer').style.left = pos.left + (dim.width/2) - 50 + "px";
	  $('loadingLayer').removeClassName('hidden');
	},

	getLanguageText: function (path,element,mode) {
		new Ajax.Request("/ajax/getLanguageText.php", {
	    	postBody: "path="+path,
	    	onSuccess: function(r) {
	    		var success = r.responseText;
	    			if(mode=='value'){
	    				$(element).value= success;
	    			}else if(mode=='div'){
	    				$(element).update(success);
	    			}
	    	}
	    });
	},

	signUpSubmit: function (){
	    // signUp on gameDetails page
	    if($('gameLogin') != null) {
	        var elm = $('gameLogin').gameID.tagName;
	        // game has instances
	        if(elm == 'SELECT') {
	            var instanceID = $('gameLogin').gameID.value;

    	        var hiddenField = document.createElement("input");
    	        hiddenField.setAttribute("type", "hidden");
    	        hiddenField.setAttribute("name", "chosenInstance");
    	        hiddenField.setAttribute("value", instanceID);

    	        $('signUpForm').appendChild(hiddenField);
	        }
	    }

        Index.checkWinnings($('province').value);
	},


	checkQuickLogin: function() {
		if ($('username').value.empty() && $('password').value.empty()){
			return false;
		}else{
			return true;
		}
	},

	quickSearchHandler: function() {
		var field = document.quickSearch.searchTerm;

		field.onfocus = function() {
			if(field.value == glob.searchTerm) {
				field.value = '';
			}
		}

		field.onblur = function() {
			if(field.value.empty()) {
				field.value = glob.searchTerm;
			}
		}
	},

	showUserInfoShort: function(memberID){
        var userpic_dim = $('userpic_'+memberID).getDimensions();
        var userpic_offset = $('userpic_'+memberID).cumulativeOffset();
        $('shortUserInfoLayer_'+memberID).removeClassName('hidden');
        $('shortUserInfoLayer_'+memberID).style.left = userpic_offset.left + (userpic_dim.width / 2) -50 + 'px';
        $('shortUserInfoLayer_'+memberID).style.top = userpic_offset.top - $('shortUserInfoLayer_'+memberID).getHeight() + 2 + 'px';
	},

	initResendPassword: function () {
		if($('neededData').hasClassName('hidden')){
			$('neededData').removeClassName('hidden');
		}
		if(!$('neededDataResponse').hasClassName('hidden')){
			$('neededDataResponse').addClassName('hidden');
		}
		if($('sendLoginData').hasClassName('hidden')){
			$('sendLoginData').removeClassName('hidden');
		}
	},

	resendPassword: function () {
		var loginData = $('loginData').value;
		Index.getLanguageText('bp.common.waiting','sendLoginData','value');
		new Ajax.Request("/ajax/resendPassword.php", {
	    	postBody: "loginData="+loginData,
	    	onSuccess: function(r) {
	    		var success = r.responseText;
	    			$('neededData').addClassName('hidden');
	    			$('neededDataResponse').removeClassName('hidden');
	    			$('neededDataResponse').update(success);

	    			$('sendLoginData').addClassName('hidden');
	    			Index.getLanguageText('bp.signUp.pwBox.getPWLink','sendLoginData','value');
	    	}
	    });
	},

	lb_resendPassword: function () {
		var loginData = $('lb_loginData').value;
		var orgWidth = $('lb_loginDataLayer_content').getHeight();
		Index.getLanguageText('bp.common.waiting','lb_sendLoginData','value');
		new Ajax.Request("/ajax/resendPassword.php", {
	    	postBody: "loginData="+loginData,
	    	onSuccess: function(r) {
	    		var success = r.responseText;
	    			$('lb_neededData').update(success);
	    			$('lb_sendLoginData').remove();
	    			Index.getLanguageText('bp.signUp.pwBox.getPWLink','lb_sendLoginData','value');
	    			$('lb_loginDataLayer_content').style.height = orgWidth - 5 + "px";
	    	}
	    });
	},

	sendFriendInvite: function (memberID) {
	    var inviteText = $('inviteText').value;
		new Ajax.Request("/ajax/misc.php", {
	    	postBody: "action=friendInvite&memberID="+memberID+"&inviteText="+inviteText,
	    	onSuccess: function(r) {
	    		var obj = r.responseText.evalJSON();
	    			if(obj.result != 'OK'){
	    			    $('inviteText').value = '';
	    			    $('termCounter').value = 160;
	    			    Index.openErrorLayer(obj.layerText);
	    			    Index.hide('inviteUserLayer');
	    			}else{
    			       $('inviteText').value = '';
	    			   $('termCounter').value = 160;
	    			   $('successText').innerHTML = '<p>' + obj.layerText + '</p>';
	    			   InfoLayer.show('successLayer');
	    			   Index.hide('inviteUserLayer');
	    			}
	    	}
	    });
	},

	countString: function (fieldID, termination, update){
	    var value = $(fieldID).value;
        if (value.length >= termination){
            $(fieldID).value = $(fieldID).value.substring(0, termination);
        }
        if($(update)){
            $(update).value = termination -  value.length;
            if ($(update).value < 0){
                $(update).value = 0;
            }
        }
	},

	trySaveBlogUser: function () {
        var firstnameBlog = $('firstnameBlog').value;
        var lastnameBlog = $('lastnameBlog').value;
        var emailBlog = $('emailBlog').value;
        var blogurlBlog = $('blogurlBlog').value;
        var blogtxtBlog = $('blogtxtBlog').value;
        new Ajax.Request("/ajax/blogSpecial.php", {
	    	postBody: "saveBlog="+1+"&firstnameBlog="+firstnameBlog+"&lastnameBlog="+lastnameBlog+"&emailBlog="+emailBlog+"&blogurlBlog="+blogurlBlog+"&blogtxtBlog="+blogtxtBlog,
	    	onSuccess: function(r) {
    		  var obj = r.responseText.evalJSON();
    		     if(obj.result == 'ok'){
                    Index.showSuccessLayer(obj.text);
    		     }else{
                    Index.openErrorLayer(obj.error);
    		     }
	    	}
    	});
	},

    tryRegistration: function () {
	    var speedgames = $('speedgames').value;
	    var signUpUsername = $('signUpUsername').value;
        var password = $('signUppassword').value;
        var passwordRepeat = $('passwordRepeat').value;
        var email = $('email').value;
        var country = $('countrySelect').value;
        var province = '';
        var birthdayYear = $$('select[name="birthday[Year]"]')[0].value;
        var birthdayMonth = $$('select[name="birthday[Month]"]')[0].value;
        var birthdayDay = $$('select[name="birthday[Day]"]')[0].value;
        var speedgameParamID = $('paramID').value;
        var speedgamesGameID = $('speedgamesGameID').value;
        if (speedgameParamID.length > 0){
               var directgame = "&paramID=" + speedgameParamID;
        }
        var sex = '';
        $$('input[name="sex"]').each(function(n) {if(n.checked == true) sex = n.value});
        var termsAndCondition = 0;
        if ($('termsAndCondition').checked == true) termsAndCondition = 1;
        var speedgameTerms = 0;
        if ($('speedgameTerms').checked == true) speedgameTerms = 1;
        var receiveNewsletter = 0;
        if ($('receiveNewsletter').checked == true) receiveNewsletter = 1;
		Index.showLoadingLayer('lightbox_Registration');
		new Ajax.Request("/ajax/lightboxRegistration.php", {
	    	postBody: "signUp="+1+"&signUpUsername="+signUpUsername+"&password="+password+"&passwordRepeat="+passwordRepeat+"&email="+email+"&country="+country+"&province="+province+"&birthdayYear="+birthdayYear+"&birthdayMonth="+birthdayMonth+"&birthdayDay="+birthdayDay+"&sex="+sex+"&termsAndCondition="+termsAndCondition+"&speedgameTerms="+speedgameTerms+"&receiveNewsletter="+receiveNewsletter+"&speedgames="+speedgames+"&speedgamesGameID="+speedgamesGameID,
	    	onSuccess: function(r) {
    		  var obj = r.responseText.evalJSON();
    		     if(obj.result == 'ok'){
    		         location.href = '/' + obj.action + '/?username=' +obj.username+'&password='+obj.password+'&speedgames=1' + directgame;
        	     }else if(obj.result == 'failed'){
        	         var x;
        	         var errorText = '';
        	         for(x in obj.error){
        	             errorText = errorText + '<p class="redDotTop">'+obj.error[x]+'</p><br />';
        	             //Mark errorfields
        	             switch (x) {
        	                 case 'username' : $('signUpUsername').addClassName('input_error');
        	                                   break;
        	                 case 'password' : $('signUppassword').addClassName('input_error');
        	                                   $('passwordRepeat').addClassName('input_error');
        	                                   break;
                             case 'email'    : $('email').addClassName('input_error');
                                               break;
        	             }
        	         }
        	         $$('select').each(function(n) {
    	               n.addClassName('invisible');
	                 });
        	         Index.openErrorLayerReg(errorText,'lightbox_Registration');
        	     }
        	     Index.hide('loadingLayer');
	    	}
	    });
	},

	tryLogin: function () {
	    var speedgames = $('speedgames').value;
	    var username = $('lb_username').value;
        var password = $('lb_password').value;
		Index.showLoadingLayer('lightbox_Registration');
		new Ajax.Request("/ajax/lightboxLogin.php", {
	    	postBody: "username="+username+"&password="+password+"&speedgames="+speedgames,
	    	onSuccess: function(r) {
    		  var obj = r.responseText.evalJSON();
    		     if(obj.result == 'ok'){
    		         location.href = obj.action;
    		     }else if(obj.result == 'failed'){
        	         var x;
        	         var errorText = '';
        	         for(x in obj.error){
        	             errorText = errorText + '<p class="redDotTop">'+obj.error[x]+'</p><br />';
        	             //Mark errorfields
    	                 $('lb_username').addClassName('input_error');
                         $('lb_password').addClassName('input_error');
        	         }
        	         Index.openErrorLayerReg(errorText,'lightbox_Registration');
        	     }
        	     Index.hide('loadingLayer');
	    	}
	    });
	},

	removeInputError: function(fieldID){
	    if(fieldID != null){
    	    if($(fieldID).hasClassName('input_error')){
    	       $(fieldID).removeClassName('input_error');
    	    }
	    }else{
	      $$('input').each(function(n) {
	          if(n.hasClassName('input_error')){
    	          n.removeClassName('input_error');
	          }
    	   });
	    }
	},

	checkQuickSearch: function() {
		var field = document.quickSearch.searchTerm;
		if(field.value == glob.searchTerm || field.value.empty()) {
			return false;
		}

		return true;
	},

	quickLoginHandler: function() {
		var fieldUser = document.quickLogin.username;
		var fieldPW = document.quickLogin.password;

		fieldUser.onfocus = function() {
			if(fieldUser.value == glob.userName) fieldUser.value = '';
		}
		fieldPW.onfocus = function() {
			if(fieldPW.value == glob.passWord) fieldPW.value = '';
		}

		fieldUser.onblur = function() {
			if(fieldUser.value.empty()) fieldUser.value = glob.userName;
		}
		fieldPW.onblur = function() {
			if(fieldPW.value.empty()) fieldPW.value = glob.passWord;
		}
	},


	HoverMyNav: function(img, node) {
		var chgNode = $(node);
		var img = "/skins/default/global/cockpit/" + img;
		chgNode.style.backgroundImage = "url(" + img + ")";
	},


	showMyGamesChooser: function() {
		var node = $('MyGamesChooser');
		if(node.hasClassName('hidden')) {
			node.removeClassName('hidden');
		}
		else {
			node.addClassName('hidden');
		}
	},

	hideMyGamesChooser: function() {
		var node = $('MyGamesChooser');
		if(!node.hasClassName('hidden')) {
			hider = window.setInterval('Index.startHideMyGames()', 1000);
		}

		return true;
	},

	startHideMyGames: function() {
		$('MyGamesChooser').addClassName('hidden');
		window.clearInterval(hider);
	},
	stopHideMyGames: function() {
		window.clearInterval(hider);
	},

	showLangChooser: function() {
		var node = $('langChooser');
		if(node.hasClassName('hidden')) {
			node.removeClassName('hidden');
		}
		else {
			node.addClassName('hidden');
		}
	},

	hideLangChooser: function() {
		var node = $('langChooser');
		if(!node.hasClassName('hidden')) {
			hider = window.setInterval('Index.startHideLang()', 1000);
		}

		return true;
	},

	startHideLang: function() {
		$('langChooser').addClassName('hidden');
		window.clearInterval(hider);
	},

	stopHideLang: function() {
		window.clearInterval(hider);
	},

	showPageShadow: function() {
	   if(!$('noInvisble')){
    	   $$('select').each(function(n) {
    	      n.addClassName('invisible');
    	   });
	   }
	   $('shadowLayer').removeClassName('hidden');
	   this.resizePageShadow();
	},

	showPageMilkyShadow: function() {
	   if(!$('noInvisble')){
    	   $$('select').each(function(n) {
    	      n.addClassName('invisible');
    	   });
	   }
	   $('milkyLayer').removeClassName('hidden');
	   this.resizePageMilkyShadow();
	},

	resizePageShadow: function() {
	    var vDim = document.viewport.getDimensions();
	    var bDim = $$('body')[0].getDimensions();
	    var scl = document.viewport.getScrollOffsets();

	    var sHeight = vDim.height < bDim.height ? bDim.height : vDim.height + scl.top;
	    var sWidth = vDim.width;

	    $('shadowLayer').style.height = sHeight + "px";
	    $('shadowLayer').style.width = sWidth + "px";
	},

	resizePageMilkyShadow: function() {
	    var vDim = document.viewport.getDimensions();
	    var bDim = $$('body')[0].getDimensions();
	    var scl = document.viewport.getScrollOffsets();

	    var sHeight = vDim.height < bDim.height ? bDim.height : vDim.height + scl.top;
	    var sWidth = vDim.width;

	    $('milkyLayer').style.height = sHeight + "px";
	    $('milkyLayer').style.width = sWidth + "px";
	},

	hidePageShadow: function() {
	   $$('select').each(function(n) {
	      n.removeClassName('invisible');
	   });

	    $('shadowLayer').addClassName('hidden');
	},

	hidePageMilkyShadow: function() {
	   $$('select').each(function(n) {
	      n.removeClassName('invisible');
	   });

	    $('milkyLayer').addClassName('hidden');
	},

	loadProvinces: function(country, sField) {
	    new Ajax.Request("/ajax/getProvinces.php", {
	        postBody: "&country=" + country,

	        onSuccess: function(r) {
	            var obj = r.responseText.evalJSON();

	            $(sField).update();
	            var opt = document.createElement('option');
                Element.extend(opt);
                opt.setAttribute("value", "-");

                var optTxt = document.createTextNode("-");
                opt.appendChild(optTxt);

                $(sField).appendChild(opt);

	            if(obj.result != 'OK') return false;

	            for(var i in obj.provinces) {
	               var opt = document.createElement('option');
	               Element.extend(opt);
	               opt.setAttribute("value", i);

	               var optTxt = document.createTextNode(obj.provinces[i]);
	               opt.appendChild(optTxt);

	               $(sField).appendChild(opt);
	            }
	        }
	    })
	},

	switchUserStats: function(gameID, id) {
	    $$('.userStats_' + gameID).each(function(el) {
	        if (!el.hasClassName('hidden')) el.addClassName('hidden');
	    });
	    $('userStat_' + id).removeClassName('hidden');

	    $('loginForm_' + gameID).action = "/index.es?action=gameLogin&gameID=" + id;
	},

	checkWinnings: function(province) {
	    if(province == ''){
	        province = 0;
	    }
	    new Ajax.Request("/ajax/checkWinnings.php", {
	        postBody: "&province=" + province,
	        onSuccess: function(r) {
	            var obj = r.responseText.evalJSON();
	            if(obj.result == 'OK' && obj.noWinnings == false){
       	            $('winnings').checked = true;
    	            $('winnings').value = 1;
    	            $('winnings').checked = true;
    	            /*disable the registration button*/
                    $('registrationButton').onclick = '';
    	            $('signUpForm').submit();
	            }else{
	                if($('chkwinn').checked){
	                	/*disable the registration button*/
                   		$('registrationButton').onclick = '';
	                    $('signUpForm').submit();
	                    return false;
	                }else{
                        Index.posInfoLayer();
        	            $('winnings').checked = false;
        	            $('winnings').value = 0;
	                }
	            }

	        }
	    })
	},

	updateWinnings: function() {
	    if($('chkwinn').checked == 1){
	       $('winnings').value = 1;
	       $('winnings').checked = true;
	    }
	},

    openmoreInfo: function(showPage, headerText) {
        Index.showPageShadow();
        Event.observe(document, "keypress", Index.moreInfokillByESC);
        $('moreInfoLayerText').update($('moreInfoText').innerHTML);
        $('moreInfoHeaderText').update(headerText + ' '+ showPage);
		$('moreInfoLayer').removeClassName('hidden');
		Index.setmoreInfoPosition('moreInfoLayer');
    },

    moreInfokillByESC: function(e) {
        if(e.keyCode == 27) {
            Index.hidemoreInfoScreen();
        }
    },

    setmoreInfoPosition: function(posBy) {
        var dim = $(posBy).getDimensions();
        var scl = document.viewport.getDimensions();
        var sDim = $('shadowLayer').getDimensions();
        var scl2 = document.viewport.getScrollOffsets();
        $(posBy).style.left = (sDim.width / 2) - (dim.width / 2) + "px";
        $(posBy).style.top = (scl.height / 2) - (dim.height / 2) + scl2.top + "px";

        //set dimensions of border
        var textDim = $('moreInfoLayerText').getDimensions();
        $('moreInfoTextLeft').style.height = textDim['height'] + 18 + 'px';
        $('moreInfoTextRight').style.height = textDim['height'] + 18 + 'px';
    },

    hidemoreInfoScreen: function() {
        $('moreInfoLayer').addClassName("hidden");
        Index.hidePageShadow();
        Event.stopObserving(document, "keypress", Index.moreInfokillByESC);
    },

    showLightboxRegistration: function(){
        Index.showPageShadow();
        Event.observe(document, "keypress", Index.lightboxRegistrationkillByESC);
        $('lightbox_Registration').removeClassName('hidden');
        Index.lightboxRegistrationPosition('lightbox_Registration');

    },

    showUserBlogLightBox: function() {
        $('userBlogLightBox').removeClassName("hidden");
         //Positioning
	    var vDim = document.viewport.getDimensions();
	    var pos = document.viewport.getScrollOffsets();
	    var lDim = $('userBlogLightBox').getDimensions();
	    $('userBlogLightBox').style.top = 200 + pos.top + "px";
	    $('userBlogLightBox').style.left = vDim.width/2 - lDim.width/2 + 'px';
        Index.showPageShadow();
        Event.observe(document, "keypress", Index.UserBlogLightBoxkillByESC);
    },

    hideUserBlogLightBox: function() {
        $('userBlogLightBox').addClassName("hidden");
        Index.hidePageShadow();
        Event.stopObserving(document, "keypress", Index.UserBlogLightBoxkillByESC);
    },

    UserBlogLightBoxkillByESC: function(e) {
        if(e.keyCode == 27) {
            Index.hideUserBlogLightBox();
        }
    },


    lightboxRegistrationkillByESC: function(e) {
        if(e.keyCode == 27) {
            Index.hideLightboxRegistration();
        }
    },

    lightboxRegistrationPosition: function(posBy) {
        var dim = $(posBy).getDimensions();
        var scl = document.viewport.getDimensions();
        var sDim = $('shadowLayer').getDimensions();
        var scl2 = document.viewport.getScrollOffsets();
        $(posBy).style.left = (sDim.width / 2) - (dim.width / 2) + "px";
        $(posBy).style.top = (scl.height / 2) - (dim.height / 2) + scl2.top + "px";
    },

    switchLightbox: function(){
        if ($('lightbox_Login').hasClassName('hidden')){
            $('lightbox_Login').removeClassName('hidden');
            $('lightbox_Register').addClassName('hidden');
        }else{
            $('lightbox_Register').removeClassName('hidden');
            $('lightbox_Login').addClassName('hidden');
        }
    },

    hideLightboxRegistration: function() {
        $('lightbox_Registration').addClassName("hidden");
        Index.hidePageShadow();
        Event.stopObserving(document, "keypress", Index.moreInfokillByESC);
    },

	openPopUp: function(url) {
	    window.open(url);
	},

	hide: function(layerID) {
		$(layerID).addClassName('hidden');
	},

	show: function(layerID) {
		$(layerID).removeClassName('hidden');
	},

	showIngameOverlay: function(img_ID) {
	   var pos = $('ingameVideo_'+img_ID).cumulativeOffset();
	   $('ingameVideo_overlay_'+img_ID).removeClassName('hidden');
	   $('ingameVideo_overlay_'+img_ID).style.top = pos.top + "px";
	   $('ingameVideo_overlay_'+img_ID).style.left = pos.left + "px";
	},

	showTrailerOverlay: function(img_ID) {
	   var pos = $('trailerVideo_'+img_ID).cumulativeOffset();
	   $('trailerVideo_overlay_'+img_ID).removeClassName('hidden');
	   $('trailerVideo_overlay_'+img_ID).style.top = pos.top + 3 + "px";
	   $('trailerVideo_overlay_'+img_ID).style.left = pos.left + "px";
	},

	showMGOverlay: function(gameID, layerID){
	   var pos = $(layerID+gameID).cumulativeOffset();
	   $(layerID+'btn_'+gameID).style.left = pos.left + "px";
	   $(layerID+'btn_'+gameID).style.top = pos.top + "px";
	   if($(layerID+'btn_'+gameID).hasClassName('hidden')){
	       $(layerID+'btn_'+gameID).removeClassName('hidden');
	   }
	},

	showMGLBOverlay: function(gameID, layerID){
	   var GameBoxDim = $('GamesMini_Box').getDimensions();
	   var GameBoxPos = $('GamesMini_Box').cumulativeOffset();
	   $(layerID+'font_'+gameID).style.left = GameBoxPos.left + "px";
	   $(layerID+'font_'+gameID).style.top = GameBoxPos.top + GameBoxDim.height + "px";
	   if($(layerID+'font_'+gameID).hasClassName('hidden')){
	       $(layerID+'font_'+gameID).removeClassName('hidden');
	   }
	},

	HoverComNav: function(img, node) {
		var chgNode = $(node);
		var img = "/skins/default/global/community/com_navi/" + img;
		chgNode.style.backgroundImage = "url(" + img + ")";
	},

	guestbookWriter: function() {
	    if ($('gbookLayer').hasClassName('hidden')){
	        $('gbookLayer').removeClassName('hidden');
	    }else{
	        $('gbookLayer').addClassName('hidden');
	    }
	},

	guestbookReplyEdit: function(replyID){
	    var replyText = $('replyArea_' + replyID).value;
	    if (replyText.length > 0){
            $('replyArea_' + replyID).addClassName('loadingGFXsmall');
            $('replyArea_' + replyID).disabled = true;
            new Ajax.Request("/ajax/misc.php", {
    	    	postBody: "action=editGBreply&guestbookMessageID="+replyID+"&replyText="+replyText,
    	    	onSuccess: function(r) {
    	    		var obj = r.responseText.evalJSON();
    	    			if(obj.result == 'OK'){
    	    			    $('replyText_' + replyID).update(obj.html);
    	    			    $('replyDate_' + replyID).update(obj.fulldate);
                            $('replyButtonSave_' + replyID).addClassName('hidden');
                            $('replyArea_' + replyID).addClassName('hidden');
                            $('replyButtonDelete_' + replyID).removeClassName('hidden');
                            $('replyText_' + replyID).removeClassName('hidden');
                            $('replyArea_' + replyID).disabled = false;
                            $('replyArea_' + replyID).removeClassName('loadingGFXsmall');
                            $('replyButtonWrite_' + replyID).addClassName('hidden');
    	    			}else{
                            $('replyArea_' + replyID).disabled = false;
                            $('replyArea_' + replyID).removeClassName('loadingGFXsmall');
    	    			}
    	    	}
    	    });
        }
	},

	guestbookDeleteReply: function (replyID){
		new Ajax.Request("/ajax/misc.php", {
	    	postBody: "action=deleteGBreply&guestbookMessageID="+replyID,
	    	onSuccess: function(r) {
	    		var obj = r.responseText.evalJSON();
	    			if(obj.result == 'OK'){
	    			   $('replyText_' + replyID).update('');
	    			   $('replyText_' + replyID).addClassName('hidden');
	    			   $('replyBox_' + replyID).addClassName('hidden');
                       $('replyArea_' + replyID).value = '';
                       if ($('replyButtonWrite_' + replyID).hasClassName('hidden')) $('replyButtonWrite_' + replyID).removeClassName('hidden');
	    			}
	    	}
	    });
	},

	submitGbookWrite: function() {
	    var message = $('message').value;
	    if (message.length > 0){
            $('gbookWriteForm').submit();
	    }
    },

    showReplyWrite: function(replyID) {
        if ($('replyBox_'+replyID).hasClassName('hidden')){
            $('replyBox_'+replyID).removeClassName('hidden');
            $('replyArea_'+replyID).removeClassName('hidden');
            $('replyButtonSave_'+replyID).removeClassName('hidden');
            $('replyDate_' + replyID).update($('replyDateNow_' + replyID).innerHTML);
            $('replyButtonDelete_'+replyID).addClassName('hidden');
        }else{
            $('replyBox_'+replyID).addClassName('hidden');
            $('replyArea_'+replyID).addClassName('hidden');
            $('replyButtonSave_'+replyID).addClassName('hidden');

            $('replyButtonDelete_'+replyID).removeClassName('hidden');
        }
    },

    chooseSpeedgame: function(gameID, gameName, mode){
        var img = "/skins/default/de/header/speedgame/speedgame_";
        if(mode == 'over'){
            var ext = "02.jpg";
            $('speedgameChooseText' + gameID).removeClassName('hidden');
        }else{
            var ext = "01.jpg";
            $('speedgameChooseText' + gameID).addClassName('hidden');
        }
		$('speedgameChoose' + gameID).style.backgroundImage = "url(" + img + gameName + ext + ")";
    },

    setSpeedgameID: function(gameID){
        $('paramID').value = gameID;
    },

    setSpeedgameRegID: function(gameID){
        $('speedgamesGameID').value = gameID;
    },

    add2facebook: function (url){
        var t= document.title;
        window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(url)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
        return false;
    },

    add2myspace: function(T, C, U, L){
        T = $(T).innerHTML;
        C = $(C).innerHTML;
        var targetUrl = 'http://www.myspace.com/index.cfm?fuseaction=postto&' + 't=' + encodeURIComponent(T)
        + '&c=' + encodeURIComponent(C) + '&u=' + encodeURIComponent(U) + '&l=' + L;
        window.open(targetUrl, 'myspace', 'toolbar=no,width=800,height=700');
        return false;
    },

    add2twitter: function(layer){
       var text = $(layer).innerHTML;
       window.open('http://twitter.com/home?status=' + text, 'twitter', 'toolbar=no,width=800,height=700');
       return false;
    },

    add2delicious: function(layerTitle, layerLink){
       var title = $(layerTitle).innerHTML;
       var link = $(layerLink).innerHTML;
       window.open('http://del.icio.us/post?v=4&noui&jump=close&url='+link+'&title='+title, 'delicious','toolbar=no,width=700,height=400');
       return false;
    },




    deleteValue: function (elem){
        $(elem).value = '';
    }
}

var InfoLayer = {
    
    showRecommend: function(){
        $('recommendGame').removeClassName('hidden');
		var lDim = $('recommendGame').getDimensions();
		var newWidth = lDim.width + "px";
        var pos = $('all').cumulativeOffset();
        var scl = document.viewport.getScrollOffsets();
        var newPosTMP = $$('.gameMedia')[0].cumulativeOffset();
        var newPos = {
            top: parseInt(pos.top) + parseInt(scl.top) + 200 + "px",
            left: newPosTMP.left - 5 + "px"
        };
        $('recommendGame').setStyle({
			top: newPos.top,
			left: newPos.left,
			width: newWidth
		});
		if(IS_IE6){
            $$('select').each(function(n) {
                n.addClassName('invisible');
            });
	    }
    },
    
    hideRecommend: function(){
        $('recommendGame').addClassName('hidden');
		if(IS_IE6){
            $$('select').each(function(n) {
                n.removeClassName('invisible');
            });
	    }
    },
    
	show: function(layerID)	{
		var lDim = $(layerID).getDimensions();
		var newWidth = lDim.width + "px";
		var newHeight = false;

		var pos = $('all').cumulativeOffset();
		var dim = $('all').getDimensions();
		var scl = document.viewport.getScrollOffsets();

		if($('topTeaserAd') && layerID == "loginDataLayer") {
			var newPos = {
				top: parseInt(pos.top) + parseInt(scl.top) + 200 + "px",
				left: parseInt(pos.left) + (dim.width / 2) - (lDim.width / 2) + "px"
			};
		}
		else if(layerID == 'recommendGame') {
		    var newPosTMP = $$('.gameMedia')[0].cumulativeOffset();

		    var newPos = {
		        top: parseInt(pos.top) + parseInt(scl.top) + 200 + "px",
		        left: newPosTMP.left - 5 + "px"
		    };
		}
		else if(layerID == 'passwordChange') {
		    var newPos = {
		        top: parseInt(pos.top) + parseInt(scl.top) + 303 + "px",
		        left: parseInt(pos.left) + 21 + "px"
		    };
		}
		else {
			var newPos = {
				top: parseInt(pos.top) + parseInt(scl.top) + 200 + "px",
				left: parseInt(pos.left) + (dim.width / 2) - (lDim.width / 2) + "px"
			};
		}

		$(layerID).removeClassName('hidden');
		Element.extend(layerID);

		$(layerID).setStyle({
			top: newPos.top,
			left: newPos.left,
			width: newWidth
		});

		if(newHeight) $(layerID).style.height = newHeight;
		if(IS_IE6){
			$('selectShowStopper').style.top='200px';
			$('selectShowStopper').style.left='625px';
			$('selectShowStopper').removeClassName('hidden');
		}
	},

	hide: function(layerID) {
		$(layerID).addClassName('hidden');
	}
}

var Home = {
	featureHover: function(categ, event) {
		var img = "/skins/default/global/games/feat_" + categ + "_titel";
		var attr = event == 'over' ? '_over.jpg' : '.gif';

		img += attr;
		var node = $(categ + "FeatureTitle");

		if(!node) return false;
		node.style.backgroundImage = "url(" + img + ")";
	}
}

var bcount2 = 0;
function boardSwitchTo (url) {
	if (url.length>2){
	    board = window.open(url, "board" + bcount2);
	    board.focus();

	    bcount2++;
	}
}

var GlobalFunctions = {
	// public method for url encoding
	urlEncode : function (string) {
		var arrSpecials = [" ", "\\", "^", "[", "]", "(", ")", "$", ".", "|", "?", "*", "+", "{", "}", "/", "ä", "ö", "ü", "ß"];
		var arrreplace =  ["-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "ae", "oe", "ue", "ss"];
		var strReturn = string;
		for(var i=0; i<arrSpecials.length; i++){
			strReturn = strReturn.replace(eval("/\\"+ arrSpecials[i]+"/g"), arrreplace[i]);
		}
		return strReturn;
	}
}