
/* Funciones basicas VARIOS */

/*
 * Modificaciones:
 * 
 * 	19-01-2010: Añadimos soporte jQuery a todas las funciones.
 *  
 *  22-10-2009: Añadimos soporte de la galeria para poscionamiento estatico independiente del scroll.
 *  
 * 
 */


//CARGA INICIAL DE MODULOS DEL PANEL DE CONTROL

function inicialPC()
{
	//Calculamos y asignamos el alto del cuerpo al navegador
	//divCuerpoAltoMaximo();
	//Añadimos el evento de redimensionado al navegador
	//window.onresize=divCuerpoAltoMaximo;
	//Añadimos las transparencias necesarias a los divs
	//divTransparenciasPC();
	//Modulos de carga iniciales del PANEL DE CONTROL
	//traeCodigo('funciones/mensajes.pc.php', '', 'cuerpo_body_superior_01');
	traeCodigo('funciones/menu.pc.php', '', 'cuerpo_menu_superior_01');
	traeCodigo('funciones/barra_herramientas.pc.php', '', 'cuerpo_botonera_superior_01');
	traeCodigo('funciones/alarmas.pc.php', 'accion=mostrar_elementos', 'cuerpo_body_superior_01');
	
}

/* Se obtiene desde el skin
function inicialWEB()
{
	//Modulos de carga iniciales de la WEB
	
}
*/

//CIERRE DE SESION AUTOMATICO PARA EL PANEL DE CONTROL 

function cerrarSesionPC()
{
	//Salimos de la sesion actual del Panel de Control
	window.location.href=unescape(window.location.pathname)+'?accion=salir';
}

//ELEMENTOS DE CARGA INICIALES DEL PANEL DE CONTROL 

function cambiarClave()
{
	//Modulos de carga iniciales del PANEL DE CONTROL
	traeCodigo('funciones/usuarios_clave.pc.php', '', 'cuerpo_body_superior_01');
}

// CAMBIO DE TAMAÑO EN LA FUENTE

var tamOriginalFuente = $('html').css('font-size');

function aumentarTamFuente()
{
	var tamActual = $('html').css('font-size');
	var tamActualNum = parseFloat(tamActual, 10);
	var nuevaFuente = tamActualNum*1.1;
	$('html').css('font-size', nuevaFuente);
	return false;
}

function reducirTamFuente()
{
	var tamActual = $('html').css('font-size');
	var tamActualNum = parseFloat(tamActual, 10);
	var nuevaFuente = tamActualNum*0.9;
	$('html').css('font-size', nuevaFuente);
	return false;
}

function inicialTamFuente()
{
	$('html').css('font-size', tamOriginalFuente);
}

//AUTOMATIZACIÓN DE LA OBTENCIÓN DE CAMPOS DEL FORMULARIO

function obtener_campos(formulario)
{
	var cadena_ajax;
	var campos_error;
	//Si tenemos nodos en el formulario que lo recorra
	if(formulario.hasChildNodes()) 
	{	
		//Recorremos el formulario en todos sus controles
		for (i=0;i<formulario.length;i++)
		{
			//Si no tiene atributo campo es que no necesita salir en la SQL o El envio AJAX
			if(formulario[i].getAttribute('campo'))
			{
				var valor;
				//Segun el tipo de campo de form que sea se tendran que obtener los datos de una manera u otra
				switch(formulario[i].nodeName)
				{
					case 'INPUT':
						//Dentro de los INPUT tenemos los type: text, checkbox, radio
						switch(formulario[i].getAttribute('type'))
						{
							case 'text':
								valor=encodeURIComponent(remplazarURIs(formulario[i].value));
							break;
							case 'hidden':
								valor=encodeURIComponent(remplazarURIs(formulario[i].value));
							break;
							case 'password':
								valor=formulario[i].value;
							break;
							case 'checkbox':
								if(formulario[i].checked)
								{
									valor='1';
								}else{
									valor='0';
								}
							break;
							case 'radio':
								if(formulario[i].checked)
								{
									valor=formulario[i].value;
								}else
								{
									valor='sin seleccion';
								}
							break;
						}
					break;
					case 'TEXTAREA':
						valor=encodeURIComponent(remplazarURIs(formulario[i].value)); //Aunque tambien podemos obtener el valor mediante el texto del primer hijo que es su propio texto
						//alert(formulario[i].value);
					break;
					case 'SELECT':
						if(formulario[i].getAttribute('multiple'))
						{
							//Multiseleccionable SIN USO ACTUAL
						}else
						{	//Una unica seleccion
							valor=formulario[i].value; //Aunque tambien podemos obtener el valor mediante el texto del primer hijo que es su propio texto
						}
					break;
					case 'null':
						//Si no tiene tipo no seria logico que tenga 'campo' pero estas cosas pasan ;)
						valor='VACIO';
					break;
				}
				//Obtenemos el listado de todos los componentes
				if(cadena_ajax==undefined){
					cadena_ajax=formulario[i].getAttribute('campo')+'='+valor;
				}
				else{
					cadena_ajax+='&'+formulario[i].getAttribute('campo')+'='+valor;
				}
				
				//Comprobamos si el filtro del campo ha devuelto error
				if(formulario[i].getAttribute('filtro_ok')=='0'){
					if(campos_error==undefined){
						campos_error='Los siguientes campos contienen errores: \r\n - '+formulario[i].getAttribute('campo');
					}
					else{
						campos_error+='\r\n - '+formulario[i].getAttribute('campo');
					}	
				}
			}
		}
	}
	
	//Si hay errores en los campos los mostramos
	if(campos_error!=undefined){
		alert(campos_error);
		return -1;
	}
	else{
		return cadena_ajax;
	}
}

function remplazarURIs(cadena)
{
	//Remplazamos cualquier posible uri con su equivalente espaciado
	var patron = /(%)(\d)(\d)/g;
	cadena = cadena.replace(patron, "$1 $2$3");
	//alert(cadena);
	return cadena;
}

function comprobar_campos(campo)
{
	var cadena='filtro='+campo.getAttribute('filtro');
	cadena+='&valor='+campo.value;
	cadena+='&id='+campo.id;
	//alert(cadena);
	traeCodigo('../configuracion/comprobar_campos.php', cadena, 'filtro_'+campo.id);
}

//FUNCIONES DE CONTROL DEL EDITOR WYSIG FCK

function MyFCKClass(){
	this.UpdateEditorFormValue = function(){
		for ( i = 0; i < parent.frames.length; ++i )
    	if ( parent.frames[i].FCK )parent.frames[i].FCK.UpdateLinkedField();
   }
}

//FUNCIÓN COMPATIBLE CON TODOS LOS NAVEGADORES PARA OBTENER OBJ EN JS

function returnObjById(id)
{ 
    return $('#'+id); 
}

