/* Event Functions for PMI website.

Author: Brendan O'Connor
Date: December 20, 2003

Author: Ray Hope
Date: July 31, 2007

*/
var eventID = 0;

function eventSort( aType )
{
  order = false

  switch (aType)
  {
    case 0 :
      eventDB.sort(sortByBeginDate)
      break
		default :
			eventDB.sort(sortByBeginDate)
  }

	drawEventTable();
}

function sortByBeginDate(a, b)
{ // Sort logic for UseCase Column
  return (order) ? (( a.aBeginDate > b.aBeginDate ) ? -1 : 1) : (( a.aBeginDate < b.aBeginDate ) ? -1 : 1)
}

function getEventByDate(aDate)
{
  var output = "";
	for (var i = 0; i < eventDB.length; i++)
	{
    if ( (aDate >= eventDB[i].aBeginDate) && (aDate <= eventDB[i].aEndDate) )
    {
      //output = "<a href='EventDetails.php?" + i + "' class='CalendarEvent' title='" + getEventDetails(eventDB[i], '\n') + "' target='_blank'> " + eventDB[i].aTitle + "</a>";
      alert("eventDB[" + ID + "].aExternalURL = " + eventDB[i].aExternalURL);
      
      if (eventDB[i].aExternalURL == "none")
      {
        output = "<a style='cursor:pointer' onClick='OpenEventDetails(" + i + ")' class='CalendarEvent' title='" + getEventDetails(eventDB[i], '\n') + "' target='_blank'> " + eventDB[i].aTitle + "</a>";
      }
      else
      {
        output = "<a style='cursor:pointer' onClick='" + eventDB[i].aExternalURL + "' class='CalendarEvent' title='" + getEventDetails(eventDB[i], '\n') + "' target='_blank'> " + eventDB[i].aTitle + "</a>";      
      }
      return output;
    }
  }
  return output
}

function OpenEventDetails( ID )
{

	varURL = "/Events/EventDetails.php?" + ID;
	varTitle = "PMIManitobaEvent";
	varOptions = "toolbar=0,status=0,menubar=0,scrollbars=0,resizable=0,width=800,height=600";

	window.open(varURL, varTitle, varOptions);
}

function getEventDetails( aEvent, aDelimiter )
{
  var output =  "Event: " + aEvent.aHeader + aDelimiter +
                aEvent.aTitle + aDelimiter + aDelimiter;
  if ( aEvent.aLocation != "" )
  {
    output = output + "Location: " + aEvent.aLocation + aDelimiter;
  }

  if ( aEvent.aSpeaker != "" )
  {
    output = output + "Speaker: " + aEvent.aSpeaker + aDelimiter;
  }
  return output
}

function drawEventTable(max)
{
  var today = new Date()
  var thisDay = today.getDate()
  var thisMonth = today.getMonth()
	var thisYear = today.getFullYear()
  var count = 0
  var currentDate = thisYear + "/" + monthDayFormat((thisMonth+1))+"/" +monthDayFormat((thisDay))

  var newHeader
  // Create detail rows
  deleteRows(getObject("eventBody"))

	for (var j = 0; j < eventDB.length; j++)
  {
    if ( max > 0 && count == max )
    {
      break;
    }

    if ( eventDB[j].aEndDate >= currentDate )
    {
 	    appendEventsDetailCell(getObject("eventBody").insertRow(count), j);
      count++
    }
  }
}

function appendEventsDetailCell(Trow, rowId)
{
	var newCell;
	var innerHTML;

  with ( eventDB[rowId] )
  {
    if ( aRegisterId == "0")
	    innerHTML  = "<a class='EventItem' href='" + aExternalURL + "' target='_blank'>";
    else  
  		innerHTML  = "<a class='EventItem' href='/Events/EventDetails.php?" + rowId + "' target='_blank'>";
		innerHTML += "  <img src='/images/EventItem.jpg' border='0' WIDTH='13' HEIGHT='13'>";
		innerHTML += "<span style='width:10px'></span>" + aDates + "</a>";
		innerHTML += "<br/>" + aTitle;
		innerHTML += "<span style='width:10px'></span>"
    if ( aRegisterId != "0")
  		innerHTML += "<a style='cursor:pointer' onClick='OpenEventDetails(" + rowId + ")'>[view]</a>";
  	else
	    innerHTML += "<a style='cursor:pointer' href='" + aExternalURL + "' target='_blank'>[view]</a>";

		//innerHTML += "<a href='/Events/EventDetails.php?" + rowId + "' target='_blank'>[view]</a>";

		newCell = Trow.insertCell(Trow.cells.length);
		newCell.className = "Event";
  	newCell.innerHTML = innerHTML;

  }
}

