var site_base_dir = null;
var site_base_dir_img = null;
var RegisteredFlash = Array();


function redirect(url){
	window.location.href = site_base_dir + url;
}


var screenw,screenh;

window.getScrollTop=function() {
  if (self.pageYOffset) return self.pageYOffset;
  else if (document.documentElement && document.documentElement.scrollTop) return document.documentElement.scrollTop;
  else if (document.body) return document.body.scrollTop;
};

function ToggleItem(id)
{
	var elm = document.getElementById(id);
	if (elm.style.display == 'none')
	{
		elm.style.display = 'inline';
	}
	else
	{
		elm.style.display  = 'none';
	}
}

function GetWindowSize(){
	if (self.innerHeight) // all except Explorer
	{
		screenw = self.innerWidth;
		screenh = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		screenw = document.documentElement.clientWidth;
		screenh = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		screenw = document.body.clientWidth;
		screenh = document.body.clientHeight;
	}
}
GetWindowSize();

function setOpacityOfElm(elm, opacity){
	elm.style.filter = "Alpha(opacity="+opacity+")";
	elm.style.opacity = opacity/100;
}

function AjaxGetTranslation(key, ns){
	var res = null;
	new Ajax.Request(site_base_dir+'ajaxcall/gettranslation/key='+ key + '/ns=' + ns + '/rand='+Math.round(Math.random()*1000000), {    
				method:'get',
				asynchronous: false, 
				onSuccess: function(transport){ 
					try{
						res = transport.responseText;
					} catch(e) {}
				},
				onFailure: function(){ } 
	});
	return res;
}

function AjaxSetTranslation(key, ns, value)
{
	var res = null;
	new Ajax.Request(site_base_dir+'ajaxcall/settranslation/key='+ key + '/ns=' + ns + '/rand='+Math.round(Math.random()*1000000), {    
				method:'post',
				asynchronous: false, 
				postBody: value,
				onSuccess: function(transport){ 
					try{
						res = transport.responseText;
					} catch(e) {}
				},
				onFailure: function(){ } 
	});
	return res;
}

function AjaxLoadMaps(ladderid, pid)
{
	$('AjaxMapReplacement').innerHTML = 'loading ...';
	var gameid = LadderGameTable[ladderid];
	new Ajax.Request(site_base_dir+'ajaxcall/gamemaps/sp/'+gameid+'/'+pid+"/rand="+Math.round(Math.random()*1000000), {    
				method:'get',
				onSuccess: function(transport){ 
					try{
						$('AjaxMapReplacement').innerHTML = transport.responseText;
					} catch(e) {}
				},
				onFailure: function(){ } 
	});
}

function AjaxLoadGameInformation(gameid, mode, obj, pid, opponent)
{
	$('AjaxLadderReplacement').innerHTML = 'loading ...';
	$('AjaxMapReplacement').innerHTML = 'loading ...';
	new Ajax.Request(site_base_dir+'ajaxcall/gameladders/'+mode+'/'+gameid+'/'+opponent+'/'+pid+"/rand="+Math.round(Math.random()*1000000), {    
				method:'get',
				onSuccess: function(transport){ 
					try{
						$('AjaxLadderReplacement').innerHTML = transport.responseText;
					} catch(e) {}
				},
				onFailure: function(){ } 
	}); 
	new Ajax.Request(site_base_dir+'ajaxcall/gamemaps/'+mode+'/'+gameid+'/'+pid+"/rand="+Math.round(Math.random()*1000000), {    
				method:'get',
				onSuccess: function(transport){ 
					try{
						$('AjaxMapReplacement').innerHTML = transport.responseText;
					} catch(e) {}
				},
				onFailure: function(){ } 
	});
	//document.getElementById('quickChallengeGameText').innerHTML = obj.options[obj.selectedIndex].text;
	//document.getElementById('quickChallengeGameLogo').getElementsByTagName('img')[0].src = site_base_dir_img + "games/menu/" + obj.options[obj.selectedIndex].label + "_xl_fff.gif";
}

function AjaxMessageWindowOpen()
{
	return document.getElementById('MessagePopup').style.display == 'block';
}

var AjaxMessageWindowLoadingContent = '';

function AjaxDeleteMessage(url, msgid)
{
	new Ajax.Request(url+msgid, {    
				method:'get',
				onSuccess: function(transport){ 
					try{
						$('Ajax_Message_CB_'+msgid).checked = false;
						$('Ajax_Message_'+msgid).style.overflow = 'hidden';
						$('Ajax_Message_'+msgid).style.height = $('Ajax_Message_'+msgid).offsetHeight+'px';
						Effect.Shrink('Ajax_Message_'+msgid);
						Effect.Fade('Ajax_Message_'+msgid);
					} catch(e) {}
				},
				onFailure: function(){ } 
	}); 
}

function AjaxDeleteMessageDirect(url, msgid, section) {
	AjaxDeleteMessage(url, msgid);
	
	if(section == 'both') {
		// update both because we don't know to which section the message belongs
		UpdatePagingCount('inbox', 1);
		UpdatePagingCount('sent', 1);
		setTimeout("AjaxUpdateCount('both')",1000);
	} else {
		UpdatePagingCount(section, 1);
		setTimeout("AjaxUpdateCount('"+section+"')",1000);
	}
}
/*



var AjaxCBOpacityStop = 100;
function AjaxCBFadeIn(delay, opacity, step)
{
	var elm = document.getElementById('AjaxPopup');
	if (opacity+step >= AjaxCBOpacityStop) opacity = AjaxCBOpacityStop;
	elm.style.filter = "Alpha(opacity="+opacity+")";
	elm.style.opacity = opacity/100;
	opacity = opacity + step;
	if (opacity >= AjaxCBOpacityStop) return;
	setTimeout("AjaxCBFadeIn("+delay+","+opacity+","+step+")", delay);
}

function AjaxCBFadeOut(delay, opacity, step)
{
	var elm = document.getElementById('ContentBlocker');
	elm.style.filter = "Alpha(opacity="+opacity+")";
	elm.style.opacity = opacity/100;
	
	opacity = opacity -step;
	if (opacity <= 0) {
		elm.style.display = 'none';
		return;
	}
	setTimeout("AjaxCBFadeOut("+delay+","+opacity+","+step+")", delay);
}


function AjaxSetPathTracker(id)
{
	new Ajax.Request(site_base_dir+"ajaxcall/setpathtracker/"+id+"/rand="+Math.round(Math.random()*1000000), {    
				method:'get',
				onSuccess: function(transport){ },
				onFailure: function(){ } 
	}); 
}

function AjaxUpdateBGs()
{
	var bg = 'Light';
	for (var i = 0; i < AjaxInboxMessagesDisp.length; i++)
	{
		var elm = document.getElementById('Ajax_Message_'+AjaxInboxMessagesDisp[i]);
		if (elm.style.display != 'none')
		{
			if (bg == 'Dark') { bg = 'Light';}
			else {bg = 'Dark';}
			elm.getElementsByTagName('div')[0].className = bg;
			
		}
	}
	
	var bg = 'Light';
	for (var i = 0; i < AjaxSentMessagesDisp.length; i++)
	{
		var elm = document.getElementById('Ajax_Message_'+AjaxSentMessagesDisp[i]);
		if (elm.style.display != 'none')
		{
			if (bg == 'Dark') { bg = 'Light';}
			else {bg = 'Dark';}
			elm.getElementsByTagName('div')[0].className = bg;
			
		}
	}
}
*/

