// ------------------------------------------------------------------------------------------
//  DMX-Database // Time Clock Library 
//  Written by Gerardo Couso Domínguez 
//  E-Mail: gcouso@dmxdatabase.com 
//  (c) 2011 GeX Union Software 
// ------------------------------------------------------------------------------------------
//  clock.js - Archivo de comandos JavaScript para desplegar varios formatos de fecha y hora 
// ------------------------------------------------------------------------------------------

// Sincronizar fecha y hora con el formato "Sabado, 22 de Diciembre de 2012" - "hh:mm:ss"
// Invocación inicial en HTML: <BODY OnLoad="ClockSync();">
// Area de despliegue en HTML: <DIV ID=Calendar></DIV>
// Area de despliegue en HTML: <DIV ID=Clock></DIV>
function ClockSync()
{ // Verificar definición de DIV "Clock"
  if (!document.getElementById('Clock'))
     { alert('Reloj indefinido'); return (false); }

  // Inicializar fecha en DIV "Calendar"
  if (document.getElementById('Calendar'))
     { document.getElementById('Calendar').innerHTML = StampDate('FULL'); }

  // Inicializar hora en DIV "Clock"
  RealTime();
}

// Desplegar hora en tiempo real con el formato "hh:mm:ss"
// Invocación inicial en HTML: <BODY OnLoad="RealTime();">
// Area de despliegue en HTML: <DIV ID=Clock></DIV>
function RealTime()
{ // Inicializar variables
  var Stamp = new Date();
  var Hours = Stamp.getHours();
  var Minutes = Stamp.getMinutes();
  var Seconds = Stamp.getSeconds();
  var Delay = 1000;

  // Verificar definición de DIV "Clock"
  if (!document.getElementById('Clock'))
     { alert('Reloj indefinido'); return (false); }

  // Sincronizar fecha en DIV "Calendar"
  if (document.getElementById('Calendar') && Hours == 0 && Minutes == 0 && Seconds == 0)
     { document.getElementById('Calendar').innerHTML = StampDate('FULL'); }

  // Agregar "0" a la izquierda de valores
  if (Hours < 10) { Hours = '0' + Hours; }
  if (Minutes < 10) { Minutes = '0' + Minutes; }
  if (Seconds < 10) { Seconds = '0' + Seconds; }

  // Desplegar formato "hh:mm:ss" en DIV "Clock"
  document.getElementById('Clock').innerHTML = Hours + ':' + Minutes + ':' + Seconds;

  // Volver a ejecutar la función con retraso
  setTimeout('RealTime()',Delay);
}

// Desplegar fecha y hora en tiempo real con el formato "dd-mm-aaaa ˇ hh:mm:ss"
// Invocación inicial en HTML: <BODY OnLoad="RealDateTime();">
// Area de despliegue en HTML: <DIV ID=Clock></DIV>
function RealDateTime()
{ // Inicializar variables
  var Stamp = new Date();
  var Year = Stamp.getYear();
  var Month = Stamp.getMonth();
  var Dated = Stamp.getDate();
  var Hours = Stamp.getHours();
  var Minutes = Stamp.getMinutes();
  var Seconds = Stamp.getSeconds();
  var Delay = 1000;

  // Verificar definición de DIV "Clock"
  if (!document.getElementById('Clock'))
     { alert('Reloj indefinido'); return (false); }

  // Ajustar (0..11->1..12)
  Month += 1;

  // Agregar "0" a la izquierda de valores
  if (Month < 10) { Month = '0' + Month; }
  if (Dated < 10) { Dated = '0' + Dated; }
  if (Hours < 10) { Hours = '0' + Hours; }
  if (Minutes < 10) { Minutes = '0' + Minutes; }
  if (Seconds < 10) { Seconds = '0' + Seconds; }

  // Desplegar formato "dd-mm-aaaa ˇ hh:mm:ss" en DIV "Clock"
  document.getElementById('Clock').innerHTML = Dated + '-' + Month + '-' + Year + ' ˇ ' + Hours + ':' + Minutes + ':' + Seconds;

  // Volver a ejecutar la función con retraso
  setTimeout('RealDateTime()',Delay);
}

