/* 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 != ""){
            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:'')+')');
}

//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 sélectionner 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;
	}	
/*
	Permet d'ajouter une option dans une liste existante
	
		valueID : value de la balise option
		valueLib : Libelle de la balise option
		objetInsert : référence de la liste à incrémenter
*/
function AddOption(valueID,valueLib)
{

	var o=new Option(valueLib,valueID);
	objetInsert.options[objetInsert.options.length]=o;
	objetInsert.options[objetInsert.options.length-1].selected = true;
		
}
/*
	Permet d'ouvrir une fenêtre
	
		file : fichier à ouvrir dans la fenetre
		names : nom de la fenetre
		heights : hauteur de la fenetre
		widths : largeur de la fenetre
		objet : référence de la liste à incrémenter
*/


/*
	Permet de trier une liste
*/
function ChangeTri(file,value,value1)
{
	window.location.replace(file+"?get_tri="+value+"&"+value1);
}
/*
	Permet de changer un theme
*/
function ChangeTheme(file,value,value1)
{
	window.location.replace(file+"?get_theme="+value+"&"+value1);
}
/*
	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 sélectionnée");
	}
	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 sélectionnée");
	}
	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;
}
/*Gestion de l'affichage des calques*/

function swap_couche(couche,historique){
	triangle = MM_findObj('triangle' + couche);
	triangleHisto = MM_findObj('triangle' + histo);
	if (!(layer = MM_findObj('Layer' + couche))) return;
	if (historique != false && histo != couche && (layerHisto = MM_findObj('Layer' + histo)))
	{
	if (triangleHisto) triangleHisto.src = '../Images/deplierhaut_blanc.gif';
		layerHisto.style.display = 'none';
		vis[histo] = 'hide';
	}
	//alert(vis[couche]);
	if (vis[couche] == 'hide'){
		if (triangle) triangle.src = '../Images/deplierbas_blanc.gif';
		layer.style.display = 'block';
		vis[couche] = 'show';
	} else {
		if (triangle) triangle.src = '../Images/deplierhaut_blanc.gif';
		layer.style.display = 'none';
		vis[couche] = 'hide';
	}
	histo = couche;
}

function cmdImageForm(who)
{
	if (popupWindow != null) popupWindow.close();
	var leftPos = (screen.availWidth-500) / 2
	var topPos = (screen.availHeight-400) / 2 
	popupWindow = window.open('../Pages-Form/includes/actions/gest-photos.php?form=1&who='+who,'','width=480,height=350,scrollbars=yes,resizable=no,titlebar=0,top=' + topPos + ',left=' + leftPos);
}

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;
    }
}
