// JavaScript Document
var poll = {
  init: function() {
  	YD = YAHOO.util.Dom;
	YE = YAHOO.util.Event;
	
	//Alle Radio Buttons werden geholt
	poll.pollRadio = YAHOO.util.Dom.getElementsByClassName('radio');
	//Alle blauen Balken werden geholt	
    poll.pollBar = YAHOO.util.Dom.getElementsByClassName('pollBar');
	//Alle Ergebnis Blöcke werden geholt		
    poll.pBReasult = YAHOO.util.Dom.getElementsByClassName('pBReasult');
	//Der Submit Button bekommt noch einen Listener
	YAHOO.util.Event.addListener('submitBTN', 'click', poll.FormSubmit);
	//Falls die Klasse 'noPolling' vorhanden ist, wird das Formular ausgeblendet und direkt das Ergebnis angezeigt.
	if(YD.hasClass('pollResult','noPolling')){
		YD.setStyle('pollForm','display','none');
		YD.setStyle('pollResult','display','block');		
		poll.movedown();
	}
  },

  movedown: function(){
	for(var i=0; i< poll.pBReasult.length; i++){
		//aus dem Titel des P-Tags wird die Prozentzahl ausgelesen
		average = poll.pBReasult[i].title.split(/:\s*/)[1].split(".");
		//die neue Breite wird berechnet aus der Breite der gesamten Box - 70px
		var newWidth = ((document.getElementById('pollResult').offsetWidth- 70) / 100) * average;
		//Balken werden ausgefahren
		 move = new YAHOO.util.Anim(poll.pollBar[i], {
		 width: {
		 to: newWidth
		 }
		 }, 1, YAHOO.util.Easing.easeOut);
		 move.animate();
 	}	
  },
  
  FormSubmit: function(){
	 var is_checked = false;
	 
	 //kleiner Validator, Form wird erst abgeschickt, wenn ein Radio button geklickt wurde.
	for(var i = 0; i <poll.pollRadio.length; i++){
		if(poll.pollRadio[i].checked == true){
		  is_checked = true;
		 }
	 	if ( is_checked == true){
		
			var formObject = document.getElementById('pollForm');
			YAHOO.util.Connect.setForm(formObject);
			c = YAHOO.util.Connect.asyncRequest(formObject.method, formObject.action, callback);
			break;			
		}
	 }
	}

};

var transactionObject = { 
	start:function(type, args){
		document.getElementById('loader').src = 'Webroot/global/neutral/layout/box/ajax-loader.gif';
	},
	complete:function(type, args){
		YD.setStyle('CatLoader', 'display', 'none');
	},	
	success:function(type, args){
     var resText=args[0].responseText;
     if(resText!=null){
       //neue Gesamtstimmenanzahl setzen
       var votingSum = resText.substring(resText.indexOf(":")+1,resText.indexOf(","));
       var totalText = YAHOO.util.Dom.get('total').innerHTML.toString();
       var newTotalText = totalText.substring(0, totalText.indexOf(": ")+1)+" "+votingSum;
       YAHOO.util.Dom.get('total').innerHTML = newTotalText;
       var percentages = resText.substring(resText.indexOf(",")+1).split(",");
       for(var i=0;i<percentages.length;i++){
         var counter = i+1;
         var pBR_ID = 'pBR'+counter;
         var resultText = YAHOO.util.Dom.get(pBR_ID).getAttribute("title").toString();
         var newResultText = resultText.substring(0, resultText.indexOf(":")+1);
         //alert(resultText);
         YAHOO.util.Dom.get(pBR_ID).innerHTML = percentages[i] +"%";
         YAHOO.util.Dom.get(pBR_ID).setAttribute("title", newResultText+percentages[i]);
       }
     }
		 YD.setStyle('pollForm', 'display', 'none');
		 YD.setStyle('pollResult', 'display', 'block');	 
		window.setTimeout("poll.movedown()", 500);	
	},
	failure:function(type, args){
		alert('error: '+args[0].argument[0]);
	}
}


var callback = {
	customevents:{
		onStart:transactionObject.start,
		onComplete:transactionObject.complete,
		onSuccess:transactionObject.success,
		onFailure:transactionObject.failure
	}
};  

YAHOO.util.Event.onDOMReady(poll.init); 