var ise = 0;
var iwe = 0;
var days = 31;
var eventList;
var evdefs = "";
var calloaded = new Array(3);
var calcounter = 0;
var m = -1;
var y = -1;
var weeks;
var first;
var secol = 0;
var wecol = 0;
var hecol = 0;

var wetopics = new Array(1);


function getYearMonth()
{
  if(m<0 || y<0)
  {
    var thisday = new Date();
    parent.m = thisday.getMonth() + 1;
    parent.y = thisday.getYear();

    parent.m = prompt("Month for which calendar is being created (1 is January, 12 is December):", parent.m) - 1;

    parent.y = prompt("Year for which calendar is being created:", parent.y);

    parent.first = getFirst(parent.y,parent.m);
    parent.days = getDays(parent.y,parent.m);
    parent.weeks = getWeeks(parent.first,parent.days);
  }
}

function loaded(whichframe)
{
  calloaded[whichframe] = 1;
}

function loadCalendars()
{
  var thisday = new Date();
  var month = thisday.getMonth();
  thisyear = thisday.getYear();

  if(thisyear.length < 4)
  {
    thisyear += 1900;
  }

  if(month==0)
  {
    lyear = thisyear - 1;
    nyear = thisyear;
  }
  else if(month==11)
  {
    lyear = thisyear;
    nyear = thisyear + 1;
  }
  else
  {
    lyear = thisyear;
    nyear = thisyear;
  }

  var thismonth = "s" + getMonth(month);
  var lastmonth = "s" + getMonth(month - 1);
  var nextmonth = "s" + getMonth(month + 1);

  calcounter = 0;
  lastmonthframe.location.href = lastmonth + lyear + ".html";
  thismonthframe.location.href = thismonth + thisyear + ".html";
  nextmonthframe.location.href = nextmonth + nyear + ".html";

  lname = lastmonth + lyear;
  lmonth = month - 1;

  tname = thismonth + thisyear;
  tmonth = month;
  tyear = thisyear;

  nname = nextmonth + nyear;
  nmonth = month + 1;

  setTimeout('if(lastmonthframe.calloaded == null){simpleGen(lastmonthframe, lmonth ,lyear);}', 300);
  setTimeout('if(thismonthframe.calloaded == null){simpleGen(thismonthframe, tmonth ,tyear);}', 300);
  setTimeout('if(nextmonthframe.calloaded == null){simpleGen(nextmonthframe, nmonth ,nyear);}', 300);

}


function simpleGen(currframe, currmonth, curryear)
{
  if(currmonth == -1)
  {
    currmonth = 11;
  }
  if(currmonth == 12)
  {
    currmonth = 0;
  }

  var currfirst = getFirst(curryear, currmonth);
  var currdays = getDays(curryear, currmonth);
  var currtext = "<html><head><link rel=stylesheet href='test2.css' type='text\/css'><\/head>";
  currtext += "<body class=scalendar><h3>" + getMonth(currmonth) + " " + curryear + "<\/h3><table border align=center>";

  currtext += "<tr><th>S<\/th><th>M<\/th><th>T<\/th><th>W<\/th><th>T<\/th><th>F<\/th><th>S<\/th><\/tr><tr>";
  for(i=0; i<currfirst; i++)
  {
    currtext += "<td>&nbsp;<\/td>";
  }

  for(i=1; i<=currdays; i++)
  {
    if((i+currfirst)%7==1 && i!=1)
    {
      currtext += "<tr>";
    }

    currtext += "<td><div class=date>" + i + "<\/div><\/td>";
    if((i+currfirst)%7==0)
    {
      currtext += "<\/tr>";
    }
  }

  i--;
  while((i+currfirst)%7!=0)
  {
    i++;
    currtext += "<td>\&nbsp\;<\/div><\/td>";
  }

  currtext += "<\/tr><\/table><\/body><\/html>";

  currframe.document.write(currtext);

}

function getMonth(i)
{
  var month;
  switch(parseInt(i))
  {
    case -1: month = 'December'; break;
    case 0: month = 'January'; break;
    case 1: month = 'February'; break;
    case 2: month = 'March'; break;
    case 3: month = 'April'; break;
    case 4: month = 'May'; break;
    case 5: month = 'June'; break;
    case 6: month = 'July'; break;
    case 7: month = 'August'; break;
    case 8: month = 'September'; break;
    case 9: month = 'October'; break;
    case 10: month = 'November'; break;
    case 11: month = 'December'; break;
    case 12: month = 'January'; break;
  }
  return month;
}

