// Google Page Tracker
try
{
	pageTracker = _gat._getTracker("UA-1782579-97");
	//pageTracker._trackPageview();
} catch(err) {  }



var tempo, sDiv;
var inDiv = new Array("subDpto", "txtCod", "regua_677", "txtCodVP", "txtPVPosto");
function initMenu(d){
    var c;
    var a;
    if (document.getElementById) {
        navRoot = $(d);
        if (d == "banner_regua") {
            var b = '<p id="regua_677"  style="display: none">';
            b += "Agora suas compras com o <strong>Cart&atilde;o Petrobras</strong> podem <strong>virar pr&ecirc;mios!</strong><br/><br/>";
            b += "Com o <strong>Programa de Recompensas Cart&atilde;o Petrobras</strong>, seus gastos revertem-se em pontos que podem ser trocados por pr&ecirc;mios do <strong>Cat&aacute;logo de Pr&ecirc;mios Cart&atilde;o Petrobras</strong>. <br/><br/>";
            b += 'O <strong>Cat&aacute;logo de Pr&ecirc;mios Cart&atilde;o Petrobras</strong> &eacute; uma vantagem exclusiva para os titulares do <strong>Cart&atilde;o Petrobras</strong>. Desenvolvido em parceria com a Comprafacil.com - uma empresa do grupo Hermes, que possui uma s&oacute;lida estrutura e vasta experi&ecirc;ncia no mercado de vendas por cat&aacute;logo e com&eacute;rcio eletr&ocirc;nico - o Cat&aacute;logo de Pr&ecirc;mios Cart&atilde;o Petrobras &eacute; como uma loja on-line, onde a &uacute;nica "moeda" aceita como pagamento s&atilde;o seus pontos do <strong>Programa de Recompensas Cart&atilde;o Petrobras</strong>.<br/><br/>';
            b += "Navegue pelas ofertas, fa&ccedil;a seu cadastro e aproveite as vantagens de ter escolhido o <strong>Cart&atilde;o Petrobras</strong>.";
            b += "</p>";
            navRoot.innerHTML = b
        }
        if (d == "showAll") {
            navRoot.onmouseover = function(){
                if (a != undefined) {
                    clearTimeout(a)
                }
                c = setTimeout('mostraMenu("' + this.id + '")', 200)
            }
        }
        if (d == "showCod" || d == "banner_regua" || d == "showVP" || d == "showPVPosto") {
            navRoot.onclick = function(){
                if (a != undefined) {
                    clearTimeout(a)
                }
                c = setTimeout('mostraMenu("' + this.id + '")', 200)
            }
        }
        navRoot.onmouseout = function(){
            if (c != undefined) {
                clearTimeout(c)
            }
            a = setTimeout('escondeMenu("' + this.id + '")', 400)
        }
    }
}

function mostraMenu(a){
    escolheDiv(a);
    try {
        if (!Element.visible(sDiv)) {
            new Effect.BlindDown(sDiv, {
                duration: 0.3,
                queue: {
                    position: "end",
                    scope: "menu",
                    limit: 10
                }
            })
        }
    } 
    catch (b) {
        $(sDiv).display = ""
    }
}

function escondeMenu(b){
    escolheDiv(b);
    try {
        new Effect.Fade(sDiv, {
            duration: 0.5,
            queue: {
                position: "end",
                scope: "menu",
                limit: 10
            }
        })
    } 
    catch (a) {
        $(sDiv).display = "none"
    }
}

function escolheDiv(b){
    if (b == "showAll") {
        sDiv = inDiv[0]
    }
    if (b == "showCod") {
        sDiv = inDiv[1]
    }
    if (b == "banner_regua") {
        sDiv = inDiv[2]
    }
    if (b == "showVP") {
        sDiv = inDiv[3]
    }
    if (b == "showPVPosto") {
        sDiv = inDiv[4]
    }
}

function over(a){
    window.clearTimeout(tempo);
    a.onmouseout = function(){
        tempo = window.setTimeout(escondeMenu, 1000)
    }
}

