function makeRequest(url,iddiv) {
	if (parent.document.getElementById(iddiv))
	 {	
		if (parent.filedattente_search(url, iddiv) == -1)
		 {
			parent.fileattenteurl.push(url);
			parent.fileattentediv.push(iddiv);
			if (document.getElementById('valueEN'))
			 {
				if (document.getElementById('valueEN').value == 1)
				 {
					parent.fileattenteurl.push('incajax/fctAjax.php?include=include/recette_enregistreur.php&url='+escape(url)+'&parcours_ID='+document.getElementById('parcoursEN').value);
					parent.fileattentediv.push('etatEN-on');
				 }
			 }
		 }
	 }
 }

function filedattente_search(what, where){
	var index_file=-1
 
	for(elt in where) {
		index_file++;
		if (parent.fileattenteurl[elt] == what && parent.fileattentediv[elt] == where) {
			return index_file;
		}
		if (parent.fileattenteurl[elt] != what && parent.fileattentediv[elt] == where && elt > 0) {
			parent.fileattenteurl.splice(elt, 1);
			parent.fileattentediv.splice(elt, 1);
		}
	}
	index_file=-1;
	return index_file;
}

function filedattente() {
	if (parent.fileattenteexec == 0 && parent.fileattentediv.length > 0)
	 { 
		parent.fileattenteexec = 1;
		iddiv = parent.fileattentediv[0];
		url = parent.fileattenteurl[0];

		parent.document.getElementById(iddiv).innerHTML = "<img src='/img/info-loader.gif'/>";
      		var httpRequest = false;

		if (window.XMLHttpRequest) { 
			httpRequest = new XMLHttpRequest();
			if (httpRequest.overrideMimeType) {
      				httpRequest.overrideMimeType('text/xml');
			}
		}
		else if (window.ActiveXObject) { // IE
			try {
      				httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e) {
     				try {
      					httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
     				}
      				catch (e) {}
			}
		}

		if (!httpRequest) {
		    alert('Abandon :( Impossible de crer une instance XMLHTTP');
		    return false;
	 	}
		httpRequest.onreadystatechange = function() { alertContents(httpRequest,iddiv); };
		httpRequest.open('GET', url, true);
		httpRequest.send(null);
	 }
	if (document.getElementById('modalposition'))
	 { 
		verifcentrage('modalposition');
	 }
}

function alertContents(httpRequest,iddiv) {
        if (httpRequest.readyState == 4) {
            if (httpRequest.status == 200) {
              var e = parent.document.getElementById(iddiv);
		e.innerHTML = httpRequest.responseText;
		parent.fileattenteurl.shift();
		parent.fileattentediv.shift();
		parent.fileattenteexec = 0;
		var scripts = e.getElementsByTagName('script');
		for(var i=0; i < scripts.length;i++)
		{
			/*Sous IE il faut faire un execScript pour que les fonctions soient définie en globale*/
			if (window.execScript)
			{
				/*On replace les éventuels com' html car IE n'aime pas ça*/
				window.execScript(scripts[i].text.replace('<!--',''));
			}
			/*Sous les autres navigateurs on fait un window.eval*/
			else
			{
				window.eval(scripts[i].text);
			}
		}
            } else {
                alert('Un probleme est survenu avec la requete');
            }
        }
 }

function openModal(titre, largeur, url)
{
	$.modal({
		content: '<div id="modalcontenu"></div>',
		title: titre,
		width: largeur,
		buttons: {
			'Fermer': function(win) { win.closeModal(); }
		}
	});
	makeRequest(url,'modalcontenu');
}
 
 function postForm(form, url,iddiv){
	var query = serialize_form(form);
	makeRequest(url + '?' + query ,iddiv);
}
 
function serialize_form (theform) {
   var els = theform.elements;
   var len = els.length;
   var queryString = "";
   this.addField =
      function(name,value) {
         if (queryString.length>0) {
            queryString += "&";
         }
         queryString += encodeURIComponent(name) + "=" + encodeURIComponent(value);
      };
   for (var i=0; i<len; i++) {
      var el = els[i];
      if ((!el.disabled) && (el.name!='')){
         switch(el.type) {
            case 'text': case 'password': case 'hidden': case 'textarea':
               this.addField(el.name,el.value);
               break;
            case 'select-one':
               if (el.selectedIndex>=0) {
                  this.addField(el.name,el.options[el.selectedIndex].value);
               }
               break;
            case 'select-multiple':
               for (var j=0; j<el.options.length; j++) {
                  if (el.options[j].selected) {
                     this.addField(el.name,el.options[j].value);
                  }
               }
               break;
            case 'checkbox': case 'radio':
               if (el.checked) {
                  this.addField(el.name,el.value);
               }
               break;
         }
      }
   }
   return queryString;
}
