function data(checkStr,checkOK) {
	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) {
			return (false);
			break;
		}
	}
	return (true);
}	

//função para ver se encontrou o caracter ' ou |
function caracteres_esp(checkStr){
	var checkOK = "'|";
	var i ;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
		if (ch == checkOK.charAt(j)){
			return (false);
		} 
	}
	return (true);
} 
//-----------------------------------------------------
//Validação dos campos do form da mailing
//-----------------------------------------------------
function ValidaMailing(theForm,id) {
	//Valida o campo "Email"
	var checkemail = "@.";
	var checkStr = theForm.mail.value;
	var emailValid = false;
	var emailAt = false;
	var emailPeriod = false;
	for (i = 0;  i < checkStr.length;  i++) {
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkemail.length;  j++) {
			if (ch == checkemail.charAt(j) && ch == "@")
			emailAt = true;
			if (ch == checkemail.charAt(j) && ch == ".")
			emailPeriod = true;
			if (emailAt && emailPeriod)
			break;
			if (j == checkemail.length)
			break;
		}
		if (emailAt && emailPeriod) {
			emailValid = true
			break;
		}
	}
	
	//Endereço de email incorrecto
	if (!emailValid && (theForm.mail.value != "")) {
		if (id == "1")
			alert("Endereço de \"E-mail\" inválido.");
		if (id == "2")
			alert("Invalid \"E-mail\" format.");
	    theForm.mail.focus();		
	    return (false);
	}		
	if (theForm.mail.value == "") {
		if (id == "1")
			alert("O campo \"E-mail\" não pode ser nulo.");
		if (id == "2")
			alert("The field \"E-mail\" cannot be null.");			
	    theForm.mail.focus();
	    return (false);
	}	
	if (!caracteres_esp(theForm.mail.value)){
		if (id == "1")
			alert("O campo \"E-mail\" não pode conter o(s) caracter(es) \'\ e \|\ ."); 
		if (id == "2")
			alert("The field \"E-mail\" cannot contain the character(s) \'\ and \|\ .");			
		theForm.mail.focus();
		return (false);
	}	
}

//-----------------------------------------------------
//Validação da pesquisa
//-----------------------------------------------------
function ValidaPesquisa(theForm,id){
	if (theForm.pesquisa.value == ""){
		if (id == "1")	
			alert("Por favor preencha o campo \"Pesquisa\".");
		if (id == "2")
			alert("The field \"Search\" cannot be null.");						
		theForm.pesquisa.focus();
		return (false);
	}
	if (!caracteres_esp(theForm.pesquisa.value)){
		if (id == "1")
			alert("O campo \"Pesquisa\" não pode ter o(s) caracter(es) \'\ e \|\ .");   
		if (id == "2")
			alert("The field \"Search\" cannot contain the character(s) \'\ and \|\ .");						
		theForm.pesquisa.focus();
		return (false);
	}

return (true);
}

//-----------------------------------------------------
// campos do formulário de contacto
//-----------------------------------------------------
function valida_contacto(form,id) {
	if (id == "1")
    	if ( CampoNulo(form.nome, "Nome", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.nome, "Name", id) ) return;
	if (id == "1")
   		if ( CampoNulo(form.morada, "Morada", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.morada, "Address", id) ) return;
	if (id == "1")		
    	if ( CampoNulo(form.codpostal1, "Código Postal", id) || CampoNulo(form.codpostal2, "Código Postal", id) ) return;
  	if (id == "2")
		if ( CampoNulo(form.codpostal1, "Postal Code", id) || CampoNulo(form.codpostal2, "Postal Code", id) ) return;
  	if (id == "1")		
  		if ( CampoNulo(form.localidade, "Localidade", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.localidade, "City", id) ) return;
	if ( !Telefone(form.telefone,form.telemovel,id) ) return;
	if (id == "1")		
		if ( CampoNulo(form.email, "E-mail", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.email, "E-mail", id) ) return;
	if (id == "1")		
		if ( CampoNulo(form.assunto, "Mensagem", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.assunto, "Message", id) ) return;
	form.submit();
}

