function esDNI (dni)
{
	var lg=dni.length;
	if (lg != 9)
		return false;
	tab = new Array();
	tab[0] 	= ' ' ;
	tab[1]  = 'R';
	tab[2]  = 'W';
	tab[3]  = 'A';
	tab[4]  = 'G';
	tab[5]  = 'M';
	tab[6]  = 'Y';
	tab[7]  = 'F';
	tab[8]  = 'P';
	tab[9]  = 'D';
	tab[10] = 'X';
	tab[11] = 'B';
	tab[12] = 'N';
	tab[13] = 'J';
	tab[14] = 'Z';
	tab[15] = 'S';
	tab[16] = 'Q';
	tab[17] = 'V';
	tab[18] = 'H';
	tab[19] = 'L';
	tab[20] = 'C';
	tab[21] = 'K';
	tab[22] = 'E';
	tab[23] = 'T';
	if (tab[dni.charAt(lg-1)] <1)
		return false;
	for (i=0; i<lg-1; i++)
		if (isNaN(dni.charAt(i)))
			return false;
	var cifras=eval(dni.substr(0, lg-1));
	var tmp=Math.floor(cifras/23);
	tmp *= 23;
	tmp = cifras-tmp;
	if (tmp<1 || tmp>23)
		return false;
	var tmp2 = dni.charAt(lg-1);
	tmp2 = tmp2.toUpperCase();
	if (tab[tmp] != tmp2)
		return false;
	return true;
}
function esVISA(visa, codigo)
{
	var lg=visa.length;
	if (lg != 16)
		return false;
	if (codigo.length != 3)
		return false;
	if (isNaN(codigo))
		return false;
	var total = 0;
	for (i=lg-1; i>=0; i--)
	{
		if (isNaN(visa.charAt(i)))
			return false;
		else
			if (i%2)
				total += eval(visa.charAt(i));
			else
			{
				var tmp	= "" + 2*eval(visa.charAt(i));
				for (j=0; j<tmp.length; j++)
					total += eval(tmp.charAt(j));
			}
	}
	if (total%10)
		return false;
	return true;
}
function esFechaVISA(mes, ano)
{
	if (mes.length != 2 || isNaN(mes.length))
		return false;
	if (ano.length != 2 || isNaN(ano.length))
		return false;
	if (eval(mes)>12 || eval(mes)<0)
		return false;
	var tmp  = eval("20"+ano)*12 + eval(mes);
	d = new Date();
	var tmp2 = d.getFullYear()*12 + d.getMonth()+1;
	if ((tmp - tmp2)>60 || (tmp - tmp2)<0)
		return false;
	return true;
}
function tamanoCorrecto(campo, tamano, exacto)
{
	//exacto==1 -> lg de campo tiene que ser igual a tamano
	//exacto==0 -> lg de campo tiene que ser inferior o igual a tamano
	if (exacto && campo.length == tamano)
		return true;
	if (!exacto && campo.length <= tamano)
		return true;
	return false;
}
function esNIBPortugues(nib)
{
	if (!tamanoCorrecto(nib, 21, 1))
		return false;
	var s = 0;
	if (isNaN(nib))
		return false;
	for (j=1; j<20; j++)
	{
		switch (j)
		{
			case  1 : 
				s = s + eval(nib.charAt(j-1))*73;
				break;
			case  2 : 
				s = s + eval(nib.charAt(j-1))*17;
				break;
			case  3 : 
				s = s + eval(nib.charAt(j-1))*89;
				break;
			case  4 : 
				s = s + eval(nib.charAt(j-1))*38;
				break;
			case  5 : 
				s = s + eval(nib.charAt(j-1))*62;
				break;
			case  6 : 
				s = s + eval(nib.charAt(j-1))*45;
				break;
			case  7 : 
				s = s + eval(nib.charAt(j-1))*53;
				break;
			case  8 : 
				s = s + eval(nib.charAt(j-1))*15;
				break;
			case  9 : 
				s = s + eval(nib.charAt(j-1))*50;
				break;
			case 10 : 
				s = s + eval(nib.charAt(j-1))*5;
				break;
			case 11 : 
				s = s + eval(nib.charAt(j-1))*49;
				break;
			case 12 : 
				s = s + eval(nib.charAt(j-1))*34;
				break;
			case 13 : 
				s = s + eval(nib.charAt(j-1))*81;
				break;
			case 14 : 
				s = s + eval(nib.charAt(j-1))*76;
				break;
			case 15 : 
				s = s + eval(nib.charAt(j-1))*27;
				break;
			case 16 : 
				s = s + eval(nib.charAt(j-1))*90;
				break;
			case 17 : 
				s = s + eval(nib.charAt(j-1))*9;
				break;
			case 18 : 
				s = s + eval(nib.charAt(j-1))*30;
				break;
			case 19 : 
				s = s + eval(nib.charAt(j-1))*3;
				break;
		}
	}
	resto = s%97;
	resto = 98 - resto;
	if (eval(nib.substr(19,2)) != resto)
		return false;
	tab = new Array();
	var i = 0;
	tab[i++] 	= '0007' ;
	tab[i++] 	= '0010' ;
	tab[i++] 	= '0012' ;
	tab[i++] 	= '0018' ;
	tab[i++] 	= '0019' ;
//	tab[i++] 	= '0021' ;
	tab[i++] 	= '0023' ;
	tab[i++] 	= '0025' ;
	tab[i++] 	= '0027' ;
	tab[i++] 	= '0029' ;
//	tab[i++] 	= '0030' ;
	tab[i++] 	= '0031' ;
	tab[i++] 	= '0032' ;
	tab[i++] 	= '0033' ;
	tab[i++] 	= '0034' ;
	tab[i++] 	= '0035' ;
	tab[i++] 	= '0036' ;
	tab[i++] 	= '0038' ;
	tab[i++] 	= '0040' ;
	tab[i++] 	= '0041' ;
	tab[i++] 	= '0045' ;
	tab[i++] 	= '0046' ;
	tab[i++] 	= '0049' ;
	tab[i++] 	= '0059' ;
	tab[i++] 	= '0066' ;
	tab[i++] 	= '0071' ;
	tab[i++] 	= '0076' ;
	tab[i++] 	= '0078' ;
	tab[i++] 	= '0079' ;
	tab[i++] 	= '0083' ;
	tab[i++] 	= '0092' ;
	tab[i++] 	= '0097' ;
	tab[i++] 	= '0156' ;
	tab[i++] 	= '0160' ;
	tab[i++] 	= '0168' ;
	tab[i++] 	= '0170' ;
	tab[i++] 	= '5180' ;
	tab[i++] 	= '5340' ;
	tab[i++] 	= '5200' ;
	tab[i++] 	= '0098' ;
	tab[i++] 	= '0043' ;
	tab[i++] 	= '0022' ;
	for (i=0; i<tab.length; i++)
		if (tab[i]==nib.substr(0,4))
			return true;
	return false;
}
function esTelPortugues(tel)
{
	if (!tamanoCorrecto(tel, 9, 1))
		return false;
	if (isNaN(tel))
		return false;
	if (tel.charAt(0) != '2')
		return false;
	if (tel.charAt(1) == '0')
		return false;
	return true;
}
function esMovPortugues(tel)
{
	if (!tamanoCorrecto(tel, 9, 1))
		return false;
	if (isNaN(tel))
		return false;
	if (tel.charAt(0) != '9')
		return false;
	if (tel.charAt(1) != '1' && tel.charAt(1) != '3' && tel.charAt(1) != '6')
		return false;
	return true;
}
function activarNIB(form, value)
{
	if (value == "03")
	{
		form.nib.disabled=false;
		form.mensalidadestb.disabled=false;
		form.mensalidadesvisa.disabled=true;
		form.anovisa.disabled=true;
		form.mesvisa.disabled=true;
		form.visa1.disabled=true;
		form.visa2.disabled=true;
		document.getElementById("reemb").innerHTML="";
	}
	if (value == "04")
	{
		form.nib.disabled=true;
		form.mensalidadestb.disabled=true;
		form.mensalidadesvisa.disabled=true;
		form.anovisa.disabled=true;
		form.mesvisa.disabled=true;
		form.visa1.disabled=true;
		form.visa2.disabled=true;
		document.getElementById("reemb").innerHTML="Pago de uma só vez: 152,55€.";
	}
	if (value == "02")
	{
		form.nib.disabled=true;
		form.mensalidadestb.disabled=true;
		form.mensalidadesvisa.disabled=false;
		form.anovisa.disabled=false;
		form.mesvisa.disabled=false;
		form.visa1.disabled=false;
		form.visa2.disabled=false;
		document.getElementById("reemb").innerHTML="";
	}
		
}
function activarSec(form)
{
	if (form.sec.checked==true)
	{
		form.moradasec.disabled=false;
		form.localidadesec.disabled=false;
		form.cod1sec.disabled=false;
		form.cod2sec.disabled=false;
		form.cidadesec.disabled=false;
	}
	else
	{
		form.moradasec.disabled=true;
		form.localidadesec.disabled=true;
		form.cod1sec.disabled=true;
		form.cod2sec.disabled=true;
		form.cidadesec.disabled=true;
	}
}
function isEmail(email) {
//Modificación basada en el ejemplo de Bit Bucket Heaven
//Updated to be used with MAC-OS
var boolSalida = true;
    var invalidChars = " ~\'^\`\"*+=\\|][(){}$&!#%/:,;";
    // Checkea valor nulo "null"
    if (email == "")boolSalida=false;
    // Checkea caracteres inválidos definidos en "invalidChars"
    for (var i=0; i<invalidChars.length; i++) {
        var badChar = invalidChars.charAt(i);
        if (email.indexOf(badChar,0) > -1)boolSalida=false;
    }
    var lengthOfEmail = email.length;
    if ((email.charAt(lengthOfEmail - 1) == ".") || (email.charAt(lengthOfEmail - 2) == "."))boolSalida=false;
    var Pos = email.indexOf("@",1);
    if (email.charAt(Pos + 1) == ".")boolSalida=false;
    while ((Pos < lengthOfEmail) && ( Pos != -1)) {
        Pos = email.indexOf(".",Pos);
        if (email.charAt(Pos + 1) == ".")boolSalida=false;
        if (Pos != -1)Pos++;
    }
    // Por lo menos debe haber una @
    var atPos = email.indexOf("@",1);
    if (atPos == -1)boolSalida=false;
    // Pero solo una @
    if (email.indexOf("@",atPos+1) != -1)boolSalida=false;
    // Tambien checkea para al menos un punto "." despues de la @
    var periodPos = email.indexOf(".",atPos);
    if (periodPos == -1)boolSalida=false;
    if (periodPos+3 > email.length)boolSalida=false;
    return boolSalida;
}

