// MENU HORITZONTAL ADALT ABAIX
var GW_MenuHoritzontalAdaltAbaixTimer;

function MenuHoritzontalAdaltAbaix(idDiv) {
    this.Div = getObject(idDiv);
    this.Div.onmouseout = this.MenuOnMouseOut;

    this.InicialirzarContenidors(this.Div);
};

MenuHoritzontalAdaltAbaix.prototype.InicialirzarContenidors = function(oObjecte) {
    for (var i = 0; i < oObjecte.childNodes.length; i++) {
        if (oObjecte.childNodes[i].className == "emcontenidor" 
            || oObjecte.childNodes[i].className == "emcontenidortext"
            || oObjecte.childNodes[i].className == "emcontenidorimatge"
            || oObjecte.childNodes[i].className == "emcontenidorimatgetext") {
                //Objecte actual: contenidors
                if (typeof(oObjecte.contenidors) == "undefined") {
                    oObjecte.contenidors = new Array();
                }

                oObjecte.contenidors.push(oObjecte.childNodes[i]);
        }

        //Fill de l'element actual
        oFill = getChildObjectNoText(oObjecte.childNodes[i], 0);

        if (oFill) {
            oFill.onmouseover = this.ElementMenuOnMouseOver;
        }

        //Recursivitat
        if (oObjecte.childNodes[i].childNodes && oObjecte.childNodes[i].childNodes.length > 0) {
            this.InicialirzarContenidors(oObjecte.childNodes[i]);
        }
    }
};

MenuHoritzontalAdaltAbaix.prototype.ElementMenuOnMouseOver = function(e) {
    if (GW_MenuHoritzontalAdaltAbaixTimer) {
        clearTimeout(GW_MenuHoritzontalAdaltAbaixTimer);
    }

    oPare = this.parentNode.parentNode;

    if (oPare && oPare.contenidors && oPare.contenidors.length > 0) {
        for (var i = 0; i < oPare.contenidors.length; i++) {
            oTitol = getChildObjectNoText(oPare.contenidors[i], 0);
            oContingut = getChildObjectNoText(oPare.contenidors[i], 1);

            if (oContingut) {
                if (oTitol != this) {
                    GW_AmagarContingut(oContingut);
                } else {
                    oContingut.style.display = "block";
                }
            }
        }
    }
};

MenuHoritzontalAdaltAbaix.prototype.MenuOnMouseOut = function(e) {
    if (GW_MenuHoritzontalAdaltAbaixTimer) {
        clearTimeout(GW_MenuHoritzontalAdaltAbaixTimer);
    }

    GW_MenuHoritzontalAdaltAbaixTimer = setTimeout("GW_PlegarMenu('" + this.id + "');", 300);

};

MenuHoritzontalAdaltAbaix.prototype.MarcarElementsMenu = function(arrIds) {
    for (i = 0; i < arrIds.length; i++) {
        this.MarcarElementMenu(arrIds[i]);
    }    
};

MenuHoritzontalAdaltAbaix.prototype.MarcarElementMenu = function(sId) {
    oElement = getObject(sId);
    
    if (oElement) {
        oTitol = getChildObjectNoText(oElement, 0);
        
        if (oTitol.tagName == "A") {
            oTitol = getChildObjectNoText(oTitol, 0);
        }

        if (oTitol) {
            oTitol.className = oTitol.className + "marcat";
        }
    }

};

//Funcions utils
function GW_ExecutarAlLoadPagina(sFuncio) {
    attachObjEvent(this, "load", function() { eval(sFuncio); });
}

function GW_AmagarContingut(oContingut) {
    oContingut.style.display = "none";
    
    if (oContingut.contenidors && oContingut.contenidors.length > 0) {
        for (var i = 0; i < oContingut.contenidors.length; i++) {
            oContingutFill = getChildObjectNoText(oContingut.contenidors[i], 1);

            if (oContingutFill) {
                GW_AmagarContingut(oContingutFill);
            }
        }
    }
}

function GW_PlegarMenu(sIdMenu) {
    oMenu = getObject(sIdMenu);

    if (oMenu) {
        if (oMenu.contenidors) {
            for (var i = 0; i < oMenu.contenidors.length; i++) { 
                oContingut = getChildObjectNoText(oMenu.contenidors[i], 1); 
                
                if (oContingut) { 
                    GW_AmagarContingut(oContingut); 
                }
            }
        }
    }
}

//Privat
if (!document.all) { emulateEventHandlers(["click", "mousemove", "keypress", "keyup", "keydown", "mouseover", "mouseout", "mouseup", "mousedown", "focus", "resize"]); }
function emulateEventHandlers(eventNames) { for (var i = 0; i < eventNames.length; i++) { document.addEventListener(eventNames[i], function (e) {window.event = e;}, true); } }
function attachObjEvent(obj, sEvent, sFunction) { if (!document.all) { obj.addEventListener(sEvent, sFunction, false); } else { obj.attachEvent("on" + sEvent, sFunction); } }
function getObject(sId) { return document.getElementById(sId); }
function getChildObjectNoText(oObject, iIndex) { var iCont = 0; for (var i = 0; i < oObject.childNodes.length; i++) { if (oObject.childNodes[i].tagName != null) { if (iCont == iIndex) { return oObject.childNodes[i]; } else { iCont++; } } } return false; }
function checkObject(oObject) { if (oObject && (typeof(oObject) == "object")) { return true; } return false; }

