var req;

function getXHR()
{
	if(window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		return true;
	}
	else try {
		req = new ActiveXObject('Msxml2.XMLHTTP');
		return true;
	} catch(e) {
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP");
			return true;
		} catch(e) {
			req = false;
			return false;
		}
	}
}

//function to initialize the request to see if the user is logged in
function initRequest(sessionKey, server, welcomeText, loginLinkText, logoutLinkText) {
	//alert(welcomeText+' '+server);
	//document.getElementById("welcomeText").innerHTML = sessionKey;
	var url 	= server + "getUserInfo.php?key="+sessionKey; // request to see if the user is logged in
	var divID 	= "welcomeText"; // div to be updated
	
	updateElm(url, divID, welcomeText, loginLinkText, logoutLinkText); //handle the request
	
	//wait 10000 ms until next request
	setTimeout("initRequest('"+sessionKey+"','"+server+"','"+welcomeText+"','"+loginLinkText+"','"+logoutLinkText+"')",10000);
}

function updateElm(url, id, welcomeText, loginLinkText, logoutLinkText)
{
    return;
	if(getXHR())
	{
		req.open('POST', url, true);
		req.onreadystatechange = function()
		{
			if(req.readyState == 4) { // we got an answer from the requestedpage
				if(req.status == 200) { // valid answer
					var displayText = "";
					var text 	= req.responseText;
					
					if(text != "" && text != "undefined") { // if the answer is not empty then show welcome firstname surname - 
						
						var xmlDoc 	= loadXMLString(text);
						var names 	= xmlDoc.getElementsByTagName("content_text_item");
						var firstname 	= names[0].getElementsByTagName("firstname")[0].childNodes[0].nodeValue;
						var surname 	= names[0].getElementsByTagName("surname")[0].childNodes[0].nodeValue;
						
						displayText = welcomeText + " " + firstname + " " + surname + "&nbsp;-&nbsp;";
						changeLoginLinkText(logoutLinkText);
						//alert(displayText);
					} else { // not online so don't display anything
						changeLoginLinkText(loginLinkText);
					}
					document.getElementById(id).innerHTML = displayText;
				}
			} else { // still loading
				//document.getElementById(id).innerHTML = 'Loading...';
			}
		}
		req.send('');
	}
	else return true;
	return false;
}

function loadXMLString(text) {
	
	var xmlDoc = null;
	
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(text);
	}
	catch(e)
	{
		try //Firefox, Mozilla, Opera, etc.
		{
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(text,"text/xml");
		}
		catch(e)
		{
			
		}
	}
	
	return xmlDoc;
}

function utf8_decode ( str_data ) {   
    // Converts a UTF-8 encoded string to ISO-8859-1     
    //    
    // version: 810.1317   
    // discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_utf8_decode   
  
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)   
    // +      input by: Aman Gupta   
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)   
    // +   improved by: Norman "zEh" Fuchs   
    // +   bugfixed by: hitwork   
    // +   bugfixed by: Onno Marsman   
    // *     example 1: utf8_decode('Kevin van Zonneveld');   
    // *     returns 1: 'Kevin van Zonneveld'   
    var tmp_arr = [], i = ac = c1 = c2 = c3 = 0;   
  
    str_data += '';   
  
    while ( i < str_data.length ) {   
        c1 = str_data.charCodeAt(i);   
        if (c1 < 128) {   
            tmp_arr[ac++] = String.fromCharCode(c1);   
            i++;   
        } else if ((c1 > 191) && (c1 < 224)) {   
            c2 = str_data.charCodeAt(i+1);   
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));   
            i += 2;   
        } else {   
            c2 = str_data.charCodeAt(i+1);   
            c3 = str_data.charCodeAt(i+2);   
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));   
            i += 3;   
        }   
    }   
  
    return tmp_arr.join('');   
}  
