/* AUTEUR: Dje */
/* DATE DE CREATION: 13/11/2000 */
/* DATE DE MODIFICATION: 20/11/2007 */

//Declaration Interface CONSOLE
var Console = {}

Console.Form = {
    serialize : function (form) {
        var listInput = form.getElementsByTagName('input');
        var serialise = "";
        for(i=0;i<listInput.length;i++){
            if(listInput.item(i).type == "checkbox"){
                if(listInput.item(i).checked == true){serialise += listInput.item(i).name + "=" + listInput.item(i).value + "&";}else{serialise += listInput.item(i).name + "=0&";}
            }else if (listInput.item(i).type == "radio"){
                if(listInput.item(i).checked == true){serialise += listInput.item(i).name + "=" + listInput.item(i).value + "&";}
            }else{
                serialise += listInput.item(i).name + "=" + listInput.item(i).value + "&";
            }
                
        }
        var listSelect = form.getElementsByTagName('select');
        for(i=0;i<listSelect.length;i++){
            value = "";
            for (j=0; j < listSelect.item(i).length; j++) {
                if (listSelect.item(i).options[j].selected) {
                 value += listSelect.item(i).options[j].value+"#";    
                }
            }
            serialise += listSelect.item(i).name + "=" + value.substr(0,(value.length-1)) + "&";
        }
        var listTextArea = form.getElementsByTagName('textarea');
        for(i=0;i<listTextArea.length;i++){
            if(listTextArea.item(i).value != ""){
                if(listTextArea.item(i).dojoType != "dijit.Editor"){
                    serialise += listTextArea.item(i).name + "=" + listTextArea.item(i).value + "&";
                }
            }
        }
        return serialise;
    },
    convertField  : function (field){
        var reg=new RegExp("(&quot;)", "g");
        return field.replace(reg,"%26quot%3B"); 
    }
}
Console.Ajax = {
    //
    getTransport: function() {
        try {return new ActiveXObject('Msxml2.XMLHTTP')} catch(e) {} // MSIE5
        try {return new ActiveXObject('Microsoft.XMLHTTP')} catch(e) {} // MSIE6
        try {return new XMLHttpRequest()} catch(e) {} // les autres
        return undefined // les navigateurs ne supportant pas XMLHttpRequest
    },
    Request : function (method,url,synchrone,options){
        //Recuperation des options
        var onComplete = options.onComplete;
        var onSuccess = options.onSuccess;
        var onFailure = options.onFailure;
        var postBody = options.postBody;
        var headers = options.headers;
        
        //Creation Objet
        var HTTPRequest = this.getTransport();  
        
        if(synchrone == true){
            HTTPRequest.onreadystatechange = function () {
                switch(HTTPRequest.readyState){
                    case 0 :
                      console.log(HTTPRequest.readyState+"|Nothing");
                    break;
                    case 1 :
                      console.log(HTTPRequest.readyState+"|AJAX Connect");
                    break;
                    case 2 :
                      console.log(HTTPRequest.readyState+"|Requete envoyée attente de réponse");
                    break;
                    case 3 :
                      console.log(HTTPRequest.readyState+"|Reception en cours");
                    break;
                    case 4 :
                      if(onComplete){onComplete();}
                      if((HTTPRequest.status == 200 || HTTPRequest.status == 302) && onSuccess){
                           onSuccess(HTTPRequest.responseText);
                      }else{
                         if(onFailure){onFailure();}
                      }
                    break;
                }
             }
        }
        
        //Onverture de connexion sur webservice
        HTTPRequest.open(method, url, synchrone); 
        if(method == "POST" && headers){HTTPRequest.setRequestHeader("Content-type", headers);}
              
        HTTPRequest.send(method == "POST"?postBody:'');
        
        if(synchrone == false){
            if(HTTPRequest.readyState == 4){
               if(onSuccess){onSuccess(HTTPRequest.responseText);}
            }else{
               if(onFailure){onFailure();}
            }         
        }
    } 
}



//Fonctin Générique
function getElementsByClass(searchClass, node, tag) { 
    var classElements = new Array(); 
    if ( node == null ) 
        node = document; 
    if ( tag == null ) 
        tag = '*'; 
    var els = node.getElementsByTagName(tag); 
    var elsLen = els.length; 
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); 
    for (i = 0, j = 0; i < elsLen; i++) { 
        if ( pattern.test(els[i].className) ) { 
            classElements[j] = els[i]; 
            j++; 
        } 
    } 
    return classElements;
} 

