//----------------------------------------------------------------------
//- tbaShabbatServiceTimes - Display default or override Shabbat
//- service informations and comments.
//----------------------------------------------------------------------

//- REQUIRES: tbaDate.js            loaded BEFORE this script file
//- REQUIRES: tbaShabbatTimeData.js loaded AFTER  this script file

   var tbaShabbat          = '';
   var tbaFridayTime       = '';
   var tbaSaturdayTime     = '';
   var tbaSundayTime       = '';
   var tbaGeneralComments  = '';

//----------------------------------------------------------------------
  var tbaShabbatData = new Array();

  tbaShabbatData [1] =
   {Friday   : '7:30pm - Shabbat of Story & Song Service',
    Saturday : '10:30am - Shabbat Morning Service',
    Sunday   : '10:15am - Minyan',
    Comments : ''};

  tbaShabbatData [2] =
   {Friday   : '7:00pm - Tot Erev Shabbat Service<br>'+
               '8:00pm - Kabbalat Shabbat Service',
    Saturday : '10:30am - Shabbat Morning Service<br>'+
               '10:30am - Shabbat Morning Chapel Service followed by Kiddush luncheon',
    Sunday   : '10:15am - Minyan',
    Comments : ''};

  tbaShabbatData [3] =
   {Friday   : '6:00pm - Light nosh before service<br>'+
               '6:30pm - Spirit of Shabbat Service',
    Saturday : '10:30am - Shabbat Morning Service',
    Sunday   : '10:15am - Minyan',
    Comments : ''};

  tbaShabbatData [4] =
   {Friday   : '8:00pm - Kabbalat Shabbat Service',
    Saturday : '10:30am - Shabbat Morning Service',
    Sunday   : '10:15am - Minyan',
    Comments : ''};

  tbaShabbatData [5] =
   {Friday   : '8:00pm - Kabbalat Shabbat Service',
    Saturday : '10:30am - Shabbat Morning Service',
    Sunday   : '10:15am - Minyan',
    Comments : ''};

//----------------------------------------------------------------------

   function tbaDisplayShabbatTimes()
   {
    var text = tbaGetShabbatText();

    tbaDisplayStyles();

    document.writeln
    (
     '<TABLE border=0 align="center" cellpadding="0" cellspacing="5"    '+
     ' width="100%" class="tbaShabbatBox">                              '+
     ' <TR>                                                             '+
     '  <TD>                                                            '+
     '   <div class="tbaShabbatTag">                                    '+
     '    <a title="Show Monthly Shabbat Service Schedule"              '+
     '     href="javascript:tbaToggleText(\'tbaServiceTimes\');">Service'+
     '    Times for Shabbat</a> starting on <b>                         '+
          text.Date                                                      +
     '    </b>                                                          '+
     '   </div>                                                         '+
     '   <table border="0" cellspacing="0" cellpadding="0" width="100%">'+
     '    <tr>                                                          '+
     '     <td class="tbaShabbatTag"  width="25%"><b>- Fri:</b></td> '+
     '     <td class="tbaShabbatText">                                  '+
            text.Friday                                                  +
     '     </td>                                                        '+
     '    </tr>                                                         '+
     '    <tr>                                                          '+
     '     <td class="tbaShabbatTag" width="25%"><b>- Sat:</b></td>'+
     '     <td class="tbaShabbatText">                                  '+
            text.Saturday                                                +
     '     </td>                                                        '+
     '    </tr>                                                         '+
     '    <tr>                                                          '+
     '     <td class="tbaShabbatTag" width="25%"><b>- Sun:</b></td>  '+
     '     <td class="tbaShabbatText">                                  '+
            text.Sunday                                                  +
     '     </td>                                                        '+
     '    </tr>                                                         '
    );

    if (text.Monday != "" && text.Monday != undefined)
      document.writeln
      (
       '    <tr>                                                          '+
       '     <td class="tbaShabbatTag" width="25%"><b>- Mon:</b></td>  '+
       '     <td class="tbaShabbatText">                                  '+
              text.Monday                                                  +
       '     </td>                                                        '+
       '    </tr>                                                         '
      );

    if (text.Tuesday != "" && text.Tuesday != undefined)
      document.writeln
      (
       '    <tr>                                                          '+
       '     <td class="tbaShabbatTag" width="25%"><b>- Tue:</b></td> '+
       '     <td class="tbaShabbatText">                                  '+
              text.Tuesday                                                 +
       '     </td>                                                        '+
       '    </tr>                                                         '
      );

    if (text.Wednesday != "" && text.Wednesday != undefined)
      document.writeln
      (
       '    <tr>                                                          '+
       '     <td class="tbaShabbatTag" width="25%"><b>- Wed:</b></td> '+
       '     <td class="tbaShabbatText">                                  '+
              text.Wednesday                                                 +
       '     </td>                                                        '+
       '    </tr>                                                         '
      );

    if (text.Thursday != "" && text.Thursday != undefined)
      document.writeln
      (
       '    <tr>                                                          '+
       '     <td class="tbaShabbatTag" width="25%"><b>- Thu:</b></td> '+
       '     <td class="tbaShabbatText">                                  '+
              text.Thursday                                                +
       '     </td>                                                        '+
       '    </tr>                                                         '
      );

    document.writeln
    (
     '   </table>                                                       '+
     '   <div style="text-align:center">                                '+
          text.Comments                                                  +
     '   </div>                                                         '+
     '  </TD>                                                           '+
     ' </TR>                                                            '+
     ' <TR>                                                             '+
     '  <TD id="tbaServiceTimes" style="display:none;">                 '+
     '    <hr>                                                          '+
     '    <div style="text-align:center">                               '+
     '     <a title="Hide Monthly Shabbat Service Schedule"             '+
     '      href="javascript:tbaToggleText(\'tbaServiceTimes\');">      '+
     '      <h1>Monthly Shabbat Service Schedule</h1>                   '+
     '     </a>                                                         '+
     '    </div>                                                        '+
     '    <table width="100%" border="0">                               '
    );

    for (i=1; i<6; i++)
    {
     var d = tbaShabbatData[i];
     var o = i+tbaOrdinalSuffix(i);

     document.writeln
     (
      '  <tr>                                                           '+
      '   <td colspan="2">                                              '+
      '    <hr>                                                         '+
           o+' Shabbat'                                                  +
      '   </td>                                                         '+
      '  </tr>                                                          '+
      '  <tr>                                                           '+
      '   <td class="tbaShabbatTag" width="25%"><b>- Friday:</b></td>   '+
      '   <td class="tbaShabbatText">                                   '+
           d.Friday                                                      +
      '   </td>                                                         '+
      '  </tr>                                                          '+
      '  <tr>                                                           '+
      '   <td class="tbaShabbatTag" width="25%"><b>- Saturday:</b></td> '+
      '   <td class="tbaShabbatTex t">                                  '+
           d.Saturday                                                    +
      '   </td>                                                         '+
      '  </tr>                                                          '+
      '   <td class="tbaShabbatTag" width="25%"><b>- Sunday:</b></td>   '+
      '   <td class="tbaShabbatText">                                   '+
           d.Sunday                                                      +
      '   </td>                                                         '+
      '  </tr>                                                          '
     );
    }

    document.writeln
    (
     ' </table>'+
     '</TD>    '+
     '</TR>    '+
     '</TABLE> '+
     '<br>     '
    );
  }

