/*
 *	Ajax DHTML popup by jc@vitalyn.com (c) VITALYN  2006
 *
 *	V1.0 - 2006-11-09
 */
var DPbgdiv = null;
var DPbgiframe = null;
var DPboxdiv = null;
var DPtitlediv = null;
var DPcontentdiv = null;

// internals
var DPwidth = 0;
var DPtop = 0;
var DPleft = 0;
var DPreq = null;
var DPtitle = '';

function	DPinit()
{
  DPboxdiv = document.createElement('DIV');
  DPboxdiv.id = 'div_dpbox';
  document.body.appendChild(DPboxdiv);

  //DPboxdiv = document.getElementById('div_dpbox');
  DPboxdiv.style.display = 'none';
  DPboxdiv.innerHTML = '<div><div id="div_dptitle" style="float: left;"></div><img src="./images/btclose-off.gif" onmouseover="imgOn(this);" onmouseout="imgOff(this);" style="float: right;" class="pointer" onclick="DPclose();" alt="Cliquez pour fermer" /><br /></div><br class="clear" /><div id="div_dpcontent"></div></div>';
  
  
  // hack pour pas que les secteurs pass a "travers" le div sous IE6, on utilise une iframe a la place dans ce cas
  if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('opera') == -1) && document.all) {
    DPbgiframe = document.createElement('IFRAME');
    DPbgiframe.id = 'div_dpbg';
    DPbgiframe.backgroundColor = 'transparent';
    DPbgiframe.src = '#';
    DPbgiframe.onclick = function() { DPclose(); };
    DPbgiframe.style.top = '0px';
    DPbgiframe.style.left = '0px';
    document.body.appendChild(DPbgiframe);
  }
  DPbgdiv = document.createElement('DIV');
  DPbgdiv.id = 'div_dpbg';
  document.body.appendChild(DPbgdiv);
  DPbgdiv.onclick = function() { DPclose(); };
  DPbgdiv.style.top = '0px';
  DPbgdiv.style.left = '0px';

  DPtitlediv = document.getElementById('div_dptitle');
  DPcontentdiv = document.getElementById('div_dpcontent');
}
function	DPopen(url, title, width, top, left, pdata)
{
  if (!(DPcontentdiv && DPboxdiv && DPtitlediv)) {
    DPinit();
  }
  
  //DPclose();
  DPshow('Chargement en cours... <i>'+title+'</i>', 450, "<center><br /><br /><b><img src=\"/images/lswait.gif\" align=\"absmiddle\" /> Chargement en cours...</b><br /><br /><input type=\"button\" class=\"button\" onClick=\"DPclose();\" value=\"Annuler\" /></center><br /><br />");
  
  if (DPreq && DPreq.readyState < 4) {
    DPreq.abort();
  }
  if (window.XMLHttpRequest) { // Mozilla, Safari, ...
    DPreq = new XMLHttpRequest();
    // certains version de mozilla necessite du XML, mais bug sous IE7
    //DPreq.overrideMimeType('text/xml');
  } else if (window.ActiveXObject) {// IE
    DPreq = new ActiveXObject("Microsoft.XMLHTTP");
  }
  DPreq.onreadystatechange = DPgetResult;
  if (pdata) {
    var method = 'post';
  } else {
    var method= 'get';
  }
  DPreq.open(method, url, true);
  if (pdata)
    DPreq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  DPreq.send(pdata);

  DPwidth = width;
  DPtop = top;
  DPleft = left;
  DPtitle = title;
}
function	DPshow(t, w, c)
{
  if (!(DPcontentdiv && DPboxdiv && DPtitlediv)) {
    DPinit();
  }
  
  var i = 0;

  hideFlash();
  DPcontentdiv.innerHTML = c;
  DPtitlediv.innerHTML = t;
  DPboxdiv.style.width = w+'px';

  i = document.body.scrollWidth - parseInt(DPboxdiv.style.width);
  DPboxdiv.style.left = i > 0 ? (i/2)+'px' : '0px';
  // au centre de la page
  //i = document.body.scrollHeight - DPboxdiv.scrollHeight - 300;
  //DPboxdiv.style.top = i > 0 ? (i/2) : 50;
  // au centre de l'ecran (meme scroll au 3/4)
  //DPboxdiv.style.top = (document.body.scrollTop + 100) + 'px';
  // a 25px du haut de la page quelque soit le scroll
  var st = Math.max(document.body.scrollTop, document.documentElement.scrollTop);
  if (navigator.userAgent.toLowerCase().indexOf('safari') >= 0)
    st = 0;var st = Math.max(document.body.scrollTop, document.documentElement.scrollTop);
  DPboxdiv.style.top = 25+st+'px';

  if (DPbgiframe)
    DPbgiframe.style.display = 'block';
  DPbgdiv.style.display = '';
  DPboxdiv.style.display = '';

  // faire apres car si le contenu de la dpopup est plus grand que la page, le div de font prendra pas toute la page, c balo...
  DPbgdiv.style.height = (document.body.clientHeight > document.body.scrollHeight ? document.body.clientHeight : document.body.scrollHeight)+'px';
  DPbgdiv.style.width =  document.body.scrollWidth + 'px';
  if (DPbgiframe) {
    DPbgiframe.style.height = DPbgdiv.style.height;
    DPbgiframe.style.width = DPbgdiv.style.width;
  }
}

function	DPgetResult(xmldoc)
{
  //return;
  if (!DPreq) {
    return;
  }
  if (DPreq.readyState != 4) {
    return;
  }
  if (!DPreq.responseText) {
    var code =  DPreq.status;
    var msg = "<a href=\"javascript:DPclose();\">Un probleme est survenu, la requete n'as pu etre terminee correctement. ["+code+"]</a>";
  } else {
    var regex = new RegExp ('&amp;', 'gi');
    var msg = DPreq.responseText.replace(regex, '&');
  }
  DPreq = null;
  DPshow(DPtitle, DPwidth, msg);
}
function	DPclose()
{
  if (DPbgdiv && DPbgdiv.style)
    DPbgdiv.style.display = 'none';
  if (DPboxdiv && DPboxdiv.style)
    DPboxdiv.style.display = 'none';
  if (DPbgiframe)
    DPbgiframe.style.display = 'none';
  if (DPreq && DPreq.readyState < 4)
    DPreq.abort();
  showFlash();
}
//window.onload = function() { DPinit(); }

// ---------------------------------------------------

function showFlash(){
	var flashObjects = document.getElementsByTagName("object");
	for (i = 0; i < flashObjects.length; i++) {
		flashObjects[i].style.visibility = "visible";
	}

	var flashEmbeds = document.getElementsByTagName("embed");
	for (i = 0; i < flashEmbeds.length; i++) {
		flashEmbeds[i].style.visibility = "visible";
	}
}

// ---------------------------------------------------

function hideFlash(){
	var flashObjects = document.getElementsByTagName("object");
	for (i = 0; i < flashObjects.length; i++) {
		flashObjects[i].style.visibility = "hidden";
	}

	var flashEmbeds = document.getElementsByTagName("embed");
	for (i = 0; i < flashEmbeds.length; i++) {
		flashEmbeds[i].style.visibility = "hidden";
	}

}

// prends tous les elements d'un formulaire et balance ca via sack
// f= l'id de la form
function DPform(f, url, t, w, xjs) {
  // serialize provient de prototype.js de scriptaculous ou autre framework (c tous le meme en principe)
  //alert('FORM='+Form.serialize(f)); return; 
  DPopen(url, t, w, null, null, Form.serialize(f), xjs);
}
