/*calender funtionalities---*/ 

var weekend = [0,6];
var weekendColor = "#e0e0e0";
var fontface = "Verdana";
var fontsize = 2;

var gNow = new Date();
var ggWinCal;
isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;
isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;

Calendar.Months = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];

Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

function Calendar(p_item, p_WinCal, p_month, p_year, p_format) {
        if ((p_month == null) && (p_year == null))        return;

        if (p_WinCal == null)
                this.gWinCal = ggWinCal;
        else
                this.gWinCal = p_WinCal;

        if (p_month == null) {
                this.gMonthName = null;
                this.gMonth = null;
                this.gYearly = true;
        } else {
                this.gMonthName = Calendar.get_month(p_month);
                this.gMonth = new Number(p_month);
                this.gYearly = false;
        }

        this.gYear = p_year;
        this.gFormat = p_format;
        this.gBGColor = "#F5F9FC";
        this.gFGColor = "black";
        this.gTextColor = "black";
        this.gHeaderColor = "black";
        this.gReturnItem = p_item;
}

Calendar.get_month = Calendar_get_month;
Calendar.get_daysofmonth = Calendar_get_daysofmonth;
Calendar.calc_month_year = Calendar_calc_month_year;
Calendar.print = Calendar_print;

function Calendar_get_month(monthNo) {
        return Calendar.Months[monthNo];
}

function Calendar_get_daysofmonth(monthNo, p_year) {

        if ((p_year % 4) == 0) {
                if ((p_year % 100) == 0 && (p_year % 400) != 0)
                        return Calendar.DOMonth[monthNo];

                return Calendar.lDOMonth[monthNo];
        } else
                return Calendar.DOMonth[monthNo];
}

function Calendar_calc_month_year(p_Month, p_Year, incr) {

        var ret_arr = new Array();

        if (incr == -1) {

                if (p_Month == 0) {
                        ret_arr[0] = 11;
                        ret_arr[1] = parseInt(p_Year) - 1;
                }
                else {
                        ret_arr[0] = parseInt(p_Month) - 1;
                        ret_arr[1] = parseInt(p_Year);
                }
        } else if (incr == 1) {

                if (p_Month == 11) {
                        ret_arr[0] = 0;
                        ret_arr[1] = parseInt(p_Year) + 1;
                }
                else {
                        ret_arr[0] = parseInt(p_Month) + 1;
                        ret_arr[1] = parseInt(p_Year);
                }
        }

        return ret_arr;
}

function Calendar_print() {
        ggWinCal.print();
}

function Calendar_calc_month_year(p_Month, p_Year, incr) {

        var ret_arr = new Array();

        if (incr == -1) {

                if (p_Month == 0) {
                        ret_arr[0] = 11;
                        ret_arr[1] = parseInt(p_Year) - 1;
                }
                else {
                        ret_arr[0] = parseInt(p_Month) - 1;
                        ret_arr[1] = parseInt(p_Year);
                }
        } else if (incr == 1) {

                if (p_Month == 11) {
                        ret_arr[0] = 0;
                        ret_arr[1] = parseInt(p_Year) + 1;
                }
                else {
                        ret_arr[0] = parseInt(p_Month) + 1;
                        ret_arr[1] = parseInt(p_Year);
                }
        }

        return ret_arr;
}


new Calendar();

Calendar.prototype.getMonthlyCalendarCode = function() {
        var vCode = "";
        var vHeader_Code = "";
        var vData_Code = "";


        vCode = vCode + "<TABLE BORDER=1 BGCOLOR=\"" + this.gBGColor + "\">";

        vHeader_Code = this.cal_header();
        vData_Code = this.cal_data();
        vCode = vCode + vHeader_Code + vData_Code;

        vCode = vCode + "</TABLE>";

        return vCode;
}

Calendar.prototype.show = function() {
        var vCode = "";

        this.gWinCal.document.open();


        this.wwrite("<html>");
        this.wwrite("<head><title>Calendar</title>");
        this.wwrite("</head>");

        this.wwrite("<body bgcolor='#F5F9FC'" +
                "link=\"" + this.gLinkColor + "\" " +
                "vlink=\"" + this.gLinkColor + "\" " +
                "alink=\"" + this.gLinkColor + "\" " +
                "text=\"" + this.gTextColor + "\">");
        this.wwriteA("<FONT FACE='" + fontface + "' SIZE=2><B>");
        this.wwriteA(this.gMonthName + " " + this.gYear);
        this.wwriteA("</B><BR>");

        var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1);
        var prevMM = prevMMYYYY[0];
        var prevYYYY = prevMMYYYY[1];

        var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1);
        var nextMM = nextMMYYYY[0];
        var nextYYYY = nextMMYYYY[1];

        this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#F5F9FC'><TR><TD ALIGN=center>");
        this.wwrite("<FONT FACE='" + fontface + "' SIZE=1><A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)-10) + "', '" + this.gFormat + "'" +
                ");" +
                "\">Year(-10)<\/A></FONT></TD><TD ALIGN=center>");
        this.wwrite("<FONT FACE='" + fontface + "' SIZE=1><A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)-1) + "', '" + this.gFormat + "'" +
                ");" +
                "\">Year(-1)<\/A></FONT></TD><TD ALIGN=center>");
        this.wwrite("<FONT FACE='" + fontface + "' SIZE=1><A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + prevMM + "', '" + prevYYYY + "', '" + this.gFormat + "'" +
                ");" +
                "\">Month(-1)<\/A></FONT></TD><TD ALIGN=center>");
        this.wwrite("<FONT FACE='" + fontface + "' SIZE=1><A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + nextMM + "', '" + nextYYYY + "', '" + this.gFormat + "'" +
                ");" +
                "\">Month(+1)<\/A></FONT></TD><TD ALIGN=center>");
        this.wwrite("<FONT FACE='" + fontface + "' SIZE=1><A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)+1) + "', '" + this.gFormat + "'" +
                ");" +
                "\">Year(+1)<\/A></FONT></TD><TD ALIGN=center>");
        this.wwrite("<FONT FACE='" + fontface + "' SIZE=1><A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)+10) + "', '" + this.gFormat + "'" +
                ");" +
                "\">Year(+10)<\/A></FONT></TD></TR></TABLE><BR>");
        this.wwrite("<center>");
        vCode = this.getMonthlyCalendarCode();
        this.wwrite(vCode);

        this.wwrite("</font></body></html>");
        this.gWinCal.document.close();
}

