function ltwp_vote(pollID,pollNum,castVote) {
	
	var bHttp = this.parent.getXMLHttp();
	if (bHttp == null) {	  
		// Print message about upgrading browser to targetDiv	 	 
	    return;
	}		
	
	// Get selection
	var response = getCheckedValue('ltw_poll_form_' + pollNum,'answer');
	
	// Make AJAX call to submit answer. On successful return, the return
	// XML data will include the poll results thus far. Display them
	
	// Setup url to be called
	var url = (DEVELOPMENT ? WS_WEB_ROOT : WS_WEB_ROOT) + "system/modules/LTW_Poll/ltw_poll_ajax.php";

	var params = 'op=submitVote';
	
	params += '&pollID=' + pollID;
	params += '&response=' + response;
	params += '&cast='     + (castVote ? 'true' : 'false');
	params += '&AJAX_CALIS_CALLER=true';

	// Define state change handler
	bHttp.onreadystatechange = function() {
	
	        var response,status,errCode,file;
	
	        if (bHttp.readyState==4 || bHttp.readyState=="complete") { // xmlHTTP request has returned
	
	            if (bHttp.status == 200) {
	
	                response = bHttp.responseXML.documentElement;
	                errCode  = response.getElementsByTagName('errCode')[0].firstChild.data;
					
					switch(errCode) {
						
						case '0' :
													
							// Show results (deletes cover too)
							ltwp_show_results(response,pollID,pollNum);																																																						
																															
						break;
						
					}
					
	            }// async request has returned completed
	        }
	}//end state change handler
	
	ltwp_show_cover(pollNum);
	
	bHttp.open("POST",url,true);
	bHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	bHttp.send(params);
	
	
	return false;
			
		
}

function ltwp_show_results(response,pollID,pollNum) {
	
	var poll    = getXMLNodes(response,'poll')[0];
	var answers = getXMLNodes(response,'answer');
	var i = 0;
	
	// Clear targetDiv of poll elements
	deleteChildren(getElement('ltw_poll_div_' + pollNum));
	
	// Build results
	var aDiv = getElement('ltw_poll_div_' + pollNum);	
	
	// If not blank add title
	var title = poll.getAttribute('title');

	if (title != '') {
		var pTitle = document.createElement('p');
		pTitle.className = 'poll_title';
		pTitle.appendChild(document.createTextNode(title));
		aDiv.appendChild(pTitle);
	}
	
	
	// Create and append question in a <p class='pollQuestion'>
	var qPara = document.createElement('p');
	
		qPara.className = 'poll_question';
	
		qPara.appendChild(document.createTextNode(poll.getAttribute('question')));
		aDiv.appendChild(qPara);		
			
	// Cycle through answers building array of votes and tallying
	// total votes
	var totalVotes  = 0;
	var votes       = new Array();
	var responseIDS = new Array();
	 
	for (i=0;i<answers.length;i++) {
		
		var id        = answers[i].getAttribute('id');
		var text      = answers[i].getAttribute('text');
		var voteCount = answers[i].getAttribute('voteCount');
		var chosen    = answers[i].getAttribute('chosen');
		var color     = answers[i].getAttribute('color');
		var textColor = answers[i].getAttribute('textColor');
		
		votes[i]   = new Array(id,text,voteCount,chosen,color,textColor);
		totalVotes += 1 * voteCount;			
		
	}//end iterating over answers
	
	// Now iterate over the votes array to build the results listing
	// Create <ul> for items
	var resUL = document.createElement('ul');
	resUL.className = 'poll_results';
	
	for (i=0;i<votes.length;i++) {
		
		var perc = Math.round((votes[i][2] / totalVotes) * 100);		
		var resUL_li = document.createElement('li');

		if (votes[i][3] == 'true')
			resUL_li.className = 'chosen';
														
		resUL_li.appendChild(document.createTextNode(votes[i][1]));					
		
		var newBar = document.createElement('div');
		//this.resultBars[i] = document.createElement('div');
		var noBR   = document.createElement('nobr');
		noBR.appendChild(document.createTextNode(perc + ' %'));
		newBar.appendChild(noBR);
		newBar.style.backgroundColor = '#' + votes[i][4];
		newBar.style.height = '20px';
		newBar.style.width  = perc + '%';
		newBar.style.color = '#' + votes[i][5];
		
		resUL_li.appendChild(newBar);
		
		resUL.appendChild(resUL_li);
					
		// Each <li> will have a div of a given color (stored in DB) that will
		// show the results, sized appropriately (use CSS width % perhaps to size bars?) 		
		
	}//end showing results

	// Append list to div
	aDiv.appendChild(resUL);	
	
	// Total vote count
	var vc = document.createElement('div');
	vc.appendChild(document.createTextNode("Total Votes:" + totalVotes));
	vc.id = 'totalCount';
	aDiv.appendChild(vc);			
			
}

function ltwp_show_cover(pollNum) { getElement('ltw_poll_div_' + pollNum + '_cover').style.display = 'block'; }
function ltwp_hide_cover(pollNum) { getElement('ltw_poll_div_' + pollNum + '_cover').style.display = 'none'; }