function addBr()
{
  addElement("br");
}

function addElement(toAdd)
{
  fs.appendChild(dce(toAdd));
}

function addText(toAdd)
{
  fs.appendChild(document.createTextNode(toAdd));
}

function dce(toCreate)
{
  return document.createElement(toCreate);
}


function getFirst(y, m)
{
  var temp = new Date(y, m, 1);
  return temp.getDay();
}

function getFeb(y)
{
  if((y%4==0 && y%100!=0) || y%400==0)
  {
    return 29;
  }
  else
  {
    return 28;
  }
}

function getDays(y, m)
{

  if(m==1)
  {
    return getFeb(y);
  }
  else if(m%2==0)
  {
    if(m<=6)
    {
      return 31;
    }
    else
    {
      return 30;
    }
  }
  else
  {
    if(m<=6)
    {
      return 30;
    }
    else
    {
      return 31;
    }
  }
}

function openWin(win, content)
{
  win = window.open("", win);
  win.document.write(content);
  win.document.close();
}


function displayEvs(toDisplay)
{
  newWin = window.open("", "newWin", "width=200,height=200,top=100,left=100,screenX=100,screenY=100,scrollbars");
  var body = "<html><head><link rel=stylesheet href='test2.css' type='text/css'><base target=new><\/head><body class=calendar>" + toDisplay + 
    "<br><input type=button value='Close' onclick=self.close()><\/body><\/html>";
  newWin.document.write(body);
  newWin.document.close();
}

function getWeeks(first,days)
{
  return Math.ceil((first + days)/7.0);
}



//<a href="javascript:void(callMe())">Click Me</a>
// edit help to reflect changes,
//add checks for events for last week of last month, first week of next month for weekly
//calendars
//add color legend to bottom of both calendar pages, create small calendar page (checks for
//current date w/ date obj, displays this month, last month, next month calendars, when click
//on title of each takes to big calendar, or tells user none has been created if no cals for
//that month), 
//possibly add colors to pop-ups


//have asp or whatever write files (sMY.html, MY.html, weekly1-6.html, last.js, current.js, next.js)


//write weekly.html, auto-displays whichever week it is (each week also has links to previous and next week

//write guestbook


function queryEvFile(month, year, evtype)
{
  if(parent.fileloaded == null)
  {
    parent.document.appendChild(parent.document.createElement("<script language='JavaScript' src='" + month + year + ".js'>"));

    if(parent.present == null)
    {
      parent.document.appendChild(parent.document.createElement("<script language='JavaScript' src='" + getMonth(parent.m - 1) + year + ".js'>"));

      if(parent.present == null)
      {
        alert("No data for " + month + " " + year + " or the previous month was found.  Starting from scratch.");
      }
      else
      {
        alert("No data for " + month + " " + year + " was found.  Using previous month's data instead.");
      }

    }
    else
    {
      alert("Data for " + month + " " + year + " was found and loaded.");
    }
    parent.fileloaded = "done";
    
  }

  var evtot = parent[evtype + "tot"];

  if(evtot == null)
  {
    evtot = 0;
  }

  for(var i=0; i<evtot; i++)
  {
    displayEv(i, evtype);
  }
}