function AjaxMessageWindowSent()
{
	AjaxPopupSent2('sentmessageform', false);
	setTimeout("AjaxUpdateCount('both')",1000);
}

function AjaxPopupSent(id)
{
	AjaxPopupSent2(id, false);
}

function AjaxPopupSent2(id, close)
{
	var form = document.getElementById(id);
	//var elm = document.getElementById('AjaxPopup');
	//var elmc = document.getElementById('AjaxMB');
	var url = form.action;
	if(document.getElementsByName("msgtitle")[0]){
		if( document.getElementsByName("msgtitle")[0].value == "" )document.getElementsByName("msgtitle")[0].value = "no Subject";
	}
	
	new Ajax.Request(url+"/rand="+Math.round(Math.random()*1000000), {    
				method:'post',
				parameters: $(id).serialize(),
				onSuccess: function(transport){ 
					var response = transport.responseText; 
					//document.getElementById('AjaxMB').innerHTML = response;
					popup.show(response);
					if (close)
					{
						popup.hide();
						//AjaxHideMessageWindow(); 
					}
					},
				onFailure: function(){ document.getElementById('AjaxPopup').innerHTML = 'Error<br />'+AjaxMessageWindowLoadingContent; } 
	}); 
	popup.show('<div id="MessagePopup"><div class="ajax-status-message">Sending...</div></div>');
}


function AjaxFitMessagePopup()
{
try{
	GetWindowSize();
	var elm = document.getElementById('MessagePopup');
	var width = elm.offsetWidth;
	var height = elm.offsetHeight;
	var x = (screenw - width) / 2;
	var y = (screenh + window.getScrollTop()) - ((height + screenh) / 2);
	elm.style.position = 'absolute';
	elm.style.left = x+'px';
	elm.style.top = y+'px';
	
	elm = document.getElementById('ContentBlocker');
	elm.style.position = 'absolute';
	width = screenw; //elm.style.width.substring(0, elm.style.width.length -2);
	height = screenh; //elm.style.height.substring(0, elm.style.height.length -2);
	x = (screenw - width) / 2;
	y = (screenh + window.getScrollTop()) - ((height + screenh) / 2);
	elm.style.left = x+'px';
	elm.style.top = y+'px';
	} catch(e) {
		// alert(e);
	}
}

function AjaxFitYesNoQuestionPopup() {
	try{
		GetWindowSize();
		var elm = document.getElementById('YesNoQuestionPopup');
		elm.style.position = 'absolute';
		var width = elm.offsetWidth;
		var height = elm.offsetHeight;
		var x = (screenw - width) / 2;
		var y = (screenh + window.getScrollTop()) - ((height + screenh) / 2);
		elm.style.left = x+'px';
		elm.style.top = y+'px';
		
		elm = document.getElementById('ContentBlocker');
		elm.style.position = 'absolute';
		width = screenw; //elm.style.width.substring(0, elm.style.width.length -2);
		height = screenh; //elm.style.height.substring(0, elm.style.height.length -2);
		x = (screenw - width) / 2;
		y = (screenh + window.getScrollTop()) - ((height + screenh) / 2);
		elm.style.left = x+'px';
		elm.style.top = y+'px';
	
	} catch(e) {
		// alert(e);
	}
}

function ControlSearch(elementId)
{
	var elms = document.getElementById(elementId);	
	if (elms.value.length < 4 || elms.value == 'Keywords')
	{
		//ShowMessagePopup('Please enter at least 4 characters.');
		ShowMessagePopup(elms.value);
		return false;
	}
	return true;
}

function ControlCommunitySearch()
{
	var elms = document.getElementById('community_search');
	var elme = document.getElementById('external_content_id');
	if (elme == null || elms == null) {return true;}
	var ext = elme.value;
	if (ext == 'forum' || ext == 'blogs' || ext == 'myblog')
	{
		ShowMessagePopup(elms.value);
		//return ControlSearch('community_search');
	}
	return true;
}

function ShowMessagePopup(text)
{	/*
	Event.observe(window, 'scroll', AjaxFitMessagePopup, false);
	Event.observe(window, 'resize', AjaxFitMessagePopup, false);
	//AjaxSetAllFlashMode('transparent');
	AjaxSetAllFlashMode('hidden');
	
	var elm = document.getElementById("MessagePopup");
	elm.style.display = "block";
	var elmt = document.getElementById("MessagePopupText");
	elmt.innerHTML = text;
	var elmc = document.getElementById("ContentBlocker");
	elmc.style.display = "block";
	AjaxFitMessagePopup();
	*/
	popup.show(text);

}
/*
function HideYesNoQuestionPopup()
{
	try{
	var elm = document.getElementById("YesNoQuestionPopup");
	elm.style.display = "none";
	var elmc = document.getElementById("ContentBlocker");
	elmc.style.display = "none";
	ContentBlocker();
	//AjaxSetAllFlashMode('window');
	AjaxSetAllFlashMode('visible');
	}catch(e){
		//  alert(e);
	}
}
*/

function HideMessagePopup()
{
	popup.hide();
	/*
	try{
	var elm = document.getElementById("MessagePopup");
	elm.style.display = "none";
	var elmc = document.getElementById("ContentBlocker");
	elmc.style.display = "none";
	//AjaxSetAllFlashMode('window');
	AjaxSetAllFlashMode('visible');
	}catch(e){
		// alert(e);
	}
	*/
}

/* function AjaxFitMessageWindow()
{
	GetWindowSize();
	
	var elm = document.getElementById('AjaxPopup');
	elm.style.position = 'absolute';
	var width = 407; //elm.style.width.substring(0, elm.style.width.length -2);
	var height = 407; //elm.style.height.substring(0, elm.style.height.length -2);
	var x = (screenw - width) / 2;
	var y = (screenh + window.getScrollTop()) - ((height + screenh) / 2);
	elm.style.left = x+'px';
	elm.style.top = y+'px';
	
	elm = document.getElementById('ContentBlocker');
	elm.style.position = 'absolute';
	width = screenw; //elm.style.width.substring(0, elm.style.width.length -2);
	height = screenh; //elm.style.height.substring(0, elm.style.height.length -2);
	x = (screenw - width) / 2;
	y = (screenh + window.getScrollTop()) - ((height + screenh) / 2);
	elm.style.left = x+'px';
	elm.style.top = y+'px';
} */

var AjaxPopupLock = false;

//Legacy Support
function AjaxShowMessageWindow(userid, url, override)
{
	if(!userid.length){
		AjaxShowPopup(url+"o/" + userid, override);
	}else{
		if(!userid[0]){
			temp = userid.length;
			userid = new Array(1);
			userid[0] = temp;
		}
		temp="";
		for(i = 1; i < userid.length; i++){
			if(i == userid.length - 1){
				temp = temp + userid[i];
				break;
			}
			temp = temp + userid[i] + "x";
		}
		if(temp == "")temp = "o";
		AjaxShowPopup(url+temp+"/"+userid[0], override);
	}
	//ki_checkfornewmessages();
}


function AjaxShowMessageNew(url, msgID) {
	AjaxShowPopup(url);
	var xnode = $('Ajax_Message_'+msgID);
	xnode.className = 'messageRead';
	setTimeout("AjaxUpdateCount('inbox')",1000);
}


