
var vnoPaga = false;
var vdescompte = 0;

function vesSumant(q){
	
	//quota inicial
	if(document.formu.periode1.checked){
		vpreuFinal = 50;
		vcomplet = true;
	}else{
		vpreuFinal = 24;
		vcomplet=false;
	}

	//descomptes i variacions
	if(document.formu.dataPagament1.checked){
		if(vcomplet) vpreuFinal -= 9;
	}else if(document.formu.dataPagament2.checked){
		if(vcomplet) vpreuFinal -= 5;
	}

	if(document.formu.esmembre.checked){
		if(vcomplet) vpreuFinal -= 15;
		else vpreuFinal -= 4;
	}
	
	if(document.formu.esfamiliar.checked){
		if(vcomplet) vpreuFinal -= 20;
		else vpreuFinal -= 6;
	}


	if(document.formu.esextranger.checked){
		if(vcomplet) vpreuFinal -= 20;
		else vpreuFinal -= 6;
	}
	
	vpreuFinal -= vdescompte;
	if(vnoPaga) vpreuFinal = 0;
	
	if(vpreuFinal < 0) vpreuFinal = 0;
	
	if(document.formu.banquet.checked){
		vpreuFinal += 10;
	}

	document.getElementById('total').innerHTML = vpreuFinal + " €";
	document.formu.totalPagar.value = vpreuFinal;
}

function miraCCC(){
	if(document.formu.pagament2.checked){
		if((document.formu.banc).value.length < 4)
			return false;
		if((document.formu.oficina).value.length < 4)
			return false;
		if((document.formu.dc).value.length < 2)
			return false;
		if((document.formu.compte).value.length < 10)
			return false;

		return true;
	}
	else
		return true;

	return false;
}

function validaEdat(){
	vesSumant();
	vfalladata = false;
	
	//Comprovació de la data de naixement i el correu electrònic
	var vregexNaix = /^([012][1-9]|3[01])(\/)(0[1-9]|1[012])\2(\d{4})$/;


	vdataNaix = document.formu.dataNaix.value;
	vanyData = vdataNaix.substring(vdataNaix.length-4, 4);
	if((!vregexNaix.test(vdataNaix)) || (/^(\d{4})$/.test(vanyData))){
		alert("Bonvolu skribi naskighdato per tt/mm/jjjj. \n--------------------------------------\n Per favor, empleneu la data com dd/mm/aaaa.");
		document.formu.dataNaix.value = "";
		document.formu.dataNaix.focus();
		return false;
	}
	
	controlaCaselles();
	return true;
}

function validaCorreu(){
	vesSumant();
	
	var vregexEmail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	if(!vregexEmail.test(document.formu.adrecaE.value)){
		alert("Bonvolu skribi retposhtadreson korekte. \n--------------------------------------\n Per favor, escriviu una adreça electrònica correcta.");
		document.formu.adrecaE.value = "";
		document.formu.adrecaE.focus();
		return false;
	}
	
	return true;
}

function validaHo(){
	if((!validaEdat()) || (!validaCorreu())){
		return false;
	}

	if(document.formu.nom.value != "" && document.formu.adreca.value != "" && document.formu.cp.value != "" && document.formu.comarcaPais.value != "" && document.formu.ciutat.value != "" && miraCCC())
		document.formu.submit();
	else
		alert("Bonvolu ne lasi malplenajn tekst-skatolojn. \n--------------------------------------\n Per favor, empleneu tots els camps.");

	return false;
}

