//############################################################//
function show(obj){
	elemento = document.getElementById(obj);
	if (elemento.offsetHeight == 0)
  	  elemento.style.display = "block";
	else 
	  elemento.style.display = "none";	
}
//############################################################//
function showPedido(num){
	elemento = document.getElementById('row'+num);
	if (elemento.offsetHeight == 0){
  	  elemento.className = 'dpON';
	  processa_url('?controller=conta&action=preview&numero='+ num , 'obj'+num)
	}else{ 
	  elemento.className = 'dpOFF';
	}
}

//############################################################//
function mala_direta(email){
	if (validar_email(email,1)){
	  processa_mala_direta('?controller=mala_direta&email='+ email);
	}
}

//############################################################//
function muda_aba(id_aba,aba,id_conteudo,conteudo){
	var obj_aba = document.getElementById(id_aba);
	var qtd_aba = obj_aba.getElementsByTagName('li').length;
	

	for(i=0;i<qtd_aba;i++){
		if(obj_aba.getElementsByTagName('li')[i].id == aba){
			obj_aba.getElementsByTagName('li')[i].className = 'liga';		
		}else{
			obj_aba.getElementsByTagName('li')[i].className = 'desliga';		
		}	
	}
	
	if(id_conteudo != ''){
		var obj_conteudo = document.getElementById(id_conteudo);
		var qtd_conteudo = obj_conteudo.getElementsByTagName('div').length;
		
		for(i=0;i<qtd_conteudo;i++){
			if(obj_conteudo.getElementsByTagName('div')[i].id == conteudo){
				obj_conteudo.getElementsByTagName('div')[i].className = 'abre';		
			}else{
				obj_conteudo.getElementsByTagName('div')[i].className = 'fecha';		
			}	
		}
	}
}
//############################################################//
function validar_email(email_valor,tipo){
	var expres;
	if(tipo==1){
		expres = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	}else if(tipo==2){
		expres = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	}else{
		expres = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;	
	}
	
	if(expres.test(email_valor)){
		return true;
	}else{
		alert('\nAviso: O E-mail informado é invalido!\n');
		return false;
	}
}
//############################################################//
function boleto(url){
  //posiciona a popup no centro da tela
  var posw = (screen.width - 700) / 2;
  var posl = (screen.height - 500) / 2; 
  
  window.open(url,'Boleto','width=700,height=500,top='+posl+',left='+posw+' status=no,scrollbars=yes,resizable=0,toolbar=no,menubar=no');
}

//############################################################//
function muda_imagem(obj_img,src){
	document.getElementById(obj_img).src = src;
}

//############################################################//
function avaliar_produto(produto,nota){
	if ((produto>0)&&(nota>0)){
	  processa_avaliacao_produto('?controller=avaliar_produto&action=avaliar_produto&produto='+produto+'&nota='+nota);
	}
}

//############################################################//
function resenha_produto(produto,opiniao){ 
	processa_opiniao_produto('?controller=avaliar_produto&action=opiniao_produto&produto='+produto+'&opiniao='+encodeURI(opiniao));  
}

//############################################################//
function ajax_inicia(){
    try {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
        try {
            return new ActiveXObject("Msxml2.XMLHTTP");
        } catch(ex) {
            try {                
                return new XMLHttpRequest();
                return true;
            } catch(exc) {
                alert("Esse browser não tem recursos para uso do AJAX");
                return false;
            }
        }
    }
}

