
var totalAnswers;
var totalAnswerImages = 0;
var pollCompleted = false;
var pollId;
var tablePadding = 1;
var tableSpacing = 4;
var tableBorder = 0;
var answerId;

var blue = "#7fbe1d";
var green = "#ec602b";

function loadPoll(data){
	var pollXml = data.responseXML.documentElement;
	var pollWrapper = "<form name='pollWidgetForm' id='pollWidgetForm' onSubmit='return sendPollResponse()' style='display:inline'>";
	pollQuestion = pollXml.getElementsByTagName('pollQuestion')[0].firstChild.nodeValue;
	pollAnswers = pollXml.getElementsByTagName('pollAnswer');
	pollWrapper += "<div id='pollQuestion'>" + pollQuestion + "</div>";
	for(i=0;i<pollAnswers.length;i++){
		
		pollWrapper += "<div class='pollAnswer'><table cellpadding='0' cellspacing'0'><tr><td valign='top'><input type='radio' onclick='selectOption(this)' name='pollWidgetAnswer' id='a" + i + "' /></td><td><div id='pollAnswerText'>" + pollAnswers[i].firstChild.nodeValue + "</div></td></tr></table></div>";
	}
	totalAnswers = i;
	pollWrapper += "<div id='pollButton'><table cellpadding='0' cellspacing'0'><tr><td><span id='voteButton'><input type='image' name='voteButton' src='" + pollWidgetPath + "images/vote.png' alt='Vote' title='Vote' onmouseover='javascript:this.src=\"" + pollWidgetPath + "images/vote-over.png\";' onmouseout='javascript:this.src=\"" + pollWidgetPath + "images/vote.png\";' /></span></td><td><span><div class='btn_sprite b_viewResults' onclick='return viewPublicResults()' ></div></span></td></tr></table></div></form>";
	
	pollWidgetDiv = new YAHOO.widget.Module("pollMarkup");
	pollWidgetDiv.setBody(pollWrapper);
	pollWidgetDiv.render();
}

function showPollResultsPublic(data){
	var pollXml = data.responseXML.documentElement;
	pollQuestion = pollXml.getElementsByTagName('pollQuestion')[0].firstChild.nodeValue;
	pollAnswers = pollXml.getElementsByTagName('pollAnswer');
	var graphIncrement = 300 / 100;
	var pollWrapper = "<div id='pollWidgetResults'>";
	pollWrapper += "<div id='resultsMarkup' class='resultMarkupCSS'><table  cellpadding='0' cellspacing='0' width='352'>";
	pollWrapper += "<tr><td id='resultQuestion' colspan='2'>" + pollQuestion + "</td></tr>";
	for(i=0;i<pollAnswers.length;i++){
		var textColor = "#ffffff";
		var graphWidth = (pollAnswers[i].getAttribute("percent") == "0") ? 1 : pollAnswers[i].getAttribute("percent");
		
		pollWrapper += "<tr><td colspan='2'><table width='316' cellpadding='0' cellspacing='0'><tr><td class='resultAnswer' valign='bottom'>" + pollAnswers[i].firstChild.nodeValue + "</td><td class='smallFont' valign='bottom' align='right'>" + pollAnswers[i].getAttribute("totalResponse") + " votes</td></tr></table></td></tr>";
		pollWrapper += "<tr><td><div class='graphBg'><div class='pollGraph' style='width:" + (graphWidth*graphIncrement) + "px;background-color:" + ((answerId == i && pollCompleted == true) ? green : blue) + ";color:" + textColor + "' class='none'></div></div></td>";
		pollWrapper += "<td class='percentFont' align='left' valign='top'>" + pollAnswers[i].getAttribute("percent") + "%</td></tr>";
	}
	backToPoll = (pollCompleted == false) ? "<div class='btn_sprite b_backToPoll' onclick='return getPollXml()'></div>" : "";
	totalAnswers = i;
	pollWrapper += "<tr><td colspan='2'><table width='316' cellpadding='0' cellspacing='0' ><tr><td class='totalFont'>Total votes: " + pollXml.getAttribute("totalResponse") + "</td><td align='right' width='100px' >" + backToPoll + "</td><td align='right' width='100'><div class='btn_sprite b_viewArchive' onclick='document.location=\"/poll-archive/\";'></div></td></tr></table></td></tr></table>";
	
	pollWrapper += "</div></div>";
	
	pollWidgetDiv = new YAHOO.widget.Module("pollMarkup");
	pollWidgetDiv.setBody(pollWrapper);
	pollWidgetDiv.render();
}

function viewPublicResults(){
	var postData = "pid=" + pollId + "&x=pollResults";
	var callback = {success:showPollResultsPublic,failure:function(){}};
	var transaction = YAHOO.util.Connect.asyncRequest('POST', pollWidgetPath + "php/Polling/polls.php", callback, postData);
	return false;
}

function selectOption(radioObj){
	answerId = radioObj.id.substring(1,radioObj.id.length);
}

function sendPollResponse(){
	if(answerId != null){
		var postData = "pid=" + pollId + "&x=logResponse&answerId=" + answerId;
		var callback = {success:showPollResultsPublic,failure:function(){}};
		var transaction = YAHOO.util.Connect.asyncRequest('POST', pollWidgetPath + "php/Polling/polls.php", callback, postData);
		pollCompleted = true;
	}
	else{
		alert("An answer is required to respond to the poll");
	}
	return false;
}

function getPollXml(){ 
	var postData = "pid=" + pollId + "&x=getWidget";
	var callback = {success:loadPoll,failure:function(){}};
	var transaction = YAHOO.util.Connect.asyncRequest('POST', pollWidgetPath + "php/Polling/polls.php", callback, postData);
	return false;
}

function checkPollCompleted(){
	var rand = Math.random();
	var postData = "pid=" + pollId + "&x=checkCompleted&r=" + rand;
	var callback = {success:returnPollCompleted,failure:function(){}};
	var transaction = YAHOO.util.Connect.asyncRequest('POST', pollWidgetPath + "php/Polling/polls.php", callback, postData);
}

function returnPollCompleted(data){
	if(data.responseText == "-1"){
		getPollXml();
	}
	else{
		pollCompleted = true;
		answerId = data.responseText;
		viewPublicResults();
	}
}

YAHOO.util.Event.onDOMReady(checkPollCompleted);
