//======================================================
// Função valida o preenchimento dos forms de dados
//======================================================

function activateFlash()
{
	var objects = document.getElementsByTagName("object"); 
	for (var i = 0; i < objects.length; i++) 
	{ 
	  objects[i].outerHTML = objects[i].outerHTML; 
	} 
}

function validarDadosUpload(lForm)
{
	var ok=true;
	//=============================================================================
	// Testar o campo UploadFileName
	//=============================================================================
	if (ok)
	{
		if (isEmpty(lForm.UploadFileName.value) || lForm.UploadFileName.value.length<=0)
		{
			alert("Por favor, o preenchimento do campo com o nome do ficheiro é obrigatório.")
			lForm.UploadFileName.focus();			ok=false;
		}
	}

	return (ok);
}

//================================================
//* Função que verifica se uma string só tem espacos
//================================================
function isEmpty(lString)
{
	var empty=true;
	var i=0;		
	while (i<=lString.length)
	{
		if (lString.charAt(i) != " " && lString.charAt(i) != "")
		{
			empty=false;
			break;
		}
		i++;
	}
	return(empty);
}



//=======================================//
//Esta funcao testa se o formato do email
// é correcto.
//=======================================//
	function isEmail(str) {
	  // are regular expressions supported?
	  var supported = 0;
	  if (window.RegExp) {
	    var tempStr = "a";
	    var tempReg = new RegExp(tempStr);
	    if (tempReg.test(tempStr)) supported = 1;
	  }
	  if (!supported) 
	    return (str.indexOf(".") >= 2) && (str.indexOf("@") > 0);
	  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	  return (!r1.test(str) && r2.test(str));
	}
//================================================
//* Função que verifica se uma string numerica contem 
//* apenas caracteres válidos
//================================================
function isNumOk(lString)
{
	var checkOK = "1234567890";
	var checkStr = lString;
	var allValid = true;
	for (i = 0;  i < checkStr.length;  i++)
	{
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
		  if (ch == checkOK.charAt(j))
			break;
		if (j == checkOK.length)
		{
			allValid = false;
			break;
		}
	}
	return (allValid);
}




//================================================
//* Função que que remove um determinado caracter
//* e retorna a string
//================================================
function removeChar(lString,lChar)
{
	var removeChar = lChar;
	var checkStr = lString;
	var returnStr = "";
	

	for (i = 0;  i < checkStr.length;  i++)
	{
		ch = checkStr.charAt(i);
		if (ch!=removeChar)
			returnStr=returnStr + ch
	}
	return (returnStr);
}





function saltoNavegacao(lUrl)
{

	//alert(lUrl);
	self.location.href=lUrl

}


//================================================
//* Função que verifica se os dados do comentário
//* foram preenchidos correctamente
//================================================
function verificarComentario(lForm)
{
	var ok=true;
	//=============================================================================
	// Testar o campo Nome
	//=============================================================================
	if (ok)
	{
		if (isEmpty(lForm.nome.value) || lForm.nome.value.length<=0)
		{
			alert("Por favor, o preenchimento do campo Nome é obrigatório e deverá ser preenchido correctamente.")
			lForm.nome.focus();			ok=false;
		}
	}

	//=============================================================================
	// Testar o campo Email
	//=============================================================================
	if (ok)
	{
		if (! isEmail(lForm.email.value))
		{
			alert("Por favor, o preenchimento do campo Email é obrigatório e deverá ser preenchido correctamente.")
			lForm.email.focus();			ok=false;
		}
	}

	//=============================================================================
	// Testar o campo Comentário
	//=============================================================================
	if (ok)
	{
		if (isEmpty(lForm.comentario.value) || lForm.comentario.value.length<=0 || lForm.comentario.value.length>5000)
		{
			alert("Por favor, o preenchimento do campo Comentário é obrigatório, deverá ser preenchido correctamente e não deverá conter mais de 5.000 caracteres.")
			lForm.comentario.focus();			ok=false;
		}
	}


	return (ok)

}




//================================================
//* Função que verifica se os dados do Registo
//* foram preenchidos correctamente
//================================================
function verificarDadosRegisto(lForm)
{
	var ok=true;
	//=============================================================================
	// Testar o campo Nome
	//=============================================================================
	if (ok)
	{
		if (isEmpty(lForm.nome.value) || lForm.nome.value.length<=0)
		{
			alert("Por favor, o preenchimento do campo Nome é obrigatório e deverá ser preenchido correctamente.")
			lForm.nome.focus();			ok=false;
		}
	}

	//=============================================================================
	// Testar o campo Email
	//=============================================================================
	if (ok)
	{
		if (! isEmail(lForm.email.value))
		{
			alert("Por favor, o preenchimento do campo Email é obrigatório e deverá ser preenchido correctamente.")
			lForm.email.focus();			ok=false;
		}
	}

	//=============================================================================
	// Testar o campo Nickname
	//=============================================================================
	if (ok)
	{
		if (isEmpty(lForm.nickname.value) || lForm.nickname.value.length<=2)
		{
			alert("Por favor, o preenchimento do campo Nickname é obrigatório e deverá ser preenchido correctamente.")
			lForm.nickname.focus();			ok=false;
		}
	}

	//=============================================================================
	// Testar o campo Nickname
	//=============================================================================
	if (ok)
	{
		if (isEmpty(lForm.telemovel.value) || lForm.telemovel.value.length<=8 || ! isNumOk(lForm.telemovel.value))
		{
			alert("Por favor, o preenchimento do campo Telemóvel é obrigatório e deverá ser preenchido correctamente.")
			lForm.telemovel.focus();			ok=false;
		}
	}


	if (ok)
		lForm.submit();

}




