///////////////////////
//////  SETTINGS //////
///////////////////////
// Menu principal
var longueurMenu = 980;
var tailleMaxBulle = 158;
///////////////////////


/////////////////////////
///////// UTILS /////////
/////////////////////////
function getId(id){return document.getElementById(id);}
function getElementsByClassName( strClassName, obj, aryElements ) 
{	
    if (obj.className == strClassName)
        aryElements[aryElements.length] = obj;
    else if(obj.className)
    {
        // recherche d'une classe "composée"
        var tab = obj.className.split(' ');
        if(tab.length > 1)
        {
            for(var i = 0; i < tab.length; i++)
            {
                if (tab[i] == strClassName)
                aryElements[aryElements.length] = obj;
            }
        }
    }
    
    for ( var i = 0; i < obj.childNodes.length; i++ )
        getElementsByClassName( strClassName, obj.childNodes[i], aryElements);
    
    return aryElements;
}

/* BROWSER DETECTION */
var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

function checkIt(string)
{
    place = detect.indexOf(string) + 1;
    thestring = string;
    return place;
}

if (checkIt('konqueror')) {browser = "Konqueror";OS = "Linux";}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible'))
{
    browser = "Firefox"
    version = detect.charAt(8);
}
else browser = "An unknown browser";
if (!version) version = detect.charAt(place + thestring.length);
if (!OS)
{
    if (checkIt('linux')) OS = "Linux";
    else if (checkIt('x11')) OS = "Unix";
    else if (checkIt('mac')) OS = "Mac"
    else if (checkIt('win')) OS = "Windows"
    else OS = "an unknown operating system";
}
//////////////////////////


/////////////////////////////////////
//  FONCTION PROPRE AUX PAGES KIDS //
/////////////////////////////////////
/* Au chargement des pages Kids */
function loadInternalMenu(_idMenu)
{
    var menuCourant = getElement(_idMenu, true, "") ;
    if(menuCourant){
        menuCourant.id = "cadre-nav-over" ;
    }
    // Main menu
    //optimizeMenuSpace();
    //verticalAlignName();
    
    //if(browser == 'Internet Explorer')
    //fixIe();
}


// Optimisation de l'espace du menu principal
var aryClassElements = new Array();
var aryTxtElements = new Array();
function optimizeMenuSpace() 
{
    // Fix Firefox Mac. Le container du menu fait un px en moins
    if(browser == 'Firefox' && OS == 'Mac')
        longueurMenu -= 1;
    
    var longMenu = 0;
    var tabLongMenu = new Array();
    aryClassElements.length = 0;
    aryTxtElements.length = 0;
    
    getElementsByClassName( 'cadre-nav', document.body, aryClassElements);
    getElementsByClassName( 'txtBulle', document.body, aryTxtElements);
    for (var i = 0; i < aryClassElements.length; i++) 
    {
        tabLongMenu[i] = aryClassElements[i];
        
        if(aryClassElements[i].offsetWidth > tailleMaxBulle)
            aryClassElements[i].style.width = (tailleMaxBulle-18) + 'px';
        
        // On vérifie que la bulle ne s'étale pas sur 3 lignes, auquel cas on l'aggrandit jusqu'à atteindre 2 lignes
        while(aryTxtElements[i].offsetHeight > 40)
            aryClassElements[i].style.width = (parseInt(aryClassElements[i].style.width) + 1) + 'px';
        
        // On donne l'information au DOM des margin et padding
        if(i < aryClassElements.length - 1)
            aryClassElements[i].style.marginRight = "8px";
        else
            aryClassElements[i].style.marginRight = "0px";
        
        aryClassElements[i].style.paddingRight = "7px";
        aryClassElements[i].style.paddingLeft = "7px";
    }
    
    // Calcule de la taille des bulles
    longMenu = calculLongMenu(tabLongMenu, 8);
    
    // Margin resize
    while(longMenu < longueurMenu)
    {
        for(i = 0; i < aryClassElements.length-1; i++)
            aryClassElements[i].style.marginRight = (parseInt(aryClassElements[i].style.marginRight)+1) + 'px';
        
        longMenu = calculLongMenu(tabLongMenu, parseInt(aryClassElements[0].style.marginRight));
    }	
    while(longMenu > longueurMenu && parseInt(aryClassElements[0].style.marginRight) > 4)
    {
        for (i = 0; i < aryClassElements.length-1; i++)
            aryClassElements[i].style.marginRight = (parseInt(aryClassElements[i].style.marginRight)-1) + 'px';
    
        longMenu = calculLongMenu(tabLongMenu, parseInt(aryClassElements[0].style.marginRight));
    }
    
    // Padding resize	
    i=0;	
    while (longMenu < longueurMenu)
    {
        aryClassElements[i].style.paddingLeft = (parseInt(aryClassElements[i].style.paddingLeft)+1) + 'px';
        aryClassElements[i].style.paddingRight = (parseInt(aryClassElements[i].style.paddingRight)+1) + 'px';
        i++;
        i%=aryClassElements.length-1;
        longMenu = calculLongMenu(tabLongMenu, parseInt(aryClassElements[0].style.marginRight));
    }
    i=0;
    while (longMenu > longueurMenu && parseInt(aryClassElements[0].style.paddingLeft) > 3)
    {
        aryClassElements[i].style.paddingLeft = (parseInt(aryClassElements[i].style.paddingLeft)-1) + 'px';
        aryClassElements[i].style.paddingRight = (parseInt(aryClassElements[i].style.paddingRight)-1) + 'px';
        i++;
        i%=aryClassElements.length-1;
        longMenu = calculLongMenu(tabLongMenu, parseInt(aryClassElements[0].style.marginRight));
    }
}