//-----------------------------------------------------
// campos do formulário de inscrição no Tecparques
//-----------------------------------------------------
function valida_inscricao(form,id) {
	if (id == "1")
    	if ( CampoNulo(form.nome, "Nome", id) ) return;
	if (id == "2")
    	if ( CampoNulo(form.nome, "Name", id) ) return;		
	if (id == "1")
   		if ( CampoNulo(form.instituicao, "Instituição", id) ) return;
	if (id == "2")
   		if ( CampoNulo(form.instituicao, "Institution", id) ) return;		
	if (id == "1")		
		if ( CampoNulo(form.email, "E-mail", id) ) return;
	if (id == "2")		
		if ( CampoNulo(form.email, "E-mail", id) ) return;		
	if (id == "1")		
		if ( CampoNulo(form.telefone, "Telefone", id) ) return;	
	if (id == "2")		
		if ( CampoNulo(form.telefone, "Phone", id) ) return;			
	form.submit();
}

//-----------------------------------------------------
// campos do formulário de candidatura
//-----------------------------------------------------
function valida_candidatura(form,id) {
	if (id == "1")
    	if ( CampoNulo(form.nome, "Nome", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.nome, "Name", id) ) return;
	if (id == "1")
   		if ( CampoNulo(form.morada, "Morada", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.morada, "Address", id) ) return;
	if (id == "1")		
    	if ( CampoNulo(form.codpostal1, "Código Postal", id) || CampoNulo(form.codpostal2, "Código Postal", id) ) return;
  	if (id == "2")
		if ( CampoNulo(form.codpostal1, "Postal Code", id) || CampoNulo(form.codpostal2, "Postal Code", id) ) return;
  	if (id == "1")		
  		if ( CampoNulo(form.localidade, "Localidade", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.localidade, "City", id) ) return;
	if ( !Telefone(form.telefone,form.telemovel,id) ) return;
	if (id == "1")		
		if ( CampoNulo(form.email, "E-mail", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.email, "E-mail", id) ) return;
	if (id == "1")		
		if ( CampoNulo(form.datanascimento, "Data de Nascimento", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.datanascimento, "Birth Date", id) ) return;
	if (id == "1")
		if ( CampoNulo(form.anosexperiencia, "Anos de Experiência", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.anosexperiencia, "Years of Experience", id) ) return;
	if (id == "1")
		if ( CampoNulo(form.funcao, "Função a que se candidata", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.funcao, "Position", id) ) return;
	if (id == "1")
		if ( CampoNulo(form.formacaoacademica, "Formação Académica", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.formacaoacademica, "Academic Courses", id) ) return;
	if (id == "1")
		if ( CampoNulo(form.formacaoprofissional, "Formação Profissional", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.formacaoprofissional, "Other professional courses", id) ) return;
	if (id == "1")
		if ( CampoNulo(form.experienciaprofissional, "Experiência Profissional", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.experienciaprofissional, "Experience", id) ) return;
	if (id == "1")
		if ( CampoNulo(form.ferramentas, "Ferramentas", id) ) return;
	if (id == "2")
		if ( CampoNulo(form.ferramentas, "IT Skills", id) ) return;
	form.submit();
}

//-----------------------------------------------------
// mensagem de validação do campo nulo
//-----------------------------------------------------
function CampoNulo(form,campo,id){
    if( (form.value=="") || (form.value==null) )  {
		if (id == "1")
        	alert("O campo " + campo + " é de preenchimento obrigatório.");
		if (id == "2")
			alert("The field " + campo + " cannot be null.");
        form.focus();
        return true;
    } 
	else {
        return false;
    }
}

//-----------------------------------------------------
// validação dos campos telefone
//-----------------------------------------------------
function Telefone(campo1,campo2,id){

    if(eval(campo1).value=="" && eval(campo2).value==""){
		if (id == "1")
        	alert('Tem de prencher pelo menos um dos telefones.');
		if (id == "2")
			alert('Please, fill at least one phone number.');
        return false;        
    }
    return true;
}

function Telefone(campo1,campo2,id){

    if(eval(campo1).value=="" && eval(campo2).value==""){
		if (id == "1")
        	alert('Tem de prencher pelo menos um dos telefones.');
		if (id == "2")
			alert('Please, fill at least one phone number.');
        return false;        
    }
    return true;
}
//-----------------------------------------------------
// valida campo numérico
//-----------------------------------------------------
function numero(letras){    
        if(isNaN(Number(letras))==true){return false;}   
}

