// JavaScript Document
/*
*Cerrar mensajes
*/
function cerrarDialogo(id){
	$('#'+id).fadeOut();
}

/*
*Salir de colorbox, actualizando pagina padre. (Para iframes)
*/
function recargar(){
	window.location.reload();
}
/*
*  Funcion para no perder datos luego de un error al momento de registrar datos.
*  Datos necesarios:
*			->Se necesita un input hidden para almacenar los datos.
*			->Los input, textarea, select, etc que se quieran recuperar deben tener el campo ID y NAME de la misma forma.
*			->Se debe inluir una funcion php que transforma la variable de session en un objeto para luego poder reescribirla.
*/
function recuperacion(form,hidden,separador){
	if(separador==undefined){
		separador = ',';
	}
	var cadena = '';
	$(form).find('input, textarea, select, radio, checkbox').each(function(i,elemento){
		if( $(elemento).attr('name')!= '' ){
			if($(elemento).attr('type') == 'checkbox'){
				if($(elemento).attr('checked')){
					cadena+=$(elemento).attr('name')+'=>'+$(elemento).val()+separador;
				}
			}else{
				cadena+=$(elemento).attr('name')+'=>'+$(elemento).val()+separador;
			}
		}
	});
	
	$('#'+hidden).val(cadena.substring(0, (cadena.length)-1));
}

/*
* Validar Rut
*/
function Valida_Rut(Objeto){ 
	var tmpstr = ""; var intlargo = Objeto; 
	if (intlargo.length > 0){
		crut = Objeto; largo = crut.length; 
		if ( largo < 2 ){
			return false;
		}
		for ( i=0; i < crut.length ; i++ )
			if ( crut.charAt(i) != ' ' && crut.charAt(i) != '.' && crut.charAt(i) != '-' ){
				tmpstr = tmpstr + crut.charAt(i);
			}
		rut = tmpstr; crut=tmpstr; largo = crut.length; 
		if ( largo > 2 )
			rut = crut.substring(0, largo - 1);
		else
			rut = crut.charAt(0); dv = crut.charAt(largo-1);
		if ( rut == null || dv == null )
			return 0; 
		var dvr = '0'; suma = 0; mul = 2; 
		for (i= rut.length-1 ; i >= 0; i--){
			suma = suma + rut.charAt(i) * mul;
			if (mul == 7)
				mul = 2;
			else
				mul++;
		}
		res = suma % 11; 
		if (res==1)
			dvr = 'k'; 
		else if (res==0)
				dvr = '0'; 
			else{ 
				dvi = 11-res; dvr = dvi + "";
			}
		if ( dvr != dv.toLowerCase() ){ 
			return false;
		}
	}else{
		return false;
	}
}
var fomatos_permitidos = "pdf";
/** Variable de Validación **/
function validar_extencion(nombre){
	var extenciones =  fomatos_permitidos.split('.');
	var formato = nombre.split('.');
	return (jQuery.inArray(formato[formato.length-1], extenciones) == '-1') ? false : true;
}

function checked_one_input(objeto){
	var checked = false;
	$(objeto).find('input:checkbox').each(function(i,elemento){
		if($(elemento).is(':checked'))
			checked = true;
	});
	return checked;
}

function found_one_input(objeto){
	var found = false;
	$(objeto).find('input').each(function(i,elemento){
		found = true;
	});
	return found;
}

var validaciones = {
	vacio: function(elemento) {return /[A-Za-z0-9_]/.test($(elemento).val());},
	numero: function(elemento) { return /[0-9]/.test($(elemento).val());},
    cero_positivo: function(elemento) { return ($(elemento).val()<=0) ? false:true},
	email: function(elemento) {return /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($(elemento).val());},
	checked: function(elemento) {return $(elemento).is(':checked');},
	rut: function(elemento){ return Valida_Rut($(elemento).val())},
	only_numero: function(elemento) { return /^[0-9]+$/.test($(elemento).val());},
	same: function(elemento){ return ($(elemento).val()==$("#"+$(elemento).attr('alt')).val()) ? true:false;},
	formato: function(elemento){ return validar_extencion($(elemento).val())},
        formato_vacio: function(elemento){ return ($(elemento).val()!='') ? validar_extencion($(elemento).val()):true; },
	checked_one: function(elemento){return checked_one_input(elemento);},
	found_input: function(elemento){return found_one_input(elemento);}
};