function mensualidades (txt, elt)
{
	if (eval(document.getElementById(elt).value)==0)
		document.getElementById(txt).innerHTML='s';
	else
		if (eval(document.getElementById(elt).value)!=1)
			document.getElementById(txt).innerHTML="s de "+Math.round((149.55/eval(document.getElementById(elt).value)*100))/100+"€, <small>mais 3€ de despesas de envio, incluídas na primeira mensalidade.</small>";
		else
			document.getElementById(txt).innerHTML="&nbsp;de 152.55€";
	return;
}

function selectRadio(form, valor)
{
	form.hid_pago.value=valor;
}
function formatMesODia(i)
{
	if (i<10)
		return "0"+i+"";
	else
		return ""+i+"";
}
function getMonthName(i)
{
	switch(i)
	{
	 case  1: return "enero";
	 case  2: return "febrero";
	 case  3: return "marzo";
	 case  4: return "abril";
	 case  5: return "mayo";
	 case  6: return "junio";
	 case  7: return "julio";
	 case  8: return "agosto";
	 case  9: return "septiembre";
	 case 10: return "octubre";
	 case 11: return "noviembre";
	 case 12: return "diciembre";
	 defalut: return "";
	}
}

function compruebaFechaNacimiento()
{
	d = new Date();
	d1 = new Date();
	control=true;
	if (document.forms[0].mesnacimiento.value==0 || document.forms[0].mesnacimiento.value==0 || document.forms[0].mesnacimiento.value==0)
		control=false;
	d.setMonth(document.forms[0].mesnacimiento.value-1);
	d.setDate(document.forms[0].dianacimiento.value);
	d.setYear(document.forms[0].anonacimiento.value);
	diferencia=d1-d;
	diferencia=diferencia/24/60/60/1000;
	if (diferencia<eval("-244"))
		control=false;
	if ((eval(document.forms[0].mesnacimiento.value)==2 || eval(document.forms[0].mesnacimiento.value)==4 || eval(document.forms[0].mesnacimiento.value)==6 || eval(document.forms[0].mesnacimiento.value)==9 || eval(document.forms[0].mesnacimiento.value)==11) && eval(document.forms[0].dianacimiento.value)==31)
		control=false;
	if (eval(document.forms[0].mesnacimiento.value)==2 && eval(document.forms[0].dianacimiento.value)==30)
		control=false;
	if (eval(document.forms[0].mesnacimiento.value)==2 && eval(document.forms[0].dianacimiento.value)==29 && ((eval(document.forms[0].anonacimiento.value)%4) || (!(eval(document.forms[0].anonacimiento.value)%4) && !(eval(document.forms[0].anonacimiento.value)%400))))
		control=false;
	if (control)
	{
		return true;
	}
	return false;
}

function creditos()
{
	if (navigator.appName == 'Microsoft Internet Explorer')
		window.open('creditos.html', '_new','resizable=0,toolbar=0,location=0,directories=0,status=3,menubar=0,scrollbars=1,width=235,height=105,left=250,top=250,screenLeft=250,screenTop=250');
	else
		window.open('creditos.html', '_new','resizable=0,toolbar=0,location=0,directories=0,status=3,menubar=0,scrollbars=1,width=212,height=100,left=250,top=250,screenLeft=250,screenTop=250');
}
function contacto()
{
	if (navigator.appName == 'Microsoft Internet Explorer')
		window.open('contacto_pt.asp', '_new','resizable=0,toolbar=0,location=0,directories=0,status=3,menubar=0,scrollbars=1,width=420,height=700,left=250,top=0,screenLeft=250,screenTop=0');
	else
		window.open('contacto_pt.asp', '_new','resizable=0,toolbar=0,location=0,directories=0,status=3,menubar=0,scrollbars=1,width=422,height=700,left=250,top=0,screenLeft=250,screenTop=0');
}

