<!-- // Coder: Reginald Armond 1998.06.17 -->
<!-- // Purpose: CodeBase for my digital clock -->

var clock_fgcolor, clock_bgcolor,clock_width,clock_height;

function DisplayClock(sDivID,nSize,rgb_BACK,rgb_FORE)
{
var obj=oRef(sDivID);
var s;
if(obj==null)
    return;
  s=make_clock_display((18*nSize),2*nSize,rgb_FORE,rgb_BACK,"content/seg_ff0000.gif","content/seg_trans.gif",12,"o");
  obj.innerHTML=s;
  updateclock();
}

function updateclock() 
{
	set_clock_now();        
	id=setTimeout("updateclock()",1000); 
}

function cvt_int_bin(num,bits)
{
   var x="";
   var i;

   for(i=0;i<bits;i++) x+=(num>>i & 1) ? "1":"0";
     
   return x;
}

function cvt_int_hms(i_time,fmt)
{
  var x=i_time;
  var h,m,s,post;
  h=Math.floor(x / 3600); x=(x % 3600);
  m=Math.floor(x / 60); 
  s=(x % 60);  

  m=(m<10) ? "0"+m:""+m;
  s=(s<10) ? "0"+s:""+s; 
  post="";
  // fmt=0
  if(fmt==0)   // 24:59:59 
   	{
		h=(h<10) ? "0"+h:""+h;
	}
	
  if(fmt==1)   // 12:59:59 {A|P}M
   	{
		post=(h>11) ? "P":"A";

		if(h<1) h=12;
                if(h>12) h-=12;

		if(h<10) h=" "+h;

		post+="M"
	}

    return h+":"+m+":"+s+" "+post; 
}

function cvt_hms_int(h,m,s)
{
return h*3600 + m*60 + s;
}

// Globals for Digital Clock Display
var seg0,seg1,clock_format=12;
var clockcols="ADCDE",oldclocktime="FFFFFF";
var dn=new Array("1110111","0010010","1011101","1011011","0111010","1101011","1101111","1110010","1111111","1111011","0000000");
var digit_map="0123456789 ";

function make_digital_display(seg_width,seg_height,seg_color,seg_on,seg_off,seg_digits)
{  // seg_on( transparent gif ) , seg_off ( black gif ), seg_digits ( digit column name )
   var i,c,q,sn;
   var s="";
   q='"';

	seg0=seg_off; seg1=seg_on;


	// Make 7 Segment Digit

        s+="<TABLE CELLPADDING=0 CELLSPACING=2 BORDER=0>";
        sn=0;
        s+='<TR>';
        for(i=0; i<seg_digits.length; i++) 
{ c=seg_digits.charAt(i); s+="<TD></TD><TD><IMG NAME="+q+c+sn+q+" SRC="+q+seg_off+q+" WIDTH="+seg_width+" HEIGHT="+seg_height+"></TD><TD></TD>"; }
        s+='</TR>';
        sn++;

        
        s+='<TR>';
	for(i=0; i<seg_digits.length; i++)
	 { 
          c=seg_digits.charAt(i);
	  s+="<TD><IMG NAME="+q+c+sn+q+" SRC="+q+seg_off+q+" width="+seg_height+" height="+seg_width+"></TD><TD></TD><TD><IMG NAME="+q+c+(sn+1)+q+" SRC="+q+seg_off+q+" width="+seg_height+" height="+seg_width+"></TD>";
         }
        s+='</TR>';
        sn+=2;
		 
       
	s+='<TR>';
        for(i=0; i<seg_digits.length; i++) { c=seg_digits.charAt(i); s+="<TD></TD><TD><IMG NAME="+q+c+sn+q+" SRC="+q+seg_off+q+" width="+seg_width+" height="+seg_height+"></TD><TD></TD>"; }
        s+='</TR>';
	sn++;

        s+='<TR>';
	for(i=0; i<seg_digits.length; i++)
	 { 
          c=seg_digits.charAt(i);
	  s+="<TD><IMG NAME="+q+c+sn+q+" SRC="+q+seg_off+q+" width="+seg_height+" height="+seg_width+"></TD><TD></TD><TD><IMG NAME="+q+c+(sn+1)+q+" SRC="+q+seg_off+q+" width="+seg_height+" height="+seg_width+"></TD>";
         }
        s+='</TR>';
         sn+=2;

       
	s+='<TR>';
        for(i=0; i<seg_digits.length; i++) { c=seg_digits.charAt(i); s+="<TD></TD><TD><IMG NAME="+q+c+sn+q+" SRC="+q+seg_off+q+" width="+seg_width+" height="+seg_height+"></TD><TD></TD>"; }
        s+='</TR>';
        sn++;

   s+="</TABLE>";   
return s;
}


