﻿var currentTab;
var onglet;
var currentClass;
var currentCPT;
var http;
    
if (window.XMLHttpRequest) {
	http = new XMLHttpRequest();   // Objet XmlHttpRequest pour les moteurs GECKO
} 
else 
    if (window.ActiveXObject) {
        http = new ActiveXObject("Microsoft.XMLHTTP");  // "MSXML2.XMLHTTP"
    } 
    else {
    	alert ("Votre navigateur ne supporte pas XMLHTTP...");
    }

//--- Gestion des Onglets
function ShowTab (onglet) {
    try {
        currentTab.className = "tabOFF";
    } catch (exception) {};
    currentTab = onglet;
    onglet.className = "tabON";
}

//******************************************************************
//******************** AFFICHAGE DE CONTROLES **********************
//******************************************************************
function Show (controle) {
    document.getElementById(controle).style.visibility = "visible";
    document.getElementById(controle).style.display = "block";
}

function ShowButton (controle) {
    document.getElementById(controle).style.visibility = "visible";
    document.getElementById(controle).style.display = "inline";
}

function Hide (controle) {
    document.getElementById(controle).style.visibility = "hidden";
    document.getElementById(controle).style.display = "none";
}
    

//--- Fonctions de gestion des lignes de tableau
function OnOut (prefixe, cpt) {
    if (document.getElementById(prefixe + cpt).className != "lineSelected")
        if ((cpt % 2) == 0)
            document.getElementById(prefixe + cpt).className = "L1";
        else
            document.getElementById(prefixe + cpt).className = "L2";
}

function OnOver (prefixe, cpt) {
    if (document.getElementById(prefixe + cpt).className != "lineSelected")
        if ((cpt % 2) == 0) {
            document.getElementById(prefixe + cpt).className = "L1 OVER";
            //currentClass = "L1";
        }
        else {
            document.getElementById(prefixe + cpt).className = "L2 OVER";
            //currentClass = "L2";
        }
}
    
//--- Fonctions de gestion des caractères saisis

function UpperCase(composant) {
    var ch = upperCase.arguments[0].value.toUpperCase();        
    document.getElementById(upperCase.arguments[0].name).value = ch;
}

function AllowNumeric (evenement) {

    var IE5 = window.event;

    if (IE5) {
        if (evenement.keyCode < 48 || evenement.keyCode > 57)
           window.event.returnValue = 0;
    }
    else {
        // touches de fonction
        if (evenement.which != 0 && evenement.which != 8 && evenement.which != 13) {
            if (evenement.which < 48 || evenement.which > 57)
               evenement.preventDefault(); 
        }
    }
}

function AllowNumericWithComma (evenement) {

    var IE5 = window.event;

    if (IE5) {
        if (evenement.keyCode < 48 || evenement.keyCode > 57) {
            if (evenement.keyCode == 46)  // point transformé en virgule
                evenement.keyCode = 44;
            else {
                if (evenement.keyCode != 44)     // virgule
                    evenement.returnValue = 0;
            }
        }
    }
    else {
        // touches de fonction
        if (evenement.which != 0 && evenement.which != 8 && evenement.which != 13) {
               // alert(evenement.charCode);
            if (evenement.which < 48 || evenement.which > 57) {
                if (evenement.which != 44) { // virgule : on désactive
                    evenement.preventDefault(); 
                }
                //if (evenement.charCode == 46) { // point en virgule
                    //evenement.which = 44;
               //     evenement.charCode = 44;   //return 44;
                //    evenement.keyCode = 44;   //return 44;
                    //evenement.returnValue = 44;
                    //evenement.preventDefault(44);
                //}
            }
        }
    }
}

function AllowNumericWithCommaAndMinus (evenement) {
    
    var IE5 = window.event;

    if (IE5) {
        if (evenement.keyCode < 48 || evenement.keyCode > 57) {
            if (evenement.keyCode == 46) { // point transformé en virgule
                evenement.keyCode = 44;
            }
            else {
                if (evenement.keyCode != 44 && evenement.keyCode != 45) { // virgule et signe moins : on désactive
                    evenement.returnValue = 0;
                }
            }
        }
    }
    else {
        // touches de fonction
        if (evenement.which != 0 && evenement.which != 8 && evenement.which != 13) {
            if (evenement.which < 48 || evenement.which > 57) {
                if (evenement.which != 44 && evenement.which != 45) { // virgule et signe moins : on désactive
                    evenement.preventDefault(); 
                }
            }
        }
    }
}

