var TAB_HEIGHT=23;Event.observe(window,"load",function(){var b=screen.width;if(b==800){b = 1024};if(b>800){var a=document.getElementsByClassName("outer");a[0].className="outer r"+b}});function __initMainMenu(){var a=$("menu")?$("menu").firstDescendant():null;var f=a?a.childElements():null;if(f){var c=f.length,e=0,d=screen.width;e=getTabsWidth(f,0,c);iniWidth=e;if(d==800) {d=1024};if((e)>d){f.splice((c-1),1);c=f.length;$("header").addClassName("mLines");a.addClassName("newList");if(isBrowser("safari")){a.addClassName("sf")}var k=d-22;if(isBrowser("msie 6")){k=d-25};if(isBrowser("msie 8")){k=d-24}var o=Math.floor((k*2)/3);var l=-1,p=c-1,g=f[0].offsetTop,i=f[0].offsetLeft,b=160;if((g<0)&&!isBrowser("safari")){g=0}if(isBrowser("msie")){i=0}for(var h=0,m=c;h<m;++h){f[h].addClassName("mn");if(h==0){continue}i+=f[h-1].offsetWidth;eachWidth=f[h].offsetWidth;if((i+eachWidth>k)||(l!=-1&&(i+eachWidth>k-b))){if(g>=TAB_HEIGHT){p=h-1}else{l=h-1}g+=TAB_HEIGHT;i=f[0].offsetLeft}f[h].setStyle({top:g+"px"});f[h].setStyle({left:i+"px"})}var q=f[p].offsetWidth+f[p].offsetLeft;if((q<o&&g<=TAB_HEIGHT)||(i+eachWidth>k-b&&g<TAB_HEIGHT)){l=Math.ceil((c-1)/2)}if(l!=-1){f[l].addClassName("last")}f[p].addClassName("last");if(p!=c-1){for(var h=p+1,m=c;h<m;++h){f[h].setStyle({visibility:"hidden"})}}var n=k-(f[l].offsetLeft+f[l].offsetWidth),r=k-(getTabsWidth(f,(l+1),(p+1)))-b;adjustTabs(f,0,l,n);adjustTabs(f,(l+1),p,r,2)}}}function getTabsWidth(a,b,c){var e=0;for(var d=b;d<c;d++){e+=a[d].offsetWidth}return e}function isBrowser(a){if(navigator.userAgent.toLowerCase().indexOf(a)>-1){return true}return false}function adjustTabs(f,h,a,g,j){var d=(j)?(f[0].offsetTop+TAB_HEIGHT):f[0].offsetTop;while(g>0){var c=g;for(var b=h,e=a;b<=e;++b){eachT=f[b];eachT.setStyle({width:(eachT.offsetWidth+1)+"px"});eachT.setStyle({top:d+"px"});c--;if(b==h){eachT.setStyle({left:"0"});continue}else{ancT=f[b-1];eachT.setStyle({left:(ancT.offsetLeft+ancT.offsetWidth)+"px"})}if(c<=0){break}}g=c}};

/* Classes ainda não linkadas */
new CrossBrowser()

/* ============================= Classes =========================== */

/* ====== Menu ====== */
Menu.inserirLista = function(ul)
{
	return jQuery('#menu')[0].appendChild(ul)
}

function Menu()
{
	// Atributos
	var largura, linhas = []
	
	// Atributos View
	var divMenu, ulMenu = []
	
	// Construtor
	function __Constructor()
	{
		// Atribuições
		divMenu = jQuery('#menu')[0]
		ulMenu = jQuery('ul', divMenu)[0]
		
		// Inserindo classe no outer
		jQuery('.outer').addClass('r' +screen.width)
		
		// Calculando e/ou Atribuindo Largura
		largura = window.getComputedStyle(divMenu, null).getPropertyValue('width')
		if(largura=='auto' || largura=='100%')
		{
			//largura = screen.width - 25
			largura = document.body.scrollWidth - 4
			//divMenu.style.width = largura + 'px'
		}
		else
		{
			largura = jQuery(divMenu).width()
		}
		
		// Identificando quantidade de Linhas
		linhas.push( new ListaItem(ulMenu) )
		var quantLinhas = Math.ceil(linhas[0].largura() / largura)
		var limites = linhas[0].largura() / quantLinhas
		
		// Dividindo Linhas
		for(var i=0; i<quantLinhas-1; i++)
		{
			linhas.push( linhas[i].quebrar(limites) )
		}

		this.harmonizarLarguras()
		this.finalizar()
	}
	
	this.harmonizarLarguras = function()
	{
		for(var i=0; i<linhas.length; i++)
		{
			linhas[i].setLarguraProporcional()	
		}
	}
	
	this.finalizar = function()
	{
		divMenu.className += ' menu-fluido'	
	}
	
	__Constructor.apply(this, arguments)
}