var minhaContaID = "logado";
var minhaContaDisplay = "optCta";
var showTimerMinhaConta;
var hideTimerMinhaConta;
function initMinhaConta(){
    if (document.getElementById) {
        navRoot = $(minhaContaID);
        navRoot.onmouseover = function(){
            if (hideTimerMinhaConta != undefined) {
                clearTimeout(hideTimerMinhaConta)
            }
            showTimerMinhaConta = setTimeout("mostraMinhaConta()", 100)
        };
        navRoot.onmouseout = function(){
            if (showTimerMinhaConta != undefined) {
                clearTimeout(showTimerMinhaConta)
            }
            hideTimerMinhaConta = setTimeout("escondeMinhaConta()", 400)
        }
    }
}

function mostraMinhaConta(){
    try {
        if (!Element.visible(minhaContaDisplay)) {
            new Effect.Appear(minhaContaDisplay, {
                duration: 0,
                from: 0,
                to: 1
            })
        }
    } 
    catch (a) {
        $(minhaContaDisplay).display = "block"
    }
}

function escondeMinhaConta(){
    try {
        if (Element.visible(minhaContaDisplay)) {
            new Effect.Fade(minhaContaDisplay, {
                duration: 0,
                queue: {
                    position: "end",
                    scope: "menu",
                    limit: 10
                }
            })
        }
    } 
    catch (a) {
        $(minhaContaDisplay).display = "none"
    }
};

function setValorOriginalBusca(){
    $("buscaInpt").value = "Busque no Site"
}

/* Footer */
function setValorOriginalBuscaFooter(){
    $("buscaInptFooter").value = "Busque no Site"
}

function inptValue(){
    setValorOriginalBusca();
    var b = $("buscaInpt").value;
    var a = $("buscaInpt");
    Event.observe("buscaInpt", "click", function(c){
        a.value = ""
    });
    Event.observe("buscaInpt", "blur", function(c){
        if ($("buscaInpt").value == "") {
            $("buscaInpt").value = b
        }
        else {
            setTimeout("setValorOriginalBusca()", 5000)
        }
    });
    Event.observe("botaoBusca", "click", function(c){
        if ($("buscaInpt").value == "Busque no Site") {
            $("buscaInpt").value = ""
        }
    })
};

/* Footer */
function inptValueFooter(){
	if(!window.Prototype) return
    setValorOriginalBuscaFooter();
    var b = $("buscaInptFooter").value;
    var a = $("buscaInptFooter");
    Event.observe("buscaInptFooter", "click", function(c){
        a.value = ""
    });
    Event.observe("buscaInptFooter", "blur", function(c){
        if ($("buscaInptFooter").value == "") {
            $("buscaInptFooter").value = b
        }
        else {
            setTimeout("setValorOriginalBuscaFooter()", 5000)
        }
    });
    Event.observe("botaoBuscaFooter", "click", function(c){
        if ($("buscaInptFooter").value == "Busque no Site") {
            $("buscaInptFooter").value = ""
        }
    })
};

// historico de navegacao =================================================================
if(Event && Event.observe)
Event.observe(window, 'load', iniciarCarousel),
Event.observe(window, 'load', gambiarraBusca)