function controlaEdat(){
	vdataNaix = document.formu.dataNaix.value;
	
	if(vdataNaix != null && vdataNaix != ""){
		var vedat;
		vedat = calculaEdat(vdataNaix);
		if(vedat != false){
		
			document.getElementById("edat").innerHTML = ("<strong>"+vedat + " jaroj</strong> <em>anys</em>");
			
			if(vedat < 15){
				document.getElementById('dcedat').innerHTML = "No paga!";
				vnoPaga = true;
				vdescompte = 0;
			}else if(vedat <30){
				if(document.formu.periode1.checked){
					document.getElementById('dcedat').innerHTML = "-15'00 €";
					vnoPaga = false;
					vdescompte = 15;
				}else{
					document.getElementById('dcedat').innerHTML = "-4'00 €";
					vnoPaga = false;
					vdescompte = 4;
				}
			}else{
				document.getElementById('dcedat').innerHTML = "-0'00 €";
				vdescompte = 0;
				vnoPaga = false;
			}
		}else{
			validaHo();
		}
	}
	
	vesSumant();
}

function controlaCaselles(){
	vesSumant();
	controlaCCC();
	controlaEdat();
	if(document.formu.periode1.checked){
		document.getElementById('dp31ago').innerHTML = "-9'00 €";
		document.getElementById('dp31oct').innerHTML = "-5'00 €";
		document.getElementById('dcmem').innerHTML = "-15'00 €";
		document.getElementById('dcfam').innerHTML = "-20'00 €";
		document.getElementById('dcext').innerHTML = "-20'00 €";
	}else{
		document.getElementById('dp31ago').innerHTML = "-0'00 €";
		document.getElementById('dp31oct').innerHTML = "-0'00 €";
		document.getElementById('dcmem').innerHTML = "-4'00 €";
		document.getElementById('dcfam').innerHTML = "-6'00 €";
		document.getElementById('dcext').innerHTML = "-6'00 €";
	}

}

function controlaCCC(){
	vesSumant();
	if(document.formu.pagament2.checked){
		document.formu.banc.disabled=false;
		document.formu.oficina.disabled=false;
		document.formu.dc.disabled=false;
		document.formu.compte.disabled=false;
	}
	else{
		document.formu.banc.disabled=true;
		document.formu.oficina.disabled=true;
		document.formu.dc.disabled=true;
		document.formu.compte.disabled=true;
	}
}

function calculaEdat(fecha){

    //calculo la fecha de hoy
    vhoy=new Date();
    //calculo la fecha que recibo
    //La descompongo en un array
    var varray_fecha = fecha.split("/");
    //si el array no tiene tres partes, la fecha es incorrecta
    if (varray_fecha.length!=3)
       return false;

    //compruebo que los ano, mes, dia son correctos
    var vano;
    vano = parseInt(varray_fecha[2]);
    if (isNaN(vano))
       return false;

    var vmes;
    if(varray_fecha[1].charAt(0) == "0")
    	varray_fecha[1] = ""+varray_fecha[1].charAt(1);
    vmes = parseInt(varray_fecha[1]);
    if (isNaN(vmes))
       return false;

    var vdia;
    if(varray_fecha[0].charAt(0) == "0")
    	varray_fecha[0] = ""+varray_fecha[0].charAt(1);
    	
    vdia = parseInt(varray_fecha[0]);
    if (isNaN(vdia))
       return false;


    //si el año de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4
    if (vano<=99)
       vano +=1900;

    //resto los años de las dos fechas
	vanoHoy = vhoy.getYear();
	if((vanoHoy+"").length != 4)
		vanoHoy += 1900;
    vedad=vanoHoy - vano - 1; //-1 porque no se si ha cumplido años ya este año
    //si resto los meses y me da menor que 0 entonces no ha cumplido años. Si da mayor si ha cumplido
    if (vhoy.getMonth() + 1 - vmes < 0) //+ 1 porque los meses empiezan en 0
       return vedad;
    if (vhoy.getMonth() + 1 - vmes > 0)
       return vedad+1;

    //entonces es que eran iguales. miro los dias
    //si resto los dias y me da menor que 0 entonces no ha cumplido años. Si da mayor o igual si ha cumplido
    if (vhoy.getUTCDate() - vdia >= 0)
       return vedad + 1;

    return vedad;
} 