function calculLongMenu(tab, margin)
{
    var longMenu = 0;
    
    for(var i = 0; i < tab.length; i++)
        longMenu += tab[i].offsetWidth;
    
    longMenu += margin*(tab.length-1);
    
    return longMenu;
}


// Centrage vertical des noms
function verticalAlignName()
{
    hauteurParent = 29;
    if(browser == "Internet Explorer")
        hauteurParent = 37; 
    
    aryClassElements.length = 0;
    aryClassElements = getElementsByClassName('txtBulle', document.body, aryClassElements);
    for (var i = 0; i < aryClassElements.length; i++)		
        aryClassElements[i].style.marginTop = ((hauteurParent-aryClassElements[i].offsetHeight)/2) + 'px';
}


function fixIe()
{
    // Image reduite pour la résolution 1024 afin d'éviter le scroll horizontal */
    if(screen.width <= 1024)
    {
    aryClassElements.length = 0;
        getElementsByClassName( 'bottom-colored', document.body, aryClassElements);
        if(aryClassElements.length > 0)
            src = 'images/assets/bg-bot-child-color-1024.gif';
        else
            src = 'images/assets/bg-bot-child-uncolor-1024.gif';
        
        getId('bg-children-bottom').style.backgroundImage = 'url(' + src + ')';
        getId('bg-children-bottom').style.width = '980px';
        getId('bg-children-bottom').style.height = '188px';
        getId('bg-children-bottom').style.right = '0px';
    }
}


function aligneBlockPuce(classPuce)
{
    longBlockPuce = 0;
    aryClassElements.length = 0;
    aryClassElements = getElementsByClassName(classPuce, document.body, aryClassElements);
    for (var i = 0; i < aryClassElements.length; i++)
        longBlockPuce += aryClassElements[i].offsetWidth + 4;
    
    aryClassElements[0].style.marginLeft = (163 - (longBlockPuce/2) + 2) + 'px';
}

/* Fonctionnalité LIRE PLUS pour développer les commentaires longs */
var mapTexteLong = new Map() ;

function lirePlus(containId, lirePlusId)
{
    var maxHeight = 300 ;
    var containObj = getElement(containId, true, "") ;
    if(containObj){
        var containHtml = containObj.innerHTML ;
        
        //on va rajouter le texte de base dans une map pour le montrer ensuite
        mapTexteLong.put(containId, containHtml) ;
            
        if(containHtml.length > 300){
            containHtml = containHtml.substring(0, maxHeight) + " ... " ;
            var linkLirePlusObj = getElement(lirePlusId, true, "") ;
            
            if(linkLirePlusObj){
                displayBloc(linkLirePlusObj) ;
            }
        }
        containObj.innerHTML = containHtml ;
    }
}


function developComm(containId, lirePlusId)
{    
    var containObj = getElement(containId, true, "") ;
    if(containObj){
        //on va rajouter le texte de base dans une map pour le montrer ensuite
        var containHtml = mapTexteLong.get(containId) ;
        
        if(containHtml){
            var linkLirePlusObj = getElement(lirePlusId, true, "") ;
            
            if(linkLirePlusObj){
                hideBloc(linkLirePlusObj) ;
            }
            
            containObj.innerHTML = containHtml ;
        }
    }
}

function trim(string)
{
    // Suppression espace debut
    while(string.substring(0,1) == ' ')
        string = string.substring(1);
    
    // suppression espace fin
    while(string.substring(string.length-1) == ' ')
        string = string.substring(0, string.length-1);
    
    return string;
}

function previousHTMLObject(elt)
{
    do elt = elt.previousSibling;
    while (elt && elt.nodeType != 1);
    return elt;
}
/////////////////////////////////////