function MM_swapImgRestore() {
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() {
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_controlShockwave(objStr,x,cmdName,frameNum) {
 		var obj=MM_findObj(objStr);
  		if (obj) eval('obj.'+cmdName+'('+((cmdName=='GotoFrame')?frameNum:'')+')');
}


function SendMessage(ind)
{
   if (!(layer = MM_findObj('palettesend'))) return;
   layer.style.display = 'block';
   //document.location.href = '#paletteenvoi';
}
/*
    fonction pour ordonné vers le haut
    l : objet représentant la liste
*/
function tjs_haut(l) {
    var indice=l.selectedIndex
    if (indice<0) {
        alert("Aucune ligne n'est selectionnee");
    }
    if (indice>0) {    // Il reste une ligne au-dessus
        tjs_swap(l,indice,indice-1);
    }
}
/*
    fonction pour ordonné vers le bas
    l : objet représentant la liste
*/
function tjs_bas(l) {
    var indice=l.selectedIndex
    if (indice<0) {
        alert("Aucune ligne n'est selectionnee");
    }
    if (indice<l.options.length-1) {    // Il reste une ligne en-dessous
        tjs_swap(l,indice,indice+1);
    }
}

function tjs_swap(l,i,j) {
    var valeur=l.options[i].value;
    var texte=l.options[i].text;
    l.options[i].value=l.options[j].value;
    l.options[i].text=l.options[j].text;
    l.options[j].value=valeur;
    l.options[j].text =texte;
    l.selectedIndex=j
    tjs_ordre(l.form);
}

function tjs_ordre(f) {
    var l=f.liste;
    var ordre="";
    for(var i=0;i<l.options.length;i++) {
        if (i>0) {ordre+="-";}
        ordre+=l.options[i].value;
    }
    f.ordre.value=ordre;
}


function heartBeat() {if(IE) { diffY = document.body.scrollTop; diffX = document.body.scrollLeft; }
            if(NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; }
        if(diffY != lastScrollY) {percent = .1 * (diffY - lastScrollY);
                if(percent > 0) percent = Math.ceil(percent);
                else percent = Math.floor(percent);
                                if(IE) document.all.floater.style.pixelTop += percent;
                                if(NS) document.floater.top += percent;
                lastScrollY = lastScrollY + percent;}
        if(diffX != lastScrollX) {
                percent = .1 * (diffX - lastScrollX);
                if(percent > 0) percent = Math.ceil(percent);
                else percent = Math.floor(percent);
                if(IE) document.all.floater.style.pixelLeft += percent;
                if(NS) document.floater.left += percent;
                lastScrollX = lastScrollX + percent;
        }
}

function ShowTransientMessage() {
	window.status="Veuillez patienter pendant le transfert des donnees...";
//	DisplayMessageBox.innerText=sMessage;
	DisplayMessageBox.style.display='';
	DisplayMessageBox.style.pixelTop=(document.body.clientHeight/2)-(DisplayMessageBox.offsetHeight/2)+(document.body.scrollTop);
	DisplayMessageBox.style.pixelLeft=(document.body.clientWidth/2)-(DisplayMessageBox.offsetWidth/2)+(document.body.scrollLeft);
}

function HideTransientMessage() {
	window.status="";
	DisplayMessageBox.style.display='none';
}

function Balise_Double(_object,_balise)
{
    if (_object.selectionStart>-1)
    {
        if (_object.selectionEnd>_object.selectionStart)
        {
            var sDebut = _object.value.substr(0,_object.selectionStart);
            var sSel = _object.value.substr(_object.selectionStart,_object.selectionEnd-_object.selectionStart);
            var sFin = _object.value.substr(_object.selectionEnd,_object.value.length);
            _object.value = sDebut + "<" + _balise + ">" + sSel + "</" + _balise + ">" + sFin;
        return;
        }
    }
    else
    {
        var chaine = document.selection.createRange().text;
        _object.focus();
        var sel = document.selection.createRange();
        sel.text = "<" + _balise + ">" + chaine + "</" + _balise + ">";
        return;
    }
}

function Balise_Simple(_object,_balise)
{
    if (_object.selectionStart>-1)
    {
        if (_object.selectionEnd>_object.selectionStart)
        {
            var sDebut = _object.value.substr(0,_object.selectionStart);
            var sSel = _object.value.substr(_object.selectionStart,_object.selectionEnd-_object.selectionStart);
            var sFin = _object.value.substr(_object.selectionEnd,_object.value.length);
            _object.value = sDebut + sSel + "<" + _balise + ">" + sFin;
        return;
        }
    }
    else
    {
        var chaine = document.selection.createRange().text;
        _object.focus();
        var sel = document.selection.createRange();
        sel.text = chaine + "<" + _balise + ">";
        return;
    }
}
//Permet de basculer une option d'une liste dans une autre liste
/*
    objet1 : liste source
    objet2 : liste destination
    objet3 : champs caché de sélection

*/
function AddOptions(objet1,objet2,objet3)
    {
    var i=0;
    if (objet1.selectedIndex==-1)
        {
        alert("Veuillez selectionner une information dans la liste !");
        return false;
        }
    else
        {
        for(i=0;i < objet2.options.length; i++)
        {
            if(objet1.value.substr(0, objet1.value.indexOf("#")) == objet2.options[i].value) 
            {return false;}
        }
        objet3.value  = objet3.value + objet1.value.substr(0, objet1.value.indexOf("#"));
        objet3.value  = objet3.value + "#";
        var o=new Option(objet1.value.substr(objet1.value.indexOf("#")+1, (objet1.value.length-objet1.value.indexOf("#"))),objet1.value.substr(0, objet1.value.indexOf("#")));
        objet2.options[objet2.options.length]=o;
        
        }
        
        return false;
    }    
//Permet de basculer l'intégralité des options d'une liste dans une autre liste
/*
    objet1 : liste source
    objet2 : liste destination
    objet3 : champs caché de sélection

*/
function AddAllOptions(objet1,objet2,objet3)
    {
    var i=0;
    var j=0;
    var flag=false;
    for(j=0;j < objet1.options.length; j++)
    {
        if(objet2.options.length==0)
        {
            objet3.value  = objet3.value + objet1.options[j].value.substr(0, objet1.options[j].value.indexOf("#"));
            objet3.value  = objet3.value + "#";
            var o=new Option(objet1.options[j].value.substr(objet1.options[j].value.indexOf("#")+1, (objet1.options[j].value.length-objet1.options[j].value.indexOf("#"))),objet1.options[j].value.substr(0, objet1.options[j].value.indexOf("#")));
            objet2.options[objet2.options.length]=o;
        }
        else
        {
            for(i=0;i < objet2.options.length; i++)
            {
                if(objet1.options[j].value.substr(0, objet1.options[j].value.indexOf("#")) == objet2.options[i].value) 
                {
                    flag=true;
                }
            }
            if(flag==false)
            {
                objet3.value  = objet3.value + objet1.options[j].value.substr(0, objet1.options[j].value.indexOf("#"));
                objet3.value  = objet3.value + "#";
                var o=new Option(objet1.options[j].value.substr(objet1.options[j].value.indexOf("#")+1, (objet1.options[j].value.length-objet1.options[j].value.indexOf("#"))),objet1.options[j].value.substr(0, objet1.options[j].value.indexOf("#")));
                objet2.options[objet2.options.length]=o;
            }
            flag=false;
        }
        
    }
    
        return false;
    }
//Permet de retirer l'intégralité des options d'une liste destination dans une liste source
/*
    objet1 : liste source
    objet2 : liste destination
    objet3 : champs caché de sélection

*/
function RemOptions(objet1,objet2,objet3)
    {
    
    if (objet2.selectedIndex>-1) {
        //alert('' + document.Formulaire.AllOptions.value + '-');
        //alert(objet2.value.substr(0, objet2.value.indexOf("#")+1));
        objet3.value = objet3.value.replace( '' + objet2.value + '#', '');
        objet2.options[objet2.options.selectedIndex]=null;
        //alert(objet3.value);
    } 
    else {
        alert("Veuillez sélectionner une information dans la liste !");
    }
    
        return false;
    }    
//Permet de retirer une option d'une liste destination dans une liste source
/*
    objet1 : liste source
    objet2 : liste destination
    objet3 : champs caché de sélection

*/
function RemAllOptions(objet1,objet2,objet3)
{

    objet2.length=0;
    objet3.value = "";

    //var o=new Option('-','------------------------------------------------------------------');
    //objet2.options[objet2.options.length]=o;

    return false;
}