/************************************************************************************************************

	
************************************************************************************************************/	



var poll_ajax = new Array();
var poll_votes = new Array();
var graphMaxWidth = 162;

function isIE()
{
   return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}


	
function show_results(poll_id,ajax_id,anim)
{
  
  var IE = isIE();
  document.getElementById('poll_message' + poll_id).style.display='none';
  document.getElementById('poll_question' + poll_id).style.display='none';

  var xml = poll_ajax[ajax_id].response;
  xml = xml.replace(/\n/gi,'');

  var result_div = document.getElementById('poll_results' + poll_id);
  var title_div = document.getElementById('poll_title' + poll_id);
  var option_div = document.getElementById('poll_vote_result' + poll_id);
  var total_div = document.getElementById('total_votes' + poll_id);

  var reg = new RegExp("^.*?<poll_question>(.*?)<.*$","gi");
  var poll_question = xml.replace(reg,'$1');

  var reg = new RegExp("^.*?<total_votes>(.*?)<.*$","gi");
  var total_votes = xml.replace(reg,'$1');

  var reg = new RegExp("^.*?<graph_left>(.*?)<.*$","gi");
  var graph_left_src = xml.replace(reg,'$1');

  var reg = new RegExp("^.*?<graph_center>(.*?)<.*$","gi");
  var graph_center_src = xml.replace(reg,'$1');

  var reg = new RegExp("^.*?<graph_right>(.*?)<.*$","gi");
  var graph_right_src = xml.replace(reg,'$1');

  var reg = new RegExp("^.*?<max_width>(.*?)<.*$","gi");
  graphMaxWidth = xml.replace(reg,'$1');

  var reg = new RegExp("^.*?<graph_font_size>(.*?)<.*$","gi");
  graphFontSize = xml.replace(reg,'$1');

  var reg = new RegExp("^.*?<graph_font_color>(.*?)<.*$","gi");
  graphFontColor = xml.replace(reg,'$1');

  var graphs = new Array();
  graphs[0] = new Image();
  graphs[1] = new Image();
  graphs[2] = new Image();
  graphs[0].src = graph_left_src;
  graphs[1].src = graph_center_src;
  graphs[2].src = graph_right_src;


  
  title_div.innerHTML=poll_question;	
  result_div.style.display="";

  var options = xml.split(/<option>/gi);
	
  poll_votes[poll_id] = new Array();
  //total_votes[poll_id] = 0;
  for(var no=1;no<options.length;no++){

		var elements = options[no].split(/</gi);
		var current_option_id = false;
		for(var no2=0;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('option_text')>=0){
					var pOption = document.createElement('DIV');
					pOption.style.marginBottom="3px";
					pOption.innerHTML = value;
					option_div.appendChild(pOption);					
				}
				
				if(key.indexOf('option_id')>=0){
					current_option_id = value/1;
				}
				
				if(key.indexOf('votes')>=0){
					var voteDiv = document.createElement('DIV');
					if(IE==true) {voteDiv.style.styleFloat="left"; } else {voteDiv.style.cssFloat="left"; }
					option_div.appendChild(voteDiv);	
					
					var leftImage = document.createElement('IMG');
					leftImage.src = graph_left_src;
					if(IE==true) {leftImage.style.styleFloat="left";} else {leftImage.style.cssFloat="left";}
					voteDiv.appendChild(leftImage);
					
					
					var numberDiv = document.createElement('DIV');
					numberDiv.style.backgroundImage = 'url(\'' + graph_center_src + '\')';
					numberDiv.style.color = "#"+graphFontColor;
					numberDiv.style.fontSize = graphFontSize+"px";
					if(IE==true) {numberDiv.style.styleFloat="left";}else {numberDiv.style.cssFloat="left";}
					numberDiv.style.height="16px";
					numberDiv.style.lineHeight="16px";
					numberDiv.style.backgroundRepeat="repeat-x";

					numberDiv.id = 'result_txt' + current_option_id;
					voteDiv.appendChild(numberDiv);	
					if(anim==false) {
					   numberDiv.innerHTML = '0%';
					}
					else {
					   numberDiv.style.width = Math.max(15,Math.round(value/100*graphMaxWidth)) + 'px';
					   numberDiv.innerHTML = value+'%';
					}					

					var rightImage = document.createElement('IMG');
					rightImage.src = graph_right_src;
					if(IE==true) {rightImage.style.styleFloat="left";} else {rightImage.style.cssFloat="left";}
					voteDiv.appendChild(rightImage);

					var clearDiv = document.createElement('DIV');
					clearDiv.style.clear="both";
					option_div.appendChild(clearDiv);

					var breakDiv = document.createElement('DIV');
					breakDiv.style.marginBottom="6px";
					option_div.appendChild(breakDiv);

					poll_votes[poll_id][current_option_id] = value;
									
				}
			}
		}
	}
	

	total_div.innerHTML = total_div.innerHTML + ": " + total_votes;
	if(anim==false) {
	  slide_votes(poll_id,0);
	}
}

function slide_votes(poll_id,currentPercent)
{
	currentPercent = currentPercent/1 + 1;
	
	for(var prop in poll_votes[poll_id]){
		if(poll_votes[poll_id][prop]>=currentPercent){
			var obj = document.getElementById('result_txt' + prop);
			obj.innerHTML = currentPercent + '%';
			obj.style.width = Math.max(15,Math.round(currentPercent/100*graphMaxWidth)) + 'px';
		}			
	}
	if(currentPercent<100)setTimeout('slide_votes("' + poll_id + '","' + currentPercent + '")',1);
}



function exec_vote(poll_id,form_object,exeFile)
{	
	var elements = form_object.elements['vote[' + poll_id + ']'];
	var option_id = false;
	for(var no=0;no<elements.length;no++){
		if(elements[no].checked)option_id = elements[no].value;
	}
	if(option_id){
		var ajax_id = poll_ajax.length;
		poll_ajax[ajax_id] = new sack();
		if(exeFile=="empty") {
		    poll_ajax[ajax_id].requestFile = 'ajax-vote.php?poll_id=' + poll_id + '&option_id=' + option_id;
		}
		else {

		    poll_ajax[ajax_id].requestFile = exeFile + '/ajax-vote.php?poll_id=' + poll_id + '&option_id=' + option_id;		
		}
		document.getElementById('poll_message' + poll_id).style.display='block';
		var anim=false;
		poll_ajax[ajax_id].onCompletion = function(){ show_results(poll_id,ajax_id,anim); };	
		poll_ajax[ajax_id].runAJAX();
	}
}	

function show_votes(poll_id,exeFile)
{
	document.getElementById('poll_question' + poll_id).style.display='none';
	document.getElementById('poll_preview' + poll_id).style.display='block';	
		
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}


