function getHTTPObjectPopUp() {
  var xmlhttp;
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
      } catch (e) {
      xmlhttp = false;
      }
    }else{
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

  return xmlhttp;
}


// setInnerHTML Sécurisé
function setInnerHTML(divContent, HTML) {
    divContent.innerHTML=HTML; 
    try {
      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")
        var elementClass = All[i].getAttribute("class");
        if (elementClass == null) {
        elementClass = All[i].getAttribute("className");
        }
        All[i].className=elementClass;
      }
    } catch (ex) {}
    try {
      var AllScripts=HTML.extractTags("script");
      AllScripts.forEach(function (v) {
        eval(v);
      })
    } catch (ex) {}
    try {
      var AllStyles=HTML.extractTags("style");
      AllStyles.forEach(function (v) {
        var s=document.createStyleSheet()
        s.cssText=v;
        s.enabled=true;
      }, true)
    } catch (ex) {}
}

function setOpacity( value ) {
 document.getElementById("popup").style.opacity = value / 10;
 document.getElementById("popup").style.filter = 'alpha(opacity=' + value * 10 + ')';
}

function fadeInMyPopup() {
 for( var i = 0 ; i <= 100 ; i++ )
   setTimeout( 'setOpacity(' + (i / 8) + ')' , 2 * i );
}

function fadeOutMyPopup() {
 for( var i = 0 ; i <= 100 ; i++ ) {
   setTimeout( 'setOpacity(' + (10 - i / 8) + ')' , 2 * i );
 }

 setTimeout('closeMyPopup()', 0 );
 
}

function closeMyPopup() {
 document.getElementById("popup").style.display = "none"
}

function affichepopup(url,form,parametre,largeur,hauteur) { 
    String.prototype.extractTags=function(tag) {
        var matchAll = new RegExp('(?:<'+tag+'.*?>)((\n|\r|.)*?)(?:<\/'+tag+'>)', 'img');
        var matchOne = new RegExp('(?:<'+tag+'.*?>)((\n|\r|.)*?)(?:<\/'+tag+'>)', 'im');
        return (this.match(matchAll) || []).map(function(scriptTag) {
          return (scriptTag.match(matchOne) || ['', ''])[1];
        });
      }
     
    Object.prototype.forEach=function(delegate, ownpropertiesonly) {
            if (typeof(delegate)=="function") {
                if (this instanceof Array && typeof(ownpropertiesonly)=="undefined") {
                    ownpropertiesonly=true;
                }
                for (key in this) {
                    var ok = (!ownpropertiesonly);
                    if (!ok) {
                        try {
                            ok=this.hasOwnProperty(key)
                        } catch (ex) {}
                    }
                    if (ok) {
                        try { delegate(this[key], key, this) } catch(e) {
                            // ...
                        }
                    }
                }
            }
            return false;
        }
     
    Object.prototype.map=function(iterator) {
        var results = [];
        this.forEach(function(value, index) {
          results.push(iterator(value, index));
        });
        return results;
      }

   //if(largeur == undefined)
    //   var largeur = "100%";
   if(hauteur == undefined)
       var hauteur = "550";
   var http = getHTTPObjectPopUp();
   
   http.open("POST",url, false);
   http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
   var params = parametre;
   if(form != ''){
       for (var i = 0; i < form.elements.length; i++) {
           if (form.elements[i].type == "checkbox"){
               if ((form.elements[i].checked) && (form.elements[i].name.slice(-2)=='[]')){ //S'il s'agit d'un tableau de checkbox, on renvoie que ceux cochés (pour simuler le fonctionnement d'un submit)
                   if (params != '')
        	           params = params + "&";        
            	   params = params + form.elements[i].name + "=" + escape(form.elements[i].value);
               }
            }else{
                if (params != '')
                    params = params + "&";        
                params = params + form.elements[i].name + "=" + escape(form.elements[i].value);
            }
       }
   }
   http.send(params);
   results = http.responseText;
   setInnerHTML(document.getElementById('contenu_popup'),results);
   //setOpacity( 0 );
   setOpacity(100);
   document.getElementById('popup').style.display = 'block';
   //fadeInMyPopup();
   
   
   
 
       document.getElementById('contenu_popup').style.height = hauteur;
       //document.getElementById('popup').style.top = document.body.scrollTop;
       document.getElementById('popup2').style.top = '50%';
       document.getElementById('popup2').style.marginTop = '-' + hauteur/2 + 'px';

   if(largeur > 0){
       document.getElementById('popup2').style.left = '50%';
       document.getElementById('popup2').style.marginLeft = '-' + largeur/2 + 'px';
       document.getElementById('contenu_popup').style.width = largeur;
       document.getElementById('popuphaut').style.width = largeur;
       document.getElementById('popupbas').style.width = largeur;
       document.getElementById('popup2').style.width = largeur;
   }else{
       document.getElementById('popup2').style.left = '25%';
       document.getElementById('popup2').style.marginLeft = '0px';
       document.getElementById('contenu_popup').style.width = '100%';
       document.getElementById('popuphaut').style.width = '100%';
       document.getElementById('popupbas').style.width = '100%';
       document.getElementById('popup2').style.width = '50%';
   }
   

}

function traitementform(url,form,parametre,fermeture){
    var http = getHTTPObjectPopUp();
    var params = parametre;
    
    http.open("POST",url, false);
    http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    
    if(form != ''){
        for (var i = 0; i < form.elements.length; i++) {
            if (form.elements[i].type == "checkbox"){
                if ((form.elements[i].checked) && (form.elements[i].name.slice(-2)=='[]')){ //S'il s'agit d'un tableau de checkbox, on renvoie que ceux cochés (pour simuler le fonctionnement d'un submit)
                    if (params != '')
         	           params = params + "&";        
             	   params = params + form.elements[i].name + "=" + escape(form.elements[i].value);
                }
             }else{
                 if (params != '')
                     params = params + "&";        
                 params = params + form.elements[i].name + "=" + escape(form.elements[i].value);
             }
        }
    }
    
    http.send(params);
    
    results = http.responseText;
    
    
    if (results != ''){
	    var strRetour2 = results.split('|||');
	    if(strRetour2[0] != '' && strRetour2[0] != undefined){
		    var strRetour = strRetour2[0].split('||');
	        for (var i = 0; i < strRetour.length; i++) {
	        	  var strSpan = strRetour[i].split('|');
	        	  if(strSpan[0] == 'alert_js')
	        	      alert(strSpan[1]);
	        	  else
	        	      setInnerHTML(document.getElementById(strSpan[0]),strSpan[1]);
	              
	        }
	    }
    }
    
    setTimeout("", 3000000);
    
    if (results != ''){
	    if(strRetour2[1] != '' && strRetour2[1] != undefined)
	         document.location.href=strRetour2[1];
    }
    
    if(fermeture == 1)
        document.getElementById('popup').style.display = 'none';
    if(fermeture == 2){
        window.location.reload();
    }
    
}