function iniciarCarousel()
{
	var historico = $$('#histNavegacao')
	if(!historico.length) return
	
	
	var lista = $$('#ultimosVistos ul.ofertas')[0]
	var itens = $$('#ultimosVistos ul.ofertas li')
	var avancar = $$('#ultimosVistos .avancar span')[0]
	var voltar = $$('#ultimosVistos .voltar span')[0]
	
	// Setando Status Inicial dos botões
	$(avancar).addClassName("disabled")
	$(voltar).addClassName("disabled")
	
	// Setando Hover dos botões
	Event.observe(avancar, 'mouseover', function(e){
		if( !$(avancar).hasClassName('disabled') )
			$(avancar).addClassName('hover')
	})
	Event.observe(avancar, 'mouseout', function(e){$(avancar).removeClassName('hover')})
	Event.observe(voltar, 'mouseover', function(e){
		if( !$(voltar).hasClassName('disabled') )
			$(voltar).addClassName('hover')
	})
	Event.observe(voltar, 'mouseout', function(e){ $(voltar).removeClassName('hover') })
	
	// Se não houver itens para scroll
	if(itens.length<=3) return
	
	// Ativando botão direito
	$(avancar).removeClassName("disabled")
	
	var top = 0, left = 0
	for(var i=0; i<itens.length; i++){
		itens[i].style.left = left + "px"
		itens[i].style.top = top + "px"
		top -= itens[i].offsetHeight
		left += itens[i].offsetWidth
	}
	
	var largura = lista.offsetWidth
	var maxScroll = lista.scrollWidth - lista.offsetWidth
	lista.scrollLeft = 0
	
	// Eventos em execução
	avancar_click = voltar_click = false
	
	Event.observe(avancar, 'click', function(e) {
		if(avancar_click) return; else avancar_click = true
		
		var scrollLeft = lista.scrollLeft
		
		if(largura + scrollLeft >= maxScroll)
		{
			rolar(maxScroll)
			$(avancar).addClassName("disabled")
		}
		else rolar(scrollLeft + largura)
		$(voltar).removeClassName("disabled")
		//e.stop()
	})
	
	Event.observe(voltar, 'click', function(e) {
		if(voltar_click) return; else voltar_click = true
											
		var scrollLeft = lista.scrollLeft
		
		if(scrollLeft - largura <= 0)
		{
			rolar(0)
			$(voltar).addClassName("disabled")
		}
		else rolar(scrollLeft - largura)
		$(avancar).removeClassName("disabled")
		//e.stop()
	})
	
	function rolar(posicao)
	{
		var newPosicao
		if(posicao > lista.scrollLeft){
			
			newPosicao = lista.scrollLeft + 50
			lista.scrollLeft = newPosicao>posicao? posicao: newPosicao
			if(lista.scrollLeft<posicao) continuar()
			else avancar_click = voltar_click = false
			
		} else if(posicao < lista.scrollLeft) {
			
			newPosicao = lista.scrollLeft - 50
			lista.scrollLeft = newPosicao<posicao? posicao: newPosicao
			if(lista.scrollLeft>posicao) continuar()
			else avancar_click = voltar_click = false
			
		}
		
		 
		function continuar(){ setTimeout(function(){ rolar(posicao) }, 50) }
	}
	
	// Limitando caracteres na descrição dos produtos
	var descricoes = $$('#ultimosVistos .ofertas li dl dt a')
	if(!descricoes.length) return
	for(var i=0; i<descricoes.length; i++)
	{
		var mensagem = descricoes[i].innerHTML.split(' ')
		while(descricoes[i].offsetHeight > 42)
		{
			mensagem.pop()
			descricoes[i].innerHTML = mensagem.join(' ') + ' <span class="mais">[...]</span>'
		}
	}
}

// Gambiarra temporária para Busca
function gambiarraBusca()
{
	try {
		var li = $$('#ultimasBuscas ul li')
		var primeiro = li[0]
		var ultimo = li[li.length-1]
		
		$(primeiro).addClassName('primeiro')
		$(ultimo).addClassName('ultimo')
	} catch(e){}
}

function perguntasFrequentes()
{
	accordion('.perguntas_frequentes')	
}

function assistenciaTecnica()
{
	accordion('.assistenciaTecnica')
}


function accordion(elemento){
	var itens = $$(elemento + ' .divTabArea > ul > li')
	//var respostas = $$('#perguntas_frequentes div.divTabArea ul li div.resposta')
	
	for(var i=0; i<itens.length; i++){
		//var ancora = itens[i].select('a')[0]
		//var resposta = itens[i].select('.resposta')[0]
		Event.observe(itens[i].select('a')[0], 'click', ancorasClick)
		itens[i].select('.resposta')[0].style.display = 'none'
	}
	
	function ancorasClick(e){
		var listaLi = $$(elemento + ' .divTabArea ul li')
		var li = this.parentNode
		var isON = $(li).hasClassName('on')
		
		// Zerando classe ON
		for(var i=0; i<listaLi.length; i++){
			if( listaLi[i].hasClassName('on') ){
				resposta(listaLi[i]).slideUp({'duration':0.4})
				$(listaLi[i]).removeClassName("on")
			}
		}	
		
		if(!isON){
			resposta(li).slideDown({'duration':0.4})
			$(li).addClassName("on")
		} else {
			resposta(li).slideUp({'duration':0.4})
			$(li).removeClassName("on")
		}
		
		
		function resposta(li)
		{ return $($(li).select('.resposta')[0]) }
	}
}



/* ==================================== Promoção Copa do Mundo ======================================= */
if(Event && Event.observe)
Event.observe(window, 'load', function(){ new PromoCopa() })

