//calendar.js

var mname = new mkArray('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var days  = new mkArray(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var gMonth = -1;
var gYear = -1;
var gDoc;
var gName;
var gWhat;
var gControl;
var gInternationnalFormat = 0;

function rundate(dateInput, myTarget)
{
  CalendarShow('cal', 0, dateInput,0, myTarget);
}

function CalendarCreate(namex, x, y, doc, show)
{
  var content = CalendarBuild(-1, -1);

  gDoc = doc;
  gName = namex;
  
  LayerCreate(namex, x, y, 180, 155, show, content, doc);
 
}  

function CalendarShow(namex, what, cntl, internat, xyTarget)
{
  gControl = cntl;
  gName = namex;
  gWhat = what;
  LayerShow(namex, gDoc);
  gInternationnalFormat = internat;
  if(xyTarget){
  	xyDiv = document.getElementById(xyTarget);
  	x = findPosX(xyDiv);
	y = findPosY(xyDiv);
	addWidth = xyDiv.offsetWidth;
	
	obj = document.getElementById(namex);
	//alert(obj);
	obj.style.left = x + addWidth + 'px';
	obj.style.top = y + 'px';
	//alert(xyTarget + ' ' + x + ' ' + y + ' ' + addWidth);
	//tempHideSelect();
  }
}  

function y2k(number)
{
	return (number < 1000) ? number + 1900 : number;
}

function mkArray()
{
  for(i=0; i<mkArray.arguments.length; i++)
   this[i] = mkArray.arguments[i];
}

function CalendarBuild(Monthx, Year)
{
	
	var today = new Date();
	var nowDay   = today.getDate();
	var nowMonth = today.getMonth();
	var nowYear  = y2k(today.getYear());
	//alert(Month);
	if(Monthx == -1)
	 Monthx = nowMonth;
  if(Year == -1)
   Year = nowYear;	 
   
  if(gMonth == -1)
   gMonth = Monthx;

  if(gYear == -1)
   gYear = Year;      
	
  var pMonth = Monthx - 1;
  var nMonth = Monthx + 1;
	
  firstDay = new Date(Year,Monthx,1);
  startDay = firstDay.getDay();

  if(((Year % 4 == 0) && (Year % 100 != 0)) || (Year % 400 == 0))
   days[1] = 29; 
  else
   days[1] = 28;
   
  var output = '';
  output += '<center><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=1><tr bgcolor="#ffffff"><td>';
  output += '<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>';
  output += '<TR bgcolor="#dcdcdc">';
  output += '<TD colspan=8 align=center valign=center><A HREF="Javascript:changeMonth(' + pMonth + ')"><IMG SRC=images/monthprev.gif WIDTH=11 HEIGHT=11 BORDER=0><\/A>&nbsp;';
  output += '<TT><B>' + mname[Monthx] + ' ' + Year + '<\/B><\/TT>&nbsp;';
  output += '<A HREF="Javascript:changeMonth(' + nMonth + ')"><IMG SRC=images/monthnext.gif WIDTH=11 HEIGHT=11 BORDER=0><\/A><\/TD><\/TR>';
  output += '<TR BGCOLOR=eeeeee>';
  output += '<TD><TT>&nbsp;<\/TD>';
  output += '<TD align=right><TT>Su&nbsp;<\/TD>';
  output += '<TD align=right><TT>Mo&nbsp;<\/TD>';
  output += '<TD align=right><TT>Tu&nbsp;<\/TD>';
  output += '<TD align=right><TT>We&nbsp;<\/TD>';
  output += '<TD align=right><TT>Th&nbsp;<\/TD>';
  output += '<TD align=right><TT>Fi&nbsp;<\/TD>';
  output += '<TD align=right><TT>Sa&nbsp;<\/TD>';
  output += '<\/TR>';

  var column = 0;
  var row = 0;
  var lastMonth = Monthx - 1;
  
  if(lastMonth == -1)
   lastMonth = 11;

  output += '<TR bgcolor="#FFFFFF"><TD><TT>&nbsp;<\/TD>';
  
  //Previous Month
  for(i=0; i<startDay; i++, column++)
   output += '<TD align=right><TT><FONT COLOR="#999999">' + (days[lastMonth]-startDay+i+1) + '<\/FONT>&nbsp;<\/TD>';

  row = 1;
  //This Month
  for(i=1; i<=days[Monthx]; i++, column++)
  {
    output += '<TD align=right><TT><A HREF="javascript:changeDay(' + i + ')"><FONT COLOR="#0000FF">' + i + '<\/FONT><\/A>&nbsp;<\/TD>';
    if(column == 6)
    {
        output += '<\/TR><TR bgcolor="#FFFFFF"><TD><TT>&nbsp;<\/TD>';
        column = -1;
        row += 1;
    }
  }

  //Next Month
  if(column > 0)
  {
    for(i=1; column<7; i++, column++)
     output += '<TD align=right><TT><FONT COLOR="#999999">' + i + '<\/FONT>&nbsp;<\/TD>'; 
  }

  output += '<\/TR><tr><td colspan=8><\/td><\/tr><tr><td colspan=8><\/td><\/tr>';
  output += '<tr bgcolor="#dcdcdc"><td colspan=8 align=center><TT>';
  output += 'Today: ' + mname[nowMonth] + ' ' + nowDay + ',' + nowYear
  output += '<\/td><\/tr>';
  output += '<\/TABLE><\/td><\/tr><\/table><\/center>';
  
  return output;
}

function changeMonth(m)
{
	
  gMonth = m;
  
  if(gMonth < 0)
  {
   gMonth = 11;
   gYear = gYear - 1;
  }
  if(gMonth > 11)
  {
    gMonth = 0;
    gYear = gYear + 1;
  }       
  
  var content = CalendarBuild(gMonth, gYear);
  
  LayerContent(gName, content, gDoc);
}  

function changeDay(d)
{
  LayerHide(gName, gDoc);
  if (gInternationnalFormat)
  {
  	if (d < 10)
  		var dateval = '0' + d + '/'
	else
		var dateval = d + '/'
	if (gMonth + 1 < 10)
		dateval = dateval + '0' + (gMonth + 1) + '/'	
	else
		dateval = dateval + (gMonth + 1) + '/'	
	dateval = dateval + gYear;
  } else {
	 var dateval = (gMonth + 1) + '/' + d + '/' + gYear;
  }
  gControl.value = dateval;
  
  //if(gDoc.all)
  // gWhat.innerHTML = dateval;
  //else if(gDoc.layers)
  //{
  //  gWhat.document.open();
  //  gWhat.document.write(dateval);
  //  gWhat.document.close();
  //}
  //tempShowSelect();
}


