	// formulario > contacto
	function valida_form_contacto(f)
	{ 
		
		var nome=Trim(f.nome.value);    
		var telefone=Trim(f.telefone.value);
		var email=Trim(f.email.value);
		var mensagem=Trim(f.mensagem.value);
		//var concelho=Trim(f.concelho.value);
		//var localidade=Trim(f.localidade.value);
		
		var msg='';
		if ( nome == "nome" || nome == "" || nome.indexOf('"') != -1 || nome.indexOf(';') != -1 || nome.indexOf("\\") != -1 || nome.indexOf("/") != -1 || nome.indexOf('&') != -1 || nome.indexOf('=') != -1){msg +="\nNome";}
		if ( telefone == "telefone" || telefone == "" || telefone.indexOf('"') != -1|| telefone.indexOf(';') != -1 || telefone.indexOf("\\") != -1 || telefone.indexOf("/") != -1  || telefone.indexOf('&') != -1 || telefone.indexOf('=') != -1){msg +="\nTelefone";}
		if ( email == "email" || email == "" || email.indexOf("@") == -1 || email.indexOf(".") == -1 || email.indexOf(" ") != -1 || email.indexOf("'") != -1 || email.indexOf(";") != -1 || email.indexOf('"') != -1 || email.indexOf("\\") != -1 || email.indexOf('&') != -1 || email.indexOf('=') != -1){msg += "\nEmail: Insira um email válido.";}
		
		//if ( concelho == "concelho" || concelho == "" || concelho.indexOf('"') != -1 || concelho.indexOf(';') != -1 || concelho.indexOf("\\") != -1 || concelho.indexOf("/") != -1 || concelho.indexOf('&') != -1 || concelho.indexOf('=') != -1){msg +="\nConcelho";}
		//if ( localidade == "localidade" || localidade == "" || localidade.indexOf('"') != -1 || localidade.indexOf(';') != -1 || localidade.indexOf("\\") != -1 || localidade.indexOf("/") != -1 || localidade.indexOf('&') != -1 || localidade.indexOf('=') != -1){msg +="\nLocalidade";}
		
		if ( mensagem == "mensagem"  || mensagem == ""  || mensagem.indexOf('&') != -1 || mensagem.indexOf(';') != -1 || mensagem.indexOf('=') != -1 ){msg +="\nMensagem";}
		if (msg!=""){
			alert('Existem campos vazios ou com caracteres não suportados:\n\n'+msg);
			return false;
		}else{
			return true;
		}
	}
	
		function valida_form_contacto_en()
	{ 
		var f = document.formulario;
		var nome=Trim(f.nome.value);    
		var telefone=Trim(f.telefone.value);
		var email=Trim(f.email.value);
		var mensagem=Trim(f.mensagem.value);
		
		var msg='';
		if ( nome == "name" || nome == "" || nome.indexOf('"') != -1 || nome.indexOf(';') != -1 || nome.indexOf("\\") != -1 || nome.indexOf("/") != -1 || nome.indexOf('&') != -1 || nome.indexOf('=') != -1){msg +="\nName";}
		if ( telefone == "phone" || telefone == "" || telefone.indexOf('"') != -1|| telefone.indexOf(';') != -1 || telefone.indexOf("\\") != -1 || telefone.indexOf("/") != -1  || telefone.indexOf('&') != -1 || telefone.indexOf('=') != -1){msg +="\nPhone";}
		if ( email == "email" || email == "" || email.indexOf("@") == -1 || email.indexOf(".") == -1 || email.indexOf(" ") != -1 || email.indexOf("'") != -1 || email.indexOf(";") != -1 || email.indexOf('"') != -1 || email.indexOf("\\") != -1 || email.indexOf('&') != -1 || email.indexOf('=') != -1){msg += "\nEmail: Insert valid email.";}
		if ( mensagem == "message"  || mensagem == ""  || mensagem.indexOf('&') != -1 || mensagem.indexOf(';') != -1 || mensagem.indexOf('=') != -1 ){msg +="\nMessage";}
		if (msg!=""){
			alert('Empty fields or invalid characters:\n\n'+msg);
			return false;
		}else{
			return true;
		}
	}
	
	
	// preload images
	function MM_preloadImages() 
	{
		if (document.images) {
			var imgFiles = MM_preloadImages.arguments;
			if (document.preloadArray == null) {
				document.preloadArray = new Array();
			}
			var i = document.preloadArray.length;
			with (document) {
				for (var j = 0; j < imgFiles.length; j++) {
					if (imgFiles[j].charAt(0) != "#") {
						document.preloadArray[i] = new Image();
						document.preloadArray[i++].src = imgFiles[j];
					}
				}
			}
		}
	}
	
	//	TRIM
	function Trim(TRIM_VALUE)
	{
				if(TRIM_VALUE.length < 1){
				return"";
				}
				TRIM_VALUE = RTrim(TRIM_VALUE);
				TRIM_VALUE = LTrim(TRIM_VALUE);
				if(TRIM_VALUE==""){
				return "";
				}
				else{
				return TRIM_VALUE;
				}
				}
	function RTrim(VALUE)
	{
				var w_space = String.fromCharCode(32);
				var v_length = VALUE.length;
				var strTemp = "";
				if(v_length < 0){
				return"";
				}
				var iTemp = v_length -1;
				
				while(iTemp > -1){
				if(VALUE.charAt(iTemp) == w_space){
				}
				else{
				strTemp = VALUE.substring(0,iTemp +1);
				break;
				}
				iTemp = iTemp-1;
				
				} //End While
				return strTemp;
				
				}
	function LTrim(VALUE)
	{
				var w_space = String.fromCharCode(32);
				if(v_length < 1){
				return"";
				}
				var v_length = VALUE.length;
				var strTemp = "";
				
				var iTemp = 0;
				
				while(iTemp < v_length){
				if(VALUE.charAt(iTemp) == w_space){
				}
				else{
				strTemp = VALUE.substring(iTemp,v_length);
				break;
				}
				iTemp = iTemp + 1;
				} //End While
				return strTemp;
			}	
	
	// Textarea Trim
	function trimtextarea(campo,limite)
	{
		if (campo.value.length > limite){
			alert("O texto não pode exceder "+limite+" caracteres.");
			var retornacampo= campo.value.slice(0, limite);
			campo.value = retornacampo;
			campo.focus();
		}
	}
	
	// Input Default Values
	function clearlabel (campo, defaultvalue)
	{
		if (campo.value == defaultvalue){ campo.value = "" };
	}
	function filllabel(campo,defaultvalue)
	{
		if (Trim(campo.value) == ""){ campo.value = defaultvalue };

	}
	
		// --- galeria flutuante
	
	// configuracao de galeria
	var offsetfrommouse=[40,1]; //image x,y offsets from cursor position in px. Enter 0,0 for no offset
	if (document.getElementById || document.all) {
		document.write('<div id="trailimageid">');
		document.write('</div>');
	}
	
	function showtrail(imagename,title,description,ratingaverage,ratingnumber,showthumb,height,filetype, tit1, desc_tit1, tit2, desc_tit2, tit3, desc_tit3 )
	{
		if (height > 0){
			currentimageheight = height;
		}
	
		document.onmousemove=followmouse;
	
		cameraHTML = '';
	
		if ( !ratingnumber ){
			ratingnumber = 0;
			ratingaverage = 0;
		}
	
		for(x = 1; x <= 5; x++){
	
			if (ratingaverage >= 1){
				cameraHTML = cameraHTML + '<img src="/images/camera_1.gif">';
			} else if (ratingaverage >= 0.5){
				cameraHTML = cameraHTML + '<img src="/images/camera_05.gif">';
			} else {
				cameraHTML = cameraHTML + '<img src="/images/camera_0.gif">';
			}
		
			ratingaverage = ratingaverage - 1;
		}
	
		cameraHTML = cameraHTML + ' (' + ratingnumber + ' Review';
		if ( ratingnumber > 1 ) cameraHTML += 's';
		cameraHTML = cameraHTML + ')';
	
		newHTML = '<div id="trail">';
		
		newHTML = newHTML + '<h1>' + tit1 + '</h1>';
		newHTML = newHTML + '<div class="trail_txt">' + desc_tit1 + '</div>';
		if(desc_tit2 !='') { newHTML = newHTML + '<h1>' + tit2 + '</h1>'; newHTML = newHTML + '<div class="trail_txt">' + desc_tit2 + '</div>'; }
		if(desc_tit3 !='') { newHTML = newHTML + '<h1>' + tit3 + '</h1>'; newHTML = newHTML + '<div class="trail_txt">' + desc_tit3 + '</div>'; }
		
		//newHTML = newHTML + '' + title + '';
		//newHTML = newHTML + 'Rating: ' + cameraHTML + '<br/>';
		//newHTML = newHTML + description + '';
	

		//newHTML = newHTML + '<img src="' + imagename + '" border="0">';
	
		newHTML = newHTML + '</div></div>';
		gettrailobjnostyle().innerHTML = newHTML;
		gettrailobj().display="inline";
	}
	function followmouse(e)
	{
	
		var xcoord=offsetfrommouse[0]
		var ycoord=offsetfrommouse[1]
	
		var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
		var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight)
	
		//if (document.all){
		//	gettrailobjnostyle().innerHTML = 'A = ' + truebody().scrollHeight + '<br>B = ' + truebody().clientHeight;
		//} else {
		//	gettrailobjnostyle().innerHTML = 'C = ' + document.body.offsetHeight + '<br>D = ' + window.innerHeight;
		//}
	
		if (typeof e != "undefined"){
			if (docwidth - e.pageX < 380){
				xcoord = e.pageX - xcoord - 400; // Move to the left side of the cursor
			} else {
				xcoord += e.pageX;
			}
			if (docheight - e.pageY < (currentimageheight + 110)){
				ycoord += e.pageY - Math.max(0,(210 + currentimageheight + e.pageY - docheight - truebody().scrollTop)); // 210 estava 110
			} else {
				ycoord += e.pageY;
			}
	
		} else if (typeof window.event != "undefined"){
			if (docwidth - event.clientX < 380){
				xcoord = event.clientX + truebody().scrollLeft - xcoord - 400; // Move to the left side of the cursor
			} else {
				xcoord += truebody().scrollLeft+event.clientX
			}
			if (docheight - event.clientY < (currentimageheight + 110)){
				ycoord += event.clientY + truebody().scrollTop - Math.max(0,(110 + currentimageheight + event.clientY - docheight));
			} else {
				ycoord += truebody().scrollTop + event.clientY;
			}
		}
	
		if(ycoord < 0) { ycoord = ycoord*-1; }
		gettrailobj().left=xcoord+"px"
		gettrailobj().top=ycoord+"px"
	}
	function hidetrail()
	{
		gettrailobj().innerHTML = " ";
		gettrailobj().display="none"
		document.onmousemove=""
		gettrailobj().left="-500px"
	
	}
	function gettrailobjnostyle()
	{
		if (document.getElementById)
		return document.getElementById("trailimageid")
		else if (document.all)
		return document.all.trailimagid
	}
	function gettrailobj()
	{
		if (document.getElementById)
		return document.getElementById("trailimageid").style
		else if (document.all)
		return document.all.trailimagid.style
	}
	function truebody()
	{
		return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
	}
