/**
 * ensemble de functions utilisant Prototype.js pour traiter le workflow
 * des sondages (affichage des questions, du captcha et des résultats)
 *
 * ces functions ont besoin d'une variable globale 'proxy' dont la valeur
 * est chargée dans un .jsp du template; elle contient l'url de la servlet 
 * proxy nécessaire à Ajax pour adresser un serveur 'externe' (contournement 
 * de la sécurité des browsers)
 *  - chargée dans global.jsp
 *  - valeur dans config.any
 */

function enableBtn(sondage) {
  //var iaform = document.forms['pollform_' + sondage];
  //iaform['pollbutton'].disabled = false;
  var aval = 'pollbutton_' + sondage;
  document.getElementById(aval).disabled = false;
}

function setCookieAjax(c_name, value) {
/*
	// TEST
	document.cookie = c_name + "=" + escape(value);
*/
	// PROD
	var exdate=new Date();
	exdate.setMonth(exdate.getMonth()+2);
	document.cookie=c_name+ "=" + escape(value) + ";expires="+exdate.toGMTString()+"; path=/";
}

function getCookieAjax(nom) {
  deb = document.cookie.indexOf(nom + "=" + nom);
  if (deb >= 0) {
    deb += nom.length + 1;
    return true;
  }
  return false;
}

function getAllSondages(lang) {
  var servlet = '/GetAllSondages';
  var params = 'lang=' + lang + '&servlet=' + servlet;
  var target = 'pollbox';
  var myAjax = new Ajax.Updater(target, proxy, {method: 'get', parameters: params});
}

function choosevote(index) {
  var aform = document.forms['pollform'];
  aform.submit();
}

function getSondage(sondage, lang, jsessionid, alreadyVoted, fromURI) {
  var servlet;
  if ( alreadyVoted ) {
    servlet = '/AlreadyVoted';
  }
  else {
    servlet = '/GetSondage';
  }
  var target = 'pollbox_' + sondage;
  var params = 'sondage=' + sondage + '&lang=' + lang  + '&jsessionid=' + jsessionid + '&servlet=' + servlet + '&fromURI=' + fromURI;
  var myAjax = new Ajax.Updater(target, proxy, {method: 'get', parameters: params });
}

function sendvote(sondage, lang, jsessionid, fromURI) {
  // session cookie 
  // -- positionné ultérieurement par la réponse au captcha (cf sendcaptcha()) --
  // setCookieAjax(sondage, sondage); 
  var aform = document.forms['pollform_' + sondage];
  var  pollanswer;
  for (var i=0;i<aform.pollanswer.length;i++) {
    if (aform.pollanswer[i].checked) {
      pollanswer = aform.pollanswer[i].value;
    }
  }
  var servlet = '/SendVote';
  var params = 'pollanswer=' + pollanswer + '&lang=' + lang + '&sondage=' + sondage + '&jsessionid=' + jsessionid + '&servlet=' + servlet + '&fromURI=' + fromURI;
  var target = 'pollbox_' + sondage;
  var myAjax = new Ajax.Updater(target, proxy, {method: 'get', parameters: params});
}

/**
 * envoie la reponse de l'utilisateur sur la servlet qui controle la 
 * validite de la reponse
 * si le controle est positif, on positionne un cookie (pour empêcher 
 * un nouveau vote sur le même sondage
 * la reponse est POSITIVE s'il existe un ATTRIBUT de request 'cookit'
 * qui a été transformé par la servlet en un HIDDEN du même nom ; une fois 
 * le cookie positionné, on efface du DOM cet élément 'cookit'
 */
function sendcaptcha(sondage, lang, jsessionid, fromURI) {
  var captcha_code;
  var aform = document.forms['pollform_' + sondage];
  captcha_code = aform.captcha_code.value;
  var servlet = '/ValidateCaptcha';
  var params = 'captcha_code=' + captcha_code + '&lang=' + lang + '&sondage=' + sondage + '&jsessionid=' + jsessionid + '&servlet=' + servlet + '&fromURI=' + fromURI;
  var target = 'pollbox_' + sondage;
  // var myAjax = new Ajax.Updater(target, proxy, {method: 'get', parameters: params});
  var myAjax = new Ajax.Request(
	proxy, 
	{
		method: 'get', 
		parameters: params,
		onSuccess: function(transport) {
 			var response = transport.responseText;
			var obj = document.getElementById(target);
			obj.innerHTML = response;
			var cookit = document.getElementById('cookit');
			if ( cookit ) {
				setCookieAjax(sondage, sondage);
				Element.remove(cookit);
			}
		}
		//onFailure: function() { alert('Requête échouée.') }
	}
  );
}

function getSessionIDAjax() {
	var myAjax = new Ajax.Request( 
		"http://lblcmsadev:4302/author/main/fr/home.Ajax.html",
		{
			method: 'get',
			parameters: 'tot=1',
			onSuccess: function(transport) { },
			onFailure: function() { alert('Requête échouée.') }
		}
	);
}

/*
function meteoGenerale(strRegion, random, handle, langue, label) {
  var target = 'meteoGenerale' + strRegion + random;
//alert(target);
  var params = 'strRegion=' + strRegion + '&langue=' + langue + '&label=' + label;
  var myAjax = new Ajax.Updater(target, handle  + '.MeteoGenerale.html', {method: 'get', parameters: params});
}
*/
