function writeDatePlusTen(strDate) {
   var todayYear = Number(strDate.substring(0,4));
   var stringOut = "<OPTION VALUE=''></OPTION>\n";
   for (var i = 0; i < 8; i++) {
      
      stringOut += "<OPTION VALUE='" + (todayYear + i) + "'>";
      stringOut += todayYear + i;
      stringOut += "</OPTION>\n";
   }
   
   document.write(stringOut);
}

function alterDate(strPreText, strDate, strPostText, withTime, withGMT) {
   // strDate format: 2007-10-30T04:59:59.000Z
   //                 012345678901234567890123
   
   date = new Date();

   date.setYear(strDate.substring(0,4));
   date.setMonth(strDate.substring(5,7) - 1);
   date.setDate(strDate.substring(8,10));
   date.setHours(strDate.substring(11,13));

   var nYear = date.getFullYear();
   var outString = strPreText + formatDate(date.getDate(), date.getMonth()+1, nYear);
   if (withTime == 'true') {
      var strGMT = " GMT";
   	var strAmPm = " AM";
   	if (date.getHours() > 12) {
           strAmPm = " PM";
           date.setHours(date.getHours() - 12);
        } else if (date.getHours() == 12) {
           strAmPm = " PM";
        } else if (date.getHours() == 0) {
           date.setHours(12);
        }

        var outStringTime = date.getHours() + ":" + strDate.substring(14,16) + strAmPm;
        outString += " " + outStringTime;
        if (withGMT == 'true') {
           outString += strGMT;
        }
   }
   
   outString += strPostText;
   
   document.write(outString);
   return true;
}

// Display for canvas 
function getDateString(strDate) {
   // strDate format: 2007-10-30T04:59:59.000Z
   //                 012345678901234567890123
  
   date = new Date();
   date.setYear(strDate.substring(0,4));
   date.setMonth(strDate.substring(5,7) - 1);
   date.setDate(strDate.substring(8,10));
   date.setHours(strDate.substring(11,13));

   var nYear = date.getFullYear();
   return formatDate(date.getDate(), date.getMonth()+1, nYear);
}

function getDatePortion(strDate, strDatePortion) {
   var date = new Date();
   var outString;

   date.setYear(strDate.substring(0,4));
   date.setMonth(strDate.substring(5,7) - 1);
   date.setDate(strDate.substring(8,10));
   date.setHours(strDate.substring(11,13));
   
   var nYear = date.getFullYear();

   if (strDatePortion == "Year") {
      outString = nYear;
   } else if (strDatePortion == "MonthString") {
      outString = months[ date.getMonth() ];
   } else if (strDatePortion == "Month") {
      outString = date.getMonth();
   } else if (strDatePortion == "Day") {
      outString = date.getDate();
   }

   document.write(outString);
}

function getTermLengthUnits(strTermLength, strTermLengthUnitText) {
   var termLength = strTermLength;
   document.write(termLength + " " + strTermLengthUnitText);
}

function writeCurrentDate(strDate) {
   var date = getDate(strDate);
   var nYear = date.getFullYear();
   document.write(formatDate(date.getDate(), date.getMonth()+1, nYear));
   return true;
}

function getExpirationDate(strDate, strTermLengthUnits, strTermLength) {
   // strDate format: 2003-10-12
   if (strTermLength == "") {
      document.write("<BR/>");
      return true;
   }

   var date = findExpirationDate(strDate, strTermLengthUnits, strTermLength)
   var nYear = date.getFullYear();
   document.write(formatDate(date.getDate(), date.getMonth()+1, nYear));
   return true;
}

function getDate(strDate) {
   var date  = new Date();
   date.setYear(strDate.substring(0,4));
   date.setMonth(strDate.substring(5,7) - 1);
   date.setDate(strDate.substring(8,10));
   return date;
}

function findExpirationDate(strDate, strTermLengthUnits, strTermLength) {
   var date = getDate(strDate);
   var termLength = Number(strTermLength);
   var termLengthUnits = Number(strTermLengthUnits);
   var yearsToAdd   = 0;
   var monthssToAdd = 0;
   var daysToAdd    = 0;

   if (termLengthUnits == 2) {   // Days
      daysToAdd = termLength;
   } else if (termLengthUnits == 3) {   // Weeks
      daysToAdd = termLength * 7;
   } else if (termLengthUnits == 4) {   // Months
      monthssToAdd = termLength;
   } else if (termLengthUnits == 5) {   // Years
      yearsToAdd = termLength;
   }

   // Use daysToAdd - 1 because subscriptions expire from midnight last night.
   date = DateAdd(date, daysToAdd - 1, monthssToAdd, yearsToAdd);
   return date;
}

function DateAdd(startDate, numDays, numMonths, numYears) {
   var returnDate = new Date(startDate.getTime());
   var yearsToAdd = numYears;
   var month = returnDate.getMonth() + numMonths;
   
   if (month > 11) {
      yearsToAdd = Math.floor((month+1)/12);
      month -= 12*yearsToAdd;
      yearsToAdd += numYears;
   }
  
   returnDate.setMonth(month);
   returnDate.setFullYear(returnDate.getFullYear()	+ yearsToAdd);
   returnDate.setTime(returnDate.getTime()+60000*60*24*numDays);
   return returnDate;
}

function YearAdd(startDate, numYears) {
   return DateAdd(startDate,0,0,numYears);
}

function MonthAdd(startDate, numMonths) {
   return DateAdd(startDate,0,numMonths,0);
}

function DayAdd(startDate, numDays) {
   return DateAdd(startDate,numDays,0,0);
}

function getSubscriptionLength(strOfferPriceType, strDate, strTermLengthUnits, strTermLength, 
   strTermLengthUnitText, prefix) 
{
   if (Number(strOfferPriceType) == 3) {
      //Rolling Start Offer
      getTermLengthUnits(strTermLength, strTermLengthUnitText);
   } else {
      //Fixed Term Offer 
      getSubscriptionString(strDate, strTermLengthUnits, strTermLength, prefix);
   }
}

function getSubscriptionString(strDate, strTermLengthUnits, strTermLength, prefix) {
   // strDate format: 2003-10-12
   if (strTermLength == "") {
      document.write("<BR/>");
      return true;
   }

   var date = findExpirationDate(strDate, strTermLengthUnits, strTermLength)
   var nYear = date.getFullYear();
   document.write(prefix + formatDate(date.getDate(), date.getMonth()+1, nYear));
   return true;
}

