
function fun1(frm) {
    show_calendar3('document.' + frm.id + '.close_date', "");
    //show_calendar3('document.form5183.close_date', "");
    frm.close_date.value = frm.close_date.value.substring(0, 10);
}

function fun2(frm) {
    show_calendar3('document.' + frm.id + '.award_date', "");
    frm.award_date.value = frm.award_date.value.substring(0, 10);
}

function fun3(frm) {
    show_calendar3('document.' + frm.id + '.delivery_date', "");
    frm.delivery_date.value = frm.delivery_date.value.substring(0, 10);
}

function fun4(frm) {
    show_calendar3('document.' + frm.id + '.start_date', "");
    frm.start_date.value = frm.start_date.value.substring(0, 10);
}

function fun5(frm) {
    show_calendar3('document.' + frm.id + '.commencement_date', "");
    frm.commencement_date.value = frm.commencement_date.value.substring(0, 10);
}

function chkdate(strFieldName) {
    var strDatestyle = "US"; //United States date style

    var strDate;
    var strDateArray;
    var strDay;
    var strMonth;
    var strYear;
    var intday;
    var intMonth;
    var intYear;
    var booFound = false;

    var strSeparatorArray = new Array("/");
    var intElementNr;
    var err = 0;

    strDate = strFieldName.value;

    if (strDate.length < 1)
        {
        return true;
        }

    strDateArray = strDate.split("/")

    if (strDateArray.length != 3)
        {
        err = 1;

        return false;
        }

    else
        {
        strDay = strDateArray[1];

        strMonth = strDateArray[0];
        strYear = strDateArray[2];
        }

    if (strYear.length == 2)
        {
        strYear = '20' + strYear;
        }

    intday = parseInt(strDay, 10);

    if (isNaN(intday))
        {
        err = 2;

        return false;
        }

    intMonth = parseInt(strMonth, 10);

    if (isNaN(intMonth))
        {
        err = 3;

        return false;
        }

    intYear = parseInt(strYear, 10);

    if (isNaN(intYear))
        {
        err = 4;

        return false;
        }

    if (intMonth > 12 || intMonth < 1)
        {
        err = 5;

        return false;
        }

    if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1))
        {
        err = 6;

        return false;
        }

    if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1))
        {
        err = 7;

        return false;
        }

    if (intMonth == 2)
        {
        if (intday < 1)
            {
            err = 8;

            return false;
            }

        if (LeapYear(intYear) == true)
            {
            if (intday > 29)
                {
                err = 9;

                return false;
                }
            }

        else
            {
            if (intday > 28)
                {
                err = 10;

                return false;
                }
            }
        }

    return true;
    }

function LeapYear(intYear)
    {
    if (intYear % 100 == 0)
        {
        if (intYear % 400 == 0)
            {
            return true;
            }
        }

    else
        {
        if ((intYear % 4) == 0)
            {
            return true;
            }
        }

    return false;
    }

	

