//////////////////////////////////////////////////////
// FUNCIONES COMPARTIDAS ADM - FRONT
//////////////////////////////////////////////////////

// revisa si un valor es nulo
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
	}
	return true;
}

// revisa si una cadena es valida para Web
function ValidaNombre(nombre, caract_extra) {  

	var ubicacion;
	var caracteres = "abcdefghijklmnopqrstuvwxyz1234567890_-" + caract_extra;
	var existe_invalido = false;

	for (var i=0; i < nombre.length; i++) {  
		ubicacion = nombre.substring(i, i + 1)  
		if (caracteres.indexOf(ubicacion) == -1) {
			existe_invalido = true;
		}  // fin busqueda caracter
	}  // fin recorrida
	
	if(existe_invalido) {
		return true;
	} else {
		return false;
	}
			
}  

// comprueba si un e-mail está es válido
function validar_email(valor, aviso) {
	if(valor!="") {
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
			return true;
		} else {
			if(aviso!=undefined){alert(aviso);}
			return false;
		}
	} else {
		return false;
	}
}

// COMPROBAR REPETIDO
// devuelve true si el valor ya existe en la tabla sino false
// tabla donde va a buscar el campo (* depende del tipo)
// campo donde se buscara el valor
// idelemento: id del elemento que tiene el valor a comprobar si esta repetido
// tipo: utilizada para definir el tipo de búsqueda: 1: campo - 2 tabla - campo y tabla (debe especificar en el parametro tabla las dos tablas donde se buscara separadas por coma)
function verificar_repetido(tabla, campo, idelemento, tipo) {
	
	// inicializo parametros
	tipo = tipo == undefined ? 1 : tipo;

	if(tabla.indexOf(",")!=-1) {
		tablas = tabla.split(",");
		tabla = tablas[0].replace(/^\s+|\s+$/g,"");
		tabla_campos = tablas[1].replace(/^\s+|\s+$/g,"");
	} else {		
		tabla_campos = "";
	}

	// preparo parámetros
	var parametros = "&valor="+$('#'+idelemento).val();
	parametros = parametros + "&tabla="+tabla;
	parametros = parametros + "&campo="+campo;
	parametros = parametros + "&tipo="+tipo;
	parametros = parametros + "&tabla_campos="+tabla_campos;

	resultado = $.ajax({
		type: "GET",
		async: false,
		url: urlMaster + "adm/inc/ajax/verificar_repetido.php",
		data: parametros
	}).responseText; // fin del ajax
	
	if(resultado==0){
		return false;
	} else {
		return true;
	}

}		

// para limitar caracteres en un campo
function limitar_caracteres(textid, limite, infodiv, texto_cantidad, texto_final)
{
	var text = $('#'+textid).val();	
	var textlength = text.length;
	if(textlength > limite) {
		$('#' + infodiv).html(texto_final);
		$('#'+textid).val(text.substr(0,limite));
		return false;
	} else {
		$('#' + infodiv).html(texto_cantidad.replace('{caracteres}', limite - textlength));
		return true;
	}
}

// FUNCIÓN PARA VALIDAR SI ES UN NÚMERO
function validarSiNumero(numero){
	if (!/^([0-9])*$/.test(numero)){
		return false;
	} else {
		return true;
	}
}

// para ir a anclas con animación - jquery
anchor = {
	init : function() {
		$("a.anchorLink").click(function () {
			elementClick = $(this).attr("href")
			destination = $(elementClick).offset().top;
			$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, 1100 );
			return false;
		})
	}
}

// ALERTA ESPECIAL DE VALIDACIÓN
function alerta(mensaje, id_campo){

	$.blockUI({message: mensaje+'<div class="botones">'+boton_alerta("ok")+'</div>', theme: true, title: "alerta"});
	$("#ok").button().click(function(){
		if(id_campo!=undefined){
			$('#'+id_campo).focus();
		}
		$.unblockUI();
	});

}

