//AJAX

function nuevoAjax(){
	xmlhttp=false;
 	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 	} catch (e) {
 		try {
 			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 		} catch (E) {
 			xmlhttp = false;
 		}
  	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

//INSCRIPCIONES
function inscripcion(){
	
		var msg,marca,form;
		marca=0;msg="";
		form="form";
		var nombre=document.forms[form]['nombre'].value;
		var apellidos=document.forms[form]['apellidos'].value;
		var telefono=document.forms[form]['telefono'].value;
		var email=document.forms[form]['email'].value;
		var dni=document.forms[form]['dni'].value;
		var direccion=document.forms[form]['direccion'].value;
		var codProvincia=document.forms[form]['codProvincia'][document.forms[form]['codProvincia'].selectedIndex].value;
		var codPoblacion=document.forms[form]['codPoblacion'][document.forms[form]['codPoblacion'].selectedIndex].value;
		var cp=document.forms[form]['cp'].value;
		var colegio=document.forms[form]['colegio'].value;
		var ncolegiado=document.forms[form]['ncolegiado'].value;
		var condiciones=document.forms[form]['condiciones'].checked;
		if(!condiciones){
			
			marca=1;
			msg="Debes aceptar las condiciones de inscripción";
			
		}
		
		if(!esVacio(cp) && !esDigitos(telefono) && !minCaracteres(telefono,5)){
		
				marca=1;
				msg="El formato del campo cp no es correcto";

		}
		if(esVacio(dni) || !esCIFNIF(dni)){
		
				marca=1;
				msg="El formato del campo dni no es correcto";

		}
		if(esVacio(telefono) || !esDigitos(telefono) || !minCaracteres(telefono,9)){
		
				marca=1;
				msg="El formato del campo teléfono no es correcto";

		}
		if(esVacio(email) || !esEmail(email)){
		
				marca=1;
				msg="El formato del campo email no es correcto";

		}
		
		if(esVacio(apellidos)){
		
				marca=1;
				msg="Introduce apellidos";

		}
		if(esVacio(nombre)){
		
				marca=1;
				msg="Introduce nombre";

		}
		if(marca){
			document.getElementById('err').innerHTML="<img src=\"../img/comun/error.gif\" alt=\"Error\" class=\"error\" />"+msg;
			irAncla('err');
		}
		else
		{
			document.forms.form.provincia.value=document.forms.form.codProvincia[document.forms.form.codProvincia.selectedIndex].text;
			document.forms.form.poblacion.value=document.forms.form.codPoblacion[document.forms.form.codPoblacion.selectedIndex].text;
			document.forms['form'].submit();
		}
}

function confirmacion(){
	
			document.forms['form'].submit();	
}

function regresar(){
	
			document.forms['form'].action="inscripcion.php";	
			document.forms['form'].submit();	
}

function cancelar(){
	
			document.location.href="index.php";
}

//POBLACIONES Y PROVINCIAS
function cargaPoblacion(cual) 
{
	provincia=document.forms.form.codProvincia[document.forms.form.codProvincia.selectedIndex].value;
	codPoblaciones=document.forms.form.codPoblacion;
	if(provincia)
	{
		
		opcion= new Option("Cargando...", ""); 
		codPoblaciones.options[0]=opcion; 
		ajax=nuevoAjax();
		ajax.open("GET", "../inc/poblaciones.php?codProvincia="+provincia,true);
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==4) 
			{ 
				if(ajax.status==200) 
				{ 
					codPoblaciones.options[0]=null; 
					miXML=ajax.responseXML; 
					poblaciones = miXML.getElementsByTagName('poblacion');
					
					for(i=0;i<poblaciones.length;i++)
					{
						codPoblacion = poblaciones[i].getElementsByTagName('codPoblacion')[0].childNodes[0].nodeValue;
						poblacion=poblaciones[i].getElementsByTagName('nombre')[0].childNodes[0].nodeValue;
						opcion= new Option(poblacion, codPoblacion); 
						codPoblaciones.options[i]=opcion; 
						if(codPoblacion==cual)
							sel=i;
					}
					if(cual)
						codPoblaciones.selectedIndex=sel;
					else
						codPoblaciones.selectedIndex=0;
				} 
			} 
		}
		ajax.send(null);
	}
	else
	{
		codPoblaciones.options.length=null;
		opcion= new Option("", ""); 
		codPoblaciones.options[0]=opcion; 
		codPoblaciones.selectedIndex=0;
	}
	
} 