function show_calendar3(str_target, str_datetime)
    {
    var arr_months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

    var week_days = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
    var n_weekstart = 1; // day week starts from (normally 0 or 1)

    var dt_datetime = (str_datetime == null || str_datetime == "" ? new Date() : str2dt3(str_datetime));
    var dt_prev_month = new Date(dt_datetime);
    dt_prev_month.setMonth(dt_datetime.getMonth() - 1);
    var dt_next_month = new Date(dt_datetime);
    dt_next_month.setMonth(dt_datetime.getMonth() + 1);
    var dt_firstday = new Date(dt_datetime);
    dt_firstday.setDate(1);
    dt_firstday.setDate(1 - (7 + dt_firstday.getDay() - n_weekstart) % 7);
    var dt_lastday = new Date(dt_next_month);
    dt_lastday.setDate(0);

    // html generation (feel free to tune it for your particular application)
    // print calendar header
    var str_buffer = new String(
                         "<html>\n" + "<head>\n" + "<title>Calendar</title>\n" + "</head>\n" + "<body bgcolor=\"#2E2E2E\">\n" + "<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n" + "<tr><td bgcolor=\"#7f7f80\">\n" + "<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n" + "<tr>\n	<td bgcolor=\"#3A3A3A\">" + "<a href=\"javascript:window.opener.show_calendar3('" + str_target + "', '" + dt2dtstr3(dt_prev_month) + "'+document.cal.time.value);\">"
                             + "<img src=\"/ows/images/common/prev.gif\" width=\"16\" height=\"16\" border=\"0\" alt=\"previous month\"></a></td>\n" + "<td bgcolor=\"#3A3A3A\" colspan=\"5\">" + "<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">" + arr_months[dt_datetime.getMonth()] + " " + dt_datetime.getFullYear() + "</font></td>\n" + "<td bgcolor=\"#3A3A3A\" align=\"right\">" + "<a href=\"javascript:window.opener.show_calendar3('" + str_target + "', '"
                             + dt2dtstr3(dt_next_month) + "'+document.cal.time.value);\">" + "<img src=\"/ows/images/common/next.gif\" width=\"16\" height=\"16\" border=\"0\"" + " alt=\"next month\"></a></td>\n</tr>\n");

    var dt_current_day = new Date(dt_firstday);
    // print weekdays titles
    str_buffer += "<tr>\n";

    for (var n = 0; n < 7; n++)
        //str_buffer += "	<td bgcolor=\"#FF9900\'>"+
        str_buffer += "<td bgcolor=\"#666666\">" + "<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">" + week_days[(n_weekstart + n) % 7] + "</font></td>\n";

    // print calendar table
    str_buffer += "</tr>\n";

    while (dt_current_day.getMonth() == dt_datetime.getMonth() || dt_current_day.getMonth() == dt_firstday.getMonth())
        {
        // print row heder
        str_buffer += "<tr>\n";

        for (var n_current_wday = 0; n_current_wday < 7; n_current_wday++)
            {
            if (dt_current_day.getDate() == dt_datetime.getDate() && dt_current_day.getMonth() == dt_datetime.getMonth())
                // print current date
                str_buffer += "	<td bgcolor=\"#FFB6C1\" align=\"right\">";

            else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
                // weekend days
                str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\">";

            else
                // print working days of current month
                str_buffer += "	<td bgcolor=\"white\" align=\"right\">";

            if (dt_current_day.getMonth() == dt_datetime.getMonth())
                // print days of current month
                str_buffer += "<a href=\"javascript:window.opener." + str_target + ".value='" + dt2dtstr3(dt_current_day) + "'+document.cal.time.value; window.close();\">" + "<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";

            else
                // print days of other months
                str_buffer += "<a href=\"javascript:window.opener." + str_target + ".value='" + dt2dtstr3(dt_current_day) + "'+document.cal.time.value; window.close();\">" + "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">"; //+document.cal.time.value

            str_buffer += dt_current_day.getDate() + "</font></a></td>\n";
            dt_current_day.setDate(dt_current_day.getDate() + 1);
            //alert("disp"+str_buffer);
            }

        // print row footer
        str_buffer += "</tr>\n";
        }

    // print calendar footer
    str_buffer += "<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#3A3A3A\">" + "<font color=\"White\" face=\"tahoma, verdana\" size=\"2\">" + "<input type=\"hidden\" name=\"time\" value=\"" + dt2tmstr3(dt_datetime) + "\" size=\"8\" maxlength=\"8\">" + "</font></td></tr>\n</form>\n" + "</table>\n" + "</tr>\n</td>\n</table>" + "</body>\n" + "</html>\n";

    var vWinCal = window.open("", "Calendar", "width=200,height=250,status=no,resizable=yes,top=200,left=200");
    vWinCal.opener = self;
    var calc_doc = vWinCal.document;
    calc_doc.write(str_buffer);
    calc_doc.close();
    }

// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt3(str_datetime)
    {
    var re_date = /^(\d+)\/(\d+)\/(\d+)\s$/;

    //var re_date = /^(\d+)\/(\d+)\/(\d+)\s+(\d+)\:(\d+)\:(\d+)$/;
    if (!re_date.exec(str_datetime))
        return alert("Invalid Datetime format: " + str_datetime);

    return ( new Date(RegExp.$3, RegExp.$1 - 1, RegExp.$2, RegExp.$4, RegExp.$5, RegExp.$6));
    }

function dt2dtstr3(dt_datetime)
    {
    // return ( new String((dt_datetime.getMonth() + 1) + "/" + dt_datetime.getFullYear() + " "));
    return ( new String((dt_datetime.getMonth() + 1) + "/" + dt_datetime.getDate() + "/" + dt_datetime.getFullYear() + " "));
    }

function dt2tmstr3(dt_datetime)
    {
    //return (new String (dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));commented by srikanth
    return (""); //by srikanth
    }