// Crea una instancia del objeto XMLHttpRequest y devuelve su referencia
function Ajax() 
{
	var ref = false; // No tenemos objeto
	try { // Intentamos crearlo en IE 5 con MSXML 3.0 o posterior
		ref = new ActiveXObject('Msxml2.XMLHTTP');
	} catch (e1) { // Si no funciona
	  try { // lo intentamos con IE 5 con MSXML 2
	    ref = new ActiveXObject('Microsoft.XMLHTTP');
	  } catch (e2) { // si no funciona
	    ref = false;
	  }
	}
	
	// Si no tenemos objeto y existe el tipo XMLHttpRequest como nativo
	if (!ref && (typeof XMLHttpRequest != 'undefined' || window.XMLHttpRequest)) ref = new XMLHttpRequest(); // lo creamos directamente
	return ref; // devolvemos la referencia
}

// Validar USUARIO repetido
function validarUsuario (usuario) {
	
    // Crear instancia AJAX
    var objXML = Ajax();

    var sParametres = ('usr=' + usuario);

    if (objXML) // Si tenemos el objeto
    {

      // Enviamos la solicitud al servidor
      objXML.open('POST', '../inc/lib/validar_usuario.php', true);

      objXML.onreadystatechange = function()
      {

        if (objXML.readyState == 1)
        {
          //element.innerHTML = "<div class='loading'>cargando ...</div>";
          //element.innerHTML = "<img src='img/ajax-loader.gif' width='15' />";
        }
        else if (objXML.readyState == 4)
        {

          if (objXML.status == 200)
          {

            // Mostramos el resultado que se enviará
			//element.innerHTML = objXML.responseText;
			if (objXML.responseText == "existe") {
				//alert ("¡¡ USUARIO EXISTENTE !!. Introduzaca otro e-mail.");
			}
			else {
				
			} 
			
          }
          else
          {
          	return false;
          }
          
        }

      }

      // con las cabeceras apropiadas
      objXML.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      objXML.setRequestHeader('Content-Length', sParametres.length);
      objXML.send(sParametres);

    }
    
}

// Validacion de formularios
var error = "";

function validarFormBasico() {

    var formulario = document.getElementById('form_registro');
	
    // Validar Radio Button Tipo suscripcion
    var estadoRadioButton = "";

    if (formulario.tipo_suscripcion[0].checked == false && formulario.tipo_suscripcion[1].checked == false) {

        estadoRadioButton = "no_checked";

    }


    if (estadoRadioButton != "") {
        alert ("Debe indicar el tipo de suscripción deseada.");
        error += "- Indicar el tipo de suscripción \n";
    }

    // Validar si coinciden las dos campos de contraseña
    if (formulario.password.value != formulario.repeat_password.value || (formulario.password.value.length < 6 || formulario.repeat_password.value.length < 6)) {
        alert ("Los campos Contraseña y Repita contraseña no coinciden o la longitud de la contraseña es inferior a 6 carácteres.");
        error += "- Introducir la contraseña correctamente \n";
    }


    // Validación resto de campos
    if (formulario.email.value.length < 1 || !validarMail(formulario.email.value)) {

        error += "- E-mail incorrecto \n";

    }
    
    if (formulario.nombre_apellidos.value.length < 1) {

        error += "- Nombre y apellidos \n";

    }

    if (formulario.password.value.length < 6) {

        error += "- Contraseña (mínimo 6 carácteres) \n";

    }

    if (formulario.repeat_password.value.length < 6) {

        error += "- Repetir contraseña (mínimo 6 carácteres) \n";

    }

	if (formulario.nif.value.length < 1) {

        error += "- NIF \n";

    }

    if (formulario.direccion.value.length < 1) {

        error += "- Dirección de facturación \n";

    }

    
    if (formulario.cp.value.length < 1) {

        error += "- Código postal (CP). Si su dirección no tiene código postal, simplemente escriba un punto '.' \n";

    }
    

    if (formulario.poblacion.value.length < 1) {

        error += "- Población de facturación \n";

    }

    if (formulario.provincia.value.length < 1) {

        error += "- Provincia de facturación \n";

    }

    if (formulario.pais.value == "") {

        error += "- País de facturación \n";

    }
    
    if (formulario.direccion_e.value.length < 1) {

        error += "- Dirección de envío \n";

    }
    
    if (formulario.cp_e.value.length < 1) {

        error += "- Código postal (CP) de la dirección de envio. Si su dirección no tiene código postal, simplemente escriba un punto '.' \n";

    }
    
    if (formulario.poblacion_e.value.length < 1) {

        error += "- Población de envío \n";

    }

    if (formulario.provincia_e.value.length < 1) {

        error += "- Provincia de envío \n";

    }

    if (formulario.pais_e.value == "") {

        error += "- País de envío \n";

    }

}