function AjaxUpdateCount(section) {
	new Ajax.Request(site_base_dir + "ajaxcall/messages/reportjson/all/rand="+Math.round(Math.random()*1000000), {    
				method:'get',
				onSuccess: function(transport){					
					try {
						
						messageCount = jsonParse(transport.responseText);
						if(section == 'inbox' || section == 'sent' || section == 'invites') {
							$(section+'MessageCount').innerHTML = messageCount[section];
						}
						
						if(section == 'both') {
							if($('inboxMessageCount')) {
								$('inboxMessageCount').innerHTML = messageCount['inbox'];
							}
							
							if($('sentMessageCount')) {
								$('sentMessageCount').innerHTML = messageCount['sent'];
							}
							
							if($('inboxMessageCountTotal')) {
								mcDummy = messageCount['inbox'].split("/");
								$('inboxMessageCountTotal').innerHTML = mcDummy[1];
							}
													
							if($('sentMessageCountTotal')) {
								$('sentMessageCountTotal').innerHTML = messageCount['sent'];
							}
						}
					} catch(e) { 
						// alert(e);
					}
				},
				onFailure: function(){ } 				
	}); 

}


function UpdatePagingCount(section, count) {
	try {
		if(section == 'inbox' || section == 'sent' || section == 'invites') {
			to = $(section+'MessageCountTo').innerHTML - count;
			total = $(section+'MessageCountTotal').innerHTML - count;
			$(section+'MessageCountTo').innerHTML = to;
			$(section+'MessageCountTotal').innerHTML = total;
			if(to == "0") {
				$(section+'MessageCountFrom').innerHTML = "0";
			}
		}
	} catch(e) { }
}


var saveurlforstepback;
function AjaxShowPopup(url, override)
{
	saveurlforstepback = url;

	if (AjaxPopupLock)
	{
		if(override)
		{
			AjaxHidePopup();
		}
		else
		{
			return;
		}
	}	
	else
	{
		//AjaxSetAllFlashMode('transparent');
		AjaxSetAllFlashMode('hidden');
	}
	AjaxPopupLock = true;
	//AjaxCBFadeIn(70, 0, 10);
	//Event.observe(window, 'scroll', AjaxFitMessageWindow, false);
	//Event.observe(window, 'resize', AjaxFitMessageWindow, false);
	//document.getElementById('ContentBlocker').style.display = "block";
	//AjaxFitMessageWindow();
	//var elm = document.getElementById('AjaxPopup');
	//var elmc = document.getElementById('AjaxMB');
	//AjaxMessageWindowLoadingContent = elmc.innerHTML;
	
	new Ajax.Request(url+"/rand="+Math.round(Math.random()*1000000), {    
				method:'get',
				onSuccess: function(transport){
					var response = transport.responseText; 
					//ki_checkfornewmessages();
					//document.getElementById('AjaxMB').innerHTML = response;
		
					popup.show(response);
					
						if(document.sentmessageform.msgtitle && document.sentmessageform.msgtext){
							//AC
							new Ajax.Autocompleter("message_user_searchfield", "autocomplete_choices", site_base_dir + "ajaxcall/autocomplete/playerlist/", {
								minChars: 2,
								/*callback: positionAuto,*/
								updateElement: addUserToMessage
								}
							);
							//stuff
							if(document.sentmessageform.msgtitle.value.substr(0,3) == "Re:")
								document.sentmessageform.msgtext.focus();
						}
					},
				onFailure: function(){ document.getElementById('AjaxMB').innerHTML = 'Error<br />'+AjaxMessageWindowLoadingContent; } 
	}); 
	
	//elm.style.display = 'block';
	
	for (var x=0; x < document.getElementsByTagName("textarea").length; x++ ){
		if (document.getElementsByTagName("textarea")[x].name=="msgtext") document.getElementsByTagName("textarea")[x].focus();
	}
}

/*
function positionAuto(element, entry) {
    setTimeout( function() {
      //alert($('message_user_searchfield').offsetHeight);
	  Element.clonePosition($('autocomplete_choices'), $('message_user_searchfield'));
	}, 100);
  
  return entry;
}
*/

function addUserToMessage(li)
{
	var paid = "";
	var divs = li.getElementsByTagName("div");
	
		var id = li.id;
		if (li.childNodes[0].nodeName == 'DIV')
		{
			var displayname = li.getElementsByTagName("div")[0].innerHTML;;
			paid = li.getElementsByTagName("div")[1].innerHTML;;
			var avatar = li.getElementsByTagName("img")[0].src.replace(/_32/,"_50");

		}
		else
		{
			//alert (li.childNodes.toSource());
			// var displayname = li.childNodes[0].nodeValue;
			// paid = li.childNodes[1].nodeValue;
			// var avatar = li.childNodes[2].src;
			var displayname = divs[0].innerHTML;
			paid = divs[1].innerHTML;
			var avatar = li.getElementsByTagName("img")[0].src.replace(/_32/,"_50");
		}

	$('message_user_searchfield').value = displayname;
	$('message_avatar').src = avatar;
	$('message_to').value = id;
	$('message_to_link').href = site_base_dir + "community/profile/" + paid;
	$('message_avatar').parentNode.href = $('message_to_link').href
	$('message_to_display'). innerHTML = displayname;

	$('message_select').style.display = "none";
	$('message_selected').style.display = "block";
	$('message_send_button').style.display = "inline";
}

function MessageChangeUser()
{
	$('message_select').style.display = "block";
	$('message_selected').style.display = "none";
	
	$('message_send_button').style.display = "none";
}

//Legacy Support
function AjaxHideMessageWindow()
{
	AjaxHidePopup();
}

function AjaxHidePopup()
{
	AjaxPopupLock = false;
	popup.hide();
	//AjaxCBFadeOut(80, document.getElementById('ContentBlocker').style.opacity*100, 18);
	// window.onresize  = null;
	// var elm = document.getElementById('AjaxPopup');
	// var elmc = document.getElementById('AjaxMB');
	// elm.style.display = 'none';
	// elmc.innerHTML = AjaxMessageWindowLoadingContent;
	//AjaxSetAllFlashMode('window');
	// AjaxSetAllFlashMode('visible');
	// document.getElementById('ContentBlocker').style.display = "none";
}




//Message Center

var AjaxInboxMessages = Array();
var AjaxInboxMessagesDisp = Array();
var AjaxSentMessages = Array();
var AjaxSentMessagesDisp = Array();
var AjaxInviteMessages = Array();
var AjaxInviteMessagesDisp = Array();
var AjaxMessagesBaseUrl;
var AjaxInboxFirst = true;
var AjaxSentFirst = true;
var AjaxInviteFirst = true;
var AjaxInboxBuffer = '';
var AjaxSentBuffer = '';
var AjaxInviteBuffer = '';
var AjaxInboxBg = 1;
var AjaxSentBg = 1;
var AjaxInviteBg = 1;
var AjaxActiveSection = 'inbox';
var AjaxIndexLoaded = false;
var AjaxInviteMessagesReported = new Array();
var AjaxASLock = false;


function StartHighlightInvitesLink()
{
	var elm = document.getElementById('PendingInvitesLINK');
	elm.style.color = '#f00';
}

function StoppHighlightInvitesLink()
{
	var elm = document.getElementById('PendingInvitesLINK');
	elm.style.color = '';
}

function AjaxSetMCSection(section)
{
	AjaxActiveSection = section;
	if (AjaxActiveSection == 'invite')
	{
		StoppHighlightInvitesLink();
	}
	else
	{
		if (AjaxInviteMessagesReported.length > 0)
		{
			StartHighlightInvitesLink();
		}
	}
}

