var colunas;
var layout;
var qt_bkp=-1;
var campo_atual=-1;
var Nav_IE = (navigator.appName == 'Microsoft Internet Explorer');
var botao_a_pressionar='buscar';
var forma_pgto='';
var cpo_foco='';
var cpo_bkp='';
var validando=false;
var UltimaBandeira='';

function esqueceu() {
	location.href='?op=esqueceu&email='+$('f_email').value;
}

function DigitaNrCartao(n) {
	if ($('NumeroCartao').value.length<$('NumeroCartao').maxLength)
		$('NumeroCartao').value += n;
}

function VerificaParcelas(p) {
	try {$('QuantidadeParcelas').value = p.value;} catch(E) {}
}

function VerificaFormaPagto() {
	var objDivNumeroCartao	= $('divNumeroCartao');
	var objDivSelCard 		= $('divSelCard');
	var objDivMesAnoVal 	= $('divMesAnoVal');
	var objDivCodSeg 		= $('divCodSeg');
	var objDivNumParc 		= $('divNumParc');
	var objNumeroCartao	    = $('NumeroCartao');
	$('divTxtNumeroCartao').innerHTML = 'N&uacute;mero do Cart&atilde;o:';
	objDivNumParc.style.display = '';
	objNumeroCartao.maxLength = 16;

	if (UltimaBandeira!='') {
		$('parcelas'+UltimaBandeira).style.display='none';
	}
	
	//UltimaBandeira = $('Bandeira').options[$('Bandeira').selectedIndex].value;
	UltimaBandeira = $('Bandeira').value;
	VerificaParcelas($('parcelas'+UltimaBandeira));

	if (UltimaBandeira!='') {
		$('parcelas'+UltimaBandeira).style.display='';
		$('parcelas'+UltimaBandeira).focus();
		try {seta_pgto($('Cartao'));} catch(E) {} // Pode não existir...
	}

	switch (UltimaBandeira) {
	  	case 'VISA':
			$('divTxtNumeroCartao').innerHTML = '6 primeiros d&iacute;gitos do n&uacute;mero do cart&atilde;o:';
			objDivNumeroCartao.style.display = 'none';
			objDivMesAnoVal.style.display = 'none';
			objDivCodSeg.style.display = 'none';
			objNumeroCartao.maxLength = 6;
			break;
	  	case 'MASTERCARD':
	  	case 'DINERS':
			objDivNumeroCartao.style.display = 'none';
			objDivMesAnoVal.style.display = 'none';
			objDivCodSeg.style.display = 'none';
			break;
	  	case 'HIPERCARD':
	  	case 'AMEX':
		case 'HIPERCARD':
		case 'AURA':
			objDivNumeroCartao.style.display = '';
			objDivMesAnoVal.style.display = '';
			objDivCodSeg.style.display = '';
			break;
	  	default:
			objDivNumeroCartao.style.display = 'none';
			objDivMesAnoVal.style.display = 'none';
			objDivCodSeg.style.display = 'none';
			objDivNumParc.style.display = 'none';
			try {
				if ($('Cartao').checked)
					$('Bandeira').focus();
			} catch(E) {}
			return false;
	}
	return true;
}

function AjustaEstado(uf) {
	// Seleciona automaticamente o estado na lista.
	$('f_estado').value = uf;
	for (i=0; i<$('f_estado').length; i++) {
		if ($('f_estado').options[i].value==$('f_estado').value) { $('f_estado').selectedIndex = i; break; }
	}
}			

function CampoVazio(c) {
	if (c.value=='' && cpo_foco=='' && validando==false) {
		alert('Campo incompleto !');
		cpo_foco=c.name;
	}
}

function CampoCEP(c) {
	if (cpo_bkp!=c.value && cpo_foco=='' && validando==false) {
		AtualizaConteudo(12,c.value);
	}
	cpo_bkp=c.value;
}

function CampoEmail(c) {
	if (cpo_foco=='' && validando==false) {
		if (cpo_bkp!=c.value || c.value=='') {
			cpo_foco = c.name;
			AtualizaConteudo(13,c.value);
		}
	}
}

