
var recuperar_poll = "";
var id_recuperar = "";
var POLL_DIR = APP_DIR + 'encuestas/';

function poll_click_action(e)
{
	
	var id = this.activate_info;
	
	if(id_recuperar)
	{
//		alert("PRUEBA"+$('poll_'+ id_recuperar).className);
		$('poll_'+ id_recuperar).innerHTML = recuperar_poll;
		$('poll_'+ id_recuperar).className = "encuesta abierta";
		Event.unloadCache();
		load_polls_events();
	}

	recuperar_poll = $('poll_'+id).innerHTML;
	id_recuperar = id;
	
	var randomurl = Math.random(100); 
	var url = APP_DIR + 'encuestas/recarga_detalle/'+id+'/'+$('poll_'+ id_recuperar).className+'/'+randomurl;

	new Ajax.Request( url, {
		method: 'get',
		encoding: 'utf-8',
		onSuccess: function(transport) {
			//alert(transport.responseText);
			if(transport.responseText) {
				$('poll_'+id).className = "encuesta-desplegada";
				$('poll_'+id).innerHTML = transport.responseText;
				
						Event.observe($('votar'), 'click', function(e) {
							//encuestahome = 1;
							
							$('boton_votar').innerHTML = "";
							$('poll_'+id).className = "encuesta-desplegada";
							var radioGrp = document['forms']['form_encuesta'];
							var num_option = radioGrp.length;
						
							for(i=0; i < num_option; i++)
							{
								
								if (radioGrp[i].checked == true) 
								{
									
									var radioValue = radioGrp[i].value;
								}
							}
							
							if(radioValue)
							{
								var randomurl = Math.random(100); 
								var url = POLL_DIR + 'votacion/' + randomurl + '/' + radioValue ;
								
								new Ajax.Request( url, {
									method: 'get', 
									onSuccess: function(transport) {
									if(transport.responseText != 'error') 
									{
										var ajaxIndex = num_option; // número de respuestas
										var xml = transport.responseText; // xml con la información de la votación
										
										
										showVoteResultsSpecial(1,ajaxIndex, xml, "");
										
									}
								}
							});
							
							Event.stop(e);
						}
					}
				);
			}				
		}
	});
	
	Event.stop(e);
}

function load_polls_events()
{	
	var poll_list = document.getElementsByClassName("desplegar_encuesta");	
	for (var i = 0; i < poll_list.length; i++) 
	{
		var activate_obj = { activate_info: poll_list[i].id };
		Event.observe(poll_list[i], 'click', poll_click_action.bindAsEventListener(activate_obj));
	}
}	

var serverSideFile = 'ajax-poller-cast-vote-php.php';


var graphMaxWidth = 455;	// It will actually be a little wider than this because of the rounded image at the left and right
var graphMinWidth = 45;	// Minimum size of graph
var pollScrollSpeed = 1;	// Lower = faster
var useCookiesToRememberCastedVotes = false;	// Use cookie to remember casted votes
var txt_totalVotes = 'Total de votos: ';

var ajaxObjects = new Array();
var pollVotes = new Array();
var pollVoteCounted = new Array();
var totalVotes = new Array();


/* Preload images */



/*
These cookie functions are downloaded from 
http://www.mach5.com/support/analyzer/manual/html/General/CookiesJavaScript.htm
*/	
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 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]){
		if (pollVotes[pollId][prop] >= 0) 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);
			var obj1 = document.getElementById('result_voteTxtP' + prop);
			var obj2 = document.getElementById('result_votePercentTxtB' + prop);
			obj1.innerHTML = array_choices[prop];	
			obj2.innerHTML = currentPercent + '%';	
			obj.style.width = Math.max(graphMinWidth,Math.round(currentPercent/100*graphMaxWidth)) + 'px';
			//obj.innerHTML = '<strong>'+currentPercent + '%</strong>';
		}			
	}
	
	if(currentPercent<100)setTimeout('slideVotes("' + pollId + '","' + currentPercent + '")',pollScrollSpeed);
}

function showVoteResultsSpecial(pollId,ajaxIndex, xml, poll_title)
{

	xml = xml.replace(/\n/gi,'');
	var reg = new RegExp("^.*?<pollerTitle>(.*?)<.*$","gi");
	var pollerTitle = xml.replace(reg,'$1');	
	var resultDiv = document.getElementById('div-encuesta');
	resultDiv.innerHTML = "";
	var voteDivaaa = document.createElement('DIV');
	voteDivaaa.className='a';
	voteDivaaa.id = 'a';
	voteDivaaa.innerHTML = poll_title;
	resultDiv.appendChild(voteDivaaa);	
	
	
	var options = xml.split(/<option>/gi);
	
	pollVotes[pollId] = new Array();
	totalVotes[pollId] = 0;
	i_count = 0;
	array_id = new Array();
	array_votes = new Array();

	for(var no=1;no<options.length;no++){
			
		var elements = options[no].split(/</gi);
		var currentOptionId = false;

		for(var no2=1;no2<elements.length;no2++){
			if(elements[no2].substring(0,1)!='/'){
				var key = elements[no2].replace(/^(.*?)>.*$/gi,'$1');
				var value = elements[no2].replace(/^.*?>(.*)$/gi,'$1');

				if(key.indexOf('optionId')>=0){
					currentOptionId = i_count/1;
				}
			
				if(key.indexOf('optionText')>=0){
					var pOption = document.createElement('P');
					pOption.className='result_pollerOption';
					pOption.id='result_voteTxtP'  + i_count;
					pOption.innerHTML = value;
					resultDiv.appendChild(pOption);					
					
				}
				
				if(key.indexOf('votes')>=0){
					
					array_id.push(currentOptionId);
					i_count++;
				
					var voteDiv = document.createElement('DIV');
					voteDiv.className='result_vote_special_background';
					voteDiv.id = 'result_voteTxtB' + currentOptionId;
					resultDiv.appendChild(voteDiv);	
									
					var numberDiv = document.createElement('DIV');
					numberDiv.className='result_vote_special';

					numberDiv.id = 'result_voteTxt' + currentOptionId;
					voteDiv.appendChild(numberDiv);	
					
					var voteDivPercent = document.createElement('DIV');
					voteDivPercent.id = 'result_votePercentTxtB' + currentOptionId;
					voteDivPercent.className = 'calm_percent';
					voteDiv.appendChild(voteDivPercent);	
					
					pollVotes[pollId][currentOptionId] = value;					
					
					totalVotes[pollId] = totalVotes[pollId]/1 + value/1;
					array_votes.push(value);
				}
			}
		}
	}
	
	array_choices = new Array();
	for (i=0;i<array_id.length;i++){
		var obj1 = document.getElementById('result_voteTxtP' + i);
		obj1.id='result_voteTxtP'  + array_id[i];
		array_choices[array_id[i]] = obj1.innerHTML;
	} 
	
	var max = 0;
	var max_id = 0;
	for (i=0;i<array_votes.length;i++){

	if(parseInt(array_votes[i]) >= max)
		{
			max = array_votes[i];
			max_id = i;
		}
	} 
	
	

	var obj_max = document.getElementById('result_voteTxt' + max_id);
	obj_max.className = "result_vote_special_winner";
	var obj_max = document.getElementById('result_voteTxtB' + max_id);
	obj_max.className = "result_vote_special_background_winner";
	
	setPercentageVotes(pollId);
	
	slideVotes(pollId,0);
}

load_polls_events();