//############################################################//
function criar_div(nome,x,y,classe,fundo,titulo){
	var posX = -(x/2)-3;
	var posY = -(y/2)-3;
	var rolagem = document.documentElement.scrollTop;
	if(!document.getElementById(nome)){
		var obj = document.createElement("div");
			obj.setAttribute("id",nome);
			obj.setAttribute("name",nome);
			obj.style.width  	 = x+"px";
			obj.style.height 	 = y+"px";
			obj.style.marginLeft = posX+"px";
			obj.style.marginTop  = posY+document.documentElement.scrollTop+'px';
			obj.className 		 = classe;	
			document.body.insertBefore(obj,document.body.childNodes[2]);
		
		var obj1 = document.createElement('div');
			obj1.setAttribute("id",nome+'_titulo');
			obj1.className = 'janela_titulo';	
			obj1.innerHTML = '<span style="float:left">'+titulo+'</span><span style="float:right"><a href="javascript:void(0);"  onclick="destroi_div(\''+nome+'\',\''+rolagem+'\');">X</a></span>';
			document.getElementById(nome).appendChild(obj1);
		
		var obj2 = document.createElement('div');
			obj2.setAttribute("id",nome+'_conteudo');
			obj2.style.height 	 = y-30+"px";
			obj2.className = 'janela_conteudo';
			document.getElementById(nome).appendChild(obj2);

		if(fundo){
			//div_msg_iframe = document.getElementById('msg_iframe');
			//div_msg_iframe.className = 'abre';
		}
	}
}
//############################################################//
function destroi_div(nome, rolagem){
	document.body.removeChild(document.getElementById(nome));
	div_msg_iframe = document.getElementById('msg_iframe');
	div_msg_iframe.className = 'fecha';
}

