﻿function tabControlResizePaddingTab(tabControlNavBarName, tabContronPaddingName)
{
    var isIE = (navigator.appName.indexOf('Microsoft') != -1);
    var tabControlNavBar = document.getElementById(tabControlNavBarName);
    if (isIE)
    {        
        var tabControlNavBarSize = tabControlNavBar.offsetWidth;
        var tabsCurrentWidth = 0;
        for (var i = 0; i < tabControlNavBar.childNodes.length; i++)
        {
            if (tabControlNavBar.childNodes[i].className == 'tabPadding')
                continue;
            tabsCurrentWidth += tabControlNavBar.childNodes[i].offsetWidth;
        }

	    if (tabControlNavBarSize < 500)
	    {
	        tabControlNavBarSize = 500;
	    }
        
        if (tabControlNavBarSize > tabsCurrentWidth)   
        {         
            document.getElementById(tabContronPaddingName).style.width = tabControlNavBarSize - tabsCurrentWidth - 30 + 'px';
        }
    } 
    else 
    {
        var tabControlNavBarSize = tabControlNavBar.offsetWidth;
        var tabsCurrentWidth = 0;
        for (var i = 0; i < tabControlNavBar.childNodes.length; i++)
        {                
            if (tabControlNavBar.childNodes[i].className == 'tabPadding')
                continue;
                
            var valii = 0;
            try
            {
                var prop = document.defaultView.getComputedStyle(tabControlNavBar.childNodes[i], null).getPropertyValue('width');                    
                if (prop.indexOf('px') > 0)
                {
                    valii = parseInt(prop.substring(0, prop.length - 2));
                }
            }
            catch (e)
            {
            }                
            tabsCurrentWidth += valii;
        }	
        
        if (tabControlNavBarSize > tabsCurrentWidth)   
        {   
            document.getElementById(tabContronPaddingName).style.width = tabControlNavBarSize - tabsCurrentWidth - 3 + 'px';
        }
    }
}


function disableSelection(elementName) {
    var element = document.getElementById(elementName);
    element.onselectstart = function() {
        return false;
    };
    element.unselectable = "on";
    element.style.MozUserSelect = "none";
    element.style.cursor = "pointer";
}

function getTitleLeft(titleTab)
{
    if (!titleTab.hasChildNodes)        
        return null;
        
    for (var i = 0; i < titleTab.childNodes.length; i++)
    {
        if (titleTab.childNodes[i].className == 'tabControlTitleLeft' ||
            titleTab.childNodes[i].className == 'tabControlFocusedTitleLeft')
            return titleTab.childNodes[i];
    }
    
    return null;
}

function getTitleRight(titleTab)
{
    if (!titleTab.hasChildNodes)        
        return null;
        
    for (var i = 0; i < titleTab.childNodes.length; i++)
    {
        if (titleTab.childNodes[i].className == 'tabControlTitleRight' ||
            titleTab.childNodes[i].className == 'tabControlFocusedTitleRight')
            return titleTab.childNodes[i];
    }
    
    return null;
}
    
function tabControlChangeTab(titleTabName, contentTabName, clientId)
{
    var activeTitleTab = null;
    eval('activeTitleTab = ' + clientId + 'ActiveTitleTab;');
    var activeContentTab = null;
    eval('activeContentTab = ' + clientId + 'ActiveContentTab;');
    var titleTab = document.getElementById(titleTabName);
    var contentTab = document.getElementById(contentTabName);        
    if (titleTab != null && contentTab != null)
    {        
        // Si il existait une tab déjà sélectionnée alors on la repasse en style normal
        if (activeTitleTab != null && activeTitleTab != 'undefined')
        {
            activeTitleTab.className = 'tabControlTab';
        
            var titleLeft = getTitleLeft(activeTitleTab);
            if (titleLeft != null)
                titleLeft.className = 'tabControlTitleLeft';
                
            var titleRight = getTitleRight(activeTitleTab);
            if (titleRight != null)
                titleRight.className = 'tabControlTitleRight';     
        }
        
        if (activeContentTab != null)
        {
            activeContentTab.style.display = 'none';
        }
        
        // Changement du style pour la tab sélectionnée
        eval(clientId + 'ActiveTitleTab = titleTab;');
        eval(clientId + 'ActiveContentTab = contentTab;');
        titleLeft = getTitleLeft(titleTab);
        titleRight = getTitleRight(titleTab);
        titleTab.className = 'tabControlFocusedTab';
        titleLeft.className = 'tabControlFocusedTitleLeft';
        titleRight.className = 'tabControlFocusedTitleRight';
        contentTab.style.display = 'block';
    }
    
    setTimeout('tabControlResizeFloatingDiv("' + clientId + '")', 10);
}

function setNextDivWidth(parentName, anchorName, width)
{
    var parentDiv = document.getElementById(parentName);
    var divToModify = null;    
    for (var i = 0; i < parentDiv.childNodes.length; i++)
    {
        if (parentDiv.childNodes[i].id == anchorName)
        {            
            var cnt = i + 1;
            while (parentDiv.childNodes[cnt].tagName == null || parentDiv.childNodes[cnt].tagName == 'undefined')
            {
                cnt++;
            }
            divToModify = parentDiv.childNodes[cnt];
            break;
        }
    }
    
    if (divToModify != null)
    {
        divToModify.style.width = width;
    }
}

function setNextDivFloat(parentName, anchorName)
{
    var parentDiv = document.getElementById(parentName);
    var divToModify = null;
    for (var i = 0; i < parentDiv.childNodes.length; i++)
    {
        if (parentDiv.childNodes[i].id == anchorName)
        {
            var cnt = i + 1;
            while (parentDiv.childNodes[cnt].tagName == null || parentDiv.childNodes[cnt].tagName == 'undefined')
            {
                cnt++;
            }
            divToModify = parentDiv.childNodes[cnt];
            break;
        }
    }
    
    if (divToModify != null)
    {
        var isIE = (navigator.appName.indexOf('Microsoft') != -1);
        if (isIE)
        {
            divToModify.style['float'] = 'left';
        }
        else
        {
            divToModify.style.cssFloat = 'left';
        }        
    }
}

function tabControlResizeFloatingDiv(clientId)
{
    var isIE = (navigator.appName.indexOf('Microsoft') != -1);
    var divContainerOnglets = document.getElementById('divPositionnementTabControl');
    var divOnglets = null;
    var divOngletsName = '';
    eval('divOngletsName = ' + clientId + 'MainDivName;');
    eval('divOnglets = document.getElementById("' + divOngletsName + '");');
    var hauteur = 0;
    if (isIE)
    {
        divContainerOnglets.style.height = divOnglets.offsetHeight + 'px';
    }
    else
    {
        divContainerOnglets.style.height = document.defaultView.getComputedStyle(divOnglets, null).getPropertyValue('height');
    }
}