function chkdate(strDay,strMonth,strYear) {
var strDatestyle = "US"; //United States date style
//var strDatestyle = "EU";  //European date style
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
var err = 0;

intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
}
}
else {
if (intday > 28) {
err = 10;
return false;
}
}
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}

function periodo(date1, date2) {

    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24;

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime();
    var date2_ms = date2.getTime();

    // Calculate the difference in milliseconds
    // var difference_ms = Math.abs(date1_ms - date2_ms)
    var difference_ms = date2_ms - date1_ms;

    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY);
}


    function checkmod(num) {
      val=0;
      for (pos=0; pos<num.length-1; ++pos) {
        val += (1 * num.charAt(pos)) * (9 - pos);
      }
      ctl = val % 11 ? (11 - val % 11) % 10 : 0;

      return ctl == (1 * num.charAt(pos));
    }

    function validanif(num) {
      var erro="";
      if(num.length != 9) erro = "[Contribuinte] inválido!\n";
      if (!checkmod(num)) erro = "[Contribuinte] inválido!\n";
      return (erro);
    }

    function acti(nome,idt) {
   		document.formulario.actividade.value = unescape(idt);
    }

	function limpa(num) {
   		if (num==1) document.formulario.categoria1.value = '';
   		if (num==2) document.formulario.categoria2.value = '';
   		if (num==3) document.formulario.categoria3.value = '';
    }

	function actu(nome,idt,num) {
   		if (num==1) document.formulario.categoria1.value = unescape(idt);
   		if (num==2) document.formulario.categoria2.value = unescape(idt);
   		if (num==3) document.formulario.categoria3.value = unescape(idt);
    }

	function janela() {
	    window.open("act_empresas.php","_blank","top=0,left=0,position=5,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=520,height=350");
    }

	function janelap() {
	    window.open("../act_empresas.php","_blank","top=0,left=0,position=5,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=520,height=350");
    }

	function janela2(num) {
	    window.open("act_sites.php?num="+num,"_blank","top=0,left=0,position=5,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=520,height=350");
    }

	function janela3(num) {
	    window.open("act_empresas2.php?num="+num,"_blank","top=0,left=0,position=5,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=520,height=350");
    }

	function calcula_pub(campo) {
        var re = /^\d+(\.\d+)?$/;
		if ((re.test(campo)) || (!campo))	 {
	        var valor = campo*0.03;
			document.formulario.investimento.value="€ " + valor.toFixed(2);
        } else document.formulario.investimento.value = "Erro no Limite";
	}

	function actualiza(campo) {
		var num_caracteres = 255-campo.length;
		if (num_caracteres < 0) document.formulario.conta.style.color = "#f00000"; else document.formulario.conta.style.color = "#000000";
		document.formulario.conta.value=Math.abs(num_caracteres);
	}

	function verifica_email(campo) {
        var erroi = "";
		var emailFilter=/^.+@.+\..{2,3}$/;
		if (!(emailFilter.test(campo))) erroi = "[E-Mail] inválido!\n";
        var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
		if ((campo.match(illegalChars)) && (erroi=="")) erroi = "[E-Mail] inválido!\n";
        return(erroi);
    }

	function verifica_contacto(campo,nome) {
        var erroi = "";
        var re = /^\d+(\.\d+)?$/;
		if (!re.test(campo)) erroi = "[" + nome + "] inválido! Foram detectados caracteres inválidos\n";
        if (campo.length<8) erroi = "[" + nome + "] inválido! O " + nome + " deve ter no mínimo 8 caracteres\n";
        return(erroi);
    }

	function verifica_limite(campo) {
        var erroi = "";
        var re = /^\d+(\.\d+)?$/;
		if (!re.test(campo)) erroi = "[Limite Diário] inválido! Foram detectados caracteres inválidos\n";
        return(erroi);
    }

    function verifica_login_pass(campo,nome) {
        var erroi = "";
        if (campo.length<5) erroi = "[" + nome + "] inválido! O " + nome + " deve ter no mínimo 5 caracteres\n";
        return(erroi);
    }

	function submeter() {
      var erro = "";

      if (document.formulario.nome.value=="") erro = erro + "[Nome] obrigatório!\n";
      	else if (document.formulario.nome.value.length<3) erro = erro + "[Nome] inválido. O nome deve ter no minimo 3 caracteres!\n";

      if (document.formulario.morada.value=="") erro = erro + "[Morada] obrigatória!\n";

      if ((document.formulario.cpostal1.value=="") && (document.formulario.cpostal2.value=="") && (document.formulario.cpostal3.value=="")) erro = erro + "[Código Postal] obrigatório!\n";
      	else if ((document.formulario.cpostal1.value=="") || (document.formulario.cpostal2.value=="") || (document.formulario.cpostal3.value=="")) erro = erro + "[Código Postal] incompleto!\n";
        	else if ((document.formulario.cpostal3.value.length<3) || (document.formulario.cpostal2.value.length<3) || (document.formulario.cpostal1.value.length<4)) erro = erro + "[Código Postal] errado!\n";
            	else if (document.formulario.cpostal1.value == "    ") erro = erro + "[Código Postal] errado!\n";

      if (document.formulario.telefone.value=="") erro = erro + "[Telefone] obrigatório!\n";
      	else erro = erro + verifica_contacto(document.formulario.telefone.value,'Telefone');

	  if (document.formulario.fax.value!="") erro = erro + verifica_contacto(document.formulario.fax.value,'Fax');

	  if (document.formulario.telemovel.value!="") erro = erro + verifica_contacto(document.formulario.telemovel.value,'Telemóvel');

      if (document.formulario.email.value!="") erro = erro + verifica_email(document.formulario.email.value);

      if ((document.formulario.site.value!="") && (document.formulario.site.value.length<5)) erro = erro + "[Site] inválido!\n";

      if (document.formulario.actividade.value=="") erro = erro + "[Actividade] obrigatória!\n";

      if ((document.formulario.descricao.value!="") && (document.formulario.descricao.value.length>255)) erro = erro + "[Descrição] inválida! Tem mais de 255 caracteres!\n";

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}

	function submeter2() {
      var erro = "";

      if (document.formulario.nome.value=="") erro = erro + "[Nome] obrigatório!\n";
      	else if (document.formulario.nome.value.length<3) erro = erro + "[Nome] inválido. O nome deve ter no minimo 3 caracteres!\n";

      if ((document.formulario.site.value!="") && (document.formulario.site.value.length<5)) erro = erro + "[Site] inválido!\n";

      if ((document.formulario.categoria1.value=="") && (document.formulario.categoria2.value=="") && (document.formulario.categoria3.value=="") && (document.formulario.categoria4.value=="")) erro = erro + "[Categoria] obrigatória! Seleccione pelo menos uma.\n";

      if ((document.formulario.descricao.value!="") && (document.formulario.descricao.value.length>255)) erro = erro + "[Descrição] inválida! Tem mais de 255 caracteres!\n";

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}

	function submeter3() {
      var erro = "";

      if (document.al_formulario.tt_telefone.value=="") erro = erro + "[Telefone] obrigatório!\n";
      	else erro = erro + verifica_contacto(document.al_formulario.tt_telefone.value,'Telefone');

      if (erro!="") {
        window.alert("ERROS DETECTADOS NOS DADOS:\n\n" + erro);
      } else document.al_formulario.submit();
	}

   	function submeter4() {
      var erro = "";

      if (document.formulario.nome.value=="") erro = erro + "[Nome] obrigatório!\n";
      	else if (document.formulario.nome.value.length<3) erro = erro + "[Nome] inválido. O nome deve ter no minimo 3 caracteres!\n";

      if (document.formulario.telefone.value=="") erro = erro + "[Telefone] obrigatório!\n";
      	else erro = erro + verifica_contacto(document.formulario.telefone.value,'Telefone');

      if (document.formulario.email.value=="") erro = erro + "[E-Mail] obrigatório!\n";
         else erro = erro + verifica_email(document.formulario.email.value);

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}

	function submeter5() {
      var erro = "";

      if (document.formulario.nome.value=="") erro = erro + "[Nome] obrigatório!\n";
      	else if (document.formulario.nome.value.length<3) erro = erro + "[Nome] inválido. O nome deve ter no minimo 3 caracteres!\n";

      if (document.formulario.contribuinte.value=="") erro = erro + "[Contribuinte] obrigatório!\n";
      	else erro = erro + validanif(document.formulario.contribuinte.value);

      if (document.formulario.morada.value=="") erro = erro + "[Morada] obrigatória!\n";

      if (document.formulario.telefone.value=="") erro = erro + "[Telefone] obrigatório!\n";
      	else erro = erro + verifica_contacto(document.formulario.telefone.value,'Telefone');

	  if (document.formulario.fax.value!="") erro = erro + verifica_contacto(document.formulario.fax.value,'Fax');

	  if (document.formulario.telemovel.value!="") erro = erro + verifica_contacto(document.formulario.telemovel.value,'Telemóvel');

      if (document.formulario.email.value=="") erro = erro + "[E-Mail] obrigatório!\n";
      	else erro = erro + verifica_email(document.formulario.email.value);

      if ((document.formulario.site.value!="") && (document.formulario.site.value.length<5)) erro = erro + "[Site] inválido!\n";

      if (document.formulario.actividade.value=="") erro = erro + "[Actividade] obrigatória!\n";

      if ((document.formulario.descricao.value!="") && (document.formulario.descricao.value.length>255)) erro = erro + "[Descrição] inválida! Tem mais de 255 caracteres!\n";

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}

	function submeter6() {
      var erro = "";

      if (document.formulario.responsavel.value=="") erro = erro + "[Nome Completo] obrigatório!\n";
      	else if (document.formulario.responsavel.value.length<8) erro = erro + "[Nome Completo] inválido. O nome deve ter no minimo 8 caracteres!\n";

      if (document.formulario.email_directo.value=="") erro = erro + "[E-Mail Directo] obrigatório!\n";
      	else erro = erro + verifica_email(document.formulario.email_directo.value);

      if (document.formulario.xlogin.value=="") erro = erro + "[Login] obrigatório!\n";
      	else erro = erro + verifica_login_pass(document.formulario.xlogin.value,"Login");

      if (document.formulario.xpassword.value=="") erro = erro + "[Password] obrigatória!\n";
      	else erro = erro + verifica_login_pass(document.formulario.xpassword.value,"Password");

	  if (document.formulario.xpassword.value!="") {
	      if (document.formulario.xpasswordc.value=="") erro = erro + "[Repetir Password] obrigatório! Confirme a password.\n";
	      	else if (document.formulario.xpasswordc.value!=document.formulario.xpassword.value) {
	        	erro = erro + "[Password] não confirmada! Por favor repita novamente a password\n";
	            document.formulario.xpasswordc.value = "";
	            document.formulario.xpassword.value = "";
	        }
      }

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
    }

   	function submeter7() {
      var erro = "";

      if (document.formulario.pub_limite.value!="") erro = erro + verifica_limite(document.formulario.pub_limite.value);

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}

   	function submeter8() {
      var erro = "";

      if (document.formulario.email_directo.value=="") erro = erro + "[E-Mail Directo] obrigatório!\n";
      	else erro = erro + verifica_email(document.formulario.email_directo.value);

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}

   	function submeter9() {
      var erro = "";

      if (document.formulario.responsavel.value=="") erro = erro + "[Nome Completo] obrigatório!\n";
      	else if (document.formulario.responsavel.value.length<8) erro = erro + "[Nome Completo] inválido. O nome deve ter no minimo 8 caracteres!\n";

      if (document.formulario.email_directo.value=="") erro = erro + "[E-Mail Directo] obrigatório!\n";
      	else erro = erro + verifica_email(document.formulario.email_directo.value);

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
    }

	function submeter10() {
      var erro = "";

      if (document.formulario.nome.value=="") erro = erro + "[Nome] obrigatório!\n";
      	else if (document.formulario.nome.value.length<3) erro = erro + "[Nome] inválido. O nome deve ter no minimo 3 caracteres!\n";

      if (document.formulario.telefone.value=="") erro = erro + "[Telefone] obrigatório!\n";
      	else erro = erro + verifica_contacto(document.formulario.telefone.value,'Telefone');

	  if (document.formulario.telemovel.value!="") erro = erro + verifica_contacto(document.formulario.telemovel.value,'Telemóvel');

      if (document.formulario.email.value!="") erro = erro + verifica_email(document.formulario.email.value);

      if ((document.formulario.site.value!="") && (document.formulario.site.value.length<5)) erro = erro + "[Site] inválido!\n";

      if ((document.formulario.descricao.value!="") && (document.formulario.descricao.value.length>255)) erro = erro + "[Descrição] inválida! Tem mais de 255 caracteres!\n";

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}

	function submeter11() {
      var erro = "";

      if (document.formulario.tipo_promotor[1].checked==true) {
	      if (document.formulario.nome.value=="") erro = erro + "[Nome] obrigatório!\n";
    	  	else if (document.formulario.nome.value.length<3) erro = erro + "[Nome] inválido. O nome deve ter no minimo 3 caracteres!\n";

	      if (document.formulario.morada.value=="") erro = erro + "[Morada] obrigatória!\n";

	      if (document.formulario.telefone.value!="") erro = erro + verifica_contacto(document.formulario.telefone.value,'Telefone');

		  if (document.formulario.telemovel.value!="") erro = erro + verifica_contacto(document.formulario.telemovel.value,'Telemóvel');

	      if (document.formulario.email.value=="") erro = erro + "[E-Mail] obrigatório!\n";
	      	else erro = erro + verifica_email(document.formulario.email.value);
       } else {
	      if (document.formulario.tt_telefone.value=="") erro = erro + "[Telefone] obrigatório!\n";
    	  	else erro = erro + verifica_contacto(document.formulario.tt_telefone.value,'Telefone');

	      if (document.formulario.responsavel.value=="") erro = erro + "[Responsável] obrigatório!\n";
       }
      if (erro!="") {
   	    window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}

	function submeter12() {
      var erro = "";
      var d1 = 1; d2 = 1;

      if ((document.formulario.categoria1.value=="") && (document.formulario.categoria2.value=="") && (document.formulario.categoria3.value=="")) erro = erro + "Tem que introduzir pelo menos uma actividade!\n";

      if (!chkdate(document.formulario.dia_inicio.value,document.formulario.mes_inicio.value,document.formulario.ano_inicio.value)) {erro = erro + "[Data Inicial] errada!\n"; d1=0;}

      if (!chkdate(document.formulario.dia_fim.value,document.formulario.mes_fim.value,document.formulario.ano_fim.value)) {erro = erro + "[Data Final] errada!\n"; d2=0;}

	  if ((d1==1) && (d2==1)) {
            data_inicial = new Date();
            data_inicial.setYear(document.formulario.ano_inicio.value);
			data_inicial.setMonth(document.formulario.mes_inicio.value-1);
			data_inicial.setDate(document.formulario.dia_inicio.value);

            data_final = new Date();
            data_final.setYear(document.formulario.ano_fim.value);
			data_final.setMonth(document.formulario.mes_fim.value-1);
			data_final.setDate(document.formulario.dia_fim.value);

            dif = periodo(data_inicial, data_final);
            if (dif<0) erro = erro + "A [Data Final] tem que ser posterior à [Data Inicial]!\n";
            if (dif>30) erro = erro + "Um projecto só pode ser licitado durante 30 dias! Colocou um intervalo entre datas de "+dif+" dias!\n";
      }

      if (document.formulario.xpassword.value=="") erro = erro + "[Password] obrigatória!\n";
      	else erro = erro + verifica_login_pass(document.formulario.xpassword.value,"Password");

	  if (document.formulario.xpassword.value!="") {
	      if (document.formulario.xpasswordc.value=="") erro = erro + "[Repetir Password] obrigatório! Confirme a password.\n";
	      	else if (document.formulario.xpasswordc.value!=document.formulario.xpassword.value) {
	        	erro = erro + "[Password] não confirmada! Por favor repita novamente a password\n";
	            document.formulario.xpasswordc.value = "";
	            document.formulario.xpassword.value = "";
	        }
      }

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}

	function submeter13() {
      var erro = "";

	      if (document.formulario.email.value=="") erro = erro + "[E-Mail] obrigatório!\n";
	      	else erro = erro + verifica_email(document.formulario.email.value);

      if (erro!="") {
        window.alert("ERROS DETECTADOS NO FORMULÁRIO:\n\n" + erro);
      } else document.formulario.submit();
	}