var voteLeftImage = 'images/graph_left_1.gif';
var voteRightImage = 'images/graph_right_1.gif';
var voteCenterImage = 'images/graph_middle_1.gif';
var preloadedImages = new Array();

var graphMaxWidth = 130;	// It will actually be a little wider than this because of the rounded image at the left and right
var graphMinWidth = 15;	// Minimum size of graph
var pollScrollSpeed = 5;	// Lower = faster

preloadedImages[0] = new Image();
preloadedImages[0].src = voteLeftImage;
preloadedImages[1] = new Image();
preloadedImages[1].src = voteRightImage;
preloadedImages[2] = new Image();
preloadedImages[2].src = voteCenterImage;

function castVote(pollId,formObj)
{
	//alert(pollId);
	//alert(formObj);
	var elements = formObj.elements['vote[' + pollId + ']'];
	var optionId = false;
	for(var no=0;no<elements.length;no++){
		if(elements[no].checked)optionId = elements[no].value;
	}
	Poller_Set_Cookie('dhtmlgoodies_poller_' + pollId,'1',6000000);
	var url = SITE_AJAX_URL+"pollresult.php?pollId="+pollId+"&optionId="+optionId;
	//alert(url);
	//$("#poller_results").load(url);
	
	if (window.XMLHttpRequest)
  	{
  		http=new XMLHttpRequest()
  		http.open("GET",url,true)
	  	http.onreadystatechange=showVoteResults;
	  	http.send(null)
  	}
	// code for IE
	else if (window.ActiveXObject)
  	{
  		http=new ActiveXObject("Microsoft.XMLHTTP")
    	if (http)
    	{
    		http.open("GET",url,true)
    		http.onreadystatechange=showVoteResults;
    		http.send()
    	}
  	}
}

var pollVotes = new Array();
var pollVoteCounted = new Array();
var totalVotes = new Array();
function showVoteResults()
{
	if (http.readyState == 4) 
	{	
		isWorking = false;
	   	if (http.responseText.indexOf('invalid') == -1) 
		{
	    	var xmlDocument 	= 	http.responseXML; 
    		var noOp			=   xmlDocument.getElementsByTagName('optionid').length;
			var pollId			= 	 xmlDocument.getElementsByTagName('pollid').item(0).firstChild.data;		
			var pollerTitle		= 	 xmlDocument.getElementsByTagName('pollertitle').item(0).firstChild.data;		
			var totalpollvotes = 	xmlDocument.getElementsByTagName('totalpollvotes').item(0).firstChild.data;		
			var resultDiv = document.getElementById('poller_results');
			var titleP = document.createElement('P');
			pollerTitle	= pollerTitle.replace('##and##','&');
			titleP.className='bmattersmall';
			titleP.innerHTML = pollerTitle;
			resultDiv.appendChild(titleP);		
			pollVotes[pollId] = new Array();
			totalVotes[pollId] = 0;
			
			for(i=0; i<noOp; i++)
			{
				var opID		= xmlDocument.getElementsByTagName('optionid').item(i).firstChild.data;	
				var opVa		= xmlDocument.getElementsByTagName('optiontext').item(i).firstChild.data;	
				var opVotes		= xmlDocument.getElementsByTagName('votes').item(i).firstChild.data;	
				opVa	= opVa.replace('##and##','&');
				var pOption = document.createElement('P');
				pOption.className='result_pollerOption';
				if(i != 0){
                                    extrbr = "<br>";
                                }else{
                                    extrbr = "";
                                }
				pOption.innerHTML = extrbr + opVa;
				resultDiv.appendChild(pOption);			
			
				var voteDiv = document.createElement('DIV');
				voteDiv.className='result_pollGraph';
				resultDiv.appendChild(voteDiv);	
					
				var leftImage = document.createElement('IMG');
				leftImage.src = voteLeftImage;
				voteDiv.appendChild(leftImage);
				
				var numberDiv = document.createElement('DIV');
				numberDiv.style.backgroundImage = 'url(\'' + voteCenterImage + '\')';
				numberDiv.innerHTML = '0%';
				numberDiv.id = 'result_voteTxt' + opID;
				voteDiv.appendChild(numberDiv);	
				
				var rightImage = document.createElement('IMG');
				rightImage.src = voteRightImage;
				voteDiv.appendChild(rightImage);						
				pollVotes[pollId][opID] = opVotes;		
				totalVotes[pollId] = totalVotes[pollId]/1 + opVotes/1 ;
				
			}
			var totalVoteP = document.createElement('P');
			totalVoteP.className = 'result';
			//totalVoteP.innerHTML = "<br><br>"+MSG_POLL_VOTE_TOTAL+" :" + totalVotes[pollId];
			document.getElementById('poller_question').style.display ='none';
			voteDiv.appendChild(totalVoteP);	
			setPercentageVotes(pollId);
			slideVotes(pollId,0);
		}		
	}
}


function setPercentageVotes(pollId)
{
	
	for(var prop in pollVotes[pollId])
	{	
		pollVotes[pollId][prop] =  Math.round( (pollVotes[pollId][prop] / totalVotes[pollId]) * 100);				
	}	
	/*var currentSum = 0;
	for(var prop in pollVotes[pollId])
	{
		currentSum = currentSum + pollVotes[pollId][prop]/1;			
	}*/
	//pollVotes[pollId][prop] = pollVotes[pollId][prop] + (100-currentSum);
}

function slideVotes(pollId,currentPercent)
{
	currentPercent = currentPercent/1 + 1;
	for(var prop in pollVotes[pollId])
	{
		if(pollVotes[pollId][prop]>=currentPercent)
		{
			var obj = document.getElementById('result_voteTxt' + prop);
			obj.innerHTML = currentPercent + '%';
			obj.style.width = Math.max(graphMinWidth,Math.round(currentPercent/100*graphMaxWidth)) + 'px';
		}			
	}
	if(currentPercent<100)setTimeout('slideVotes("' + pollId + '","' + currentPercent + '")','5');
}

function Poller_Get_Cookie(name) { 
	
   var start = document.cookie.indexOf(name+"="); 
   var len = start+name.length+1; 
   if ((!start) && (name != document.cookie.substring(0,name.length))) return null; 
   if (start == -1) return null; 
   var end = document.cookie.indexOf(";",len); 
   if (end == -1) end = document.cookie.length; 
   return unescape(document.cookie.substring(len,end)); 
} 
// This function has been slightly modified
function Poller_Set_Cookie(name,value,expires,path,domain,secure) { 
	expires = expires * 60*60*24*1000;
	var today = new Date();
	var expires_date = new Date( today.getTime() + (expires) );
    var cookieString = name + "=" +escape(value) + 
       ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
       ( (path) ? ";path=" + path : "") + 
       ( (domain) ? ";domain=" + domain : "") + 
       ( (secure) ? ";secure" : ""); 
    document.cookie = cookieString; 
}

function displayResultsWithoutVoting(pollId)
{
	var url = SITE_AJAX_URL+"pollresult.php?pollId="+pollId;
	//alert(url);
	//$("#poller_results").load(url);
	if (window.XMLHttpRequest)
  	{
  		http=new XMLHttpRequest()
  		http.open("GET",url,true)
	  	http.onreadystatechange=showVoteResults;
	  	http.send(null)
  	}
	// code for IE
	else if (window.ActiveXObject)
  	{
  		http=new ActiveXObject("Microsoft.XMLHTTP")
    	if (http)
    	{
    		http.open("GET",url,true)
    		http.onreadystatechange=showVoteResults;
    		http.send()
    	}
  	}
}

