function ShowDate(ts)
{
   var iframeDate = document.getElementById('iframeDate');
   iframeDate.style.visibility = 'visible';

   ResetTableContents();

   if(typeof(ts) == 'undefined' || ts == '')
     ts = GetCurrentTimeStamp();

   AddDateHeader(Number(ts));
   AddDateTitle();
   AddDateContent(Number(ts));

}
function ResetTableContents()
{
   var iframeDate = document.getElementById('iframeDate');
   var tableDate = frames['iframeDate'].document.getElementById('tableDate');
   DeleteTableRows(tableDate);
   return ;

}

function AddDateHeader(ts)
{
   var iframeDate = document.getElementById('iframeDate');
   var tableDate = frames['iframeDate'].document.getElementById('tableDate');

   var tr = AddTableRow(tableDate,0);
   
   var td0 = AddTableData(tr, 0);
   td0.className = 'title';
   AddTableDataContent(td0,MakeLink('prevYear', ts));

   var td1 = AddTableData(tr, 1);
   td1.className = 'title';
   AddTableDataContent(td1,MakeLink('prevMonth', ts));

   var td2 = AddTableData(tr, 2);
   td2.className = 'tithed';
   AddTableDataContent(td2,MakeLink('date', ts));

   var td3 = AddTableData(tr, 3);
   td3.className = 'title';
   AddTableDataContent(td3,MakeLink('nextMonth', ts));

   var td4 = AddTableData(tr, 4);
   td4.className = 'title';
   AddTableDataContent(td4,MakeLink('nextYear', ts));

}

function AddDateTitle()
{
   var iframeDate = document.getElementById('iframeDate');
   var tableDate = frames['iframeDate'].document.getElementById('tableDate');
   var tr = AddTableRow(tableDate,1);
   
   var tableContent = '<table id=\"tableContentDate\" cellpading=\"1\" cellspacing=\"1\" border=\"0\" width=\"100%\"><tr><td class=\"title\" >L</td><td class=\"title\" >M</td><td class=\"title\" >M</td><td class=\"title\" >J</td><td class=\"title\" >V</td><td class=\"title\" >S</td><td class=\"title\" >D</td></tr></table>';

   var td = AddTableData(tr, 0);
   AddTableDataColspan(td,5);
   AddTableDataContent(td,tableContent);
   
}

function AddDateContent(ts)
{
   var iframeDate       = document.getElementById('iframeDate');
   var tableContentDate = frames['iframeDate'].document.getElementById('tableContentDate');

//    var tableContentDate = iframeDate.document.getElementById('tableContentDate');

   var date = new Date(Number(ts));
   var ts   = date.getTime();

   var firstDayOfMonth = GetFirstDayOfMonth(Number(ts));
   var daysOfMonth     = GetMonthDays(date.getMonth(), date.getYear());

   var firstTime = true;
   var curCell   = 0;
   var curRow    = 1;

   var day = 1;

   while(daysOfMonth >= day)
   {
      if(firstTime == true)
      {
         firstTime = false;

         var tr = AddTableRow(tableContentDate,1);

         if(firstDayOfMonth > 0)
         {
            for(var curCell = 0; curCell < Number(firstDayOfMonth - 1); curCell++)
            {
               var td = AddTableData(tr, curCell);
               AddTableDataContent(td,'');
            }
         }
         else
         {
            for(var curCell = 0; curCell < 6; curCell++)
            {
               var td = AddTableData(tr, curCell);
               AddTableDataContent(td,'');
            }
         }

      }

      if(curCell > 6)
      {
         curCell = 0;
         curRow++; 

         var tr = AddTableRow(tableContentDate,curRow);
      }

      var td = AddTableData(tr, curCell);
      AddTableDataContent(td,day,ts);

      curCell++;
      day++;
   }

}
   
function GetMonthDays(month, year)
{
   switch(month)
   {
      case 1:
         if(year/4 - parseInt(year/4))
         {
            return 28;
         }
         return 29;
      break;

      case 3:
      case 5:
      case 8:
      case 10:
         return 30;
      break;
      default:
         return 31;
      break;

   }
}

function GetYearDays(year)
{
   var yearDays = 0;

   for(month=0; month<12; month++)
   {
      yearDays = yearDays + GetMonthDays(month, year);
   }

   return yearDays;
}

