var GameDetails = {
    goLogin: function(partnerID, gameType) {
        if(partnerID == 'goa' || partnerID == 'gamigo' || (partnerID == 185 && gameType == 'bg') || partnerID == 'sony') {
        	$('linkToPartner').removeClassName('hidden');
    	}
    	else{
            if(gameType == 'dg') {
                $('gameDownloadLogin').submit();
            }
            else {
                $('gameLogin').submit();
            }
            return true;
    	}

    },

    switchMedia: function(mID) {
        if(!$(mID).hasClassName('grey')) {
            return true;
        }

        $$('.mediaHeadline').each(function(n) {
            if(!n.hasClassName('grey')) {
                n.addClassName('grey');
            }
        });

        $$('.mediaContent').each(function(n) {
            if(!n.hasClassName('hidden')) {
                n.addClassName('hidden');
            }
        });

        $(mID).removeClassName('grey');
        $(mID + "Show").removeClassName('hidden');
    },

    showScreen: function(imgURL, trailer) {
        this.screenBtn('hide');

        if($('screenLayer').hasClassName('hidden')) {
            Index.showPageShadow();
            Event.observe(document, "keypress", GameDetails.killByESC);
            $('screenLayer').removeClassName("hidden");
        }
        else {
            $('loader').removeClassName('hidden');
            this.setDivPosition('loader');
        }

        this.setDivPosition('loader');
		if (trailer=='trailer'){
			$('loader').addClassName('hidden');
			$('previewBox').removeClassName('hidden');
			GameDetails.setDivPosition('previewBox');
			 $('screenshot').src
		}else{
	        var img = new Image();
	        img.onload = function() {
	            $('loader').addClassName('hidden');
	            $('screenshot').src = imgURL;
	            $('screenshot').removeClassName('hidden');
	            GameDetails.setDivPosition('screenshot');
	            Index.resizePageShadow();
	        };
	        img.src = imgURL;
		}
    },

    setDivPosition: function(posBy) {
        var dim = $(posBy).getDimensions();
        var scl = document.viewport.getDimensions();
        var sDim = $('shadowLayer').getDimensions();
        var scl2 = document.viewport.getScrollOffsets();

        $('screenLayer').style.left = (sDim.width / 2) - (dim.width / 2) + "px";
        $('screenLayer').style.top = (scl.height / 2) - (dim.height / 2) + "px";

        if(posBy != 'loader') this.screenBtn('show');
    },

    killByESC: function(e) {
        if(e.keyCode == 27) {
            GameDetails.hideScreen();
        }
        else if(e.keyCode == 37) {
            GameDetails.nextScreen('prev');
        }
        else if(e.keyCode == 39) {
            GameDetails.nextScreen('next');
        }
    },

    aktScreen: function() {
        for(var i = 0; i < Screens.length; i++) {
            if($('screenshot').src == Screens[i]) return i;
        }
    },

    nextScreen: function(dir) {
        if(Screens.length < 2) return false;
        aktScreen = this.aktScreen();
        var nowImg;

        $('screenshot').addClassName("hidden");

        if(dir == 'next') {
            if(aktScreen == (Screens.length - 1)) nextImg = 0;
            else nextImg = aktScreen + 1;
        }
        else {
            if(aktScreen == 0) nextImg = Screens.length - 1;
            else nextImg = aktScreen - 1;
        }

        this.showScreen(Screens[nextImg]);
    },

    screenBtn: function(doit) {
        if(doit == "hide") {
            $('screenClose').hide();
            $('screenLeft').hide();
            $('screenRight').hide();

            return true;
        }

        var dim = $('screenshot').getDimensions();
        $('screenClose').style.width = dim.width - 6 + "px";
        $('screenClose').style.top = "-20px";
        $('screenClose').show();

        $('screenLeft').style.left = (dim.width / 2) - 60 + "px";
        $('screenLeft').style.top = dim.height + 2 + "px";
        $('screenLeft').show();

        $('screenRight').style.left = (dim.width / 2) + 30 + "px";
        $('screenRight').style.top = dim.height + 2 + "px";
        $('screenRight').show();
    },

    hideScreen: function() {
        this.screenBtn('hide');
        $('screenshot').addClassName("hidden");
        $('loader').removeClassName('hidden');
        $('screenLayer').addClassName("hidden");
        Index.hidePageShadow();
        Event.stopObserving(document, "keypress", GameDetails.killByESC);
    },

    loadVideo: function(url,width,height){
    	var s1 = new SWFObject("/video/mediaplayer.swf","ply",""+width+"",""+height+"","8","#FFFFFF");
			s1.addParam("allowfullscreen","false");
			s1.addParam("allowscriptaccess","always");
			s1.addParam("flashvars","file="+url+"&default=&autostart=true&icons=false");
			s1.write("player");
		this.showVideo();
    },

    showVideo: function() {
            Index.showPageShadow();
            Event.observe(document, "keypress", GameDetails.videokillByESC);
			$('previewBox').removeClassName('hidden');
			GameDetails.setVideoPosition('previewBox');
    },

    videokillByESC: function(e) {
        if(e.keyCode == 27) {
            GameDetails.hideVideoScreen();
        }
    },

    setVideoPosition: 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) + "px";
        this.screenVideoBtn('show');
    },

    screenVideoBtn: function(doit) {
        if(doit == "hide") {
            $('videoClose').hide();
            return true;
        }
        var dim = $('previewBox').getDimensions();
        $('videoClose').style.left = dim.width - $('videoClose').getWidth() - 5 + "px";
        $('videoClose').style.top = "-19px";
        $('videoClose').style.width = dim.width -10 + "px";
        $('videoClose').show();
    },

    hideVideoScreen: function() {
        this.screenVideoBtn('hide');
        $('previewBox').addClassName("hidden");
        $('player').update('');
        Index.hidePageShadow();
        Event.stopObserving(document, "keypress", GameDetails.killByESC);
    },

    sendInvitation: function(gameURL) {
        $('mailForm').style.visibility = "hidden";

        var name = $('name').value;
        var eMails = new Array(
            $('mail[0]').value,
            $('mail[1]').value,
            $('mail[2]').value,
            $('mail[3]').value,
            $('mail[4]').value,
            $('mail[5]').value
        );

        new Ajax.Request("/ajax/sendGameInvitation.php", {
            postBody: "gameURL=" + gameURL + "&name=" + name + "&mail=" + eMails,

            onSuccess: function(r) {
                var obj = r.responseText.evalJSON();
                $('mailForm').style.visibility = "visible";

                if(obj.noreplace == true) {
                    Index.openErrorLayer();
                    $('errorLayerContent').update(obj.layerText);
                    return true;
                }

                $('mailForm').update(obj.layerText);
            }
        });
    },

    mailField: function(fieldID) {
        if($(fieldID).value == defaultMail) {
            $(fieldID).value = '';
        }
        else if($(fieldID).value == '') {
            $(fieldID).value = defaultMail;
        }
    },
    //Show Pass
	showPass: function() {
        if($('tooltip_pass').hasClassName('hidden')){
            var fadeIn = 1;
            Index.showPageMilkyShadow();
            $('tooltip_pass').removeClassName('hidden');
        }else{
            var fadeIn = 0;
        }
	    if(fadeIn == 1){
            var passOffset =  $('nlBtnFriendNM').cumulativeOffset();
    	    $('tooltip_pass').style.top = passOffset.top - 32 + "px";
    	    $('tooltip_pass').style.left = passOffset.left  + 13 +  "px";
    	    GameDetails.fadeLayerIn('tooltip_pass');
	    }else{
	        GameDetails.fadeLayerOut('tooltip_pass');
	    }
	},


	//Scriptaculous stuff
	fadeLayerIn: function (layer){
	   new Effect.Opacity(layer, {from: 0.0, to: 1.0, duration: 0.3});
	   return true;
	},

	//Send invitation to user
	sendInvitationPopUp: function(gameURL, gameID, gameType, gameName) {
	    if(($('namefieldMiddle').value.length > 0 ) && ($('emailfieldMiddle').value.length > 0 )){
    	    Index.showLoadingLayer('mailContainer');
	        new Ajax.Request("/ajax/sendGameInvitation.php", {
                postBody: "gameURL=" + gameURL + "&name=" + $('namefieldMiddle').value + "&mail=" + $('emailfieldMiddle').value + "&gameID=" + gameID + "&gameType=" + gameType + "&gameName=" + gameName,
    	    	onSuccess: function(r) {
    	    	    var obj = r.responseText.evalJSON();
    	    	    Index.hide('loadingLayer');
    	    	    $('namefieldMiddle').value= '';
    	    	    $('emailfieldMiddle').value = '';
    	    		if(obj.result == 'OK'){
    	    			$('sendafriend_Info').update('<strong>' + obj.layerText + '</strong>');
    	    		}else{
    	    			$('sendafriend_Info').update('<strong>' + obj.layerText + '</strong>');
    	    		}
    	    	}
    	    });
	    }
	},

	fadeLayerOut: function (layer){
	   new Effect.Opacity(layer, {from: 1.0, to: 0.0, duration: 0.3, afterFinish: function(e) {
            if (!$(layer).hasClassName('hidden')) $(layer).addClassName('hidden');
            Index.hidePageMilkyShadow();
	   }});
	   return true;
	},

	changeGlobalAccount: function(globalAccountID) {
	    $$('select.gameIDSel').each(function(n) {
	        if(n.id == 'gameID_' + globalAccountID) {
	            n.removeClassName('hidden');
	            GameDetails.changeGameID(n.value);
	        }
	        else if(!n.hasClassName('hidden')) {
	            n.addClassName('hidden');
	        }
	    })
	},

	changeGameID: function(instanceID) {
	    $('gameLogin').gameID.value = instanceID;
	}
}