function PromoCopa()
{
	if( !$(document.body).hasClassName('promocopa') ) return
	var promocopa = this
	var grupos = [], campoNome, campoEmail
	var paises, regulamento = '', twitter
	
	function __Construtor()
	{
		// Buscando os dados no XML
		carregar()
		
		// Implementando Status no Nome e no Email
		var principal = $$('.promocopa #pgCadCopa .principal')[0]
		//if( $(principal).select('.nome, .email').length )
		if(principal)
			implementarStatus(principal, '.nome'),
			implementarStatus(principal, '.email')
		
		// Validando Nome e Email
		campoNome = $$('.promocopa #pgCadCopa .principal .nome input')[0]
		if(campoNome) Event.observe(campoNome, 'blur', validarNome)
		campoEmail = $$('.promocopa #pgCadCopa .principal .email input')[0]
		if(campoEmail) Event.observe(campoEmail, 'blur', validarEmail)
		
		// Validando Grupos
		var li = $$('.promocopa #pgCadCopa .principal .question > ul > li')
		if($(li[0]).select('select').length)
		for(var i=0; i<li.length; i++) grupos.push( new Grupo(li[i]) )
		
		// Regulamento
		var ancoraRegulamento = $$('.promocopa #pgCadCopa .regulamento h4 a')[0]
		var regulamentoRodape = $$('#bolao_rodape li.regulamento a')[0]
		if(ancoraRegulamento) Event.observe(ancoraRegulamento, 'click', abrirRegulamento)
		if(regulamentoRodape) Event.observe(regulamentoRodape, 'click', abrirRegulamento)
		
		// Indique Email
		var ancoraIndiqueEmail = $$('.promocopa #pgCadCopa .regulamento .indique li.email a')[0]
		if(ancoraIndiqueEmail)
		{
			Event.observe(ancoraIndiqueEmail, 'click', abrirIndiqueEmail)
			
			// Implementando Status no Nome e no Email do Indique
			var pai = $$('.promocopa .indiqueEmail')[0]
			//if( $(pai).select('.nome, .email').length )
			if(pai)
				implementarStatus(pai, '.nome'),
				implementarStatus(pai, '.email')
			
			// Validando Nome e Email do Indique
			var indiqueCampoNome = $$('.promocopa .indiqueEmail .nome input')
			for(var i=0; i<indiqueCampoNome.length; i++)
				Event.observe(indiqueCampoNome[i], 'blur', validarNome)
			var indiqueCampoEmail = $$('.promocopa .indiqueEmail .email input')
			for(var i=0; i<indiqueCampoEmail.length; i++)
				Event.observe(indiqueCampoEmail[i], 'blur', validarEmail)
				
			var btIndicar = $$('.promocopa .indiqueEmail .controle .ok')[0]
			if(btIndicar) Event.observe(btIndicar, 'click', validacaoIndique)
		}
		
		// Indique Twitter
		/*var ancoraIndiqueTwitter = $$('.promocopa #pgCadCopa .regulamento .indique li.twitter a')[0]
		if(ancoraIndiqueTwitter)
		{
			var mensagem = "Participe do Bolão Comprafacil.com e ganhe até 16% de desconto e uma mini bola oficial do mundial. Dê o seu Palpite: http://bit.ly/9npThB"
			var url = 'http://twitter.com/?status=' + encodeURI(mensagem)
			ancoraIndiqueTwitter.setAttribute('target', '_blank')
			ancoraIndiqueTwitter.setAttribute('href', url)
		}*/
		
		// Validação Total
		var btPalpite = $$('.promocopa #pgCadCopa .principal .controle .confirmar p a')[0]
		if(btPalpite)
		{
			btPalpite._onclick = btPalpite.onclick
			btPalpite.onclick = null
			Event.observe(btPalpite, 'click', validacao)
		}
	}
	
	// Métodos Públicos
	this.enviarDados = function()
	{
		var btPalpite = $$('.promocopa #pgCadCopa .principal .controle .confirmar p a')[0]
		btPalpite._onclick()
	}
	
	// Métodos Privados
	function carregar()
	{
		var xml = carregarXML('/js/xml/bolao.xml')
		lightboxRegulamento = $$('.promocopa .boxRegulamento')[0]
		ancoraTwitter = $$('.promocopa #pgCadCopa .regulamento .indique li.twitter a')[0]
		
		// Regulamento
		var xmlRegulamento = xml.getElementsByTagName('regulamento')[0].childNodes
		for(var i=0; i<xmlRegulamento.length; i++)
			regulamento += new XMLSerializer().serializeToString(xmlRegulamento[i])
		lightboxRegulamento.innerHTML = regulamento
		
		// Países
		/*var combobox = $$('.grupoA select')
		var paises = xml.getElementsByTagName('pais')
		if(combobox)
		for(var j=0; j<combobox.length; j++)
		{
			for(var i=0; i<paises.length; i++)
			{
				var option = document.createElement('option')
					option.value = option.innerHTML = paises[i].firstChild.data
				combobox[j].appendChild(option)
			}
		}*/
		
		// Twitter
		var mensagem = xml.getElementsByTagName('twitter')[0].firstChild.data
		var url = 'http://twitter.com/?status=' + encodeURI(mensagem)
		ancoraTwitter.setAttribute('target', '_blank')
		ancoraTwitter.setAttribute('href', url)
		
	}
	
	function implementarStatus(pai, str)
	{
		var elementos = $(pai).select(str)
		for(var i=0; i<elementos.length; i++)
		{
			var span = document.createElement('span')
				$(span).addClassName('status')
			elementos[i].appendChild(span)
		}
	}
	
	function campoStatus(campo, valido)
	{
		var pai = $(campo.parentNode)
		if(valido)
			$(pai).addClassName('validacao_ok'),
			$(pai).removeClassName('validacao_falhou')
		else
			$(pai).addClassName('validacao_falhou'),
			$(pai).removeClassName('validacao_ok')
	}
	
	// Eventos
	function abrirRegulamento(e) // Regulamento Click
	{
		var regulamento = new Lightbox( $$('.promocopa .boxRegulamento')[0] )
			$(regulamento.node()).select('.ok')[0].onclick = regulamento.fechar
			regulamento.abrir()
		e.stop()
	}
	
	function validacao(e)
	{
		var erros = []
		var nome = validarNome.call(campoNome)
		if(!nome.valido) erros.push('Nome Inválido!')
		var email = validarEmail.call(campoEmail)
		if(!email.valido()) erros.push('Email inválido!')
		
		for(var i=0; i<grupos.length; i++)
		{
			if(!grupos[i].validado())
				erros.push('Escolha 2 países Finalistas '/* + grupos[i].letra()*/)
		}
		
		if(erros.length)
		{
			var boxErro = new Lightbox( $$('.promocopa .erro')[0] )
			$(boxErro.node()).select('.ok')[0].onclick = boxErro.fechar
			
			var antigoUL = $$('.promocopa .boxModal .body ul')[0]
			var ul = document.createElement('ul')
			antigoUL.parentNode.replaceChild(ul, antigoUL)

			for(var i=0; i<erros.length; i++)
				ul.appendChild(document.createElement('li')).innerHTML = erros[i]
				
			boxErro.abrir()
		}
		else promocopa.enviarDados()
		
		if(e && e.stop) e.stop()
	}
	
	function validacaoIndique(e)
	{
		var erros = []
		var campoSeuNome = $$('.promocopa .indiqueEmail .suasInfo div.nome input')[0]
		var campoSeuEmail = $$('.promocopa .indiqueEmail .suasInfo div.email input')[0]
		var campoDestNome = $$('.promocopa .indiqueEmail .destInfo div.nome input')[0]		    
		var campoDestEmail = $$('.promocopa .indiqueEmail .destInfo div.email input')[0]
		
		var seuNome = validarNome.call(campoSeuNome)
		if(!seuNome.valido) erros.push('Seu Nome Inválido!')
		
		var seuEmail = validarEmail.call(campoSeuEmail)
		if(!seuEmail.valido()) erros.push('Seu Email inválido!')
		
		var destNome = validarNome.call(campoDestNome)
		if(!destNome.valido) erros.push('Nome do Destinatário Inválido!')
		
		var destEmail = validarEmail.call(campoDestEmail)
		if(!destEmail.valido()) erros.push('Email do Destinatário inválido!')
		
		if(erros.length)
		{
			var boxErro = new Lightbox( $$('.promocopa .erro')[0] )
			$(boxErro.node()).select('.ok')[0].onclick = boxErro.fechar
			
			var antigoUL = $$('.promocopa .boxModal .body ul')[0]
			var ul = document.createElement('ul')
			antigoUL.parentNode.replaceChild(ul, antigoUL)

			for(var i=0; i<erros.length; i++)
				ul.appendChild(document.createElement('li')).innerHTML = erros[i]
				
			boxErro.abrir()
		}
		//else promocopa.enviarDados()
		
		if(e && e.stop) e.stop()
	}
	
	function validarNome(e) // Nome Blur
	{
		var status = $(this.parentNode).select('.status')[0]
		var nome = trim(this.value), valido = false
		if(!nome.length)
			status.innerHTML = 'Digite o Nome!'
		else if(nome.indexOf(' ')==-1)
			status.innerHTML = 'O Nome precisa estar Completo!'
		else valido = true
		campoStatus(this, valido)
		
		return {'valido':valido, 'mensagem':status.innerHTML}
	}
	
	function validarEmail(e) // Email Blur
	{
		var email = new Email(this.value)
		var status = $(this.parentNode).select('.status')[0]
		if(!email.valido()) status.innerHTML = email.mensagem()
		campoStatus(this, email.valido())
		
		return email
	}
	
	function abrirIndiqueEmail(e) // Indique Email Click
	{
		var div = $$('.promocopa .indiqueEmail')[0]
		var validacoes = div.select('.validacao_ok, .validacao_falhou')
		for(var i=0; i<validacoes.length; i++)
			validacoes[i].removeClassName('validacao_ok'),
			validacoes[i].removeClassName('validacao_falhou')
		var campos = div.select('input[type=text]')
		for(var i=0; i<campos.length; i++) campos[i].value = ''
		
		var indiqueEmail = new Lightbox( $$('.promocopa .indiqueEmail')[0] )
			//$(regulamento.node()).select('.ok')[0].onclick = regulamento.fechar
			indiqueEmail.abrir()
		e.stop()
	}
	
	__Construtor.apply(this, arguments)
}

