function MM_preloadImages() 
{
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) 
{ 
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() 
{ 
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function Valida(){
	str="";
	if (contact_form.firstname.value==""){
		 if (str==""){
		 		str=str+"- First name\n";		
		 }else{
		 		str=str+"- First name\n";
		 }
	}
	if (contact_form.name.value==""){
		 if (str==""){
		 		str=str+"- Name\n";		
		 }else{
		 		str=str+"- Name\n";
		 }
	}
	if (contact_form.function1.value==""){
		 if (str==""){
		 		str=str+"- Function\n";		
		 }else{
		 		str=str+"- Function\n";
		 }
	}
	if (contact_form.company.value==""){
		 if (str==""){
		 		str=str+"- Company\n";		
		 }else{
		 		str=str+"- Company\n";
		 }
	}
	if (contact_form.email.value==""){
		 if (str==""){
		 		str=str+"- Email Address\n";		
		 }else{
		 		str=str+"- Email Address\n";
		 }
	}
	if (contact_form.city.value==""){
		 if (str==""){
		 		str=str+"- Company location - City\n";		
		 }else{
		 		str=str+"- Company location - City\n";
		 }
	}
	if (contact_form.postalcode.value==""){
		 if (str==""){
		 		str=str+"- Company location - Postal Code\n";		
		 }else{
		 		str=str+"- Company location - Postal Code\n";
		 }
	}
	if (str==""){
		 		contact_form.submit();
		 		}
		else{
		 		alert("Obligatory fields:\n\n"+str);
		 }
}
function Limita_Texto(Nome,Limite) { //v2.0
	if(document.all(Nome).value.length>Limite){
		document.all(Nome).value=document.all(Nome).value.substr(0,Limite);
	}
}

function getkey(e)
{
if (window.event)
   return window.event.keyCode;
else if (e)
   return e.which;
else
   return null;
}

function goodchars(e)
{
var key, keychar;
key = getkey(e);
var goods = " .,:;\"!?-+*=%|\\/#()[]{}$€£@§0123456789abcdefghijklmnopqrstuvwxyz";

if (key == null) return true;

// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();

//alert("KEY: " + key);

// check goodkeys
if (goods.indexOf(keychar) != -1)
	return true;

// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
   return true;

// else return false
return false;
}

function ValidaCampo(Nome,Tipo) 
{
 	ErrorStr="";
  switch (Tipo)
  {
  	case "Int":
  		var ValidChars = "0123456789";
   		var Char;
			valor = document.getElementById(Nome).value;
   		for (i = 0; i < valor.length; i++){ 
      	Char = valor.charAt(i); 
      	if (ValidChars.indexOf(Char) == -1){
         ErrorStr="Os dados inseridos são incorrectos! Por favor, insira novamente.";
      	 document.getElementById(Nome).value='';
      	 document.getElementById(Nome).focus();
        }
      }
  		break
		case "UserPass":
  		var ValidChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
   		var Char;
			valor = document.getElementById(Nome).value;
   		for (i = 0; i < valor.length; i++){ 
      	Char = valor.charAt(i); 
      	if (ValidChars.indexOf(Char) == -1){
         ErrorStr="Os dados inseridos não são válidos para este campo! Só pode inserir numeros ou letras.";
      	 document.getElementById(Nome).value='';
      	 document.getElementById(Nome).focus();
        }
      }
  		break	
		case "Tel":
  		var ValidChars = "0123456789 /-+()";
   		var Char;
			valor = document.getElementById(Nome).value;
   		for (i = 0; i < valor.length; i++){ 
      	Char = valor.charAt(i); 
      	if (ValidChars.indexOf(Char) == -1){
         ErrorStr="Os dados inseridos são incorrectos! Por favor, insira novamente.";
      	 document.getElementById(Nome).value='';
      	 document.getElementById(Nome).focus();
        }
      }
  		break
		case "Tel_Lista":
  		var ValidChars = "0123456789,";
   		var Char;
			valor = document.getElementById(Nome).value;
   		for (i = 0; i < valor.length; i++){ 
      	Char = valor.charAt(i); 
      	if (ValidChars.indexOf(Char) == -1){
         ErrorStr="Os dados inseridos são incorrectos! Por favor, insira novamente.";
      	 document.getElementById(Nome).value='';
      	 document.getElementById(Nome).focus();
        }
      }
  		break									
  	case "Email":
  			if(document.getElementById(Nome).value != ''){
      		if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(document.getElementById(Nome).value)){
      	 		ErrorStr="O e-mail está incorrecto! Por favor, insira novamente.";
      			document.getElementById(Nome).value='';
      			document.getElementById(Nome).focus();
      	 	}
				}	
        break
		case "Data":
  			if(document.all(Nome).value != ''){
      		document.all(Nome).value=CorrigeData(document.all(Nome).value);
				}	
        break
		case "DataHora":
  			if(document.all(Nome).value != ''){
      		document.all(Nome).value=CorrigeDataHora(document.all(Nome).value);
				}	
        break
  }
	if (ErrorStr!=""){
		 alert(ErrorStr);
	}
}