function CampoCPFCNPJ(c) {
	if (cpo_foco=='' && validando==false) {
		if (cpo_bkp!=c.value || c.value=='') {
			cpo_foco = c.name;
			AtualizaConteudo(14,c.value);
		}
	}
	cpo_bkp=c.value;
}

function CampoSenha(c,d) {
	if (CampoVazio(c)) return;
	if (d.value!=c.value) {
		alert('Senhas diferentes !');
		cpo_foco=d.name;
	}
}

function addEvent(obj, evType, fn) {
	if (typeof obj == "string") {
		if (null == (obj = document.getElementById(obj))) {
			throw new Error("Elemento HTML não encontrado. Não foi possível adicionar o evento.");
		}
	}
	if (obj.attachEvent) {
		return obj.attachEvent(("on" + evType), fn);
	} else 
		if (obj.addEventListener) {
			return obj.addEventListener(evType, fn, true);
		} else {
			throw new Error("Seu browser não suporta adição de eventos.");
		}
}

function foco(c) {
	if (cpo_foco!='') {
		$(cpo_foco).focus();
	}
	cpo_foco='';
	cpo_bkp=c.value;
}

function AdicionaCarrinho(id,txt,preco,idu) {
	window.location.href = 'index.php?op=carrinho&frame=5&codemp='+codemp+'&id='+id+'&txt='+txt+'&preco='+preco+'&idu='+idu;
}

function RemoveCarrinho(id) {
    window.location.href = 'index.php?op=carrinho&frame=6&codemp='+codemp+'&id='+id;
}

function AlteraQtd(id,qt) {	
	if (qt_bkp != qt) {
		if (qt<=0) qt=1;
    	window.location.href = 'index.php?op=carrinho&frame=6&codemp='+codemp+'&id='+id+'&qt='+qt;
	}	
	qt_bkp = -1; // Identifica que ja saiu do campo qtdade para o body_onkeypress
}

function AtualizaConteudo(f,id1,id2) {
	
	validando=true;
    var param='frame='+f+'&codemp='+codemp;
    obj=obj2=obj3=false;
	switch(f) {
		case 11: {// Mostra pagina informada (url)
			var obj=$('div_frame_3');
			param += '&pagina='+id1;
			break;			
		}
		case 12: {// Retorna endereco com base no cep informado
			param += '&cep='+id1;
			$('f_end').disabled=true;
			$('f_bairro').disabled=true;
			$('f_cidade').disabled=true;
			$('f_estado').disabled=true;
			obj2 = $('cepDestino');
			break;
		}
		case 13: {// Confere email
			param += '&email='+id1;
			obj2 = $('f_email_cadastro');
			break;
		}
		case 14: {// Confere cnpj
			param += '&cnpj='+id1;
			obj2 = $('f_cpf_cnpj');
			break;
		}
		case 15: {// Envia email de indicacao de produto
			if ($('f_remetente').value=='') {
				alert('Nao preenchido!');
				$('f_remetente').focus();
				return;
			}
			if ($('f_email_remetente').value=='') {
				alert('Nao preenchido!');
				$('f_email_remetente').focus();
				return;
			}
			if ($('f_destinatario').value=='') {
				alert('Nao preenchido!');
				$('f_destinatario').focus();
				return;
			}
			if ($('f_email_destinatario').value=='') {
				alert('Nao preenchido!');
				$('f_email_destinatario').focus();
				return;
			}
			param += 
				'&id1='+id1+
				'&id2='+id2+
				'&nrm='+$('f_remetente').value+
				'&erm='+$('f_email_remetente').value+
				'&nde='+$('f_destinatario').value+
				'&ede='+$('f_email_destinatario').value
			;
			obj2 = $('f_email_destinatario');
			break;
		}
	}
	if (obj)
		obj.innerHTML = "<font size=1 face='Verdana'>Pesquisando...</font><img border=0 src='/sistema/imagens/imagem_loading.gif'>";
	if (obj2) {
		try {$('btn_cadastro').disabled=true;} catch(E) {}
		with(obj2.style) {
			backgroundImage="url(/sistema/imagens/imagem_loading.gif)";
			backgroundRepeat="no-repeat";
			backgroundPosition="-3px -3px";
		}
	}
	
	obj_ajax = new Ajax.Request('/sistema/site.php',{
		method: 'post',
		postBody: param,
		onFailure: function(result) { 
			if (obj) obj.innerHTML = 'Erro:'+result;
			if (obj2) {	try{$('btn_cadastro').disabled=false;} catch(E) {} obj2.style.backgroundImage=''; }
			validando=false;
			},
		onComplete: function(result) { 
			n = result.responseText;
			try { 
				switch(f) {
					case 11:
						obj.innerHTML = n;
						obj.scrollIntoView(true);
						retorno.erro='';
						break;
					case 12: // Cep
						eval(n);
						$('f_end').disabled=false;
						$('f_bairro').disabled=false;
						$('f_cidade').disabled=false;
						$('f_estado').disabled=false;
						if (retorno.f_end!='')
							$('f_numero').focus(); 
						else
							$('f_end').focus();
						$('f_end').value = retorno.f_end;
						$('f_bairro').value = retorno.f_bairro;
						$('f_cidade').value = retorno.f_cidade;
						AjustaEstado(retorno.f_estado);
						break;
					case 13: // Email
					case 14: // CPF/CNPJ
						eval(n);
						break;
					case 15: // Envio de email
						eval(n);
						alert('Email enviado!');
						break;
				}
				if (retorno.erro!='') {
					alert(retorno.erro + "("+obj2.value+")");
					cpo_foco = obj2.name;
					obj2.value='';
				}
				else {
					if (obj2.name=='f_remetente') {
						$('f_destinatario').focus();
						alert('Email enviado!');
					}
					else if (obj2.name=='f_cpf_cnpj')
						$('f_rg_ie').focus();
					else
						$('f_senha_cadastro').focus();
				}

				if (obj) {
					obj.innerHTML = n;
					obj.scrollIntoView(true);
				}
			} catch(e) {}
			if (obj2) {	try{$('btn_cadastro').disabled=false;} catch(E) {} obj2.style.backgroundImage=''; }
			validando=false;
			}
		});
}

