﻿var estadoDireccion = null;
var imagen = null;
function PaisCambia(sender){
    var paisId =ObtenerId(sender.target);
    if(paisId<0){
        $("#EstadoCiudad").hide();
        $("#UbicacionContenedor").hide();        
    }
    else{
        if(paisId==1){
            $("#EstadoCiudad").show();
            $("#CityId").attr("selectedIndex","0").attr("disabled","disabled");
            $("#State").attr("selectedIndex","0");
            $("#UbicacionContenedor").hide();                
        }
        else{
            $("#EstadoCiudad").hide();
            $("#UbicacionContenedor").show();                        
        }   
    }
}
function MostrarCargando(mostrar){
    if(mostrar)
        $("#imagenCargando").show();
    else
        $("#imagenCargando").hide();
}
function ObtenerId(select){
    if(!select)
        return -1;
    return select.options[select.options.selectedIndex].value;
}
function CargaCiudades(datos,status){
    $("#CityId").html(datos).attr("disabled","");
    MostrarCargando(false);
}
function EstadoCambia(sender){
    var estadoId = ObtenerId(sender.target);
    $("#CityId").attr("disabled","disabled");
    MostrarCargando(true);
    $.ajax({            
        url:estadoDireccion+estadoId,
        success: CargaCiudades,
        error:function(){
            alert("No se pudo cargar la lista de ciudades, el servicio parece no estar disponible actualmente, intentalo de nuevo en unos minutos.");
            MostrarCargando(false);
        }
    });
}
function ValidarRegistro(){
    var conteo = 0;
    if(!ValidarRequerido("Name","nombreError"))
       conteo = conteo+1;
    if(!ValidarCorreo("Email","correoError"))
        conteo = conteo+1;   
     if(!ValidarEntero("Age","edadError"))
        conteo = conteo+1;
     if(!ValidarGenero("Genre","generoError"))
        conteo = conteo+1;    
    return conteo==0;    
}
function ValidarGenero(campo,error){
    var obligatorio = "Requerido";
    var conteo = 0;
    $("form :radio").each(function(e){
        if(this.checked)
            conteo = conteo+1;
    });
    if(conteo>0){
        $("#"+error).html('');
        return true;
    }
    else{
        $("#"+error).html(obligatorio);
        return false;
    }
}

function ValidarEntero(campo,error){
    var numero = "Numero entero";
    var val =$("#"+campo).val();
    if(esEntero(val)){
        $("#"+error).html("");
        return true;
    }
    else{
         $("#"+error).html(numero);
        return false;
    }
}

function esEntero (s){
  var i;
  if (esVacio(s))
  if (esEntero.arguments.length == 1) return 0;
  else return (esEntero.arguments[1] == true);
  for (i = 0; i < s.length; i++){
     var c = s.charAt(i);
     if (!esDigito(c)) return false;
  }
  return true;
}

function esVacio(s){
  return ((s == null) || (s.length == 0))
}
function esDigito (c){
  return ((c >= "0") && (c <= "9"))
}

function ValidarRequerido(fieldName,errorField){
    var obligatorio = "Requerido";
    if(!$("#"+fieldName).val()){
         $("#"+errorField).html(obligatorio);
        return false;
    }
    else{
        $("#"+errorField).html("");
        return true;
    }
}

function ValidarCorreo(fieldName,errorField){
    var value = $("#"+fieldName).val();
    var correoMensaje = "Correo no válido";
    if(!value){
        $("#"+errorField).html(correoMensaje);
        return false;
    }
    if(value.match(/\w+([-]\w*)*@\w+([-.]\w+)*\.\w+([.]\w+)*/ ) != null){
        $("#"+errorField).html("");
        return true;
    }
    $("#"+errorField).html(correoMensaje);
    return false;
}

$(document).ready(function(){
    $("#Country").change(PaisCambia);
    $("#State").change(EstadoCambia);
    $("#registerForm").submit(ValidarRegistro);
});