// JavaScript Document

// JavaScript Document
/*
// version ie7
function getPage(url,id)
{
  //alert("getpage : "+url)
  var xhr_object = null;
  var position = id;
  if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
  else
  if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
  // On ouvre la requete vers la page désirée
  xhr_object.open("GET", url, true);
  xhr_object.onreadystatechange = function()
  {
    if ( xhr_object.readyState == 4 )
    {
    // j'affiche dans la DIV spécifiées le contenu retourné par le fichier
    document.getElementById(position).innerHTML = xhr_object.responseText;
    setInnerHTML(position,xhr_object.responseText);
    //alert(xhr_object.responseText);
    } // if ( xhr_object.readyState == 4 )
  } // xhr_object.onreadystatechange = function()
  // dans le cas du get
  xhr_object.send(null);
} // function getPage(url,id)
*/

// version ie6

function createXMLHttpRequest() 
{
   try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
   try { return new XMLHttpRequest(); } catch(e) {}
   alert("XMLHttpRequest non supporté. Veuillez mettre à jour votre navigateur.");
   return null;
}

function getPage(url,id)
{
  //alert("getpage : "+url)
  var xhr_object = null;
  var position = id;
  
  var xhr_object = createXMLHttpRequest();
  /*
  if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
  else
  if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
  */
  
  // On ouvre la requete vers la page désirée
  xhr_object.open("GET", url, true);
  xhr_object.onreadystatechange = function()
  {
    if ( xhr_object.readyState == 4 )
    {
    // j'affiche dans la DIV spécifiées le contenu retourné par le fichier
    document.getElementById(position).innerHTML = xhr_object.responseText;
    setInnerHTML(position,xhr_object.responseText);
    //alert(xhr_object.responseText);
    } // if ( xhr_object.readyState == 4 )
  } // xhr_object.onreadystatechange = function()
  // dans le cas du get
  xhr_object.send(null);
} // function getPage(url,id)


// pour execution des scripts dans le contenu chargé par ajax

// setInnerHTML Sécurisé
function setInnerHTML(divContent,HTML) 
{
    document.getElementById(divContent).innerHTML = HTML;
    // pour ie6 
    //document.getElementById("contenu").innerHTML = HTML;
    //alert("HTML : "+HTML);
    try {
      var All=divContent.getElementsByTagName("*");
      for (var i=0; i<All.length; i++) {
        alert("id : "+All[i].getAttribute("id"));
        All[i].id=All[i].getAttribute("id")
        All[i].name=All[i].getAttribute("name")
        All[i].className=All[i].getAttribute("class")
      }
    } 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) {}
}
 
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;
  }
  