function validar(idForm, grupoForm) {

    var formulario = document.getElementById(idForm);
    if (grupoForm != "") {
        document.getElementById('grupo_form').value = grupoForm;
    }

    switch (idForm) {

        case "form_login":

            error = "";

            if (formulario.usuario.value.length < 1 || !validarMail(formulario.usuario.value)) {

                error += "- Usuario \n";

            }

            if (formulario.password.value.length < 6) {

                error += "- Contraseña (Mínimo 6 carácteres) \n";

            }

            if (formulario.recordar.checked) {

            }

            break;


        case "form_recordar":

            error = "";

            if (formulario.rec_password_email.value.length < 1 || !validarMail(formulario.rec_password_email.value)) {

                error += "- Email \n";

            }


            break;


        case "form_activar_cuenta":

            error = "";

            if (formulario.nombre_completo.value.length < 1) {

                error += "- Nombre completo \n";

            }

            if (formulario.email_edi_papel.value.length < 1 || !validarMail(formulario.email_edi_papel.value)) {

                error += "- E-mail \n";

            }

            break;

        case "form_registro":

            switch (grupoForm){

                case "form_tarjeta":

                    error = "";
                    validarFormBasico();

                    if (formulario.titular_tarjeta.value.length < 1) {

                        error += "- Titular tarjeta \n";

                    }

                    if (formulario.num_tarjeta.value.length < 1 ) {

                        error += "- Número de tarjeta \n";

                    }

                    if (formulario.caduca_mes.value.length < 1 ) {

                        error += "- Mes de caducidad \n";

                    }

                    if (formulario.caduca_ano.value.length < 1 ) {

                        error += "- Año de caducidad \n";

                    }

                    if (formulario.num_control.value.length < 1 ) {

                        error += "- Número de control \n";

                    }

                    if (formulario.tipo_tarjeta[0].checked == false && formulario.tipo_tarjeta[1].checked == false && formulario.tipo_tarjeta[2].checked == false) {

                        error += "- Tipo de tarjeta \n";

                    }

                    break;

                case "form_cuenta_bancaria":

                    error = "";

                    if (formulario.pais.value != "España") {
                        alert ("La domiciliación bancaria solamente será posible para suscriptores residentes en España.");
                        return;
                    }

                    validarFormBasico();

                    if (formulario.check_domiciliacion.checked == false) {

                        alert ("Debe dar conformidad para el pago por cuenta bancaria.");
                        error += "- Dar conformidad al pago por cuenta bancaria \n";

                    }

                    if (formulario.titular_cuenta.value.length < 1) {

                        error += "- Titular cuenta \n";

                    }

					if (formulario.entidad.value.length < 4 || isNaN(formulario.entidad.value)) {

                        error += "- Entidad \n";

                    }
                    
                    if (formulario.oficina.value.length < 4 || isNaN(formulario.oficina.value)) {

                        error += "- Oficina \n";

                    }

					if (formulario.dc.value.length < 2 || isNaN(formulario.dc.value)) {

                        error += "- Dígito de control \n";

                    }

                    if (formulario.num_cuenta.value.length < 10 || isNaN(formulario.num_cuenta.value)) {

                        error += "- Número de cuenta \n";

                    }
					
					/*
                    if (formulario.entidad_bancaria.value.length < 1 ) {

                        error += "- Entidad bancaria \n";

                    }

                    if (formulario.oficina.value.length < 1 ) {

                        error += "- Oficina \n";

                    }
                    					
                    if (formulario.domicilio.value.length < 1 ) {

                        error += "- Domicilio \n";

                    }

                    if (formulario.codigo_swift.value.length < 1 ) {

                        error += "- Código SWIFT \n";

                    }

                    if (formulario.codigo_iban.value.length < 1 ) {

                        error += "- Código IBAN \n";

                    }
                    */

                    break;

                case "form_basico":

                    error = "";
                    validarFormBasico();

                    break;

            }

            break;

        case "form_buscador_sup":
        case "form_buscador_inf":

            error = "";

            if (formulario.clave.value.length < 1) {

                error += "- No hay texto para buscar \n";

            }

            break;

    }



    if (error != "") {
        alert("Rellene los siguientes campos: \n" + error);
    }
    else {
        formulario.submit();
    }
}