// AYUDA
function muestra_ayuda(mensaje){
	$.blockUI({message: '<div class="mensaje">'+mensaje+'</div><div class="botones">'+boton_alerta("ok")+'</div>', theme: true, title: "ayuda"});
	$("#ok").button().click(function(){
		$.unblockUI();
	});
}

// abre la hoja de impresión
function imprime(funcion, tipo, op, id, ancho, alto, tipo_impresion){
	
	var URL = urlMaster+"inc/impresion.php?f="+funcion+"&id="+id+"&op="+op+"&tipo="+tipo;
	
	// impresión por popup
	if(tipo_impresion==1) {
	
		imprimir = window.open(URL, "_blank", "toolbar=no ,location=no, status=no, menubar=no, resizable=no, scrollbars=yes, width="+ancho+", height="+alto);
		imprimir.moveTo((screen.availWidth/2)-(ancho/2),(screen.availHeight/2)-(alto/2));
		
	// impresión oculta
	} else {
		
		$.blockUI({ message: preparando_impresion, theme: true });

		// Creo un iFrame
		var jFrame = $("<iframe name=\"pagina_impresion\">");

		// lo oculto y lo agrego al cuerpo del sitio
		jFrame.css( "width", "0px" ).attr( "src", URL)
			.css( "height", "0px" )
			.css( "position", "absolute" )
			.css( "left", "0px" )
			.appendTo( $( "body:first" ) );
		
		setTimeout(
			function(){
				jFrame.remove();
			}, (60 * 1000) );
		
		setTimeout($.unblockUI, 2000);
		
	} // fin tipo_impresion

}

function select_ajax(nombre){

	$.blockUI({message: loading});
	var opciones_msg = "";
	$("#listados").html(loading);
	
	if($("#"+nombre+"_opciones").html()!=""){
		
		opciones_msg = $("#"+nombre+"_opciones").html();
		$.blockUI({message: opciones_msg+'<div class="botones">'+boton_alerta("aceptar")+boton_alerta("cancelar")+'</div>', theme: true, title: "SELECCIONE LAS OPCIONES", themedCSS: {width: '60%', left: '20%', top: '30%'}});
		$("#aceptar").button().click(function(){select_ajax_aceptar(nombre)});
		$("#cancelar").button().click(function(){select_ajax_cancelar(nombre)});
	
	} else {
	
		var parametros = "sql="+$("#"+nombre+"_sql").html();
		parametros = parametros + "&nombre="+nombre;
		if($("#"+nombre+"_items").val()!=""){
			parametros = parametros + "&elegidos="+$("#"+nombre+"_items").val();
		}
		
		$.ajax({
			type: "GET",
			url: urlMaster + "adm/ajax/select_ajax.php",
			data: parametros,
			success: function(msg){
							
				$.blockUI({message: msg+'<div class="botones">'+boton_alerta("aceptar")+boton_alerta("cancelar")+'</div>', theme: true, title: "SELECCIONE LAS OPCIONES", themedCSS: {width: '60%', left: '20%', top: '30%'}});
				$("#aceptar").button().click(function(){select_ajax_aceptar(nombre)});
				$("#cancelar").button().click(function(){select_ajax_cancelar(nombre)});
			
			}
		}); // fin del ajax
	
	} // fin existencia opciones
	
}

function select_ajax_aceptar(nombre){

	var elegidos = "";
	var nombres = "";
	$("#"+nombre+"_items").val("");
	$("#"+nombre+"_seleccionados").html("").hide();
	$("#"+nombre+"_opciones").html("").hide();
	
	// recorro las opciones para tomar las elegidas
	$("input[class=check_"+nombre+"]:checked").each(function(){
		var id_final = $(this).val();
		var texto_nombre = $(this).next().html();
		var id_del_div = nombre+'_'+id_final;
		elegidos += id_final+",";
		nombres += '<div id="'+id_del_div+'" class="select_ajax_registro"><img src="'+urlMaster+'adm/images/filtro_texto_reset.png" align="absmiddle" onclick="elimina_select_ajax(\''+id_final+'\', \''+nombre+'\')" /> '+texto_nombre+'</div>';
	});

	if(elegidos){
		elegidos = elegidos.slice(0, elegidos.length-1);
		$("#"+nombre+"_items").val(elegidos);
		$("#"+nombre+"_seleccionados").html(nombres).show();
	}
	
	if($("#"+nombre+"_onchage").html()){
		eval($("#"+nombre+"_onchage").html());
	}
	
	$.unblockUI();
}

