// JavaScript Document

//    Code créé par francktfr pour www.systeme-d.net
function SortArray(aText,aHtml,Index,Order){
    var Test = Order > 0 ? "aText["+Index+"][b] > aText["+Index+"][a]" : "aText["+Index+"][b] < aText["+Index+"][a]" // Choix de la comparaison
    for (a = 0; a < aText[Index].length; a++)                //    Liste de tous les éléments du tableau
    {    
     for (b = 0; b < aText[Index].length ;b++)        //    Re-liste tous les éléments pour les comparer à Numbers[a]
     {
             if (eval(Test)) {
                    for (i=0; i<aText.length; i++){            //    Mise a jour des tableaux
                        Copy = aText[i][b]; aText[i][b] = aText[i][a]; aText[i][a] = Copy
                        Copy = aHtml[i][b]; aHtml[i][b] = aHtml[i][a]; aHtml[i][a] = Copy
                    }    
                }
     }
    }
}
function IsDate(sDate){    //    retourne true si c'est une date valide
if (sDate.length < 8){return false}
    var iDay = sDate.substring(0,2)
    var iMonth = sDate.substring(3,5)
    var iYear = sDate.substring(6)
    iDay = iDay*1
    iMonth = (iMonth*1)-1
    iYear = iYear*1
    var rDate = new Date(iYear,iMonth,iDay,0,0)
    if(rDate.toString() == "NaN"){return false}
    return true
}
function cDate(sDate){    //    Convertie une date du format JJ/MM/AAAA en date JavaScript
    var iDay = sDate.substring(0,2)
    var iMonth = sDate.substring(3,5)
    var iYear = sDate.substring(6)
    iDay = iDay*1
    iMonth = (iMonth*1)-1
    iYear = iYear*1
    var rDate = new Date(iYear,iMonth,iDay,0,0)
    return(rDate)
}

  
if (eval("window.captureEvents")) {
window.captureEvents(Event.CLICK);
}
document.onclick = clicked;
function clicked(ObjE){
var flag = (window.Event)? true : false;
var nid = (flag)? ObjE.target : window.event.srcElement;
if(nid.title=="actionTri"){
TableOrder(nid, nid.id);
}
}

function TableOrder(oCell, Dir){    // Dir   1: Croissant, -1: Décroissant
var flag = (window.Event)? true : false;

//Firefox, Netscape
if(flag){

while (oCell.tagName != "TD"){oCell = oCell.parentNode}    //    determine la cellule sélectionnée
var oTable = oCell.parentNode
while (oTable.tagName != "TABLE"){oTable = oTable.parentNode}    //    determine l'objet table parent
var index = -1
for (c=0; c<oTable.rows[0].cells.length; c++){if (oTable.rows[0].cells[c]==oCell){index=c}}    //    determine l'index de la cellule
var RowNb = 0
var aHtmlTable = new Array()                    //    Tableau de contenu HTML
var aTextTable = new Array()                  //    Tableau de valeur
for (c=0; c<oTable.rows[0].cells.length; c++){    //    sur toutes les cellules
var ColonneHtml = new Array()
var ColonneText = new Array()
var RowNb = 0
for (r=0; r<oTable.rows.length; r++){        //    de toutes les rangées nommées "TableDatas"
if (oTable.rows[r].id == "TableDatas"){
ColonneHtml[RowNb] = oTable.rows[r].cells[c].innerHTML    //    met a jour le tableau de colonne correspondant
ColonneText[RowNb] = IsDate(oTable.rows[r].cells[c].innerHTML) ? cDate(oTable.rows[r].cells[c].innerHTML) : oTable.rows[r].cells[c].innerHTML
RowNb++
}
}
aHtmlTable[c] = ColonneHtml
aTextTable[c] = ColonneText
for (a=0; a<ColonneHtml.length; a++){aHtmlTable[c][a]=ColonneHtml[a]}
for (a=0; a<ColonneText.length; a++){aTextTable[c][a]=ColonneText[a]}
}
RowNb=0
SortArray(aTextTable,aHtmlTable,index,Dir)    //    Tri des données
for (x=0; x<oTable.rows[0].cells.length; x++){    //    Remplacement des données dans le tableau HTML
RowNb=0
for (y=0; y<oTable.rows.length; y++){
if (oTable.rows[y].id == "TableDatas"){
oTable.rows[y].cells[x].innerHTML= aHtmlTable[x][RowNb]
RowNb++
}
}
}

//IE
}else{

while (oCell.tagName != "TD"){oCell = oCell.parentElement}    //    determine la cellule sélectionnée
var oTable = oCell.parentElement
while (oTable.tagName != "TABLE"){oTable = oTable.parentElement}    //    determine l'objet table parent
var index = -1
for (c=0; c<oTable.rows[0].cells.length; c++){if (oTable.rows[0].cells[c]==oCell){index=c}}    //    determine l'index de la cellule
var RowNb = 0
var aHtmlTable = new Array()                    //    Tableau de contenu HTML
var aTextTable = new Array()                    //    Tableau de valeur
for (c=0; c<oTable.rows[0].cells.length; c++){    //    sur toutes les cellules
var ColonneHtml = new Array()
var ColonneText = new Array()
var RowNb = 0
for (r=0; r<oTable.rows.length; r++){        //    de toutes les rangées nommées "TableDatas"
if (oTable.rows[r].id == "TableDatas"){
ColonneHtml[RowNb] = oTable.rows[r].cells[c].innerHTML    //    met a jour le tableau de colonne correspondant
ColonneText[RowNb] = IsDate(oTable.rows[r].cells[c].innerText) ? cDate(oTable.rows[r].cells[c].innerText) : oTable.rows[r].cells[c].innerText
RowNb++
}
}
aHtmlTable[c] = ColonneHtml
aTextTable[c] = ColonneText
for (a=0; a<ColonneHtml.length; a++){aHtmlTable[c][a]=ColonneHtml[a]}
for (a=0; a<ColonneText.length; a++){aTextTable[c][a]=ColonneText[a]}
}
RowNb=0
SortArray(aTextTable,aHtmlTable,index,Dir)    //    Tri des données
for (x=0; x<oTable.rows[0].cells.length; x++){    //    Remplacement des données dans le tableau HTML
RowNb=0
for (y=0; y<oTable.rows.length; y++){
if (oTable.rows[y].id == "TableDatas"){
oTable.rows[y].cells[x].innerHTML= aHtmlTable[x][RowNb]
RowNb++
}
}
}}

}
