var receiveReq = null;
var mTimer = null;
var ClientIDMessage = "";
var ClientIDLayer = "";
var isRunning = false;

function getInnerText (node) {
	if (typeof node.textContent != 'undefined') {return node.textContent;}
	else if (typeof node.innerText != 'undefined') {return node.innerText;}
	else if (typeof node.text != 'undefined') {return node.text;}
	else {
		switch (node.nodeType) {
			case 3:
			case 4:
				return node.nodeValue;
				break;
			case 1:
			case 11:
				var innerText = '';
				for (var i = 0; i < node.childNodes.length; i++) {
					innerText += getInnerText(node.childNodes[i]);
				}
				return innerText;
				break;
			default:
				return '';
		}
	}
}

function evalKeypress(keyStroke) {
	var nav=navigator.appName;
	var ns=(nav.indexOf("Netscape")!=-1);
	var eventChooser = (ns)?keyStroke.which : event.keyCode;
	if(eventChooser==13) sendMessage();
}

function noEnter(keyStroke) {
	var nav=navigator.appName;
	var ns=(nav.indexOf("Netscape")!=-1);
	var eventChooser = (ns)?keyStroke.which : event.keyCode;
	if(eventChooser==13) return false;
}

function trim(stringa){    
    while (stringa.substring(0,1) == ' '){stringa = stringa.substring(1, stringa.length); }   
    while (stringa.substring(stringa.length-1, stringa.length) == ' '){stringa = stringa.substring(0,stringa.length-1);}    
    return stringa;
 }

function encodeHtml(sTesto) {
    return String( String(sTesto).replace(/\+/g,"%2b").replace(/\n{2,}/g, "\n").replace(/\&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\u00A0/g, "&nbsp;") ) ;
} 

function getXmlHttpProgID()
{
	var progids = ["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
	var o;
	for(var i = 0; i < progids.length; i++)
	{
		try	{ o = new ActiveXObject(progids[i]); return progids[i]; }
		catch (ex) { return "" };
	}
} 

function getXmlHttp() 
{
	try
	{
		if(window.XMLHttpRequest) 
		{
			var req = new XMLHttpRequest();
			if(req.readyState == null) 
			{
				req.readyState = 1;
				req.addEventListener("load", function() {req.readyState = 4; if(typeof req.onreadystatechange == "function") req.onreadystatechange();},	false);
			}
			return req;
		}
		if(window.ActiveXObject) return new ActiveXObject(getXmlHttpProgID());
	}
	catch (ex) { alert("Il Browser non supporta AJAX."); return null;}
}

function registerKeypress(sIDMessage) {
	var nav=navigator.appName;
	var ns=(nav.indexOf("Netscape")!=-1);
	try
	{
		if(ns){
			if(document.layers){
				var el = eval('document.form1.' + sIDMessage);
				document.captureEvents(Event.KEYPRESS);
				document.onkeypress = noEnter;
				el.onkeypress = evalKeypress;
			}
			if(document.getElementById){
				document.onkeypress = noEnter;
				document.getElementById(sIDMessage).onkeypress = evalKeypress;
			}
		}
		else {
			document.onkeypress = noEnter;
			document.getElementById(sIDMessage).onkeypress = evalKeypress;
		}
	}
	catch (ex) {}
}

function handleReceiveText() {
	var text_div = "";
	try { var receiveState = receiveReq.readyState; }
	catch (ex) { 
		text_div="(@radiofandango):&nbsp;interagisci con radio fandango<br />";
		blog_div.innerHTML = text_div;	
		isRunning = false;
		return;
	}
	if (receiveReq.readyState == 4) {	    
		var blog_div = document.getElementById(ClientIDLayer);			
		var textToAdd = "";			
		var xmldoc=receiveReq.responseXML;	
		var message_nodes = xmldoc.getElementsByTagName("message"); 
		var message_element = null;
		var message_time = null;
		var message_text = null;		
		for (var i = 0; i < message_nodes.length; i++) {						
			try
			{	
				message_element = message_nodes[i];
				message_time = getInnerText(message_element.getElementsByTagName('time').item(0));
				message_text = getInnerText(message_element.getElementsByTagName('text').item(0));
				textToAdd = "(" + message_time + "):&nbsp;" + message_text + "<br />";
			}
			catch (ex) { textToAdd = ""; }					
			text_div += textToAdd;
		}
		if(text_div=="") text_div="(@radiofandango):&nbsp;interagisci con radio fandango<br />";
		blog_div.innerHTML = text_div;	
		isRunning = false;
	}
}

function sendMessage() {
    var objText = document.getElementById(ClientIDMessage);
    if(objText) {
	    if(trim(objText.value)!="") {
	        var sendReq = getXmlHttp();
	        sendReq.open("POST", '/getBlog.aspx', true);
	        sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	        sendReq.send('message=' + encodeHtml(objText.value) + '&action=2');	    
	    }
	    objText.value="";
	    try{objText.focus();} catch(ex){}
    }
}                  


function getBlogText() {	
	if(!isRunning) {
		try
		{
			if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
				isRunning = true;
				receiveReq.open("GET", '/getBlog.aspx?action=1', true);
				receiveReq.setRequestHeader("Content-Type", "text/xml"); 
				if (receiveReq.overrideMimeType) { receiveReq.overrideMimeType('text/xml'); }
				receiveReq.onreadystatechange = handleReceiveText; 
				receiveReq.send(null);
			}	
		}
		catch (ex)
		{
			receiveReq = null;
			receiveReq = getXmlHttp();
			isRunning = false;
		}
	 }		
}

function startBlog(sClientIDMessage, sClientIDLayer ) {
	ClientIDMessage = sClientIDMessage;
	ClientIDLayer = sClientIDLayer;
	registerKeypress(ClientIDMessage);
	receiveReq = getXmlHttp();
	if(receiveReq!=null) {		
	    document.getElementById(ClientIDMessage).focus();    
	    if(mTimer==null) mTimer = setInterval('getBlogText()', 3000);
	}
}