function Grupo()
{
	// Atributos
	var letra, paises = [], listas = [], escolhidos = []
	
	// Construtor
	function __Construtor(node)
	{
		// Pegando Letra
		var classe = node.className
		letra = classe.charAt(classe.indexOf('grupo')+5)
		
		// Pegando Listas
		var nodeSelect = $(node).select('select'), i=0
		while(nodeSelect.length)
		{
			listas.push( new Lista(nodeSelect.shift(), i) )
			adicionarListener(i++)
		}
		
		// Pegando os Escolhidos
		if( listas[0].value() ) listaAlterada.call(listas[0])
		if( listas[1].value() ) listaAlterada.call(listas[1])
		
		// Cadastrando Eventos
	}
	
	// Métodos
	this.letra = function(){ return letra }
	this.validado = function()
	{
		return listas[0].value() && listas[1].value()
	}
	
	// Métodos Privados
	function adicionarListener(i)
	{
		Event.observe(listas[i].node(), 'change', function(){
			listaAlterada.apply(listas[i], arguments)
		})
	}
	
	// Eventos
	function listaAlterada()
	{
		this.escolher( this.node().selectedIndex )
	}
	
	// Classes
	function Lista()
	{
		var node, indiceLista, opcaoEscolhida, indiceOpcao
		
		// Construtor
		function __Construtor(vNode, vIndice)
		{
			node = vNode
			indiceLista = vIndice
		}
		
		// Métodos
		this.node = function(){ return node }
		this.outraLista = function(){ return listas[1 - indiceLista] }
		this.indice = function(){ return indiceLista }
		this.value = function(){ return node.value }
		this.opcaoEscolhida = function(){ return opcaoEscolhida }
		this.escolher = function(indice)
		{
			this.reiniciar()
			
			if(indice==0) return opcaoEscolhida = null
			opcaoEscolhida = this.outraLista().pegarOption(this.node().value)
			indiceOpcao = opcaoEscolhida.index
			opcaoEscolhida.parentNode.removeChild(opcaoEscolhida)
		}
		this.reiniciar = function()
		{
			if(opcaoEscolhida)
			{
				optionAnterior = this.outraLista().node().options[indiceOpcao]
				this.outraLista().node().insertBefore(this.opcaoEscolhida(), optionAnterior)
			}
		}
		this.pegarOption = function(value)
		{
			opts = this.node().options
			for(var i=0; i<opts.length; i++)
			{
				if( opts[i].value == value ) return opts[i]	
			}
			return null
		}
		
		__Construtor.apply(this, arguments)
	}
	
	__Construtor.apply(this, arguments)
}

