/***********************************
* Original poll submission and results AJAX script
*
************************************/

function xmlhttpPollPost(strURL) 
{
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatepage(self.xmlHttpReq.responseText);
        }
    }
    
    //self.xmlHttpReq.send(getquerystring());
    self.xmlHttpReq.send(get_poll_querystring());
}

function getquerystring() 
{
	var pid, answer, res, graph;
	pid = document.getElementById("poll_id").value;
	graph = document.getElementById("graph_type").value;
	var answers = document.getElementsByName("eisdp_poll_answer");
	for (i=0;i<answers.length; i++)
	{
		if (answers[i].checked)
			answer = answers[i].value;
	}
	res = "mode=vote&poll_id=" + pid + "&answer=" + answer + "&graph=" + graph;
	//alert(res);
    return res;
}

function get_poll_querystring() 
{
	var pid, answer, res, graph, poll_content;                
	pid = document.getElementById("poll_id").value;
	graph = document.getElementById("graph_type").value;
	var answers = document.getElementsByName("eisdp_poll_answer");   

                var question= document.getElementById("eisdp_poll_question").innerHTML;
                poll_content= "&poll_question="+question+"&length="+answers.length;

	for (i=0;i<answers.length; i++)
	{
                                var answer_index= "eisdp_poll_answertext"+(i+1);
                                var answer_text= document.getElementById(answer_index).innerHTML;
                                poll_content= poll_content+ "&answer"+ i +"="+ answer_text;
		if (answers[i].checked)
			answer = answers[i].value;
	}
	res = "mode=vote&poll_id=" + pid + "&answer=" + answer + "&graph=" + graph+poll_content;
                
	//alert(res); 
    return res;
}

function updatepage(str)
{
    var answers = document.getElementsByName("eisdp_poll_answer");
	for (i=1;i<=answers.length; i++)
	{
		var span = document.getElementById("eisdp_poll_answertext" + i);
		if (span)
			str = str.replace("eisdpa"+i,span.innerHTML);
	}
	document.getElementById("eisdp_poll_results").innerHTML = str;

	var frm = $("eisdp_poll_form");
	if (frm)
		frm.addClassName("result");

	var result = $("eisdp_show_poll_results")
	if (result)
		result.addClassName("hidden");
}

function vote()
{
	var formDiv = document.getElementById("eisdp_poll_data");
	var resDiv = document.getElementById("eisdp_poll_results");
	formDiv.style.display="none";
	resDiv.style.display="block";
	
	xmlhttpPollPost("/Poll");
}

//Check client for a cookie and 
//retrieve results if they already voted
function pollFilter()
{
	var vote_cookie, pid;
		
	if(document.getElementById("poll_id"))
		pid= document.getElementById("poll_id").value;
	else
		pid=0;
	
	vote_cookie= getCookie("voted_"+pid);
	if(vote_cookie!=null)
		seePollResults();
}

function seePollResults()
{
	var xmlHttpReq = false;
    	var self = this;
	var res, pid;
		
    	// Mozilla/Safari
    	if (window.XMLHttpRequest) 
        	self.xmlHttpReq = new XMLHttpRequest();
    	// IE
    	else if (window.ActiveXObject) 
       		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");

	if(document.getElementById("poll_id"))
	{
	    	self.xmlHttpReq.open('POST', '/Poll', false);
    		self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		pid= document.getElementById("poll_id").value;
	
		var formDiv = document.getElementById("eisdp_poll_data");
		var resDiv = document.getElementById("eisdp_poll_results");
		var graphTypeCtrl = document.getElementById("graph_type"), graphType = "";
	
		if(graphTypeCtrl)
			graphType = "&graph=" + graphTypeCtrl.value;

		if (formDiv)
			formDiv.style.display="none";

		if (resDiv)
			resDiv.style.display="block";

		res = "mode=result&poll_id=" + pid+ graphType;
		self.xmlHttpReq.send(res);
		updatepage(self.xmlHttpReq.responseText);
	}
}