// JavaScript Document
window.onscroll = alinhaCarregando;

/* Função responsável por startar o objeto AJAX no navegador */
function openAjax() {
	var ajax;
	try {
		ajax = new XMLHttpRequest();
	} catch(ee) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(E) {
				ajax = false;
			}
		}
	}
	return ajax;
}

/* Função responsável por inserir os dados da Newsletter */
function inserirNewsletter() {
	var ajax = openAjax();
	var nome = document.newsletter.nome_news.value;
	var email = document.newsletter.email_news.value;
	if (nome.length == 0) {
		alert('Por favor preencha o nome!');
		document.newsletter.nome_news.focus();
	} else {
		if (email.length == 0) {
			alert('Por favor preencha o e-mail!');
			document.newsletter.email_news.focus();
		} else {
			ajax.open('GET', 'newsletter.php?acao=incluir&nome='+nome+'&email='+email, true);
			ajax.onreadystatechange = function() {	
				if (ajax.readyState == 1) { // Se a pagina ainda está carregando
					loading(true);
				}
				
				if (ajax.readyState == 4) {
					if (ajax.status == 200) {
						loading(false);
						if (ajax.responseText == 'inserido') {
							alert('Obrigado!\nSeu e-mail foi inserido com sucesso.');	
						} else if (ajax.responseText == 'falha') {
							alert('Falha!\nHouve um erro ao inserir seu e-mail, por favor tente novamente mais tarde.');	
						}
						document.newsletter.reset();
					}
				}
			}
			ajax.send(null);
		}
	}
	return false;
}

/* Função responsável por logar o cliente */
function login_cliente() {
	var ajax = openAjax();
	var login = document.form_login.login.value;
	var senha = document.form_login.senha.value;
	if (login.length == 0) {
		alert('Por favor digite o login!');
		document.form_login.login.focus();
	} else {
		if (senha.length == 0) {
			alert('Por favor digite a senha!');
			document.form_login.senha.focus();
		} else {
			ajax.open('GET', 'login.php?acao=logar&login='+login+'&senha='+senha, true);
			ajax.onreadystatechange = function() {	
				if (ajax.readyState == 1) { // Se a pagina ainda está carregando
					loading(true);
				}
				
				if (ajax.readyState == 4) {
					if (ajax.status == 200) {
						loading(false);
						var array_resposta = ajax.responseText.split("#");
						if (array_resposta[0] == 'logado') {
							/*document.getElementById('conteudo_login').innerHTML = '<table border="0" width="100%" cellpadding="0" cellspacing="0" style="font-family:Tahoma;font-size:12px;color:#FFF;"><tr><td align="right">Ol&aacute; <b>'+array_resposta[1]+', <a href="#" onclick="logoff_cliente();" style="text-decoration:none;color:#FF5959;">clique aqui</a></b> para sair.</td></tr></table>';*/
							window.location = "index.php";
						} else if (array_resposta[0] == 'login_invalido') {
							alert('Login inexistente!');
						} else if (array_resposta[0] == 'senha_invalida') {
							alert('Senha incorreta!');
						}
					}
				}
			}
			ajax.send(null);
		}
	}
	return false;		
}

/* Função responsável por logar o cliente */
function logoff_cliente() {
	var ajax = openAjax();
	ajax.open('GET', 'login.php?acao=logoff', true);
	ajax.onreadystatechange = function() {	
		if (ajax.readyState == 1) { // Se a pagina ainda está carregando
			loading(true);
		}
		
		if (ajax.readyState == 4) {
			if (ajax.status == 200) {
				loading(false);		
				window.location = 'index.php';
			}
		}
	}
	ajax.send(null);
	
	return false;
}

/* Função responsável por alinhar o loading sempre no centro da página */
function alinhaCarregando() {
	var carregando = document.getElementById("carregando");
	if (carregando.style.display == 'block') {
		carregando.style.top = document.documentElement.scrollTop+'px';
		carregando.style.left = '0px';
	}
}

