// Live calendar source file copyright 2001 David Lawver
//Please do not remove URL from the source code. http://hotshift.com
  var HotShift = "http://hotshift.com";
  var LONGheading = "test";
  var codes = "AB";
  var sequence = "ABAB";
  var SeqDateFloor = new Date("janvier 01, 1970");
  var Seqstartdate = new Date("avril 01, 2222");
  var colors = "#FF0000#008000";
  var OTOffset = 19;
  var OTcycle = 27;
  var Rotcycle = 28;
  var Rotdate = new Date("novembre 22, 1996");
  var Paycycle = 14;
  var PaydayOffset = 1;
  var PaydayType = 1;
  var PaydayCount = 2;
  var Payday1 = 5;
  var Payday2 = 20;
  var OTfootnote = "Underline = FLSA Period";
  var PDfootnote = "$ = Payday";
  var TagCode = "D";
  var numcodes = codes.length;
  var cycle = sequence.length;
  var TodayBGColor = "#FFFFFF";
  var TableBGColor = "#FFFFC0";
  var HeadingColor = "#000000";
  var curdate = new Date();
  var curmonth = curdate.getMonth();
  var curyear = curdate.getFullYear();
  var trueyear = curdate.getFullYear();

  var htmlarray = new Array();
  var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  if (navigator.appName == 'Netscape')
  var selectedLanguage = navigator.language;
  else
  var selectedLanguage = navigator.browserLanguage;
  var code = selectedLanguage.substring(0, 2)
    // IF FRENCH
if (code == 'fr') {
  var Month_Label = new Array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
  var Day_Label = new Array('Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa');
}
    // IF GERMAN
else if (code == 'de') {
  var Month_Label = new Array('Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember');
  var Day_Label = new Array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa');
}
    // IF SPANISH
else if (code == 'es') {
  var Month_Label = new Array('Enero', 'Febrero', 'Marcha', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
  var Day_Label = new Array('Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa');
}
    // IF ENGLISH
else {
  var Month_Label = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
  var Day_Label = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
}
  var Day_Num = new Array(1, 2, 3, 4, 5, 6, 7);

  var Today = curdate.getDate();
  var htmlstring = "";

function Header(Year, Month) {

  if (Month == 1) {
      if ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 != 0))) {
        Days_in_Month[1] = 29;
      }
            else {
                Days_in_Month[1] = 28;
      }
  }
  var Header_String = Month_Label[Month] + ' ' + Year;
  return Header_String;
}

