/* Generales */
var LOADING = '<img src="../img_n/loading.gif" />';
var CARGANDO = '<strong>cargando...</strong>';
function preloading(id, msg){
	$(id).html(LOADING+' '+msg);
}
function existe(id){
	if($('*').index($(id)[0]) == -1){
		return false;
	}else{
		return true;
	}
}
function SelValue(sel){
	return sel.options[sel.selectedIndex].value;
}
function EmailCheck (emailFld) {
	emailStr = emailFld;
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		if (emailStr=="") {
			return true;
		} else {
			return "No se ha ingresado un email válido";
		}
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return "Se han encontrado caracteres no válidos en e-mail";
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return "Se han encontrado caracteres no válidos en e-mail";
		}
	}
	if (user.match(userPat)==null) {
		return "El nombre de usuario de e-mail no parece válido";
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return "IP de e-mail no parece válida";
			}
		}
		return true;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return "Dominio de e-mail no parece válido";
			
		 }
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return "Terminación no conocida del dominio en e-mail";
	}
	if (len<2) {
		return "No se encuentra dominio en e-mail";
		
	}
	return true;
}
/* Colegios */
function MostrarMensaje(tipo, msg){
	$("#mensajes").html("<div class='msg-"+tipo+"' style='display:none'>"+msg+"</div>");
	$(".msg-"+tipo).fadeIn(1500);
	$(".msg-"+tipo).fadeOut(2500);
}
function CargaProvincias(departamento_id, tipo){
	if(departamento_id != 0){
		var url = '../ajax_n/_carga_provincias.php?departamento_id='+departamento_id+'&tipo='+tipo;
		preloading('#lista-provincias', CARGANDO);
		$('#lista-provincias').load(url);
		$('#lista-distritos').html('');
		if(tipo == 'alumnos'){
			$('#lista-colegios').html('');	
		}
	}else{
		$('#lista-provincias').html('');
		$('#lista-distritos').html('');
		if(tipo == 'alumnos'){
			$('#lista-colegios').html('');	
		}
	}
}
function CargaDistritos(provincia_id){
	if(provincia_id != 0){
		var url = '../ajax_n/_carga_distritos.php?provincia_id='+provincia_id;
		preloading('#lista-distritos', CARGANDO);
		$('#lista-distritos').load(url);
	}else{
		$('#lista-distritos').html('');
	}
}
function CargaDistritos2(provincia_id){
	if(provincia_id != 0){
		var url = '../ajax_n/_carga_distritos2.php?provincia_id='+provincia_id;
		preloading('#lista-distritos', CARGANDO);
		$('#lista-distritos').load(url);
	}else{
		$('#lista-distritos').html('');
		$('#lista-colegios').html('');
	}
}
/* Alumnos */
function ValidarFrmAlumnos(form, tipo){
	var nombre = form.nombre.value;
	var actres = form.actres.value;
	var oldres = form.oldres.value;
	var promo = form.promo.value;
	var uni = form.uni.value;
	var mensaje = form.mensaje.value;
	var web = form.web.value;
	var mail = form.mail.value;
	var colegio_id = '';
	var nombre_colegio = '';
	var direccion_colegio = '';
	var msg = '';
	if(existe('#colegio_id')){
		colegio_id = form.colegio_id.value;
	}
	if(nombre==''){
		msg += "- Nombre es necesario.\n";
	}
	if(promo=='' || promo==0){
		msg += "- Selecciona promoción.\n";
	}
	if(mail==''){
		msg += "- E-mail es necesario.\n";
	}
	if(form.nombre_colegio != null){
		nombre_colegio = form.nombre_colegio.value;
		direccion_colegio = form.direccion_colegio.value;
		if(nombre_colegio == ''){
			msg += "- Nombre de colegio sugerido es necesario.\n";
		}
	}else{
		if(colegio_id=='' || colegio_id==0){
			msg += "- Selecciona colegio.\n";
		}
	}
	if(msg!=''){
		alert("Han ocurrido los siguientes errores:\n\n" + msg);
		MostrarMensaje('bad', 'Ocurrieron errores al procesar los datos, no se ha guardado nada aún.');
		setTimeout('$(".msg-bad").remove()', 4000);
		return false;
	}else{
		//Verificando
		$.get("../ajax_n/_verificar_alumno.php",
		  { web: web, mail: mail},
		  function(data){
			if(data=='ok'){
				return true;
			}else{
				alert('Han ocurrido los siguientes errores:\n\n' + data);
				MostrarMensaje('bad', 'Ocurrieron errores al procesar los datos, no se ha guardado nada aún.');
				setTimeout('$(".msg-bad").remove()', 4000);	
				return false;
			}
		  }
		);
	}
}
function LimpiarFrmAlumnos(){
	$('#lista-provincias').html('');
	$('#lista-distritos').html('');
	$('#lista-colegios').html('');
}
function CargaColegios(dist, provincia_id){
	var distrito = encodeURI(dist);
	if(distrito != 'S'){
		var url = '../ajax_n/_carga_colegios.php?distrito='+distrito+'&provincia_id='+provincia_id;
		preloading('#lista-colegios', CARGANDO);
		$('#lista-colegios').load(url);
	}else{
		$('#lista-colegios').html('');
	}
}
function LimpiarFrmColegios(){
	$('#lista-provincias').html('');
	$('#lista-distritos').html('');
}
function ValidarFrmColegios(form, tipo){
	var nombre = form.nombre.value;
	var direccion = form.direccion.value;
	var departamento_id = form.departamento_id.value;
	var provincia_id = '';
	var distrito = '';
	var msg = '';
	if($('#lista-provincias').html()!=''){
		provincia_id = form.provincia_id.value;
	}
	if($('#lista-distritos').html()!=''){
		distrito = form.distrito.value;
	}
	if(nombre==''){
		msg = "- Nombre es necesario.\n";
	}
	if(departamento_id=='' || departamento_id == 0){
		msg += "- Selecciona departamento.\n";
	}else{
		if(provincia_id=='' || provincia_id == 0){
			msg += "- Selecciona provincia.\n";
		}
	}
	
	if(msg!=''){
		alert("Han ocurrido los siguientes errores:\n\n" + msg);
		MostrarMensaje('bad', 'Ocurrieron errores al procesar los datos, no se ha guardado nada aún.');
		setTimeout('$(".msg-bad").remove()', 4000);
		return false;
	}else{
		return true;
	}
	return false;
}
function SugerirColegio(){
	if($('#datos-colegio').html()==''){
		var url = '../ajax_n/_sugerir_colegio.php';
		preloading('#datos-colegio', CARGANDO);
		$('#datos-colegio').load(url);
	}
}
function CancelarSugerencia(){
	$('#datos-colegio').html('');
}
/*Webs*/
function ValidarFrmWebs(form){
  var titulo = form.titulo.value;
  var descripcion = form.descripcion.value;
  var url = form.url.value;
  var keywords = form.keywords.value;
  var pais = form.pais.value;
  var registrante = form.registrante.value;
  var mail = form.mail.value;
  var correo_check = EmailCheck(mail);
  var categoria = form.categoria.value;

  var msg = '';
  if(titulo==''){
    msg = "- Título es necesario.\n";
  }
  if(descripcion==''){
    msg += "- Descripción es necesaria.\n";
  }
  if(url=='' || url == 'http://'){
    msg += "- URL es necesaria.\n";
  }else{
    var v = new RegExp();
      v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
      if (!v.test(url)) {
      msg += "- URL ingresada no es válida.\n";
        }
  }
  if(keywords==''){
    msg += "- Keywords son necesarias.\n";
  }
  if(pais==''){
    msg += "- Paí­s es necesario.\n";
  }
  if(registrante==''){
    msg += "- Registrante es necesario.\n";
  }
  if(mail==''){
    msg += "- Mail es necesario.\n";
  }else{
    if(correo_check != true){ 
      msg += "- " + correo_check + "\n";
    }
  }
  if(categoria=='' || categoria == 0){
    msg += "- Selecciona una categoría.\n";
  }
  if(msg!=''){
    alert("Han ocurrido los siguientes errores:\n\n" + msg);
    MostrarMensaje('bad', 'Ocurrieron errores al procesar los datos, no se ha enviado nada aún.');
    setTimeout('$(".msg-bad").remove()', 4000);
    return false;
  }else{
    return true;
  }
  
}
/*Contacto*/
function ValidarFrmContacto(form, tipo){
	var nombre = form.nombre.value;
	var email = form.email.value;
	var correo_check = EmailCheck(email);
	var mensaje = form.mensaje.value;
	var msg = '';
	if(nombre==''){
		msg += "- Tu nombre es necesario.\n";
	}
	if(email==''){
		msg += "- Tu e-mail es necesario.\n";
	}else{
		if(correo_check != true){	
			msg += "- " + correo_check + "\n";
		}
	}
	if(mensaje==''){
		msg += "- Debes escribir un mensaje.\n";
	}
	if(msg!=''){
		alert("Han ocurrido los siguientes errores:\n\n" + msg);
		MostrarMensaje('bad', 'Ocurrieron errores al procesar los datos, no se ha enviado tu mensaje aún.');
		setTimeout('$(".msg-bad").remove()', 4000);
		return false;
	}else{
		return true;
	}
}
$(document).ready(function(){
	//Valor de funcion al cargar

});
