function talktoServer(){
	
	var req = newXMLHttpRequest();
	//register the callback handler function
  	var callbackHandler = getReadyStateHandler(req, updateMsgOnBrowser);
  	req.onreadystatechange = callbackHandler;
  	req.open("POST", "includes/postGutReactions.php", true);
  	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  	//get the value from the text input element and send it to server
  	var responseId = getCheckedValue(document.forms["gutReactionsForm"].elements['gutReactions']);
	var refId = document.getElementById("gutReactionRefId");
  	var refId_value = refId.value;
	req.send("submitted="+refId_value+"-"+responseId);
}

// This is the callback functions that gets called
// for the response from the server with the XML data

var lastPing = 0;
function updateMsgOnBrowser(testXML) {

	
	var question = testXML.getElementsByTagName("question")[0];
	var question_value = question.firstChild.nodeValue;
	var answers = testXML.getElementsByTagName("answers")[0];
	var answers_value = answers.firstChild.nodeValue;
	var percentages = testXML.getElementsByTagName("percentages")[0];
	var percentages_value = percentages.firstChild.nodeValue;
	var Link = testXML.getElementsByTagName("Link")[0];
	var Link_value = Link.firstChild.nodeValue;
	var RefId = testXML.getElementsByTagName("RefId")[0];
	var RefId_value = RefId.firstChild.nodeValue;
	
	
	resultsToDisplay=question_value+'<br /><div class="gutReactionsSpacer">';
	var answers_valueTemp = new Array();
	answers_valueTemp = answers_value.split('^');
	var percentages_valueTemp = new Array();
	percentages_valueTemp = percentages_value.split('^');
	
	
	resultsToDisplay+='<table width="100%" border="0" cellpadding="1" cellspacing="1">';
	
			for(i=0;i<answers_valueTemp.length-1; i++){
					resultsToDisplay+="<tr><td align='right'><strong>"+percentages_valueTemp[i]+"</strong></td><td></td><td align='left'><label>"+answers_valueTemp[i]+"</label></td></tr>";
			}
			resultsToDisplay+='</table></div><span class="gutReationsInstructions">This is not a scientific poll<br /><a href="'+Link_value+'">Read related article</a>';
		
	
	writeGutReactionsCookies(RefId_value);

	changeDisplay(question_value+'<br /><img src="images/loading.gif" width="100" height="50" />');
	var t=setTimeout("changeDisplay(resultsToDisplay)",2000);
	
	
}
function changeDisplay(newHTML){
	var msg_display = document.getElementById("gutReactionsWrapper");
	msg_display.innerHTML =newHTML;
}


//the following two functions are helper infrastructure to 
//craete a XMLHTTPRequest and register a listner callback function

function newXMLHttpRequest() {
	var xmlreq = false;
	if (window.XMLHttpRequest) {
		xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
    		// Try ActiveX
		try { 
			xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) { 
			// first method failed 
			try {
				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				 // both methods failed 
			} 
		}
 	}
   	return xmlreq;
} 

function getReadyStateHandler(req, responseXmlHandler) {
	return function () {
	if (req.readyState == 4) {
		if (req.status == 200) {
        		responseXmlHandler(req.responseXML);
		} else {
			var hellomsg = document.getElementById("gutReactionsWrapper");
			hellomsg.innerHTML = "ERROR: "+ req.status;
      		}
    	}
 	}
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}
