// FUNÇÕES AJAX

function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  return xmlHttp;
}

function ajaxSubscreveNewsletter(formulario)
{
	var msg="";
	
	if (!emailValido(formulario.subscricao.value.trim())) {msg += "Deve introduzir um email válido.\n"; formulario.subscricao.select();}

	if (msg != "") { alert(msg); }
	else
	{
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
		alert ("O seu browser não suporta AJAX!");
		return;
		} 
		
		formulario.botao.disabled=true;
		xmlHttp.onreadystatechange=function()
		{
			if (xmlHttp.readyState < 4)
			{
				document.getElementById("news-info").innerHTML = '<img src="img/ajax-loader/mini.gif" alt="ajax" align="top" /> A subscrever...';
			}
			else if (xmlHttp.readyState == 4)
			{
				document.getElementById("news-info").innerHTML = xmlHttp.responseText;
				setTimeout("clearInnerHTML(document.getElementById('news-info'))",15000)
				formulario.reset();
				formulario.botao.disabled=false;
			}
		}
		
		var url = "ajaxSubscreveNewsletter.php";
		var params = "";
		for (var i=0; i < formulario.length; i++)
		{
			if (i > 0) params += "&"
			params += formulario.elements[i].name + "=" + escape(encodeURI(formulario.elements[i].value));
		}
		
		xmlHttp.open("POST", url, true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
	}
}

function ajaxSubmetePedidoContacto(formulario)
{
	var msg="";
	
	if (formulario.mensagem.value == "") {msg += "Deve introduzir uma mensagem.\n"; formulario.mensagem.select();}
	if (!emailValido(formulario.email.value.trim())) {msg += "Deve introduzir um email válido.\n"; formulario.email.select();}

	if (msg != "") { alert(msg); }
	else
	{
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
		alert ("O seu browser não suporta AJAX!");
		return;
		} 
		
		formulario.botao.disabled=true;
		xmlHttp.onreadystatechange=function()
		{
			if (xmlHttp.readyState < 4)
			{
				document.getElementById("info").innerHTML = '<img src="img/ajax-loader.gif" alt="ajax" align="top" /> A enviar pedido...';
			}
			else if (xmlHttp.readyState == 4)
			{
				document.getElementById("info").innerHTML = xmlHttp.responseText;
				setTimeout("clearInnerHTML(document.getElementById('news-info'))",5000)
				formulario.reset();
				formulario.botao.disabled=false;
			}
		}
		
		var url = "ajaxPedidoContacto.php";
		var params = "";
		for (var i=0; i < formulario.length; i++)
		{
			if (i > 0) params += "&"
			params += formulario.elements[i].name + "=" + escape(encodeURI(formulario.elements[i].value));
		}
		
		xmlHttp.open("POST", url, true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);

	}
}

function ajaxEnviaNewsletter(formulario)
{
	var msg="";
	
	if (formulario.corpo.value == "" || formulario.titulo.value == "")
	{
		msg += "Deve preencher ambos os campos.\n";
		if (formulario.titulo.value == "")
			{ formulario.titulo.select(); }
		else if (formulario.corpo.value == "")
			{ formulario.corpo.select(); }
	}

	if (msg != "") { alert(msg); }
	else
	{
		if (confirm("Confirma o envio?"))
		{
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null)
			{
			alert ("O seu browser não suporta AJAX!");
			return;
			} 
			
			formulario.botao.disabled=true;
			xmlHttp.onreadystatechange=function()
			{
				if (xmlHttp.readyState < 4)
				{
					document.getElementById("info").innerHTML = '<img src="../img/ajax-loader.gif" alt="ajax" align="top" /> A enviar newsletter...';
				}
				else if (xmlHttp.readyState == 4)
				{
					document.getElementById("info").innerHTML = xmlHttp.responseText;
					setTimeout("clearInnerHTML(document.getElementById('info'))",5000)
					formulario.reset();
					formulario.botao.disabled=false;
				}
			}
			var url = "ajaxEnviaNewsletter.php";
			var params = "";
			for (var i=0; i < formulario.length; i++)
			{
				if (i > 0) params += "&";
				params += formulario.elements[i].name + "=" + escape(encodeURI(formulario.elements[i].value));
			}
			
			xmlHttp.open("POST", url, true);
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp.setRequestHeader("Content-length", params.length);
			xmlHttp.setRequestHeader("Connection", "close");
			xmlHttp.send(params);
		}
	}
}

