function pageInit(menuSelected) {
    menuInit(menuSelected);
    indexInit();
    //sectionsInit();

    pageOnResize();
}

function pageOnResize() {
    var width= 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        //Non-IE
        width = window.innerWidth;
    } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        //IE 6+ in 'standards compliant mode'
        width = document.documentElement.clientWidth;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        width = document.body.clientWidth;
    }
    var body= document.getElementsByTagName("BODY")[0];
    var med= (width - 850) / 2;
    if (med > 0) {
        body.style.marginLeft= med + "px";
        body.style.marginRight= med + "px";
    }
   

    menuOnResize();
}

function pageComputeTodayText(lang) {
    var months=new Array(13);
    if (lang == "cat") {
        months[1]="Gener";
        months[2]="Febrer";
        months[3]="Març";
        months[4]="Abril";
        months[5]="Maig";
        months[6]="Juny";
        months[7]="Julio";
        months[8]="Agost";
        months[9]="Setembre";
        months[10]="Octubre";
        months[11]="Novembre";
        months[12]="Desembre";
    } else {
        months[1]="Enero";
        months[2]="Febrero";
        months[3]="Marzo";
        months[4]="Abril";
        months[5]="Mayo";
        months[6]="Junio";
        months[7]="Julio";
        months[8]="Agosto";
        months[9]="Septiembre";
        months[10]="Octubre";
        months[11]="Noviembre";
        months[12]="Diciembre";
    }
    var time=new Date();
    var lmonth=months[time.getMonth() + 1];
    var date=time.getDate();
    var year=time.getYear();
    if (year < 2000)
    year = year + 1900;

    return date + " de " + lmonth + " de " + year;
}


function childElements(parent, path) {
    var i;
    var j;
    var k;

    if (parent == null) {
        return parent;
    }

    var split= path.split(">");
    var result= new Array();
    var previous;
    var children;
    var type;

    result.push(parent);
    for (i= 0; i < split.length; i++) {
        previous= result;
        result= new Array();
        type= split[i].toLowerCase();
        for (j= 0; j < previous.length; j++) {
            children= previous[j].childNodes;
            for (k= 0; k < children.length; k++) {
                if (children[k].nodeType == 1
                && children[k].nodeName.toLowerCase() == type) {
                    result.push(children[k]);
                }
            }
        }
    }

    return result;
}

function dumpElement(ele) {
    var x;
    for (x in ele) {
        document.write(": " + x + "=" + ele[x] + "<br />");
    }
}


var saveMenuResize= 0;
var saveMenuSelected;
var saveMenuCount;
var saveMenuWidth;
var saveMenuLeft;

function menuComputeElementNumber(element) {
    var menu= document.getElementById("menu");
    var lis= childElements(menu, "UL>LI");
    var li;
    var as;
    var a;
    var i, j;
    for (i= 0; i < lis.length; i++) {
        li = lis[i];
        if (li == element) {
            return i;
        }
        as= childElements(li, "A");
        for (j= 0; j < as.length; j++) {
            a= as[j];
            if (a == element) {
                return i;
            }
        }
    }
    alert('Unexpected element ' + element);
    return -1;
}

function menuComputeItemLeft(number) {
    return (saveMenuWidth * number
    + (10.0 / saveMenuCount) * number
    ) + "%";
}

function menuComputeItemNumber(number) {
    var menu= document.getElementById("menu");
    var lis= childElements(menu, "UL>LI");
    for (i= 0; i < lis.length; i++) {
        if (i == number) {
            return lis[i];
        }
    }
    alert('Unexpected element ' + element);
    return null;
}

function menuOnResize() {
    var menu= document.getElementById("menu");
    var lis= childElements(menu, "UL>LI");
    var li;
    var height;
    var i, max;

    max= 1;
    for (i= 0; i < lis.length; i++) {
        li= lis[i];
        height= li.offsetHeight * 1;
        max= max > height ? max : height;
    }
    menu.style.height= height + "px";
}

function menuInit(selected) {
    var i;

    var menu= document.getElementById("menu");
    if (menu == null) {
        return false;
    }
    
    var lis= childElements(menu, "UL>LI");
    var li;
    var as= childElements(menu, "UL>LI>A");
    var a;
    var divs= childElements(menu, "UL>LI>DIV");
    var div;

    menu.style.position= "relative";
    menu.style.paddingBottom= "4em";

    saveMenuCount= lis.length;
    saveMenuWidth= (100.0 - ((lis.length - 1) * (10.0 / lis.length))) / lis.length;

    for (i= 0; i < as.length; i++) {
        a = as[i];
        a.style.display= "block";
        a.style.paddingTop= "0.3em";
        a.style.paddingBottom= "0.2em";
		a.style.textAlign= "center";
        a.onmouseover= function () { return menuOver(this); };
        a.onmouseout= function () { return menuOut(this); };
    }

    for (i= 0; i < divs.length; i++) {
        div = divs[i];
        div.style.marginTop= "1em";
        div.style.textAlign= "center";
    }

    for (i= 0; i < lis.length; i++) {
        li = lis[i];
        li.style.position= "absolute";
        li.style.left= "0%";
        li.style.textAlign= "left";
        menuOut(li);
        if (i == selected) {
               menuOver(li);
               li.style.zIndex= 0;
        }
   }
   saveMenuSelected= selected;
   saveMenuResize= 1;

    return false;
}