function AjaxMessageCenterInit(url)
{
	AjaxMessagesBaseUrl = url;
	inbox= document.getElementById('AjaxMessageInbox');
	inbox.innerHTML = '';
	AjaxMessageCenterLoadIndex();
}

function AjaxDeleteSelectedSent(url)
{
	//if (AjaxSentFirst) return;
	actionCount = 0;
	for (var i = 0; i < AjaxSentMessagesDisp.length; i++)
	{
		if (document.getElementById('Ajax_Message_CB_'+AjaxSentMessagesDisp[i]).checked)
		{
			AjaxDeleteMessage(url, AjaxSentMessagesDisp[i]);
			actionCount++;
		}
	}
	
	UpdatePagingCount('sent', actionCount);
	setTimeout("AjaxUpdateCount('sent')",1000);
	//ki_checkfornewmessages();
}

function AjaxDeleteSelectedInbox(url)
{
	//if (AjaxInboxFirst) return;
	actionCount = 0;
	for (var i = 0; i < AjaxInboxMessagesDisp.length; i++)
	{
		if (document.getElementById('Ajax_Message_CB_'+AjaxInboxMessagesDisp[i]).checked)
		{
			AjaxDeleteMessage(url, AjaxInboxMessagesDisp[i]);
			actionCount++;
		}
	}
	
	UpdatePagingCount('inbox', actionCount);
	setTimeout("AjaxUpdateCount('inbox')",1000);
	//ki_checkfornewmessages();
}

function AjaxMessageSelected(cb, msgid)
{

	if (cb.checked)
	{
		AjaxInboxMessagesDisp.push(msgid);
	}
	else
	{
		buffer = new Array();
		for (var i = 0; i < AjaxInboxMessagesDisp.length; i++)
		{
			if (AjaxInboxMessagesDisp[i] == msgid)
				continue;
			buffer.push(AjaxInboxMessagesDisp[i]);
		}
		AjaxInboxMessagesDisp = buffer;
	}
}

function AjaxMessageSentSelected(cb, msgid)
{

	if (cb.checked)
	{
		AjaxSentMessagesDisp.push(msgid);
	}
	else
	{
		buffer = new Array();
		for (var i = 0; i < AjaxSentMessagesDisp.length; i++)
		{
			if (AjaxSentMessagesDisp[i] == msgid)
				continue;
			buffer.push(AjaxSentMessagesDisp[i]);
		}
		AjaxSentMessagesDisp = buffer;
	}
}


function AjaxMarkasreadSelectedInbox(url)
{
	//if (AjaxInboxFirst) return;
	for (var i = 0; i < AjaxInboxMessagesDisp.length; i++)
	{
		if (document.getElementById('Ajax_Message_CB_'+AjaxInboxMessagesDisp[i]).checked)
		{
			AjaxMarkasreadMessage(url, AjaxInboxMessagesDisp[i]);
		}
	}
	
	setTimeout("AjaxUpdateCount('inbox')",1000);
	
	//ki_checkfornewmessages();
}

function AjaxMarkasreadMessage(url, msgid)
{
	new Ajax.Request(url+msgid, {    
				method:'get',
				onSuccess: function(transport){ 
					try{
					var xnode = $('Ajax_Message_'+msgid);
					xnode.className = 'messageRead';
					$('Ajax_Message_CB_'+msgid).checked = false;
					} catch(e) {}
				},
				onFailure: function(){ } 
	});
}




var to_reportall;

function AjaxMessageCenterLoadIndex()
{
	window.clearTimeout(to_reportall);
	
	new Ajax.Request(AjaxMessagesBaseUrl+'messages/report/all', {  
		method:'get',
		onSuccess: function(transport){ 
					var response = transport.responseXML; 
					AjaxMessageCenterProcessIndex(response)     },
		onFailure: function(){ } 
	}); 
}

function AjaxMessageCenterProcessIndex(XML)
{
	var inbox = XML.getElementsByTagName("inbox");
	
	inbox = inbox.item(0);
	var inboxTotal = inbox.getElementsByTagName("total");
	inboxTotal = inboxTotal.item(0).firstChild.nodeValue;
	var inboxUnread = inbox.getElementsByTagName("unread");
	inboxUnread = inboxUnread.item(0).firstChild.nodeValue;
	var InboxMessages = Array();
	var Msgs = inbox.getElementsByTagName("message");
	for (var i = 0; i < Msgs.length; i++)
	{
		var msgid = Msgs.item(i).getElementsByTagName("id");
		InboxMessages.push(msgid.item(0).firstChild.nodeValue);
	}
	var sent = XML.getElementsByTagName("sent").item(0);
	var SentMessages = Array();
	Msgs = sent.getElementsByTagName("message");
	for (var i = 0; i < Msgs.length; i++)
	{
		var msgid = Msgs.item(i).getElementsByTagName("id");
		SentMessages[i] = msgid.item(0).firstChild.nodeValue;
	}
	var invite = XML.getElementsByTagName("invites").item(0);
	var InviteMessages = Array();
	Msgs = invite.getElementsByTagName("message");
	for (var i = 0; i < Msgs.length; i++)
	{
		var msgid = Msgs.item(i).getElementsByTagName("id");
		InviteMessages[i] = msgid.item(0).firstChild.nodeValue;
	}
	if (InviteMessages.length > 0 && AjaxActiveSection != 'invite') 
	{
		StartHighlightInvitesLink();
	}
	
	document.getElementById("AjaxUnreadMessages").innerHTML = inboxUnread;
	
	AjaxInboxMessages = InboxMessages;
	AjaxSentMessages = SentMessages;
	AjaxInviteMessages = InviteMessages;
	AjaxInviteMessagesReported = Array();
	for (var i = 0; i < AjaxInviteMessages.length; i++)
	{
		AjaxInviteMessagesReported.push(AjaxInviteMessages[i]);
	}
	
	AjaxIndexLoaded = true;
	
	AjaxLoadActiveSection();

}


function AjaxLoadActiveSection()
{
	if (! AjaxIndexLoaded) return;
	switch(AjaxActiveSection)
	{
		case 'inbox': {AjaxMessageCenterLoadInboxItems();break;}
		case 'sent': {AjaxMessageCenterLoadSentItems();  break;}
		case 'invite': {AjaxMessageCenterLoadInviteItems(); break;}
	}
}

function AjaxUpdateProgressInbox()
{
	var elm = document.getElementById('progress_inbox');
	var x = AjaxInboxMessages.length;
	var y = AjaxInboxMessagesDisp.length;
	var wa = document.getElementById('progress_inbox_all').offsetWidth -2;
	elm.style.width = (y/(x+y)*wa)+"px";
}

function AjaxUpdateProgressSent()
{
	var elm = document.getElementById('progress_sent');
	var x = AjaxSentMessages.length;
	var y = AjaxSentMessagesDisp.length;
	var wa = document.getElementById('progress_sent_all').offsetWidth -2;
	elm.style.width = (y/(x+y)*wa)+"px";
}

function AjaxUpdateProgressInvite()
{
	var elm = document.getElementById('progress_invites');
	var x = AjaxInviteMessages.length;
	var y = AjaxInviteMessagesDisp.length;
	var wa = document.getElementById('progress_invites_all').offsetWidth -2;
	elm.style.width = (y/(x+y)*wa)+"px";
}

