/********************************************************* * Cargador de XMLs según código proporcionado en W3CHOOL * * Realizado por: Pablo Hernández * Creado: 05 - Sept - 2007 * **********************************************************/ /** * Función para cargar un XML, sirve tanto para archivos como para textos * es cross-browser, así que debe funcionar en todos lados * @param texto El texto o la ruta que se desea cargar * @param tipo El tipo de elemento que se desea cargar. true: se carga un archivo, false: se carga un texto * * @returns Retorna un objeto XML **/ function cargarXML(texto, tipo) { var xmlDoc; //Comprobar que se desea cargar if(tipo) { // code for IE if (window.ActiveXObject) { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } // code for Mozilla, Firefox, Opera, etc. else if (document.implementation && document.implementation.createDocument) { xmlDoc=document.implementation.createDocument("","",null); } else { alert('Su navegador no soporta carga de archivos XML, no es posible ejecutar el programa'); xmlDoc = null; } xmlDoc.async=false; xmlDoc.load(texto); } else { // code for IE if (window.ActiveXObject) { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(texto); } // code for Mozilla, Firefox, Opera, etc. else { var parser=new DOMParser(); xmlDoc=parser.parseFromString(texto,"text/xml"); //Comprobar el resultado de la carga, si hay error devolver un objeto nulo if(xmlDoc.documentElement.nodeName=='parsererror') xmlDoc = null; } } return(xmlDoc); } var paneSplitter; //Contenedor de toda la aplicación var menuBar; //Menú de la aplicación var calendario; //Calendario para escoger las fechas var feed; //Cadena de texto que contiene la información para el newFeed var acercaWin; //Ventana modal de "Acerca de..." var velocidadMarquesina = 5; var modalWin; //Ventana modal var windowModelDirectorio; //Modelo de la ventana de directorio var winDirectorio; //ventana de directorio var windowModelCalEmpl; //Modelo de la ventana del calendario var winCalEmpl; //ventana del calendario var geo_Calculadora; //Calculadora sencilla /** * Pone la fecha obtenida en la caja de texto que se creo como referencia en la función elegir Fecha * * @param inputArray contiene los datos de la fecha retornados por elegirFecha */ function abrirCalculadora() { geo_Calculadora = new geoCal(); } /** * Abre una nueva pestaña en la posición dada * * @param position Panel en el que se abrirá el contenido (north, south, east, west, center) * @param id Id de la pestaña a crear * @param contentUrl Dirección del contenido a cargar * @param title Título del contenido * @param tabTitle Título de la pestaña * @param closable Indica si la pestaña puede ser cerrada * @param showRefresh Indica si se debe o no mostrar el boton de Actualizar * @param onCompleteJsCode El código que se ejecutará una vez cargada la pestaña **/ function abrirPagina(position,id,contentUrl,title,tabTitle,closable, showRefresh, onCompleteJsCode) { var inputArray = new Array(); inputArray['id'] = id; inputArray['position'] = position; inputArray['contentUrl'] = contentUrl; inputArray['title'] = title; inputArray['tabTitle'] = tabTitle; inputArray['closable'] = closable; inputArray['displayRefreshButton'] = showRefresh; if(document.getElementById(id)) { paneSplitter.loadContent(id,contentUrl,0,onCompleteJsCode); paneSplitter.showContent(id); } else { if(!paneSplitter.addContent(position, new DHTMLSuite.paneSplitterContentModel( inputArray ),onCompleteJsCode )); paneSplitter.showContent(id); } } /** * Mostrar la información de Geosys */ function acerca() { acercaWin = new DHTMLSuite.modalMessage( {isModal:false} ); acercaWin.setShadowOffset(5); // Large shadow acercaWin.setSize(300,250); var contenido = "

Geosys2
Ver: 0.15

Licenciado a:
Geosuelos Cía. Ltda.

Desarollado por:
Departamento de Sistemas
Geosuelos Cia. Ltda.

"; contenido += "Cerrar
"; acercaWin.setHtmlContent(contenido); acercaWin.display(); } /** * Cambiar el título de un contenido dado * * @param codigo el código del contenido * @param titulo el título que se pondrá tanto en el tab como en el título */ function cambiarTitulo(codigo, titulo) { paneSplitter.setContentTabTitle(codigo,titulo); //Cambiar el título del Tab paneSplitter.setContentTitle(codigo,titulo); //Cambiar el título paneSplitter.showContent(codigo); //Mostrar el contenido } /** * Cargar las actividades del usuario */ function cargarActividades() { //Comprueba si ya está cargado el archivo, de no ser así crear el panel para ello if(!paneSplitter.isUrlLoadedInPane('paneActividades','http://186.4.180.43/geosys2/modules/general/verActividadesDI.php')) { var paneActividades = new DHTMLSuite.paneSplitterContentModel( { id: 'paneActividades', title: 'Actividades Pendientes', tabTitle: 'Inicio', closable: false, displayRefreshButton: true, contentUrl: 'http://186.4.180.43/geosys2/modules/general/verActividadesDI.php', refreshAfterSeconds: 300 } ); paneSplitter.addContent('west',paneActividades); } } /** * Cargar el panel de noticias */ function cargarPanelNoticias() { //Comprueba si ya está cargado el archivo, de no ser así crear el panel para ello if(!paneSplitter.isUrlLoadedInPane('paneNoticias','http://186.4.180.43/geosys2/modules/general/noticiasFix.html')) { var paneNoticias = new DHTMLSuite.paneSplitterContentModel( { id: 'paneNoticias', title: 'Noticias', tabTitle: 'Noticias', closable: true, displayRefreshButton: true, contentUrl: 'http://186.4.180.43/geosys2/modules/general/noticiasFix.html', refreshAfterSeconds: 300 } ); paneSplitter.addContent('west',paneNoticias); } } /** * Cargar las actividades del usuario */ function cargarListaProyectos() { //Comprueba si ya está cargado el archivo, de no ser así crear el panel para ello if(!paneSplitter.isUrlLoadedInPane('paneListaProyectos','http://186.4.180.43/geosys2/modules/ejecucion/proyecto/verTareasCompartidasDI.php')) { var paneListaProyectos = new DHTMLSuite.paneSplitterContentModel( { id: 'paneListaProyectos', title: 'Lista de Tareas Compartidas', tabTitle: 'Tareas Compartidas', closable: false, displayRefreshButton: true, contentUrl: 'http://186.4.180.43/geosys2/modules/ejecucion/proyecto/verTareasCompartidasDI.php', refreshAfterSeconds: 300 } ); paneSplitter.addContent('center',paneListaProyectos); } } /** * Cargar los Gadgets del usuario en el panel derecho */ function cargarGadgets() { url = 'http://186.4.180.43/geosys2/gadgets/verGadgetsDI.php?'; //Comprueba si ya está cargado el archivo, de no ser así crear el panel para ello if(!paneSplitter.isUrlLoadedInPane('paneActividades',url)) { var paneGadget = new DHTMLSuite.paneSplitterContentModel( { id: 'paneGadgets', title: 'Gadgets', tabTitle: 'Gadgets', closable: false, contentUrl: url} ); paneSplitter.addContent('east',paneGadget,'resizeCaller("frmGadgets")'); } } /** * Carga dinámicamente el menú de la aplicación */ function cargarMenu() { ajaxObj = new DHTMLSuite.ajaxUtil(); ajaxObj.sendRequest("includes/cargarMenu.php",'',"ejecutarJS"); } /** * Crea la ventana de calendario de empleado */ function crearVentanaCalEmpl() { windowModelCalEmpl = new DHTMLSuite.windowModel({id:"winCalEmpl",title:"Reporte Trabajo de Campo por Empleado"}); windowModelCalEmpl.isResizable=false, windowModelCalEmpl.addTab({id:"winCalEmplContent", tabTitle:"Calendario"}); winCalEmpl = new DHTMLSuite.windowWidget(); winCalEmpl.addWindowModel(windowModelCalEmpl); winCalEmpl.init(); winCalEmpl.setWidthOfWindow(350); winCalEmpl.setHeightOfWindow(375); winCalEmpl.slideWindowToXAndY(100,50); winCalEmpl.close(); } /** * Crear la ventana de directorio * */ function crearVentanaDir() { windowModelDirectorio = new DHTMLSuite.windowModel({id:"winDirectorio",title:"Directorio",activeTabId:"winDirContent"}); windowModelDirectorio.isResizable=false, windowModelDirectorio.addTab({id:"winDirContent", tabTitle:"Datos Rápidos"}); winDirectorio = new DHTMLSuite.windowWidget(); winDirectorio.addWindowModel(windowModelDirectorio); winDirectorio.init(); winDirectorio.setWidthOfWindow(350); winDirectorio.setHeightOfWindow(180); winDirectorio.slideWindowToXAndY(100,50); winDirectorio.close(); } /** * Ejecuta el código JavaScript recibido * * @param codigo El codigo a ejecutar */ function ejecutarJS(codigo) { //Si existe response es un objeto DHTMLSuite.ajaxUtil if(codigo.response) eval(codigo.response); else eval(codigo); } /** * Muestra el calendario para elegir una fecha * * @param input la caja de texto en la que se muestra la fecha elegida, se referencia directo desde el formulario para evitar duplicidad * @param hora indica si se debe mostrar la opcion de hora */ function elegirFecha(input,hora) { //Revisar si mostrar horas y minutos calendario.displayTimeBar = (hora=='' || hora==null) ? false : hora; calendario.setCalendarPositionByHTMLElement(input,0,input.offsetHeight+2); // Posicionar el calendario a la derecha de la caja calendario.setInitialDateFromInput(input,'dd-mm-yyyy hh:ii'); // El calendario se iniciará con la fecha de la caja calendario.addHtmlElementReference('fechaCalendario',input); // Se añade la referencia con el fin de poder recuperar la fecha en la funcion obtenerFecha if(calendario.isVisible()){ calendario.hide(); }else{ calendario.resetViewDisplayedMonth(); // Muestra el calendario nuevamente limpiando las fechas anteriores calendario.display(); } } /** * Eliminar la cadena para validación de cierre de contenido * * @param codigo el código del elemento a eliminar cadena de validación */ function eliminarCadenaValidacionCierre(codigo) { var aux = document.getElementById(codigo).innerHTML; var patron = /<\/?[cC]heck[cC]lose\/?>/; document.getElementById(codigo).innerHTML = aux.replace(patron,""); } /** * Dar formato decimal de dos dígitos a un número dado * * @param num el número a convertir * * @return el número formateado */ function formatNumber(num) { if(isNaN(num)) return ""; num -= 0; num = (Math.round(num*100))/100; return (num == Math.floor(num)) ? num + '.00' : ( (num*10 == Math.floor(num*10)) ? num + '0' : num); } /** * Obtener la nueva cadena de noticias */ function feed() { var feedObj = new DHTMLSuite.ajaxUtil(); feedObj.sendRequest("http://186.4.180.43/geosys2/modules/general/noticiasDP.php","","ejecutarJS"); } /** * Posicionar el foco en un elemente dado * * @param id Id del elemento */ function focusElement(id) { document.getElementById(id).focus(); } /** * Carga el contenido para el usuario identificado */ function ingresar() { //Comprobar si aún no está cargada la interfaz if(!paneSplitter) inicio(); //Mostrar el div de Ingreso con los menus, saludos y demás. Ocultar el div de inicio document.getElementById("divLogin").className = "visible"; document.getElementById("divInicio").className = "oculto"; //Mostrar los paneles paneSplitter.showPane("north"); paneSplitter.showPane("west"); paneSplitter.showPane("east"); paneSplitter.showPane("south"); paneSplitter.collapsePane("south"); //paneSplitter.collapsePane("east"); paneSplitter.deleteContentById('center'); //cargarGadgets(); //Cargar gadgets del usuario cargarPanelNoticias(); //Carga el panel emergente de noticias (NEW) cargarActividades(); //Carga el archivo de actividades cargarListaProyectos(); //Carga la lista compartida de tareas (NEW) cargarMenu(); //Mostrar el menú saludar(); //Actualiza el campo del saludo //Cargar las noticias y definir el intervalo de repetición feed(); setInterval("feed()",300*1000) marquesina(); setInterval("marquesina()",200); //Inicializar la marquesina } /** * Carga la interface inicial del sistema */ function inicio() { //Corregir la transparencia del logo para navegadores IE if(document.all)DHTMLSuite.commonObj.correctPng('logoImage'); // Crear el modelo de datos para el panel var paneModel = new DHTMLSuite.paneSplitterModel( { collapseButtonsInTitleBars:true } ); DHTMLSuite.commonObj.setCssCacheStatus(false); var paneWest = new DHTMLSuite.paneSplitterPaneModel( { position:"west", id:"westPane",size:260,minSize:260, maxSize:260, resizable:false } ); paneModel.addPane(paneWest); //var paneEast = new DHTMLSuite.paneSplitterPaneModel( { position:"east", id:"eastPane",size:250,resizable:false } ); //paneModel.addPane(paneEast); var paneSouth = new DHTMLSuite.paneSplitterPaneModel( { position:"south", id:"southPane", size:100,minSize:100,maxSize:100,scrollbars:false } ); paneSouth.addContent( new DHTMLSuite.paneSplitterContentModel( { id:"southContent", htmlElementId:'southContent', closable:false, title:" " } ) ); paneModel.addPane(paneSouth); var paneNorth = new DHTMLSuite.paneSplitterPaneModel( { position:"north", id:"northPane",size:55,scrollbars:false,resizable:false } ); paneNorth.addContent( new DHTMLSuite.paneSplitterContentModel( { id:"northContent",htmlElementId:'northContent' } ) ); paneModel.addPane(paneNorth); var paneCenter = new DHTMLSuite.paneSplitterPaneModel( { position:"center", id:"centerPane",size:150,callbackOnBeforeCloseContent:'validarCierreContenido' } ); paneCenter.addContent( new DHTMLSuite.paneSplitterContentModel( { id: 'center',htmlElementId:'mainContainer' } ) ); paneModel.addPane(paneCenter); // Crear el objeto Panel paneSplitter = new DHTMLSuite.paneSplitter(); paneSplitter.addModel(paneModel); // Add the data model to the pane splitter paneSplitter.init(); // Add the data model to the pane splitter DHTMLSuite.configObj.resetCssPath(); // Iniciar el calendario calModel = new DHTMLSuite.calendarModel(); calModel.setLanguageCode('es'); //El calendario se mostrará en español calModel.setWeekStartsOnMonday(false); calendario = new DHTMLSuite.calendar({callbackFunctionOnDayClick:'obtenerFecha',isDragable:true}); calendario.setCalendarModelReference(calModel); } /** * Eliminar los hijos diferentes a NodeType=1 * * @param obj el objeto contenedor */ function limpiarNodos(obj) { for($i=0;$i/; if(innerHTML.search(patron)>=0) return confirm('¿Está seguro que desea cerrar el panel "' + contentObj.title + '"?'); else return true; } return true; } /** * Mostrar el calendario del empleado * * @param emplcdgo código del empleado * @param mes mes en el que se muestra el calendario * @param anio año en el que se muestra el calendario * */ function verVentanaCalEmpl(emplcdgo, mes, anio) { if(!winCalEmpl) crearVentanaCalEmpl(); var ruta = "http://186.4.180.43/geosys2/modules/recursos/empleados/calendarioEmpleadoDI.php?emplcdgo="+emplcdgo+"&mes="+mes+"&anio="+anio; winCalEmpl.loadContent('winCalEmplContent',ruta); winCalEmpl.show(); } /** * Ver la Ventana de directorio * * @param contacto id del contacto * @param tipo tipo de contacto */ function verVentanaDir(contacto, tipo) { if(!winDirectorio) crearVentanaDir(); var ruta = "http://186.4.180.43/geosys2/modules/general/datosRapidosDI.php?cdgo="+contacto+"&tipo="+tipo; winDirectorio.loadContent('winDirContent',ruta); winDirectorio.show(); } /** * Mostrar las propiedades de un objeto */ function zz(obj) { var str=""; //variable which will hold property values for(prop in obj) { str+=prop + " value :"+ obj[prop]+"\n";//Concate prop and its value from object } alert(str); //Show all properties and its value }