function menuOver(element) {
    var i;
    var number= menuComputeElementNumber(element);
    if (number == saveMenuSelected) {
        return false;
    }

    var li= menuComputeItemNumber(number);
    var as= childElements(li, "A");
    var a;
    var divs= childElements(li, "DIV");
    var div;
    var color;

    li.style.left="0%";
    li.style.width= "100%";
    li.style.zIndex= 1;

    for (i= 0; i < as.length; i++) {
        a = as[i];
        a.style.marginLeft= menuComputeItemLeft(number);
        a.style.width= saveMenuWidth + "%";

        color= a.style.color;
        a.style.backgroundColor= color;
        a.style.color= "white";
    }

    for (i= 0; i < divs.length; i++) {
        div = divs[i];
        div.style.display= "block";
        div.style.color= color;
    }

    if (saveMenuSelected >= 0) {
        li= menuComputeItemNumber(saveMenuSelected);
        divs= childElements(li, "DIV");
        for (i= 0; i < divs.length; i++) {
            div = divs[i];
            div.style.display= "none";
        }

    }

    return false;
}

function menuOut(element) {
    var i;
    var number= menuComputeElementNumber(element);
    if (number == saveMenuSelected) {
        return false;
    }

    var li= menuComputeItemNumber(number);
    var as= childElements(li, "A");
    var a;
    var divs= childElements(li, "DIV");
    var div;
    var color;

    li.style.left= menuComputeItemLeft(number);
    li.style.width= saveMenuWidth + "%";
    li.style.zIndex= 2;

    for (i= 0; i < divs.length; i++) {
        div = divs[i];
        div.style.display= "none";

        color= div.style.color;
    }
    for (i= 0; i < as.length; i++) {
        a = as[i];
        a.style.marginLeft= "0%";
        a.style.width= "100%";

        if (color) {
            a.style.color= color;
            a.style.backgroundColor= "transparent";
        }
    }

    if (saveMenuSelected >= 0) {
        li= menuComputeItemNumber(saveMenuSelected);
        divs= childElements(li, "DIV");
        for (i= 0; i < divs.length; i++) {
            div = divs[i];
            div.style.display= "block";
        }

    }


    return false;
}

function indexComputeElementNumber(element) {
    var index= document.getElementById("index");
    var lis= childElements(index, "LI");
    var li;
    var as;
    var a;
    var i;
    for (i= 0; i < lis.length; i++) {
        li = lis[i];
        if (li == element) {
            return i;
        }
        as= childElements(li, "A");
        for (j= 0; j < as.length; j++) {
            a= as[j];
            if (a == element) {
                return i;
            }
        }
    }
    alert('Unexpected element ' + element);
    return -1;
}

function indexShowArrow(number) {
    var index= document.getElementById("index");
    var imgs= childElements(index, "LI>A>IMG");
    var img;
    var src;
    var len;
    var i;
    
    for (i= 0; i < imgs.length; i++) {
        img= imgs[i];
        src= img.src || "";
        len= src.length;
        if (src.slice(len - 4) == ".jpg") {
            src= src.slice(0, len - 4);
        }
        len= src.length;
        if (src.slice(len - 6) == "_fecha") {
            src= src.slice(0, len - 6);
        }
        if (i == number) {
            src= src + "_fecha";
        }
        src= src + ".jpg";
        img.src= src;
    }
}

function indexInit() {
    var i;
    var index= document.getElementById("index");
    if (index == null) {
        return false;
    }
    var as= childElements(index, "LI>A");
    var a;
    var spans= childElements(index, "LI>A>SPAN");
    var span;

    for (i= 0; i < as.length; i++) {
        a= as[i];
        a.onmouseover= function() { return indexOver(this); };
    }

    for (i= 0; i < spans.length; i++) {
        span= spans[i];
        span.style.display= "none";
    }

    indexOver(as[0]);


    return false;
}

function indexOver(a) {
    var number= indexComputeElementNumber(a);
    indexShowArrow(number);
    sectionShow(number);
}

function sectionShow(number) {
    var sections= document.getElementById("sections");
    var trs= childElements(sections, "TBODY>TR");
    var tr;
    var i;
    for (i= 0; i < trs.length; i++) {
        tr= trs[i];
        //dumpElement(tr.style);
        if (i == number) {
            tr.style.display= "";
        } else {
            tr.style.display= "none";
        }
    }
}
