/**
 * Funcao que faz a requisicao do objeto xmlHttpRequest dependendo do Browser
 */
function getXmlHttp() {
	//criando uma variavel vazia que ira receber o objeto
	var xmlhttp = null;
		// tentar
		try{
			// se o browser for firefox ou IE7
			xmlhttp = new XMLHttpRequest();
				}
				catch(ee){
				try{
					// Se o browser for Microsoft IE 6 ou anterior compativel com Msxml2
					xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				}
				catch(e){
						try{
							// Se o browser for Microsoft IE 6 ou anterior compativel com Microsoft.XMLHTTP
							xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
						}
						catch(E){
							// Se nao for possivel criar uma conexao XMLHttpRequest
							xmlhttp = false;
						}
				}
		}
	// retorna o objeto xmlhttp com a conexao aberta ou como false se nao for possivel estabalecer uma conexao
	return xmlhttp;
}

// instancia o objeto xmlhttp.
// apartir deste ponto (e se o objeto nao for "false" é possivel receber/enviar dados por httpXML Request usando este objeto
var xmlhttp = getXmlHttp();

/**
 * Fazendo a chamada ao arquivo remoto e infomando o metodo
 * Em nosso exemplo estamos passando os parametros por GET, mas da para fazer isso com Post tbm.
 * @param {Object} pagina
 */
function chama(pagina){	
	
	document.getElementById("conteudo").innerHTML = '<img src="assets/images/loading.gif" vspace="50" hspace="50">';
	// XML. abra (com get, este link, verdadeiro) 
	xmlhttp.open("GET",pagina,true); 
	
	// XML. quando houver mudanca de estado no carregamento chame a funcao "carregado"
	// Neste ponto estamos dizendo que: Quando houver mudanca no estado da conexao com o arquivo remoto, chame a funcao carregado
   xmlhttp.onreadystatechange=carregado
	
	// XML. enviar (nulo). Ou seja, nao estamos retornando dados para a pagina requisitada.
	// Na verdade estamos, mas ja fizemos isso com Get diretamente na URL, este exemplo permite porque sao apenas tres parametros.
	// No caso de processar os dados de um formulario maior isto seria feito de maneira diferente.
	xmlhttp.send(null);
}

/**
 * Esta funcao fara a comparacao se o objeto chamado no XMLHttpRequest foi completamente carregado
 * E se Sim, altera o valor do campo no formulario de acordo com o valor recebido.
 */
function carregado(){ 
		
		// Se o estado de carregamento do arquivo remoto for igual a "4" ou for igual a "complete"
		if(xmlhttp.readyState==4 || xmlhttp.readyState=="complete"){
			
			//bucar o objeto pela id ('resultado') e trocar seu valor pela resposta obtida no XML
			document.getElementById('conteudo').innerHTML = xmlhttp.responseText;
		}
}

function enlarge(imageToEnlarge){
	leftPos = (Math.round((screen.width - 400)/2));
	topPos = (Math.round((screen.height - 300)/2));

	window.open('popup.php?img=assets/images/products/'+imageToEnlarge,'pop','toolbar=no,status=no,menubar=no,width=400,height=300,screenX='+leftPos+',screenY='+topPos);

}

/**
 * Cadastrando ou removendo um endereço de e-mail do newsleter.
 */
function cadastraNewsletter(nome,email,acao){
	
	// Validando o endereco de email.
	var EmailValido;
	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	
	if(filter.test(email))
		EmailValido = true;
	else{
		alert("E-mail invalido!");
		EmailValido = false;
	}
	
	// Validando o nome.
	var NomeValido;
	
	if(nome.length > 3){
		NomeValido = true;
	}
	else{
		alert("Nome invalido!");
		NomeValido = false;
	}

	if(EmailValido == true && NomeValido == true)
	{
		// Se o nome e o email forem preenchidos corretamente, segue com o cadastro
		var objAjax = new Ajax("admin/models/newsletter.php", 
		{
				method: "post",
				postBody: {
						acao: acao,
						nome: nome,
						email: email
				},
				
				onComplete: function(r)
				{
						document.getElementById('joural_right2').innerHTML = r;
				}
		});		
		objAjax.request();

	}
	else 
	{
		// Caso haja um erro no preenchimento, alerta o usuario
		alert('Os dados informados estao incorretos. \n Corrija e tente novamente.');
	}
}

/**
 * Funcao que processa e envia o formulario de contato
 */
function enviaContato(nome,email,telefone,cidade,assunto,menssagem){
		
	// Validando o endereco de email.
	var EmailValido;
	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	
	if(filter.test(email))
		EmailValido = true;
	else{
		alert("E-mail invalido!");
		EmailValido = false;
	}
	
	// Validando o nome.
	var NomeValido;
	
	if(nome.length > 3){
		NomeValido = true;
	}
	else{
		alert("Nome invalido!");
		NomeValido = false;
	}

	if(EmailValido == true && NomeValido == true)
	{
		acao = 'enviarEmail';
		// Se o nome e o email forem preenchidos corretamente, segue com o cadastro
		var objAjax = new Ajax("sendmail.php", 
		{
				
				method: "post",
				postBody: {
						acao:acao,
						nome: nome,
						email: email,
						telefone:telefone,
						cidade:cidade,
						assunto:assunto,
						menssagem:menssagem
				},
				
				onComplete: function(r)
				{
						document.getElementById('form').innerHTML = r;
				}
		});		
		objAjax.request();

	}
	else 
	{
		// Caso haja um erro no preenchimento, alerta o usuario
		alert('Os dados informados estao incorretos. \n Corrija e tente novamente.');
	}
}

function webmailLogin(usuario,senha)
{
	/*server_key = 'imap';
	autologin ='0';
	load_frameset = '1';
	
	var objAjax = new Ajax("http://www.artesominstrumentos.com.br/horde/imp/redirect.php", 
		{
				
				method: "post",
				postBody: {
					server_key:server_key,
					autologin:autologin,
					load_frameset:load_frameset,
					imapuser:usuario,
					pass:senha
		},
				
				onComplete: function(r)
				{
						parent.location.href='http://www.artesominstrumentos.com.br/horde/imp/';
				}
		});		
		objAjax.request();
		*/
}