////////////////////////////////////////
//                                    //
//   © 2003 Steven J. Mapua           //
//   All Rights Reserved              //
//                                    //
//   Steve.Mapua@GlobalTelesis.com    //
//                                    //
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//   Calendar Date Picker v1.0
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

//
// Dim cDATEPICKER : cDATEPICKER   = cxWWW_URL_PATH & "/" & cxBASE_URL_PATH & "/datepicker/"
//

// You can set the look and feel for the Modal Date Picker Here
var szDialogArgs = "dialogWidth:200px;dialogHeight:220px;center:yes;help:no;status:no;resizable:yes;";

// You can set the font size in Pixels here (Not enabled in this version)
var nFontSize    = new Number(12);
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
//   Calendar Engine v1.0
//
//   Do not edit below this line
//
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

// extern objRet  = CreateDateObject();
// extern nFontSize
var objDate  = CreateDateObject();

////////////////////////////////
// CONSTANTS - Do not edit
//    Date Formats
      var cSHORTDATE = 0;
      var cLONGDATE  = 1;
////////////////////////////////
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function ShowCalendar(szStartDate,bDateIsSelectable)
//
// Purpose: To show the Popup Modal Date Picker Calendar
//
// Returns: The selected date Object
//
// Note:    To change the returned date format tweak the
//          function FormatDateEx(objDate) below
//
//    szStartDate        - The base date. Must be a valid date in a format
//                         that the Date() function can understand.
//
//       NOTE:           - There is no error handling for this.
//
//    bDateIsSelectable  - Sets whether the Date in szStartDate is a selectable
//                         date or not.
//
//       NOTE:           - Optional. The default is false
//
// Useage - To show current date set szStartDate = null
//        - To show specified date set szStartDate to the date desired
//        - If you want the date to be selectable set bShowStart = true
//
//--------------------------------------------------------------------------
function ShowCalendar(szStartDate,szOpenerURL,bDateIsSelectable)
{
    with(MyForm)
    {

        var objStart = ParseDate(szStartDate,bDateIsSelectable)
        //var szPage = GetBaseURL(document.location) + "support/calendar.asp";
        var szPage = szOpenerURL + "calendar.asp";
        var objRet;

        //alert(szPage);

        objRet = showModalDialog(szPage,objStart,szDialogArgs);


        if((!IsDateObjectNull(objRet)) &&
           (!CompDateObject(objRet,objStart)))
        {
            return FormatDateEx(objRet);
        }
    }
    return "";
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// You can change the date format here
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function FormatDateEx(objDate)
{
    // Note: GetMonthName is zero based
    return GetMonthName(objDate.Month) + " " + objDate.Date + ", " + objDate.Year;
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function CompDateObject(oBase,oCompare)
//
// Purpose: To determine if 2 date objects are equal
//
//    oBase     - Custom SJM Date Object
//    oCompare  - Custom SJM Date Object
//
// Returns True if the objects are equal
//
// Note: Does not check for FontSize
//
//--------------------------------------------------------------------------
function CompDateObject(oBase,oCompare)
{
    if(oBase.Month != oCompare.Month)
        return false;
    if(oBase.Date != oCompare.Date)
        return false;
    if(oBase.Year != oCompare.Year)
        return false;
    if(oBase.ShowStart != oCompare.ShowStart)
        return false;

    return true;
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function IsDateObjectNull(oDate)
//
// Purpose: To determine if oDate is not populated
//          and has the base initialization values
//
//    oDate     - Custom SJM Date Object
//
// Returns True if the objects is not populated
//
// Note: Does not check for FontSize
//
//--------------------------------------------------------------------------
function IsDateObjectNull(oDate)
{
    if(!oDate)
        return true;

    if((oDate.Month == 0) &&
       (oDate.Date == 0)  &&
       (oDate.Year == 0)  &&
       (oDate.ShowStart == false))
        return true;

    return false;
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function GetBaseURL(szURL)
//
// Purpose: Returns the Path less the file name
//
//--------------------------------------------------------------------------
function GetBaseURL(szURL)
{
    var szStr = new String(szURL);
    szStr = szStr.substr(0,szStr.lastIndexOf("/") + 1);
    return szStr;
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function IsValidDate(szDate)
//
// Purpose: To determine if szDate is a valid Gregorian date
//
// This is currently broken
//
//--------------------------------------------------------------------------
function IsValidDate(szDate)
{
    try
    {
        var oTest = new Date(szDate);

        //alert(oTest.getMonth() + " " + oTest.getDate() + ", " + oTest.getYear());

        return true
    }
    catch(bummer)
    {
        return false;
    }
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function CalendarEngine(month,year,startday)
//
// Purpose: returns an DHTML string
//
//    nYear - Year to be determined if it is a leap year or not.
//
//--------------------------------------------------------------------------
function CalendarEngine(nMonth,nStartDay,nYear,szArrayBooked)
{

    // Make sure that if it is the last day of the month, bump it up to the next month
    if((nStartDay) && (Number(nStartDay) > Number(GetDaysInMonth(nMonth,nYear))))
    {
        nMonth = Number(nMonth);
        nYear  = Number(nYear);
        if(nMonth == 11)
        {
            nMonth = 0;
            nYear++;
        }
        else
            nMonth++;

        nStartDay = null;
    }

    var nCurDay,nCurMonth,nCurYear,aryBooked,szCatDate;
    aryBooked = szArrayBooked.split("$");

    var bBooked   = Boolean();
    var x         = Number(0);
    var i         = Number(0);
    var szRet     = String();
    var nMonth    = Number(nMonth);
    var nYear     = Number(nYear);
    var szMonth   = GetMonthName(nMonth);
    var nNoDays   = GetDaysInMonth(nMonth,nYear);
    var dteToday   = new Date(nYear,nMonth,1);
    var nStartPos = dteToday.getDay();
    var nDay      = Number(0);

    dteToday       = new Date();

    nCurMonth      = objDate.Month;
    nCurDay        = objDate.Date;
    nCurYear       = objDate.Year;
    bShowStartDate = objDate.ShowStart

    nNoDays += nStartPos;

    szRet  = "<HTML>\n";
    szRet += "<HEAD>\n";
    szRet += "    <TITLE>&nbsp; Select Date &nbsp;&nbsp;</TITLE>\n";
    szRet += "    <STYLE>\n";
    szRet += "        .CalFont\n";
    szRet += "        {\n";
    szRet += "            FONT-FAMILY: Verdana,Chicago,sans-serif;\n";
    szRet += "            FONT-WEIGHT: 400;\n";
    szRet += "            FONT-SIZE: 12px;\n";
    szRet += "        }\n";
    szRet += "        .CalFontEx\n";
    szRet += "        {\n";
    szRet += "            FONT-FAMILY: Verdana,Chicago,sans-serif;\n";
    szRet += "            FONT-WEIGHT: 400;\n";
    szRet += "            FONT-SIZE: 12px;\n";
    szRet += "            COLOR: #0000C0;\n";
    szRet += "            CURSOR:\"hand\";\n";
    szRet += "        }\n";
    szRet += "        .CalFontEx : hover\n";
    szRet += "        {\n";
    szRet += "            TEXT-DECORATION: underline;\n";
    szRet += "        }\n";
    szRet += "    </STYLE>\n";
    szRet += "    <" + "S" + "CRIPT LANGUAGE='JavaScript'>var objRet<" + "/" + "SCRIPT>\n";
    szRet += "    <" + "S" + "CRIPT LANGUAGE='JavaScript' SRC='../jscript/CalendarEngine.js'><" + "/" + "SCRIPT>\n";
    //szRet += "    <" + "S" + "CRIPT LANGUAGE='JavaScript' SRC='../jscript/sjm_DatePicker.js'><" + "/" + "SCRIPT>\n";

    szRet += "</HEAD>\n";
    szRet += "<BODY CLASS=CalFont BGCOLOR='#FFFFFF' LEFTMARGIN=15 RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=18 MARGINWIDTH=0 MARGINHEIGHT=0>\n";
    szRet += "<CENTER>\n";
    szRet += "    <FORM>\n";
    szRet += "        <TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 CLASS=CalFont BGCOLOR='#9CCFFF' ALIGN=center>\n";
    szRet += "            <TR>\n";
    szRet += "                <TD ALIGN=center CLASS=CalFont>\n";
    szRet += "                    <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0 CLASS=CalFont ALIGN=center>\n";
    szRet += "                        <TR>\n";
    szRet += "                            <TD ALIGN=center CLASS=CalFont>\n";
    szRet += "                                <IMG SRC='images/left.gif'  ALIGN=left  ID=btn_Left NAME=btn_Left CLASS=CalFontEx HEIGHT=14 WIDTH=16 HSPACE=0 VSAPCE=0 BORDER=0\n";
    szRet += "                                 onClick='SetPreviousMonth(" + nMonth + "," + nYear + "," + objDate.Month + "," + objDate.Date + "," + objDate.Year + "," + objDate.ShowStart + ",\"" + szArrayBooked + "\") ;'>\n";
    szRet += "                            </TD>\n";
    szRet += "                            <TD COLSPAN=5 ALIGN=center CLASS=CalFont>\n";
    szRet += "                                " + szMonth + " " + String(nYear) + "\n";
    szRet += "                            </TD>\n";
    szRet += "                            <TD ALIGN=center CLASS=CalFont>\n";
    szRet += "                                <IMG SRC='images/right.gif' ALIGN=right ID=btn_Left NAME=btn_Left CLASS=CalFontEx HEIGHT=14 WIDTH=16 HSPACE=0 VSAPCE=0 BORDER=0\n";
    szRet += "                                 onClick='SetNextMonth(" + nMonth + "," + nYear + "," + objDate.Month + "," + objDate.Date + "," + objDate.Year + "," + objDate.ShowStart + ",\"" + szArrayBooked + "\");'>\n";
    szRet += "                            </TD>\n";
    szRet += "                        </TR>\n";
    szRet += "                        <TR>\n";
    szRet += "                            <TD CLASS=CalFont ALIGN=center BGCOLOR='#F7E78C'><B>S</B></TD>\n";
    szRet += "                            <TD CLASS=CalFont ALIGN=center BGCOLOR='#F7E78C'><B>M</B></TD>\n";
    szRet += "                            <TD CLASS=CalFont ALIGN=center BGCOLOR='#F7E78C'><B>T</B></TD>\n";
    szRet += "                            <TD CLASS=CalFont ALIGN=center BGCOLOR='#F7E78C'><B>W</B></TD>\n"
    szRet += "                            <TD CLASS=CalFont ALIGN=center BGCOLOR='#F7E78C'><B>T</B></TD>\n";
    szRet += "                            <TD CLASS=CalFont ALIGN=center BGCOLOR='#F7E78C'><B>F</B></TD>\n";
    szRet += "                            <TD CLASS=CalFont ALIGN=center BGCOLOR='#F7E78C'><B>S</B></TD>\n";
    szRet += "                        </TR>\n";

    // Set the empty dates for the start row
    for(i = 0; i < nStartPos; i++)
    {
        // If Start of Row - Open
        if(i == 0)
            szRet += "                        <TR>\n";
        // If End of Row - Terminate
        else if (i % 7 == 0)
            szRet += "                        </TR>\n";

        szRet += "                            <TD CLASS=CalFont BGCOLOR='#FFFFFF'>&nbsp;</TD>\n";
    }

    var dteCalendar
    // Set the dates
    for (i = nStartPos; i < nNoDays; i++)
    {
        // If Start of Row - Open
        if(i == 0)
            szRet += "                        <TR>\n";
        // If End of Row - Terminate
        else if (i % 7 == 0)
            szRet += "                        </TR>\n";

        // Set the date values
        nDay = Number(i - nStartPos + 1);

        // We increment the month so it matches with the VB month
        // This is the calendar date
        szCatDate = (nMonth + 1) + "/" + nDay + "/" + nYear;
        dteCalendar = new Date(szCatDate);

        bBooked = false;
        for(x = 0; x < aryBooked.length; x++)
        {

            if(aryBooked[x] == szCatDate)
            {
                //alert("if(" + aryBooked[x] + " == " + szCatDate + ")");
                bBooked = true;
                break;
            }
        }

        if(objDate.ShowStart)
        {
            // This logic uses the date sent in as the base line, which may not be the current date.
            // We need to change it to use the current date.
            if((((nDay >= nCurDay) && (nMonth == nCurMonth) && (nYear == nCurYear)) ||
                ((nMonth > nCurMonth) && (nYear >= nCurYear))                       ||
                (nYear > nCurYear))                                                 &&
                (!bBooked))

            {
                // Selectable Date
                szRet += "                            <TD ALIGN=right BGCOLOR='#FFFFFF' CLASS=CalFontEx onClick='RetSelDate(" + nDay + "," + nMonth + "," + nYear + ");'>" + nDay + "</TD>\n";
            }
            else
            {
                // Allow them to select a date as long as it is not before today (right now)
                // And it is not booked
                if((dteCalendar > dteToday) && !bBooked)
                    szRet += "                            <TD ALIGN=right BGCOLOR='#FFFFFF' CLASS=CalFontEx onClick='RetSelDate(" + nDay + "," + nMonth + "," + nYear + ");'>" + nDay + "</TD>\n";
                else
                    szRet += "                            <TD ALIGN=right BGCOLOR='#E9E9E9' CLASS=CalFont>" + nDay + "</TD>\n";
            }
        }
        else
        {
            szRet += "                            <TD ALIGN=right BGCOLOR='#FFFFFF' CLASS=CalFontEx onClick='RetSelDate(" + nDay + "," + nMonth + "," + nYear + ");'>" + nDay + "</TD>\n";
        }
    }

    // Set the empty dates for the last row
    for (i = nNoDays; i < 42; i++)
    {
        if(i == 0)
            szRet += "                        <TR>\n";
        else if (i % 7 == 0)
        {
            szRet += "                        </TR>\n";
            break;
        }

        szRet += "                            <TD BGCOLOR='#FFFFFF' CLASS=CalFont>&nbsp;</TD>\n";
    }
    szRet += "                    </TABLE>\n";
    szRet += "                </TD>\n";
    szRet += "            </TR>\n";
    szRet += "        </TABLE>\n";
    szRet += "        <IMG SRC='images/close.gif' CLASS=CalFontEx HEIGHT=16 WIDTH=29 HSPACE=0 VSAPCE=0 BORDER=0 onClick='RetSelDate(0,0,0);'>\n";
    szRet += "        <INPUT TYPE=hidden VALUE='" + szArrayBooked + "'>\n"
    szRet += "    </FORM>\n";
    szRet += "</CENTER>\n";
    szRet += "</BODY>\n";
    szRet += "</HTML>\n";
    return szRet;
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//   Create Calendar / Return Values
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function RetSelDate(nDay,nMonth,nYear)
{
    var objRet = CreateDateObject();

    // If we have a valid date and Year set
    // the return object values
    if(nDay && nYear)
    {
        objRet.Month = nMonth;
        objRet.Date  = nDay;
        objRet.Year  = nYear;
    }

    self.returnValue = objRet;

    self.close();
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function GenerateCalendar(nMonth,nYear,nDate,szArrayBooked)
{
    document.open("text/html","replace");
    document.write(CalendarEngine(nMonth,nDate,nYear,szArrayBooked));
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function SetDate(nMonth,nDate,nYear,bShowStart,szArrayBooked)
{
    if (nYear < 2000)
        nYear += 1900;

    // Set the Date Object
    objDate.Month     = Number(nMonth);
    objDate.Date      = Number(nDate);
    objDate.Year      = Number(nYear);
    objDate.ShowStart = Boolean(bShowStart);

    GenerateCalendar(nMonth,nYear,nDate,szArrayBooked);

}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//   Navigate Months / Years
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//function SetToday()
//{
//    var now    = new Date();
//    var nMonth = Number(now.getMonth());
//    var nYear  = Number(now.getYear());
//
//    if (nYear < 2000)
//        nYear += 1900;
//
//    GenerateCalendar(nMonth,nYear);
//}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function SetPreviousMonth(nMonth,nYear,oDateMonth,oDateDate,oDateYear,oDateShowStart,szArrayBooked)
{
    nMonth = Number(nMonth);
    nYear  = Number(nYear);

    // Set the Date Object so it is live
    // when we re-draw the document object
    objDate.Month     = oDateMonth;
    objDate.Date      = oDateDate;
    objDate.Year      = oDateYear;
    objDate.ShowStart = oDateShowStart;

    if(nMonth == 0)
    {
        nMonth = 11;
        if(nYear > 1000)
            nYear--;
    }
    else
        nMonth--;

    GenerateCalendar(nMonth,nYear,0,szArrayBooked);
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function SetNextMonth(nMonth,nYear,oDateMonth,oDateDate,oDateYear,oDateShowStart,szArrayBooked)
{

    nMonth = Number(nMonth);
    nYear  = Number(nYear);

    // Set the Date Object so it is live
    // when we re-draw the document object
    objDate.Month     = oDateMonth;
    objDate.Date      = oDateDate;
    objDate.Year      = oDateYear;
    objDate.ShowStart = oDateShowStart;

    if(nMonth == 11)
    {
        nMonth = 0;
        nYear++;
    }
    else
        nMonth++;

   GenerateCalendar(nMonth,nYear,0,szArrayBooked);
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//   Support Functions
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function GetDaysInMonth(nMonth,nYear)
//
// Purpose: To return number of days in a month accounting for leap years
//
//--------------------------------------------------------------------------
function GetDaysInMonth(nMonth,nYear)
{
    var nDays = new Number();

    if((nMonth == 0)  ||
       (nMonth == 2)  ||
       (nMonth == 4)  ||
       (nMonth == 6)  ||
       (nMonth == 7)  ||
       (nMonth == 9) ||
       (nMonth == 11))
        nDays = 31;

    else if((nMonth == 3)  ||
            (nMonth == 5)  ||
            (nMonth == 8)  ||
            (nMonth == 10))
        nDays = 30;

    else if((nMonth == 1) &&
            (IsLeapYear(nYear)))
        nDays = 29;

    else
        nDays = 28;

    return nDays;
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function IsLeapYear(nYear)
//
// Purpose: To return a Date Object from the szBaseDate
//
//    nYear - Year to be determined if it is a leap year or not.
//
//--------------------------------------------------------------------------
function IsLeapYear(nYear)
{
    if (((nYear % 4)   == 0) &&
        ((nYear % 100) != 0) ||
        ((nYear % 400) == 0))
        return true;

    return false;
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function ParseDate(szBaseDate,bDateIsSelectable)
//
// Purpose: To return a Date Object from the szBaseDate
//
//    szBaseDate         - The base date. Must be a valid date in a format
//                          that the Date() function can understand.
//
//       NOTE:           - There is no error handling for this.
//
//    bDateIsSelectable  - Sets whether the Date in szStartDate is a selectable
//                  date or not.
//
//--------------------------------------------------------------------------
function ParseDate(szBaseDate,bDateIsSelectable)
{
    var objDate = CreateDateObject();
    var nToday;


    if((szBaseDate) && (szBaseDate.length))
    {
        var oDate = new Date(szBaseDate);

        nToday = new Number(oDate.getDate());
        nToday++;

        objDate.Month = oDate.getMonth();
        objDate.Date  = nToday;
        objDate.Year  = oDate.getYear();
    }
    else
    {
        var oDate = new Date();

        objDate.Month = oDate.getMonth();
        objDate.Date  = oDate.getDate();
        objDate.Year  = oDate.getYear();
    }

    if((bDateIsSelectable == null) || (bDateIsSelectable == true))
        objDate.ShowStart = true;
    else
        objDate.ShowStart = false;

    return objDate;

}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function CreateDateObject()
//
// Purpose: Creates an Initialized Custom Date Object
//
//--------------------------------------------------------------------------
function CreateDateObject()
{
    var obj = new Object();

    obj["Month"]     = 0;
    obj["Date"]      = 0;
    obj["Year"]      = 0;
    obj["ShowStart"] = false;
    //obj["FontSize"]  = nFontSize;

    return obj;
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function GetMonthName(nMonth,nFormat)
//
// Purpose: To determine if oDate is not populated
//          and has the base initialization values
//
//    nMonth   - Zero based month number
//    nFormat  - use constants provided
//
//           cSHORTDATE = 0;
//           cLONGDATE  = 1;
//
//       NOTE: - Optional. The default is cSHORTDATE
//
// Returns Month name as as string
//
//--------------------------------------------------------------------------
function GetMonthName(nMonth,nFormat)
{
    if(!nFormat)
    {
        switch(Number(nMonth))
        {
            case 0:  return "Jan";
            case 1:  return "Feb";
            case 2:  return "Mar";
            case 3:  return "Apr";
            case 4:  return "May";
            case 5:  return "Jun";
            case 6:  return "Jul";
            case 7:  return "Aug";
            case 8:  return "Sep";
            case 9:  return "Oct";
            case 10: return "Nov";
            case 11: return "Dec";
        }
    }
    else if(nFormat == cLONGDATE)
    {
        switch(Number(nMonth))
        {
            case 0:  return "January";
            case 1:  return "February";
            case 2:  return "March";
            case 3:  return "April";
            case 4:  return "May";
            case 5:  return "June";
            case 6:  return "July";
            case 7:  return "August";
            case 8:  return "September";
            case 9:  return "October";
            case 10: return "November";
            case 11: return "December";
        }
    }
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function IncrementYear(aryDate)
//
// If the month is greater than 11 increment the year and
// subtract 12 from the month.
//
// aryDate is an array of 2 elements so it can be passed
// by reference
//
// aryDate[0] = number representing the month
// aryDate[1] = number representing the year
//
//------------------------------------------------------------------
function IncrementYear(aryDate)
{
    if((aryDate == undefined) || (isNaN(aryDate[0])) || (isNaN(aryDate[0])))
        return;

    do
    {
        if(aryDate[0] > 11)
        {
            aryDate[0] -= 12;
            aryDate[1]++;
        }
        else
            break;
    }while(1);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// function DecrementYear(aryDate,nBaseYear)
//
// If the year is greater than the nBaseYear decrement the year
// and add 12 to the month
//
// aryDate is an array of 2 elements so it can be passed
// by reference
//
// aryDate[0] = number representing the month
// aryDate[1] = number representing the year
//
//------------------------------------------------------------------
function DecrementYear(aryDate,nBaseYear)
{
    if((aryDate == undefined) || (isNaN(aryDate[0])) || (isNaN(aryDate[0])))
        return;

    do
    {
        if(aryDate[1] > nBaseYear)
        {
            aryDate[0] += 12;
            aryDate[1]--;
        }
        else
            break;
    }while(1);
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