function GetCurrentDay()
{
   var date = new Date();
   var currentDay = date.getDate();

   return currentDay;
}

function GetCurrentTimeStamp()
{
   var date      = new Date();
   var timeStamp = date.getTime();

   return timeStamp;
}

function GetFirstDayOfMonth(ts)
{
   var date = new Date(ts);
   date.setDate(1);

   var firstDay = date.getDay();

   return firstDay;
}

function DeleteTableRows(tbl)
{
   var tableRows = tbl.rows.length;

   for(var i = 1 ; i <= tableRows; i++)
   {
      tbl.deleteRow(0);
   }

}
function AddTableRow(tbl,rowPos)
{
   var tr = tbl.insertRow(rowPos);

   return tr;
}

function AddTableData(tr,cellPos)
{
   td = tr.insertCell(cellPos);

   return td;
}

function AddTableDataContent(td, content,ts)
{
   
   if(content == '' || content.length > 2)
   {
      td.innerHTML = content;
      return;
   }

   tsDays = Number(MakeLink('firstDay',ts)) + 86400*content;

   td.innerHTML = '<a href=\"javascript:parent.SelDate(\'' + content + '\',\'' + tsDays + '\');\" >' + content + '</a>';
   td.className = 'link';

   var date   = new Date(Number(ts));
   var cdate  = new Date(Number(GetCurrentTimeStamp()));

   if(date.getMonth() == cdate.getMonth() && date.getFullYear() == cdate.getFullYear())
      if(content == GetCurrentDay())
         td.className = 'cday';

   if(ts == tsDays)
      td.className = 'sday';
}

function SelDate(day,ts)
{
   var date = new Date(Number(ts));

   if(day.length < 2)
      day = '0' + day;

   var month = String(Number(date.getMonth()) + 1);

   if(month.length < 2)
      month = '0' + month;

   document.Convertor.date.value = day + '/' + month + '/' + date.getFullYear();

   var iframeDate = document.getElementById('iframeDate');
   iframeDate.style.visibility = 'hidden';

   document.Convertor.ts.value = Number(ts);
   document.Convertor.submit();
}

function AddTableDataColspan(td, cSpan)
{
   td.colSpan   = cSpan;
}

function AddTableDataRowspan(td, rSpan)
{
   td.rowSpan   = rSpan;
}

function MakeLink(type, ts)
{
   var time = Number(ts);

   var date = new Date(time);

   var year    = date.getFullYear();
   var month   = date.getMonth();

   var link = '';
   switch(type)
   {
      case 'prevYear':
         var prepDate = new Date(year - 1, month);
         var selTime = prepDate.getTime();

         //alert("Previous year : " + prevYear);

         name = '<<';
      break;

      case 'firstDay':
         var prepDate = new Date(year, month);
         var selTime = prepDate.getTime();

         return selTime;

      break;

      case 'prevMonth':
         var prepDate = new Date(year, month - 1);
         var selTime = prepDate.getTime();

         //alert("Previous month : " + prevMonth);

         name = '<';
      break;

      case 'nextMonth':
         var prepDate = new Date(year, month + 1);
         var selTime = prepDate.getTime();

         //alert("Next month : " + nextMonth);
         name = '>';
      break;

      case 'nextYear':
         var prepDate = new Date(year + 1, month);
         var selTime = prepDate.getTime();

         //alert("Next year : " + nextYear);

         name = '>>';
      break;

      case 'date':
         months = new Array();
         months[0]  = 'Ianuarie';
         months[1]  = 'Februarie';
         months[2]  = 'Martie';
         months[3]  = 'Aprilie';
         months[4]  = 'Mai';
         months[5]  = 'Iunie';
         months[6]  = 'Iulie';
         months[7]  = 'August';
         months[8]  = 'Septembrie';
         months[9]  = 'Octombrie';
         months[10] = 'Noiembrie';
         months[11] = 'Decembrie';
   
         return months[date.getMonth()] + ' ' + year;
      break;
   }
   
   link = "<a href=\"javascript:parent.ShowDate('" + selTime + "');\" >";
   link += name + "</a>";

   return link;
}