function Make_Calendar(Year, Month) {
  var Seqkeyday;
  var tmpTodayBG=TodayBGColor;
  var tmpTableBG=TableBGColor;
  var codestring=" ";
  var colorcode;
  var daycount = 1;
  var loopcounter = 1;

  if (Year <= 1970) {
    Year = 1970;
  }

  if (Year >= 2029) {
    Year = 2029;
  }
  var First_Date = new Date(Year, Month, 1);

  var Heading = Header(Year, Month);
  var First_Day = First_Date.getDay() ;
  if (((Days_in_Month[Month] == 31) && (Day_Num[First_Day] >= 6)) ||
      ((Days_in_Month[Month] == 30) && (Day_Num[First_Day] == 7))) {
      var Rows = 6;
  }
  else if ((Days_in_Month[Month] == 28) && (Day_Num[First_Day] == 1)) {
      var Rows = 4;
  }
  else {
      var Rows = 5;
  }

  htmlstring += '<table width=100%><tr><td valign="top"><table width=100% align="center" border="3" CELLSPACING=1 cellpadding=3 BGCOLOR="'+TableBGColor+'" BORDERCOLORLIGHT="808080">';
      htmlstring += '<tr><th colspan="7" bgcolor="'+TableBGColor+'"><font color="'+HeadingColor+'">' + Heading + '</font></th></tr>';

  htmlstring += '<tr>';
    htmlstring += '<th width="14%" align="center" bgcolor="'+TableBGColor+'"><small><font color="'+HeadingColor+'">' + Day_Label[0] + '</font></small></th>';
    htmlstring += '<th width="14%" align="center" bgcolor="'+TableBGColor+'"><small><font color="'+HeadingColor+'">' + Day_Label[1] + '</font></small></th>';
    htmlstring += '<th width="14%" align="center" bgcolor="'+TableBGColor+'"><small><font color="'+HeadingColor+'">' + Day_Label[2] + '</font></small></th>';
    htmlstring += '<th width="14%" align="center" bgcolor="'+TableBGColor+'"><small><font color="'+HeadingColor+'">' + Day_Label[3] + '</font></small></th>';
    htmlstring += '<th width="14%" align="center" bgcolor="'+TableBGColor+'"><small><font color="'+HeadingColor+'">' + Day_Label[4] + '</font></small></th>';
    htmlstring += '<th width="14%" align="center" bgcolor="'+TableBGColor+'"><small><font color="'+HeadingColor+'">' + Day_Label[5] + '</font></small></th>';
    htmlstring += '<th width="14%" align="center" bgcolor="'+TableBGColor+'"><small><font color="'+HeadingColor+'">' + Day_Label[6] + '</font></small></th>';
  htmlstring += '</tr>';

  for (var j = 1; j <= Rows; j++) {
    htmlstring += '<tr align="center" VALIGN="top">';

      for (var i = 1; i < 8; i++) {
        if ((loopcounter >= Day_Num[First_Day]) && (daycount <= Days_in_Month[Month])) {

      var Current = new Date(Year, Month, daycount);

      var SMPLdaysdiff = days_diff(SeqDateFloor,Current);
      var Rotdaysdiff = days_diff(SeqDateFloor,Current) + 6;

      Seqkeyday = SMPLdaysdiff % cycle;
      codestring=sequence.substr(Seqkeyday,1);
      colorcode=colors.substr(codes.indexOf(codestring.substr(0,1))*7,7);

      var daystr=daycount.toString();

      if (SMPLdaysdiff > -1){


      }

      daystr=(SMPLdaysdiff>=0 ? '<small><font color="'+colorcode+'">'+daystr+'</font></small>' : '<small><font color="black">'+daystr+'</font></small>');


              if ((daycount == Today) && (Year == curyear) && (Month == curmonth)) {
                htmlstring += '<td BGCOLOR="'+tmpTodayBG+'"  BORDERCOLOR="'+colorcode+'"><strong><I>' +daystr+ '</I></strong></td>';
            }
            else {
                htmlstring += '<td BGCOLOR="'+tmpTableBG+'" BORDERCOLOR="#000000"><strong>' +daystr+ '</strong></td>';
            }

            daycount++;
        }
        else {
            htmlstring += '<td BORDERCOLOR="'+TableBGColor+'">&nbsp;</td>';
        }
        loopcounter++;
      }
      htmlstring += '</tr>';
  }
  htmlstring += '</table></td></tr></table>';
}

//Get number of days from start date to date on calendar

function days_diff(start,current){
    var currentdays = Math.floor(current.getTime() / (1000 * 60 * 60 * 24)*1);
    var startdays = Math.floor(start.getTime() / (1000 * 60 * 60 * 24)*1);
    var daysdiff = (currentdays-startdays);
return daysdiff;
}

function Calendar(r,n,nn) {
  //if (!document.all)
  //return
  //var Mid_Screen = Math.round(document.body.clientWidth / 2);
  if (r==0) {
  var yr=curyear += n;
}
    else {
  var yr=n;
}
  var mo=0;


  htmlstring += '<table border="3" BGCOLOR="'+TableBGColor+'" width="40%" BORDERCOLORLIGHT="808080">';
    htmlstring += '<tr><th colspan=7 BGCOLOR="'+TableBGColor+'" BORDERCOLOR="000000"><FONT COLOR="'+HeadingColor+'">' + LONGheading + '</font></th></tr>';

    htmlstring += '<tr><td align="center" BGCOLOR="'+TableBGColor+'" height="5%" colspan="3" width="50%" nowrap><strong>'
    //Print each shift code in color

        for(i=0; i<=(numcodes-1); i++){
            codestr=codes.substr(i,1);

            //JavaScript1.2
            //htmlarray[i]=codestr.fontcolor(colors.substr(i*7,7));

            //JavaScript1.1
            htmlarray[i]='<font color="' + colors.substr(i*7,7)+'">' +codestr + '</font>';
            htmlstring += htmlarray[i];

        }

    htmlstring += '</strong></td>';
    htmlstring += '</tr>';

for(c=0; c<=3; c++){
  htmlstring += '<tr>';

for(i=0; i<=2; i++){
  htmlstring += '<td width="33%" valign="top">';
  var mo=(c*3)+i;
  Make_Calendar(yr, mo);
  htmlstring += '</td>';
}
  htmlstring += '</tr>';
}
  htmlstring += '</table>';


document.write(htmlstring);

}

// End of source file
