//---Carla Bárbara 18/04/2001
//-------------------------------------------------------variaveis globais
var defaultEmptyOK = false;
var reInteger = /^\d+$/
var reSignedInteger = /^[+|-]*\d+$/
function imprimir(){

	if ((document.all) && (navigator.appVersion>="4") && (navigator.appVersion<"5")){
		print(self);
	}
	else print();

}
//--------------------------------------------------Para validar as datas

//Numero de dias num mes de um ano

function NumDaysIn(mo,yr) {
	if (mo==4 || mo==6 || mo==9 || mo==11) return 30;
	else if ((mo==2) && LeapYear(yr)) return 29;
	else if (mo==2) return 28;
	else return 31;
}
function LeapYear(yr) {
	if (((yr % 4 == 0) && yr % 100 != 0) || yr % 400 == 0) return true;
	else return false;
}
function makeArray(n,ano) {
   for (var i = 1; i <= n; i++) {
      this[i] = NumDaysIn(i,ano);
   } 
   return this
}

//Verificar se é um inteiro com sinal
function isSignedInteger (s)
{   if (isEmpty(s)) 
       if (isSignedInteger.arguments.length == 1) return defaultEmptyOK; //(false)
       else return (isSignedInteger.arguments[1] == true);
    else {
       return reSignedInteger.test(s) //Verifica se faz match com a expressao regular reSignedInteger
    }
}

function isNonnegativeInteger (s)
{   var secondArg = defaultEmptyOK;
    if (isNonnegativeInteger.arguments.length > 1)
        secondArg = isNonnegativeInteger.arguments[1];
    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) >= 0) ) );
}

function isInteger (s)

{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    return reInteger.test(s)
}

function isIntegerInRange (s, a, b)
{   if (isEmpty(s)) 
       if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
       else return (isIntegerInRange.arguments[1] == true);
    if (!isInteger(s, false)) return false;

    var num = parseInt (s);
    return ((num >= a) && (num <= b));
}


function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function daysInFebruary (year)
{ 
  return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
}


function isDay (s)
{   if (isEmpty(s)) 
       if (isDay.arguments.length == 1) return defaultEmptyOK;
       else return (isDay.arguments[1] == true);   
    return isIntegerInRange (s, 1, 31);
}


function isMonth (s)
{   if (isEmpty(s)) 
       if (isMonth.arguments.length == 1) return defaultEmptyOK;
       else return (isMonth.arguments[1] == true);
    return isIntegerInRange (s, 1, 12);
}

function isYear (s)
{   if (isEmpty(s)) 
       if (isYear.arguments.length == 1) return defaultEmptyOK;
       else return (isYear.arguments[1] == true);
    if (!isNonnegativeInteger(s)) return false;
    return ((s.length == 2) || (s.length == 4));
}



function isDate (year, month, day)
{   
    if (! (isYear(year, false) && isMonth(month, false) && isDay(day, false))) return false;
    var intYear = parseInt(year);
    var intMonth = parseInt(month);
    var intDay = parseInt(day);
	var daysInMonth = new makeArray(12,intYear);
	//alert(intYear + "-" + intMonth + "-" + intDay + ".(dias do mes = " + daysInMonth[intMonth] + ")");
    if (intDay > daysInMonth[intMonth]) return false; 
    if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false;
    return true;
}


//Validar as datas do primeiro e segundo proponentes

	function validaData(form1){
		var str = "";
		var dia1=form1.dianasc1[form1.dianasc1.selectedIndex].value;
		var mes1=form1.mesnasc1[form1.mesnasc1.selectedIndex].value;
		var ano1=form1.anonasc1[form1.anonasc1.selectedIndex].value;
		if (!isDate(ano1,mes1,dia1))
			str = "Data do primeiro proponente inválida!\n";
		if (form1.dianasc2)
		{
			var dia2=form1.dianasc2[form1.dianasc2.selectedIndex].value;
			var mes2=form1.mesnasc2[form1.mesnasc2.selectedIndex].value;
			var ano2=form1.anonasc2[form1.anonasc2.selectedIndex].value;
			if (!isDate(ano2,mes2,dia2))
				str += "Data do segundo proponente inválida!\n";
		}
		if (str == ""){ 
			return true;
		}
		else{
			alert(str);
			return false;
		}
	}
	
	function validaMontante(form1,a,b){
		var montante = parseInt(form1.valorEmprestimoPretendido.value);
		var limiteA = parseInt(a);
		var limiteB = parseInt(b);
		if (limiteA == 0 && limiteB>0){
			if ( montante > limiteB){
				alert("Deve introduzir um valor abaixo de "+limiteB +" Euros.");
				return false;
			}
			else{
				return true;
			}			
		}
		else{
			if(montante<limiteA || montante>limiteB){
				alert("(Empréstimo pretendido) Deve introduzir um valor entre "+a+" e "+b+" Euros.");
				return false;
			}
			else{			
				return true;
			}
			}
	}
	
	function validaPrazo(form1){
		var prazo = parseInt(form1.prazoOperacao.value);
		alert("Prazo de Operacao" + prazo);
	
	}

 function executa(ficheiro,f){ 		 		
		f.action=ficheiro;
		f.submit();
	}

function anterior(f){
	f.action=getReferrer();
	f.submit();
}


	function validaIdade(form1,l){	
		var limite = parseInt(l);
		var id = parseInt(form1.anonasc1.value);
		//alert("Idade " + id);
		var a = parseInt(form1.anoActual.value);
		var prazo = parseInt(form1.prazoOperacao[form1.prazoOperacao.selectedIndex].value);
		//alert("Ano actual " + a);
		//alert("Prazo " + prazo);
		var aux = a-id;
		//alert("Ano actual - idade = " + aux);
		aux = aux + prazo;		
		//alert("Idade + prazo = " + aux);
		if (aux <= limite)
		return true;
		else{
		alert(" O Prazo Operação + idade do 1º Proponente <= "+ l +" anos");
		return false;
		}
	}

	function abreJanelaPrint(url){
		var janela = window.open(url,"ssc_print","toolbar=yes,status=no,menubar=no,scrollbars=yes,resizable=yes,dependent=yes,width=640,height=480,left=20,top=20");
		janela.focus();
	}