function AllowTextWithoutSpaces (evenement) {

    var IE5 = window.event;

    if (IE5) {
        if (evenement.keyCode == 32)
            evenement.returnValue = 0;
    }
    else {
        // touches de fonction
        if (evenement.which != 0 && evenement.which != 8 && evenement.which != 13) {
            if (evenement.which == 32)
               evenement.preventDefault(); 
        }
    }
}

function AllowDate (evenement) {

    var IE5 = window.event;

    if (IE5) {
        if (evenement.keyCode < 48 || evenement.keyCode > 57) {
            if (evenement.keyCode != 47) { // virgule et signe moins
                evenement.returnValue = 0;
            }
        }
    }
    else {
        // touches de fonction
        if (evenement.which != 0 && evenement.which != 8 && evenement.which != 13) {
            if (evenement.which < 48 || evenement.which > 57) {
                if (evenement.which != 47) { // virgule et signe moins
                    evenement.preventDefault(); 
                }
            }
        }
    }
}

// FORMATAGE DE NOMBRES
function FormatCurrency (nombre) {
    
    if (nombre == "")
        return ("0,00 €");
         
    var res = Math.round(nombre * 100);
    var ch = new String(res);
//    var point = ch.indexOf (".");
    var fmt = "";
    
//    if (point > 0) { // on a trouvé un point dans la chaîne : pas d'arrondi par JS
//        ch.concat ("0");
//        fmt = ch.substr(0, point - 1) + "," + ch.substr(point + 1, 2) + " €";
//    }
//    else
        
    if (ch.length < 3) {
        var unit = new String ("0" + ch);
        fmt = "0," + unit.substr(unit.length - 2, 2) + " €";
    }
   else {
        fmt = ch.substr(0, ch.length - 2) + "," + ch.substr(ch.length - 2, 2) + " €";
    }

    return fmt;
}

// CONVERSIONS
function ToFloat(chaine) {

    var virgule = /\,/g;  // il faut remplacer les virgules par des points pour transformer en float
    var s = chaine.replace(virgule, ".");
    var n = 0;
    if (s != "" && !isNaN(s)) n = parseFloat(s);
    
    return n;
}

//--- Fonctions de mise à jour des variables de session
/*function recupere() {
    if (http.readyState == 4) {        
        alert(http.responseText);
    }
}*/

function SendXml(chaine) {

    var tab = new Array;
    tab = chaine.split("|");
    var chXml = "<variables>";
    var i;
    for (i = 0; i < tab.length - 1; i += 2) {
        chXml += "<var name='" + tab[i] + "'>" + tab[i + 1] + "</var>";        
    }
    chXml += "</variables>";
    http.open("POST", "majVarSession.aspx", false);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    http.send("xml=" + chXml);
}

function GetXml(chaine) {

    var chXml = "<variables><var name='" + chaine + "'></var></variables>";
    http.open("POST", "majVarSession.aspx", false);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    http.send("xml=" + chXml);
}


//--- Fonctions de contrôle de saisie
function IsNumeric(chiffre)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < chiffre.length && IsNumber == true; i++) { 
      Char = chiffre.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
      }
   }
   return IsNumber;
}

//--- TRI
function tri (colonne) {
    
    //with (frm) {
        
        // changement de colonne
        if (document.getElementById("hidTri").value != colonne) {
            document.getElementById("hidOrdre").value = 0;    // ràz ordre de tri
            document.getElementById("hidTri").value = colonne;
        }
        // bascule croissant / décroissant
        else {
            if (document.getElementById("hidOrdre").value == 0) {
                document.getElementById("hidOrdre").value = 1;
            }
            else
                document.getElementById("hidOrdre").value = 0;
        }
        SendXml ("tri|1");
        document.getElementById("frm").submit();
 //   }
}
    