Lightbox.niveis = []
function Lightbox()
{
	var node, fechar, lock
	
	// Construtor
	function __Construtor(vNode)
	{
		node = vNode
		lock = $$('.promocopa .lockPagina')[0]
		fechar = node.select('.controle a.fechar')
		if(fechar.length) fechar[0].onclick = this.fechar
	}
	
	// Métodos
	this.abrir = function(e)
	{
		var i = Lightbox.niveis.push(this)
		node.style.display = lock.style.display = 'block'
		node.style.zIndex = (9990 + i*2)
		lock.style.zIndex = (9990 + i*2 - 1)
		lock.onclick = this.fechar
		if( navigator.userAgent.toLowerCase().indexOf('msie 6')!=-1 )
		{
			lock.style.height = document.body.clientHeight + 'px'
			var nodeSelect = $$('select')
			for(var i=0; i<nodeSelect.length; i++) nodeSelect[i].style.visibility="hidden"
			window.scrollTo(0)
		}
		if(e && e.stop) e.stop()
	}
	
	this.fechar = function(e)
	{
		var niveis = Lightbox.niveis
		var anterior = niveis.pop()
		node.style.display = 'none'
		if(!niveis.length)
		{
			lock.style.display = 'none',
			lock.style.zIndex = ''
			
			if( navigator.userAgent.toLowerCase().indexOf('msie 6')!=-1 )
			{
				lock.style.height = ''
				var nodeSelect = $$('select')
				for(var i=0; i<nodeSelect.length; i++) nodeSelect[i].style.visibility=""
			}
		}
		else
		{
			lock.style.zIndex = (9990 + niveis.length*2 - 1)
			lock.onclick = niveis[niveis.length-1].fechar
		}
			
		if(e && e.stop) e.stop()
	}
	
	this.node = function(){ return node }
	
	__Construtor.apply(this, arguments)
}