Calendar.prototype.showY = function() {
        var vCode = "";
        var i;
        var vr, vc, vx, vy;
        var vxf = 285;
        var vyf = 200;
        var vxm = 10;
        var vym;
        if (isIE)        vym = 75;
        else if (isNav)        vym = 25;

        this.gWinCal.document.open();

        this.wwrite("<html>");
        this.wwrite("<head><title>Calendar</title>");
        this.wwrite("<style type='text/css'>\n<!--");
        for (i=0; i<12; i++) {
                vc = i % 3;
                if (i>=0 && i<= 2)        vr = 0;
                if (i>=3 && i<= 5)        vr = 1;
                if (i>=6 && i<= 8)        vr = 2;
                if (i>=9 && i<= 11)        vr = 3;

                vx = parseInt(vxf * vc) + vxm;
                vy = parseInt(vyf * vr) + vym;

                this.wwrite(".lclass" + i + " {position:absolute;top:" + vy + ";left:" + vx + ";}");
        }
        this.wwrite("-->\n</style>");
        this.wwrite("</head>");

        this.wwrite("<body bgcolor='#F5F9FC'" +
                "link=\"" + this.gLinkColor + "\" " +
                "vlink=\"" + this.gLinkColor + "\" " +
                "alink=\"" + this.gLinkColor + "\" " +
                "text=\"" + this.gTextColor + "\">");
        this.wwrite("<FONT FACE='" + fontface + "' SIZE=2><B>");
        this.wwrite("Year : " + this.gYear);
        this.wwrite("</B><BR>");


        var prevYYYY = parseInt(this.gYear) - 1;
        var nextYYYY = parseInt(this.gYear) + 1;

        this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#F5F9FC'><TR><TD ALIGN=center>");
        this.wwrite("[<A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', null, '" + prevYYYY + "', '" + this.gFormat + "'" +
                ");" +
                "\" alt='Prev Year'><<<\/A>]</TD><TD ALIGN=center>");
        this.wwrite("[<A HREF=\"javascript:window.print();\">Print</A>]</TD><TD ALIGN=center>");
        this.wwrite("[<A HREF=\"" +
                "javascript:window.opener.Build(" +
                "'" + this.gReturnItem + "', null, '" + nextYYYY + "', '" + this.gFormat + "'" +
                ");" +
                "\">>><\/A>]</TD></TR></TABLE><BR>");


        var j;
        for (i=11; i>=0; i--) {
                if (isIE)
                        this.wwrite("<DIV ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");
                else if (isNav)
                        this.wwrite("<LAYER ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");

                this.gMonth = i;
                this.gMonthName = Calendar.get_month(this.gMonth);
                vCode = this.getMonthlyCalendarCode();
                this.wwrite(this.gMonthName + "/" + this.gYear + "<BR>");
                this.wwrite(vCode);

                if (isIE)
                        this.wwrite("</DIV>");
                else if (isNav)
                        this.wwrite("</LAYER>");
        }

        this.wwrite("</font><BR></body></html>");
        this.gWinCal.document.close();
}

Calendar.prototype.wwrite = function(wtext) {
        this.gWinCal.document.writeln(wtext);
}

Calendar.prototype.wwriteA = function(wtext) {
        this.gWinCal.document.write(wtext);
}

Calendar.prototype.cal_header = function() {
        var vCode = "";

        vCode = vCode + "<TR>";
        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Sun</B></FONT></TD>";
        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Mon</B></FONT></TD>";
        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Tue</B></FONT></TD>";
        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Wed</B></FONT></TD>";
        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Thu</B></FONT></TD>";
        vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Fri</B></FONT></TD>";
        vCode = vCode + "<TD WIDTH='16%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Sat</B></FONT></TD>";
        vCode = vCode + "</TR>";

        return vCode;
}

Calendar.prototype.cal_data = function() {
        var vDate = new Date();
        vDate.setDate(1);
        vDate.setMonth(this.gMonth);
        vDate.setFullYear(this.gYear);

        var vFirstDay=vDate.getDay();
        var vDay=1;
        var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear);
        var vOnLastDay=0;
        var vCode = "";


        vCode = vCode + "<TR>";
        for (i=0; i<vFirstDay; i++) {
                vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(i) + "><FONT SIZE='2' FACE='" + fontface + "'> </FONT>&nbsp;</TD>";
        }

        for (j=vFirstDay; j<7; j++) {
        vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>&nbsp;" +
                        "<A HREF='#' " +
                                "onClick=\"self.opener.document." + this.gReturnItem + ".value='" +
                                this.format_data(vDay) +
                                "';window.close();\">" +
                                this.format_day(vDay) +
                        "</A>" +
                        "</FONT></TD>";
                vDay=vDay + 1;
        }
        vCode = vCode + "</TR>";

        for (k=2; k<7; k++) {
                vCode = vCode + "<TR>";

                for (j=0; j<7; j++) {
                        vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>&nbsp;" +
                                "<A HREF='#' " +
                                        "onClick=\"self.opener.document." + this.gReturnItem + ".value='" +
                                        this.format_data(vDay) +
                                        "';window.close();\">" +
                                this.format_day(vDay) +
                                "</A>" +
                                "</FONT></TD>";
                        vDay=vDay + 1;

                        if (vDay > vLastDay) {
                                vOnLastDay = 1;
                                break;
                        }
                }

                if (j == 6)
                        vCode = vCode + "</TR>";
                if (vOnLastDay == 1)
                        break;
        }

        for (m=1; m<(7-j); m++) {
                if (this.gYearly)
                        vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +
                        ">&nbsp;<FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'> </FONT></TD>";
                else
                        vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +
                        ">&nbsp;<FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'>" + m + "</FONT></TD>";
        }

        return vCode;
}

Calendar.prototype.format_day = function(vday) {
        var vNowDay = gNow.getDate();
        var vNowMonth = gNow.getMonth();
        var vNowYear = gNow.getFullYear();

        if (vday == vNowDay && this.gMonth == vNowMonth && this.gYear == vNowYear)
                return ("<FONT COLOR=\"RED\"><B>" + vday + "</B></FONT>");
        else
                return (vday);
}

Calendar.prototype.write_weekend_string = function(vday) {
        var i;

        for (i=0; i<weekend.length; i++) {
                if (vday == weekend[i])
                        return (" BGCOLOR=\"" + weekendColor + "\"");
        }

        return "";
}