function getEventById( aId )
{
  var tableName = "eventDetailBody"
  rowId = 0

  with ( eventDB[aId] )
  {
    if ( aRepNo != "")
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndHTML( newRow, "R.E.P. Number", aRepNo, true )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    newRow = getObject(tableName).insertRow(rowId++);
    cellLabelAndHTML( newRow, "Event", aHeader, true )

    if ( aTitle != "" )
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndHTML( newRow, "Title", aTitle, true )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aLocation != "" )
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndHTML( newRow, "Location", aLocation )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aDates != "" )
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndHTML( newRow, "Date", aDates, true )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aTime != "" )
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndList( newRow, "Schedule", aTime, false )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aBody != "" )
    {
      var detailHeader = "Details";
      for ( i = 0; i < aBody.length; i++ )
      {
        newRow = getObject(tableName).insertRow(rowId++);
        cellLabelAndHTML( newRow, detailHeader, aBody[i] )
        newRow = getObject(tableName).insertRow(rowId++);
        emptyRow( newRow, 5 )
        detailHeader = "";
      }
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aSpeaker != "")
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndHTML( newRow, "Speaker", aSpeaker, true )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aBio != "")
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndHTML( newRow, "Biography", aBio )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aRegisterInstructions != "" )
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndHTML( newRow, "Register Instructions", aRegisterInstructions, true )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aRegistrationFees != "" )
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndList( newRow, "Registration Fees", aRegistrationFees )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aContactInfo != "" )
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndHTML( newRow, "Contact Information", aContactInfo, true )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if ( aDetailLink != "" )
    {
      newRow = getObject(tableName).insertRow(rowId++);
      cellLabelAndLink( newRow, "Copy of Presentation", aDetailLink, "Click Here!"  )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }

    if (( aRegisterId != "" ) && ( aRegisterId != "#" ))
    {
      newRow = getObject(tableName).insertRow(rowId++);
      if ( aRegisterId == "0")
        cellLabelAndExternalLink( newRow, "To Register", "https://pmi.olasoft.com/viewEvent.do?no_header=true&eventId=550&viewType=1", "Go Now!" )
      else
        cellLabelAndExternalLink( newRow, "To Register", "https://www.sporg.com/servlet/IndRegister?sporgEventID=" + aRegisterId + "&viewType=1", "Go Now!" )
      newRow = getObject(tableName).insertRow(rowId++);
      emptyRow( newRow, 5 )
    }
  }
}

function cellLabelAndHTML( Trow, aLabel, aValue, aBold )
{
 	var newLabelCell = Trow.insertCell(Trow.cells.length)
  var colon = ""
  if ( aLabel != "" )
  {
    colon = ":"
  }
	newLabelCell.innerHTML = "<b>" + aLabel + colon +"</b>&nbsp;"
	var newDataCell = Trow.insertCell(Trow.cells.length)
  if ( aBold )
  {
    newDataCell.innerHTML = "<b>" + aValue + "</b>&nbsp;"
  }
  else
  {
    newDataCell.innerHTML = aValue + "&nbsp;"
  }
}

function cellLabelAndLink( Trow, aLabel, aLink, aValue )
{
 	var newLabelCell = Trow.insertCell(Trow.cells.length)
	newLabelCell.innerHTML = "<b>" + aLabel + ":</b>&nbsp;"
	var newDataCell = Trow.insertCell(Trow.cells.length)
	newDataCell.innerHTML = "<a href='/Docs/" + aLink + "' target='_blank'><b>" + aValue + "</b></a>&nbsp;"
}
function cellLabelAndExternalLink( Trow, aLabel, aLink, aValue )
{
 	var newLabelCell = Trow.insertCell(Trow.cells.length)
	newLabelCell.innerHTML = "<b>" + aLabel + ":</b>&nbsp;"
	var newDataCell = Trow.insertCell(Trow.cells.length)
	newDataCell.innerHTML = "<a href='" + aLink + "' target='_blank'><b>" + aValue + "</b></a>&nbsp;"
}

function cellLabelAndList( Trow, aLabel, aValue, aBold )
{
 	var newLabelCell = Trow.insertCell(Trow.cells.length)
	newLabelCell.innerHTML = "<b>" + aLabel + ":</b><a name=" + aLabel + " id=" + aLabel + "></a>&nbsp;"
	var newDataCell = Trow.insertCell(Trow.cells.length)

  var outputHTML = "<ul type='disc'>"
  for ( i = 0; i < aValue.length; i++ )
  {
    outputHTML = outputHTML + "<li>" + aValue[i] + "</li>"
  }

  outputHTML = outputHTML + "</ul>"

  if ( aBold )
  {
    newDataCell.innerHTML = "<b>" + outputHTML + "</b>&nbsp;"
  }
  else
  {
    newDataCell.innerHTML = outputHTML + "&nbsp;"
  }
}

function setEventId(aId)
{
  eventID = aId;
  alert(eventID)
}

/* Past Event List Functions  */

function drawPastEventTable()
{
  var tableName = "eventDetailBody"
  var beginDate = get1stOfMonthFromChooser("beginYear")
  var endDate = getEndOfMonthFromChooser("endYear")

  clearTable(tableName)
  for (var j = 0; j < eventDB.length; j++)
  {
    if ( (eventDB[j].aBeginDate >= beginDate) && (eventDB[j].aBeginDate <= endDate) )
    {
      getEventById( j );
      addHardLine(tableName);
    }
  }
}

function get1stOfMonthFromChooser( aDateChooser )
{
  var dateSelected = getObject(aDateChooser)
  var strYearMonth = dateSelected.options[dateSelected.selectedIndex].value
  var strYearLength = strYearMonth.length
 	var strMonth = strYearMonth.substring(4, strYearLength)
  var theMonth = parseInt(strMonth)
	var theYear = parseInt(strYearMonth.substring(0,4))
  return (theYear+"/"+ monthDayFormat((theMonth+1))+"/01")
}

function getEndOfMonthFromChooser( aDateChooser )
{
  var dateSelected = getObject(aDateChooser)
  var strYearMonth = dateSelected.options[dateSelected.selectedIndex].value
  var strYearLength = strYearMonth.length
 	var strMonth = strYearMonth.substring(4, strYearLength)
  var theMonth = parseInt(strMonth)
	var theYear = parseInt(strYearMonth.substring(0,4))
  var howMany = getMonthLen(theYear, theMonth)

  return (theYear+"/"+ monthDayFormat((theMonth+1))+"/" + howMany)
}

function findEventIDbyName( aName )
{
  for (var j = 0; j < eventDB.length; j++)
  {
    if ( eventDB[j].aTitle == aName )
    {
      return j;
    }
  }
  return 0;
}
