/*

addToForm("dynamicDiv", cible);
ajout de champs speciaux aux formulaires : 
cible = "themes" => fait apparaitre le choix des themes (group_1,...)  pour l'inscription a la newsletter
cible = "antispam" => fait apparaitre une question, un input (antispamRep), et place la bonne reponse en session


Appel dans le formulaire
========================
<div id="dynamicDiv">
<script type="text/javascript" src="/static/scripts/addToForm-fr.js">
</script>
<script type="text/javascript">
window.onload=function(){
addToForm("dynamicDiv", "antispam");
}
</script>
Syst&egrave;me antispam
</div>
*/


function getXMLHTTP_addToForm(){
	var xhr=null;
	if(window.XMLHttpRequest){ // Firefox et autres
		xhr = new XMLHttpRequest();
		
	}else if(window.ActiveXObject){ // Internet Explorer
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e){
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e1) {
				xhr = null;
			}
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	}
	return xhr;
}


function addToForm(cible, nature) {
	if (cible && nature){
		var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
		if(_xmlHttp&&_xmlHttp.readyState!=0){
			_xmlHttp.abort();
		}
		_xmlHttp=getXMLHTTP_addToForm();
		if(_xmlHttp){
		
			//appel à l'url distante
			_xmlHttp.open("GET","/static/jsp/addToForm.jsp?"+nature+"=true",true);
			_xmlHttp.onreadystatechange=function() {
				if(_xmlHttp.readyState==4 && _xmlHttp.status == 200) {
					document.getElementById(cible).innerHTML = _xmlHttp.responseText;
				}
			};
			// envoi de la requete
			_xmlHttp.send(null);
		}
	} else {
		alert("addToForm : parametre manquant");
	}
}

/**
* recupere le contenu d'un formulaire Cykia et l'inscrit dans l'element div fourni
* @param divElement l'element div
* @param formID l'identifiant du formulaire cykia
*/
/*

Appel
======

ex : formulaire à l'identifiant 10 :
		
<div id="dynamicDiv" onload="insertCykiaForm(this, 10);">
<script type="text/javascript" src="/static/scripts/addToForm-fr.js">
</script>
Formulaire Cykia
</div>

*/	
function insertCykiaForm(divID, formID) {
	if (divID && formID){
		var _xmlHttp = null; //l'objet xmlHttpRequest utilisé pour contacter le serveur
		if(_xmlHttp&&_xmlHttp.readyState!=0){
			_xmlHttp.abort();
		}
		_xmlHttp=getXMLHTTP_addToForm();
		if(_xmlHttp){
		
			//appel à l'url distante
			_xmlHttp.open("GET","/static/jsp/insertCykiaForm.jsp?formID="+formID,true);
			_xmlHttp.onreadystatechange=function() {
				if(_xmlHttp.readyState==4 && _xmlHttp.status == 200) {
					document.getElementById(divID).innerHTML = _xmlHttp.responseText;
				}
			};
			// envoi de la requete
			_xmlHttp.send(null);
		}
	} else {
		alert("insertCykiaForm : parametre manquant");
	}
}


/*
* renseigne le champ caché fieldOrder d'un formulaire
* pour indiquer l'ordre de traitement des autres champs
*/
function sortFields(myForm) {
	var myString;
	myString = "";
	var x = -1;
	for (var i=0;i<myForm.length;i++)
	{
	  if (i!=0)
		myString = myString + '|';
	  
	  var name = myForm.elements[i].name;
	  myString = myString + name;
	  
	  if (name=='fieldOrder')
		x=i;
	}
	if (x != -1)
		myForm.elements[x].value = myString;
 }


// Appel webservice
function callExternalScript(url) {
    var n = document.createElement("script");
    n.setAttribute("type", "text/javascript");
    n.setAttribute("src", url);
    document.getElementsByTagName("head")[0].appendChild(n);
}