//CONTACTO
function contacto(tipo){
	var marca=0;
	var msg="";
	
	if(tipo=="Formulario de contacto")
	{
		var email=document.forms['form']['email'].value;
		var comentarios=document.forms['form']['comentarios'].value;
		
		if(esVacio(comentarios)){
			msg="Escribe tus comentarios";
			marca=1;
		}
		if(esVacio(email)){
			msg="Escribe tu email";
			marca=1;
		}else
		{
			if(!esEmail(email)){
				msg="El formato del campo email no es correcto";
				marca=1;
			}
		}
	}else
	{
		var incidente=document.forms['form']['incidente'].value;
		var fecha=document.forms['form']['fecha'].value;
		var profesion=document.forms['form']['profesion'].value;
		var descripcion=document.forms['form']['descripcion'].value;
		var email=document.forms['form']['email'].value;
		var curso1=document.forms['form']['curso1'].value;
		var curso2=document.forms['form']['curso2'].value;
		var curso4=document.forms['form']['curso4'].value;
		var otro=document.forms['form']['otro'].value;
		
		if(!esVacio(email) && !esEmail(email)){
				msg="El formato del campo email no es correcto";
				marca=1;
		}
		if(curso4=="Otro" && esVacio(otro)){
			msg="Competa el campo 'Otro'";
			marca=1;
		}
		if(esVacio(curso2)){
			msg="Selecciona horas en cursos de punción seca";
			marca=1;
		}
		if(esVacio(curso1)){
			msg="Selecciona horas en cursos de tratamiento manual de puntos gatillo";
			marca=1;
		}
		if(esVacio(profesion)){
			msg="Escribe tu profesión";
			marca=1;
		}
		if(esVacio(fecha) || !esFecha(fecha)){
			msg="Introduce una fecha válida";
			marca=1;
		}
		if(esVacio(incidente)){
			msg="Elige el tipo de incidente";
			marca=1;
		}
		if(incidente=="Otros" && esVacio(descripcion)){
			msg="Escribe la descripción de incidente/accidente";
			marca=1;
		}
	}
	if(marca){
		document.getElementById('err').innerHTML="<img src=\"../img/comun/error.gif\" alt=\"Error\" class=\"error\" />"+msg;
		irAncla('err');
	}
	else
		document.forms['form'].submit();
}


//UTILS
function restan(n){	
	document.forms['form']['restantes'].value=n-document.forms['form']['observaciones'].value.length;
	if(document.forms['form']['observaciones'].value.length>=n){
		document.forms['form']['observaciones'].value=document.forms['form']['observaciones'].value.substring(0,n);
		document.forms['form']['restantes'].value=0;
	}
}

function irAncla(elemID) {
	var offsetTrail = document.getElementById(elemID);
	var offsetLeft = 0;
	var offsetTop = 0;
	while (offsetTrail) {
	offsetLeft += offsetTrail.offsetLeft;
	offsetTop += offsetTrail.offsetTop;
	offsetTrail = offsetTrail.offsetParent;
	}
	if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined" && navigator.appName=="Microsoft Internet Explorer" ) {
	offsetLeft += parseInt(document.body.leftMargin);
	offsetTop += parseInt(document.body.topMargin);
	}
	window.scrollTo(offsetLeft,offsetTop)
}


function borrar(){
	var form="form";
	document.forms[form].reset();	
			
}

function esVacio(val) {
    return ((val == null) || (val.length == 0));
}
function esNumerico(val) {
    num = parseFloat(val);
    if (val!=''+num) return false;
    return true;
}

function esLetra(val) {
    return ( ((val >= "a") && (val <= "z")) || ((val >= "a") && (val <= "Z")) || (val=" "));
}