function chama_login (id) {
	if (forma_pgto=='') {
		alert("Selecione a forma de pagamento !");
		return;
	}
	window.location.href = 'index.php?op=login&fp='+forma_pgto;
	return;
}

function ZeraConteudo(RefObjeto,zerar){
    if (campo_atual!=RefObjeto.id) {
        if (zerar) RefObjeto.value = "";
        campo_atual = RefObjeto.id;
    }
}

function Mascara(RefObjeto, Tipo, Modelo, Atualizar, ev) {
    var valorNumerico = '';         // String numerica do campo
    var nIndexString = 0;           // Posicao dentro do valorNumerico
    var valorFinal = '';            // String mascarada
    var mostrar = true;             // Se tipo > 10, desabilitar o campo
    var invertido = false;          // Digitacao direita p/ esquerda
    var c = '';                     // Byte analisado da string Modelo
    var i,j = 0;                    // Auxiliares
    var aux = '';
    var Code=0;						// Tecla pressionada
    var negativo = false;
    
    if (typeof(Modelo )=="undefined") Modelo = '';
    if (typeof(Atualizar)=="undefined") Atualizar = false;
    if (typeof(ev)!="undefined")
        Code = (Nav_IE)?event.keyCode:ev.which;

    if (Tipo > 100) {
        Tipo = Tipo - 100;
        negativo = true;
    }

    if (Tipo > 10) {
        Tipo = Tipo - 10;
        mostrar = false;
    }
    
    if (mostrar) {
        // Usando onKeyPress/onKeyDown        
        // Somente aceita numeros
        if (Code>0) {
            switch(Code) {
                case 8:
                    // Deixar o browser processar tecla para estes modelos
                    ZeraConteudo(RefObjeto,false);
                    if (Tipo==4 || Tipo==5 || Tipo==9)
                        return;
                    
                    // Apaga tudo de uma vez
                    // RefObjeto.value = "";

                    // Apaga 1 digito por vez
                    if (RefObjeto.value.length>0)
                        RefObjeto.value = RefObjeto.value.substr(0,RefObjeto.value.length-1);
    
			    	if (Nav_IE) {
						event.returnValue = false;
						event.cancelBubble = true;
					} else {
						ev.preventDefault();
						ev.stopPropagation();
					}
    
                    break;
                
                case 9:     // TAB
                    campo_atual=-1; break;
                case 16:    // SHIFT-TAB
                    campo_atual=-1; break;
                case 13:    // ENTER
				case 17:	// CTRL                    
				case 18:	// ALT
                case 37:    // LEFT
                case 39:    // RIGHT
                case 46:    // DELETE             
                case 116:	// F5
                    // Aceitar e deixar browser tratar
                    return;
                    break;

                case 48: case 96:
                case 49: case 97:
                case 50: case 98:
                case 51: case 99:
                case 52: case 100:
                case 53: case 101:
                case 54: case 102:
                case 55: case 103:
                case 56: case 104:
                case 57: case 105:
                    // Primeira tecla em um campo novo
                    // Zera o seu conteudo !
                    ZeraConteudo(RefObjeto,true);
                    // Le tecla pressionada e joga p/ o campo !
                    var ch = String.fromCharCode((Code>=96)?(Code-48):Code);
                    RefObjeto.value = RefObjeto.value + ch;

			    	if (Nav_IE) {
						event.returnValue = false;
						event.cancelBubble = true;
					} else {
						ev.preventDefault();
						ev.stopPropagation();
					}
    
                    break;
                    
                case 109: // Sinal de negativo
                    if (negativo) {
                        i=RefObjeto.value.indexOf("-");
                        if (i==-1) {
                            RefObjeto.value = "-"+RefObjeto.value;
                        }
                        else {
                            RefObjeto.value = RefObjeto.value.substr(1);
                        }
                    }

			    	if (Nav_IE) {
						event.returnValue = false;
						event.cancelBubble = true;
					} else {
						ev.preventDefault();
						ev.stopPropagation();
					}
    
                    return;
                    break;                    
                
                case 188: // Virgula no teclado alfa
                case 190: // Ponto no teclado alfa
                case 110: // Virgula no teclado numerico
                case 194: // Ponto no teclado numerico
                    i=RefObjeto.value.indexOf(".");
                    if (Tipo==7 && i==-1 && RefObjeto.value!='') // Ponto flutuante ? Nao digitou ponto ainda ? Ja digitou algo ?
                    	RefObjeto.value += '.';

			    	if (Nav_IE) {
						event.returnValue = false;
						event.cancelBubble = true;
					} else {
						ev.preventDefault();
						ev.stopPropagation();
					}
                    return;

                default:
                    // Ignorar  
			    	if (Nav_IE) {
						event.returnValue = false;
						event.cancelBubble = true;
					} else {
						ev.preventDefault();
						ev.stopPropagation();
					}
                    return;
                    break;
            }                
        }
    }

    if (Tipo==6) {
        if (Modelo==='') Modelo = "########0.00";
        if (Atualizar) {
            // Calcular nr de decimais pelo modelo
            i = Modelo.lastIndexOf('.', Modelo.length);
            if (i>0) {
                i = Modelo.length - i - 1; // Nro decimais
                j = Math.floor(parseFloat(RefObjeto.value)*Math.pow(10, i)+0.5);
                RefObjeto.value = j.toString();
            }
        }
    }

    // Para calcular tamanho do campo na entrada
    // aux=campo sem os zeros iniciais !
    // j=nro de digitos do campo
    j = 0;
    aux = '';
    for (i=0;i<RefObjeto.value.length;i++) {
        if (!isNaN(parseFloat(RefObjeto.value.substr(i,1)))) {
            aux = aux + RefObjeto.value.substr(i,1);
            j++;
        }
    }

    switch(Tipo) {
        case 1: // CGC e CPF
    		if (j <= 11)
    			Modelo = "000.000.000-00";
    		else
    			Modelo = "00.000.000/0000-00";
    		break;

	    case 2: // Datas globais
        	if (Modelo==='') Modelo = "00/00/0000";
        	break;

	    case 3: // CEP
		    Modelo = "00000-000";
    		invertido = true;
		    break;

	    case 4: // Telefones
	    case 5: // Telefone 0800 (Fora de uso)
	    	if ((aux.substr(0,4) == "0800") || (aux.substr(0,4) == "0300")) {
        		if (j <= 10)
    	    	    Modelo = "(####) ##-####";
        		else
    	    	    Modelo = "(####) ###-####";
	    	}
	    	else {
        		if (j <= 9)
        			Modelo = "(##)###-####";
        		else
        			Modelo = "(##)####-####";
        	}
    		break;

        case 6: // Valores preenchidos da direita p/ esquerda com modelo especificado
	        invertido=true;
            break;

        case 7: // Valores preenchidos com ponto flutuante
        	return; // Nao altera o campo, somente trava as teclas
            break;

        case 8: // Fora de uso
            break;

        case 9: // Preenchidos da esquerda p/ direita com modelo especificado
            break;

		default:
			break;            
	}

    RefObjeto.maxLength = Modelo.length + 1;

    // deixa ValorNumerico com somente os numeros do campo.
    if (invertido) valorNumerico = '0'; // Garante string preenchida
    for (i=0;i<RefObjeto.value.length;i++) {
        if (negativo && RefObjeto.value.substr(i,1)=="-") {
            valorNumerico = "-" + valorNumerico;
        }
        if (!isNaN(parseFloat(RefObjeto.value.substr(i,1)))) {
            valorNumerico = valorNumerico + RefObjeto.value.substr(i,1);
        }
    }

    // Transforma em valor sem os zeros iniciais.
    if (invertido) {
        valorNumerico = parseFloat(valorNumerico).toString();
        nIndexString = valorNumerico.length - 1;
    }
    
    // aplica a máscara ao campo informado usando
    // o modelo de máscara informado no script
    for (j=0;j<Modelo.length;j++) {
        if (invertido) { i = Modelo.length - j - 1; }
        else { i = j; }
        c = Modelo.substr(i,1);
        switch(c) {
            case '0':
            case '#':
                // Bytes preenchiveis.
                if (nIndexString >=0) {
                    if (valorNumerico.substr(nIndexString,1) !== '') {
                        if (invertido) {
                            // Preenche da direita p/ esquerda
                            valorFinal = valorNumerico.substr(nIndexString,1) + valorFinal;
                            nIndexString--;
                        }
                        else {
                            // Preenche da esquerda p/ direita
                            valorFinal = valorFinal + valorNumerico.substr(nIndexString,1);
                            nIndexString++;
                        }
                    }
                    else {
                        if (invertido) {
                            if (c == '#') c = '';
                            valorFinal = c + valorFinal;
                        }
                    }
                }
                else {
                    if (invertido) {
                        if (c == '#') c = '';
                        valorFinal = c + valorFinal;
                    }
                }

                break;

            default:
                // Bytes de preenchimento
                if (invertido) {
                    valorFinal = c + valorFinal;
                }
                else {
                    if (nIndexString<=valorNumerico.length - 1 && nIndexString>=0) {
                            valorFinal = valorFinal + c;
                    }
                }
                break;
        }
    }
    RefObjeto.value = valorFinal;
}

