/* 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 = "";
        var reg=new RegExp("(&)", "g");
        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.replace(reg,"%26amp%3B").replace("#","") + "&";
            }
                
        }
        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.replace(reg,"%26amp%3B") + "&";
                }
            //}
        }
        return serialise;
    },
    convertField  : function (field){
        var reg=new RegExp("(&quot;)", "g");
        field.replace(reg,"%26quot%3B"); 
        field.replace("?","%3F"); 
        var reg=new RegExp("(&)", "g");
        return field.replace(reg,"%26amp%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 getElementsBySelector(selector){
var i;
var s=[];
var selid="";
var selclass="";
var tag=selector;
var objlist=[];
if(selector.indexOf(" ")>0){  //descendant selector like "tag#id tag"
    s=selector.split(" ");
    var fs=s[0].split("#");
    if(fs.length==1) return(objlist);
    return(document.getElementById(fs[1]).getElementsByTagName(s[1]));
    }
if(selector.indexOf("#")>0){ //id selector like "tag#id"
    s=selector.split("#");
    tag=s[0];
    selid=s[1];
    }
if(selid!=""){
    objlist.push(document.getElementById(selid));
    return(objlist);
    }
if(selector.indexOf(".")>0){  //class selector like "tag.class"
    s=selector.split(".");
    tag=s[0];
    selclass=s[1];
    }
var v=document.getElementsByTagName(tag);  // tag selector like "tag"
if(selclass=="")
    return(v);
for(i=0;i<v.length;i++){
    if(v[i].className==selclass){
        objlist.push(v[i]);
        }
    }
return(objlist);
}
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:'')+')');
}