function make_clock_display(num_width,num_height,num_color,num_bgcolor,num_on,num_off,fmt,colon)
{
var q='"',cc=colon+"<br><br>"+colon;
var csize=Math.floor(6*(num_width/50));
var s="";
clock_format=fmt;

c="<FONT SIZE="+csize+" FACE="+q+"Courier"+q+" COLOR="+num_color+"><BLINK>"+cc+"</BLINK></FONT>";


// No table bgcolor 2005.4.19
// s+="<TABLE BGCOLOR="+num_bgcolor+" BORDER=0 CELLSPACING=0 CELLPADDING=0><TR><TD>"; s+=make_digital_display(num_width,num_height,num_color,num_on,num_off,"AB"); 
s+="<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR><TD>"; s+=make_digital_display(num_width,num_height,num_color,num_on,num_off,"AB"); 
s+="</TD><TD>"+c+"</TD><TD>"; s+=make_digital_display(num_width,num_height,num_color,num_on,num_off,"CD"); 
s+="</TD><TD>"+c+"</TD><TD>"; s+=make_digital_display(num_width,num_height,num_color,num_on,num_off,"EF"); 
s+="</TD>";
if(fmt==12)
  {
  s+="<TD>.</TD><TD>";   s+=make_digital_display(num_width,num_height,num_color,num_on,num_off,"G"); 
  s+="</TD>";        
  }
s+="</TR></TABLE>";
return s;
}


function set_digital_segments(seg_digit_code,seg_digit_state)
{
  if(seg_digit_state.length!=7) return 0;
  for(i=0;i<7;i++)  
	{
        code=seg_digit_code+i;                       
	document[code].src=(seg_digit_state.charAt(i)=='1') ? seg1:seg0;
        }
  return 1;
}

function set_digit(seg_digit_code,seg_digit_value)
{  
  X=set_digital_segments(seg_digit_code,dn[seg_digit_value]);
  return;
}


function set_clock_time(ch,cm,cs)
{
	var d0="";

	if(clock_format==12) 
		{
		if(ch>11) 	set_digital_segments("G","1111100"); else set_digital_segments("G","1111110");
                if(ch==0) ch=12;
                if(ch>12) ch-=12;
		}	

	if(ch<10) ch=" "+ch;
        if(cm<10) cm="0"+cm;
        if(cs<10) cs="0"+cs;		

	d0=""+ch+cm+cs;               
       
	if(oldclocktime.charAt(0)!=d0.charAt(0)) set_digit("A",digit_map.indexOf(d0.charAt(0)));
	if(oldclocktime.charAt(1)!=d0.charAt(1)) set_digit("B",digit_map.indexOf(d0.charAt(1)));

	if(oldclocktime.charAt(2)!=d0.charAt(2)) set_digit("C",digit_map.indexOf(d0.charAt(2)));
	if(oldclocktime.charAt(3)!=d0.charAt(3)) set_digit("D",digit_map.indexOf(d0.charAt(3)));

	if(oldclocktime.charAt(4)!=d0.charAt(4)) set_digit("E",digit_map.indexOf(d0.charAt(4)));
	if(oldclocktime.charAt(5)!=d0.charAt(5)) set_digit("F",digit_map.indexOf(d0.charAt(5)));
	
	
	oldclocktime=d0;
	return;
	
}

function set_clock_now()
{
	var now=new Date;
	h=now.getHours();
	m=now.getMinutes();
	s=now.getSeconds();

	set_clock_time(h,m,s);
	return;
}
