// motesschema.js
// Meeting schedule of IPMS Stockholm 

// Variables global for this page

var months   = new Array("Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December");
var weekdays = new Array("Lördag","Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag");
var meetingCount = 0;
var meetingStart = new Array(Date);                 //create array for meetings
var meetingEnd = new Array(Date);                 //create array for meetings
var meetingtext = new Array(Date);                 //create array for meetings

function AddDate( year, month, day, startHours, startMinutes, endHours, endMinutes, description ) {
   // Put a new meeting date into the schedule array

   meetingStart[ meetingCount ] = new Date( year,  month - 1, day, startHours, startMinutes, 0); //year, month (0-11), day, hours, minutes, seconds;
   meetingEnd[ meetingCount ]   = new Date( year,  month - 1, day, endHours, endMinutes, 0);     //year, month (0-11), day, hours, minutes, seconds;
   meetingtext[ meetingCount ]  = description;
   meetingCount = meetingCount + 1;
}


// ***********************************************************************************
// Update here with current meeting schedule
// ***********************************************************************************
// Declare all meetings in date order by calling an AddDate function:
// AddDate( year, month, day, fromHours, fromMinutes, toHours, toMinutes, meetingTitleText );
// Caution: months are entered as 1-12


AddDate( 12,01,12, 17,00, 21,00, "Byggkväll")
AddDate( 12,01,18, 18,00, 21,00, "Månadsmöte")
AddDate( 12,01,26, 17,00, 21,00, "Byggkväll")
AddDate( 12,02,09, 17,00, 21,00, "Byggkväll")
AddDate( 12,02,15, 18,00, 21,00, "Månadsmöte")
AddDate( 12,02,23, 17,00, 21,00, "Byggkväll")
AddDate( 12,03,08, 17,00, 21,00, "Byggkväll")
AddDate( 12,03,14, 18,00, 21,00, "Månadsmöte")
AddDate( 12,03,22, 17,00, 21,00, "Byggkväll")
AddDate( 12,04,19, 17,00, 21,00, "Byggkväll")
AddDate( 12,04,25, 18,00, 21,00, "Månadsmöte")
AddDate( 12,05,03, 17,00, 21,00, "Byggkväll")
AddDate( 12,05,23, 18,00, 21,00, "Månadsmöte")
AddDate( 12,05,31, 17,00, 21,00, "Byggkväll")
AddDate( 12,06,14, 17,00, 21,00, "Byggkväll")
AddDate( 12,06,20, 18,00, 21,00, "Månadsmöte")


// ***********************************************************************************

function SeasonalGreeting( ) {
// create a text of extra seasonal greeting, or empty string on other occasions.
   var nowTime     = new Date();

   // In June-July, wish a pleasant summer
   if ( nowTime.getMonth() == 5 || nowTime.getMonth() == 6 ) {
      return ( "Trevlig sommar!<br><br>" );
   }


   // In December, wish a Merry Xmas
   if ( nowTime.getMonth() == 11 ) {
      return( "God Jul och Gott Nytt År!<br><br>" );
   }
   
   return "";
}

function OutputNextMeeting( ) {
// Write information about nearest forthcoming meeting
// as a fromatted paragraph of text

  //locate the forthcoming meeting in the schedule array
  var nowTime     = new Date();

  var nextMeeting = -1;

  for (i = 0; i < meetingStart.length; i++) {
    if (meetingStart[i] > nowTime) {
      if (nextMeeting != -1) {
        if (meetingStart[i] < meetingStart[nextMeeting])
          nextMeeting = i; }
      else nextMeeting = i; }
  }

   // write out the seasonal geeting, if any.
   document.write( SeasonalGreeting() );
  //if next meeting is found, write infromation about it
  if (nextMeeting != -1) {
  
  	document.writeln( "<font size=3>" )

    document.write( "Nästa möte: <br>" );
    document.write( "<b>" );

    document.writeln(weekdays[(meetingStart[nextMeeting].getDay())]);
    document.writeln(meetingStart[nextMeeting].getDate());
    document.writeln(months[meetingStart[nextMeeting].getMonth()]);

    document.write("kl. " + meetingStart[nextMeeting].getHours() + ":");
    document.write(meetingStart[nextMeeting].getMinutes());
    if (meetingStart[nextMeeting].getMinutes() == 0) {
      document.write( '0' );
    }

    document.write("-" + meetingEnd[nextMeeting].getHours() + ":");
    document.write(meetingEnd[nextMeeting].getMinutes());
    if (meetingEnd[nextMeeting].getMinutes() == 0) {
      document.write( '0' );
    }
    
    document.write( "</b>" );
    document.writeln( "</font>" )

    if ( meetingtext[ nextMeeting ] != '' ) {
      document.write( "<br>" + meetingtext[ nextMeeting ] + "" );
    }

  }

  //print warning message if no meeting could be found

  else document.writeln("Tyvärr är mötesinformationen ej tillgänglig.");

}