function validar(formulario){
    var cadena = Array();
		$('#'+formulario).find('input, textarea, select, div, tbody').each(function(i,elemento){
			$.each($(elemento).attr('class').split(' '),function(c,clase){
				if( jQuery.isFunction(validaciones[clase])){
					if(validaciones[clase](elemento)==false){
						var campos = $(elemento).attr('title');
						switch(clase){
							case 'same':
								campos += " no coincide con "+$("#"+$(elemento).attr('alt')).attr('title');
								break;
							case 'cero_positivo':
								campos += " debe ser mayor a 0";
								break;
							case 'formato':
								campos += " formato no permitido ("+fomatos_permitidos+")";
								break;
							case 'checked_one':
								campos = "Seleccione a lo menos un " + campos;
								break;
							case 'found_input':
								campos = "Seleccione a lo menos un " + campos;
								break;
						}

						if(jQuery.inArray(campos, cadena) == '-1'){
							cadena.push(campos);
						}
					}
				}
			});
		});

		if( cadena.length > 0 ){
			var errores = cadena.join(', ');
			
			var salto = '';
			if(cadena.length <= 2){
				salto = '<br/>';
			}
                        $('#error').fadeOut('slow');
                        $('#procesando').fadeOut('slow');
                        $('#exito').fadeOut('slow');
                        
                        $('#error').fadeIn('slow');
			$('#error').html('<p>Por favor complete los campos requeridos: <b>'+errores+'</b>.'+salto+'<a style="cursor:pointer; float:right; margin-right:10px;" onclick="cerrarDialogo('+"'error'"+')">cerrar</a></span><br/></p>');
			//location.href="#";
                        return false;
		}else{
			$('#error').fadeOut('slow');
                        $('#procesando').fadeOut('slow');
                        $('#exito').fadeOut('slow');

			$('#procesando').fadeIn('slow');
			$('#procesando').html('<p>Espere un momento por favor.</p>');
			return true; //$('#formulario-crear_').submit();
			//location.href="#";
		}
}

function enviar_mensaje(mensaje, tipo_mensaje){
	$('#procesando').hide();
	$('#'+tipo_mensaje).html('<p><a style="cursor:pointer; float:right; margin-right:10px;" onclick="cerrarDialogo(\''+tipo_mensaje+'\')">cerrar</a>'+mensaje+'</p>');
	$('#'+tipo_mensaje).fadeIn('slow');
}

function ajax_comunas(provincia_id,comuna_id){
    var provincia = $("#"+provincia_id).val();
    (provincia=='') ? $("#"+comuna_id).attr('disabled',true):$("#"+comuna_id).attr('disabled',false);
    $.ajax({
        url: '/ajax/comunas/',
        type: 'post',
        data: 'provincia='+provincia,
        success: function(data){
            $("#"+comuna_id).html(data);
        }
    })
}

function ajax_territorios(provincia_id,territorio_id){
    var provincia = $("#"+provincia_id).val();
    //(provincia=='') ? $("#"+territorio_id).attr('disabled',true):$("#"+territorio_id).attr('disabled',false);
    $.ajax({
        url: '/ajax/territorios/',
        type: 'post',
        data: 'provincia='+provincia,
        success: function(data){
            $("#"+territorio_id).html(data);
        }
    })
}

function ajax_comunas_territorio(comuna_id,territorio_id){
    var territorio = $("#"+territorio_id).val();
    //(provincia=='') ? $("#"+territorio_id).attr('disabled',true):$("#"+territorio_id).attr('disabled',false);
    $.ajax({
        url: '/ajax/territorios/',
        type: 'post',
        data: 'provincia='+provincia,
        success: function(data){
            $("#"+comuna_id).html(data);
        }
    })
}

function presentar_comunas(tipo){
    var provincia = $("#"+tipo+"_provincia").val();
    (provincia=='') ? $("#"+tipo+"_comuna").attr('disabled',true):$("#"+tipo+"_comuna").attr('disabled',false);
    $.ajax({
        url: '/postulacion/comunas/',
        type: 'post',
        data: 'provincia='+provincia,
        success: function(data){
            $("#"+tipo+"_comuna").html(data);
        }
    })
}

function toNum(number){
	 if(number=="")
	 	return 0;
	else {
		var num = number;
		do {
    		num = num.replace('.','');
		} while(num.indexOf('.') >= 0);
		num = num.replace(/,/,'.');
	 	return parseFloat(num);
	}
}


function number_format( number, decimals, dec_point, thousands_sep ) {
	var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "," : dec_point;
    var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;

    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

function formatear(elemento){
    valor = toNum(elemento.value);
    elemento.value = number_format(valor,0,',','.');
}

function acceptNum(evt){
	var key = window.event ? evt.keyCode : evt.which;
        if(((key>=48 && key <=57) || key==8 || key==0)){
            retorno = true;
        }else{
            retorno = false;
        }
	return  retorno;
	}

function porcentaje(total, fracccion){
	if(total == undefined || fracccion == undefined)return '0.00%';
	//alert(total.val());
	var total_ = toNum(total.val());
	var fracccion_ = toNum(fracccion.val());
	var porcentaje = (fracccion_/total_)*100;
	
	return number_format(porcentaje,2,',','.')+'%';
}

function encode_utf8( s )
{
  return unescape( encodeURIComponent( s ) );
}

function decode_utf8( s )
{
  return decodeURIComponent( escape( s ) );
}