function displayEv(toDisplay, evtype)
{
  var num = toDisplay;

  //new event button was pressed
  if(toDisplay < 0)
  {
    //no preexisting file, so this will be event 0 
    if(parent[evtype + "tot"] == null)
    {
      parent[evtype + "tot"] = 1;
      //declare the accursed arrays
      parent[evtype + "hour"] = new Array();
      parent[evtype + "minute"] = new Array();
      parent[evtype + "ampm"] = new Array();
      parent[evtype + "sdesc"] = new Array();
      parent[evtype + "ldesc"] = new Array();
      parent[evtype + "url"] = new Array();

      if(evtype == "we")
      {
        parent["wetopics"] = new Array();
        parent["wetopshow"] = new Array();
        parent["wedow"] = new Array();
      }
      else
      {
        parent[evtype + "day"] = new Array();
      }
    }
    else
    {
      parent[evtype + "tot"]++;
    }

    num = parent[evtype + "tot"] - 1;



    //fill out next event, default values (Thursdays/1st 7pm)
    parent[evtype + "hour"][num] = 6;
    parent[evtype + "minute"][num] = 0;
    parent[evtype + "ampm"][num] = 1;
    parent[evtype + "sdesc"][num] = "";
    parent[evtype + "ldesc"][num] = "";
    parent[evtype + "url"][num] = "";

    //weekly has topics, day of week
    if(evtype == "we")
    {
      parent["wetopics"][num] = new Array(parent.weeks);
      parent.wetopon[num] = new Array(parent.weeks);

      for(var i=0; i<parent.weeks; i++)
      {
        parent["wetopics"][num][i] = "";
        parent.wetopon[num][i] = true;
      }

      parent["wedow"][num] = 4;

    }
    //holidays/special events just have date
    else
    {
      parent[evtype + "day"][num] = 1;
    }

  }

  //now just display event num
  var form = parent.mainframe[evtype + "form"];
  var newform = dce("form");
  newform.name = evtype + num;

  fs = dce("fieldset");
  var leg = dce("legend");
  leg.innerHTML = "Event " + (num + 1);
  fs.appendChild(leg);

  if(evtype == "we")
  {
    addText("Day of Week: ");
    var day = dce("<select size=1 onchange=\"parent['wedow'][" + num + "]=selectedIndex\">");
    var opt = new Array(7);

    for(var i=0; i<7; i++)
    {
      opt[i] = dce("option");
      opt[i].value = i;
    }

    opt[parent["wedow"][num]].selected = true;
    opt[0].innerHTML = "Sunday";
    opt[1].innerHTML = "Monday";
    opt[2].innerHTML = "Tuesday";
    opt[3].innerHTML = "Wednesday";
    opt[4].innerHTML = "Thursday";
    opt[5].innerHTML = "Friday";
    opt[6].innerHTML = "Saturday";

    for(var i=0; i<7; i++)
    {
      day.appendChild(opt[i]);
    }
    fs.appendChild(day);
  }
  else
  {
    addText("Day: ");
    var day = dce("<select size=1 onchange=\"parent['" + evtype + "day'][" + num + "]=(selectedIndex+1)\">");
    for(var i=1; i<=days; i++)
    {
      var opt = dce("option");
      if(i==parent[evtype + "day"][num])
      {
        opt.selected = true;
      }

      opt.innerHTML = i;
      day.appendChild(opt);
    }
    fs.appendChild(day);
  }

  addText(" Hour: ");
  var hour = dce("<select size=1 onchange=\"parent['" + evtype + "hour'][" + num + "]=selectedIndex\">");
  for(var i=0; i<12; i++)
  {
    var opt = dce("option");
    if(i==parent[evtype + "hour"][num])
    {
      opt.selected = true;

    }

    opt.innerHTML = i + 1;
    hour.appendChild(opt);
  }

  fs.appendChild(hour);

  addText(" Minutes: ");
  var min = dce("<select size=1 onchange=\"parent['" + evtype + "minute'][" + num + "]=selectedIndex\">");
  for(var i=0; i<4; i++)
  {
    var opt = dce("option");
    if(i==parent[evtype + "minute"][num])
    {
      opt.selected = true;
    }

    min.appendChild(opt);
  }

  min.options[0].innerHTML = "00";
  min.options[1].innerHTML = "15";
  min.options[2].innerHTML = "30";
  min.options[3].innerHTML = "45";

  fs.appendChild(min);

  addText(" AM/PM: ");
  var ampm = dce("<select size=1 onchange=\"parent['" + evtype + "ampm'][" + num + "]=selectedIndex\">");
  opt = dce("<option>");
  opt.innerHTML = "AM";
  ampm.appendChild(opt);
  opt = dce("option");
  opt.innerHTML = "PM";
  ampm.appendChild(opt);

  ampm.options[parent[evtype + "ampm"][num]].selected = true;
  fs.appendChild(ampm);

  addBr();
  addText("Short desc: ");
  var sdesc = dce("<input type=text size=60 maxlength=60 onchange=\"parent['" + evtype + "sdesc'][" + num + "]=value\">");
  sdesc.value = parent[evtype + "sdesc"][num];
  fs.appendChild(sdesc);

  addBr();
  addText("Long desc: ");
  var ldesc = dce("<textarea cols=60 rows=5 onchange=\"parent['" + evtype + "ldesc'][" + num + "]=value\">");
  ldesc.value = parent[evtype + "ldesc"][num];
  fs.appendChild(ldesc);

  addBr();
  addText("URL: ");
  var url = dce("<input type=text size=60 onchange=\"parent['" + evtype + "url'][" + num + "]=value\">");
  url.value = parent[evtype + "url"][num];
  fs.appendChild(url);

  if(evtype == "we")
  {
    for(var i=0; i<parent.weeks; i++)
    {
      addBr();
      var topictitle = "Week " + (i + 1) + " Topic: ";
      addText(topictitle);
      var topic = dce("<input type=text size=30 maxlength=30 onchange=\"parent['wetopics'][" + num + "][" + i + "]=value\">");
      topic.value = parent["wetopics"][num][i];
      fs.appendChild(topic);

      var showoncheck = "";
      var showoffcheck = "";
      if(parent.wetopon[num][i])
      {
        showoncheck = "checked";
      }
      else
      {
        showoffcheck = "checked";
      }

      var showon = dce("<input type=radio name=show" + evtype + num + i + " value=On " + showoncheck + " onchange=\"parent.wetopon[" + num + "][" + i + "]=!parent.wetopon[" + num + "][" + i + "]\">");
      var showoff = dce("<input type=radio name=show" + evtype + num + i + " value=Off " + showoffcheck + " onchange=\"parent.wetopon[" + num + "][" + i + "]=!parent.wetopon[" + num + "][" + i + "]\">");

      fs.appendChild(showon);
      addText("On");
      fs.appendChild(showoff);
      addText("Off");
    }
  }


  addElement("p");
  addElement("<input type=button value='Delete Event' onclick=\"deleteEv('" + evtype + "', " + num + ")\">");

  newform.appendChild(fs);
  form.appendChild(newform);
}