//----------------------------------------------------------------------
  function tbaGetShabbatText()
  {
   var nextShabbat = (new Date()).nextShabbat();
   var storedDate  = new Date(tbaShabbat);
   var text        = tbaCloneObject(tbaShabbatData[nextShabbat.weekdayOrdinal()]);

   if (nextShabbat.sameDateAs(storedDate))
   {
    text.Friday    = tbaFridayTime      != undefined  ? tbaFridayTime      : text.Friday;
    text.Saturday  = tbaSaturdayTime    != undefined  ? tbaSaturdayTime    : text.Saturday;
    text.Sunday    = tbaSundayTime      != undefined  ? tbaSundayTime      : text.Sunday;
    text.Monday    = tbaMondayTime      != undefined  ? tbaMondayTime      : "";
    text.Tuesday   = tbaTuesdayTime     != undefined  ? tbaTuesdayTime     : "";
    text.Wednesday = tbaWednesdayTime   != undefined  ? tbaWednesdayTime   : "";
    text.Thursday  = tbaThursdayTime    != undefined  ? tbaThursdayTime    : "";
    text.Comments  = tbaGeneralComments != undefined  ? tbaGeneralComments : text.Comments;
   }

   text.Date = nextShabbat.tbaFormat();

   return text;
  }

//----------------------------------------------------------------------
  function tbaDisplayStyles()
  {
   document.writeln
   (
    '<style type="text/css">             '+
    ' .tbaShabbatTag                     '+
    ' {                                  '+
    '  font-size:      8.5pt;            '+
    '  vertical-align: top;              '+
    ' }                                  '+
    ' .tbaShabbatText                    '+
    ' {                                  '+
    '  font-size:   8.5pt;               '+
    '  margin-left: 3px;                 '+
    ' }                                  '+
    ' .tbaShabbatBox                     '+
    ' {                                  '+
    '  background-color: #b7b7ff;        '+
    '  border-left:      5px groove grey;'+
    '  border-bottom:    5px groove grey;'+
    '  border-right:     5px groove grey;'+
    '  border-top:       5px groove grey;'+
    ' }                                  '+
    '</style>                            '
   );
  }

//----------------------------------------------------------------------
  function tbaOrdinalSuffix(num)
  {
    var d = new String(num);
        d = d.charAt(d.length-1);

    if (isNaN(d))
     return '';

    switch (d)
    {
      case '1': return 'st';
      case '2': return 'nd';
      case '3': return 'rd';
      default : return 'th';
    }
  }

//----------------------------------------------------------------------
  function tbaCloneObject (what)
  {
    var obj = new Object();

    for (i in what)
    {
        obj[i] = what[i];
    }

    return obj;
  }

//----------------------------------------------------------------------