function ajaxReenviaConfirmacao(email,elem)
{
	if (confirm("Confirma o reenvio da confirmação para "+email+"?"))
	{
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
		alert ("O seu browser não suporta AJAX!");
		return false;
		} 
		
		xmlHttp.onreadystatechange=function()
		{
			if (xmlHttp.readyState < 4)
			{
				document.getElementById(elem).innerHTML = '<img src="../img/ajax-loader.gif" alt="ajax" align="top" /> Enviando...';
			}
			else if (xmlHttp.readyState == 4)
			{
				document.getElementById(elem).innerHTML = xmlHttp.responseText;
			}
		}
		
		var url = "../ajaxReenviaConfirmacao.php";
		url = url + "?email=" + encodeURIComponent(email);
		url = url + "&sid=" + Math.random();
		
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);

	}
	return false;
}

function ajaxEliminaSubscricao(email)
{
	if (confirm("Deseja eliminar "+email+" da lista?"))
	{
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
		alert ("O seu browser não suporta AJAX!");
		return false;
		} 
		
		xmlHttp.onreadystatechange=function()
		{
			if (xmlHttp.readyState < 4)
			{
				document.getElementById("listasubscritores").innerHTML = '<img src="../img/ajax-loader.gif" alt="ajax" align="top" /> A actualizar a lista de subscritores...';
			}
			else if (xmlHttp.readyState == 4)
			{
				document.getElementById("listasubscritores").innerHTML = xmlHttp.responseText;
			}
		}
		
		var url = "ajaxEliminaSubscricao.php";
		url = url + "?email=" + encodeURIComponent(email);
		url = url + "&sid=" + Math.random();
		
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);

	}
	return false;
}

function ajaxActualizaSeccao(formulario)
{
	var msg="";
	
	if (formulario.texto.value == "")
	{
		msg += "Deve preencher o texto da seccção.\n";
		formulario.texto.select();
	}

	if (msg != "") { alert(msg); }
	else
	{
		if (confirm("Confirma a actualização desta secção?"))
		{
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null)
			{
			alert ("O seu browser não suporta AJAX!");
			return;
			} 
			
			formulario.botao.disabled=true;
			xmlHttp.onreadystatechange=function()
			{
				if (xmlHttp.readyState < 4)
				{
					document.getElementById("info").innerHTML = '<img src="../img/ajax-loader.gif" alt="ajax" align="top" /> A actualizar campo...';
				}
				else if (xmlHttp.readyState == 4)
				{
					document.getElementById("info").innerHTML = xmlHttp.responseText;
					setTimeout("clearInnerHTML(document.getElementById('info'))",5000)
					formulario.botao.disabled=false;
				}
			}
			
			var url = "ajaxActualizaSeccao.php";
			var params = "";
			for (var i=0; i < formulario.length; i++)
			{
				if (i > 0) params += "&";
				params += formulario.elements[i].name + "=" + escape(formulario.elements[i].value);
			}
			
			xmlHttp.open("POST", url, true);
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp.setRequestHeader("Content-length", params.length);
			xmlHttp.setRequestHeader("Connection", "close");
			xmlHttp.send(params);
		}
	}
}

