﻿//-----------------------------------------------------------------------
// LASONDE V2
// Hermann Alexandre
//
// JS INSERTION LASONDE V2
//-----------------------------------------------------------------------
var url_core="http://www.lasonde.fr/wp-content/plugins/lasonde/LSD_core";
var text_chargement="Chargement du sondage...";

if(typeof(js_load)=='undefined'){
var js_load;



//-----------------------------------------------------------------------
//	INITIALISATION
//	CSS - LOADING - APEL ETAPE 1
//-----------------------------------------------------------------------


function LSD_init_conteneur(config){
	var bloc_name = config.bloc_name;

	if(typeof(config.css_url)=="undefined"){
		config.css_url = false;
	}
	//conteneur + JS + CSS
	var conteneur = "<div id='lsd_js_"+config.bloc_name+"'></div><div id='lsd_css_"+config.bloc_name+"'></div><div id='"+config.bloc_name+"'><div id='LSD_loading_"+config.bloc_name+"' style='display:none;'></div></div>";
	
	if(config.box){
		document.getElementById(config.box).innerHTML = conteneur;
	}else{
		document.write(conteneur);
	}

	//css puis affichage
	get_sondage_css(config);
	//tween lib
	loadjscssfile(url_core+"/js/LSD_tween.js", "js",config.bloc_name);

	
	//lib + tween
	//Ajax_caller_sondage(1,config.bloc_name,config.sd_id,config.tween);
	//init apel ajax
	var params = "?step=1&bloc_name="+config.bloc_name+"&sd_id="+config.sd_id+"&tween="+config.tween+"&callback=Ajax_caller_sondage";    	
	lsd_call_ajax(url_core+'/bdd-sondages.php' + params);//ajax call JSON

}


//-----------------------------------------------------------------------
//	REQUEST AJAX
//	
//-----------------------------------------------------------------------
function createRequestObject(){
    var http;
    if (window.XMLHttpRequest){ // Mozilla, Safari, IE7 ...
        http = new XMLHttpRequest();
    }else if (window.ActiveXObject){ // Internet Explorer 6
   	    http = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return http;
}
 

//-----------------------------------------------------------------------
//	ETAPES FONCTIONS DU SONDAGE	
//  1=>Apel du sondage
//	2=>Envoi des données + calcul
//	3=>Recuperation des résultats et affichage final
//-----------------------------------------------------------------------

function Ajax_caller_sondage(step,lsd){
	
	switch(step){
	 
//-----------------------------------------------------------------------
//	ETAPES FONCTIONS DU SONDAGE	
//-----------------------------------------------------------------------

	case 1:
		if(lsd.html!=''){
			document.getElementById(lsd.bloc_name).innerHTML = lsd.html;

			//si des restrictions alors pas de loading et pas de bouton
			if(lsd.restriction!=1){
				//on cache le loading
				document.getElementById("LSD_loading_"+lsd.bloc_name).style.display = 'none'; 
				//on ajoute l'ecouteur du clik vote suite a l'affichage qui permet de relancer le vote.
				document.getElementById("LSD_bouton_vote_"+lsd.bloc_name).onclick = function () {
					Ajax_caller_sondage(2,lsd);		
					return false;
				};
			}
		}else{
			alert('L\'affichage du sondage a échoué.');
			document.getElementById("LSD_loading_"+lsd.bloc_name).style.display = 'none'; 
		}        		
	break;
	
	//envoi de données + reception
	case 2:
		document.getElementById("LSD_loading_"+lsd.bloc_name).style.display = '';   
     	var div_checkboxs = document.getElementById('LSD_content_rep_'+lsd.bloc_name).childNodes;
     	var response_post = "?step=2&bloc_name="+lsd.bloc_name+"&sd_id="+lsd.sd_id+"&tween="+lsd.tween+"&callback=Ajax_caller_sondage";
     	var b = 0;
     	for(var i=0; i< div_checkboxs.length; i++){
     	   	var checkboxs = div_checkboxs[i].childNodes;
			//on va chercher les checkbox dans leurs conteneurs.
			for(var c=0; c< checkboxs.length; c++){
     			if(checkboxs[c].checked == true){
     				response_post = response_post + "&" + checkboxs[c].name+ "=" +checkboxs[c].value;
     				b++;
     			}
     		}
     	}
     	if(b!=0){
			lsd_call_ajax(url_core+'/bdd-sondages.php' + response_post);//ajax call JSON
     	}else{
     		//si pas de reponse
     		alert('Veuillez sélectionner une réponse');
     		//on cahce le loading
     		document.getElementById("LSD_loading_"+lsd.bloc_name).style.display = 'none'; 
     	}
     	return false;
	break;
	
	
	//reponse des votes
	case 3:
		if(lsd.html=='ok_db'){
			//les votes sont ok, on appelle les résultats en ajax
		    var result_post = "?step=3&bloc_name="+lsd.bloc_name+"&sd_id="+lsd.sd_id+"&tween="+lsd.tween+"&callback=Ajax_caller_sondage";
			lsd_call_ajax(url_core+'/bdd-sondages.php' + result_post);//ajax call JSON
		}else{
			alert('Erreur lors du vote.');
			//cache loading
			document.getElementById("LSD_loading_"+lsd.bloc_name).style.display = 'none'; 
		}
	break;
	
	//recupération résultat des votes
	case 4:
        if(lsd.html!=''){
        	//on cahce le loading
        	document.getElementById("LSD_loading_"+lsd.bloc_name).style.display = 'none'; 
        	document.getElementById(lsd.bloc_name).innerHTML = lsd.html;
        	//si les tween sont activé
        	var y=0;
        	var div_LSD_rep = document.getElementById('LSD_content_rep_'+lsd.bloc_name).childNodes;
        	for(var i=0; i< div_LSD_rep.length; i++){
        		var reponses = div_LSD_rep[i].childNodes;
				//on va chercher les div plus bas
				for(var c=0; c < reponses.length; c++){
					if(typeof(reponses[c].id)!='undefined' && reponses[c].getAttribute("class")!="wp-smiley"){//si different de l'image c'est la barre de rep
						y++;
						//nbr de votre par reponses
						var prct = document.getElementById('LSD_rep_prct_'+lsd.bloc_name+'_'+y).value;
						var largeur_total = document.getElementById('LSD_rep_barre_'+lsd.bloc_name+'_'+y).offsetWidth;
						//taille de le barre max = taille du bloc moins les marge
						var largeur_barre = (prct*largeur_total)/100;
						//on verifie que le pourcentage est != 0
						if(largeur_barre >=0.1 && largeur_barre<=1)
							largeur_barre=1;
						//on garde les decimales
						largeur_barre = largeur_barre.toFixed(0);
						//definition des Tween
						if(lsd.tween==0 || typeof(lsd.tween)=='undefined'){
							//on creer directement la taille des reponses barres formulaire
							setStyle(reponses[c].id, "width",largeur_barre+"px");
						}else{
							lsd.tween = eval(lsd.tween); //transforme le string en fonction
							//on effectue les tween effects
							var t1 = new Tween(document.getElementById(reponses[c].id).style,"width",lsd.tween,0,largeur_barre,4,"px");
							t1.start();
						}
					}
				}
			}							
  		}else{
      		alert('L\'affichage des résultats a échoué.');
  		}
     	return false;
	break;
	
	}
	
}


//css
function get_sondage_css(config){
	if(config.css_url!=false){
		loadjscssfile(config.css_url,"css",config.bloc_name);
	}else if(typeof(config.css_id)!='undefined'){//si le css_id est définit
		var css_post = "?step=4&bloc_name="+config.bloc_name+"&css_id="+config.css_id+"&sd_id="+config.sd_id;
		loadjscssfile(url_core+'/bdd-sondages.php' + css_post, "css",config.bloc_name);
	}
}
function setStyle(objId, style,value){
	document.getElementById(objId).style[style] = value;
}

function loadjscssfile(filename, filetype,bloc_name){
	//on vide le div qui contient le css et le js pour ne pas le répéter
	
	if (filetype=="js"){ //if filename is a external JavaScript file
 		var fileref=document.createElement('script');
 		fileref.setAttribute("type","text/javascript");
 		fileref.setAttribute("src", filename);
 		
 		document.getElementById("lsd_js_" + bloc_name).innerHTML="";
 		document.getElementById("lsd_js_"+bloc_name).appendChild(fileref);
	
	}else if (filetype=="css"){ //if filename is an external CSS file
 		var fileref=document.createElement("link");
 		fileref.setAttribute("rel", "stylesheet");
  		fileref.setAttribute("type", "text/css");
  		fileref.setAttribute("href", filename);
  		document.getElementById("lsd_css_"+bloc_name).innerHTML="";
  		document.getElementById("lsd_css_" +bloc_name).appendChild(fileref);
 	}else if (filetype=="ajax"){ //if filename is an external CSS file
 		var fileref=document.createElement("script");
 		fileref.setAttribute("rel", "lsd_ajax_caller");
  		fileref.setAttribute("type", "text/javascript");
  		fileref.setAttribute("src", filename);
  		document.getElementsByTagName('head')[0].appendChild(fileref); 
 	}
 	
 
}
//chargementde l'apelajax
function lsd_call_ajax(url){
	loadjscssfile(url, "ajax");
}


}//fin typeof jsload
//loadjscssfile("myscript.js", "js") //dynamically load and add this .js file
//loadjscssfile("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file
//loadjscssfile("mystyle.css", "css") ////dynamically load and add this .css file
/*
Tween.regularEaseIn
Tween.regularEaseOut
Tween.regularEaseInOut
Tween.strongEaseIn
Tween.strongEaseOut
Tween.strongEaseInOut
Tween.backEaseOut
Tween.backEaseIn
Tween.backEaseInOut
Tween.bounceEaseOut
Tween.bounceEaseIn
Tween.bounceEaseInOut
Tween.elasticEaseIn
Tween.elasticEaseOut
Tween.elasticEaseInOut								
*/