// Retornar valor de hora con el formato "hh:mm[:ss]" en una cadena
// Invocación inicial en HTML: <BODY OnLoad="document.ingresar.hora.value=StampTime('FULL');">
// Invocación directa en HTML: <SCRIPT language="JavaScript"> document.ingresar.hora.value=StampTime('FULL'); </SCRIPT>
function StampTime(format)
{ // Inicializar variables
  var Stamp = new Date();
  var Hours = Stamp.getHours();
  var Minutes = Stamp.getMinutes();
  var Seconds = Stamp.getSeconds();

  // Agregar "0" a la izquierda de valores
  if (Hours < 10) { Hours = '0' + Hours; }
  if (Minutes < 10) { Minutes = '0' + Minutes; }
  if (Seconds < 10) { Seconds = '0' + Seconds; }

  // Distinguir formato
  if (format == 'FULL')
     { // Retornar formato "hh:mm:ss"
       return (Hours + ':' + Minutes + ':' + Seconds);
     } 
  else { // Retornar formato "hh:mm"
         return (Hours + ':' + Minutes);
       }
}

// Retornar valor de fecha con los formatos "dd-mm-aaaa" o "Sábado, 22 de Diciembre de 2012" en una cadena
// Invocación inicial en HTML: <BODY OnLoad="document.getElementById('Calendar').innerHTML=StampDate('FULL');">
// Invocación directa en HTML: <SCRIPT language="JavaScript"> document.getElementById('Calendar').innerHTML=StampDate('FULL'); </SCRIPT>
function StampDate(format)
{ // Inicializar variables
  var Dias = new Array('Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado');
  var Meses = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'); 
  var Stamp = new Date();
  var Year = Stamp.getYear();
  var Month = Stamp.getMonth();
  var Dated = Stamp.getDate();
  var Day = Stamp.getDay();

  // Distinguir formato
  if (format == 'FULL')
     { // Retornar formato "Sábado, 22 de Diciembre de 2012"
       return (Dias[Day] + ', ' + Dated + ' de ' + Meses[Month] + ' de ' + Year);
     }
  else { // Ajustar (0..11->1..12)
         Month += 1;

         // Agregar "0" a la izquierda de valores
         if (Month < 10) { Month = '0' + Month; }
         if (Dated < 10) { Dated = '0' + Dated; }

         // Retornar formato "dd-mm-aaaa"
         return (Dated + '-' + Month + '-' + Year);
       }
}

// Retornar valores de fecha y hora con el formato "dd-mm-aaaa ˇ hh:mm[:ss]" en una cadena
// Invocación inicial en HTML: <BODY OnLoad="document.ingresar.fechahora.value=StampDateTime('FULL');">
// Invocación directa en HTML: <SCRIPT language="JavaScript"> document.ingresar.fechahora.value=StampDateTime('FULL'); </SCRIPT>
function StampDateTime(format)
{ // Inicializar variables 
  var Stamp = new Date();
  var Year = Stamp.getYear();
  var Month = Stamp.getMonth();
  var Dated = Stamp.getDate();
  var Hours = Stamp.getHours();
  var Minutes = Stamp.getMinutes();
  var Seconds = Stamp.getSeconds();

  // Ajustar (0..11->1..12)
  Month += 1;

  // Agregar "0" a la izquierda de valores
  if (Month < 10) { Month = '0' + Month; }
  if (Dated < 10) { Dated = '0' + Dated; }
  if (Hours < 10) { Hours = '0' + Hours; }
  if (Minutes < 10) { Minutes = '0' + Minutes; }
  if (Seconds < 10) { Seconds = '0' + Seconds; }

  // Distinguir formato
  if (format == 'FULL')
     { // Retornar formato "dd-mm-aaaa ˇ hh:mm:ss"
       return (Dated + '-' + Month + '-' + Year + ' ˇ ' + Hours + ':' + Minutes + ':' + Seconds);
     }
  else { // Retornar formato "dd-mm-aaaa ˇ hh:mm"
         return (Dated + '-' + Month + '-' + Year + ' ˇ ' + Hours + ':' + Minutes);
       }
}

// Final de Archivo