/* ========= ListaItem ======== */
function ListaItem()
{
	// Atributos
	var itens = []
	
	// Atributos View
	var ulMenu
	
	// Constructor
	function __Constructor(node)
	{
		// Atribuições
		ulMenu = node
		
		// Carregando Itens
		var li = jQuery('> li', node)
		for(var i=0; i<li.length; i++)
		{
			itens.push( new Item(li[i]) )
		}
		
		// Primeiro <li> tem classe .first
		li.eq(0).addClass('first')
	}
	
	// Métodos Públicos
	this.largura = function()
	{
		var largura = 0
		for(var i=0; i<itens.length; i++)
		{
			largura += itens[i].larguraTotal()	
		}
		return largura
	}
	
	this.quebrar = function(larguraLimite)
	{
		if(larguraLimite >= this.largura()) return
		
		// Identificando ultimo elemento da quebra
		var larguraAcumulada = 0
		for(var i=0; i<itens.length; i++)
		{
			larguraAcumulada += itens[i].larguraTotal()
			if(larguraAcumulada >= larguraLimite) break
		}
		
		// Quebrando
		var itensApartados = itens.slice(i)
		var ul = Menu.inserirLista(document.createElement('ul'))
		
		itens = itens.slice(0, i)
		for(var i=0; i<itensApartados.length; i++)
		{
			ul.appendChild(itensApartados[i].elementoHTML())
		}
		
		// Retornando a nova Lista
		return new ListaItem(ul)
	}
	
	this.setLarguraProporcional = function()
	{
		var larguras = []
		larguras.soma = 0
		for(var i=0; i<itens.length -1; i++)
		{ 
			larguras.push(100 * itens[i].larguraTotal() / this.largura())
			larguras.soma += larguras[i]
		}
		
		// Impedindo que ultrapasse 99.7%
		larguras.push( 99.7 - larguras.soma )
		
		// Setando Largura proporcional
		for(var i=0; i<itens.length; i++)
		{
			itens[i].largura( larguras[i] )
		}
	}
	
	__Constructor.apply(this, arguments)
}

/* ======== Item ======= */
function Item()
{
	// Atributos
	
	// Atributos View
	var li
	
	// Constructor
	function __Constructor(node)
	{
		li = node
	}
	
	// Métodos
	this.larguraTotal = function(vLargura)
	{
		if(vLargura==null) return jQuery(li).outerWidth()
	}
	
	this.largura = function(vLargura)
	{
		if(vLargura==null) return jQuery(li).width()
		li.style.width = vLargura + '%'
	}
	
	this.elementoHTML = function()
	{
		return li	
	}
	
	__Constructor.apply(this, arguments)
}

/********** Compatibilidade ***********/
function initMainMenu()
{
	if
	(
		idLoja() == '405' || idLoja() == '2380' || idLoja() == '3018' ||
		idLoja() == '2985' || idLoja() == '3024' || idLoja() == '3064' ||
		idLoja() == '3054' || idLoja() == '1748' || idLoja() == '3090' ||
		idLoja() == '3121' || idLoja() == '3182' || idLoja() == '3293' ||
		idLoja() == '3294' || idLoja() == '3246' || idLoja() == '2437' ||
		idLoja() == '2709' || idLoja() == '3342' || idLoja() == '2375' ||
		idLoja() == '3391' || idLoja() == '3409' || idLoja() == '3394' ||
		idLoja() == '3435' || idLoja() == '3438' || idLoja() == '3502' || 
		idLoja() == '3503' || idLoja() == '3504' || idLoja() == '3488' || 
		idLoja() == '3507' || idLoja() == '3529' || idLoja() == '3528' || 
		idLoja() == '3532' || idLoja() == '3527' || idLoja() == '3525' || 
		idLoja() == '3554' || idLoja() == '876'
	)
	{
		jQuery(function(){ new Menu() })
	}
	else
	{
		__initMainMenu()	
	}
}

function idLoja() {
    var links  = document.getElementsByTagName("link");
    if(links!=null) {
        for(i=0; i<links.length; i++) {
            if(links[i].href.match("global")) {
                lojaId = links[i].href.split("css/");
                return lojaId[1].substring( 0, lojaId[1].indexOf("/global") );
            }
        }
    } else return false;
}
/**********  **********/

function CrossBrowser()
{
	// Construtor
	function __Constructor()
	{
		this.getComputedStyle()	
	}
	
	// Métodos
	this.getComputedStyle = function()
	{
		if(!window.getComputedStyle && document.documentElement.currentStyle)
		{
			window.getComputedStyle = function(node)
			{
				return new ComputedStyle(node)
			}
			document.defaultView = {'getComputedStyle':window.getComputedStyle}
		}
	}
	
	this.arrayIndexOf = function()
	{
		if(!Array.indexOf)
		{
			Array.prototype.indexOf = function (obj, inicio)
			{
				for(var i = (inicio || 0); i < this.length; i++)
					if(this[i] == obj) return i;
				return -1
			}
		}	
	}
	
	// Classes
	function ComputedStyle()
	{
		var node
		
		// Constructor
		function __Constructor(elemento)
		{
			node = elemento
		}
		
		// Métodos Públicos
		this.getPropertyValue = function(propriedade)
		{
			var palavras = propriedade.split('-')
			propriedade = palavras[0]
			
			for(var i=1; i<palavras.length; i++)
			{
				var firstLetter = palavras[i].charAt(0).toUpperCase()
				propriedade += firstLetter + palavras[i].slice(1)
			}
			return node.currentStyle[propriedade]
		}
		
		__Constructor.apply(this, arguments)
	}
	
	__Constructor.apply(this, arguments)
}
