/* This file written by John Buisson for the Largo High
   School Choral Music webpage */

/******************************************************
  General Aid functions
******************************************************/

///////////////////////////////////////////////////////////////////////////////
////       QueryString functions will parse the address given for query    ////
////       variables and store the variable names into the keys array and  ////
////       the values into the values array                                ////
///////////////////////////////////////////////////////////////////////////////

QueryString.keys = new Array();
QueryString.values = new Array();

// call QueryString_Parse before anything else to get variables
// This function parses the query string and stores it into the above variables

function QueryString_Parse() {
  var query = window.location.search.substring(1);
  var pairs = query.split("&");
	
  for (var i=0;i<pairs.length;i++) {
    var pos = pairs[i].indexOf('=');
      if (pos >= 0) {
        var argname = pairs[i].substring(0,pos);
        var value = pairs[i].substring(pos+1);
        QueryString.keys[QueryString.keys.length] = argname;
        QueryString.values[QueryString.values.length] = value;		
      }
    }
}

// once the above is handled, this will return the value of the requested
// variable

function QueryString(key) {
  var value = null;
  for (var i=0;i<QueryString.keys.length;i++) {
    if (QueryString.keys[i]==key) {
      value = QueryString.values[i];
      break;
    }
  }
  return value;
}

function center(toCenter) {
  return ('<center>' + toCenter + '</center>');
}

function header1(head) {
  return (' ' + head + ' ');
}

function header2(head) {
  return ('<h2>' + head + '</h2>');
}

function header3(head) {
  return ('<h3>' + head + '</h3>');
}

function wr(toWrite) {
  document.write(toWrite + '\n');
}

function table(tableInsides) {
  return('<table>' + tableInsides + '</table>');
}

function row(rowInsides) {
  return ('<tr>' + rowInsides + '</tr>');
}

function col(colInsides) {
  return ('<td>' + colInsides + '</td>');
}

/**********************************************************************
  Calendar functions
**********************************************************************/
function getMonthName(month) {
  if(month == 1 ) return "January";
  if(month == 2 ) return "February";
  if(month == 3 ) return "March";
  if(month == 4 ) return "April";
  if(month == 5 ) return "May";
  if(month == 6 ) return "June";
  if(month == 7 ) return "July";
  if(month == 8 ) return "August";
  if(month == 9 ) return "September";
  if(month == 10) return "October";
  if(month == 11) return "November";
  if(month == 12) return "December";
  return "???????";
}

function getLastDay(month,year) {
  var MonthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  var days = MonthDays[month-1];
  if(year % 4 == 0 && month == 2) days++;
  return days;
}

function setUpcommingEventColor(color) {
  upcommingColor = color;
}

function setPastEventColor(color) {
  pastColor = color;
}


var eventKeys = new Array(0);
var eventDetails = new Array(0);
var numEvents = 0;

function getIndexOfEvent(month, day, year) {
  var i;

  for(i=0; i < numEvents-1; i++) {
    var str = eventKeys[i] + '';
    var tmonth =  str.substring(0,2);
    var tday = str.substring(2,4);
    var tyear = str.substring(4,8); 
//    wr(month + '/' + day + '/' + year + ':' + tmonth + '/' + tday + '/' + tyear + ':::');  
    if( (year < tyear) ||
        (year == tyear && month < tmonth ) ||
        (year == tyear && month == tmonth && day < tday)) {
//      wr('::breaking::');
      break;
    }
  }
  return i;
}

function addEvent(month, day, year, dateSpan, information, rsvp) {
  var nkey = new Array(++numEvents);
  var ndet = new Array(numEvents);
  var i;
  var j;

  var index;
  index = getIndexOfEvent(month, day, year);

  j=0;
  for(i=0; i < numEvents-1; i++) {
    if(j == index) j++;
    nkey[j] = eventKeys[i];
    ndet[j++] = eventDetails[i];
  }

  if(day < 10) day = '0' + day;
  if(month < 10) month = '0' + month;
  nkey[index] = '' + month + '' + day + '' + year;

  var detArray = new Array(3);
  detArray[0] = dateSpan;
  detArray[1] = information;
  detArray[2] = rsvp;

  ndet[index] = detArray;
  eventKeys = nkey;
  eventDetails = ndet;
}  

function doFormat(m,d,y) {
  var day = d;
  var month = m;
  var year = y;
  
  if(day < 10) day = '0' + day;
  if(month < 10) month = '0' + month;


  var date = new Date();
  var color;
  var str;
  var hasEvent = 0;
  var i;
  var current = '' + month + '' + day + '' + year;
  for(i=0; i < numEvents; i++) {
    if(current == eventKeys[i]) {
      hasEvent = 1;
      break;
    }
  }

  if( (year < date.getFullYear()) ||
      (year == date.getFullYear() && month < (date.getMonth()+1) ) ||
      (year == date.getFullYear() && month == (date.getMonth()+1) && day < date.getDate())) {
    color = pastColor;
  }
  else {
    color = upcommingColor;
  }
  if( year == date.getFullYear() && (date.getMonth()+1) == month && day == date.getDate()) {
    color = currentDayColor;
  }   

  if(hasEvent == 0) {  
    str = '<font color="' + color + '" size="4">' + d +'</font>';
  }
  else {
    color = eventDayColor;
    str = center('<a href=#' + current + '><font color="' + color + '" size="4">' + d + '</font></a>');
  }
  return str;
}

