var pmpOrder = false;
var NAME = 0
var FIRSTNAME = 1
var MONTH = 2
var YEAR = 3
var storedPMPOrder = 0

function capmSort( aType )
{
  if ( aType != storedPMPOrder )
  {
    if (aType != YEAR)
    {
      pmpOrder = false
    }
    else
    {
      pmpOrder = true
    }
  }
  else
  {
    pmpOrder = !pmpOrder
  }
  storedPMPOrder = aType

  switch (aType) 
  {
    case NAME :
      capmDB.sort(sortByName)
      break
    case FIRSTNAME :
      capmDB.sort(sortByFirstName)
      break
    case MONTH :
      capmDB.sort(sortByMonth)
      break
    case YEAR :
      capmDB.sort(sortByYear)
      break
		default :
			capmDB.sort(sortByName)
  }
	drawCAPMTable( capmDB );
}

function pmpSort( aType )
{
  if ( aType != storedPMPOrder )
  {
    if (aType != YEAR)
    {
      pmpOrder = false
    }
    else
    {
      pmpOrder = true
    }
  }
  else
  {
    pmpOrder = !pmpOrder
  }
  storedPMPOrder = aType
  switch (aType) 
  {
    case NAME :
      pmpDB.sort(sortByName)
      break
    case FIRSTNAME :
      pmpDB.sort(sortByFirstName)
      break
    case MONTH :
      pmpDB.sort(sortByMonth)
      break
    case YEAR :
      pmpDB.sort(sortByYear)
      break
default :
		pmpDB.sort(sortByName)
  }
	drawPMPTable( pmpDB );
}

function sortByName(a, b) 
{ // Sort logic for Name Column
  return (pmpOrder) ? (( a.aName > b.aName ) ? -1 : 1) : (( a.aName < b.aName ) ? -1 : 1)
}
function sortByFirstName(a, b) 
{ // Sort logic for First Name Column
  return (pmpOrder) ? (( a.aFirstName > b.aFirstName ) ? -1 : 1) : (( a.aFirstName < b.aFirstName ) ? -1 : 1)
}
function sortByMonth(a, b) 
{ // Sort logic for Month Column
  return (pmpOrder) ? (( a.aMonth > b.aMonth ) ? -1 : 1) : (( a.aMonth < b.aMonth ) ? -1 : 1)
}
function sortByYear(a, b) 
{ // Sort logic for Year Column
  return (pmpOrder) ? (( a.aYear+a.aMonth > b.aYear+b.aMonth ) ? -1 : 1) : (( a.aYear+a.aMonth < b.aYear+b.aMonth ) ? -1 : 1)
}

function drawPMPTable( aArray ) 
{
  var newRow
  var newHeader
  var className
 
  // Create detail rows		
  deleteRows(getObject("pmpcapmBody"))

	for (var i = 0; i < aArray.length; i++) 
	{
    newRow = getObject("pmpcapmBody").insertRow(i) 

		if (i % 2 == 0)
			{
				className ="PMPCAPMDetailLight";
			}
		else
			{
				className ="PMPCAPMDetail";
			}

    buildPMPRow(newRow, aArray[i], className);
	}
}

function buildPMPRow(Trow, aArrayRow, className) 
{
  with ( aArrayRow )
  {
   	var newCell = Trow.insertCell(Trow.cells.length)
   	newCell.style.width = "425px";
  	newCell.title ="Name"
  	newCell.innerHTML = aFirstName + " " + aName + ", " + aPMP;
		newCell.className = className;

   	var newCell = Trow.insertCell(Trow.cells.length)
   	newCell.style.width = "100px";
  	newCell.title ="Month"
    newCell.align = "center"
  	newCell.innerHTML = aMonth
		newCell.className = className;
  
   	var newCell = Trow.insertCell(Trow.cells.length)
   	newCell.style.width = "60px";
  	newCell.title ="Year"
    newCell.align = "center"
  	newCell.innerHTML = aYear
		newCell.className = className;
  }
}

function drawCAPMTable( aArray ) 
{
  var newRow
  var newHeader
  var className
 
  // Create detail rows		
  deleteRows(getObject("pmpcapmBody"))

	for (var i = 0; i < aArray.length; i++) 
	{
    newRow = getObject("pmpcapmBody").insertRow(i) 

		if (i % 2 == 0)
			{
				className ="PMPCAPMDetailLight";
			}
		else
			{
				className ="PMPCAPMDetail";
			}

    buildCAPMRow(newRow, aArray[i], className);
	}
}

function buildCAPMRow(Trow, aArrayRow, className) 
{
  with ( aArrayRow )
  {
   	var newCell = Trow.insertCell(Trow.cells.length)
   	newCell.style.width = "525px";
  	newCell.title ="Name"
  	newCell.innerHTML = aFirstName + " " + aName + ", " + aPMP;
		newCell.className = className;

   	var newCell = Trow.insertCell(Trow.cells.length)
   	newCell.style.width = "60px";
  	newCell.title ="Year"
    newCell.align = "center"
  	newCell.innerHTML = aYear
		newCell.className = className;
  }
}
