/***** JS MOVING OBJECT *****/

    /* VARS */
        // State object information
        var isdrag=false;
        var isgrid=false;
        var isSpace = false;
        var isRenamed=false;
        var isTitleBar = false;
        var x,y;
        
        // Objects
        var dragObj = '', dragObjCopy = '', dragObjTemp = '';
        var selectedObj = '';
        var renamedObj = '';
        var insertedObj = '';
        var objNum = 0;
        
        // Cols information
        var currentCol = '', dragCol = '';
        var currentNumCol = 1;
        var currentPosition = 1;
        
        // Album tagging
        var x_begin, y_begin;
        var x_end, y_end;
        var pictureObj, formObj;
    
    /* INITIALISATION */
        // OnMouseDown event
        document.onmousedown=selectObj;
        
        // Refresh timer
        function initRefresh()
        {
            var refreshTimer = setTimeout("refreshSpace()", 3000);
        }
        
        function initUserRefresh()
        {
            var refreshTimer = setTimeout("refreshUser()", 3000);
        }
    
    /* FONCTIONS */
    function addElement(content, parentDiv) {
        var parent = document.getElementById(parentDiv);
        objNum++;
        var newDiv = document.createElement("div");
        var divIdName = "obj"+objNum;
        newDiv.id = divIdName;
        newDiv.innerHTML = content;
        parent.appendChild(newDiv);
        return newDiv;
    }
    
    function createElement(content) {
        objNum++;
        var newDiv = document.createElement("div");
        var divIdName = "obj"+objNum;
        newDiv.id = divIdName;
        newDiv.innerHTML = content;
        return newDiv;
    }
    
    function removeElement(deletedDiv) {
        var parent = nn6 ? deletedDiv.parentNode : deletedDiv.parentElement;
        if (parent != null) parent.removeChild(deletedDiv);
    }  
    
    // Default call on OnMouseDown event
    // Select right action on object (rename, move) and redirect to according fonctions
    function selectObj(e) 
    {
        // Ne pas traiter les évènement reçus sur la barre de défilement verticale
        x = nn6 ? e.clientX : event.clientX; // Position sur l'écran
        if(x < screen.width-20) // Largeur de l'écran moins lorgeur de la barre de défilement
        {
            // Objet ayant reçu l'évènement
            var currentObj = nn6 ? e.target : event.srcElement;
            
            /* Gestion des champs de texte */
                // Protection des champs de texte
                if ((currentObj.tagName == "INPUT") || (currentObj.tagName == "TEXTAREA"))
                {
                    return true;
                }
                else if (isNoteEdit)
                {
                    document.getElementById('cadre'+editObjId+'_content_input').blur();
                }
                
                // Protection des objets en cours du renommage
                if (((currentObj.id == renamedObj.id+"_title") || (currentObj.id == renamedObj.id+"_input")) && (isRenamed))
                {
                    return false;
                }
            
                // Validation du renommage d'un objet
                if ((currentObj.id != renamedObj.id+"_input") && (isRenamed))
                {
                    renameObjValid();
                }
            
            /* Vérification de la zone cliquée et repérage de l'objet */
                // Si le clic est sur la barre de titre (cas d'un élément Grid)
                isTitleBar = false;
                if (currentObj.tagName == "IMG")
                {
                    currentObj = nn6 ? currentObj.parentNode : currentObj.parentElement;
                }
                if ((currentObj.tagName == "H1" || currentObj.tagName == "DIV") && currentObj.className.substring(0,12) == "obj_titlebar")
                {
                    isTitleBar = true;
                }
                
                // Identification de l'objet déplaçable
                while (currentObj.tagName != "HTML" && currentObj.id != "content" && currentObj.className.substring(0,8) != "obj_drag")
                {
                    currentObj = nn6 ? currentObj.parentNode : currentObj.parentElement;
                }
            
            /* Redirection vers tagging ablum photo */
                if ((currentObj.className.substring(0,13) == "obj_dragalbum") && (!isTitleBar))
                {
                    if (pictureObj != null)
                    {
                        removeElement(formObj);
                        removeElement(insertedObj);
                    }
                    selectObjAlbum(currentObj,e);
                    return false;
                }
                
            /* Redirection vers scrollbar */
                if ((currentObj.className.substring(0,11) == "obj_dragbar") && (!isTitleBar))
                {
                    selectObjBar(currentObj,e);
                    return false;
                }
            
            /* Limitation à la barre de titre */
                if ((currentObj.className.substring(0,8) == "obj_drag") && (!isTitleBar))
                {
                    return false;
                }
            
            /* Sélection de l'objet ayant reçu l'évènement */
                if (currentObj.className.substring(0,13) == "obj_dragfloat")
                {
                    isLock = selectElem(currentObj);
                }
                else
                {
                    isLock = selectObjView(currentObj);
                }
            
            /* Traitement des différents types d'objets */
            if ((currentObj.id != "content") && (currentObj.id != renamedObj) && !isLock)
            {
            
                // Opération de déplacement en cours
                isdrag = true;
                
                // Objet en cours de déplacement
                dragObj = currentObj;
                dragObj.style.opacity = '0.6';
                dragObj.style.filter = 'alpha(opacity=60)';
                
                // Création de l'image de visualisation du déplacement
                if (currentObj.className.substring(0,13)=="obj_dragfloat")
                {
                    dragObjCopy = addElement(dragObj.innerHTML,"wall");
                }
                else
                {
                    dragObjCopy = addElement(dragObj.innerHTML,"content");
                }
                dragObjCopy.style.position = "absolute";
                
                // Placement de l'objet en absolu
                dragObjCopy.style.top = total_offsetTop(dragObj)+"px";
                dragObjCopy.style.left = total_offsetLeft(dragObj)+"px";
                
                //dragObjCopy.style.height = dragObj.offsetHeight+"px";
                if (currentObj.className.substring(0,12)=="obj_draggrid")
                {
                    dragObjCopy.style.width = (dragObj.offsetWidth-8)+"px";
                }
                else if (currentObj.className.substring(0,13)=="obj_dragfloat")
                {
                    dragObjCopy.style.width = (dragObj.offsetWidth)+"px";
                }
                dragObjCopy.style.Zindex = '3';
                dragObjCopy.style.opacity = '0.5';
                dragObjCopy.style.filter = 'alpha(opacity=50)';
                dragObjCopy.className = dragObj.className;
                
                // Enregistrement des positions
                tx = parseInt(dragObjCopy.style.left.replace("px",""));
                ty = parseInt(dragObjCopy.style.top.replace("px",""));
                x = nn6 ? e.clientX : event.clientX;
                y = nn6 ? e.clientY : event.clientY;
                
                // Définition des actions associées aux évènements
                if (currentObj.className.substring(0,18)=="obj_dragfloat_elem")
                {
                    document.onmouseup = createObj;
                    isgrid = false;
                }
                else if (currentObj.className.substring(0,16)=="obj_draggrid_box")
                {
                    currentCol = document.getElementById('col_1');
                    dropCol = currentCol;
                    document.onmouseup = createObj;
                    isgrid = true;
                }
                else if (currentObj.className.substring(0,13)=="obj_dragfloat")
                {
                    document.onmouseup = leaveObj;
                    isgrid = false;
                }
                /*else if (currentObj.className.substring(0,16)=="obj_draggrid_top")
                {
                    document.onmouseup = leaveObj;
                    isgrid = false;
                }*/
                else if (currentObj.className.substring(0,18)=="obj_draggrid_album")
                {
                    document.onmouseup = dropObj;
                    isgrid = true;
                }
                else if (currentObj.className.substring(0,12)=="obj_draggrid")
                {
                    currentCol = nn6 ? dragObj.parentNode : dragObj.parentElement;
                    dropCol = currentCol;
                    document.onmouseup = dropObj;
                    isgrid = true;
                }
                document.onmousemove = moveObj;
                
                return false;
            }
        }
    }
    
    /* Sélection visuelle d'un objet */
        function selectObjView(currentObj)
        {    
            if (selectedObj == '') selectedObj = document.getElementById("content");
            
            if (selectedObj != currentObj)
            {
                // Déselection de l'objet précédent ERREUR !!!
                if (selectedObj.id != "content")
                {
                    selectedObj.className = selectedObj.className.replace("_selected","");
                }
                
                // A TESTER
                if (selectedObj.id.substring(0,5)=="cadre")
                {
                    id_cadre_select = selectedObj.id.replace("cadre","");
                    ajaxReqText(rel+'elem/elem_unlock.php?id_cadre='+id_cadre_select+'&left='+selectedObj.style.left.replace("px","")+'&top='+selectedObj.style.top.replace("px",""))
                }
                // ET A EFFACER !!!
                
                selectedObj = currentObj;
                
                // Mise en surbrillance de l'objet sélectionné
                if (selectedObj.id != "content")
                {
                    selectedObj.className = selectedObj.className + "_selected";
                }
            }
            return false;
        }
    
    /* Wall */
        // Sélection et verrouillage d'un élément
        function selectElem(currentObj)
        {    
            if (selectedObj == '') selectedObj = document.getElementById("content");
            
            if (selectedObj != currentObj)
            {
                isLock = "1";
                if (currentObj.id.substring(0,5)=="cadre")
                {
                    id_cadre = currentObj.id.replace("cadre","");
                    isLock = ajaxReqText(rel+'elem/elem_lock.php?id_cadre='+id_cadre+'&left='+currentObj.style.left.replace("px","")+'&top='+currentObj.style.top.replace("px",""));
                }
                
                if((isLock == "0") || (currentObj.id.substring(0,5)!="cadre"))
                {
                    // Déselection de l'objet précédent ERREUR !!!
                    if (selectedObj.id != "content")
                    {
                        selectedObj.className = selectedObj.className.replace("_selected","");
                    }
                    
                    if (selectedObj.id.substring(0,5)=="cadre")
                    {
                        id_cadre_select = selectedObj.id.replace("cadre","");
                        ajaxReqText(rel+'elem/elem_unlock.php?id_cadre='+id_cadre_select+'&left='+selectedObj.style.left.replace("px","")+'&top='+selectedObj.style.top.replace("px",""))
                    }
                    
                    selectedObj = currentObj;
                    
                    // Mise en surbrillance de l'objet sélectionné
                    if (selectedObj.id != "content")
                    {
                        selectedObj.className = selectedObj.className.replace("_locked","");
                        selectedObj.className = selectedObj.className + "_selected";
                    }
                    return false;
                }
                else if (currentObj.className.substring(currentObj.className.length-7,currentObj.className.length) != "_locked")
                {
                    currentObj.className = currentObj.className + "_locked";
                    return true;
                }
            }
            return false;
        }
    
        // Déplacement automatique d'un élément
        function moveElem(id_cadre,Xu,Yu,dXpas,dYpas)
        {
            cadre = document.getElementById('cadre'+id_cadre);
            
            Xv = parseInt(cadre.style.left.replace("px",""));
            Yv = parseInt(cadre.style.top.replace("px",""));
            
            Xi = Math.ceil(dXpas + Xv);
            Yi = Math.ceil(dYpas + Yv);
            
            if (((dXpas > 0) && (Xi < Xu)) || ((dXpas < 0) && (Xi > Xu))) Xv = Xi;
            else Xv = Xu;
            
            if (Xv==Xu) Yv = Yu;
            else if (((dYpas > 0) && (Yi < Yu)) || ((dYpas < 0) && (Yi > Yu))) Yv = Yi;
            else 
            {
                Xv = Xu;
                Yv = Yu;
            }
            
            cadre.style.left = Xv+"px";
            cadre.style.top = Yv+"px";
            
            if ((Xu == Xv) && (Yu == Yv))
            {
                cadre.style.opacity = '1';
                cadre.style.filter = 'alpha(opacity=100)';
            }
            else moveTimer = setTimeout("moveElem("+id_cadre+","+Xu+","+Yu+","+dXpas+","+dYpas+")", 30);
        }
    
        // Rafraîchissement périodique de l'affichage
        function refreshSpace()
        {
            eval(ajaxReqText(rel+'elem/elem_refresh.php'));
            
            refreshTimer = setTimeout("refreshSpace()", 3000);
        }
        
        // Rafraîchissement périodique de l'état de connection
        function refreshUser()
        {
            eval(ajaxReqText(rel+'elem/user_refresh.php'));
            
            refreshTimer = setTimeout("refreshUser()", 3000);
        }
    
        // Rechargement d'un cadre
        function reloadCadre(id_cadre, left, top, change)
        {
            if (document.getElementById('cadre'+id_cadre))
            {
                cadre = document.getElementById('cadre'+id_cadre);
                
                if (cadre.className.substring(cadre.className.length-7,cadre.className.length) == "_locked")
                {
                    cadre.className = cadre.className.replace("_locked","");
                }
                
                //document.getElementById('title').innerHTML = change;
                if (change)
                {
                    document.getElementById('cadre'+id_cadre+'_content').innerHTML = ajaxReqText(rel+'elem/'+change+'_change.php?id_cadre='+id_cadre);
                    switch(change) {
                        case "chat":
                            /*var content = document.getElementById('cadre'+id_cadre+'_content');
                            if (content.offsetHeight > 200) content.style.marginTop = (200-content.offsetHeight)+"px";*/
                            verScroll('bottom',true,'cadre'+id_cadre+'_content','cadre'+id_cadre+'_chat');
                            break;
                    }
                }
                
                // Coordonnées actuelles (v = visible)
                Xv = parseInt(cadre.style.left.replace("px",""));
                Yv = parseInt(cadre.style.top.replace("px",""));
                
                // Nouvelles coordonnées (u = update)
                //data_u = ajaxReqText(rel+'elem/elem_reload.php?id_cadre='+id_cadre+'&rel='+rel);
                if (left != "X" && top != "Y")//(data_u != "X;X")
                {                
                    //coord_u = data_u.split(";");
                    Xu = left;//parseInt(coord_u[0]);
                    Yu = top;//parseInt(coord_u[1]);
                    
                    //document.getElementById('title').innerHTML = Xu+";"+Yu;
                    if ((Xu != Xv) || (Yu != Yv))
                    {
                        dXpas = (Xu-Xv) / 20;
                        dYpas = (Yu-Yv) / 20;
                        
                        cadre.style.opacity = '0.5';
                        cadre.style.filter = 'alpha(opacity=50)';
                        
                        moveElem(id_cadre,Xu,Yu,dXpas,dYpas);
                    }
                }
                else
                {
                    removeElement(cadre);
                }
                
                //removeElement(document.getElementById('cadre'+id_cadre));
                // refreshing existing element
                //eval(ajaxReqText(rel+'elem/elem_reload.php?id_cadre='+id_cadre+'&rel='+rel+'../'));
            }
            else
            {
                // Creating new element
                var dragObjCreated = addElement("", "blackboard");
                
                document.getElementById('elem_temp').innerHTML += ajaxReqText(rel+'elem/elem_load.php?id_cadre='+id_cadre+'&rel='+rel);
                dragObjNew = document.getElementById('elem_temp').getElementsByTagName("div")[0];
                document.getElementById("blackboard").replaceChild(dragObjNew, dragObjCreated);
                
                if (dragObjNew.id == "empty")
                {
                    removeElement(document.getElementById("empty"));
                }
                
                dragObjCreated = '';
            }
        }
        
        // Vérification si l'objet et sur la corbeille ou pas
        function isTrashObj() {
            if (isdrag)
            {
                var trash = document.getElementById("trash");
                if ((
                    ((total_offsetLeft(trash) < total_offsetLeft(dragObjCopy)) && ((total_offsetLeft(trash) + trash.offsetWidth) > total_offsetLeft(dragObjCopy)))
                ||
                    ((total_offsetLeft(trash) < (total_offsetLeft(dragObjCopy) + dragObjCopy.offsetWidth)) && ((total_offsetLeft(trash) + trash.offsetWidth) > (total_offsetLeft(dragObjCopy) + dragObjCopy.offsetWidth)))
                ||
                    ((total_offsetLeft(trash) > total_offsetLeft(dragObjCopy)) && ((total_offsetLeft(trash) + trash.offsetWidth) < (total_offsetLeft(dragObjCopy) + dragObjCopy.offsetWidth)))
                ) && (
                    ((total_offsetTop(trash) > total_offsetTop(dragObjCopy)) && ((total_offsetTop(trash) + trash.offsetHeight) < (total_offsetTop(dragObjCopy) + dragObjCopy.offsetHeight)))            
                ))
                {
                    document.getElementById("trash").style.backgroundColor = "#808080";
                    document.onmouseup = deleteObj;
                }
                else
                {
                    document.getElementById("trash").style.backgroundColor = "";
                    document.onmouseup = leaveObj;
                }
            }
        }
        
        // Suppression de l'objet
        function deleteObj() {
            id_cadre = dragObj.id.replace("cadre",""); // cadreX avec id_cadre = X
            ajaxReqText(rel+'elem/elem_suppr.php?id_cadre='+id_cadre+'&left="X"&top="Y"');
            
            removeElement(dragObjCopy);
            removeElement(dragObj);
        }
        
        // Users
        function removeUser(id)
        {
            removeElement(document.getElementById('user'+id));
        }
        
        function updateUser(id)
        {
            if (!document.getElementById('user'+id) && document.getElementById('users'))
            {
                document.getElementById('users').innerHTML += ajaxReqText(rel+'elem/user_thumb.php?id_user='+id);
            }
        }
    
    /* Album photo */
        // Initialisation de la sélection
        function selectObjAlbum(currentObj,e)
        {
            pictureObj = currentObj;
            
            x_begin = mouseX(e);
            y_begin = mouseY(e);
            
            insertedObj = addElement('',pictureObj.id);
            insertedObj.className = "selection";
            insertedObj.style.position = "absolute";
            insertedObj.style.top = y_begin+'px';
            insertedObj.style.left = x_begin+'px'; //constOffsetLeft+currentCol.offsetLeft+'px';
            insertedObj.style.width = '1px'; //currentCol.offsetWidth-constOffsetWidth+'px';
            insertedObj.style.height = '1px';
            
            document.onmousemove = defineObjArea;
            document.onmouseup = insertObj;
        }
        
        // Modification de la zone sélectionnée
        function defineObjArea(e)
        {
            x_end = mouseX(e);
            y_end = mouseY(e);
            
            x_pict = total_offsetLeft(pictureObj);
            x_width_pict = x_pict+pictureObj.offsetWidth;
            if (x_end < x_pict) x_end = x_pict;
            else if (x_end > x_width_pict) x_end = x_width_pict;
            
            y_pict = total_offsetTop(pictureObj);
            y_height_pict = y_pict+pictureObj.offsetHeight;
            if (y_end < y_pict) y_end = y_pict;
            else if (y_end > y_height_pict) y_end = y_height_pict;
            
            if (x_end > x_begin) insertedObj.style.width = (x_end - x_begin)+'px';
            else
            {
                insertedObj.style.left = x_end+'px';
                insertedObj.style.width = (x_begin - x_end)+'px';
            }
            
            if (y_end > y_begin) insertedObj.style.height = (y_end - y_begin)+'px';
            else
            {
                insertedObj.style.top = y_end+'px';
                insertedObj.style.height = (y_begin - y_end)+'px';
            }
            
            return false;
        }
    
        // Insertion de l'objet sur la sélection
        function insertObj()
        {
            document.onmouseup = null;
            document.onmousemove = null;
            if ((insertedObj.style.width.replace("px","") < 5) && (insertedObj.style.height.replace("px","") < 5))
            {
                removeElement(insertedObj);
                //document.onmousedown = selectObj;
            }
            else
            {
                insertedObj.className = "selected_area";
                
                x_form = Math.min(x_end,x_begin);
                y_form = Math.max(y_end,y_begin)+2;
                formObj = addElement('<img src="'+rel+'images/buro/attach.png" style="float: left;" /><input id="zone_nom" maxlength="100" type="text" value="" /><input type="submit" value="ok" onClick="saveObjAlbum();" />',pictureObj.id);
                formObj.className = "tag_form";
                formObj.style.position = "absolute";
                formObj.style.top = y_form+'px';
                formObj.style.left = x_form+'px';
                
                //document.onmousedown = selectNewObj;
            }
        }
    
    /*function selectNewObj(e)
    {
        removeElement(formObj);
        removeElement(insertedObj);
        selectObj(e);
    }*/
    
        // Sauvegarde de la zone taggée
        function saveObjAlbum()
        {
            objNum++;
            ajaxReqText(rel+'album/zone_save.php?x1='+x_begin+'&y1='+y_begin+'&x2='+x_end+'&y2='+y_end+'&zone_nom='+escape(document.getElementById('zone_nom').value));
            tagObj = addElement(document.getElementById('zone_nom').value,pictureObj.id);
            tagObj.className = "tag_hidden";
            tagObj.id = "tag"+objNum;
            tagObj.style.position = "absolute";
            tagObj.style.top = formObj.style.top;
            tagObj.style.left = formObj.style.left;
            removeElement(formObj);
            insertedObj.className = "area";
            insertedObj.id = "obj"+objNum;
            insertedObj.onmouseover = function() { document.getElementById('tag'+this.id.replace('obj','')).className = "tag_visible"; };
            insertedObj.onmouseout = function() { document.getElementById('tag'+this.id.replace('obj','')).className = "tag_hidden"; };
            insertedObj = "";
        }
        
    /* Scroll bar */
        var barObj = '';
        var y_top;
        // Initialisation du défilement
        function selectObjBar(currentObj,e)
        {
            barObj = currentObj;
            
            barObj.className = barObj.className+"_selected";
            
            y_top = barObj.style.marginTop.replace("px","");
            //x_begin = mouseX(e);
            y_begin = mouseY(e);
            
            document.onmousemove = moveObjBar;
            document.onmouseup = stopObjBar;
        }
        
        // Déplacement de la barre et du contenu
        function moveObjBar(e)
        {
            y_end = mouseY(e);
            verScroll((y_top-(y_begin-y_end)), false, barObj.id.replace("_bar",""), barObj.id.replace("content_bar", "chat"));
            return false;
        }
        
        // Arrêt du défilement
        function stopObjBar()
        {
            barObj.className = barObj.className.replace("_selected","");
            
            document.onmousemove = null;
            document.onmouseup = null;
            barObj = "";
        }

    /* Renommage des objets */
        // Affichage du champ de saisie
        function renameObj(e)
        {
            if (!isRenamed)
            {
                var currentObj = nn6 ? e.target : event.srcElement;
                
                var parent = currentObj;
                while (parent.className.substring(0,8) != "obj_drag")
                {
                    parent = nn6 ? parent.parentNode : parent.parentElement;
                }

                if((parent == selectedObj) && (parent != renamedObj))
                {
                    isRenamed = true;
                    renamedObj = parent;
                    currentObj.innerHTML = '<input type="text" id="'+renamedObj.id+'_input" class="obj_title_input" value="'+currentObj.innerHTML+'" />';
                    document.getElementById(renamedObj.id+'_input').focus();
                }
                 
                selectObjView(parent);
            }
        }
    
        // Enregistrement du nouveau nom
        function renameObjValid()
        {
            if (isRenamed)
            {
                id_cadre = renamedObj.id.replace("cadre",""); // cadreX avec id_cadre = X
                ajaxReqText('box/box_rename.php?id_cadre='+id_cadre+'&titre='+escape(document.getElementById(renamedObj.id+'_input').value));
                document.getElementById(renamedObj.id+'_title').innerHTML = document.getElementById(renamedObj.id+'_input').value;
                isRenamed = false;
                renamedObj = '';
            }
        }
    
    /* Etat de l'objet */
    function stateObj(e, state)
    {    
        var currentObj = nn6 ? e.target : event.srcElement;
        while (currentObj.className.substring(0,12) != "obj_draggrid")
        {
            currentObj = nn6 ? currentObj.parentNode : currentObj.parentElement;
        }
        
        if (state == "min")
        {
            document.getElementById(currentObj.id+'_config').style.display = "none";
            document.getElementById(currentObj.id+'_description').style.display = "block";
            document.getElementById(currentObj.id+'_content').style.display = "none";
            //currentObj.getElementsByTagName("div")[0].style.display = "none";
            document.getElementById(currentObj.id+'_button').innerHTML = '<img src="'+rel+'images/buro/close-bl.gif" class="obj_button" onClick="closeObj(event);" onMouseOver="this.src=\''+rel+'images/buro/close.gif\'" onMouseOut="this.src=\''+rel+'images/buro/close-bl.gif\'" />';
            document.getElementById(currentObj.id+'_button').innerHTML += '<img src="'+rel+'images/buro/maximize-bl.gif" class="obj_button" onClick="stateObj(event,\'max\');" onMouseOver="this.src=\''+rel+'images/buro/maximize.gif\'" onMouseOut="this.src=\''+rel+'images/buro/maximize-bl.gif\'" />';
            document.getElementById(currentObj.id+'_button').innerHTML += '<img src="'+rel+'images/buro/edit-bl.gif" class="obj_button" onClick="editObj(event);" onMouseOver="this.src=\''+rel+'images/buro/edit.gif\'" onMouseOut="this.src=\''+rel+'images/buro/edit-bl.gif\'" />'
        }
        else if (state == "max")
        {
            document.getElementById(currentObj.id+'_content').style.display = "block";
            //currentObj.getElementsByTagName("div")[0].style.display = "block";
            document.getElementById(currentObj.id+'_button').innerHTML = '<img src="'+rel+'images/buro/close-bl.gif" class="obj_button" onClick="closeObj(event);" onMouseOver="this.src=\''+rel+'images/buro/close.gif\'" onMouseOut="this.src=\''+rel+'images/buro/close-bl.gif\'" />';
            document.getElementById(currentObj.id+'_button').innerHTML += '<img src="'+rel+'images/buro/minimize-bl.gif" class="obj_button" onClick="stateObj(event,\'min\');" onMouseOver="this.src=\''+rel+'images/buro/minimize.gif\'" onMouseOut="this.src=\''+rel+'images/buro/minimize-bl.gif\'" />';
            document.getElementById(currentObj.id+'_button').innerHTML += '<img src="'+rel+'images/buro/edit-bl.gif" class="obj_button" onClick="editObj(event);" onMouseOver="this.src=\''+rel+'images/buro/edit.gif\'" onMouseOut="this.src=\''+rel+'images/buro/edit-bl.gif\'" />'
        }
        
        // Rafaichissement de l'affichage (bug IE)
        document.getElementById("content").style.display = "none";
        document.getElementById("content").style.display = "block";
        
        // Enregistrement de l'état
        id_cadre = currentObj.id.replace("cadre",""); // cadreX avec id_cadre = X
        ajaxReqText('box/box_etat.php?id_cadre='+id_cadre+'&etat='+state);
    }
    