Email.caracteresEspeciais = '.-_@'
function Email(vEmail)
{
	var email = this
	
	// Atributos
	var valido, mensagem
	
	// Constructor
	function __Constructor(vEmail)
	{
		var validacao = validarCaracteres.apply(this, arguments)
		vEmail = trim(vEmail)
		
		if(!validacao.sucesso)
			mensagem = 'Caracter "' + vEmail.charAt(validacao.caracter) + '" inválido'
		else if(!vEmail.length)
			mensagem = 'Digite o E-mail!'
		else if( procura(' ')!=-1 )
			mensagem = 'O E-mail não pode ter espaços!'
		else if( procura('@')==-1 )
			mensagem = 'O E-mail precisa ter o caracter "@"'
		else if( procura('@') != vEmail.lastIndexOf('@') )
			mensagem = 'O E-mail só pode ter um caracter "@"'
		else if( vEmail.lastIndexOf('.') < procura('@') )
			mensagem = 'É necessário que o caracter "." se encontre depois do caracter "@"'
		else if( procura('.@')!=-1 || procura('@.')!=-1 )
			mensagem = 'O E-mail não pode ter o caracter "." junto ao caracter "@"'
		else if( procura('@')<2 )
			mensagem = 'O "@" não pode ser o primeiro ou segundo caracter no email'
		else if( procura('.')==0 || vEmail.lastIndexOf('.')==vEmail.length-1 )
			mensagem = 'Não é permitido que o primeiro ou último caracter seja o "."'
		else if( procura('..', procura('@'))!=-1 )
			mensagem = 'Caracteres ".." inválidos!'
		else valido = true, mensagem = "Email válido!"
	}
	
	// Métodos Públicos
	this.mensagem = function(){ return mensagem }
	this.valido = function(){ return valido }
	
	// Métodos Privados
	function procura(str, index){ return vEmail.indexOf(str, index || 0) }
	function validarCaracteres(vEmail)
	{
		var especiais = Email.caracteresEspeciais
		for(var i=0; i<vEmail.length; i++)
		{
			var caracter = new Caracter(vEmail.charAt(i))
			
			// Verificando caracter
			if( !caracter.ehAlfaNumerico() && !caracter.eh(Email.caracteresEspeciais) )
				return {'sucesso':false, 'caracter':i}
		}
		return {'sucesso':true}
	}
	__Constructor.apply(this, arguments)
}