function horas() {
	var now = new Date();
	var hours = now.getHours();
	var minutes = now.getMinutes();
	var seconds = now.getSeconds()
	if (hours <=9)
      hours="0"+hours;
	if (minutes<=9)
      minutes="0"+minutes;
	if (seconds<=9)
      seconds="0"+seconds;
	var cclock= hours+":"+minutes+":"+seconds
	clock.innerHTML= cclock;
	greeting.innerHTML = ((hours<12)?"Bom dia":((hours<18)?"Boa tarde":"Boa noite"))+" visitante,";
    setTimeout("horas()",1000);
}

function body_onkeypress(ev) {
    var Code;  
    Code = (Nav_IE)?event.keyCode:ev.which;   
    if (Code==13) {
    	// Ignora tecla pressionada !
    	if (Nav_IE) {
			event.returnValue = false;
			event.cancelBubble = true;
		} else {
			ev.preventDefault();
			ev.stopPropagation();
		}

		if (qt_bkp>=0)
			try{$('btn_'+botao_a_pressionar).focus();} catch(e) {} // Somente para mudar o foco e disparar o onblur da quantidade
		else
			try{$('btn_'+botao_a_pressionar).click();} catch(e) {}
			
    }
}

function seta_pgto(obj) {
	obj.checked = true;
	$('forma_pgto').value = obj.value;
}