function AjaxMessageCenterLoadInboxItems()
{
	while(1)
	{
		if (AjaxInboxMessages.length < 1) {
			//ReCalibrateScrollBar(document.getElementById('AjaxMessageInbox').parentNode.parentNode.id);
			AjaxFlushMessagesInbox();
			window.clearTimeout(to_reportall);
			to_reportall = setTimeout("AjaxMessageCenterLoadIndex()", 30000);
			return;
		}
		var msgid = AjaxInboxMessages.pop();
		var found = false;
		for (var i = 0; i < AjaxInboxMessagesDisp.length; i++)
		{
			if ( AjaxInboxMessagesDisp[i] == msgid)
			{
				found = true;
				break;
			}
		}
		if (! found) break;
	}
	AjaxInboxMessagesDisp.push(msgid);
	AjaxInboxBg = (AjaxInboxBg +1)%2;
	new Ajax.Request(AjaxMessagesBaseUrl+'messages/showheader/'+msgid+'/visualbg='+AjaxInboxBg+'/', {    
				method:'get',
				onSuccess: function(transport){ 
					var response = transport.responseText; 
					if (AjaxInboxFirst) AjaxUpdateProgressInbox();
					AjaxMessageCenterDisplayHeader(response);
					if (!AjaxInboxFirst){
						Effect.Pulsate('Ajax_Message_'+msgid);
					}
					AjaxMessageCenterLoadInboxItems();
					   },
				onFailure: function(){ } 
	}); 
}

var AjaxInvitesDeleted = Array();

function AjaxMessageCenterLoadInviteItems()
{

	try{
	//check for removed messages
	// alert('before: '+AjaxInviteMessagesDisp.length);
	for (var i = 0; i < AjaxInviteMessagesDisp.length; i++)
	{
		var found = -1;
		for (var j = 0; j < AjaxInviteMessagesReported.length; j++)
		{
			if (AjaxInviteMessagesDisp[i] ==AjaxInviteMessagesReported[j])
			{
				found = j;
				break;
			}
		}
		for (var j = 0; j < AjaxInvitesDeleted.length; j++)
		{
			if (AjaxInviteMessagesDisp[i] == AjaxInvitesDeleted[j])
			{
				found = 100;
				break;
			}
		}
		if (found < 0)
		{
			//remove
			AjaxInvitesDeleted.push(AjaxInviteMessagesDisp[i]);
			Effect.SwitchOff("Ajax_Invite_"+AjaxInviteMessagesDisp[i]);
			
		}
	}
	} catch(e) {
		// alert(e);
	}
	
	while(1)
	{
		if (AjaxInviteMessages.length < 1) {
			//ReCalibrateScrollBar(document.getElementById('AjaxMessageInvites').parentNode.parentNode.id);
			AjaxFlushMessagesInvite();
			window.clearTimeout(to_reportall);
			to_reportall = setTimeout("AjaxMessageCenterLoadIndex()", 30000);
			return;
		}
		var msgid = AjaxInviteMessages.pop();
		var found = false;
		for (var i = 0; i < AjaxInviteMessagesDisp.length; i++)
		{
			if ( AjaxInviteMessagesDisp[i] == msgid)
			{
				found = true;
				break;
			}
		}
		// if (!AjaxInviteFirst) {alert(msgid+' '+found);}
		if (! found) break;
	}
	
	AjaxInviteMessagesDisp.push(msgid);
	AjaxInviteBg = (AjaxInviteBg +1)%2;
	
	new Ajax.Request(AjaxMessagesBaseUrl+'messages/showinviteheader/'+msgid+'/visualbg='+AjaxInviteBg+'/', {    
				method:'get',
				onSuccess: function(transport){ 
					var response = transport.responseText; 
					if (AjaxInviteFirst) AjaxUpdateProgressInvite();
					AjaxMessageCenterDisplayHeaderInvite(response);
					if (!AjaxInviteFirst) { Effect.Pulsate('Ajax_Invite_'+msgid);}
					AjaxMessageCenterLoadInviteItems();
					   },
				onFailure: function(){ } 
	}); 
}




function AjaxFlushMessagesInbox()
{
	if (!AjaxInboxFirst) return;
	AjaxInboxFirst = false;
	document.getElementById('progress_inbox_p').style.display = 'none';
	var box = document.getElementById("AjaxMessageInbox");
	box.innerHTML = AjaxInboxBuffer;
}

function AjaxFlushMessagesSent()
{
	if (!AjaxSentFirst) return;
	AjaxSentFirst = false;
	document.getElementById('progress_sent_p').style.display = 'none';
	var box = document.getElementById("AjaxMessageSent");
	box.innerHTML = AjaxSentBuffer;
	
}

function AjaxFlushMessagesInvite()
{
	if (!AjaxInviteFirst) return;
	AjaxInviteFirst = false;
	document.getElementById('progress_invites_p').style.display = 'none';
	var box = document.getElementById("AjaxMessageInvites");
	box.innerHTML = AjaxInviteBuffer;
}

function AjaxMessageCenterDisplayHeader(text)
{
	//var elm = document.createtextNode(text);
	if (AjaxInboxFirst)
	{
		AjaxInboxBuffer = text + AjaxInboxBuffer;
		return;
	}	
	
	var box = document.getElementById("AjaxMessageInbox");
	box.innerHTML = text+box.innerHTML;
}


function AjaxMessageCenterLoadSentItems()
{

	while(1)
	{
		if (AjaxSentMessages.length < 1) {
			//ReCalibrateScrollBar(document.getElementById('AjaxMessageSent').parentNode.parentNode.id);
			AjaxFlushMessagesSent();
			window.clearTimeout(to_reportall);
			to_reportall = setTimeout("AjaxMessageCenterLoadIndex()", 30000);
			return;
		}
		var msgid = AjaxSentMessages.pop();
		var found = false;
		for (var i = 0; i < AjaxSentMessagesDisp.length; i++)
		{
			if ( AjaxSentMessagesDisp[i] == msgid)
			{
				found = true;
				break;
			}
		}
		if (! found) break;
	}
	AjaxSentMessagesDisp.push(msgid);
	
	AjaxSentBg = (AjaxSentBg +1)%2;
	
	new Ajax.Request(AjaxMessagesBaseUrl+'messages/showheader/'+msgid+'/visualbg='+AjaxSentBg+'/', {    
				method:'get',
				onSuccess: function(transport){ 	
					var response = transport.responseText; 
					if (AjaxSentFirst) AjaxUpdateProgressSent();
					AjaxMessageCenterDisplayHeaderSent(response);
					AjaxMessageCenterLoadSentItems();
					   },
				onFailure: function(){ } 
	});
		
}

function AjaxMessageCenterDisplayHeaderSent(text)
{
	if (AjaxSentFirst)
	{
		AjaxSentBuffer = text + AjaxSentBuffer;
		return;
	}	

	var box = document.getElementById("AjaxMessageSent");
	box.innerHTML = text+box.innerHTML;

}

function AjaxMessageCenterDisplayHeaderInvite(text)
{
	if (AjaxInviteFirst)
	{
		AjaxInviteBuffer = text + AjaxInviteBuffer;
		return;
	}	

	var box = $("AjaxMessageInvites");
	box.innerHTML = text+box.innerHTML;
}



var AjaxSchowMessagesStates = new Array;

function AjaxShowMessage(msgid, url)
{
	if (! AjaxSchowMessagesStates[msgid])
	{
		if (! _AjaxShowMessageIsOpen(msgid))
		{
			AjaxSchowMessagesStates[msgid] = true;
			new Ajax.Request(url+msgid, {    
				method:'get',
				onSuccess: function(transport){ 
					AjaxSchowMessagesStates[msgid] = false;
					var response = transport.responseText; 
					_AjaxShowMessage(msgid, response, true);     },
				onFailure: function(){ AjaxSchowMessagesStates[msgid] = false; _AjaxShowMessage(msgid,'Unable to fetch message', true) } ,
				onLoading: function(){ _AjaxShowMessage(msgid,'loading message...', true) }
			}); 
		}
		else
		{
				_AjaxShowMessage(msgid, '', false);
		}
	}
}

