var modCount = 0;
var dateArray = new Array();
var orderArray = new Array();
var nodeData = new Array();

j(document).ready(function() {    
    j('.eventTableData > .eventTableDate').each(function(index, node) {
        if (modCount % 2 == 0) {
          if (dateArray.length == 0) {
            dateArray[0] = node.innerHTML;
            orderArray[0] = index/2;
          } else {
            //determine where to insert based on start date
            for (var i = 0; i < dateArray.length; i++) {
              if (getStartDate(node.innerHTML) < getStartDate(dateArray[i])) {
                for (var j = dateArray.length; j > i; j--) {
                   dateArray[j] = dateArray[j-1];
                   orderArray[j] = orderArray[j-1];
                }
                dateArray[i] = node.innerHTML;
                orderArray[i] = index/2;
                break;
              }     
              
              if (i == dateArray.length - 1) {
                dateArray[i+1] = node.innerHTML;
                orderArray[i+1] = index/2;
                break;                
              }
            }
          }  
        } 
        modCount++;     
     });
     
     //var nodeArray = dojo.query(".eventTableData");
     var nodeArray = j('.eventTableData');
     
     if (nodeArray != null && nodeArray.length > 1) {
       var parentNode = nodeArray[0].parentNode;
       
       for (var i = 0; i < nodeArray.length; i++) {
          nodeArray[i].parentNode.removeChild(nodeArray[i]);
       }     
       
       for (var i = 0; i < orderArray.length; i++) {
    	  if (i % 2 == 0) {
    		  if (!j(nodeArray[orderArray[i]]).hasClass("eventTableDataEven")) {
    			  j(nodeArray[orderArray[i]]).removeClass("eventTableDataOdd");
    			  j(nodeArray[orderArray[i]]).addClass("eventTableDataEven");    			  
    		  }    		  
    	  } else {
    		  if (!j(nodeArray[orderArray[i]]).hasClass("eventTableDataOdd")) {
    			  j(nodeArray[orderArray[i]]).removeClass("eventTableDataEven");
    			  j(nodeArray[orderArray[i]]).addClass("eventTableDataOdd");    			  
    		  }
    	  }
          parentNode.appendChild(nodeArray[orderArray[i]]);
       } 
     }    
});



function getStartDate(str) {
  var dateCalc = new Date(str.substr(7, 4), getMonthFromStr(str.substr(3, 3)), str.substr(0, 2));
  return dateCalc;
}

function getMonthFromStr(str) {
  if (str == 'Jan')
    return 0;
  else if (str == 'Feb')
    return 1;
  else if (str == 'Mar')
    return 2;
  else if (str == 'Apr')
    return 3;
  else if (str == 'May')
    return 4;
  else if (str == 'Jun')
    return 5;
  else if (str == 'Jul')
    return 6;
  else if (str == 'Aug')
    return 7;
  else if (str == 'Sep')
    return 8;
  else if (str == 'Oct')
    return 9;
  else if (str == 'Nov')
    return 10;
  else if (str == 'Dec')
    return 11;
}