/* Função de loading para quando a janela estiver ociosa, aguardando algum processo */
function loading(acao) {
	var carregando = document.getElementById("carregando");
	carregando.style.top = document.documentElement.scrollTop+'px';
	if (acao) {
		carregando.style.display = 'block';
	} else {
		carregando.style.display = 'none';
	}
}

/* Função de Máscara de Telefone */
function mascaraFone(fone){
	var mascara = '(##)####-####';		
	var i = fone.value.length;
	var texto = mascara.substring(i);
  
	if (texto.substring(0,1) != '#'){
		fone.value += texto.substring(0,1);
	} 
}

/* Função para validar o formulário de fale conosco */
function validaFaleConosco(form) {
	
	var nome = form.nome_completo.value;
	var email = form.email.value;
	var msg = form.mensagem.value;
	
	if (nome.length == 0) {
		alert('Preencha o campo NOME.');
		form.nome_completo.focus();
		return false;
	} else if (email.length == 0) {
		alert('Preencha o campo E-MAIL.');
		form.email.focus();
		return false;
	} else if (msg.length == 0) {
		alert('Preencha o campo MENSAGEM.');
		form.mensagem.focus();
		return false;
	} else {
		return true;
	}
	
}

/* Função para validar o formulário de cadastro */
function validaCadastro(form) {
	
	var nome  = form.nome_completo.value;
	var email = form.email.value;
	var login = form.login.value;
	var senha = form.senha.value;
	
	if (nome.length == 0) {
		alert('Preencha o campo NOME.');
		form.nome_completo.focus();
		return false;
	} else if (email.length == 0) {
		alert('Preencha o campo E-MAIL.');
		form.email.focus();
		return false;
	} else if (login.length == 0) {
		alert('Preencha o campo LOGIN.');
		form.login.focus();
		return false;
	} else if (senha.length == 0) {
		alert('Preencha o campo SENHA.');
		form.senha.focus();
		return false;
	} else {
		return true;
	}
	
}

/* Função responsável em abrir a janela de Depoimentos */
function abrirJanelaDepoimento(tipo, nome, mensagem) {
	
	var janelaFlutuante = document.getElementById("janela_flutuante");
	
	if (tipo == 1) {
		
		document.getElementById("titulo_janela").innerHTML = "Deixe sua mensagem!";
		janelaFlutuante.style.display = "block";
		posicionarJanela(janelaFlutuante);	
		document.getElementById("tableDepoimentos").style.display = "block";
		document.getElementById("input_nome").innerHTML = '<input type="text" name="nome_completo" id="nome_completo" style="border:solid 1px #660099;width:100%;height:20px;color:#666;" />';
		document.getElementById("input_comentario").innerHTML = '<textarea name="mensagem" id="mensagem" style="border:solid 1px #660099;width:100%;height:170px;color:#666;"></textarea>';
		document.getElementById("input_enviar").style.display = "block";
		
	} else if (tipo == 0) {
		
		document.getElementById("titulo_janela").innerHTML = "Mensagem do nosso cliente!";
		janelaFlutuante.style.display = "block";
		posicionarJanela(janelaFlutuante);	
		document.getElementById("tableDepoimentos").style.display = "block";
		document.getElementById("input_nome").innerHTML = nome;
		document.getElementById("input_comentario").innerHTML = mensagem;
		document.getElementById("input_enviar").style.display = "none";
		
	}
}

/* Função responsável em fechar a janela de Depoimentos */
function fecharJanelaDepoimento() {
	document.getElementById("tableDepoimentos").style.display = "none";
	document.getElementById("janela_flutuante").style.display = "none";
}


/* Função que alinha o objeto no centro da tela, independente da resolução */
function posicionarJanela(janela) {
	var sizesPage = getPageSize(); // Pega as dimensões da página
	
	var metadeLarguraJanela = janela.offsetWidth/2;
	janela.style.left = (sizesPage[2]/2)-(metadeLarguraJanela)+'px';
	
	var metadeAlturaJanela = janela.offsetHeight/2;
	janela.style.top = (sizesPage[3]/2)-(metadeAlturaJanela)+'px'	
}