Calendar.prototype.format_data = function(p_day) {
        var vData;
        var vMonth = 1 + this.gMonth;
        vMonth = (vMonth.toString().length < 2) ? "0" + vMonth : vMonth;
        var vMon = Calendar.get_month(this.gMonth).substr(0,3).toUpperCase();
        var vFMon = Calendar.get_month(this.gMonth).toUpperCase();
        var vY4 = new String(this.gYear);
        var vY2 = new String(this.gYear.substr(2,2));
        var vDD = (p_day.toString().length < 2) ? "0" + p_day : p_day;

        switch (this.gFormat) {
                case "MM\/DD\/YYYY" :
                        vData = vMonth + "\/" + vDD + "\/" + vY4;
                        break;
                case "MM\/DD\/YY" :
                        vData = vMonth + "\/" + vDD + "\/" + vY2;
                        break;
                case "MM-DD-YYYY" :
                        vData = vMonth + "-" + vDD + "-" + vY4;
                        break;
                case "MM-DD-YY" :
                        vData = vMonth + "-" + vDD + "-" + vY2;
                        break;

                case "DD\/MON\/YYYY" :
                        vData = vDD + "\/" + vMon + "\/" + vY4;
                        break;
                case "DD\/MON\/YY" :
                        vData = vDD + "\/" + vMon + "\/" + vY2;
                        break;
                case "DD-MON-YYYY" :
                        vData = vDD + "-" + vMon + "-" + vY4;
                        break;
                case "DD-MON-YY" :
                        vData = vDD + "-" + vMon + "-" + vY2;
                        break;

                case "DD\/MONTH\/YYYY" :
                        vData = vDD + "\/" + vFMon + "\/" + vY4;
                        break;
                case "DD\/MONTH\/YY" :
                        vData = vDD + "\/" + vFMon + "\/" + vY2;
                        break;
                case "DD-MONTH-YYYY" :
                        vData = vDD + "-" + vFMon + "-" + vY4;
                        break;
                case "DD-MONTH-YY" :
                        vData = vDD + "-" + vFMon + "-" + vY2;
                        break;

                case "DD\/MM\/YYYY" :
                        vData = vDD + "\/" + vMonth + "\/" + vY4;
                        break;
                case "DD\/MM\/YY" :
                        vData = vDD + "\/" + vMonth + "\/" + vY2;
                        break;
                case "DD-MM-YYYY" :
                        vData = vDD + "-" + vMonth + "-" + vY4;
                        break;
                case "DD-MM-YY" :
                        vData = vDD + "-" + vMonth + "-" + vY2;
                        break;

                default :
                        vData = vMonth + "\/" + vDD + "\/" + vY4;
        }

        return vData;
}

function Build(p_item, p_month, p_year, p_format) {
        var p_WinCal = ggWinCal;
        gCal = new Calendar(p_item, p_WinCal, p_month, p_year, p_format);


        gCal.gBGColor="#F5F9FC";
        gCal.gLinkColor="black";
        gCal.gTextColor="black";
        gCal.gHeaderColor="#032D55";


        if (gCal.gYearly)        gCal.showY();
        else        gCal.show();
}

function show_calendar() {


        p_item = arguments[0];
        if (arguments[1] == null)
                p_month = new String(gNow.getMonth());
        else
                p_month = arguments[1];
        if (arguments[2] == "" || arguments[2] == null)
                p_year = new String(gNow.getFullYear().toString());
        else
                p_year = arguments[2];
        if (arguments[3] == null)
                p_format = "DD/MM/YYYY";
		//p_format = "MM/DD/YYYY";
        else
                p_format = arguments[3];

        vWinCal = window.open("", "Calendar",
                "width=400,height=250,status=no,resizable=no,top=200,left=200");
        vWinCal.opener = self;
        ggWinCal = vWinCal;

        Build(p_item, p_month, p_year, p_format);
}

function show_yearly_calendar(p_item, p_year, p_format) {

        if (p_year == null || p_year == "")
                p_year = new String(gNow.getFullYear().toString());
        if (p_format == null || p_format == "")
                p_format = "MM/DD/YYYY";

        var vWinCal = window.open("", "Calendar", "scrollbars=no");
        vWinCal.opener = self;
        ggWinCal = vWinCal;

        Build(p_item, null, p_year, p_format);
}

/*********/



/* checks for valid date
depending upon input date-formats,nood days in week,no of weeks in month etc.*/