function _AjaxShowMessageIsOpen(msgid)
{
	var elm = document.getElementById("inbox_msg_content_"+msgid);
	return elm.style.display == 'inline'
}

function _AjaxShowMessage(msgid, content, enfshow)
{
	var elm = document.getElementById("inbox_msg_content_"+msgid);
	if (elm.style.display == 'none' || enfshow)
	{
		document.getElementById("inbox_msg_title_"+msgid).style.fontWeight = 'normal';
		elm.innerHTML = content;
		elm.style.display = "inline";
	}
	else
	{
		elm.innerHTML = '';
		elm.style.display = "none";
	}
}

function SearchFieldFocus(field, deftext)
{
	if (field.value == deftext)
	{
		field.value = '';
		//field.style.color = '#000';
	}
}

function SearchFieldBlur(field, deftext)
{
	if (field.value == '')
	{
		//field.style.color = '#c0c0c0';
		field.value = deftext;
	}
}

ajaxCalendarCurrentRequest = false;
ajaxCalendarDelayId = 0;

function AjaxCalendarReturnCall(content) {
	return overlib(content, FULLHTML, OFFSETX,-10, OFFSETY,-10);
}

function AjaxCalendarReturnCall2(content) {
	return overlib2(content, FULLHTML, OFFSETX,-10, OFFSETY,-10);
}

// Hier kommt das Flackern her ....
function AjaxCalendarPopUpReturnCall(content) {
	cClick();
	return overlib(content, FULLHTML, STICKY, REF,'calpopup');
}

function AjaxCalendarPopUpClose() {
	cClick();
}

function AjaxCalendarPopUpFillForm(day_id, day_value, month_id, month_value, year_id, year_value) {
	cClick();
	
	$(day_id).selectedIndex = day_value - 1;
	$(month_id).selectedIndex = month_value - 1;
	
	year_elem = $(year_id);
	
  for(var i = 0; i < year_elem.length; i++) {
  	if(year_elem.options[i].value == year_value)
  	  year_elem.selectedIndex = i;
  }
}

function AjaxCalendarClearRequest() {
	if(ajaxCalendarDelayId) {
    clearTimeout(ajaxCalendarDelayId);
    ajaxCalendarDelayId = 0;
  }
  
  if(ajaxCalendarCurrentRequest) {
    ajaxCalendarCurrentRequest.abort();
    ajaxCalendarCurrentRequest = false;
  }
}

function AjaxCalendarGetDayEvents(url, handler, delay) {
  AjaxCalendarClearRequest();
  
  ajaxCalendarDelayId = setTimeout("" + 
    "new Ajax.Request('" + url + "', {" + 
	  "  method:'get', " + 
	  "  onSuccess: function(transport) {return " + handler + "(transport.responseText);}," +
	  "  onCreate: function(transport) {ajaxCalendarCurrentRequest = transport;}," +
	  "  onFailure: function(){ /* .innerHTML = 'Unable to fetch message'; */ }," +
	  "  onLoading: function(){ /* .innerHTML = 'Loading response ...'; */ }" +
	  "}); ", delay);
}

function AjaxCalendarGetPopUp(url) {
	new Ajax.Request(url, {
		method:'get', 
		onSuccess: function(transport) { return AjaxCalendarPopUpReturnCall(transport.responseText); },
		onCreate: function(transport) { /* .innerHTML = 'Creating request'; */},
		onFailure: function(){ /* .innerHTML = 'Unable to fetch message'; */ },
		onLoading: function(){ /* .innerHTML = 'Loading response ...'; */ }
	});
}

function AjaxCalendarShiftDateSheets(container, url) {
	new Ajax.Updater(container, url);
}

function AjaxSetAllFlashMode(mode)
{
	//if (mode != "block") mode="none";
	if (mode != "hidden") mode="visible";
	for (var i = 0; i < RegisteredFlash.length; i++){
		RegisteredFlash[i].style.visibility = mode;
	}
	
	
	/*
	for (var i = 0; i < RegisteredFlashMovies.length; i++)
	{
	// alert();
		try{
			var themovie = RegisteredFlashMovies[i];
			var themovieelm = getFlashMovieObject(themovie.id);
			themovie.setWmode(mode);
			var elm = themovieelm.parentNode;
			elm.innerHTML = themovie.toString();
		}catch(e) {}
	}
	*/
}

function getFlashMovieObject(movieName){
if (window.document[movieName]){
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet")==-1){
if (document.embeds && document.embeds[movieName]){
return document.embeds[movieName];
}
}
else{
return document.getElementById(movieName);
}
}

///////////////////////////////////////////// SERVER INFO /////////////////////////////////////////////////////


function AjaxRequestSessionInfo(sid)
{
	$('progress-'+sid).style.visibility = "visible";
	 new Ajax.Request(site_base_dir+'/ajaxcall/sessioninfo/'+sid+'/', {    
					method:'get',
					onSuccess: function(transport){ 
						DisplaySessionInfo(sid, transport.responseText);
					},
					onFailure: function(){ } 
		}); 
}

var AjaxSessionInfosUpdaters = Array();

function ServerShowMore(obj, sid){
  CloseAllServerMore(obj);
  var smallObj = getParent(obj, "li");
						  var bigObj = nextObj(smallObj, "li");
						  if (bigObj && smallObj) {
						    smallObj.style.display = 'none';
						    bigObj.style.display = 'block';
						  }  
if (AjaxSessionInfoInterval != null) clearInterval(AjaxSessionInfoInterval);
  AjaxRequestSessionInfo(sid);
  AjaxSessionInfoInterval = window.setInterval("AjaxRequestSessionInfo("+sid+")",30000);
}

function ServerHideMore(obj){
try{
if (AjaxSessionInfoInterval != null) clearInterval(AjaxSessionInfoInterval);
    var obj3 =  getParent(obj, "li");
	var obj2 = previousObj(obj3, "li");
    if (obj2) {
	  obj2.style.display = 'block';
	  obj3.style.display = 'none';
	}
	}catch(e) {
		// alert(e);
	}
}

function CloseAllServerMore(obj) {
  var rootUl = getParent(getParent(obj, 'li'), 'ul');
  var node = rootUl.firstChild;
  do {
    if (node && (node.nodeName.toLowerCase() == 'li') && (node.className.toLowerCase() == 'big')) { 
	  node.style.display = 'none';
	  previousObj(node, 'li').style.display = 'block';
	}
    node = node.nextSibling;
  } while (node);
}


function LoadSecretQuest(email,errortext)
{
	//var validMail = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)(\\@)([a-zA-Z0-9\\-\\.]+)(\\.)([a-zA-Z]{2,4})$');
	//if (validMail.test(email)){
		var res;
		new Ajax.Request(site_base_dir+"ajaxcall/retrieve/email="+email+"/", {
					method:'get', 
					onSuccess: function(transport) {
									res = transport.responseText;
									if (res.substring(0,1) == '1')
									{
										$('retrieveStandardText').style.display = 'none';
										// enable submit button
										$('submitbutton').disabled = '';
										// also enable submit button
										//$('submitbutton').className = 'PlayallButton green large';										
										$('submitbox').style.display = 'block';
										$('secretquestbox').innerHTML = res.substring(1);
										$('secreta').focus();
									}
									else
									{
										$('submitbox').style.display = 'none';
										$('retrieveStandardText').style.display = 'block';
										AjaxShowPopup(errortext, false);
									}
							   },
					onCreate: function(transport) { /* .innerHTML = 'Creating request'; */},
					onFailure: function(){ /* .innerHTML = 'Unable to fetch message'; */ },
					onLoading: function(){ /* .innerHTML = 'Loading response ...'; */ }
					});
	/*
	}
	else{
		AjaxShowPopup(errortext, false);
	}
	*/
}