function ajaxInsereNoticia(formulario)
{
	var msg="";
	
	if (formulario.corpo.value == "" || formulario.titulo.value == "")
	{
		msg += "Deve preencher ambos os campos.\n";
		if (formulario.titulo.value == "")
			{ formulario.titulo.select(); }
		else if (formulario.corpo.value == "")
			{ formulario.corpo.select(); }
	}

	if (msg != "") { alert(msg); }
	else
	{
		if (confirm("Confirma a nova notícia?"))
		{
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null)
			{
			alert ("O seu browser não suporta AJAX!");
			return;
			} 
			
			formulario.botao.disabled=true;
			xmlHttp.onreadystatechange=function()
			{
				if (xmlHttp.readyState < 4)
				{
					document.getElementById("info").innerHTML = '<img src="../img/ajax-loader.gif" alt="ajax" align="top" /> A inserir not&iacute;cia...';
				}
				else if (xmlHttp.readyState == 4)
				{
					document.getElementById("info").innerHTML = xmlHttp.responseText;
					setTimeout("clearInnerHTML(document.getElementById('info'))",5000)
					formulario.reset();
					formulario.botao.disabled=false;
				}
			}
			var url = "ajaxInsereNoticia.php";
			var params = "";
			for (var i=0; i < formulario.length; i++)
			{
				if (i > 0) params += "&";
				params += formulario.elements[i].name + "=" + escape(formulario.elements[i].value);
			}
			
			xmlHttp.open("POST", url, true);
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp.setRequestHeader("Content-length", params.length);
			xmlHttp.setRequestHeader("Connection", "close");
			xmlHttp.send(params);
		}
	}
}

function ajaxEliminaNoticia(id)
{
	if (confirm("Tem a certeza que deseja eliminar?"))
	{
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
		alert ("O seu browser não suporta AJAX!");
		return false;
		} 
		
		xmlHttp.onreadystatechange=function()
		{
			if (xmlHttp.readyState < 4)
			{
				document.getElementById("listanoticias").innerHTML = '<img src="../img/ajax-loader.gif" alt="ajax" align="top" /> A actualizar a lista das not&iacute;cias...';
			}
			else if (xmlHttp.readyState == 4)
			{
				document.getElementById("listanoticias").innerHTML = xmlHttp.responseText;
			}
		}
		
		var url = "ajaxEliminaNoticia.php";
		url = url + "?id=" + encodeURIComponent(id);
		url = url + "&sid=" + Math.random();
		
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);

	}
	return false;
}

function ajaxActualizaNoticia(formulario)
{
	var msg="";
	
	if (formulario.corpo.value == "" || formulario.titulo.value == "")
	{
		msg += "Deve preencher ambos os campos.\n";
		if (formulario.titulo.value == "")
			{ formulario.titulo.select(); }
		else if (formulario.corpo.value == "")
			{ formulario.corpo.select(); }
	}

	if (msg != "") { alert(msg); }
	else
	{
		if (confirm("Confirma a alterações à notícia?"))
		{
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null)
			{
			alert ("O seu browser não suporta AJAX!");
			return;
			} 
			
			formulario.botao.disabled=true;
			xmlHttp.onreadystatechange=function()
			{
				if (xmlHttp.readyState < 4)
				{
					document.getElementById("info").innerHTML = '<img src="../img/ajax-loader.gif" alt="ajax" align="top" /> A actualizar a not&iacute;cia...';
				}
				else if (xmlHttp.readyState == 4)
				{
					document.getElementById("info").innerHTML = xmlHttp.responseText;
					setTimeout("clearInnerHTML(document.getElementById('info'))",5000)
					formulario.botao.disabled=false;
				}
			}
			var url = "ajaxActualizaNoticia.php";
			var params = "";
			for (var i=0; i < formulario.length; i++)
			{
				if (i > 0) params += "&";
				params += formulario.elements[i].name + "=" + escape(formulario.elements[i].value);
			}
			
			xmlHttp.open("POST", url, true);
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp.setRequestHeader("Content-length", params.length);
			xmlHttp.setRequestHeader("Connection", "close");
			xmlHttp.send(params);
		}
	}
}

function ajaxEliminaCategoria(id)
{
	if (confirm("Tem a certeza que deseja eliminar esta categoria?\n(Se a esta contiver produtos nada acontecerá)"))
	{
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
		alert ("O seu browser não suporta AJAX!");
		return false;
		} 
		
		xmlHttp.onreadystatechange=function()
		{
			if (xmlHttp.readyState < 4)
			{
				document.getElementById("listacategorias").innerHTML = '<img src="../img/ajax-loader.gif" alt="ajax" align="top" /> A actualizar a lista das categorias...';
			}
			else if (xmlHttp.readyState == 4)
			{
				document.getElementById("listacategorias").innerHTML = xmlHttp.responseText;
			}
		}
		
		var url = "ajaxEliminaCategoria.php";
		url = url + "?id=" + encodeURIComponent(id);
		url = url + "&sid=" + Math.random();
		
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);

	}
	return false;
}

