//SETUP
var PGAInterfaceURL = '/common/fusion/ajax/fusionproxy.php?SCRIPTNAME=pga';
var PGAImageURL = '/common/fusion/pga/images/';

//CLASSES

var HorizontalNaviCtrl = Class.create();
HorizontalNaviCtrl.prototype = {
	parentWnd:			null,
	currentLevel:		0,
	cssclass:			"",
	name:				"",
	scrollupbutton:		null,
	scrolldownbutton:	null,
	scrollcontainer:	null,
	scrollcontent:		null,
	scrolloffset:		null,
	numitems:			null,
	currentHeight:		0,

	// Konstruktor
	initialize: function(parent, name, cssclass, scrollY) {
		this.scrolloffset = new Array();
		this.numitems = new Array();
		this.parentWnd = $(parent);
		this.cssclass = cssclass;
		if (typeof scrollY == 'undefined') {
			this.scrollY = 43;
		} else {
			this.scrollY = scrollY;
		}
		this.name = name;
		this.currentLevel = 0;

		this.createWnd();
	},

	registerScrollDownButton: function(button) {
		var self = this;
		this.scrolldownbutton = $(button);
		this.scrolldownbutton.onclick = function() {self.scrollDown();};
	},

	registerScrollUpButton: function(button) {
		var self = this;
		this.scrollupbutton = $(button);
		this.scrollupbutton.onclick = function() {self.scrollUp();};
	},

	findScrollContent: function() {
		var objlevel = $(this.name + 'Container_Level_' + this.currentLevel);
		if (objlevel)
		{
			var scrollcontent = objlevel.select('.PGAScrollContent');
			if (scrollcontent)
			{
				this.scrollcontent = scrollcontent[0];
			}
		}
	},

	findScrollContainer: function()	{
		var objlevel = $(this.name + 'Container_Level_' + this.currentLevel);
		if (objlevel)
		{
			var scrollcontainer = objlevel.select('.PGAScrollContainer');
			if (scrollcontainer)
			{
				this.scrollcontainer = scrollcontainer[0];
			}
		}
	},

	scrollDown: function() {
		this.scrolloffset[this.currentLevel]  += this.scrollY;
		this.doScroll();
		this.updateScrollButtons();
	},

	scrollUp: function() {
		this.scrolloffset[this.currentLevel]  -= this.scrollY;
		this.doScroll();
		this.updateScrollButtons();
	},

	doScroll: function() {
		if (this.scrollcontent != null && this.scrollcontainer != null)
		{
			new Effect.Move (this.scrollcontent,{ x: 0, y: -this.scrolloffset[this.currentLevel] , mode: 'absolute', duration: 0.25});
		}
	},

	createWnd: function() {
		var html = "";
		html += "<div class='" + this.cssclass + "' id='" + this.name + "'></div>";
		this.parentWnd.innerHTML = html;
		this.container = $(this.name);
	},

	replaceContent: function(html,numitems,modifylevel)	{
		if (typeof(modifylevel) == "undefined")
		{
			var modifylevel = this.currentLevel;
		}

		var objlevel = $(this.name + "Container_Level_" + modifylevel);
		if (!objlevel)
		{
			objlevel = document.createElement("div");
			objlevel.className = this.cssclass;
			objlevel.style["position"] = "absolute";
			objlevel.style["top"] = "0px";
			objlevel.style["left"] = (this.currentLevel * 224) + "px";
			objlevel.style["width"] = "224px";
			objlevel.id = this.name + "Container_Level_" + modifylevel;

			this.scrolloffset.push(0);
			this.numitems.push(0);

			this.container.appendChild(objlevel);
		}

		objlevel.innerHTML = html;
		this.scrolloffset[modifylevel] = 0;
		this.numitems[modifylevel] = numitems;
		this.updateScrollStructures();
	},

	nextLevel: function(html,numitems) {
		this.currentLevel++;
		this.replaceContent(html,numitems);
		this.onLevelChanged();
	},

	prevLevel: function() {
		if (this.currentLevel <= 0) return;
		this.currentLevel--;
		this.onLevelChanged();
	},

	updateScrollButtons: function()	{
		if (this.scrolldownbutton != null) {
			if (-this.scrolloffset[this.currentLevel] + this.scrollcontent.getHeight()-5 > this.scrollcontainer.getHeight()) {
				this.scrolldownbutton.show();
			} else {
				this.scrolldownbutton.hide();
			}
		}

		if (this.scrollupbutton != null) {
			if (this.scrolloffset[this.currentLevel] > 0) {
				this.scrollupbutton.show();
			} else {
				this.scrollupbutton.hide();
			}
		}
	},

	updateScrollStructures: function() {
		this.findScrollContainer();
		this.findScrollContent();

		if (this.scrollcontainer != null && this.scrollcontent != null)
		{
			this.updateScrollButtons();
		} else {
			// Wenn nix zu scrollen da, eventuelle Scrollbuttons vom Vorlevel
			// verstecken.
			if (typeof this.scrollupbutton != 'undefined' && this.scrollupbutton != null) {
				this.scrollupbutton.hide();
			}
			if (typeof this.scrolldownbutton != 'undefined' && this.scrollupbutton != null) {
				this.scrolldownbutton.hide();
			}
		}
	},

	onLevelChanged: function () {
		new Effect.Move ($(this.name),{ x: -(this.currentLevel*224), y: 0, mode: 'absolute', duration: 0.5});
		this.updateScrollStructures();
		if (this.name == 'PGAMessagesClientWnd') {
			var showToolbar = (this.currentLevel > 0) ? true : false;
			pga.lockMessageWnd = false;
			pga.adaptMessageWndSize(this.numitems[this.currentLevel], showToolbar);
			pga.lockMessageWnd = (this.currentLevel > 0) ? true : false;
		}
	},

	getNumItemsShown: function() {
		return this.numitems[this.currentLevel];
	},

	onItemRemoved: function() {
		this.numitems[this.currentLevel]--;
	},

	setHeight: function(height)	{
		if (this.currentHeight == 0) {
			this.currentHeight = this.parentWnd.getHeight();
		}
		var percent = (height/this.currentHeight)*100;
		if (this.currentHeight == 0) {
			percent = 100*height;
			this.currentHeight = 1;
		}
		new Effect.Scale(this.parentWnd, percent, {
			scaleContent: false,
			scaleX: false,
			duration: 0.5,
			scaleMode: {originalHeight: this.currentHeight}
		});
		this.currentHeight = height;
	}
}

