//Javascript name: My Date Time Picker 
//Date created: 16-Nov-2003 23:19 
//Scripter: TengYong Ng 
//Website: http://www.rainforestnet.com 
//Copyright (c) 2003 TengYong Ng 
//FileName: DateTimePicker.js 
//Version: 1.8.2 
//Contact: contact <at> rainforestnet <dot> com 
// Note: Permission given to use and modify this script in ANY kind of applications if 
//       header lines are left unchanged.

//Global variables 
var winCal; 
var dtToday=new Date(); 
var Cal; 
var MonthName=["January",  "February",  "March",  "April",  "May",  "June", "July",   
    "August",  "September",  "October",  "November",  "December"]; 
var WeekDayName1=["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 
var WeekDayName2=["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; 
var exDateTime;//Existing Date and Time 
var selDate;//selected date. version 1.7 


//Configurable parameters 
var cnTop         = "200";//top coordinate of calendar window. 
var cnLeft        = "500";//left coordinate of calendar window 
var WindowTitle   = "DateTime Picker";//Date Time Picker title. 
var WeekChar      = 2; //number of character for week day. if 2 then Mo, Tu, We. if 3 then Mon, Tue, Wed. 
var CellWidth     = 20; //Width of day cell. 
var DateSeparator = "/";//Date Separator,  you can change it to "/" if you want. 
var TimeMode      = 24; //default TimeMode value. 12 or 24 

var ShowLongMonth = true;//Show long month name in Calendar header. example: "January". 
var ShowMonthYear = true;//Show Month and Year in Calendar header. 
var MonthYearColor="#cc0033";//Font Color of Month and Year in Calendar header. 
var WeekHeadColor ="#0099CC";//Background Color in Week header. 
var SundayColor="#CCCCFF";//Background color of Sunday. 
var SaturdayColor="#CCCCFF";//Background color of Saturday. 
var WeekDayColor="white";//Background color of weekdays. 
var FontColor="blue";//color of font in Calendar day cell. 
var TodayColor="#FFFF33";//Background color of today. 
var SelDateColor="FFFF99";//Backgrond color of selected date in textbox. 
var YrSelColor="#cc0033";//color of font of Year selector. 
var MthSelColor="#cc0033";//color of font of Month selector if "MonthSelector" is "arrow". 
var ThemeBg="";//Background image of Calendar window. 
var PrecedeZero=true;//Preceding zero [true|false] 
var MondayFirstDay=false;//true:Use Monday as first day; false:Sunday as first day. [true|false]  //added in version 1.7
var imgDir = ''; // folder where images are stored 
//end Configurable parameters 
//end Global variable 

function NewCal(pCtrl, pFormat, pShowTime, pTimeMode, pScroller, pHideSeconds) 
{ 
    Cal=new Calendar(dtToday); 
    if ((pShowTime!=null) && (pShowTime)) 
    { 
        Cal.ShowTime=true; 
        if ((pTimeMode!=null) &&((pTimeMode=='12')||(pTimeMode=='24'))) 
        { 
            TimeMode=pTimeMode; 
        } 
        if ((pHideSeconds!=null)&&(pHideSeconds)) 
        { 
            Cal.ShowSeconds=false; 
        }         
    }     
    if (pCtrl!=null) 
        Cal.Ctrl=pCtrl; 
    if (pFormat!=null) 
        Cal.Format=pFormat.toUpperCase(); 
    if (pScroller!=null) 
    { 
        if (pScroller.toUpperCase()=="ARROW") 
            Cal.Scroller="ARROW"; 
        else 
            Cal.Scroller="DROPDOWN"; 
    }         
     
    exDateTime=document.getElementById(pCtrl).value; 
    if (exDateTime!="")//Parse existing Date String 
    { 
        var Sp1;//Index of Date Separator 1 
        var Sp2;//Index of Date Separator 2  
        var tSp1;//Index of Time Separator 1 
        var tSp1;//Index of Time Separator 2 
        var strMonth; 
        var strDate; 
        var strYear; 
        var intMonth; 
        var YearPattern; 
        var strHour; 
        var strMinute; 
        var strSecond; 
        var winHeight; 
        //parse month 
        Sp1=exDateTime.indexOf(DateSeparator, 0) 
        Sp2=exDateTime.indexOf(DateSeparator, (parseInt(Sp1)+1)); 
         
        var offset=parseInt(Cal.Format.toUpperCase().lastIndexOf("M"))-parseInt(Cal.Format.toUpperCase().indexOf("M"))-1; 
        if ((Cal.Format.toUpperCase()=="DDMMYYYY") || (Cal.Format.toUpperCase()=="DDMMMYYYY")) { 
            if (DateSeparator=="") { 
                strMonth=exDateTime.substring(2, 4+offset); 
                strDate=exDateTime.substring(0, 2); 
                strYear=exDateTime.substring(4+offset, 8+offset); 
            } else { 
                strMonth=exDateTime.substring(Sp1+1, Sp2); 
                strDate=exDateTime.substring(0, Sp1); 
                strYear=exDateTime.substring(Sp2+1, Sp2+5); 
            } 
        } else if ((Cal.Format.toUpperCase()=="MMDDYYYY") || (Cal.Format.toUpperCase()=="MMMDDYYYY")) { 
            if (DateSeparator=="") { 
                strMonth=exDateTime.substring(0, 2+offset); 
                strDate=exDateTime.substring(2+offset, 4+offset); 
                strYear=exDateTime.substring(4+offset, 8+offset); 
            } else { 
                strMonth=exDateTime.substring(0, Sp1); 
                strDate=exDateTime.substring(Sp1+1, Sp2); 
                strYear=exDateTime.substring(Sp2+1, Sp2+5); 
            } 

        } else if ((Cal.Format.toUpperCase()=="YYYYMMDD") || (Cal.Format.toUpperCase()=="YYYYMMMDD")) { 
            if (DateSeparator=="") { 
                strMonth=exDateTime.substring(4, 6+offset); 
                strDate=exDateTime.substring(6+offset, 8+offset); 
                strYear=exDateTime.substring(0, 4); 
            } else { 
                strMonth=exDateTime.substring(Sp1+1, Sp2); 
                strDate=exDateTime.substring(Sp2+1, Sp2+3); 
                strYear=exDateTime.substring(0, Sp1); 
            } 
        } 

        if (isNaN(strMonth)) 
            intMonth=Cal.GetMonthIndex(strMonth); 
        else 
            intMonth=parseInt(strMonth, 10)-1;     
        if ((parseInt(intMonth, 10)>=0) && (parseInt(intMonth, 10)<12)) 
            Cal.Month=intMonth; 
        //end parse month 
        //parse Date 
        if ((parseInt(strDate, 10)<=Cal.GetMonDays()) && (parseInt(strDate, 10)>=1)) 
            Cal.Date=strDate; 
        //end parse Date 
        //parse year 
        YearPattern=/^\d{4}$/; 
        if (YearPattern.test(strYear)) 
            Cal.Year=parseInt(strYear, 10); 
        //end parse year 
        //parse time 
        if (Cal.ShowTime==true) { 
            //parse AM or PM 
            if (TimeMode==12) { 
                strAMPM=exDateTime.substring(exDateTime.length-2, exDateTime.length) 
                Cal.AMorPM=strAMPM; 
            } 
            tSp1=exDateTime.indexOf(":", 0) 
            tSp2=exDateTime.indexOf(":", (parseInt(tSp1)+1)); 
            if (tSp1 > 0) { 
                strHour=exDateTime.substring(tSp1, (tSp1)-2); 
                Cal.SetHour(strHour); 
                strMinute=exDateTime.substring(tSp1+1, tSp1+3); 
                Cal.SetMinute(strMinute); 
                strSecond=exDateTime.substring(tSp2+1, tSp2+3); 
                Cal.SetSecond(strSecond); 
            } 
            //window.status=strHour+":"+strMinute+":"+strSecond; 
        }     
    } 
    selDate=new Date(Cal.Year, Cal.Month, Cal.Date);//version 1.7 
    winCal=window.open("", "DateTimePicker", "toolbar=0, status=0, menubar=0, fullscreen=no, width=200, height=245, resizable=0, top="+cnTop+", left="+cnLeft); 
    RenderCal(); 
    winCal.focus(); 
} 

function RenderCal() { 
    var vCalHeader; 
    var vCalData; 
    var vCalTime; 
    var i; 
    var j; 
    var SelectStr; 
    var vDayCount=0; 
    var vFirstDay; 

    winCal.document.open(); 
    winCal.document.writeln("<html><head><title>"+WindowTitle+"</title>"); 
    winCal.document.writeln("<script>var winMain=window.opener;</script>");//winMain is window that open calendar window. 
    winCal.document.writeln("</head><body background='"+ThemeBg+"' link="+FontColor+" vlink="+FontColor+"><form name='Calendar'>"); 

    vCalHeader="<table border=0 cellpadding=1 cellspacing=1 width='100%' align=\"center\" valign=\"top\">\n"; 
    //Table for Month & Year Selector 
    vCalHeader+="<tr>\n<td colspan='7'><table border=0 width='100%' cellpadding=0 cellspacing=0><tr>\n"; 

    //******************Month selector in dropdown list************************ 
    if (Cal.Scroller=="DROPDOWN") { 
        vCalHeader+="<td align='left'><select name=\"MonthSelector\" onChange=\"javascript:winMain.Cal.SwitchMth(this.selectedIndex);winMain.RenderCal();\">\n"; 
        for (i = 0; i < 12; i++) { 
            if (i==Cal.Month) 
                SelectStr="Selected"; 
            else 
                SelectStr="";     
            vCalHeader+="<option "+SelectStr+" value >"+MonthName[i]+"\n"; 
        } 
        vCalHeader+="</select></td>"; 
        //Year selector 
        vCalHeader+="\n<td align='right'><a href=\"javascript:winMain.Cal.DecYear();winMain.RenderCal()\"><b><font color=\""+YrSelColor+"\">&lt</font></b></a><font face=\"Verdana\" color=\""+YrSelColor+"\" size=2><b> "+Cal.Year+" </b></font><a href=\"javascript:winMain.Cal.IncYear();winMain.RenderCal()\"><b><font color=\""+YrSelColor+"\">&gt</font></b></a></td></tr></table></td>\n";     
        vCalHeader+="</tr>"; 
    } 
    //******************End Month selector in dropdown list********************* 
    //******************Month selector in arrow********************************* 
    else if (Cal.Scroller=="ARROW") { 
        vCalHeader+="<td align='center'><a href='javascript:winMain.Cal.DecYear();winMain.RenderCal();'>- </a></td>";//Year scroller (decrease 1 year) 
        vCalHeader+="<td align='center'><a href='javascript:winMain.Cal.DecMonth();winMain.RenderCal();'>&lt;</a></td>";//Month scroller (decrease 1 month) 
        vCalHeader+="<td align='center' width='70%'><font face='Verdana' size='2' color='"+YrSelColor+"'><b>"+Cal.GetMonthName(ShowLongMonth)+" "+Cal.Year+"</b></font></td>"//Month and Year 
        vCalHeader+="<td align='center'><a href='javascript:winMain.Cal.IncMonth();winMain.RenderCal();'>&gt;</a></td>";//Month scroller (increase 1 month) 
        vCalHeader+="<td align='center'><a href='javascript:winMain.Cal.IncYear();winMain.RenderCal();'>+</a></td>";//Year scroller (increase 1 year) 
        vCalHeader+="</tr></table></td></tr>" 
    } 
    //******************End Month selector in arrow****************************** 
    //Calendar header shows Month and Year 
    if ((ShowMonthYear)&&(Cal.Scroller=="DROPDOWN")) 
        vCalHeader+="<tr><td colspan='7'><font face='Verdana' size='2' align='center' color='"+MonthYearColor+"'><b>"+Cal.GetMonthName(ShowLongMonth)+" "+Cal.Year+"</b></font></td></tr>\n"; 
    //Week day header 
    vCalHeader+="<tr bgcolor="+WeekHeadColor+">"; 
    var WeekDayName=new Array();//Added version 1.7 
    if (MondayFirstDay==true) 
        WeekDayName=WeekDayName2; 
    else 
        WeekDayName=WeekDayName1; 
    for (i=0;i<7;i++) { 
        vCalHeader+="<td align='center'><font face='Verdana' size='2'>"+WeekDayName[i].substr(0, WeekChar)+"</font></td>"; 
    } 
     
    vCalHeader+="</tr>";     
    winCal.document.write(vCalHeader); 
    //Calendar detail 
    CalDate=new Date(Cal.Year, Cal.Month); 
    CalDate.setDate(1); 
    vFirstDay=CalDate.getDay(); 
    //Added version 1.7 
    if (MondayFirstDay==true) 
    { 
        vFirstDay -= 1; 
        if (vFirstDay==-1) 
            vFirstDay=6; 
    } 
    //Added version 1.7 
    vCalData="<tr>"; 
    for (i=0;i<vFirstDay;i++) 
    { 
        vCalData=vCalData+GenCell(); 
        vDayCount=vDayCount+1; 
    } 
    //Added version 1.7 
    for (j=1;j<=Cal.GetMonDays();j++) 
    { 
        var strCell; 
        vDayCount=vDayCount+1; 
        if ((j==dtToday.getDate())&&(Cal.Month==dtToday.getMonth())&&(Cal.Year==dtToday.getFullYear())) 
            strCell=GenCell(j, true, TodayColor);//Highlight today's date 
        else 
        { 
            if ((j==selDate.getDate())&&(Cal.Month==selDate.getMonth())&&(Cal.Year==selDate.getFullYear()))//modified version 1.7 
            { 
                strCell=GenCell(j, true, SelDateColor); 
            } 
            else 
            {     
                if (MondayFirstDay==true) 
                { 
                    if (vDayCount%7==0) 
                        strCell=GenCell(j, false, SundayColor); 
                    else if ((vDayCount+1)%7==0) 
                        strCell=GenCell(j, false, SaturdayColor); 
                    else 
                        strCell=GenCell(j, null, WeekDayColor);                     
                }  
                else 
                { 
                    if (vDayCount%7==0) 
                        strCell=GenCell(j, false, SaturdayColor); 
                    else if ((vDayCount+6)%7==0) 
                        strCell=GenCell(j, false, SundayColor); 
                    else 
                        strCell=GenCell(j, null, WeekDayColor); 
                } 
            }         
        }                         
        vCalData=vCalData+strCell; 

        if((vDayCount%7==0)&&(j<Cal.GetMonDays())) 
        { 
            vCalData=vCalData+"</tr>\n<tr>"; 
        } 
    } 
    winCal.document.writeln(vCalData);     
    //Time picker 
    if (Cal.ShowTime) 
    { 
        var showHour; 
        showHour=Cal.getShowHour();     
        vCalTime="<tr>\n<td colspan='7' align='center'>"; 
        vCalTime+="<input type='text' name='hour' maxlength=2 size=1 style=\"WIDTH: 22px\" value="+showHour+" onchange=\"javascript:winMain.Cal.SetHour(this.value)\">"; 
        vCalTime+=" : "; 
        vCalTime+="<input type='text' name='minute' maxlength=2 size=1 style=\"WIDTH: 22px\" value="+Cal.Minutes+" onchange=\"javascript:winMain.Cal.SetMinute(this.value)\">"; 
        if (Cal.ShowSeconds) 
        { 
            vCalTime+=" : "; 
            vCalTime+="<input type='text' name='second' maxlength=2 size=1 style=\"WIDTH: 22px\" value="+Cal.Seconds+" onchange=\"javascript:winMain.Cal.SetSecond(this.value)\">"; 
        } 
        if (TimeMode==12) 
        { 
            var SelectAm =(Cal.AMorPM=="AM")? "Selected":""; 
            var SelectPm =(Cal.AMorPM=="PM")? "Selected":""; 

            vCalTime+="<select name=\"ampm\" onchange=\"javascript:winMain.Cal.SetAmPm(this.options[this.selectedIndex].value);\">"; 
            vCalTime+="<option "+SelectAm+" value=\"AM\">AM</option>"; 
            vCalTime+="<option "+SelectPm+" value=\"PM\">PM<option>"; 
            vCalTime+="</select>"; 
        }     
        vCalTime+="\n</td>\n</tr>"; 
        winCal.document.write(vCalTime); 
    }     
    //end time picker 
    winCal.document.writeln("\n</table>"); 
    winCal.document.writeln("</form></body></html>"); 
    winCal.document.close(); 
} 

function GenCell(pValue, pHighLight, pColor)//Generate table cell with value 
{ 
    var PValue; 
    var PCellStr; 
    var vColor; 
    var vHLstr1;//HighLight string 
    var vHlstr2; 
    var vTimeStr; 
     
    if (pValue==null) 
        PValue=""; 
    else 
        PValue=pValue; 
     
    if (pColor!=null) 
        vColor="bgcolor=\""+pColor+"\""; 
    else 
        vColor="";     
    if ((pHighLight!=null)&&(pHighLight)) 
        {vHLstr1="color='red'><b>";vHLstr2="</b>";} 
    else 
        {vHLstr1=">";vHLstr2="";}     
     
    if (Cal.ShowTime) 
    { 
        vTimeStr="winMain.document.getElementById('"+Cal.Ctrl+"').value+=' '+"+"winMain.Cal.getShowHour()"+"+':'+"+"winMain.Cal.Minutes"; 
        if (Cal.ShowSeconds) 
            vTimeStr+="+':'+"+"winMain.Cal.Seconds"; 
        if (TimeMode==12) 
            vTimeStr+="+' '+winMain.Cal.AMorPM"; 
    }     
    else 
        vTimeStr="";         
    PCellStr="<td "+vColor+" width="+CellWidth+" align='center'><font face='verdana' size='2'"+vHLstr1+"<a href=\"javascript:winMain.document.getElementById('"+Cal.Ctrl+"').value='"+Cal.FormatDate(PValue)+"';"+vTimeStr+";window.close();\">"+PValue+"</a>"+vHLstr2+"</font></td>"; 
    return PCellStr; 
} 

function Calendar(pDate, pCtrl) 
{ 
    //Properties 
    this.Date=pDate.getDate();//selected date 
    this.Month=pDate.getMonth();//selected month number 
    this.Year=pDate.getFullYear();//selected year in 4 digits 
    this.Hours=pDate.getHours();     
     
    if (pDate.getMinutes()<10) 
        this.Minutes="0"+pDate.getMinutes(); 
    else 
        this.Minutes=pDate.getMinutes(); 
     
    if (pDate.getSeconds()<10) 
        this.Seconds="0"+pDate.getSeconds(); 
    else         
        this.Seconds=pDate.getSeconds(); 
         
    this.MyWindow=winCal; 
    this.Ctrl=pCtrl; 
    this.Format="ddMMyyyy"; 
    this.Separator=DateSeparator; 
    this.ShowTime=false; 
    this.Scroller="DROPDOWN"; 
    if (pDate.getHours()<12) 
        this.AMorPM="AM"; 
    else 
        this.AMorPM="PM"; 
    this.ShowSeconds=true;         
} 

function GetMonthIndex(shortMonthName) 
{ 
    for (i=0;i<12;i++) 
    { 
        if (MonthName[i].substring(0, 3).toUpperCase()==shortMonthName.toUpperCase()) 
        {    return i;} 
    } 
} 
Calendar.prototype.GetMonthIndex=GetMonthIndex; 

function IncYear() 
{    Cal.Year++;} 
Calendar.prototype.IncYear=IncYear; 

function DecYear() 
{    Cal.Year--;} 
Calendar.prototype.DecYear=DecYear; 

function IncMonth() 
{     
    Cal.Month++; 
    if (Cal.Month>=12) 
    { 
        Cal.Month=0; 
        Cal.IncYear(); 
    } 
} 
Calendar.prototype.IncMonth=IncMonth; 

function DecMonth() 
{     
    Cal.Month--; 
    if (Cal.Month<0) 
    { 
        Cal.Month=11; 
        Cal.DecYear(); 
    } 
} 
Calendar.prototype.DecMonth=DecMonth; 
     
function SwitchMth(intMth) 
{    Cal.Month=intMth;} 
Calendar.prototype.SwitchMth=SwitchMth; 

function SetHour(intHour) 
{     
    var MaxHour; 
    var MinHour; 
    if (TimeMode==24) 
    {    MaxHour=23;MinHour=0} 
    else if (TimeMode==12) 
    {    MaxHour=12;MinHour=1} 
    else 
        alert("TimeMode can only be 12 or 24");         
    var HourExp=new RegExp("^\\d\\d"); 
    var SingleDigit=new RegExp("^\\d"); 
    if (SingleDigit.test(intHour)) 
        intHour="0"+intHour; 
    if (HourExp.test(intHour) && (parseInt(intHour, 10)<=MaxHour) && (parseInt(intHour, 10)>=MinHour)) 
    {     
        if ((TimeMode==12) && (Cal.AMorPM=="PM")) 
        { 
            if (parseInt(intHour, 10)==12) 
                Cal.Hours=12; 
            else     
                Cal.Hours=parseInt(intHour, 10)+12; 
        }     
        else if ((TimeMode==12) && (Cal.AMorPM=="AM")) 
        { 
            if (intHour==12) 
                intHour-=12; 
            Cal.Hours=parseInt(intHour, 10); 
        } 
        else if (TimeMode==24) 
            Cal.Hours=parseInt(intHour, 10);     
    } 
} 
Calendar.prototype.SetHour=SetHour; 

function SetMinute(intMin) 
{ 
    var MinExp=new RegExp("^\\d\\d$"); 
    if (MinExp.test(intMin) && (intMin<60)) 
        Cal.Minutes=intMin; 
} 
Calendar.prototype.SetMinute=SetMinute; 

function SetSecond(intSec) 
{     
    var SecExp=new RegExp("^\\d\\d$"); 
    if (SecExp.test(intSec) && (intSec<60)) 
        Cal.Seconds=intSec; 
} 
Calendar.prototype.SetSecond=SetSecond; 

function SetAmPm(pvalue) 
{ 
    this.AMorPM=pvalue; 
    if (pvalue=="PM") 
    { 
        this.Hours=(parseInt(this.Hours, 10))+12; 
        if (this.Hours==24) 
            this.Hours=12; 
    }     
    else if (pvalue=="AM") 
        this.Hours-=12;     
} 
Calendar.prototype.SetAmPm=SetAmPm; 

function getShowHour() 
{ 
    var finalHour; 
    if (TimeMode==12) 
    { 
        if (parseInt(this.Hours, 10)==0) 
        { 
            this.AMorPM="AM"; 
            finalHour=parseInt(this.Hours, 10)+12;     
        } 
        else if (parseInt(this.Hours, 10)==12) 
        { 
            this.AMorPM="PM"; 
            finalHour=12; 
        }         
        else if (this.Hours>12) 
        { 
            this.AMorPM="PM"; 
            if ((this.Hours-12)<10) 
                finalHour="0"+((parseInt(this.Hours, 10))-12); 
            else 
                finalHour=parseInt(this.Hours, 10)-12;     
        } 
        else 
        { 
            this.AMorPM="AM"; 
            if (this.Hours<10) 
                finalHour="0"+parseInt(this.Hours, 10); 
            else 
                finalHour=this.Hours;     
        } 
    } 
    else if (TimeMode==24) 
    { 
        if (this.Hours<10) 
            finalHour="0"+parseInt(this.Hours, 10); 
        else     
            finalHour=this.Hours; 
    }     
    return finalHour;     
}                 
Calendar.prototype.getShowHour=getShowHour;         

function GetMonthName(IsLong) 
{ 
    var Month=MonthName[this.Month]; 
    if (IsLong) 
        return Month; 
    else 
        return Month.substr(0, 3); 
} 
Calendar.prototype.GetMonthName=GetMonthName; 

function GetMonDays()//Get number of days in a month 
{ 
    var DaysInMonth=[31,  28,  31,  30,  31,  30,  31,  31,  30,  31,  30,  31]; 
    if (this.IsLeapYear()) 
    { 
        DaysInMonth[1]=29; 
    }     
    return DaysInMonth[this.Month];     
} 
Calendar.prototype.GetMonDays=GetMonDays; 

function IsLeapYear() 
{ 
    if ((this.Year%4)==0) 
    { 
        if ((this.Year%100==0) && (this.Year%400)!=0) 
        { 
            return false; 
        } 
        else 
        { 
            return true; 
        } 
    } 
    else 
    { 
        return false; 
    } 
} 
Calendar.prototype.IsLeapYear=IsLeapYear; 

function FormatDate(pDate) 
{ 
    var MonthDigit=this.Month+1; 
    if (PrecedeZero==true) 
    { 
        if (pDate<10) 
            pDate="0"+pDate; 
        if (MonthDigit<10) 
            MonthDigit="0"+MonthDigit; 
    } 

    if (this.Format.toUpperCase()=="DDMMYYYY") 
        return (pDate+DateSeparator+MonthDigit+DateSeparator+this.Year); 
    else if (this.Format.toUpperCase()=="DDMMMYYYY") 
        return (pDate+DateSeparator+this.GetMonthName(false)+DateSeparator+this.Year); 
    else if (this.Format.toUpperCase()=="MMDDYYYY") 
        return (MonthDigit+DateSeparator+pDate+DateSeparator+this.Year); 
    else if (this.Format.toUpperCase()=="MMMDDYYYY") 
        return (this.GetMonthName(false)+DateSeparator+pDate+DateSeparator+this.Year); 
    else if (this.Format.toUpperCase()=="YYYYMMDD") 
        return (this.Year+DateSeparator+MonthDigit+DateSeparator+pDate); 
    else if (this.Format.toUpperCase()=="YYYYMMMDD") 
        return (this.Year+DateSeparator+this.GetMonthName(false)+DateSeparator+pDate);     
    else                     
        return (pDate+DateSeparator+(this.Month+1)+DateSeparator+this.Year); 
} 
Calendar.prototype.FormatDate=FormatDate;    