//############################################################//
function carrega(url,elemento_retorno,exibe_carregando,elemento_carregando,tipo_carregando){
	if(elemento_carregando != ''){
		elemento_carregando = document.getElementById(elemento_carregando);
	}else{
		elemento_carregando = document.getElementById(elemento_retorno);
	}
	elemento_retorno = document.getElementById(elemento_retorno);
	//alert(url);
	var ajax = ajax_inicia();
	if(ajax){
        url = anti_cache(url);
        ajax.onreadystatechange = carregando
        ajax.open("GET", url ,true);
		ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        ajax.setRequestHeader("Cache-Control", "no-cache");
        ajax.setRequestHeader("Pragma", "no-cache");
        if(exibe_carregando){ 
			if(tipo_carregando == 0){
				put("carregando ...",elemento_carregando);
			}else{
				put("<img id='img_carregando' src='catalogo/template/default/imagem/carregando.gif' border='0' alt='Carregando...' />",elemento_carregando);
			}
		}
        ajax.send(null);
        return true;
    }else{
        return false;
    }
	
    function carregando(){
        if(ajax.readyState==4){
            if(ajax.status == 200){
                texto = ajax.responseText;
                if(texto.indexOf(" ")<0) texto=texto.replace(/\+/g," ");
                //texto=unescape(texto); //descomente esta linha se tiver usado o urlencode no php ou asp
				if(elemento_carregando != elemento_retorno && elemento_carregando != ''){
              	   put('',elemento_carregando);
				}
                put(texto,elemento_retorno);
                extrai_script(texto);
            }else{
                if(exibe_carregando){
					put("Falha no carregamento. " + verifica_status(ajax.status),elemento_carregando);
				}
            }
            ajax = null
        }
		/*
		else if(exibe_carregando){//para mudar o status de cada carregando
			if(tipo_carregando == 0){
				put("Carregando ...",elemento_carregando);
			}else{
				put("<img id='img_carregando' onload='javascript:meio(this.id);' src='' border='0'/>",elemento_carregando);
			}
        }
		*/    
	}
	
    function put(valor,elemento){ //coloca o valor na variavel/elemento de retorno
        if((typeof(elemento)).toLowerCase()=="string"){ //se for o nome da string
            if(valor!="Falha no carregamento"){ 
                eval(elemento + '= unescape("' + escape(valor) + '")')
            }
        }else if(elemento.tagName.toLowerCase()=="input"){
            valor = escape(valor).replace(/\%0D\%0A/g,"")
            elemento.value = unescape(valor);
        }else if(elemento.tagName.toLowerCase()=="select"){        
            select_innerHTML(elemento,valor)
        }else if(elemento.tagName){
            elemento.innerHTML = valor;
        }    
    }
	
    function anti_cache(aurl){
        var dt = new Date();
        if(aurl.indexOf("?")>=0){// já tem parametros
            return aurl + "&" + encodeURI(Math.random() + "_" + dt.getTime());
        }else{ return aurl + "?" + encodeURI(Math.random() + "_" + dt.getTime());}
    }
}
//############################################################//
/****** 
* select_innerHTML - altera o innerHTML de um select independente se é FF ou IE
* Parametros:
* objeto(tipo object): o select a ser alterado
* innerHTML(tipo string): o novo valor do innerHTML
*******/
function select_innerHTML(objeto,innerHTML){
	objeto.innerHTML = ""
    var selTemp = document.createElement("objselect")
    var opt;
    selTemp.id="objselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("objselect1")
    selTemp.style.display="none"
	
    if(innerHTML.toLowerCase().indexOf("<option")<0){//se não é option eu converto
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML
	
    for(var i=0;i<selTemp.childNodes.length;i++){
        if(selTemp.childNodes[i].tagName){
            opt = document.createElement("OPTION")
            for(var j=0;j<selTemp.childNodes[i].attributes.length;j++){
                opt.setAttributeNode(selTemp.childNodes[i].attributes[j].cloneNode(true))
            }
            opt.value = selTemp.childNodes[i].getAttribute("value")
            opt.text = selTemp.childNodes[i].innerHTML
            if(document.all){ //IEca
                objeto.add(opt)
            }else{
                objeto.appendChild(opt)
            }                    
        }    
    }
    document.body.removeChild(selTemp)
    selTemp = null
}
//############################################################//
function verifica_status(status){ //retorna o texto do erro http
	switch(status){
		case 0: return "Erro desconhecido de javascript";
		case 400: return "400: Solicita&ccedil;&atilde;o incompreensível"; break;
		case 403: case 404: return "404: N&atilde;o foi encontrada a URL solicitada"; break;
		case 405: return "405: O servidor n&atilde;o suporta o m&eacute;todo solicitado"; break;
		case 500: return "500: Erro desconhecido de natureza do servidor"; break;
		case 503: return "503: Capacidade m&aacute;xima do servidor alcançada"; break;
		default: return "Erro " + status + ". Mais informa&ccedil;&otilde;es em http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"; break;
	}
}
//############################################################//
function extrai_script(texto){
    // inicializa o inicio >
    var ini = 0;
    // loop enquanto achar um script
    while (ini!=-1){
        // procura uma tag de script
        ini = texto.indexOf('<script', ini);
        // se encontrar
        if (ini >=0){
            // define o inicio para depois do fechamento dessa tag
            ini = texto.indexOf('>', ini) + 1;
            // procura o final do script
            var fim = texto.indexOf('</script>', ini);
            // extrai apenas o script
            codigo = texto.substring(ini,fim);
            // executa o script
            //eval(codigo);
            novo = document.createElement("script")
            novo.text = codigo;
            document.body.appendChild(novo);
        }
    }
}
//############################################################//
// --- valida os campos que sao numericos ---
function somente_numeros(obj){
  numero=String(obj.value);
  if (numero==0){ obj.value=numero; }
  else { obj.value=numero; }
}

function String(str){
 // Deixa so' os digitos no numero
 var digitos = "0123456789";
 var temp = "";
 var digito = "";
 var cont=0;
 for (var i=0; i<str.length; i++)
 {
  digito = str.charAt(i);
  if (digitos.indexOf(digito)>=0)
  {
    if (digitos.indexOf(digito)==10){ cont++; }
	if (cont<=1){ temp=temp+digito; }
	else{ temp=temp+""; }
  }
 }
  return temp  
}
//############################################################//
//---- auto tab entre os elementos de uma pagina ----
//---- voce especifica qtos caracteres o usuario devera entrar apra mudar o tab para o proximo objeto
function auto_tab(input,len, e) {
   var isNN = (navigator.appName.indexOf("Netscape")!=-1);
   var keyCode = (isNN) ? e.which : e.keyCode;
   var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
   if(input.value.length >= len && !containsElement(filter,keyCode)) {
   input.value = input.value.slice(0, len);
   input.form[(getIndex(input)+1) % input.form.length].focus();
}

function containsElement(arr, ele) {
   var found = false, index = 0;
   while(!found && index < arr.length)
     if(arr[index] == ele)
       found = true;
     else
       index++;
   return found;
}

function getIndex(input) {
   var index = -1, i = 0, found = false;
   while (i < input.form.length && index == -1)
     if (input.form[i] == input)index = i;
     else i++;
       return index;
   }
   return true;
}
//############################################################//