/* Função responsável por pegar as dimensões da página  (Função criada por terceiros - Anonimo) */
function getPageSize(){
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	return new Array(pageWidth,pageHeight,windowWidth,windowHeight);

}

/* Função responsável em remeter os dados do formulário de depoimento */
function enviarRecado() {
	var ajax = openAjax();
	var nome = document.form_recado.nome_completo.value;
	var mensagem = document.form_recado.mensagem.value;
	if (nome.length == 0) {
		alert('Por favor preencha o nome!');
		document.form_recado.nome_completo.focus();
	} else {
		if (mensagem.length == 0) {
			alert('Por favor deixe sua mensagem!');
			document.form_recado.mensagem.focus();
		} else {
			var url = 'comentario.php?acao=incluir&nome='+nome+'&mensagem='+mensagem;
			ajax.open('GET', url, true);
			
			ajax.onreadystatechange = function() {	
				if (ajax.readyState == 1) { // Se a pagina ainda está carregando
					loading(true);
				}
				
				if (ajax.readyState == 4) {
					if (ajax.status == 200) {
						loading(false);
						if (ajax.responseText == 'inserido') {
							alert('Obrigado!\nSua mensagem foi enviada com sucesso.');
						} else if (ajax.responseText == 'falha') {
							alert('Falha!\nHouve um erro ao enviar sua mensagem, por favor tente novamente mais tarde.');	
						}
						document.form_recado.reset();
						fecharJanelaDepoimento();
					}
				}
			}			
			ajax.send();
		}
	}
	return false;	
}

/* Função responsável por add o produto na lista do cliente */
function addFavorito(cliente, produto) {
	var ajax = openAjax();
	if ((cliente.length <= 0) || (cliente == 0)) {
		alert('Necessario realizar o login!');
		document.form_login.login.focus();
	} else {
		var url = 'favoritos.php?acao=incluir&cliente='+cliente+'&produto='+produto;
		ajax.open('GET', url, true);
		ajax.onreadystatechange = function() {	
			if (ajax.readyState == 1) { // Se a pagina ainda está carregando
				loading(true);
			}
			
			if (ajax.readyState == 4) {
				if (ajax.status == 200) {
					loading(false);
					if (ajax.responseText == true) {
						alert('Produto foi inserido com sucesso em sua lista de Favoritos.');
					} else {
						alert('Falha!\nHouve um erro ao adicionar o produto em sua lista, por favor tente novamente mais tarde.');
					}
				}
			}
		}			
		ajax.send();
	}
	return false;
}

/* Controle de paginação */
function mudar_paginacao(form, evento) {	
	var tecla;
	try {
		tecla = evento.which;
	} catch(e) {
		tecla = window.event.keyCode;
	}
	
	if (tecla == null) {
		tecla = event.keyCode;
	}
	
	if (tecla == 13) {
		var limite = form.limite.value;
		var pagina_requisitada = form.pag.value;
		if (parseInt(pagina_requisitada) > parseInt(limite)) {
			form.pag.value = limite;
		} else {
			if (parseInt(pagina_requisitada) == 0) {
				form.pag.value = 0;
			}	
		}
		form.submit();
	}
	
	return false;
}

function mudar_pagina(acao, form) {
	var limite = form.limite.value;
	var pag_atual = form.pag.value;
	if (acao == "next") {
		if (parseInt(pag_atual) < parseInt(limite)) {
			form.pag.value = parseInt(pag_atual) + 1;
			form.submit();
		}
	} else if (acao == "prior") {
		if (parseInt(pag_atual) > 1) {
			form.pag.value = parseInt(pag_atual) - 1;
			form.submit();
		}
	}
	return false;
}
/* Fim do controle de paginação */

/* Função que válida a busca */
function buscarNoCatalogo(form) {
	var palavra = form.valor.value;
	if (palavra.length == 0) {
		alert('Preencha o campo ao lado antes de pesquisar!');
		form.valor.focus();
	} else {
		form.submit();
	}
	return false;	
}