// ==========
// Functions for the NGC Polls


// ==========
// Functions for polls

// Get a poll and update the div
//  NOTE: No styling is done - must be done elsewhere
function getPoll(poll_id, poll_div) {
}

function getPoll_send(poll_id, poll_div) {
}

function getPoll_done(responseText, poll_div) {
    UpdateDiv(poll_div, responseText)
}

// Submit a poll response
// NOTE: Currently assumes form is named 'poll_input' and radio button set is 'poll_answer'
function submitPoll_click(oEvent, p_id) {
    // Get Data
	var formName = "poll_input_"+p_id;
	var pollForm = document.forms[formName];
//    var poll_id = pollForm.elements["poll_id"].value;
    var poll_answer_radios = pollForm.elements["poll_answer"];
    var poll_answer = 0;
    for (i = 0; i < poll_answer_radios.length; i++) {
        if (poll_answer_radios[i].checked) {
            // poll_answer = i + 1;
            poll_answer = poll_answer_radios[i].value;
            break;
        }
    }

    if (poll_answer > 0) {
        submitPoll_send(p_id, poll_answer);
    }
    else {
        alert("Please select an answer.");
	
    }
	
}

function submitPoll_send(p_id, p_answer) {
    var myConn = new XHConn();
    if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");
    var fnWhenDone = function (oXML) { submitPoll_done(oXML.responseText,p_id); };
    var str = "cmd=submit&pollId=" + p_id + "&answerId=" + p_answer;
    // TODO: Fix the url
    myConn.connect("/ngcweb/servlet/PollService", "POST", str, fnWhenDone);
}

function submitPoll_done(responseText,p_id) {
	//There can be any number of poll's on the page.So we are using poll_id aslo in to count 
	//to update the poll division after submitting the poll to display poll summary
	var tag="poll_"+p_id;
    UpdateDiv(tag, responseText)
}

function doPollServletRequest(dest) 
	{   
	/*	try {
			xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { /* do nothing  }*/
/*var xmlhttp;*/
try { 
		  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
		  }
		  catch (e) { 
			  try { 
			  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
			  }
			  catch (e) {
				  try { 
					  xmlhttp = new XMLHttpRequest(); 
						  }
						  catch (e) {
							  xmlhttp = false; 
							  }
					        }
	     	  }
  if (!xmlhttp) {alert("httpNULL");return null;}
			xmlhttp.onreadystatechange = doPollServletResponse; 
xmlhttp.open("GET", dest);
 xmlhttp.send(null); 
           } 
			function doPollServletResponse() 
				{
					if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
						{
		document.getElementById("poll").innerHTML =  xmlhttp.responseText; 
						}
	}

function UpdateDiv(id, content) {
    var oDiv = document.getElementById(id);
    if (!oDiv) {
        // Can't find the div so force a reload to get the update
        location.reload(true);
    }
    else {
        oDiv.innerHTML = content;
    }
}