function getEvents()
{
  var eventList = new Array(parent.days + 1);
  for(var i=0; i<=parent.days; i++)
  {
    eventList[i] = "";
  }

  queryEvents("se", eventList);
  queryEvents("we", eventList);
  queryEvents("he", eventList);

  return eventList;
}

function queryEvents(evtype, eventList)
{
  for(var i=0; i<parent[evtype + "tot"]; i++)
  {
    if(evtype != "we")
    {
      var thisDay = parent[evtype + "day"][i];
      eventList[thisDay] += "" + (parent[evtype + "ampm"][i] + 1) + (parent[evtype + "hour"][i] + 10) + parent[evtype + "minute"][i] + i + evtype + ",";
    }
    else
    {
      var dow = parent.wedow[i];
      for(var j=dow+1-parent.first; j<=parent.days; j+=7)
      {
        if(parent.wetopon[i][getWeeks(parent.first, j)-1])
        {
          eventList[j] += "" + (parent[evtype + "ampm"][i] + 1) + (parent.wehour[i] + 10) + parent.weminute[i] + i + "we,";
        }
      }
    }
  }

}

function sortEvents(a, b)
{
  a = a.substring(0, a.length-3);
  b = b.substring(0, b.length-3);

  return a-b;
}

function getColorByIndex(index)
{
  var color;
  switch(index)
  {
    case 0: color="red"; break;
    case 1: color="green"; break;
    case 2: color="blue"; break;
    case 3: color="purple"; break;
    case 4: color="yellow"; break;
  }
  return color;
}

function getMinutes(i)
{
  var minutes;
  switch(i)
  {
    case 0: minutes = "00"; break;
    case 1: minutes = "15"; break;
    case 2: minutes = "30"; break;
    case 3: minutes = "45"; break;
  }

  return minutes;
}

function getAMPM(i)
{
  if(i==0)
  {
    return "am";
  }
  return "pm";
}