function isFutureEvent(month, day, year) {
  var date = new Date();

  if( ((year < date.getFullYear()) ||
      (year == date.getFullYear() && month < (date.getMonth()+1) ) ||
      (year == date.getFullYear() && (date.getMonth()+1) == month && day < date.getDate())))
    return 0;
  else
    return 1;
}
 
function tfontR(str) {
  return ('<font color=' + daysColor + '><b>' + str + '</b></font>');
}

function writePage(mo, ye) {

  var currentLoc = String(location.href);
  var cAddress = currentLoc.split("/");
  var addr = cAddress[cAddress.length-1];
  addr = (addr.split("#"))[0];
  var htmlFile = (addr.split("?"))[0];

  var date = new Date();
  var month;
  var year;

  if(mo == null) 
    month = date.getMonth() + 1;
  else
    month = mo - 0;

  if(ye == null)  
    year = date.getFullYear();
  else
    year = ye - 0;

  var current = new Date(year, month-1, 1);
  var dayStart = current.getDay();

  wr('<font size="5" color="#0000FF" face="Arial, Helvetica, sans-serif"><b>');
 
  wr(center(header1('Toni Brown Band Concert Dates')));

  wr('</font></b><font size="2" face="Arial, Helvetica, sans-serif">');

  wr('<center>');

  var firstFutureEvent = -1;
  var lastMonth = -1;
  
  wr('<table width="' + calendarWidth + '" border="0">');
  wr('  <tr>');
  wr('    <td>');
  wr(       center('<font size="3" color="' + upcommingColor + '"><b>Upcoming Events</b></font>'));
  wr('      <hr color="' + upcommingColor + '" size="3"><br>');
  wr('      <table>');

  for(i=0; i < numEvents; i++) {
    var str = eventKeys[i] + '';
    var monthNum =  str.substring(0,2);
    var monthName = getMonthName(monthNum);
    var dayNum = str.substring(2,4);
    var yearNum = str.substring(4,8);
    
    if(!isFutureEvent(monthNum, dayNum, yearNum)) {
      continue;
    } 
    else {
      if(firstFutureEvent < 0) firstFutureEvent = i;
    }  

    if(lastMonth != monthNum) {
      wr('      </table>');
      wr('    </td>');
      wr('  </tr>');      
      wr('</table>');
      wr('<table width="' + calendarWidth + '" border="1" bordercolor=' + upcommingColor + ' bgcolor="#FFFFFF">');
      wr('  <tr>');
      wr('    <td>');
      wr('      <font color=' + upcommingColor + '><font size="3"><b>' + monthName + '</font></b></font>');
      wr('      <table width="100%" border="0" cellpadding="3" cellspacing="3" bgcolor="#FFFFFF">');

      lastMonth = monthNum;
    }

    wr('  <tr>');
    wr('    <td width="10%" valign="top">');
    wr('      <a name=' + str + '>');
    wr('        <center><font color=' + upcommingColor + ' size=+1><b>' + eventDetails[i][0] + '<b></font></center>');
    wr('      </a>');
    wr('    </td>');
    wr('    <td width="90%">');
    wr('      <font color=' + upcommingColor + ' size="2">' + eventDetails[i][1] + '<br>');
    if(eventDetails[i][2] != "") {
      wr('      <i>Website</i>: <a href="' + eventDetails[i][2] + '" target="_blank">' + eventDetails[i][2] + '</a></font>');
    }
    wr('    </td>');
    wr('  </tr>');
  }
  wr('      </table>');
  wr('    </td>');
  wr('  </tr>');      
  wr('</table>');

  wr('<p>');
  wr('<center>');

  wr('<table border="0" width="' + calendarWidth + '" bgcolor="#FFFFFF">');
  wr('  <tr>');


  for(i=0; i < 12; i++) {
  }
  wr('  </tr>');
  wr('</table>');

/*
  wr('<br>');
  wr('<table width="' + calendarWidth + '" border="0">');
  wr('  <tr>');
  wr('    <td>');
  wr(       center('<font size="6" color="' + pastColor + '">Past Events</font>'));
  wr('      <hr color="' + pastColor + '" size="10"><br><br>');
  wr('      <table>');

  for(i=firstFutureEvent-1; i >= 0; i--) {
    var str = eventKeys[i] + '';
    var monthNum =  str.substring(0,2);
    var monthName = getMonthName(monthNum);
    var dayNum = str.substring(2,4);
    var yearNum = str.substring(4,8);
    
    if(lastMonth != monthNum) {
      wr('      </table>');
      wr('    </td>');
      wr('  </tr>');      
      wr('</table>');
      wr('<table width="' + calendarWidth + '" border="1" bordercolor=' + pastColor + ' bgcolor="#FFFFFF">');
      wr('  <tr>');
      wr('    <td>');
      wr('      <font color=' + pastColor + '><h2>' + monthName + '</h2></font>');
      wr('      <table width="100%" border="0" cellpadding="3" cellspacing="3">');

      lastMonth = monthNum;
    }

    wr('  <tr>');
    wr('    <td width="10%" valign="top">');
    wr('      <a name=' + str + '>');
    wr('        <center><font color=' + pastColor + ' size=+1><b>' + eventDetails[i][0] + '</b></font></center>');
    wr('      </a>');
    wr('    </td>');
    wr('    <td width="90%">');
    wr('      <font color=' + pastColor + ' size=+1><b>' + eventDetails[i][1] + '<b></font>');
    wr('    </td>');
    wr('  </tr>');
  }
  wr('      </table>');
  wr('    </td>');
  wr('  </tr>');      
  wr('</table>');
*/

  wr('</center>');  
}