function ajaxEliminaProduto(id)
{
	if (confirm("Tem a certeza que deseja eliminar este produto?"))
	{
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
		alert ("O seu browser não suporta AJAX!");
		return false;
		} 
		
		xmlHttp.onreadystatechange=function()
		{
			if (xmlHttp.readyState < 4)
			{
				document.getElementById("listaprodutos").innerHTML = '<img src="../img/ajax-loader.gif" alt="ajax" align="top" /> A actualizar a lista dos produtos...';
			}
			else if (xmlHttp.readyState == 4)
			{
				document.getElementById("listaprodutos").innerHTML = xmlHttp.responseText;
			}
		}
		
		var url = "ajaxEliminaProduto.php";
		url = url + "?id=" + encodeURIComponent(id);
		url = url + "&sid=" + Math.random();
		
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);

	}
	return false;
}


// OUTRAS FUNCÕES

// Devolve false se o argumento não for um dígito
function isDigit(num)
{
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
}

// Devolve false se o argumento não for um inteiro
function isInteger(val)
{
	if (val.length == 0) {return false;}
	for(var i=0;i<val.length;i++)
	{
		if(!isDigit(val.charAt(i))){return false;}
	}
	return true;
}

// Adiciona o método Trim a todas as strings
String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/g,"");
}

// Devolve false se o argumento não for um URL válido
function isURL(val)
{
	retorno = false;
	val=val.trim();
	lengthValue = val.length;
	if (lengthValue != 0)
	{
		var j = new RegExp();
		j.compile("^[A-Za-z]+://[A-Za-z0-9-]+\.[A-Za-z0-9]+");
		if (j.test(val))
		{
			retorno = true;
		}
	}
	return retorno;
}


function emailValido(str)
{
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str))
		return true;
	else
		return false;
}

function emailActivo(campo)
{
	campo.style.borderColor="#F58345";
	if (campo.value == campo.defaultValue) campo.value="";
}
function emailInactivo(campo)
{
	campo.style.borderColor="";
	if (campo.value == "") campo.value = campo.defaultValue;
}

function desactivaCampo(isto,aquilo)
{
	if (isto.checked)
	{
		aquilo.value=aquilo.defaultValue;
		aquilo.disabled=true;
	}
	else
	{
		aquilo.disabled=false;
	}
}

function clearInnerHTML(obj)
{
	obj.innerHTML = "";
}

function validaInsereCategoria(formulario)
{
	var msg="";
	
	if (formulario.nome.value == "")
	{
		msg += "Deve preencher o nome da categoria.\n";
		formulario.nome.select();
	}

	if (msg != "") { alert(msg); }
	else { return confirm('Tem a certeza que deseja inserir esta categoria?\n(Tal só será possível se ainda não existir nenhuma com o mesmo nome.)') }
	
	return false
}

function validaEditaCategoria(formulario)
{
	var msg="";
	
	if (formulario.nome.value == "")
	{
		msg += "Deve preencher o nome da categoria.\n";
		formulario.nome.select();
	}

	if (msg != "") { alert(msg); }
	else { return confirm('Tem a certeza que deseja alterar esta categoria?') }
	
	return false
}

function validaInsereProduto(formulario)
{
	var msg="";
	
	if (formulario.nome.value == "")
	{
		msg += "Deve preencher o nome do produto.\n";
		formulario.nome.select();
	}

	if (msg != "") { alert(msg); }
	else { return confirm('Tem a certeza que deseja inserir este produto?\n(Tal só será possível se ainda não existir nenhum com o mesmo nome.)') }
	
	return false
}
function validaEditaProduto(formulario)
{
	var msg="";
	
	if (formulario.nome.value == "")
	{
		msg += "Deve preencher o nome do produto.\n";
		formulario.nome.select();
	}

	if (msg != "") { alert(msg); }
	else { return confirm('Tem a certeza que deseja alterar este produto?') }
	
	return false
}

function mostraFichaTecnica(pagina)
{
	window.open(pagina,'fichatecnica','width=460,height=460,location=no,menubar=no,resizeble=no,scrollbars=no,status=no,titlebar=no,toolbar=no');
	return false;
}