function displayCalendars()
{
  var bigheight = Math.floor(95/parent.weeks);
  var eventList = getEvents();


  var bigCal = "<html><head><link rel=stylesheet href='test2.css' type='text\/css'>";
  bigCal += "<script language=JavaScript src=calgen.js><\/script><\/head>";
  var smallCal = bigCal;
  smallCal += "<body class=scalendar>";
  bigCal += "<body class=calendar>";

  bigCal += "<h1>" + getMonth(parent.m) + " " + parent.y + "<\/h1>";
  smallCal += "<h3><a href=" + getMonth(parent.m) + parent.y + ".html>" + getMonth(parent.m) + " " + parent.y +"<\/a><\/h3>";

  bigCal += "<table width=585 border align=center>";
  smallCal += "<table border align=center>";

  bigCal += "<tr height=5%><th width=14%>Sunday<\/th><th width=14%>Monday<\/th><th width=14%>Tuesday<\/th><th width=14%>Wednesday<\/th><th width=14%>Thursday<\/th><th width=14%>Friday<\/th><th width=14%>Saturday<\/th><\/tr>";
  bigCal += "<tr height=" + bigheight + "%>";

  smallCal += "<tr><th>S<\/th><th>M<\/th><th>T<\/th><th>W<\/th><th>T<\/th><th>F<\/th><th>S<\/th><\/tr>";
  smallCal +="<tr>";

  for(var i=0; i<parent.first; i++)
  {
    var line = "<td>&nbsp;<\/td>";

    bigCal += line;
    smallCal += line;
  }

  for(var i=1; i<=parent.days; i++)
  {
    var evdefs = "";
    var line = "";
    var sline = "";

    if((i+parent.first)%7==1 &&i!=1)
    {
      line += "<tr height=" + bigheight + "%>";
      sline += "<tr>";
    }
    line += "<td><div class=date>";
    sline += "<td><div class=date>";
    bigCal += line + i + "<\/div>";
    smallCal += sline;

    if(eventList[i]!="")
    {
      var splitList = eventList[i].split(",");
      splitList = splitList.sort(sortEvents);
      var colindex;

      bigCal += "<div class = evs>";

      if(eventList[i].indexOf('s') >= 0)
      {
        colindex = parent.secol;
      }
      else if(eventList[i].indexOf('w') >= 0)
      {
        colindex = parent.wecol;
      }
      else if(eventList[i].indexOf('h') >= 0)
      {
        colindex = parent.hecol;
      }
      var color = getColorByIndex(colindex);
      smallCal += "<div class=" + color + ">";

      for(var j=0; j<splitList.length; j++)
      {
        if (splitList[j] != "")
        {
          var eventNum = splitList[j].substring(4, splitList[j].length-2);
          var evtype = splitList[j].substring(splitList[j].length-2, splitList[j].length);

          bigCal += "<div class=";
          var currenttopic = "";
          var currenturl = "";
          if(evtype == "we")
          {
            var week = getWeeks(parent.first, i);
            if (parent.wetopics[eventNum][week] != "")
            {
              currenttopic = " (" + parent.wetopics[eventNum][week] + ")";
            }
          }

          bigCal += getColorByIndex(parent[evtype + "col"]) + ">";

          if(parent[evtype + "url"][eventNum]!="")
          {
            currenturl = "<a href=" + parent[evtype + "url"][eventNum] + ">";
          }

          var currentdesc = (parent[evtype + "hour"][eventNum] + 1) + ":" + getMinutes(parent[evtype + "minute"][eventNum]) + getAMPM(parent[evtype + "ampm"][eventNum]) + ": " + currenturl + parent[evtype + "sdesc"][eventNum] + currenttopic;

          bigCal += currentdesc + "<\/a><\/div>";
          evdefs += currentdesc + "<\/a><p>";
        }
      }
      bigCal += "<\/div>";

    }

    if(evdefs!="")
    {
      smallCal += '<a href="javascript:void(displayEvs(\'' + evdefs + '\'))">' + i + '<\/a><\/div><\/div>';
    }
    else
    {
      smallCal += i + "<\/div>";
    }

    var line = "<\/td>";
    if((i+first)%7==0)
    {
      line += "<\/tr>";
    }
    bigCal += line;
    smallCal += line;
  }

  var line = "";
  i--;
  while((i+parent.first)%7!=0)
  {
    i++;
    line += "<td><div class=date>\&nbsp\;<\/div><\/td>";
  }

  line += "<\/tr><\/table><\/body><\/html>";
  
  bigCal += line;
  smallCal += line;

  with(parent.controlframe.document.forms[0])
  {
    lcalval.value = bigCal;
    scalval.value = smallCal;
    jscalval.value = varsToString();
    month.value = getMonth(parent.m);
    year.value = parent.y;
  }

  openWin("bigCal", bigCal);
  openWin("smallCal", smallCal);
}