function highlightStars(count, playerid)
{
	for (var i = 1; i <= count; i++)
	{
		$('rating_star_'+playerid+'_'+i).style.backgroundPosition = "top left";
	}
	for (var j = ++count; j < 6; j++)
	{
		$('rating_star_'+playerid+'_'+j).style.backgroundPosition = "bottom left";
	}
}

function highlightStarsOut(playerid)
{
	highlightStars($('rating_form_'+playerid).rating.value, playerid);
}

function highlightStarsFix(count, playerid)
{
	$('rating_form_'+playerid).rating.value = count;
}
var sessionPlayerActive=0;
function AjaxTogglePlayerRating(playerid, sid)
{
	var players = document.getElementsByClassName("playAllSessionPlayerRating");
	for (var i = 0; i < players.length; i++)
	{
		if (players[i]!=$('playerid_'+playerid+'-content')) players[i].hide();
		//players[i].hide();
	}
	
	if (playerid == sessionPlayerActive)
	{
		sessionPlayerActive = null;
		return;
	}
	
	
	sessionPlayerActive = playerid;
	$('player_'+playerid+'_content').hide();
	$('player_'+playerid+'_loading').show();
	//$('playerid_'+playerid+'-content').show();
	
	new Ajax.Request(site_base_dir+"/ajaxcall/rating/"+sid+"/"+playerid+"/", {
					method:'get', 
					onSuccess: function(transport) {
									res = transport.responseText;
									$('player_'+playerid+'_content').innerHTML = res;
									$('rating_form_'+playerid).action = location.href + '/-/logic/webuser/dorating';
									$('player_'+playerid+'_loading').hide();
									$('player_'+playerid+'_content').show();
							   }
					});
}

function SetAvatarCustom()
{
	$('slectedAvatarImg').src = $('customAvatarImg').src;
	$('avatarid').value = 0;
}

function SetAvatarPhp(IdDestination,AvatarDestination,shadow,size,path){

	//document.getElementById(AvatarDestination).innerHTML = "<img src='" + site_base_dir + "avatar?id="+IdDestination+"&shadow="+shadow+"&size="+size+"&path="+ encodeURIComponent(path) + "' style='display:block; visibility:visible; width:90px; margin:0 auto 10px auto;' id='idprefixid=1' alt='Player Avatar' />";
	new Ajax.Request(site_base_dir + "avatar?id="+AvatarDestination+"&shadow="+shadow+"&size="+size+"&path="+ encodeURIComponent(path), {
			method:'get', 
			onSuccess: function(transport) { $('slectedAvatarImg').src = transport.responseText; },
			onCreate: function(transport) {},
			onFailure: function(){},
			onLoading: function(){}
	});
	//if (AvatarDestination.substr(0, 5)=="user_") AvatarDestination = AvatarDestination.substring(5);
	$('avatarid').value = AvatarDestination;
	Effect.Appear('remembertosubmit');
}


function AjaxSendDecline(commentid, url){
	var comment = "-";
	if($(commentid).value != "")comment = $(commentid).value;
	AjaxShowPopup(url+"/comment="+encodeURI(comment), true);
}

var liveTicker_aktiv = true;
var liveTicker_noChange = 0;
var liveTicker_datetime = 0;
function liveTicker(interval, timeout){
	if (liveTicker_aktiv) window.clearTimeout(liveTicker_aktiv);
	if (liveTicker_noChange*interval>timeout){
		$('liveTicker').hide();
		return;
	}
	var url = site_base_dir + "ajaxcall/liveticker/dummy";
	// alert (url);
	new Ajax.Request(url, {    
				method:'get',
				onSuccess: function(transport){
					//alert(transport.responseText.toSource());
					var responseArray = transport.responseText.split("]DEVIDER[");
					var response = responseArray[0];
					var datetime = responseArray[1];
					// alert (datetime);
					if (datetime.match(/nodatetime/)) return;
					if (datetime == liveTicker_datetime){
						liveTicker_noChange++;
					}
					else{
						liveTicker_noChange=0;
						$('liveTicker').hide();
						$('liveTicker').innerHTML = response;
						Effect.Appear('liveTicker');
					}
					liveTicker_datetime = datetime;
					liveTicker_aktiv = window.setTimeout(function(){liveTicker(interval, timeout)},interval);
					},
				onFailure: function(){ $('liveTicker').hide();} 
	});
}



