/* Funciones basicas AJAX */

/*
 * Modificaciones:
 *  
 *  15-01-2010: Añadiomos soporte jQuery y XML completo al soporte de ajax
 *  
 *  22-10-2009: Añadimos el control de posicionamiento para los elementos por separado del pc y la web
 *  
 * 	24-06-2009: Añadimos control al ajax para evitar más de una llamada al mismo tiempo
 * 
 */

function traeCodigo(phpdestino,datos,divdestino) {	
	//Destino por defecto para el cuerpo para detectar cuando se carga un modulo para la barra de estado
	var destino_pordefecto_pc='cuerpo_body_superior_01';
	var destino_pordefecto_web='div_cuerpo';
	//Destino de la barra de estado para actualizar la posicion del modulo actual
	var destino_barraestado='cuerpo_bdireccion_superior_01';
	//Destino de la barra de navegación
	var destino_barranavegacion;
	//Declaración necesaria para evitar errores en IE6
	destino_barranavegacion='div_cabecera_menu_flotante_navegacion';
	
	//Ajax
	//Añadimos como parametro estandar para todos los casos el destino de los datos a mostrar
	datos+='&div_destino_web='+divdestino;
	
	$.ajax({
        async:true,
        type: "POST",
        dataType: "xml",
        contentType: "application/x-www-form-urlencoded",
        url:phpdestino,
        data:datos,
        beforeSend:function (){
			if($('#'+divdestino).height()>50)
				$('#'+divdestino).html("<br /><center><img src=imagenes/cargando.gif></img></center>"); 
		},
        success:llegadaDatos,
        timeout:4000,
        error:function (){ $('#'+divdestino).html("<br /><center>Problemas en el servidor, pruebe pasados unos minutos.</center>"); }
      }); 	

	//SI tenemos que el div destino es el del cuerpo por defecto pedimos tambien los datos necesarios para actualizar la barra de direccion
	if(divdestino==destino_pordefecto_pc)
	{
		//Para obtener unicamente el nombre del modulo que estamos cargando dividimos la cadena con '/' y obtenemos el ultimo
		var ele=phpdestino.split('/');
		traeCodigo('funciones/barra_estado.pc.php', 'accion=obtener_datos_modulo&modulo='+ele[ele.length-1], destino_barraestado);
	}
	
	//Montamos la navegacion si tenemos div de navegación válido
	if($('#'+destino_barranavegacion).length) { navegacionMostrar(phpdestino,datos,divdestino); }
	
	//return false;
}

function llegadaDatos(datosxml) {
	//Obtenemos y añadimos los datos
	$(datosxml).find('code').each(function(){
		//Ocultamos el contenido
		//$("#"+$(this).find('destino').text()).hide();
		
		$("#"+$(this).find('destino').text()).html(
				'<style type=text/css>'+
				$(this).find('css').text()+
				'</style>'+
				$(this).find('html').text()+
				'<script type=text/javascript>'+
				$(this).find('javascript').text()+
				'</script>'
				);
		
		//Mostramos el contenido con efecto
		$("#"+$(this).find('destino').text()).slideDown('slow', function() {});
	});
	
	//return false;
}