var today = new Date()
var monthNames = new MakeArray(12)
monthNames[1] = "January"
monthNames[2] = "February"
monthNames[3] = "March"
monthNames[4] = "April"
monthNames[5] = "May"
monthNames[6] = "June"
monthNames[7] = "July"
monthNames[8] = "August"
monthNames[9] = "September"
monthNames[10] = "October"
monthNames[11] = "November"
monthNames[12] = "December"

dayNames = new MakeArray(7)
dayNames[1] ="Sunday"
dayNames[2] ="Monday"
dayNames[3] ="Tuesday"
dayNames[4] ="Wednesday"
dayNames[5] ="Thursday"
dayNames[6] ="Friday"
dayNames[7] ="Saturday"


function textMsg(displayString) {
alert(displayString);
}


function addThreeMonths(dateArray) {
var MINUTE = 60 * 1000
var HOUR   = MINUTE * 60
var DAY    = HOUR * 24
var aMonth = 0
var aDay   = 1
var aYear  = 2
   // Move date ahead to the first of the month
   // and four (4) months later
      dateArray[aDay] = 1;
      dateArray[aMonth] += 4;
      if (dateArray[aMonth] > 12)
         {
         dateArray[aMonth]-=12;
         dateArray[aYear]+=1;
      }
   // Move date into date object
      lastDate = new Date(dateArray[aYear], dateArray[aMonth]-1, dateArray[aDay]);
      dateInMs = lastDate.getTime();
            
   // Change to last day of the previous month
      dateInMs -= (1*DAY);
      lastDate.setTime(dateInMs);

    //alert(lastDate);
      dateArray[aMonth] = lastDate.getMonth() + 1;
      dateArray[aYear] = lastDate.getYear();
      dateArray[aDay]  = lastDate.getDate();
}

function addFourYears(dateArray) {
var aMonth = 0
var aDay   = 1
var aYear  = 2
   dateArray[aMonth] = 12;
   dateArray[aDay] = 31;
   dateArray[aYear] += 4;
}

function addForEver(dateArray) {
var aMonth = 0
var aDay   = 1
var aYear  = 2
   dateArray[aMonth] = 12;
   dateArray[aDay] = 31;
   dateArray[aYear] = 9999;
}

function addFisicalYear(dateArray) {
var aMonth = 0;
var aDay   = 1;
var aYear  = 2;
var SEPT   = 8;

    lastDate = new Date(dateArray[aYear], dateArray[aMonth]-1, dateArray[aDay]);
    cutoffDate = new Date(lastDate.getYear(), SEPT, 15);
    lastDate>cutoffDate?dateArray[aYear]+=2:dateArray[aYear]+=1;
    dateArray[aMonth] = 4;
    dateArray[aDay] = 30
}

function expirationDate(baseDate, status) {
var aMonth = 0
var aDay   = 1
var aYear  = 2
var dateArray = new Array();

   dateArray = baseDate.split("/");
   dateArray[aMonth] = parseInt(dateArray[aMonth]);
   dateArray[aDay] = parseInt(dateArray[aDay]);
   dateArray[aYear] = parseInt(dateArray[aYear]);
   if (dateArray[aYear] < 60) dateArray[aYear] += 2000;
   if (dateArray[aYear] < 100) dateArray[aYear] += 1900;
   //Insert calculation of expiration dates here
   //Remember to substract 1 to the month after defining the 'date' object because January = 0.
   switch(parseInt(status)) {
      case  1: // General Mailing
      case  2: // Golden Handler
      case  3: // Judge
               addFourYears(dateArray);
               break;
               
      case  4: // Club Contact
               addForEver(dateArray);
               break;
               
      case  5: // Professional Trainer
               addFourYears(dateArray);
               break;
               
      case 20: // Interested
               addThreeMonths(dateArray);
               break;

      case 21: // Applicant - Individual
      case 22: // Applicant - Family
      case 23: // Newsletter
      case 24: // Supporting
               addFisicalYear(dateArray);
               break;
               
      case 25: // Honorary
               addForEver(dateArray);
               break;
               
      case 26: // 1999 Member
      case 27: // 2000 Individual
      case 28: // 2000 Family
               addFisicalYear(dateArray);
               break;
               
      default: // All others
               
   } // End switch (status)
   
   return dateArray[aMonth]+"/"+dateArray[aDay]+"/"+dateArray[aYear];
}

function statusUpdate(form, status) {
   todaysDate = (today.getMonth()+1) + "/" + today.getDate() + "/" + today.getYear();
   form.LastUpdated.value = todaysDate;
// alert("Using "+baseDate+" and "+status+" Status");
// setDate = expirationDate(baseDate, status);
// alert("Expires "+expirationDate(baseDate, status));
   form.Expires.value = expirationDate(todaysDate, status);
return;
}


function ChangeUpdateDate(sourceDocument) {
var newDateValue = prompt("Modify Update Date to:", sourceDocument.forms[0].LastUpdated.value)
sourceDocument.forms[0].LastUpdated.value = newDateValue
sourceDocument.forms[0].ExpirationDate.value =expirationDate(sourceDocument.forms[0].LastUpdated.value, sourceDocument.forms[0].Status.value)
}

function MakeArray(n) {
   this.length = n
   return this
}


function customDateString(oneDate) {
   var theDay   = dayNames[oneDate.getDay() + 1] // Day of the week
   var theMonth = monthNames[oneDate.getMonth() + 1]
   var theYear = oneDate.getYear()
   return theMonth + " " + oneDate.getDate() + ", " + theYear
}

function showFileContents(fileName) {
  window.open(fileName, "source", "Height=500, Width=350, Scrollbars=auto, resizable")
}