function select_ajax_cancelar(nombre){
	if($("#"+nombre+"_onchage").html()){
		eval($("#"+nombre+"_onchage").html());
	}
	$.unblockUI();		
}

function elimina_select_ajax(id, nombre){
	
	$("#listados").html(loading)
	items = $("#"+nombre+"_items").val().split(",");
	var total = 0;
	var elegidos = "";
	
	$.each(items, function(key, value){
		if(value===id){
			$("#"+nombre+"_"+id).remove();
		} else {
			if(value!=""){
				total++;
				elegidos += value+",";
			}
		}
	});
	
	if(total==0){
		$("#"+nombre+"_seleccionados").html("").hide();
		$("#"+nombre+"_items").val("");
	} else {
		elegidos = elegidos.slice(0, elegidos.length-1);
		$("#"+nombre+"_items").val(elegidos);
	}
	
	// hago un reset completo de items si no queda ninguno
	if($("#"+nombre+"_items").val()==","){
		$("#"+nombre+"_items").val("");
	}

	if($("#"+nombre+"_onchage").html()){
		eval($("#"+nombre+"_onchage").html());
	}

}

function boton_alerta(texto, id){
	id_final = id==undefined ? texto : id;
	return '<input type="button" name="'+id_final+'" id="'+id_final+'" value="'+texto+'" />';
}

function leerCss(archivo){
	$("head").append($("<link rel='stylesheet' href='"+archivo+"' type='text/css' media='screen' />"));
}

$(function(){
	anchor.init();
	$(".ayuda").click(function(event){
		texto_ayuda = $("span", this).html();
		muestra_ayuda(texto_ayuda);
	});
	
	$.blockUI.defaults.css.padding = "10px"; 
	
});

function gup( name ){
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp ( regexS );
	var tmpURL = window.location.href;
	var results = regex.exec( tmpURL );
	if( results == null )
		return"";
	else
		return results[1];
}

// SELECCIONAR ARCHIVO
// levanta un popup para seleccionar un archivo existente en una ruta
// ruta donde va a buscar el archivo
// nombre del campo
function seleccionar_archivo(ruta, nombre) {
	
	$.blockUI({message: loading});

	var parametros = "ruta="+ruta;
	parametros = parametros + "&nombre="+nombre;
	
	$.ajax({
		type: "GET",
		url: urlMaster + "adm/ajax/seleccionar_archivo.php",
		data: parametros,
		success: function(msg){
						
			$.blockUI({message: msg+'<div class="botones">'+boton_alerta("cancelar")+'</div>', theme: true, title: "SELECCIONE EL ARCHIVO", themedCSS: {width: '60%', left: '20%', top: '30%'}});
			$("#cancelar").button().click(function(){seleccionar_archivo_cancelar(nombre)});
		
		}
	}); // fin del ajax

}		

function selecciono_archivo(archivo, ruta, nombre){
	
	$("#"+nombre).val(archivo);
	$("#"+nombre+"_bandera").val(5);

	var parametros = "ruta="+ruta;
	parametros = parametros + "&archivo="+archivo;
	parametros = parametros + "&nombre="+nombre;
	
	$.ajax({
		type: "GET",
		url: urlMaster + "adm/ajax/genero_previo.php",
		data: parametros,
		success: function(msg){
						
			$("#preview_"+nombre).html(msg);
		
		}
	}); // fin del ajax

	$.unblockUI();		
}

function seleccionar_archivo_cancelar(nombre){
	$.unblockUI();		
}

