var ajaxerror = '';

function getDocument(){
  var doc = document;
  if(!doc){doc = window.document};
  if(!doc){doc = parent.document};
  if(!doc.getElementById){
    doc.getElementById = function(id){
      return doc.all[id];
    }
  }
  return doc;
}

setInnerHTML = function(divContent, HTML) {
      divContent.innerHTML=HTML; 
      /*var All=divContent.getElementsByTagName("*");
      for (var i=0; i<All.length; i++) {
        All[i].id=All[i].getAttribute("id")
        All[i].name=All[i].getAttribute("name")
        All[i].className=All[i].getAttribute("class")
      }*/
      var AllScripts=divContent.getElementsByTagName("script")
      for (var i=0; i<AllScripts.length; i++) {
         var s=AllScripts[i];
         if (s.src && s.src!="") {
            // Précédement asynchrone, mis en synchrone pour éviter des probl&#269;mes de dépendances de scripts
            eval(getFileContent(s.src))
         }
         else {
            eval(s.innerHTML)
         }
      }
   }

function makeRequest(url,iddiv, onLoad) {
	ajaxerror = '';
  	var httpRequest = false;
  	var doc = getDocument();
	var ele = doc.getElementById(iddiv);
	
	if(ele == null){
		ele = doc.getElementById? doc.getElementById(iddiv): doc.all[iddiv];
	}
  if(ele == null){
		ele = parent.document.getElementById? parent.document.getElementById(iddiv): parent.document.all[iddiv];
	}
	if(ele == null){
		ajaxerror = 'div '+iddiv+' non trouvee';
		return false;
	}
	
	var dh = ele.offsetHeight;
	var dw = ele.offsetWidth - 2;
	
	ele.innerHTML = "<div style='width:"+dw+"px;height:"+dh+"px;'><center><img src=/img/chargement.gif></center></div>";
	
	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) {
		ele.innerHTML = 'Page non charg&eacute;e : Impossible de crer une instance XMLHTTP';
		return false;
	}
	httpRequest.onreadystatechange = function() { alertContents(httpRequest,iddiv); if($ != null && $.mmcAnim)$.mmcAnim.reload(); };
	httpRequest.open('GET', url, true);
	httpRequest.send(null);
	
	//return true;
}


function makeRequestElle(url,iddiv, onLoad) {
	ajaxerror = '';
    var httpRequest = false;
	var ele = document.getElementById(iddiv);
	
	if(ele == null){
		ele = document.getElementById? document.getElementById(iddiv): document.all[iddiv];
	}

	if(ele == null){
		ajaxerror = 'div '+iddiv+' non trouvee';
		return false;
	}
	
	var dh = ele.offsetHeight;
	var dw = ele.offsetWidth - 2;
	
	
	ele.innerHTML = "<div style='width:"+dw+"px;height:"+dh+"px;'><center><img src=/img/chargement.gif></center></div>";
	
	
	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) {
		ele.innerHTML = 'Page non charg&eacute;e : Impossible de crer une instance XMLHTTP';
		return false;
	}
	httpRequest.onreadystatechange = function() { alertContentsELLE(httpRequest,iddiv); if($ != null && $.mmcAnim)$.mmcAnim.reload(); };
	httpRequest.open('GET', url, true);
	httpRequest.send(null);
	
	//return true;
}


function postForm(form, url,iddiv, onLoad){
	var query = serialize_form(form);
	return makeRequest(url + '?' + query ,iddiv, onLoad);
}

function postFormELLE(form, url,iddiv, onLoad){
	var query = serialize_form(form);
	return makeRequestElle(url + '?' + query ,iddiv, onLoad);
}

function alertContents(httpRequest,iddiv) {
  var doc = getDocument();
  
	if (httpRequest.readyState == 4) {
		if (httpRequest.status == 200) {
			//parent.document.getElementById(iddiv).innerHTML = httpRequest.responseText;
			setInnerHTML(doc.getElementById(iddiv), httpRequest.responseText);
		} else {
			//parent.document.getElementById(iddiv).innerHTML = 'Page non charg&eacute;e : Un probleme est survenu avec la requete';
			doc.getElementById(iddiv).innerHTML = '';
		}
	}
}

function alertContentsELLE(httpRequest,iddiv) {
	if (httpRequest.readyState == 4) {
		if (httpRequest.status == 200) {
			//document.getElementById(iddiv).innerHTML = httpRequest.responseText;
			setInnerHTML(parent.document.getElementById(iddiv), httpRequest.responseText);
		} else {
			//parent.document.getElementById(iddiv).innerHTML = 'Page non charg&eacute;e : Un probleme est survenu avec la requete';
			document.getElementById(iddiv).innerHTML = '';
		}
	}
}
 
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;
}