/*
    function stateMenu(id, state)
    {
        if (state == "min")
        {
            document.getElementById('cadre_menu'+id+'_content').style.display = "none";
            document.getElementById('cadre_menu'+id+'_button').innerHTML = '<img src="'+rel+'images/buro/maximize-bl.gif" class="obj_button" onClick="stateMenu(\''+id+'\',\'max\');" onMouseOver="this.src=\''+rel+'images/buro/maximize.gif\'" onMouseOut="this.src=\''+rel+'images/buro/maximize-bl.gif\'" />';
        }
        else if (state == "max")
        {
            document.getElementById('cadre_menu'+id+'_content').style.display = "block";
            document.getElementById('cadre_menu'+id+'_button').innerHTML = '<img src="'+rel+'images/buro/minimize-bl.gif" class="obj_button" onClick="stateMenu(\''+id+'\',\'min\');" onMouseOver="this.src=\''+rel+'images/buro/minimize.gif\'" onMouseOut="this.src=\''+rel+'images/buro/minimize-bl.gif\'" />';
        }
        
        // Rafaichissement de l'affichage (bug IE)
        document.getElementById("content").style.display = "none";
        document.getElementById("content").style.display = "block";
        
        // Enregistrement de l'état
        ajaxReqText(rel+'box/menu_etat.php?id_menu='+id+'&etat='+state);
    }
*/
    
    function editObj(e) {
        var currentObj = nn6 ? e.target : event.srcElement;
        while (currentObj.className.substring(0,12) != "obj_draggrid")
        {
            currentObj = nn6 ? currentObj.parentNode : currentObj.parentElement;
        }
    
        if (document.getElementById(currentObj.id+'_config').style.display == "block")
        {
            document.getElementById(currentObj.id+'_config').style.display = "none";
            document.getElementById(currentObj.id+'_description').style.display = "block";
        }
        else
        {
            document.getElementById(currentObj.id+'_config').style.display = "block";
            document.getElementById(currentObj.id+'_description').style.display = "none";
        }
        
        // Rafaichissement de l'affichage (bug IE)
        document.getElementById("content").style.display = "none";
        document.getElementById("content").style.display = "block";
    }
    
    function addObj(e) {
        var currentObj = nn6 ? e.target : event.srcElement;
        while (currentObj.className.substring(0,12) != "obj_draggrid")
        {
            currentObj = nn6 ? currentObj.parentNode : currentObj.parentElement;
        }
    
        if (document.getElementById(currentObj.id+'_add').style.display == "block")
        {
            document.getElementById(currentObj.id+'_add').style.display = "none";
        }
        else
        {
            document.getElementById(currentObj.id+'_add').style.display = "block";
        }
        
        // Rafaichissement de l'affichage (bug IE)
        document.getElementById("content").style.display = "none";
        document.getElementById("content").style.display = "block";
    }  
    
    /* Déplacement d'un objet */
    function moveObj(e)
    {
        if (dragObjCopy.className && dragObjCopy.className.substring(dragObjCopy.className.length-7,dragObjCopy.className.length) == "_locked")
        {
            return false;
        }
        else if (isdrag)
        {
            y_top = 0;
            x_max = screen.width;
            //y_max = 2000;

            x_next = (nn6 ? tx + e.clientX - x : tx + event.clientX - x);
            y_next  = (nn6 ? ty + e.clientY - y : ty + event.clientY - y);

            if ((x_next > 0) && (x_next < x_max))
            {
                dragObjCopy.style.left = x_next+"px";
            }

            if ((y_next > y_top))// && (y_next < y_max))
            {
                dragObjCopy.style.top  = y_next+"px";
            }

            if ((y_next < 220) && (x_next > 450)) isSpace = true;
            else isSpace = false;

            if (dragObjCopy.className.substring(0,16)=="obj_draggrid_top")
            {
                orderObj();
            }
            else if (isgrid)
            {
                selectCol();
            }
            else if (dragObjCopy.className.substring(0,18)!="obj_dragfloat_elem")
            {
                isTrashObj();
            }

            return false;
        }
    }

    /* Page personnalisable */
        // Sélection de la colonne survolée par l'objet    
        function selectCol()
    	{
            if (isdrag)
            {
                // Sélection de la colonne active
                currentNumCol = parseInt(dropCol.id.split("_")[1]);
                offsetIE = 0;
                if (ie) offsetIE = document.getElementById("content").offsetLeft;
                if (parseInt(dragObjCopy.style.left.replace("px","")) > parseInt(offsetIE + dropCol.offsetLeft + (dropCol.offsetWidth / 2) ) )
                {
                    if (document.getElementById("col_"+(parseInt(dropCol.id.split("_")[1])+1)))
                    {
                        currentNumCol = (parseInt(dropCol.id.split("_")[1])+1);
                        dropCol = document.getElementById("col_"+currentNumCol);
                    }
                }
                else if (parseInt(dragObjCopy.style.left.replace("px","")) < parseInt(offsetIE + dropCol.offsetLeft - (dropCol.offsetWidth / 2) ) )
                {
                    if (document.getElementById("col_"+(parseInt(dropCol.id.split("_")[1])-1)))
                    {
                        currentNumCol = (parseInt(dropCol.id.split("_")[1])-1);
                        dropCol = document.getElementById("col_"+currentNumCol);
                    }
                }
                
                if (dragObjTemp == '')
                {
                    // Création du cadre temporaire
                    dragObjTemp = addElement("", dropCol.id);
                    dragObjTemp.style.height = dragObj.offsetHeight+"px";
                    dragObjTemp.style.border = "1px dashed #FF5500";//+cat['bgcolor']['<?php echo $rub ?>'];
                }
                else
                {
                    dropCol.appendChild(dragObjTemp);
                }

                // Positionnement entre les blocs d'une colonne
                currentPosition = 1;
                if (dropCol.getElementsByTagName("div").length > 1)
                {
                    
                    // Répérage du bloc suivant
                    var i = 0;
                    var cadre = dropCol.getElementsByTagName("div")[i];
                    var prevCadre = '';
                    while (dropCol.getElementsByTagName("div")[i].id.substring(0,5) != "cadre")
                    {
                        i++;
                        cadre = dropCol.getElementsByTagName("div")[i];
                    }
                    
                    while (((cadre.offsetTop < parseInt(dragObjCopy.style.top.replace("px",""))) || (dropCol.getElementsByTagName("div")[i].className.substring(0,12) != "obj_draggrid")) && (i < dropCol.getElementsByTagName("div").length-1))
                    {
                        if (dropCol.getElementsByTagName("div")[i].className.substring(0,12) == "obj_draggrid")
                        {
                            currentPosition++;
                            prevCadre = dropCol.getElementsByTagName("div")[i];
                        }
                        i++;
                        cadre = dropCol.getElementsByTagName("div")[i];
                    }
                    
                    // Insertion de l'aperçu si nécessaire
                    if (i == dropCol.getElementsByTagName("div").length)
                    {
                        dropCol.appendChild(dragObjTemp);
                    }
                    else if ((dragObj == cadre) || (dragObj == prevCadre))
                    {
                        if (dragObjTemp != '')
                        {
                            removeElement(dragObjTemp);
                            dragObjTemp = '';
                        }
                    }
                    else
                    {
                        dropCol.insertBefore(dragObjTemp, cadre);
                    }
                }
                
            return false;
            }
    	}
        
        // Modification du nombre de colonne
        function changeNbCol(nb)
        {
            var parent = document.getElementById("content");
            var i = parent.getElementsByTagName("div").length-1;
            var col = parent.getElementsByTagName("div")[i];
            while ((col.className.substring(0,6) != "col_by") && (i >= 0))
            {
                i = i-1;
                col = parent.getElementsByTagName("div")[i];
            }
            
            nb_prev = col.className.replace("col_by","");
            
            if(nb < nb_prev)//((nb == 3) && (col.className == "col_by4"))
            {
                // Suppression de la dernière colonne
                //if (col.innerHTML != "")
                //{
                    if ( !confirm('Les éléments des colonnes supprimées vont être déplacés'))
                    {
                        return false;
                    }
                //}
                var copy = '';
                var n = nb;
                while(n < nb_prev)
                {
                    if (col.className == "col_by"+nb_prev)
                    {
                        copy = col.innerHTML + copy;
                        removeElement(col);
                        n++;
                    }
                    i = i-1;
                    col = parent.getElementsByTagName("div")[i];
                }
                
                // Changement du style des 3 autres colonnes
                var j = 0;
                while (j < nb)//3)
                {
                    if (col.className == "col_by"+nb_prev)
                    {
                        col.className = "col_by"+nb;
                        if (j == 0)
                        {
                            col.innerHTML += copy;
                        }
                        j++;
                    }
                    i = i-1;
                    if (i >= 0) col = parent.getElementsByTagName("div")[i];
                }
            }
            else if (nb > nb_prev)//((nb == 4) && (col.className == "col_by3"))
            {
                // Création de la dernière colonne
                var newDiv;
                var n = nb_prev;
                while(n < nb)
                {
                    n++;
                    newDiv = document.createElement("div");
                    newDiv.id = "col_"+n;
                    newDiv.className = "col_by"+nb;
                    parent.insertBefore(newDiv, document.getElementById("col_fin"));
                }
                
                // Changement du style des 3 autres colonnes
                var j = 0;
                while (j < nb_prev)
                {
                    if (i >= 0) col = parent.getElementsByTagName("div")[i];
                    if (col.className == "col_by"+nb_prev)
                    {
                        col.className = "col_by"+nb;
                        j++;
                    }
                    i = i-1;
                }
            }
            
            ajaxReqText(rel+'box/box_col.php?nb_col='+nb);
        }

    /* Dépôt d'un objet */
        // Dépose d'un objet de type GRID et enregistrement de la position
    	function dropObj(e)
    	{
            if (isdrag)
            {
                id_cadre = dragObj.id.replace("cadre",""); // cadreX avec id_cadre = X
                ajaxReqText(rel+'box/box_position.php?id_cadre='+id_cadre+'&col='+currentNumCol+'&rang='+currentPosition);
            
                if (dragObjTemp != '')
                {
                    dropCol.replaceChild(dragObj, dragObjTemp);
                    dragObjTemp = '';
                }
                if (dragObjCopy != '')
                {
                    removeElement(dragObjCopy);
                    dragObjCopy = '';
                }
                dragObj.style.opacity = '1';
                dragObj.style.filter = 'alpha(opacity=100)';
                
                // Rafaichissement de l'affichage (bug IE)
                document.getElementById("content").style.display = "none";
                document.getElementById("content").style.display = "block";
                
                isdrag=false;
            }
    	}

        // Dépôt d'un objet de type FLOAT et enregistrement de la position
        function leaveObj()
        {
            if (isdrag)
            {
                // Affectation des positions
                dragObj.style.left = dragObjCopy.style.left;
                dragObj.style.top = dragObjCopy.style.top;
                
                // Enregistrement en base
                id_cadre = dragObj.id.replace("cadre","");
                ajaxReqText(rel+'elem/elem_position.php?id_cadre='+id_cadre+'&left='+dragObj.style.left.replace("px","")+'&top='+dragObj.style.top.replace("px",""));
                
                // Retour à la situation avant le déplacement
                dragObj.style.opacity = '1';
                dragObj.style.filter = 'alpha(opacity=100)';
                removeElement(dragObjCopy);
            }
            isdrag=false;
        }
    
    /* Création d'un nouvel objet */
        function createObj(e)
        {   
            if (isdrag)
            {
                if (isgrid)
                {
                    if (dragObjTemp != '')
                    {
                        document.getElementById('col_fin').innerHTML += ajaxReqText(rel+'box/box_ajout.php?script='+dragObj.id.replace("box_","")+'&id_cadre='+id_cadre+'&rel='+rel+'&col='+currentNumCol+'&rang='+currentPosition);
                        id_cadre++;
                        dragObjNew = document.getElementById('col_fin').getElementsByTagName("div")[0];
                        //dragObjNew = document.getElementById('cadre'+id_cadre);
                        dropCol.replaceChild(dragObjNew, dragObjTemp);
                        dragObjTemp = '';
                    }
                    if (dragObjCopy != '')
                    {
                        removeElement(dragObjCopy);
                        dragObjCopy = '';
                    }
                }
                else if (!isgrid && (dragObjCopy != ''))
                {
                    document.getElementById('elem_temp').innerHTML += ajaxReqText(rel+'elem/elem_ajout.php?script='+dragObj.id.replace("elem_","")+'&id_cadre='+id_cadre+'&rel='+rel+'&left='+dragObjCopy.style.left.replace("px","")+'&top='+dragObjCopy.style.top.replace("px",""));
                    id_cadre++;
                    dragObjNew = document.getElementById('elem_temp').getElementsByTagName("div")[0];
                    document.getElementById("wall").replaceChild(dragObjNew, dragObjCopy);
                    //document.getElementById("wall").appendChild(dragObjNew);
                    
                    dragObjCopy = '';
                    
                    id_cadre_select = dragObjNew.id.replace("cadre","");
                    
                    switch(dragObj.id.replace("elem_","")) {
                        case "chat":
                            verScroll('bottom',true,'cadre'+id_cadre_select+'_content','cadre'+id_cadre_select+'_chat');
                            break;
                    }
                    
                    ajaxReqText(rel+'elem/elem_unlock.php?id_cadre='+id_cadre_select+'&left='+dragObjNew.style.left.replace("px","")+'&top='+dragObjNew.style.top.replace("px",""));
                }
                document.getElementById(dragObj.id).style.opacity = '1';
                document.getElementById(dragObj.id).style.filter = 'alpha(opacity=100)';
                
                // Rafaichissement de l'affichage (bug IE)
                document.getElementById("content").style.display = "none";
                document.getElementById("content").style.display = "block";
                
                isdrag=false;
            }
        }
    
    /* Suppression d'un objet */
        function closeObj(e) {
            var currentObj = nn6 ? e.target : event.srcElement;
            while (currentObj.className.substring(0,12) != "obj_draggrid")
            {
                currentObj = nn6 ? currentObj.parentNode : currentObj.parentElement;
            }
        
            if (!confirm('Cette boîte et tous les éléments qu\'elle contient vont être supprimés.'))
            {
                return false;
            }
            
            id_cadre = currentObj.id.replace("cadre",""); // cadreX avec id_cadre = X
            ajaxReqText(rel+'box/box_suppr.php?id_cadre='+id_cadre);
            
            removeElement(currentObj);
            
            // Rafaichissement de l'affichage (bug IE)
            document.getElementById("content").style.display = "none";
            document.getElementById("content").style.display = "block";
        }
    

    /* Edition du contenu des boîtes */
    var isNoteEdit = false;
    var isElem = false;
    var editObjId = '';
    function editNote(id)
    {
        currentCadre = document.getElementById('cadre'+id);
        selectElem(currentCadre);
        if ((!isNoteEdit) && (currentCadre.className.substring(currentCadre.className.length-7,currentCadre.className.length) != "_locked"))
        {
            /*var currentObj = nn6 ? e.target : event.srcElement;
            
            var parent = currentObj;
            while (parent.className.substring(0,8) != "obj_note")
            {
                parent = nn6 ? parent.parentNode : parent.parentElement;
            }*/
            isNoteEdit = true;
            if(id != editObjId)
            {
                editObjId = id;
                currentObj = document.getElementById('cadre'+editObjId+'_content');
                currentObj.innerHTML = '<form><textarea id="cadre'+editObjId+'_content_input" class="obj_note_input" style="height:'+(currentObj.offsetHeight)+'px;" onBlur="editNoteValid();">'+trimStr(breakHtmlToStr(currentObj.innerHTML))+'</textarea></form>';
                document.getElementById('cadre'+editObjId+'_content_input').focus();
            }
        }
    }
    
    function editNoteValid()
    {
        if (isNoteEdit)
        {
            document.getElementById('cadre'+editObjId+'_content').innerHTML = breakStrToHtml(document.getElementById('cadre'+editObjId+'_content_input').value);
            
            // Enregistrement de la note
            if (isElem)
            {
                cadre = document.getElementById('cadre'+editObjId);
                var left = parseInt(cadre.style.left.replace("px",""));
                var top = parseInt(cadre.style.top.replace("px",""));
                ajaxReqText(rel+'elem/elem_note.php?id_cadre='+editObjId+'&left='+left+'&top='+top+'&texte='+escape(document.getElementById('cadre'+editObjId+'_content').innerHTML));
                isElem = false;
            }
            else
            {
                ajaxReqText(rel+'box/box_note.php?id_cadre='+editObjId+'&texte='+escape(document.getElementById('cadre'+editObjId+'_content').innerHTML));
            }
            
            isNoteEdit = false;
            editObjId = '';
        }
    }
    
    var isTacheAdd = false;
    var addTacheId = '';
    function addTache(id) {
        if (!isTacheAdd)
        {
            isTacheAdd = true;
            if(id != addTacheId)
            {
                addTacheId = id;
                currentObj = document.getElementById('cadre'+addTacheId+'_add');
                currentObj.innerHTML = '<input type="text" value="" id="cadre'+addTacheId+'_add_input" style="width: 170px;" onKeyUp="if(event.keyCode == 13) { addTacheValid(); }" onBlur="addTacheValid();" />';
                document.getElementById('cadre'+addTacheId+'_add_input').focus();
            }
        }
    }
    
    function addTacheValid() {
        if (isTacheAdd)
        {
            var tache_libelle = document.getElementById('cadre'+addTacheId+'_add_input').value;
            if (tache_libelle != "")
            {
                cadre = document.getElementById('cadre'+addTacheId);
                var left = parseInt(cadre.style.left.replace("px",""));
                var top = parseInt(cadre.style.top.replace("px",""));
                ajaxReqText(rel+'elem/elem_tache.php?ajout=do&id_cadre='+addTacheId+'&left='+left+'&top='+top+'&tache_libelle='+escape(tache_libelle));
                document.getElementById('cadre'+addTacheId+'_content').innerHTML = ajaxReqText(rel+'elem/tache_change.php?id_cadre='+addTacheId);
            }
            
            document.getElementById('cadre'+addTacheId+'_add').innerHTML = '<img src="'+rel+'images/buro/plus-bl.gif" />Ajouter une tâche';
            
            isTacheAdd = false;
            addTacheId = '';
        }
    }
    
    function tache_ajout(id)
    {
        var tache_libelle = document.getElementById('tache_libelle'+id).value;
        if (tache_libelle != "")
        {
            document.getElementById('tache_affichage'+id).innerHTML = ajaxReqText(rel+'box/tache_change.php?ajout=do&id_cadre='+id+'&tache_libelle='+escape(tache_libelle));
        }
        document.getElementById('tache_libelle'+id).value = "";
    }
    
    function tache_suppr(id, id_tache)
    {
        var dir = "";
        if (isElem)
        {
            //dir = "elem";
            cadre = document.getElementById('cadre'+id);
            var left = parseInt(cadre.style.left.replace("px",""));
            var top = parseInt(cadre.style.top.replace("px",""));
            ajaxReqText(rel+'elem/elem_tache.php?suppr='+id_tache+'&id_cadre='+id+'&left='+left+'&top='+top);
            document.getElementById('cadre'+id+'_content').innerHTML = ajaxReqText(rel+'elem/tache_change.php?id_cadre='+id);
            isElem = false;
        }
        else
        {
            //dir = "box";
            document.getElementById('tache_affichage'+id).innerHTML = ajaxReqText(rel+'box/tache_change.php?suppr='+id_tache+'&id_cadre='+id);
        }
    }
    
    function tache_position(id, id_tache, direction)
    {
        var dir = "";
        if (isElem)
        {
            //dir = "elem";
            cadre = document.getElementById('cadre'+id);
            var left = parseInt(cadre.style.left.replace("px",""));
            var top = parseInt(cadre.style.top.replace("px",""));
            ajaxReqText(rel+'elem/elem_tache.php?direction='+direction+'&id_cadre='+id+'&left='+left+'&top='+top+'&id_tache='+id_tache);
            document.getElementById('cadre'+id+'_content').innerHTML = ajaxReqText(rel+'elem/tache_change.php?id_cadre='+id);
            isElem = false;
        }
        else
        {
            //dir = "box";
            document.getElementById('tache_affichage'+id).innerHTML = ajaxReqText(rel+'box/tache_change.php?direction='+direction+'&id_cadre='+id+'&id_tache='+id_tache);
        }
    }
    
    function eventChatMsg(e) {
        if (!e) var e = window.event
        if (e.keyCode) code = e.keyCode;
        else if (e.which) code = e.which;
        
        if(code == "13") return true;
        else return false;
    }
    
    function sendChatMsg(id) {
        var message = document.getElementById('cadre'+id+'_input').value;
        document.getElementById('cadre'+id+'_input').value = "";
        if ((message != "") && (message != "\n") && (message != "\r\n"))
        {
            cadre = document.getElementById('cadre'+id);
            var left = parseInt(cadre.style.left.replace("px",""));
            var top = parseInt(cadre.style.top.replace("px",""));
            ajaxReqText(rel+'elem/elem_chat.php?id_cadre='+id+'&left='+left+'&top='+top+'&message='+escape(message));
            
            var content = document.getElementById('cadre'+id+'_content');
            content.innerHTML = content.innerHTML+"\n"+'<p><strong style="color: #C0C0C0;">moi &#155;</strong> '+message+'</p>';
            /*if (content.offsetHeight > 200) content.style.marginTop = (200-content.offsetHeight)+"px";*/
            verScroll('bottom',true,'cadre'+id+'_content','cadre'+id+'_chat');
        }

        document.getElementById('cadre'+id+'_input').focus();
    }
    
    var current_groups_link_id = 0;
    function groups_link_cat(id,link,evt)
    {
        current_groups_link_id = id;
        x = mouseX(evt);
        y = mouseY(evt);
        document.getElementById('groups_link').style.top = y+'px';
        document.getElementById('groups_link').style.left = x+'px';
        document.getElementById('groups_link').style.visibility = 'visible';
        document.getElementById('groups_link_cat').value = link;
        
    }
    
    function groups_link_valider()
    {
        link = document.getElementById('groups_link_cat').value;
        document.getElementById('groups_cat').innerHTML = ajaxReqText('link_cat.php?id='+escape(current_groups_link_id)+'&link='+escape(link)+'&arbo='+escape(arbo));
    }
    
    function groups_link_fermer()
    {
        document.getElementById('groups_link').style.visibility = 'hidden';
    }
    
    function meteo_change(id)
    {
        var ville = document.getElementById('meteo_ville'+id).options[document.getElementById('meteo_ville'+id).selectedIndex].value;
        var ville_nom = document.getElementById('meteo_ville'+id).options[document.getElementById('meteo_ville'+id).selectedIndex].text;
        var jours = document.getElementById('meteo_jours'+id).options[document.getElementById('meteo_jours'+id).selectedIndex].value;
        document.getElementById('meteo_affichage'+id).innerHTML = ajaxReqText(rel+'box/meteo_change.php?id_cadre='+id+'&ville='+escape(ville)+'&ville_nom='+escape(ville_nom)+'&jours='+jours);
    }
    
    function flux_change(id,type)
    {
        if (type == 1)
        {
            var flux_nom = document.getElementById('flux_titre'+id).options[document.getElementById('flux_titre'+id).selectedIndex].text;
            var flux_url = document.getElementById('flux_titre'+id).options[document.getElementById('flux_titre'+id).selectedIndex].value;
        }
        else if (type == 2)
        {
            var flux_nom = document.getElementById('flux_nom'+id).value;
            var flux_url = document.getElementById('flux_url'+id).value;
        }
        var flux_nb = document.getElementById('flux_nb'+id).options[document.getElementById('flux_nb'+id).selectedIndex].value;
        document.getElementById('flux_affichage'+id).innerHTML = ajaxReqText(rel+'box/flux_change.php?id_cadre='+id+'&flux_nom='+escape(flux_nom)+'&flux_url='+escape(flux_url)+'&flux_nb='+escape(flux_nb));
    }

    function agenda_change(id,type)
    {
        var agenda_nb = document.getElementById('agenda_nb'+id).options[document.getElementById('agenda_nb'+id).selectedIndex].value;
        if (type == 1)
        {
            var agenda_type = document.getElementById('agenda_type'+id).options[document.getElementById('agenda_type'+id).selectedIndex].value;
            document.getElementById('agenda_affichage'+id).innerHTML = ajaxReqText(rel+'box/agenda_change.php?id_cadre='+id+'&agenda_type='+escape(agenda_type)+'&agenda_nb='+escape(agenda_nb));
        }
        else if (type == 2)
        {
            document.getElementById('mon_agenda_affichage'+id).innerHTML = ajaxReqText(rel+'box/mon_agenda_change.php?id_cadre='+id+'&agenda_nb='+escape(agenda_nb));
        }
    }
    
    function favoris_ajout(id)
    {
        var favoris_nom = document.getElementById('favoris_nom'+id).value;
        var favoris_url = document.getElementById('favoris_url'+id).value;
        if (favoris_url != "")
        {
            document.getElementById('favoris_affichage'+id).innerHTML = ajaxReqText(rel+'box/favoris_change.php?ajout=do&id_cadre='+id+'&favoris_nom='+escape(favoris_nom)+'&favoris_url='+escape(favoris_url));
        }
        document.getElementById('favoris_nom'+id).value = "";
        document.getElementById('favoris_url'+id).value = "http://";
    }
    
    function favoris_suppr(id, id_favori)
    {
        document.getElementById('favoris_affichage'+id).innerHTML = ajaxReqText(rel+'box/favoris_change.php?suppr='+id_favori+'&id_cadre='+id);
    }
    
    function favoris_position(id, id_favori, direction)
    {
        document.getElementById('favoris_affichage'+id).innerHTML = ajaxReqText(rel+'box/favoris_change.php?direction='+direction+'&id_cadre='+id+'&id_favori='+id_favori);
    }
    
    function soirees_ajout(id)
    {
        var soirees_nom = document.getElementById('soirees_nom'+id).value;
        var soirees_date = document.getElementById('soirees_date'+id).value;
        if ((soirees_nom != "") && (soirees_date != "") && (soirees_date != "JJ/MM/AAAA"))
        {
            document.getElementById('soirees_affichage'+id).innerHTML = ajaxReqText(rel+'box/soirees_change.php?ajout=do&id_cadre='+id+'&soirees_nom='+escape(soirees_nom)+'&soirees_date='+escape(soirees_date));
        }
        document.getElementById('soirees_nom'+id).value = "";
        document.getElementById('soirees_date'+id).value = "JJ/MM/AAAA";
    }
    
    function soirees_suppr(id, id_soiree)
    {
        document.getElementById('soirees_affichage'+id).innerHTML = ajaxReqText(rel+'box/soirees_change.php?suppr='+id_soiree+'&id_cadre='+id);
    }
    
    function msg_perso_dest(id)
    {
        var destinataire = document.getElementById('msg_perso_dest'+id).value;
        if (destinataire != "")
        {
            ajaxReqText(rel+'elem/msg_perso_dest.php?id_cadre='+id+'&dest='+destinataire);
        }
    }
    
    function ami_accept(id_ami)
    {
        document.getElementById('ami_demandes').innerHTML = ajaxReqText(rel+'espace/mes_amis_change.php?accept=do&id_ami='+id_ami);
        document.getElementById('ami_trombi').innerHTML = ajaxReqText(rel+'espace/mes_amis_trombi.php');
    }
    
    function ami_reject(id_ami)
    {
        document.getElementById('ami_demandes').innerHTML = ajaxReqText(rel+'espace/mes_amis_change.php?reject=do&id_ami='+id_ami);
    }
    
    function ami_search(id)
    {
        var ami_nom = document.getElementById('ami_nom').value;
        var ami_prenom = document.getElementById('ami_prenom').value;
        var ami_email = document.getElementById('ami_email').value;
        
        document.getElementById('ami_search_result').innerHTML = ajaxReqText(rel+'espace/mes_amis_search.php?ami_nom='+escape(ami_nom)+'&ami_prenom='+escape(ami_prenom)+'&ami_email='+escape(ami_email));
    }
    
    function membre_accept(id_groupe, id_mem)
    {
        document.getElementById('group_demandes').innerHTML = ajaxReqText(rel+'groupe/membres_change.php?accept=do&id_groupe='+id_groupe+'&id_mem='+id_mem);
        document.getElementById('group_trombi').innerHTML = ajaxReqText(rel+'groupe/membres_trombi.php?id_groupe='+id_groupe);
    }
    
    function membre_reject(id_groupe, id_mem)
    {
        document.getElementById('group_demandes').innerHTML = ajaxReqText(rel+'groupe/membres_change.php?reject=do&id_groupe='+id_groupe+'&id_mem='+id_mem);
    }
    
    function membre_block(id_groupe, id_mem, block)
    {
        ajaxReqText(rel+'groupe/membre_block.php?block='+block+'&id_groupe='+id_groupe+'&id_mem='+id_mem);
        document.getElementById('group_trombi').innerHTML = ajaxReqText(rel+'groupe/membres_trombi.php?id_groupe='+id_groupe);
    }
    
    function moderateur_quit(id_groupe)
    {
        if (!confirm('Est-tu sûr(e) de vraiment vouloir démissionner ?'))
        {
            return false;
        }
        
        if (ajaxReqText(rel+'groupes/moderateur_quit.php?id_groupe='+id_groupe) != "0")
        {
            window.history.go(0);
        }
        else
        {
            alert('Tu es le dernier modérateur...\nTu ne peux pas démissionner tant que tu n\'en auras pas nommé au moins un nouveau !');
        }
    }
    
    function moderateur_nominate(id_groupe, id_mem)
    {
        ajaxReqText(rel+'groupes/moderateur_nominate.php?id_groupe='+id_groupe+'&id_mem='+id_mem);
        document.getElementById('group_trombi').innerHTML = ajaxReqText(rel+'groupes/membres_trombi.php?id_groupe='+id_groupe);
    }
    
    /* Défilement BlackBox */
    var bk_bx_nb = 1;
    var bk_bx_prev = 1;
    var bk_bx_content = "";
    var bk_bx_time = "";
    function start_bk_bx()
    {
        document.getElementById('bk_bx_'+bk_bx_nb).className = "selected";
        document.getElementById('bk_bx_content'+bk_bx_nb).className = document.getElementById('bk_bx_content'+bk_bx_nb).className.replace('bk_bx_hd', 'bk_bx_vi');
        bk_bx_nb++;
        
        bk_bx_time = setTimeout("change_bk_bx()",5000);
    }
    
    function jump_bk_bx(nb)
    {
        bk_bx_nb = nb;
        clearTimeout(bk_bx_time);
        change_bk_bx();
        clearTimeout(bk_bx_time);
    }
    
    function pause_bk_bx() {
		clearTimeout(bk_bx_time);
	}
    
    function restart_bk_bx() {
        clearTimeout(bk_bx_time);
		bk_bx_time = setTimeout("change_bk_bx()",2000);
	}

	function change_bk_bx() {
		if (document.getElementById('bk_bx_content'+bk_bx_nb))
        {
            bk_bx_content = document.getElementById('bk_bx_content'+bk_bx_nb);
        }
        else
        {
            bk_bx_nb = 1;
            bk_bx_content = document.getElementById('bk_bx_content'+bk_bx_nb);
        }
        
        document.getElementById('bk_bx_'+bk_bx_prev).className = "";
        document.getElementById('bk_bx_content'+bk_bx_prev).className = document.getElementById('bk_bx_content'+bk_bx_prev).className.replace('bk_bx_vi', 'bk_bx_hd');
        bk_bx_prev = bk_bx_nb;
        
        document.getElementById('bk_bx_'+bk_bx_nb).className = "selected";
        bk_bx_content.className = bk_bx_content.className.replace('bk_bx_hd', 'bk_bx_vi');
        bk_bx_nb++;
        
		bk_bx_time = setTimeout("change_bk_bx()",5000);
	}
    
    function top_noter(id, note)
    {
        document.getElementById('note5_'+id).style.backgroundColor = "";
        document.getElementById('note4_'+id).style.backgroundColor = "";
        document.getElementById('note3_'+id).style.backgroundColor = "";
        document.getElementById('note2_'+id).style.backgroundColor = "";
        document.getElementById('note1_'+id).style.backgroundColor = "";
        document.getElementById('note0_'+id).style.backgroundColor = "";
        //document.getElementById('note_'+id).style.backgroundColor = "";
        if (note != "X") 
        {
            //document.getElementById('note_'+id).style.backgroundColor = cat['color'][1];
            if (note > 4) { document.getElementById('note5_'+id).style.backgroundColor = cat['color'][1]; }
            if (note > 3) { document.getElementById('note4_'+id).style.backgroundColor = cat['color'][1]; }
            if (note > 2) { document.getElementById('note3_'+id).style.backgroundColor = cat['color'][1]; }
            if (note > 1) { document.getElementById('note2_'+id).style.backgroundColor = cat['color'][1]; }
            if (note > 0) { document.getElementById('note1_'+id).style.backgroundColor = cat['color'][1]; }
            if (note >= 0) { document.getElementById('note0_'+id).style.backgroundColor = cat['color'][1]; }
        }
    }
    /*
    var tab_time;
    var tab_lock = new Array();
    
    function tab_hardmax(id) {
        tab_lock[id] = true;
        tab_max(id);
    }
    
    function tab_max(id) {
        //clearTimeout(tab_time);
		//tab_time = setTimeout("tab_lock['"+id+"'] = true;",2000);
        
        document.getElementById(id).className = "perso_select";
        //document.getElementById(id+"_lock").innerHTML = '<div class="lock" onClick="tab_unlock(\''+id+'\');"><img src="'+rel+'images/tab_min.png" /></div>';
	}

	function tab_min(id) {
        clearTimeout(tab_time);
        //tab_time = setTimeout("tab_unlock('"+id+"')",10000);
        
        if (!tab_lock[id])
        {
            tab_unlock(id);
        }
        else
        {
            document.getElementById(id+"_lock").innerHTML = '<div class="lock" onClick="tab_unlock(\''+id+'\');"><img src="'+rel+'images/tab_min_blink.gif" /></div>';
        }
	}
    
    function tab_unlock(id) {
        //clearTimeout(tab_time);
        //tab_lock[id] = false;
        
        document.getElementById(id).className = "perso";
        //document.getElementById(id+"_lock").innerHTML = '<div class="lock" onClick="tab_hardmax(\''+id+'\');"><img src="'+rel+'images/tab_max.png" /></div>';
    }
    */
    /*var volet_max = true;
    
    function volet_change()
    {
        if (!volet_max)
        {
            document.getElementById("volet").className = "volet";
            document.getElementById("volet_title").innerHTML = '&#155; Plein écran';
            volet_max = true;
        }
        else
        {
            document.getElementById("volet").className = "volet_top";
            document.getElementById("volet_title").innerHTML = '&#155; Menu détaillé';
            volet_max = false;
        }
    }*/
    
    /* Menus */
        // Affichage d'un menu
        var menu_id = 0;
        function menu_open(id)
        {
            if (menu_id != 0)
            {
                document.getElementById('menu_'+menu_id).style.display = "none";
            }
            
            if (menu_id == id) menu_id = 0;
            else
            {
                document.getElementById('menu_'+id).style.display = "block";
                document.getElementById('menu_'+id).style.top = total_offsetTop(document.getElementById('menu_min_'+id))+document.getElementById('menu_min_'+id).offsetHeight+"px";
                if ((total_offsetLeft(document.getElementById('menu_min_'+id))+parseInt(document.getElementById('menu_'+id).style.width.replace("px",""))) < screen.width)
                {
                    document.getElementById('menu_'+id).style.left = total_offsetLeft(document.getElementById('menu_min_'+id))+"px";
                }
                else
                {
                    document.getElementById('menu_'+id).style.right = (document.getElementsByTagName("body")[0].offsetWidth-total_offsetLeft(document.getElementById('menu_min_'+id))-document.getElementById('menu_min_'+id).offsetWidth)+"px";
                }
                menu_id = id;
            }
        }
        
        function closeMenu()
        {
            if (menu_id != 0)
            {
                document.getElementById('menu_'+menu_id).style.display = "none";
                menu_id = 0;
            }
        }
        
        // Menu de gauche du Wall
        var lmenu_id = 1;
        function openLMenu(id)
        {
            closeMenu();
            if (lmenu_id != 0)
            {
                document.getElementById('lmenu_'+lmenu_id).style.display = "none";
            }
            
            if (lmenu_id == id) lmenu_id = 0;
            else
            {
                document.getElementById('lmenu_'+id).style.display = "block";
                lmenu_id = id;
            }
        }
        
        // Menu membre Wall
        var umenu_id = 0;
        var closeUMenuTimer = "";
        function openUMenu(id)
        {
            closeMenu();
            if (closeUMenuTimer) clearTimeout(closeUMenuTimer);
            if ((umenu_id != 0) && (umenu_id != id))
            {
                document.getElementById('umenu_'+umenu_id).style.display = "none";
            }
            
            //if (umenu_id == id) umenu_id = 0;
            //else
            if (umenu_id != id)
            {
                document.getElementById('umenu_'+id).style.top = total_offsetTop(document.getElementById('umenu_min_'+id))+"px";
                document.getElementById('umenu_'+id).style.left = total_offsetLeft(document.getElementById('umenu_min_'+id))+document.getElementById('umenu_min_'+id).offsetWidth+"px";
                document.getElementById('umenu_'+id).style.display = "block";
                umenu_id = id;
            }
        }
        
        function closeUMenu(id)
        {
            closeUMenuTimer = setTimeout("doCloseUMenu("+id+")", 500);
        }
        
        function doCloseUMenu(id)
        {
            document.getElementById('umenu_'+id).style.display = "none";
            umenu_id = 0;
        }
        
        function keepUMenu(id)
        {
            if (closeUMenuTimer) clearTimeout(closeUMenuTimer);
        }
        
    /* Tabs */
        wallTab_id = 0;
        function wallTabOpen(id)
        {
            closeMenu();
            if (wallTab_id != id)
            {
                document.getElementById("wall_tab_"+wallTab_id).className = "wall_tab";
                document.getElementById("wall_tab_"+id).className = "wall_tab wall_selected";
                wallTab_id = id;
                document.getElementById("content").innerHTML = ajaxReqText(rel+'groupe/content.php?tab='+id+'&rel='+rel);
                setTimeout("displayTabMenu()", 1000);
            }
        }

        function wallTabClose(id)
        {
            wallTab = document.getElementById("wall_tab_"+id);
            
            if (wallTab.className == "wall_tab wall_selected")
            {
                // Find next tab
                var parent = document.getElementById("menu_0");
                items = parent.getElementsByTagName("li");
                i=0;
                while (items[i].id != "wall_tab_"+id) i++;
                
                // Select matching tab
                i++;
                if (items[i].id != "menu_min_1") wallTabOpen(items[i].id.replace("wall_tab_",""));
                else wallTabOpen(0);
            }
            removeElement(wallTab);
            
            if (wallScreen = document.getElementById("wall_screen_"+id))
            {
                removeElement(wallScreen);
            }
        }
    
    /* Connexion */
        // Blocage de l'accès à des zones privées
        function sign_mall()
        {
            var top = total_offsetTop(document.getElementById('content'));
            var width = document.getElementById('content').offsetWidth;
            var height = (total_offsetTop(document.getElementById('bottom'))-total_offsetTop(document.getElementById('content')));
            
            document.getElementById('sign_mall').style.top = top+"px";
            document.getElementById('sign_mall').style.width = width+"px";
            document.getElementById('sign_mall').style.height = height+"px";
            
            document.getElementById('sign_mall_form').style.top = (top+100)+"px";
            document.getElementById('sign_mall_form').style.left = ((width-300)/2)+"px";
        }
    
        // Effacement du texte pré-rempli
    	function prive_aff(etat, id_form)
        {
            if (!id_form) {
                id_form = "";
            }
    		if ((etat == 1) && (document.getElementById('login'+id_form).value == 'login') && (document.getElementById('motdepasse'+id_form).value == 'motdepasse')) {
    			document.getElementById('login'+id_form).value = '';
    			document.getElementById('motdepasse'+id_form).value = '';
    		}
    		else if ((document.getElementById('login'+id_form).value == '') && (document.getElementById('motdepasse'+id_form).value == ''))
    		{
    			document.getElementById('login'+id_form).value = 'login';
    			document.getElementById('motdepasse'+id_form).value = 'motdepasse';
    		}	
    	}