function numeros(campo, NCaracteres,id){   
    valor=new String(campo);
    comp=valor.length;
    
    if(comp!=NCaracteres){
		if (id == "1")
        	alert('O campo deverá ter '+NCaracteres+' caracteres.')
		if (id == "2")
			alert('Please, fill in the field '+NCaracteres+' characters.')
        return false;
    }
    else{
        pos=new Array(comp)
    
    for(var i=0;i<comp;i++){
        pos[i]=valor.substr(i,1);
        letra=pos[i]
        if(numero(letra)==false){
			if (id == "1")
            	alert('Os caracteres inseridos deverão ser numéricos.');
			if (id == "2")
				alert('Use numerical characters only to fill in the field.');
            return false;
            }
        }
    }
    return true;    
}

function numerico(campo,id){
    valor=new String(campo);
    valorlong=valor.length;
            pos=new Array(valorlong)
    
    for(var i=0;i<valorlong;i++){
        
        pos[i]=valor.substr(i,1);
        letra=pos[i]
        if(numero(letra)==false){
			if (id == "1")
            	alert('Os caracteres inseridos deverão ser numéricos.');
			if (id == "2")
				alert('Use numerical characters only to fill in the field.');
            return false;
            }
        }           
}

//-----------------------------------------------------
// valida campo de email
//-----------------------------------------------------
function mail(form,id){
	//Valida o campo "Email"
	var checkemail = "@.";
	var checkStr = form;
	var emailValid = false;
	var emailAt = false;
	var emailPeriod = false;
	for (i = 0;  i < checkStr.length;  i++) {
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkemail.length;  j++) {
			if (ch == checkemail.charAt(j) && ch == "@")
			emailAt = true;
			if (ch == checkemail.charAt(j) && ch == ".")
			emailPeriod = true;
			if (emailAt && emailPeriod)
			break;
			if (j == checkemail.length)
			break;
		}
		if (emailAt && emailPeriod) {
			emailValid = true
			break;
		}
	}
	
	//Endereço de email incorrecto
	if (!emailValid && (form != "")) {
		if (id == "1")
			alert("Endereço de \"e-mail\" inválido.");
		if (id == "2")
			alert("Invalid \"E-mail\" format.");
	   // theform.email.focus();		
	    return (false);
	}	
	return true;
}

//-----------------------------------------------------
// validação da data
//-----------------------------------------------------
var dtCh= "/";

function isInteger(s){
    var i;
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }

    return true;
}

function stripCharsInBag(s, bag){
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
    for (var i = 1; i <= n; i++) {
        this[i] = 31
        if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
        if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr,id){
    var daysInMonth = DaysArray(12)
    var pos1=dtStr.indexOf(dtCh)
    var pos2=dtStr.indexOf(dtCh,pos1+1)
    var strDay=dtStr.substring(0,pos1)
    var strMonth=dtStr.substring(pos1+1,pos2)
    var strYear=dtStr.substring(pos2+1)
    strYr=strYear
    if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
    if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
    for (var i = 1; i <= 3; i++) {
        if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
    }
    month=parseInt(strMonth)
    day=parseInt(strDay)
    year=parseInt(strYr)
    if (pos1==-1 || pos2==-1){
		if (id == "1")
        	alert("O formato da data deverá ser: dd/mm/aaaa")
		if (id == "2")
			alert("Valid date example: dd/mm/aaaa")
        return false
    }
    if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
        if (id == "1")
			alert("Insira um dia válido.")
		if (id == "2")
			alert("Insert a valid day.")
        return false
    }	
    if (strMonth.length<1 || month<1 || month>12){
		if (id == "1")
        	alert("Insira um mês válido.")
		if (id == "2")
			alert("Insert a valid month.")
        return false
    }
    if (strYear.length != 4 || year==0){
       if (id == "1")
	   		alert("Insira um ano válido.")
		if (id == "2")
			alert("Insert a valid year.")
        return false
    }
    if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
        if (id == "1")
			alert("Insira uma data válida.")
		if (id == "2")
			alert("Insert a valid date.")
        return false
    }
return true
}

function ValidateForm(valor,id){
    var dt=valor;
    if (isDate(dt,id)==false){
        return false
    }
    return true
 }