function esLetras(val){
	for(i=0;i<val.length;i++){
		if(!esLetra(val.charAt(i))) return false;
	}
	return true;
}

function esDigito(val) {
    return ((val >= "0") && (val <= "9"));

}


function esDigitos(val) {
    for(i=0;i<val.length;i++){
        if(!esDigito(val.charAt(i))) return false;
    }
    return true;
}    

function minCaracteres(val,num) {
    return !(val.length<num);
}

function esEmail(val) {
	
    arroba = val.lastIndexOf('@');
    if ( arroba < 1 ){
        return false;
	}
    else {
    punto = val.indexOf('.', arroba);
      if ( punto < arroba + 2 || punto > val.length - 2 ) 
         return false;
     
   }
   return true;
}

function esFecha(fecha){
	if (fecha != undefined && fecha != "" ){
        if (!/^\d{2}\/\d{2}\/\d{4}/.test(fecha)){
            //alert("formato de fecha no válido (dd/mm/aaaa)");
            return false;
        }
        var dia  =  parseInt(fecha.substring(0,2),10);
        var mes  =  parseInt(fecha.substring(3,5),10);
        var anio =  parseInt(fecha.substring(6),10);
 
    switch(mes){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8: 
        case 10:
        case 12:
            numDias=31;
            break;
        case 4: case 6: case 9: case 11:
            numDias=30;
            break;
        case 2:
            if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
            break;
        default:
            //alert("Fecha introducida errónea");
            return false;
    }
 
        if (dia>numDias || dia==0){
            //alert("Fecha introducida errónea");
            return false;
        }
        return true;
    }
} 

function esCIFNIF(val) {
    val = val.toUpperCase();
    if (val.charAt(0) == 'X' || esDigito(val.charAt(0)) )
        return esNIF(val);
    else
        return esCIF(val);
}

function esNIF(val) {
    val = val.toUpperCase();
    var LetrasNIF = "TRWAGMYFPDXBNJZSQVHLCKE";
    
    if (!minCaracteres(val,8)) return false;
    Letra = val.charAt(val.length-1);
    if (LetrasNIF.indexOf(Letra) == -1) return false;
    if (val.charAt(0) == 'X')
       Numero = val.substring(1,val.length-1);
    else
       Numero = val.substring(0,val.length-1);
    if (!esDigitos(Numero)) return false;
    Numero = parseInt(Numero,10);
    Indice = Numero-(parseInt(Numero/23,10)*23);
    if (Letra != LetrasNIF.charAt(Indice))
	return false;
	else
    return true;
}

function esCIF(val) {
    val = val.toUpperCase();
    var LetrasCIF = "ABCDEFGHNPSQ";
    var LetrasOrganismos = "JABCDEFGHI";
    var Organismo = false;
    
    if (!minCaracteres(val,9)) return false;
    var Letra = val.charAt(0);
    if (LetrasCIF.indexOf(Letra) == -1) return false;
    if (Letra == 'P' || Letra == 'Q' || Letra == 'S')
	Organismo = true;
    if (!esDigitos(val.substr(1,val.length-2))) return false;
    var CodigoControl = val.charAt(val.length-1);

    Suma1 = parseInt( val.charAt(2), 10) + parseInt( val.charAt(4), 10) + parseInt(val.charAt(6), 10 );
    Suma2 = 0;
    for( var i = 1; i < 8; i += 2) {
         Aux = parseInt(val.charAt(i), 10) * 2;
         if (Aux > 9) 
            Suma2 = Suma2 + parseInt(Aux / 10, 10) + Aux % 10;
         else
            Suma2 = Suma2 + Aux;
    }
    Suma = Suma1 + Suma2;
    Codigo = 10 - Suma % 10;
    if( Codigo > 9) Codigo = 0;
    
    if (!Organismo) {
       if (Codigo != parseInt(CodigoControl, 10)) return false; }
    else {
       if (LetrasOrganismos.charAt(Codigo) != CodigoControl ) return false; }
    
    return true;
}