initURL 		= '/remote/Area51/handle.php';

var scrollerusrid = 0;
var ChatTeaser 	= false;
var chatexit 	= false;
var httprequest 	= false;

function init()
{
	getTextFromURL();
}


function getTextFromURL()
{	
	Request(initURL+'?',true,30000);	// alle 30 sekunden nachsehen, ob neue besucher, email, chatanfragen
}


function SendChatMsg(text , usr_id_empf , ChatCode)
{
	loadurl = "/remote/Chat/Chatexit.php?usr_id_empf="+usr_id_empf+"&msgtyp=SYS&text="+text+"&ChatCode="+ChatCode+"&";
	Request(loadurl,false,15000);
}


function ExitChat(client,usr_id_empf,chatcode)
{	
	SendChatMsg(+client+" hat den Chatraum verlassen!" , usr_id_empf , chatcode);
}


function HandleTextFromURL(text)
{  
	results = text.split(','); 

	for(i=0;i < (results.length);i++)
	{
		dump = results[i].split(':');
		HandelJSFunctions(dump[0],dump[1]);
	}    
}


function Request(url,output,time)
{
	// Mozilla, Safari, ...
        if (window.XMLHttpRequest) 
        { 
            httprequest = new XMLHttpRequest();
        } 
        // IE
        else if (window.ActiveXObject) 
        { 
        	try 
        	{
                	httprequest = new ActiveXObject("Msxml2.XMLHTTP");
            	} 
            	catch (e) 
            	{
                	try 
                	{
                    		httprequest = new ActiveXObject("Microsoft.XMLHTTP");
                	} 
                	catch (e) {}
            	}
        }

        if (!httprequest)
        {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        
	if(output == true)
	{
		httprequest.onreadystatechange = function() 
		{ 

			if(isFunction(StartContents))
			{
				StartContents(httprequest,output,time); 
			}
		};

	}
      	
	httprequest.open('GET', url+'rand='+Math.floor(Math.random() * 1000000), true);
	httprequest.send(null);
}


function StopRequest()
{
	if(isObject(httprequest))
	{
		httprequest.about();
	}
}


function StartContents(httprequest,output,time) 
{
	try 
	{
		if (httprequest.readyState == 4) 
		{
			if (httprequest.status == 200) 
			{  
				if(output == true)
				{
					HandleTextFromURL(httprequest.responseText);
					setTimeout('getTextFromURL()',time);

					return true;
				}
				else
				{
					return true;
				}
			}
			else 
			{
				if(output == true)
				{
					setTimeout('getTextFromURL()',time);

				}
				else
				{
					return false;
				}
			}
		}
	}

        catch( e ) 
        {    
        	if(output == true)
        	{    	
                	setTimeout('getTextFromURL()',time);
            	}
            	else
            	{
            		return false;		
            	}
	}
}
    

function HandelJSFunctions(art,value)
{	
	switch(art)
	{
	case "NeueMails":
		
		obj = document.getElementById(art);	
 		  
 	  	if(art && isObject(obj))
 	  	{
 	  		obj.innerHTML = "Du hast <b>"+ value +"</b> neue Nachrichten";	
		}
	
		break;
	
	
	case "ChatAnfrage":
	
	 	chat = value.split('###');

		PrintChatTeaser(chat[0],chat[1],chat[2],chat[3]);

		if(ChatTeaser == false)
		{
			PrintChatTeaser(chat[0],chat[1],chat[2],chat[3]);
		}
		break;
	

	case "Besucher":
		if(value != 'none')
		{
			besucher = value.split('###');

			if(besucher[0] != scrollerusrid)
			{
				//document.getElementById('chathinweis').innerHTML = '<b>&bull; User <a  href="user_profil/'+besucher[0]+'">'+besucher[1]+'</a> schaut sich gerade Dein Profil an!</b>';	
				tickercontents[1]='<b>&bull; User <a  href="user_profil/'+besucher[0]+'">'+besucher[1]+'</a> schaut sich gerade Dein Profil an!!!!</b>'	
			}
		}
		break;
	}
}


function isObject(a) 
{
	return (typeof a == 'object' && !!a) || isFunction(a);
}


function isFunction(fnRef) 
{
	var rtn = true;

	if (typeof fnRef == 'object')
	{
		for (var i = 0; i < fnRef.length; i++) 
		{
			if (typeof fnRef[i]=='function') continue;
			rtn = false;
			break;
		}
	}
	else if (typeof fnRef != 'function')
	{
		rtn = false;
	}
	return rtn;
}