var PersonalGamerAssistent = Class.create();
PersonalGamerAssistent.prototype = {
	visible:		false,
	showMessages:	4,
	messagewnd:		null,
	friendsWnd:		null,
	teaserWnd:		null,
	hilfeShown:		false,
	numMessages:	0,
	numItems:		0,
	lockMessageWnd:	false,

	initialize: function(container)
	{
		this.createWnd(container);

		//Messages-Wnd erstellen und Scrollbuttons registrieren
		this.messagewnd = new HorizontalNaviCtrl('PGAMessagesClient', 'PGAMessagesClientWnd', 'PGAMessagesWnd');
		this.messagewnd.registerScrollDownButton('PGAMessagesButtonDown');
		this.messagewnd.registerScrollUpButton('PGAMessagesButtonUp');
	},

	createItem: function(itemdata,ingroup)
	{
		var html = '';
		var icon = '';
		var idcode = '';

		idcode = itemdata['message_id'];
		if (itemdata['numelements'] > 1) {
			idcode = itemdata['sendercode'];
		}

		if ( (itemdata['type_id'] == 1) | (itemdata['type_id'] == 3)  | (itemdata['type_id'] == 8) ) {
			icon = '<div class="PGAIcon" id="PGAIcon_' + idcode + '" imageurl="' + itemdata['imageurl'] + '"><a href="https://login.4players.de/profile.php/de/4players/' + itemdata['from_id'] + '/profile/" title="Profil von ' + itemdata['sender'] + '" onclick="void(0);"><img src="' + itemdata['imageurl'] + '"></a></div>';
		} else if (itemdata['type_id'] == 2) {
			if (itemdata['imageurl'] != null && itemdata['imageurl'] != '') {
				itemdata['imageurl'] = itemdata['imageurl'].replace(/http:\/\/static\.login\.4players\.de/, 'https://login.4players.de');
				icon = "<div class='PGAIcon' id='PGAIcon_" + idcode + "' imageurl='" + itemdata["imageurl"] + "'><img src='" + itemdata["imageurl"] + "'></div>";
			}
		} else {
			if (itemdata['imageurl'] != null && itemdata['imageurl'] != '') {
				icon = "<div class='PGAIcon' id='PGAIcon_" + idcode + "' imageurl='" + itemdata["imageurl"] + "'><img src='" + itemdata["imageurl"] + "'></div>";
			}
		}

		var targeturl = '';
		if (itemdata['type_id'] == 2) {
			targeturl = itemdata['text'].match(/id=\"WatchlistLink\" href=\"(http\:\/\/www.4players.de\/4players.php\/spielinfo\/Allgemein\/\d+\/)/);
			targeturl = targeturl[1];
		}

		if (itemdata["numelements"] > 1)
		{
			html = "<div class='PGAMessageGroup' id='PGAMessageGroup_" + itemdata["sendercode"] + "' onclick='pga.showGroupMessages(\"" + itemdata["sender"] + "\",\"" + itemdata["sendercode"] + "\");'>" + icon + "<div class='PGACaption'>" + itemdata["sender"] + "</div><div class='PGAVorschau'>Gruppe: <span id='PGAMessageGroupNumElements_" + itemdata["sendercode"] + "'>" + itemdata["numelements"] + "</span> Elemente</div><div class='PGAMessageButtons'><div class='PGAMessageButtonClose'></div><div class='PGAMessageButtonExpand'></div></div></div>";
		}
		else
		{
			html = "<div class='PGAMessage' sendercode='" + itemdata["sendercode"] + "' ingroup='" + ingroup + "' from_id='" + itemdata["from_id"] + "' to_id='" + itemdata["to_id"] + "' type_id='" + itemdata["type_id"] + "' targeturl='" + targeturl + "' id='PGAMessage_" + itemdata["message_id"] + "' onclick='pga.onMessageClicked(" + itemdata["message_id"] + ")'>" + icon + "<div class='PGACaption'>" + itemdata["sender"] + "</div><div class='PGAVorschau'>" + itemdata["subject"] + "</div><div class='PGAMessageButtons'><div class='PGAMessageButtonClose' onclick='pga.markMessageAsRead(" + itemdata["message_id"] + ");Event.stop(event);'></div></div></div>";
		}

		return html;
	},

	loadMessages: function(type_id)
	{
		var self = this;
		var now = new Date();
		var time = now.getTime();
		new Ajax.Request(PGAInterfaceURL, {
			method: 'get',
			evalJSON: 'force',
			parameters: {
				TYPE:	 'loadmessages',
				GROUPED: 'true',
				time: time
			},
		  	onSuccess: function(transport) {
		  		var json = transport.responseJSON;
		  		var i;
		  		var html = "";
				html += "<div class='PGAScrollContainer'>";
				html += "	<div id='PGAMessagesLevel0Content' class='PGAScrollContent'>";
				var nummessages = 0;
		  		for (i=0; i < json.length; i++) {
		  			nummessages += parseInt(json[i]['numelements']);
		  			html += self.createItem(json[i], 0);
		  		}
				html += "	<div class='PGATopShadow'></div>";
				html += "	</div>";
				html += "</div>";

				self.messagewnd.replaceContent(html, json.length, 0);
				self.onNumMessagesChanged(nummessages, json.length);
		  	}
		});

		setTimeout(function(){self.loadMessages()},30000);
	},

	callFunction: function(funcname,params,callfunc)
	{
		var url = PGAInterfaceURL + "&TYPE=" + funcname;
		if (params != "")
		{
			url += "&" + params;
		}

		var self = this;

		var now = new Date();
		var time = now.getTime();
		new Ajax.Request(url, {
			method: 'get',
			evalJSON: 'force',
			parameters: {
				time: time
			},
		  	onSuccess: function(transport) {
		  		var json = transport.responseJSON;
		  		callfunc(json);
		  	}
		});
	},

	onMessageRead: function(message_id)	{
		var ingroup = $('PGAMessage_' + message_id).getAttribute('ingroup');
		var sendercode = $('PGAMessage_' + message_id).getAttribute('sendercode');

		this.messagewnd.onItemRemoved();
		if (ingroup == 1) {
			if (this.messagewnd.getNumItemsShown() <= 0) {
				//Diese Nachricht war die letzte in der Gruppe, also zurück zur Hauptliste und Gruppe schließen
				this.numItems -= 1;
				this.hideGroupMessages();
				new Effect.SwitchOff($('PGAMessageGroup_' + sendercode));
			} else {
				//Die Gruppe in der Hauptliste aktualisieren (Anzahl Elemente)
				$('PGAMessageGroupNumElements_' + sendercode).innerHTML = this.messagewnd.getNumItemsShown();
			}
		} else {
			this.numItems -= 1;
		}
		this.onNumMessagesChanged(this.numMessages - 1, this.numItems);
		this.messagewnd.updateScrollButtons();
	},

	// Verwaltet Änderungen an der Nachrichten-Anzahl
	onNumMessagesChanged: function(numMessages, numItems) {
		this.adaptMessageWndSize(numItems);

		if (fusionLoginBox != null) {
			 fusionLoginBox.onNumMessagesChanged(numMessages);
		}
		this.numMessages = numMessages;
		this.numItems = numItems;
	},

	// passt die Größe des Message-Windows an Anzahl der übergebenen Objekte an
	adaptMessageWndSize: function(num, showToolbar) {
		if (typeof showToolbar == 'undefined') {
			showToolbar = false;
		}
		if (typeof num == 'undefined') {
			num = this.showMessages;
		}
		if (num > this.showMessages) {
			num = this.showMessages;
		}
		if (!this.lockMessageWnd) {
			if (showToolbar) {
				this.messagewnd.setHeight(num * 43 + 23);
			} else {
				this.messagewnd.setHeight(num * 43);
			}
		}
	},

	markMessageAsRead: function(message_id)
	{
		var self = this;
		this.callFunction("markmessageasread",
						  "MESSAGEID=" + message_id,
						  function(result) {
						      if (result == true)
						  	  {
						  		  new Effect.SwitchOff($('PGAMessage_' + message_id));
								  //self.onMessageRead(message_id);
						  	  }
						  });
	},

	addFriend: function(friendpid, message_id)
	{
		var self = this;

		this.callFunction("addfriend",
						  "FRIENDPID=" + friendpid,
						  function(result) {
						      if (result == true)
						  	  {
						  		  self.friendsWnd.update();
								  self.markMessageAsRead(message_id);
								  self.messagewnd.prevLevel();
						  	  }
						  });
	},

	denyFriend: function(friendpid, message_id)
	{
		var self = this;
	  	self.markMessageAsRead(message_id);
		self.messagewnd.prevLevel();
	},

	resetMessageIcon: function(idcode)
	{
		var icon = $('PGAIcon_' + idcode);
		if (icon)
		{
			icon.innerHTML = "<img src='" + icon.getAttribute('imageurl') + "'>";
		}
	},

	showLoadIcon: function(idcode)
	{
		var icon = $('PGAIcon_' + idcode);
		if (icon)
		{
			icon.innerHTML = "<img class='PGALoader' src='" + PGAImageURL + "ajaxloader_msg.gif'>";
		}
	},

	showMessageText: function(message_id)
	{
		this.showLoadIcon(message_id);

		var self = this;
		this.callFunction("getmessagetext",
						  "MESSAGEID=" + message_id,
						  function(result)
						  {
						  	  //Load Icon verstecken
						  	  self.markMessageAsRead(message_id);

						      var html = "";
							  html += "<div class='PGAToolbar'><div class='PGAToolbarButtonBack' onclick='pga.messagewnd.prevLevel();pga.onMessageRead(" + message_id + ");'></div><div class='PGACaption'>" + result["subject"] + "</div></div>";
							  html += "<div class='PGAScrollContainer'>";
							  html += "  <div class='PGAScrollContent PGAMessagesText'><pre>" + result["text"] + "</pre></div>";
							  html += "</div>";
							  html += "<div class='PGAMessagesProminentButtons'><div class='PGAMessageButtonAntworten' onclick=\"document.location.href='https://login.4players.de/messages.php/de/4players/send/reply/" + message_id + "/inbox/'\"></div><div class='PGAMessageButtonWeiterleiten' onclick=\"document.location.href='https://login.4players.de/messages.php/de/4players/send/forward/" + message_id + "/inbox/'\"></div></div>"
							  self.messagewnd.nextLevel(html);
							  self.messagewnd.setHeight(192);
						  });
	},
	
	acceptGameInvitation: function(invokeurl)
	{
		document.location.href = invokeurl;
	},
	
	showSpielEinladung: function(message_id)
	{
		this.showLoadIcon(message_id);

		var self = this;
		this.callFunction("getspieleinladung",
						  "MESSAGEID=" + message_id,
						  function(result)
						  {
						  	  //Load Icon verstecken
						  	  self.markMessageAsRead(message_id);

						      var html = "";
							  html += "<div class='PGAToolbar'><div class='PGAToolbarButtonBack' onclick='pga.messagewnd.prevLevel();pga.onMessageRead(" + message_id + ");'></div><div class='PGACaption'>" + result["subject"] + "</div></div>";
							  html += "<div class='PGAScrollContainer'>";
							  html += "  <div class='PGAScrollContent PGAMessagesText'><pre>" + result["text"] + "</pre></div>";
							  html += "</div>";
							  html += "<div class='PGAMessagesProminentButtons'><div class='PGAMessageButtonAnnehmen' onclick=\"pga.acceptGameInvitation('" + result["invokeurl"] + "');\"></div><div class='PGAMessageButtonAblehnen' onclick='pga.messagewnd.prevLevel();pga.onMessageRead(" + message_id + ");'></div></div>"							  
							  self.messagewnd.nextLevel(html);
							  self.messagewnd.setHeight(192);
						  });
	},	

	toggleHilfe: function()
	{
		if (this.hilfeShown)
		{
			this.hideHilfe();
			this.hilfeShown = false;
		}
		else
		{
			this.showHilfe();
			this.hilfeShown = true;
		}
	},

	showHilfe: function()
	{
		$('PGAHilfe').show();
		$('PGAHilfeButton').src = PGAImageURL + "button_hilfe_on.png";
		new Effect.Appear('PGAHilfeContent',{duration:0.45});
		new Effect.Move('PGAHilfe',{y:70,x:433,mode:'absolute',duration:0.35});
	},

	hideHilfe: function()
	{
		$('PGAHilfeButton').src = PGAImageURL + "button_hilfe.png";
		new Effect.Fade('PGAHilfeContent',{duration:0.15});
		new Effect.Move('PGAHilfe',{y:70,x:225,mode:'absolute',duration:0.35});
	},

	onMessageClicked: function(message_id)
	{
		var type_id = $('PGAMessage_' + message_id).getAttribute('type_id');
		var from_id = $('PGAMessage_' + message_id).getAttribute('from_id');

		if (type_id == 1 | type_id == 8)
		{
			this.showMessageText(message_id);
		}
		if (type_id == 2)
		{
			var targeturl = $('PGAMessage_' + message_id).getAttribute('targeturl');
			if (targeturl != "")
			{
				var self = this;
				this.markMessageAsRead(message_id);
				setTimeout(function(){self.jump(targeturl)},1000);
			}
		}
		else if (type_id == 3)
		{
			//Freundeseinladung
			var html = "";
			html += "<div class='PGAToolbar'><div class='PGAToolbarButtonBack' onclick='pga.messagewnd.prevLevel()'></div><div class='PGACaption'>Freundeseinladung annehmen?</div></div>";
			html += "<div class='PGAScrollContainer'>";
			html += "<div class='PGAMessagesText'>Wenn Du die Einladung annimmst, kannst Du fortan sehen, ob Dein Freund online ist, aber auch umgekehrt! Ihr könnt schnell und einfach Messages austauschen.</div>";
			html += "<div class='PGAMessagesProminentButtons'><div class='PGAMessageButtonAnnehmen' onclick='pga.addFriend(" + from_id + "," + message_id + ");'></div><div class='PGAMessageButtonAblehnen' onclick='pga.denyFriend(" + from_id + "," + message_id + ");'></div><!--<div class='PGAMessageButtonBlockieren'></div>--></div>"
			html += "</div>";
			this.messagewnd.nextLevel(html);
		}
		else if (type_id == 6)
		{
			//Spieleinladung
			this.showSpielEinladung(message_id);
		}
	},

	makeShortMiddle: function(name,maxlength)
	{
		if (name.length>maxlength)
		{
			return name.substring(0,(maxlength/2)-1) + " ... " + name.substring(name.length-(maxlength/2)-1,name.length);
		}

		return name;
	},

	makeShort: function(name,maxlength)
	{
		if (name.length > maxlength)
		{
			return name.substring(0,maxlength-2) + '...';
		}

		return name;
	},

	jump: function(url)
	{
		document.location.href = url;
	},

	hideGroupMessages: function()
	{
		this.messagewnd.prevLevel();
	},

	showGroupMessages: function(sender, sendercode)
	{
		this.showLoadIcon(sendercode);

		var self = this;
		var now = new Date();
		var time = now.getTime();
		new Ajax.Request(PGAInterfaceURL, {
			method: 'get',
			evalJSON: 'force',
			parameters: {
				TYPE:	 "loadmessages",
				GROUPED: "false",
				SENDER:	 sender,
				time: time
			},
		  	onSuccess: function(transport) {
		  		self.resetMessageIcon(sendercode);
				var json = transport.responseJSON;
		  		var i;
		  		var html = "";
				html += "<div class='PGAToolbar'><div class='PGAToolbarButtonBack' onclick='pga.hideGroupMessages()'></div><div class='PGACaption'>" + sender + "</div></div>";
				html += "<div class='PGAScrollContainer'>";
				html += "	<div id='PGAMessagesLevel1Content' class='PGAScrollContent'>";

		  		for (i = 0; i < json.length; i++) {
	  				html += self.createItem(json[i], 1);
		  		}
				html += "	<div class='PGATopShadow'></div>";
				html += "	</div>";
				html += "</div>";

				self.messagewnd.nextLevel(html, json.length);
		  	}
		});
	},

	createWnd: function(container)
	{
		var html = '';
		html += '<div id="PGAModule_Messages">';
//		html += '	<div class="PGAHeadline"><div class="PGACaption">Persönliche Nachrichten</div><div class="PGAHeadlineButtons"><img id="PGAHilfeButton" onclick=\'pga.toggleHilfe()\' src="' + PGAImageURL + 'button_hilfe.png"></div></div>';
		html += '	<div class="PGAHeadline"><div class="PGACaption">Persönliche Nachrichten</div><div class="PGAHeadlineButtons"><div class="PGAMessageButtonClose" onclick="pga.hidePGA();"></div></div></div>';
		html += '	<div id="PGAMessagesClient"';
		html += '	</div>';
		html += '</div>';
		html += '<div id="PGAMessagesToolbar" class="PGAToolbar">';
		html += '	<div id="PGAMessagesGoTo" class="PGAButtonGoTo" onclick=\'$("PGAMessagesPopupGoTo").show()\'></div>';
		html += '	<div id="PGAMessagesPopupGoTo" style="display:none" onmouseover=\'$("PGAMessagesPopupGoTo").show()\' onmouseout=\'$("PGAMessagesPopupGoTo").hide();\'>';
		html += '		<ul class="PGAPopUp">';
		html += '			<li><a href="https://login.4players.de/messages.php/de/4players/inbox/0/">Posteingang</a></li>';
		html += '			<li><a href="https://login.4players.de/messages.php/de/4players/outbox/0/">Postausgang</a></li>';
		html += '			<li><a href="https://login.4players.de/messages.php/de/4players/archive/0/">Archiv</a></li>';
		html += '			<li><a href="https://login.4players.de/messages.php/de/4players/trash/0/">Mülleimer</a></li>';
		html += '			<li><a href="https://login.4players.de/messages.php/de/4players/send/">Neue&nbsp;Nachr.</a></li>';
		html += '		</ul>';
		html += '	</div>';
		html += '	<div id="PGAMessagesButtonUp" onclick="pga.scrollMessagesUp()" class="PGAButtonUp"></div>';
		html += '	<div id="PGAMessagesButtonDown" onclick="pga.scrollMessagesDown()" class="PGAButtonDown"></div>';
		html += '</div>';
		html += '<div id="PGAModule_Gadgets"></div>';
		html += '<div id="PGATeaserToolbar" class="PGAToolbar">';
//		html += '	<div id="PGATeaserGadgets" class="PGAButtonGadgets" onclick=\'$("PGATeaserPopupGadgets").show()\'></div>';
//		html += '	<div id="PGATeaserPopupGadgets" style="display:none" onmouseover=\'$("PGATeaserPopupGadgets").show()\' onmouseout=\'$("PGATeaserPopupGadgets").hide()\'>';
//		html += '		<ul class="PGAPopUp">';
//		html += '			<li onclick="pga.teaserWnd.type=\'teaser\';pga.teaserWnd.update();$(\'PGATeaserPopupGadgets\').hide()">4P-Tests</li>';
//		html += '			<li onclick="pga.teaserWnd.type=\'charts\';pga.teaserWnd.update();$(\'PGATeaserPopupGadgets\').hide()">Charts</li>';
//		html += '			<li>Meine Stats</li>';
//		html += '		</ul>';
//		html += '	</div>';
		html += '	<div class="PGAButton" onclick="pga.teaserWnd.showMediaControlCharts();">Charts</div>';
		html += '	<div class="PGAButton" onclick="pga.teaserWnd.type=\'watchlist\';pga.teaserWnd.update();">Watchlist</div>';
		html += '	<div class="PGAButton" onclick="pga.teaserWnd.type=\'teaser\';pga.teaserWnd.update();">Tests</div>';
		html += '</div>';
		html += '<div id="PGAModule_Friends"></div>';
		$(container).innerHTML = html;

		//Vom User eingestellte Plugins
		this.teaserWnd = new PGATeaser();
		this.teaserWnd.createWnd("PGAModule_Gadgets");

		this.friendsWnd = new PGAFriends();
		this.friendsWnd.createWnd("PGAModule_Friends");
	},

	showPGA: function()
	{
		new Effect.SlideDown('PGARollDown', {duration: 0.5});
		this.visible = true;
		//Daten aktualisieren
		this.loadMessages(0);
		this.friendsWnd.update();
		this.teaserWnd.update();
	},

	hidePGA: function()
	{
		if ($('PGAHilfe')) {$('PGAHilfe').hide();}
		new Effect.Fade('PGARollDown');
		this.visible = false;
	}
}

Effect.ScaleTo = function(element, toWidth, toHeight) {
var ScaleToWidthPercent = new Number();
var ScaleToHeightPercent = new Number();
if (isNaN(toWidth) != true && toWidth != false) {
ScaleToWidthPercent = (100 * toWidth / ($(element).style.width).split("px")[0]);
} else { ScaleToWidthPercent = 100;}
if (isNaN(toHeight) != true && toHeight != false) {
ScaleToHeightPercent = (100 * toHeight / ($(element).style.height).split("px")[0]);
} else { ScaleToHeightPercent = 100;}
return (new Effect.Scale(element, ScaleToWidthPercent, {scaleY:false}),
new Effect.Scale(element, ScaleToHeightPercent, {scaleX:false}));
};


function initPGA()
{
	pga = new PersonalGamerAssistent("PGAMainWnd");
}
var pga = null;
Event.observe(window, 'load', initPGA);