var AjaxSessionInfos = Array();
var AjaxSessionInfoInterval = null;
function DisplaySessionInfo(sid, json) {
	try {
		// hide preloading div
		$('preloading-'+sid).style.display = 'none';
		
		// no data retrieved, return!
		if (json == null) {
			$('progress-'+sid).style.visibility = 'hidden';
			return;
		}
		
		// prefix for element id names 
		prefix = 'session_'+sid+'_';
		
		// get data from last load
		var oldData = AjaxSessionInfos[sid];
		if(oldData != null) {
			if(oldData.length == 0) {
				oldData = null;
			}
		}
		
		// parse retrieved data and save
		sessionData = jsonParse(json);
		AjaxSessionInfos[sid] = sessionData;
		
		
		// array of elements to cycle through
		elementsToUpdate = new Array("map", "location", "uptime", "levels", "stake");
		elementsToUpdateOrHide = new Array("nextmap", "timeleft", "roundsleft", "scoreleft", "nextgamemode");
		blinkingElements = new Array("map", "nextmap", "location", "levels", "stake", "timeleft", "roundsleft", "scoreleft", "nextgamemode");
		// changed elements are pushed in this array
		actuallyBlinkingElements = new Array();
		
		elementsToUpdate.each( function(curEl) {
			$(prefix+curEl).innerHTML = trim(sessionData.session[curEl]);			
		});
		
		elementsToUpdateOrHide.each( function(curEl) {
			if(trim(sessionData.session[curEl]) == "") {
				$(prefix+curEl+"outer").hide();
			} else {
				$(prefix+curEl).innerHTML = trim(sessionData.session[curEl]);	
				$(prefix+curEl+"outer").show();
			}
		});
		
		if(oldData != null) {
			blinkingElements.each( function(curEl) {
				if( sessionData.session[curEl] != oldData.session[curEl] ) {
					actuallyBlinkingElements.push(curEl);
				}
			});
		}		
		
		// rules link
		if($('session_'+sid+'_rules')) {
			$('session_'+sid+'_rules').href = site_base_dir+'games/rules/fragzone/'+sessionData.session.sessiontype.toLowerCase()+'/'+sessionData.session.gameshort;
		}
		
		// queue button
		if($(prefix+'queue_button')) {
			if(sessionData.session.canqueue == "alreadyqueued") {
				// greyed out with message that user is already queued for this server
				$(prefix+'queue_button').hide();
				$(prefix+'queue_button_inactive').show();
				$(prefix+'queue_button_inactive2').hide();
			} else if(sessionData.session.canqueue == "queuefull") {
				// greyed out with message that user has reached queue max
				$(prefix+'queue_button').hide();
				$(prefix+'queue_button_inactive').hide();
				$(prefix+'queue_button_inactive2').show();
			} else if(sessionData.session.canqueue == "allowed") {				
				// can join
				$(prefix+'queue_button').show();
				$(prefix+'queue_button_inactive').hide();
				$(prefix+'queue_button_inactive2').hide();
			}
		}
		
		
		// map image
		if (sessionData.session.mapexists == "1") {
			$('session_'+sid+'_mappic').src = JsRoutingBaseImages+'games/maps/'+sessionData.session.gameid+'/'+sessionData.session.map+'.jpg';
		} else {
			$('session_'+sid+'_mappic').src = JsRoutingBaseImages+'games/maps/default.jpg';
		}
	
	
		// admin show balance	
		if (sessionData.players.length == 0) {
			htmlplayers = sessionData.translations.noplayers;	
		} else {
			htmlplayers = '<table class="classic"><thead><tr><th>'+sessionData.translations.username+'</th><th>'+sessionData.translations.weapon+'</th><th>'+sessionData.translations.playtime+'</th><th>'+sessionData.translations.points+'</th><th>'+sessionData.translations.ping+'</th></tr></thead><tbody>';
			blinkingElementsPlayer = new Array("weapon", "points", "ping");
			
			for (j=0; j<sessionData.players.length; j++) {
				player = sessionData.players[j];
				
				// current balance of the player
				if(player['money_left'] != 'invisible') {
					player['money_left'] = ' [' + player['money_left'] + ']'; 
				} else {
					player['money_left'] = '';
				}
				
				
				if(player['a_user_id'] > 0) {				
					if(player['queued'] == 1) {
						// queued players
						htmlplayers += '<tr><td class="text-left"><a href="'+site_base_dir+'community/profile/'+player['login']+'">'+player['displayname']+'</a>'+player['money_left']+'</td><td colspan="4">'+sessionData.translations.playerinqueue+'</td></tr>';
					} else {
						if(player['a_user_id'] == 42) {					
							// anonymous player
							htmlplayers += '<tr><td class="text-left"><span>'+player['displayname']+'</span></td><td>'+player['weapon']+'</td><td>'+player['play_time']+'</td><td>'+player['points']+'</td><td>'+player['ping']+'</td></tr>';
						} else {
							// playall user
							htmlplayers += '<tr><td class="text-left"><a href="'+site_base_dir+'community/profile/'+player['login']+'"><span onmouseover="toolTip(event,\''+player['nickname']+'\');" onmouseout="toolTip(event);">'+player['displayname']+'</span></a>'+player['money_left']+'</td><td><span id="'+prefix+player['a_user_id']+'_weapon">'+player['weapon']+'</span></td><td>'+player['play_time']+'</td><td><span id="'+prefix+player['a_user_id']+'_points">'+player['points']+'</span></td><td><span id="'+prefix+player['a_user_id']+'_ping">'+player['ping']+'</span></td></tr>';
						}
					}
				} else {
					// connecting players
					htmlplayers += '<tr><td class="text-left"><span>'+sessionData.translations.connecting+'</span></td><td id="'+prefix+player['a_user_id']+'_weapon" colspan="4">'+sessionData.translations.connectinglong+'</td></tr>';
				}
				
				// user is a playall user
				if(player['a_user_id'] != 42) {
					// add blinking elements
					if(oldData != null) {
						// cycle through old data
						for (i=0; i<oldData.players.length; i++) {
							curOldData = oldData.players[i];
							
							// player found in old data						
							if(curOldData['a_user_id'] == player['a_user_id']) {
								// cycle through blinking elements of this player
								blinkingElementsPlayer.each( function(curEl) {
									if( player[curEl] != curOldData[curEl] ) {									
										actuallyBlinkingElements.push(player['a_user_id']+'_'+curEl);									
									}
								});
							}							
						}					
					}
				}
			}

			htmlplayers += "</tbody></table>";			
		}		
		
		$(prefix+'teams').innerHTML = htmlplayers;		
		
		// Fade out and fade in effects
		Effect.Fade('preloading-'+sid);
		if(!$(sid+'-data').visible()) {
			Effect.BlindDown(sid+'-data');
		}				
				
		// blinking
		actuallyBlinkingElements.each( function(curEl) {
			Effect.Pulsate(prefix+curEl);
		});
		
		// hide loading image
		$('progress-'+sid).style.visibility = 'hidden';
		
		
	} catch(e) {  }
}

var popup = {
	show : function(text){
		text = text ? text : "";
		this.destroy();
		
		var blocker = Builder.node('div', { id:"ajax-popup", style:"display:none;" });
		var content = Builder.node('div', { id:"ajax-popup-content", style:"display:none;"},
			[
				Builder.node('div', {id:"ajax-popup-content-insert"},
					[
						Builder.node('a', {id:"ajax-popup-close"}),
						Builder.node('div', {id:"ajax-popup-text"})
					]
				)
			]
		);
		document.body.appendChild(blocker);
		document.body.appendChild(content);
		this.center($("ajax-popup-content-insert"));
		$("ajax-popup-text").innerHTML = text;
		var that = this;
		Event.observe($("ajax-popup-close"), "click", function(){that.hide();})
		
		var dummy = $("ajax-popup");
		var dummy = $("ajax-popup-content");
		
		blocker.appear({	duration: 0.1,
							afterFinish:  function(){
								content.appear({duration: 0.2});
							}
						});
	},	
	hide : function(){
		var  blocker = $("ajax-popup");		
		var  content = $("ajax-popup-content");
		var that = this;
		if (blocker && content){
			content.fade({ 	duration: 0.2,
								afterFinish:  function(){
									blocker.fade({ 	duration: 0.1,
													afterFinish:  function(){
														that.destroy();
													}
												});
								}
							});
		}
		else{
			this.destroy();
		}
	},	
	destroy : function(){
		var  obj = $("ajax-popup");
		if (obj) obj.parentNode.removeChild(obj);
		var  obj = $("ajax-popup-content");
		if (obj) obj.parentNode.removeChild(obj);
		AjaxPopupLock = false;
	},
	center : function(obj){
		var windowSize = getWindowSize();
		var window_width = windowSize.width;
		var window_height = windowSize.height;
		obj.style.left = Math.floor((window_width-654)/2) + "px";
		obj.style.top= Math.floor((window_height-410)/2) + "px";
	},
	enlarge : function(width,height){
		var content = $("ajax-popup-content-insert");
		var video = $("popup-video-container");
		var enlarge_button = $("popup-enlarge-button");
		var	add_height = content.offsetHeight-video.offsetHeight;
		
		var left = content.offsetLeft;
		var top = content.offsetTop;
		
		var new_left = left - (width-content.offsetWidth) / 2;
		var new_top = top - (height-content.offsetTop) / 2;
		
		new_top = new_top<0 ? 0 : new_top;
		
		content.morph('left:'+new_left+'px;top:'+new_top+'px;width:'+width+'px;height:'+(height+add_height)+'px;');
		video.morph('height:'+height+'px;');

		
		enlarge_button.hide();
	}
};

function closeTipOfTheDay(id) {

	Effect.BlindUp($('tipOfTheDay'), {duration:0.3});	
		
	var url = site_base_dir + 'ajaxcall/closetipoftheday/'+id+'/rand='+Math.round(Math.random()*1000000);
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) { }
	});
}