function varsToString()
{
  var line = "";

  line += "parent.wetot = " + parent.wetot + ";";
  line += "parent.setot = " + parent.setot + ";";
  line += "parent.hetot = " + parent.hetot + ";";

  line += "parent.wecol = " + parent.wecol + ";";
  line += "parent.secol = " + parent.secol + ";";
  line += "parent.hecol = " + parent.hecol + ";";

  line += "parent.wehour = new Array();";
  line += "parent.weminute = new Array();";
  line += "parent.weampm = new Array();";
  line += "parent.wesdesc = new Array();";
  line += "parent.weldesc = new Array();";
  line += "parent.weurl = new Array();";
  line += "parent.wetopics = new Array();";
  line += "parent.wetopon = new Array();";
  line += "parent.wedow = new Array();";

  line += "parent.sehour = new Array();";
  line += "parent.seminute = new Array();";
  line += "parent.seampm = new Array();";
  line += "parent.sesdesc = new Array();";
  line += "parent.seldesc = new Array();";
  line += "parent.seurl = new Array();";
  line += "parent.seday = new Array();";

  line += "parent.hehour = new Array();";
  line += "parent.heminute = new Array();";
  line += "parent.heampm = new Array();";
  line += "parent.hesdesc = new Array();";
  line += "parent.heldesc = new Array();";
  line += "parent.heurl = new Array();";
  line += "parent.heday = new Array();";

  for(var i=0; i<parent.wetot; i++)
  {
    line += "parent.wehour[" + i + "] = " + parent.wehour[i] + ";";
    line += "parent.weminute[" + i + "] = " + parent.weminute[i] + ";";
    line += "parent.weampm[" + i + "] = " + parent.weampm[i] + ";";
    line += "parent.wesdesc[" + i + "] = '" + parent.wesdesc[i] + "';";
    line += "parent.weldesc[" + i + "] = '" + parent.weldesc[i] + "';";
    line += "parent.weurl[" + i + "] = '" + parent.weurl[i] + "';";
    line += "parent.wedow[" + i + "] = " + parent.wedow[i] + ";";

    line += "parent.wetopics[" + i + "] = new Array();";
    line += "parent.wetopon[" + i + "] = new Array();";
    for(var j=0; j<parent.weeks; j++)
    {
      line += "parent.wetopics[" + i + "][" + j + "] = '" + parent.wetopics[i][j] + "';";
      line += "parent.wetopon[" + i + "][" + j + "] = " + parent.wetopon[i][j] + ";";
    }
  }

  for(var i=0; i<parent.setot; i++)
  {
    line += "parent.sehour[" + i + "] = " + parent.sehour[i] + ";";
    line += "parent.seminute[" + i + "] = " + parent.seminute[i] + ";";
    line += "parent.seampm[" + i + "] = " + parent.seampm[i] + ";";
    line += "parent.sesdesc[" + i + "] = '" + parent.sesdesc[i] + "';";
    line += "parent.seldesc[" + i + "] = '" + parent.seldesc[i] + "';";
    line += "parent.seurl[" + i + "] = '" + parent.seurl[i] + "';";
    line += "parent.seday[" + i + "] = " + parent.seday[i] + ";";
  }

  for(var i=0; i<parent.hetot; i++)
  {
    line += "parent.hehour[" + i + "] = " + parent.hehour[i] + ";";
    line += "parent.heminute[" + i + "] = " + parent.heminute[i] + ";";
    line += "parent.heampm[" + i + "] = " + parent.heampm[i] + ";";
    line += "parent.hesdesc[" + i + "] = '" + parent.hesdesc[i] + "';";
    line += "parent.heldesc[" + i + "] = '" + parent.heldesc[i] + "';";
    line += "parent.heurl[" + i + "] = '" + parent.heurl[i] + "';";
    line += "parent.heday[" + i + "] = " + parent.heday[i] + ";";
  }

  line += "parent.present = 1;";

  return line;
}

function showValues()
{
  alert(parent.controlframe.document.forms[0].lcalval.value);
  alert(parent.controlframe.document.forms[0].scalval.value);
  alert(parent.controlframe.document.forms[0].jscalval.value);
}

function deleteEv(evtype, num)
{
  parent[evtype + "tot"]--;

  for(var i=num+1; i<=parent[evtype + "tot"]; i++)
  {
    parent[evtype + "hour"][i-1] = parent[evtype + "hour"][i];
    parent[evtype + "minute"][i-1] = parent[evtype + "minute"][i];
    parent[evtype + "ampm"][i-1] = parent[evtype + "ampm"][i];
    parent[evtype + "sdesc"][i-1] = parent[evtype + "sdesc"][i];
    parent[evtype + "ldesc"][i-1] = parent[evtype + "ldesc"][i];
    parent[evtype + "url"][i-1] = parent[evtype + "url"][i];

    if(evtype == "we")
    {
      parent.wetopics[i-1] = parent.wetopics[i];
      parent.wedow[i-1] = parent.wedow[i];
    }
    else
    {
      parent[evtype + "day"][i-1] = parent[evtype + "day"][i];
    }
  }

  parent.mainframe.document.location = evtype + "gen.html";
}

//need save button, weekly code (check for last month's, next month's entries, display if any, query if want to create otherwise)

//clean up code, add comments, update help

//to save, put everything together as 3 strings, 1 for scalendar, 1 for regular calendar, 1 for .js file