//================================================
//* Função que verifica se os dados do form de login
//* foram preenchidos
//================================================
function verificarDadosLogin(lForm)
{
	var ok=true;
	//=============================================================================
	// Testar o campo Username
	//=============================================================================
	if (ok)
	{
		if (isEmpty(lForm.username.value) || lForm.username.value.length<=0)
		{
			alert("Por favor, o preenchimento do campo Username é obrigatório e deverá ser preenchido correctamente.")
			lForm.username.focus();			ok=false;
		}
	}

	//=============================================================================
	// Testar o campo Password
	//=============================================================================
	if (ok)
	{
		if (isEmpty(lForm.password.value) || lForm.password.value.length<=0)
		{
			alert("Por favor, o preenchimento do campo Password é obrigatório e deverá ser preenchido correctamente.")
			lForm.password.focus();			ok=false;
		}
	}
	return(ok);
}



//================================================
//* Função que abre a janela para visualização
//* da imagem do upload
//================================================
function visualizarImagem(lImagem, lPath)
{
	window.open('../VerImagem.asp?Imagem=' + lPath + lImagem,'VerImagemArtista','height=400,width=500,scrollbars=yes,menu=off,location=off');
}



//================================================
//* Função que verifica se, na administração,
//* quando é solicitada a remoção de registos
//* foi escolhido algum registo.
//================================================
function verificarApagar (lCheck)
{
	var ok=false;
	if (! isNaN(lCheck.length))
	{
		for (var i=0; i<lCheck.length; i++)
		{
			if (lCheck[i].checked)
			{
				ok=true;
			}
		}
	}
	else
		ok=lCheck.checked
	if (!ok)
		alert("Deverá indicar pelo menos um registo a ser removido.")
	else
		ok=confirm('Confirma a remoção do(s) Registo(s) seleccionado(s)?')

	return(ok)
}


//================================================
//* Função que verifica o correcto preenchimento
//* do campo com a expressão a pesquisar
//================================================
function verificarExpressaoPesquisa(lForm)
{
	var ok=true;
	//=============================================================================
	// Testar o campo com a expressão a pesquisar
	//=============================================================================
	if (isEmpty(lForm.expressao.value) || lForm.expressao.value.length<=0)
	{
		alert("Indique, por favor a expressão a pesquisar.")
		lForm.expressao.focus();		ok=false;
	}
	if (ok)
		lForm.submit();

}




	//----------------------------------------------------
	// A função retorna um valor random dentro do limites
	// minimo e máximo indicados
	//----------------------------------------------------
	function random_number(min,max){
		return (Math.round((Math.random()*(max-min))+min))
	}
	
	//----------------------------------------------------
	// Função que retorna um nome a utilizar em várias
	// situações e que é composto pela data e um número
	// aleatório
	//----------------------------------------------------
	function get_auto_name(){
		var data = new Date()
		return('' + data.getYear() + '' + (data.getMonth()+1) + '' + data.getDate() + '' + data.getHours() + '' + data.getMinutes() + '' + data.getSeconds() + '' + random_number(1,1000))
	
	}
	
	
	//----------------------------------------------------
	// Função que lê um cookie da coleccção de cookies do 
	// browser. São cookies que só vivem durante a sessão
	//----------------------------------------------------
	function get_cookie(nome) {
		var search = nome + "="
		var returnvalue = "";
		if (document.cookie.length > 0) {
			offset = document.cookie.indexOf(search)
			// if cookie exists
			if (offset != -1) { 
				offset += search.length
				// set index of beginning of value
				end = document.cookie.indexOf(";", offset);
				// set index of end of cookie value
				if (end == -1) end = document.cookie.length;
				returnvalue=unescape(document.cookie.substring(offset, end))
			}
		}
		return returnvalue;
	} 
	
	
	//----------------------------------------------------
	// Função que escreve um cookie na coleccção de cookies do 
	// browse. São cookies que só vivem durante a sessão
	//----------------------------------------------------
	function set_cookie(nome,valor){
		document.cookie=nome + "=" + valor
	}



	//----------------------------------------------------
	// Função que retorna um nome a utilizar em várias
	// situações e que é composto pela data e um número
	// aleatório
	//----------------------------------------------------
	function get_auto_name(){
		var data = new Date()
		return('' + data.getYear() + '' + (data.getMonth()+1) + '' + data.getDate() + '' + data.getHours() + '' + data.getMinutes() + '' + data.getSeconds() + '' + random_number(1,1000))
	
	}
	