var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/";
var vDateType = 3;
var vYearType = 4;
var vYearLength = 2;
var err = 0;
if(navigator.appName == "Netscape") {
if (navigator.appVersion < "5") {
isNav4 = true;
isNav5 = false;
}
else
if (navigator.appVersion > "4") {
isNav4 = false;
isNav5 = true;
   }
}
else {
isIE4 = true;
}
function DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {
vDateType = dateType;
if (vDateValue == "~") {
alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
vDateName.value = "";
vDateName.focus();
return true;
}
var whichCode = (window.Event) ? e.which : e.keyCode;
if (vDateValue.length > 8 && isNav4) {
if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
return true;
}
var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
if (alphaCheck.indexOf(vDateValue) >= 1) {
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else {
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
   }
}
if (whichCode == 8)
return false;
else {
var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
if (strCheck.indexOf(whichCode) != -1) {
if (isNav4) {
if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
alert("Invalid Date\nPlease Re-Enter ");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
if (vDateValue.length == 6 && dateCheck) {
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
if (mYear.length == 2 && vYearType == 4) {
var mToday = new Date();
var checkYear = mToday.getFullYear() + 30;
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
}
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("The Date is Invalid\nPlease Re-Enter the Date ");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
return true;
}
else {
if (vDateValue.length >= 8  && dateCheck) {
if (vDateType == 1)
{
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
}
if (vDateType == 2)
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(4,2);
var mDay = vDateName.value.substr(6,2);
vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
}
if (vDateType == 3)
{
var mMonth = vDateName.value.substr(2,2);
var mDay = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
}
var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("The Date is Invalid\nPlease Re-Enter the Date ");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("The Date is Invalid\nPlease Re-Enter the Date ");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
         }
      }
   }
}
else {
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("The Date is Invalid\nPlease Re-Enter the Date ");
vDateName.value = "";
vDateName.focus();
return true;
}
if (vDateValue.length >= 8 && dateCheck) {
if (vDateType == 1) // mm/dd/yyyy
{
var mMonth = vDateName.value.substr(0,2);
var mDay = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vDateType == 2) // yyyy/mm/dd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(5,2);
var mDay = vDateName.value.substr(8,2);
}
if (vDateType == 3) // dd/mm/yyyy
{
var mDay = vDateName.value.substr(0,2);
var mMonth = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vYearLength == 4) {
if (mYear.length < 4) {
alert("The Date is Invalid\nPlease Re-Enter the Date ");
vDateName.value = "";
vDateName.focus();
return true;
   }
}
var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (mYear.length == 2 && vYearType == 4 && dateCheck) {
var mToday = new Date();
var checkYear = mToday.getFullYear() + 30;
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 1) // mm/dd/yyyy
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 3) // dd/mm/yyyy
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
}
if (!dateValid(vDateValueCheck)) {
alert("The Date is Invalid\nPlease Re-Enter the Date ");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
return true;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (vDateType == 1) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
if (vDateType == 2) {
if (vDateValue.length == 4) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 7) {
vDateName.value = vDateValue+strSeperator;
   }
}
if (vDateType == 3) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
return true;
   }
}
if (vDateValue.length == 10&& dateCheck) {
if (!dateValid(vDateName)) {
//alert(err);
alert("The Date is Invalid\nPlease Re-Enter the Date ");
vDateName.focus();
vDateName.select();
   }
}
return false;
}
else {
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else
{
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
         }
      }
   }
}
function dateValid(objName) {
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
strDate = objName;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
if (strYear.length == 2) {
strYear = '20' + strYear;
}
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
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 dodate(e, obj1,dtformat) 
{

DOMonth  = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
LDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

    var tempstr=new String("");
    tempStr=obj1.value;
    //tempStr=tempStr.replace(/ /g, "");
    //obj1.value=tempStr;
    //alert(tempStr);

    if (document.all) {
        e = window.event;
    }

    var key;



    if (document.layers)
        key = e.which;
    if (document.all)
        key = e.keyCode;

    //alert(key);
    //alert(obj1.value.length);
    
    if ((key!=37)&&(key!=39)&&(key!=46) && (obj1.value.length!=""))
    {
    	tempStr=tempStr.replace(/ /g, "");
    	obj1.value=tempStr;
    }    

    if(((key<48)&&(key!=8)&&(key!=13)&&(key!=46)&&(key!=37)&&(key!=39&&(key!=16&&(key!=17))))||(key>57)&&(key<96)||(key>105))
     {
      if(obj1.value.length!="")
       {
      /*alert("Invalid entry")
      obj1.value=obj1.value.substring(0,obj1.value.length-1);
      obj1.focus();
      return false; */
       } 
     }	

     if ((key==8) && ((obj1.value.length==2)||(obj1.value.length==5))){
        obj1.value=obj1.value.substring(0,obj1.value.length-1);
     }
     if(obj1.value.length<10)
	 {
		
         if(dtformat==103)
    	 {
             if (isNaN(obj1.value.substring(0,2)))
	         {
				
                alert("Date should be entered in 'dd/mm/yyyy' format");
                obj1.value='';
		        return false;  
	         }
	         else
	         {
				
				if(obj1.value.substring(0,2)>31 ||obj1.value.substring(0,2)=='00')
				{
					alert("Invalid Day")
					obj1.value=obj1.value.substring(0,1)
					obj1.focus();
					return false;
				}
             }	

             if (isNaN(obj1.value.substring(3,5)))
			 {
                alert("Date should be entered in 'dd/mm/yyyy' format");
                obj1.value='';
				return false;  
			 }
	         else
			 {
				
				if(obj1.value.substring(3,5)>12 ||obj1.value.substring(3,5)=='00')
	      	    {
	      	      alert("Invalid month")
	      	      obj1.value=obj1.value.substring(0,4)
	      	      obj1.focus();
	       	      return false;
	      	    }
			 }
			 
           
	   
		}	 	

         if(dtformat==101)
         {
			if(obj1.value.substring(0,2)>12)
			{
    			alert("Invalid month")
				obj1.value=obj1.value.substring(0,1)
				obj1.focus();
				return false;
			}
			
			if(obj1.value.substring(3,5)>31)
			{
				alert("Invalid Day")
				obj1.value=obj1.value.substring(0,4)
				obj1.focus();
				return false;
			}	

         }
 	
		if((obj1.value.length==2)||(obj1.value.length==5))
        {
			if(obj1.value.substring(obj1.value.length-1,obj1.value.length)!="/")
            {
				obj1.value=obj1.value.toUpperCase() +"/";
				obj1.focus();
            }
         }
    }
     else
    {
       if(obj1.value.length>10)
         {	
          alert("Invalid Input")
          obj1.value=obj1.value.substring(0,obj1.value.length-1);
	  obj1.focus();
          return false;
         }
         
         
       


         if(dtformat==103)
    	 {
		if (isNaN(obj1.value.substring(0,2)))
		{
			alert("Date should be entered in 'dd/mm/yyyy' format");
			obj1.value='';
			return false;  
		}
		else
		{
			
			if(obj1.value.substring(0,2)>31 ||obj1.value.substring(0,2)=='00')
			{
				alert("Invalid Day")
				obj1.value=obj1.value.substring(0,1)
				obj1.focus();
				return false;
			}
		}	

		if (isNaN(obj1.value.substring(3,5)))
		{
			alert("Date should be entered in 'dd/mm/yyyy' format");
			obj1.value='';
			return false;  
		}
		else
		{
		
			if(obj1.value.substring(3,5)>12 ||obj1.value.substring(3,5)=='00')
	      	{
	      		alert("Invalid month")
	      		obj1.value=obj1.value.substring(0,4)
	      		obj1.focus();
	       		return false;
	      	}
		}
	
		           
	}	 	

         if(dtformat==101)
           {
				if(obj1.value.substring(0,2)>12)
				{
    				alert("Invalid month")
					obj1.value=obj1.value.substring(0,1)
					obj1.focus();
					return false;
				}
				if(obj1.value.substring(3,5)>31)
				{
					alert("Invalid Day")
					obj1.value=obj1.value.substring(0,4)
					obj1.focus();
					return false;
				}	

           }

	  

       var p_year=obj1.value.substring(obj1.value.length-4,obj1.value.length) 
       
       p_year=parseInt(p_year)
       
       
       if(p_year==0)
       {
       //alert(p_year);
       alert("Invalid year");
       obj1.value=obj1.value.substring(0,6);
       obj1.focus();
       return false;
       }
       if (isNaN(p_year))
       {
       	alert("Invalid Year");
       	obj1.value=obj1.value.substring(0,6);
        obj1.focus();
        return false;
       }	
       if(p_year<1930)	
       {
       alert("System does not support year less than '1930' ");
       obj1.value=obj1.value.substring(0,6);
       obj1.focus();
       return false;
       }
      
	
	
       if(dtformat==103)
        {
	  dayNo=obj1.value.substring(0,2);      
	  monthNo=obj1.value.substring(3,5);
      	
        }
        else
        {
          monthNo=obj1.value.substring(0,2)
          dayNo=obj1.value.substring(3,5)
        }
 
       if ((p_year % 4) == 0) 
         {
           if ((p_year % 100) == 0 && (p_year % 400) != 0)
             {
              p_day=DOMonth[monthNo-1];
             }
           else
            {
             p_day=LDOMonth[monthNo-1];
            }
         } 
        else
         {
          p_day=DOMonth[monthNo-1];
         }


         dayNo=parseInt(dayNo)
         p_day=parseInt(p_day)


         if(dayNo>p_day&&dayNo!=0)
          {
          alert("Invalid date");
          obj1.value='';
	  obj1.focus();
          return false;
          }

     }
}

	function OpenCalendar(idname, postBack)  /* opens a calender*/
{
	//alert(idname);
	//alert(idname.value);
	//alert(document.forms[0].elements[idname].value);
	popUp = window.open('../Components/Calendar.aspx?formname=' + document.forms[0].name + 
		'&id=' + idname + '&selected=' + document.forms[0].elements[idname].value + '&postBack=' + postBack, 
		'popupcal',
		'width=165,height=550,left=200,top=250');
		
}

function datecheck(obj)
{
 if((obj.value!="" && obj.value.length<10)||(obj.value.length>10))
 {
  obj.focus();	
 }
}

/* From date To date checking*/

function datechecking(dt1,dt2,tm1,tm2,dtfrm)
{
var fdt1 ;
var fdt2 ;
var date1=dt1;
var date2=dt2;
var time1=tm1;
var time2=tm2;

if  (tm1.length == 0)
    {
		//alert('ok');
    	fdt1 = dt1 +" 00:00:00";
    }
else
    {
		
    	fdt1 = date1+" "+time1;
    }

 if (tm2.length == 0)
    {
    	fdt2 = dt2 + " 00:00:00";
    }
else
    {
    	fdt2 = dt2+" "+tm2;
    }
//alert("ABCD");
//alert("->"+fdt1+"<-");
//alert("->"+fdt2+"<-");

var flag="";
var yr1=parseInt(fdt1.substr(6,4),10);
var yr2=parseInt(fdt2.substr(6,4),10);
if (dtfrm == "103")
   {
   var mm1=parseInt(fdt1.substr(3,2),10);
   var mm2=parseInt(fdt2.substr(3,2),10);
   var dd1=parseInt(fdt1.substr(0,2),10);
   var dd2=parseInt(fdt2.substr(0,2),10);
   }
if (dtfrm == "101")
   {
   var mm1=parseInt(fdt1.substr(0,2),10);
   var mm2=parseInt(fdt2.substr(0,2),10);
   var dd1=parseInt(fdt1.substr(3,2),10);
   var dd2=parseInt(fdt2.substr(3,2),10);
   }
var hh1=parseInt(fdt1.substr(11,2),10);
var hh2=parseInt(fdt2.substr(11,2),10);

var mmm1=parseInt(fdt1.substr(14,2),10);
var mmm2=parseInt(fdt2.substr(14,2),10);

var ss1=parseInt(fdt1.substr(17,2),10);
var ss2=parseInt(fdt2.substr(17,2),10);
if (yr1 < yr2)
	{
		flag="less";
	}
	if (yr1 > yr2)
	{
		flag="more";
	}
	if (yr1 == yr2)
	{
		
		//alert("Equal Year");
    	if (mm1 > mm2)
		  {
		  flag="more";
		  }
		  if (mm1 < mm2)
		     {
		     flag="less";
		     }
		 if (mm1 == mm2)
		    {
				
			//alert("Equal Month");
			if (dd1 > dd2)
			   {
			   flag="more";
			//	alert("Day not Ok");
			//	return (false);
			   }
			if (dd1 < dd2)
			   {
			   flag="less";
				// alert("Date Ok");
				// return (false);
			   }
			if (dd1 == dd2)
			   {
					
				//alert("Equal Date");
				// return true;
                            if (hh1 > hh2)
                                {
                                 flag="more";
				 // alert("hour not ok");
                                 //  return (false);
                                }
                            if (hh1 < hh2)
                                {
                                  flag="less";
                                  // alert("hour  ok");
                                  //   return (false);
                                 }

                            if (hh1 == hh2)
                                {
									
                                  // alert("equal hour ");
                                  //   return true;

				  if(mmm1 > mmm2)
                                	{
                                	flag="more";
                                 // 	alert("minute not ok");
                                  //   	return (false);
                                 	}
                            	  if(mmm1 < mmm2)
                                	{
                                	flag="less";
                                  	// alert("minute  ok");
                                  //   	return (false);
                                 	}
				  if(mmm1 == mmm2)
                                    	  {
                                    	
                                  	    // alert("equal minute ");
                                  	    //   return true;
                                           if (ss1 > ss2)
                                		{
                                		flag="more";
                                  		// alert("second not ok");
                                     	//	return (false);
                                 		}
                            	  	  if (ss1 < ss2)
                                	       {
                                	       flag="less";
                                  	     // alert("second ok");
                                     	  //    return (false);
                                                }
                                          if (ss1 == ss2)
                                                {
                                                flag="equal"
						 						//alert("equal time ");
                                     	      //return 0;
                                                }
                                          }
                                   }

			   }
		}
	}

if (flag == "more")
    {
    //alert("From Date should be less than To date");
    return false;
    }
else if (flag == "equal")
    {
   //alert("To Date should be greater than From date");
    return false;
    }

}
//Date Difference checking
function dateDiff(FromDt,ToDt)
{
	var FDate = new String(FromDt);               //eval("document.MLReport.FromDate.value"));
	var TDate = new String(ToDt);                 //eval("document.MLReport.ToDate.value"));

	if(trim(FDate)=="")
	{
		return false
	}
	if(trim(TDate)=="")
	{
		return false
	}
	var firsttime = new String(FromDt);          //eval("document.MLReport.FromDate.value"));
	var secondtime = new String(ToDt);           //eval("document.MLReport.ToDate.value"));
	if(trim(firsttime)=="")
	{
		firsttime="00:00";
	}
	if(trim(secondtime)=="")
	{
		secondtime="00:00";
	}
	var yy1 = FDate.substring(6,10);    //year
	var dd1 = FDate.substring(0,2);     //day
	var mm1 = FDate.substring(3,5);     //month
	var hr1 = "00"; //hour
	var mn1 = "00"; //minute
	var sc1 = "00"; 						 //second

	var yy2 = TDate.substring(6,10);
	var dd2 = TDate.substring(0,2);
	var mm2 = TDate.substring(3,5);
	var hr2 = "00";
	var mn2 = "00";
	var sc2 = "00";

	var fday = new Date(yy1,mm1,dd1, hr1,mn1,sc1);
	var tday = new Date(yy2,mm2,dd2, hr2,mn2,sc2);
	
	if(tday<fday)
	{
		//alert('To Date should be greater than From Date');
		//eval("document.MLReport.ToDate.focus()");
		return false;
	}
	else
	{
		return true;
	}
}

/**
 * DHTML date validation script for dd/mm/yyyy. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDateForControl(obj){
	//alert(obj);
	var dtStr=obj.value;
	//alert(dtStr);
	if (dtStr.length==0)
	{
		return true;
		
	}
	
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strDay1=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strMonth1=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	
	
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : dd/mm/yyyy")
		obj.focus();
		return false
	}
	if (strDay1.length<2){
		alert("Please enter a valid 2 digit day. e.g 01/04/2005")
		obj.focus();
		return false
	}
	
	if (strMonth1.length<2){
		alert("Please enter a valid 2 digit month. e.g 01/04/2005")
		obj.focus();
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid date.")
		obj.focus();
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month.")
		obj.focus();
		return false
	}
	
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		obj.focus();
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		
		alert("Please enter a valid date")
		obj.focus();
		return false
	}
return true
}
function isDate(dtStr){
	
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strDay1=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strMonth1=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	
	
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : dd/mm/yyyy")
		return false
	}
	if (strDay1.length<2){
		alert("Please enter a valid 2 digit day. e.g 01/04/2005")
		return false
	}
	
	if (strMonth1.length<2){
		alert("Please enter a valid 2 digit month. e.g 01/04/2005")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid date.")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month.")
		return false
	}
	
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date")
		return false
	}
return true
}

// for AD rotation

/*if (navigator.appName.toUpperCase().match(/NETSCAPE/) != null){
	alert("This Program works best on Internet Explorer 5.5+.Please upgrade your Internet Explorer if some functionalities do not work");
}

var AdNo=0
var MaxVal = 8
var AdSrc = new Array(2)

AdSrc[0] = new Array(2)  ; AdSrc[0][0] = 'http://www.government.ae' ; AdSrc[0][1] = 'ad_32.gif'
AdSrc[1] = new Array(2)  ; AdSrc[1][0] = 'http://www.uaeu.ac.ae' ; AdSrc[1][1] = 'UAE-logo.gif'
AdSrc[2] = new Array(2)  ; AdSrc[2][0] = 'http://www.dcci.gov.ae' ; AdSrc[2][1] = 'DCCILOGO_W.jpg'
AdSrc[3] = new Array(2)  ; AdSrc[3][0] = 'http://www.alislami.co.ae' ; AdSrc[3][1] = 'dib.gif' 
AdSrc[4] = new Array(2)  ; AdSrc[4][0] = 'http://www.nbd.com' ; AdSrc[4][1] = 'nbd.jpg'
AdSrc[5] = new Array(2)  ; AdSrc[5][0] = 'http://www.careersuae.ae' ; AdSrc[5][1] = 'careers.jpg'
AdSrc[6] = new Array(2)  ; AdSrc[6][0] = 'http://www.binhamgroup.com' ; AdSrc[6][1] = 'bh3.jpg'
AdSrc[7] = new Array(2)  ; AdSrc[7][0] = 'http://www.dubal.ae' ; AdSrc[7][1] = 'DUBARB.jpg'
AdSrc[8] = new Array(2)  ; AdSrc[8][0] = 'http://www.dubal.ae' ; AdSrc[8][1] = 'DUBENG.jpg'


var RunIt = "Y"

window.setTimeout("AdRotator()", 1000);

function AdRotator()
{
	if (RunIt == "N")
	{
		return false
	}
	document.all.Ad.src = "../General/images\\"+ AdSrc[AdNo][1]
	document.all.AdURL.href = AdSrc[AdNo][0]
	AdNo++
	if (AdNo == MaxVal+1)
	{
		AdNo=0
	}
	window.setTimeout("AdRotator()", 3000);
}
// end AD rotation

*/
/*data entry validations*/

var popUp; 
// This fin will allow input English char(a-z & A-Z) and numeric 0-9
function CheckChar()
{
	var ObjCtrl;
	var KeyPressVal;	
	ObjCtrl = event.srcElement;
	KeyPressVal = event.keyCode;
	if (KeyPressVal <48 || KeyPressVal > 57)
	{
		if ((KeyPressVal <65 || KeyPressVal > 90)&&(KeyPressVal <97 || KeyPressVal > 122))
		{
			ObjCtrl.focus();
			return false;
		}
	}
	
}
function ValidateInput(FldName)  /*checks for empty fields--specific name given--change acc to own need*/
{
	var msg="";
	if(isBlank(document.all.txtEName.value)==true)
	{
		msg=msg+"&nbsp;"+FldName+" (English) can not be blank <br>";
	}
	if(isBlank(document.all.txtAName.value)==true)
	{
		msg=msg+"&nbsp;"+FldName+" (Arabic) can not be blank <br>";
	}
	if(msg!="")
	{
		window.parent.frames['BottomFrame'].document.location.reload();		
		window.parent.frames["BottomFrame"].document.write("<body bgcolor=#F5F9FC><div id=msg style=font-family:verdana;font-size:10;color:#ff0000>"+msg+"</div></body>");
		return false;
	}
	else
	{
		return true;
	}
}
function myDel()  /*delete validation for a field---specific name given--change acc to own need*/
{				
	if(document.all.txtEName.value!="" && document.all.txtAName.value!="")
	{
		if(confirm("Are you sure you want to delete this record?"))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		window.parent.frames['BottomFrame'].document.location.reload();
		window.parent.frames['BottomFrame'].document.write("<body bgcolor=#F5F9FC></body>");
		window.parent.frames["BottomFrame"].document.write("<body bgcolor=#F5F9FC><div id=msg style=font-family:verdana;font-size:10;color:#ff0000>Please select a record</div></body>");
		return false;
	}
}
function mySearch()   /* search validation--- specific name given--change acc to own need*/
{
	if(document.all.txtEName.value!="" && document.all.txtAName.value!="")
	{
		alert("You can not search in both the languages!");
		return false;
	}
	else
	{
		return true;
	}
}
function validateGo()  /* Page index validation---specific name given--change acc to own need*/
{	
	if((document.all.txtPage.value=="")||(parseInt(document.all.txtPage.value)==0))
	{
		window.parent.frames['BottomFrame'].document.location.reload();
		window.parent.frames["BottomFrame"].document.write("<body bgcolor=#F5F9FC><div id=msg style=font-family:verdana;font-size:10;color:#ff0000>Please Enter some value greater than 0</div></body>");
		return false;
	}
	else
	{
		return true;
	}		
}			function OpenCalendar(idname, postBack)  /* opens a calender*/
{
	//alert(idname);
	//alert(idname.value);
	//alert(document.forms[0].elements[idname].value);
	popUp = window.open('../Components/Calendar.aspx?formname=' + document.forms[0].name + 
		'&id=' + idname + '&selected=' + document.forms[0].elements[idname].value + '&postBack=' + postBack, 
		'popupcal',
		'width=165,height=210,left=200,top=250');
		
}
function openWin(URL, name, windowWidth, windowHeight)  /* opens a new window with given specification*/
{
	newWindow = window.open (URL,name,"width="+windowWidth+",height="+windowHeight+",scrollbars=yes,resizable=yes");
	newWindow.focus();
}

function openTradeWin(URL, name, windowWidth, windowHeight, vTop, vLeft)  /* opens a new window with given specification*/
{
	newWindow = window.open (URL,name,"width="+windowWidth+",height="+windowHeight+",Top="+vTop+",Left="+vLeft+",scrollbars=yes,resizable=yes");
	newWindow.focus();
}

function OpenPopUp(aspxPg,aspxNm)  /*opens a pop-up screen*/
{
	//'LeadPopUp.aspx?formname=' + document.forms[0].name + '&name=' + name + '&id=' + id + '&postBack=' + postBack
	//'leadPopup'
	popUp = window.open(aspxPg,aspxNm,'width=750,height=370,left=120,top=130,scrollbars=yes,resizable=yes');
	popUp.focus();
}


function OpenPopUpWithMenu(aspxPg,aspxNm)  /*opens a pop-up screen with menu*/
{
	popUp = window.open(aspxPg,aspxNm,'width=800,height=450,left=100,top=100,scrollbars=yes,resizable=yes,menubar=yes');
	if(popUp.closed == false)
	{
		popUp.close();
		popUp = window.open(aspxPg,aspxNm,'width=800,height=450,left=100,top=100,scrollbars=yes,resizable=yes,menubar=yes');		
		popUp.focus();
	}	
}

function SetDate(formName, id, newDate, postBack)
{
	eval('var theform = document.' + formName + ';');
	popUp.close();
	theform.elements[id].value = newDate;
	if (postBack)
		__doPostBack(id,'');
}
function SetVal(formName, name, newName, id, newVal, postBack)
{
	eval('var theform = document.' + formName + ';');
	popUp.close();
	theform.elements[id].value = newVal;
	theform.elements[name].value = newName;
	if (postBack)
		__doPostBack(id,'');
}		
/********Utility Functions added by Arijit on 26/04*******/

//This Function restricts the entry of Comma (,) as User Input . Should be called on KeyPress event
function CheckComma()
{
	var ObjCtrl;
	var KeyPressVal;
	ObjCtrl = event.srcElement;
	KeyPressVal = event.keyCode;
	if (KeyPressVal == 44)
	{
		ObjCtrl.focus();
		return false;
	}		
}
//This Function restricts the entry of any character except number . Should be called on KeyPress event
function CheckNumeric()
{
	var ObjCtrl;
	var KeyPressVal;
	ObjCtrl = event.srcElement;
	KeyPressVal = event.keyCode;
	if (KeyPressVal <48 || KeyPressVal> 57) /*Only Numeric Validation*/
	{
		ObjCtrl.focus();
		return false;
	}
}
//This Function rejects copy-paste to aviod copy of characters in numeric field. Should be called onKeyDown event
function DisableCopyPaste()
{
	var ObjCtrl;
	var KeyPressVal;
	ObjCtrl = event.srcElement;
	KeyPressVal = event.keyCode;

    if (KeyPressVal==86) //v key=86, to disable copy paste of alphabets by Ctrl+V
	{
		event.returnValue=false;
	}
}

//This Function restricts the entry of any character except English character or Number. Should be called on KeyPress event
function CheckPassport()
{
	var ObjCtrl;
	var KeyPressVal;
	var RaisErr=0;
	ObjCtrl = event.srcElement;
	KeyPressVal = event.keyCode;
	if (KeyPressVal <48 || KeyPressVal > 57)
	{
		if (KeyPressVal <65 || KeyPressVal > 90)
		{
			ObjCtrl.focus();
			return false;
		}
	}
}	
//This Function restricts the entry of any character except number and a single decimal(.). Should be called on KeyPress event
/*function CheckNumericDec()
{
	var ObjCtrl;
	var KeyPressVal;
	ObjCtrl = event.srcElement;
	KeyPressVal = event.keyCode;
	alert(ObjCtrl);
	alert(ObjCtrl);
	if ((KeyPressVal <48 || KeyPressVal> 57) && (KeyPressVal != 46)) /*Only Numeric Validation*/
	//{
		//ObjCtrl.focus();
		//return false;
	//}
	//else
	//{
	//	if (KeyPressVal == 46) /*Checking Existance of 2 decimals*/
	//	{
	//		if(!(ObjCtrl.value.indexOf(".") == -1)){return false;}
	//	}

	//}
//}
//This Function restricts the entry of Single Quote (') as User Input. Should be called on KeyPress event
function CheckSnglQuote()
{
	var ObjCtrl;
	var KeyPressVal;
	ObjCtrl = event.srcElement;
	KeyPressVal = event.keyCode;
	if (KeyPressVal == 39 ) 
	{
		ObjCtrl.focus();
		return false;
	}
}	
//This Function restricts the entry of doubleQuote (") as User Input. Should be called on KeyPress event
function CheckDblQuote()
{
	var ObjCtrl;
	var KeyPressVal;
	ObjCtrl = event.srcElement;
	KeyPressVal = event.keyCode;
	if (KeyPressVal == 34 ) 
	{
		ObjCtrl.focus();
		return false;
	}
}	
//This Function restricts the entry of doubleQuote (") and singleQuote (') as User Input. Should be called on KeyPress event
function CheckQuote()
{
	var ObjCtrl;
	var KeyPressVal;
	ObjCtrl = event.srcElement;
	KeyPressVal = event.keyCode;
	if (KeyPressVal == 34 || KeyPressVal == 39) 
	{
		ObjCtrl.focus();
		return false;
	}
}	

//This Function restricts the entry of Spaces ( ) as User Input while saving
function trim(inputString) 
{
		// Removes leading and trailing spaces from the passed string. Also removes
		// consecutive spaces and replaces it with one space. If something besides
		// a string is passed in (null, custom object, etc.) then return the input.
		if (typeof inputString != "string") { return inputString; }
		var retValue = inputString;
		var ch = retValue.substring(0, 1);
		while (ch == " ") { // Check for spaces at the beginning of the string
			retValue = retValue.substring(1, retValue.length);
			ch = retValue.substring(0, 1);
		}
		ch = retValue.substring(retValue.length-1, retValue.length);
		while (ch == " ") { // Check for spaces at the end of the string
			retValue = retValue.substring(0, retValue.length-1);
			ch = retValue.substring(retValue.length-1, retValue.length);
		}
		while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
			retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
		}
		return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function


function round_decimals(original_number, decimals) 
{
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {
    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")
    
    // Is there a decimal point?
    if (decimal_location == -1) {
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0     
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {
        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    if (pad_total > 0) {  
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}

function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
IN:
NUM - the number to format
decimalNum - the number of decimal places to format the number to
bolLeadingZero - true / false - display a leading zero for numbers between -1 and 1
bolParens - true / false - use parenthesis around negative numbers
bolCommas - put commas as number separators.

RETVAL:
The formatted number!
 **********************************************************************/
{ 
        if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	// See if we need to put in the commas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;		// Return our formatted string!
}

// validate an email address
function isValidEmail(e)
{
	// assume an email address cannot start with an @ or white space, but it
	// must contain the @ character followed by groups of alphanumerics and '-'
	// followed by the dot character '.'
	// It must end with 2 or 3 alphanumerics.
	//
	var alnum="a-zA-Z0-9";
	exp="^[^@\\s]+@(["+alnum+"+\\-]+\\.)+["+alnum+"]["+alnum+"]["+alnum+"]?$";
	emailregexp = new RegExp(exp);

	result = e.match(emailregexp);
	if (result != null)
	{
		return true;
	}
	else
	{
		return false;
	}
}
// This fn checks whether an email address is valid or not
function ValidateEmail(obj,vTextMsg)
{
	var emailval;			
	emailval=obj.value;
	if(isValidEmail(emailval)==true)
	{
		return true;
	}
	else
	{
		if(isBlank(vTextMsg)==true)
		{
			alert("Please put valid e-mail address");
		}
		else
		{
			alert(vTextMsg);
		}
		return false;
	}		
}
// This fn checks whether an email address is valid or not, used in admin section
function ValidateEmailforAdmin(obj)
{
	var emailval;			
	emailval=obj.value;
	if(isValidEmail(emailval)==true)
	{
		return true;
	}
	else
	{
		return false;
	}		
}
// This function checks whether a text is numeric
function IsNumeric(sText,alertMsg)
{	
   var ValidChars = "0123456789";
   var Char; 
   for (i = 0; i < sText.length; i++) 
   { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
				alert(alertMsg);			
				return false;	
		}
    }
}
// This function checks whether a text is numeric
function IsNumericForAdmin(sText)
{	
   var ValidChars = "0123456789";
   var Char; 
   for (i = 0; i < sText.length; i++) 
   { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
				//alert(alertMsg);			
				return false;	
		}
    }
    return true;
}
function IsValidText(sText)
{	
   var ValidChars = "!@#$%^*";
   var Char; 
   for (i = 0; i < ValidChars.length; i++) 
   { 
		Char = ValidChars.charAt(i); 
		if (sText.indexOf(Char) != -1) 
		{
				return false;	
		}
    }
    return true;
}
// This function checks whether a text is numeric and single dot(.) is allowed
function IsNumericDec(sText,alertMsg)
{	
   var ValidChars = "0123456789.";
   var Char; 
   var CountDOT=0;		
   for (i = 0; i < sText.length; i++) 
   { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
				alert(alertMsg);
				CountDOT=0;
				return false;	
		}
		else
		{
			if(Char==".")
			{
				CountDOT=CountDOT+1;
			}
		}
    }
    if(CountDOT>1)
    {
		alert(alertMsg);
		return false;
    }
}

function ChkPhone(sText,alertMsg)
{	
   var ValidChars = "0123456789-";
   var Char; 
   var CountDash=0;	
   var CountOPar=0;
   var CountCPar=0;	
   for (i = 0; i < sText.length; i++) 
   { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
				alert(alertMsg);
				CountDash=0;
				CountOPar=0;
				CountCPar=0;
				return false;	
		}
		else
		{
			if(Char=="-")
			{
				CountDash=CountDash+1;
			}
			/*if(Char=="(")
			{
				CountOPar=CountOPar+1;
			}
			if(Char==")")
			{
				CountCPar=CountCPar+1;
			}*/
		}
    }//||CountOPar>1||CountCPar>1
    if(CountDash<2||CountDash>2)
    {
		alert(alertMsg);
		return false;
    }
}
 
function CheckURL(sText,alertMsg)
{	
   var CountDOT=0;
   if (sText.indexOf('.') == 0)
   {
		alert(alertMsg);
		return false;
   }
   for (i = 0; i < sText.length; i++) 
   { 
		Char = sText.charAt(i); 
		{
			if(Char==".")
			{
				CountDOT=CountDOT+1;
			}
		}
    }
    if(CountDOT==0)
    {
		alert(alertMsg);
		return false;
    }
}

//This function checks for blank entry as user input including spaces
function isBlank(val)
{
	var s = val;
	var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
	return (m == null) ? true : false;
}
function CheckAmount(obj1,obj2)
{
	alert(obj1);
	
}



function DataClick(id)
		{
		 var i=0;
	  	 var text=id; 
	  	 var seperator=";";
	  	 	    	     	     
	     	 }