function Caracter(vCaracter)
{
	var caracter = this
	
	// Atributos
	var ehNumerico = false, ehLetra = false
	
	// Construtor
	function __Constructor(vCaracter)
	{
		var codigo = vCaracter.charCodeAt(0)
		if(codigo>=48 && codigo<=57) ehNumerico = true
		if((codigo>=97 && codigo<=122) ||
		   (codigo>=65 && codigo<=90)) ehLetra = true
	}
	
	// Métodos
	this.ehNumerico = function(){ return ehNumerico }
	this.ehLetra = function(){ return ehLetra }
	this.ehAlfaNumerico = function(){ return ehNumerico || ehLetra }
	this.eh = function(caracteres){ return caracteres.indexOf(vCaracter)!=-1 }
	
	__Constructor.apply(this, arguments)
}

CSS = {}
CSS.propriedade = function(elemento, propriedade)
{
	if( window.getComputedStyle )
		return window.getComputedStyle(elemento, null)[propriedade];
	else if( elemento.currentStyle )
		return elemento.currentStyle[propriedade]
	return null
	
}

function trim(str)
{
	while(str.charAt(0)==' ') str = str.slice(1)
	while(str.charAt(str.length-1)==' ') str = str.slice(0, str.length-1)
	return str
}


/* ================================ Loja =============================== */
function Pagina()
{
	var loja, id, classe
	var dominio = {'DESCONHECIDO':-1, 'DEVJAVA':0, 'PRODUCAO':1, 'HML':2}
	var contexto = {'DESCONHECIDO':-1, 'COMPRAFACIL':0, 'BANCO_DO_BRASIL':1, 'IPIRANGASHOP':2}
	
	// Construtor
	function __Constructor()
	{
		// Coletando informações da Página
		loja = pegarLoja()
		id = document.body.getAttribute('id')
		classe = document.body.getAttribute('class')
	}
	
	// Métodos Públicos
	this.loja = function()
	{ return loja }
	
	this.id = function()
	{ return id }
	
	this.classe = function()
	{ return classe }
	
	this.dominio = function()
	{
		if(location.host == 'www.comprafacil.com.br')
			return dominio.PRODUCAO
		if(location.host.indexOf('svr_devjava') != -1)
			return dominio.DEVJAVA
		if(location.host == 'hml.comprafacil.com.br')
			return dominio.HML
		return dominio.DESCONHECIDO
	}
	for(var i in dominio) this.dominio[i] = dominio[i]
	
	this.contexto = function()
	{
		var strContexto = location.href.split('/')[3]
		if(strContexto=='comprafacil')
			return contexto.COMPRAFACIL
		if(strContexto=='ipirangashop')
			return contexto.IPIRANGASHOP
		if(strContexto=='bbrasil')
			return contexto.BANCO_DO_BRASIL
		return contexto.DESCONHECIDO
	}
	for(var i in contexto) this.contexto[i] = contexto[i]
	
	this.ehLoja = function(vLoja)
	{ return this.loja() == parseInt(vLoja) }
	
	this.possuiID = function(vID)
	{ return String(id) == String(vID) }
	
	this.possuiClasse = function(vClasse)
	{ return String(classe) == String(vClasse) }
	
	// Métodos Privados
	function pegarLoja()
	{
		var links = document.getElementsByTagName("link");
		for(var i=0; i<links.length && !links[i].href.match("global"); i++);
		
		var global = links[i] || null
		if(!global) return 0
		return parseInt( global.href.split('css/')[1] )
	}
	
	// Chamando Construtor
	__Constructor.apply(this, arguments)
}

function carregarXML(docname)
{
	docname = 'http://' + location.host + docname
	var xml = null
	try
	{
		xml = new ActiveXObject("Microsoft.XMLDOM");
		xml.async = false;
		xml.load(docname)
	}
	catch (e)
	{
		try
		{
			var xmlhttp = new window.XMLHttpRequest();
			docname += '?rnd=' + Math.random()
			xmlhttp.open("GET", docname, false);
			xmlhttp.send(null);
			return xmlhttp.responseXML
		}
		catch (e) { return null }
	}
	return xml
}

if(!window.XMLSerializer) XMLSerializer = function()
{
	this.serializeToString = function(node){ return node.xml }
}