function OutputAllMeetings( ) {
// Write information about all meetings in the schedule
// as a HTML table

  //locate the forthcoming meeting in the schedule array
  var nowTime     = new Date();
  var nextMeeting = -1;
  var currentMonth = -1;

  for (i = 0; i < meetingStart.length; i++) {
    if (meetingStart[i] > nowTime) {
      if (nextMeeting != -1) {
        if (meetingStart[i] < meetingStart[nextMeeting])
          nextMeeting = i; }
        else nextMeeting = i; }
  }

  // Begin the output table
  if (meetingStart.length > 0 ) {
    document.writeln( "<table border=1 width=100% cellspacing=0 cellpadding=3 bgcolor='#EEEEEE' bordercolor='#FFFFFF' style='border-collapse: collapse'>" );

    // Header row
    document.writeln( "<tr bgcolor='#99CCFF'>" );
    document.writeln( "<td colspan=2>Datum</td>" );
    document.writeln( "<td>Tid</td>" );
    document.writeln( "<td>Beskrivning</td>" );
    document.writeln( "</tr>" );

  }
  
  for (i = 0; i < meetingStart.length; i++) {
  
    if (nextMeeting == i) {
    }
  
    // When changing months, write a header with a name of the starting month
    if (currentMonth != meetingStart[i].getMonth()) {
      document.writeln( "<tr><td bgcolor='#DDDDDD' colspan=4>" );
      document.write( "<b>" );
      document.writeln(months[meetingStart[i].getMonth()]);
      document.write( "</b>" );
      document.writeln( "</td></tr>" );
      currentMonth = meetingStart[i].getMonth();
    }
  
    // Begin new table row, highlighting the nearest forthcoming meeting
    if (i == nextMeeting) {
      document.writeln( "<tr bgcolor='#ffe76b'>" );
    }
    else {
      document.writeln( "<tr>" );
    }
  
    document.writeln( "<td valign='top' nowrap>" );

    // Write date as yyyy-mm-dd
    document.write(meetingStart[i].getYear());
    document.write("-");
    if ((meetingStart[i].getMonth()+1) < 10) {
      document.write( "0" );
    }
    document.write(meetingStart[i].getMonth()+1);
    document.write("-");
    if (meetingStart[i].getDate() < 10) {
      document.write( "0" );
    }
    document.write(meetingStart[i].getDate());
    document.write("&nbsp; ");

    document.writeln( "</td><td valign='top' nowrap>" );

    // Write day of week
    document.writeln(weekdays[(meetingStart[i].getDay())]);

    document.write("&nbsp; ");

    document.writeln( "</td><td valign='top' nowrap>" );

    // Write start time of the meeting
    document.write( meetingStart[i].getHours() + ":");
    document.write( meetingStart[i].getMinutes());
    if (meetingStart[i].getMinutes() == 0) {
      document.write( '0' );
    }

    // Write end time of the meeting
    document.write("-" + meetingEnd[i].getHours() + ":");
    document.write(meetingEnd[i].getMinutes());
    if (meetingEnd[i].getMinutes() == 0) {
      document.write( '0' );
    }
    document.write("&nbsp; ");

    document.writeln( "</td><td valign='top'>" );

    // Meeting description
    document.write(meetingtext[i]);
  
    document.writeln( "</td>" );
    document.writeln( "</tr>" );

  }

  // End the output table
  if (meetingStart.length > 0 ) {
    document.writeln( "</table>" );
  }
  else document.writeln("Tyvärr är mötesinformationen ej tillgänglig.");

}

// write out the upcoming meeting date
// OutputNextMeeting ();
// document.writeln( "<hr>" )
// OutputAllMeetings ();
  
