var IsFocusOnBack = 0;
var ArrBackUp = new Array();

function BackUpData(Obj) {
    ArrBackUp = UploadFormData(Obj);
}

function UploadFormData(Obj) {
    var ArrData = new Array();
    var chkData = "";
    var chkId = "";
    var currType = "";
    for (i = 0; i < Obj.elements.length; i++) {
        if (Obj.elements[i].type == "text" || Obj.elements[i].type == "textarea" || Obj.elements[i].type == "password" || Obj.elements[i].type == "select-one")
            ArrData.push(Obj.elements[i].value);
        else if (Obj.elements[i].type == "select-multiple") {
            var str = "";
            var objMultiple = document.getElementById(Obj.elements[i].id);
            for (j = 0; j < objMultiple.length; j++) {
                str = str + objMultiple[j].value + ","
            }
            ArrData.push(str);
        }
        else if (Obj.elements[i].type == "radio" && Obj.elements[i].checked) {
            ArrData.push(Obj.elements[i].value);
        }
        else if (Obj.elements[i].type == "checkbox") {

            if (Obj.elements[i].id.indexOf("_") > 0) {
                currType = "checkbox";
                var currID = Obj.elements[i].id.substring(0, Obj.elements[i].id.indexOf("_"));

                if (chkId != currID) {
                    if (chkId != "") {
                        ArrData.push(chkData);
                    }
                    chkId = currID;
                    chkData = "";
                }

                if (Obj.elements[i].checked)
                    chkData = chkData + Obj.elements[i].id + ",";
            }
            else if (Obj.elements[i].checked) {
                ArrData.push(Obj.elements[i].id);
            }
        }
        if (Obj.elements[i].type != "checkbox" && chkData != "") {
            ArrData.push(chkData);
            chkData = "";
            chkId = "";
        }

    }

    return ArrData;
}
function CheckDataOnBack(Obj) {
    var ArrCurr = UploadFormData(Obj);
    var blnBack = true;
    if (ArrCurr.length != ArrBackUp.length) {

        blnBack = false;
    }
    else {
        for (i = 0; i < ArrBackUp.length; i++) {
            if (ArrBackUp[i] != ArrCurr[i]) {
                blnBack = false;
                break;
            }
        }
    }
    return blnBack;
}
function ValidateAllInputData(Obj) {
    for (i = 0; i < Obj.elements.length; i++)
        if (Obj.elements[i].type == "text" || Obj.elements[i].type == "textarea" || Obj.elements[i].type == "password")
        if (Obj.elements[i].value.indexOf('<') >= 0 || Obj.elements[i].value.indexOf('>') >= 0 || Obj.elements[i].value.indexOf('&') >= 0)
        return false;
    return true
}
function ValidateInputData(obj) {
    if (obj.value.indexOf('<') >= 0 || obj.value.indexOf('>') >= 0 || obj.value.indexOf('&') != -1)
        return false;
    else
        return true;
}
function InsureDecimal(e) {

    if (document.all) // if Internet Explorer
    {
        var keyCode = e.keyCode;

        if (!((keyCode > 47 && keyCode < 58) || keyCode == 46)) { window.event.returnValue = false; }

    }
    else // other browsers
    {
        if (e.keyCode == 0) {
            var keyCode = e.charCode;
            if (!((keyCode > 47 && keyCode < 58) || keyCode == 46)) {
                e.cancel = true;
                e.preventDefault();
                return false;
            }
        }

    }

    var keyCode = window.event.keyCode;
    if (!((keyCode > 47 && keyCode < 58) || keyCode == 46)) { window.event.returnValue = false; }

}

function DefaultSubmit(defualtButton, e) {
    var retval = true;
    var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
    if (IsFocusOnBack == 0 && keyCode == 13) {
        defualtButton.click();
        retval = false;
    }
    return retval;
}
function ReadOnly(e) {
    window.event.returnValue = false;
}
function HasValidChars(obj) {
    var strVal = obj.value;
    var len = strVal.length;
    var asciiVal;
    for (i = 0; i < len; i++) {
        asciiVal = escape(strVal.charCodeAt(i));
        if (asciiVal == 39) {
            return false;
        }
    }
    return true;
}

function IsValidURL(obj) {
    var blnretVal = true;
    if (obj.value.search('://') != -1) {
        var objVal = obj.value.replace('://', '');
        if (objVal.indexOf('http') != 0) {
            blnretVal = false;
        }
    }
    if (obj.value.search('http') != -1) {
        var objVal = obj.value.replace('http', '');
        if (objVal.indexOf('s') == 0) {
            objVal = objVal.replace('s', '');
        }
        if (objVal.indexOf('://') != 0) {
            blnretVal = false;
        }
    }
    if (obj.value.search('www.') != -1) {
        var objVal = obj.value.replace('www.', '');
        if (objVal.indexOf('.') == -1) {
            blnretVal = false;
        }
    }
    var regExpr = new RegExp("([\\w-]+\\.)+[\\w-]+(/[\\w-\\+ ./?%:&=#\\[\\]]*)?");
    if (obj.value.search(regExpr) == -1 || obj.value.indexOf('\"') > -1 || obj.value.indexOf('?') > -1) {
        blnretVal = false;
    }

    return blnretVal;
}

function ValidateZipCode(obj) {
    /*var blnretVal = true;
    var regExpr = new RegExp('\\d{5}(-\\d{4})?');
    if (obj.value.search(regExpr) == -1) {
        blnretVal = false;
    }*/
    return true; //blnretVal;
}

function compareDate(date1, date2) {
    var day1 = date1.getDate();
    var month1 = date1.getMonth();
    var year1 = date1.getYear();
    var day2 = date2.getDate();
    var month2 = date2.getMonth();
    var year2 = date2.getYear();
    if (day1 == day2 && month1 == month2 && year1 == year2)
        return 0;
    else if ((day1 < day2 && month1 == month2 && year1 == year2) || (month1 < month2 && year1 == year2) || year1 < year2)
        return -1;
    else
        return 1;
}

function localDate(datevalue) {
    //temp = datevalue.toUpperCase();
    temp = datevalue;
    temp = temp.replace('Janvier', 'January');
    temp = temp.replace('Février', 'February');
    temp = temp.replace('Mars', 'March');
    temp = temp.replace('Avril', 'April');
    temp = temp.replace('Mai', 'May');
    temp = temp.replace('Juin', 'June');
    temp = temp.replace('Juillet', 'July');
    temp = temp.replace('Août', 'August');
    temp = temp.replace('Septembre', 'September');
    temp = temp.replace('Octobre', 'October');
    temp = temp.replace('Novembre', 'November');
    temp = temp.replace('Décembre', 'December');
    return new Date(temp);
}

/**********************************************************************/
/*Function to check Integer only*/
/**********************************************************************/


function isInteger(obj) {
    var temp;
    temp = new String();
    temp = obj.value;

    var len = temp.length;
    if (len > 0) {
        for (i = 0; i < len; i++) {
            if (!isDigit(temp.charAt(i))) {
                return false;
            }
        }
    }
    return true;
}

function isIntegerNumber(obj) {
    var iReg = "^-[0-9]+$|^[0-9]+$";

    var regex = new RegExp(iReg);
    if (!regex.test(obj.value)) {
        return false;
    }
    return true;

}

function isEmail(obj) {

    //Commited By Yaser On 27th October 2006
    //	var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
    var emailReg = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"// Commited by Khursheed on 13th November
    //var emailReg = "^\\S+@\\S+\\.[\\S+]{2,9}$";

    var regex = new RegExp(emailReg);
    if (!regex.test(obj.value)) {
        return false;
    }
    return true;
}

function isTelephonicNumber(obj) {
    var numvalue;
    numvalue = new String();
    numvalue = obj.value;

    var temp = "";
    temp = Trim(numvalue);
    if (temp.lastIndexOf("  ") > -1 || temp.lastIndexOf("((") > -1 || temp.lastIndexOf("))") > -1 || temp.lastIndexOf("--") > -1 || temp.lastIndexOf("()") > -1 || temp.lastIndexOf("..") > -1) //checks if number has two consequetive paranthesis, or any other symbol
    {
        return false;
    }
    if (temp.lastIndexOf("+") > -1 && temp.charAt(0) != "+") //checks if number has contain + sign then it is at first position or not
    {
        return false;
    }
    if (temp.charAt(0) != "+" && temp.charAt(0) != "(" && !isDigit(temp.charAt(0))) //checks whether first character is except than +, ,(, and any digit
    {
        return false;
    }
    var len = temp.length;
    if (len > 0) {
        for (i = 1; i < len; i++) {
            if ((!isDigit(temp.charAt(i))) && temp.charAt(i) != " " && temp.charAt(i) != "." && temp.charAt(i) != ")" && temp.charAt(i) != "(" && temp.charAt(i) != "-") {
                return false;
            }
        }
    }
    return true;
}

function isTelephonicMinLength(obj, minLength) {
    var numvalue;
    numvalue = new String();
    numvalue = obj.value;
    var countDigit = 0;
    var temp = "";
    temp = numvalue;
    var len = temp.length;
    if (len > 0) {
        for (i = 0; i < len; i++) {
            if (isDigit(temp.charAt(i))) {
                countDigit++;
            }
        }
    }
    if (countDigit < minLength) {
        return false;
    }
    return true;
}

function isTelephonicMaxLength(obj, maxLength) {
    var numvalue;
    numvalue = new String();
    numvalue = obj.value;
    var countDigit = 0;
    var temp = "";
    temp = numvalue;
    var len = temp.length;
    if (len > 0) {
        for (i = 0; i < len; i++) {
            if (isDigit(temp.charAt(i))) {
                countDigit++;
            }
        }
    }
    if (countDigit > maxLength) {
        return false;
    }
    return true;
}

function isNumber(obj) {
    var numvalue;
    numvalue = new String();
    numvalue = obj.value;

    if (isNaN(obj.value)) {
        return false;
    }
    return true;
}

function isNumber(obj, isSpanish) {
    var numvalue;
    numvalue = new String();
    numvalue = obj.value;
    if (isSpanish) {
        numvalue = numvalue.replace(/\./g, "");
        numvalue = numvalue.replace(/\,/g, ".");
    } else {
        numvalue = numvalue.replace(/\,/g, "");
    }
    if (isNaN(numvalue)) {
        return false;
    }
    return true;
}

function localNumber(obj, isSpanish) {
    var numvalue;
    numvalue = new String();
    numvalue = obj.value;
    if (isSpanish) {
        numvalue = numvalue.replace(/\./g, "");
        numvalue = numvalue.replace(/\,/g, ".");
    } else {
        numvalue = numvalue.replace(/\,/g, "");
    }
    return numvalue;
}
function isBlank(obj) {

    var str = "";
    if (obj.disabled) {
        return false;
    }
    str = obj.value;
    if (str == '') {
        obj.value = '';
        return true;
    }
    str = Trim(str);
    var len = str.length;
    if (len > 0)
        return false
    else {
        obj.value = '';
        return true;
    }
}

function isBlankOnly(obj) {
    var str = "";
    str = obj.value;
    if (str == '') {
        return true;
    }
    str = Trim(str);
    var len = str.length;
    if (len > 0)
        return false
    else {
        return true;
    }
}

function Trim(string) {
    if (string != "") {
        var newStr = "";
        newStr = RTrim(lTrim(string));
        return (newStr);
    }
}
function lTrim(s) {
    var temp = "";
    temp = s;
    var len = s.length;
    if (len > 0) {
        for (i = 0; i < len; i++) {
            if (temp.charAt(i) != " ")
                break;
        }

        tempStr = ""
        k = 0;
        for (j = i; j < len; j++) {
            tempStr = tempStr + temp.charAt(j);
            k = k + 1;
        }
        return tempStr;
    }
    else
        return ("");
}

// Purpose: Remove trailing spaces from string.
// Inputs:  string: string expression
// Returns: String with trailing spaces removed.

function RTrim(string) {
    var oldStr = string;
    var newStr = "";
    var notDone = true;
    for (i = oldStr.length - 1; i >= 0; i--) {
        ch = oldStr.charAt(i);
        if (ch == " " && notDone) {
            // remove spaces 
        }
        else {
            newStr = ch + newStr;
            notDone = false;
        }
    }
    return (newStr);
}


function isLength(obj, num) {
    var str = "";
    str = obj.value;
    var len = str.length
    if (len != num) {
        return false;
    }
    return true;
}

function isMinLength(obj, minnum) {
    var str = "";
    str = obj.value;
    var len = str.length
    if (len < minnum) {
        return false;
    }
    return true;
}


function twodateComp(cdate1, cdate2) {
    var date1 = cdate1;
    var dd1 = date1.substring(0, 2);
    var mm1 = date1.substring(3, 5);
    var yy1 = date1.substring(6, date1.length);
    tmpdate1 = new Date(yy1, mm1 - 1, dd1);

    var date2 = cdate2;
    var dd2 = date2.substring(0, 2);
    var mm2 = date2.substring(3, 5);
    var yy2 = date2.substring(6, date2.length);
    tmpdate2 = new Date(yy2, mm2 - 1, dd2);

    if (tmpdate1 > tmpdate2)
        return 1;
    else if (tmpdate1 == tmpdate2)
        return 0;
    else
        return -1;
}

/* end date comparision function - Ayush Pandey */

function isEmpty(strVal) {
    var str = "";
    str = new String(strVal);
    var len = str.length;
    var i;
    for (i = 0; i < len; ++i) {
        if (str.charAt(i) != " ") {
            return false;
        }
    }
    return true;
}





function isNonNumber(obj, displayName) {
    var str = lTrim(obj.value);
    var flag = false;
    if (str.length > 0) {
        for (i = 0; i < str.length; i++) {
            if ((str.charAt(0)) == "-") {
                i = i + 1;
                continue;
            }
            if (str.charAt(i) < '0' || str.charAt(i) > '9') {
                flag = true;
            }
        }
        if (flag)
            return true;
        else {
            alert(displayName + "should be non-numeric.");
            return false;
        }
    }
    else
        return true;
    return flag;
}


var dtCh = "/";
var minYear = 1900;
var maxYear = 2100;

function isAllNumbersCharacters(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 isDate(dtStr) {
    var daysInMonth = DaysArray(12)
    var pos1 = dtStr.indexOf(dtCh)
    var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
    var strMonth = dtStr.substring(0, pos1)
    var strDay = 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 : mm/dd/yyyy")
        return false
    }
    if (strMonth.length < 1 || month < 1 || month > 12) {
        //alert("Please enter a valid month")
        return false
    }
    if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
        //alert("Please enter a valid day")
        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 || isAllNumbersCharacters(stripCharsInBag(dtStr, dtCh)) == false) {
        //alert("Please enter a valid date")
        return false
    }
    return true
}





function ischkValidDate(obj, dt) {
    newdt = new Date(dt);
    str = (newdt.getMonth() + 1) + "/" + newdt.getDate() + "/" + newdt.getFullYear();
    if (dt == str) return true;
    //alert("Invalid date.");
    return false;
}

function hasNoSplChars(obj, displayName) {
    var s = "";
    s = lTrim(obj.value);
    var splChars;
    splChars = new Array("<", ">", "&", "$");
    for (i = 0; i < s.length; i++)
        for (j = 0; j < splChars.length; j++) {
        if (s.charAt(i) == splChars[j]) {
            if (displayName != '') {
                alert(displayName + " cannot have special characters");
            }
            return false;
        }
    }
    return true;
}

function hasDoubleQuotes(obj, displayName) {
    var s = "";
    s = lTrim(obj.value);
    for (i = 0; i < s.length; i++) {
        if (s.charAt(i) == '"') {
            alert(displayName + " cannot have double quotes character");

            return false;
        }
    }
    return true;
}

var exp = new RegExp("^$");
function isBloodGP(obj, displayName) {
    if (lTrim(obj.value) != "") {
        exp.compile("^" + "[A-Z,a-z]{1,2}\[+,-]" + "$");
        if (!exp.test(obj.value)) {
            alert(displayName + " cannot have special characters like @,#,$,%,',* etc");

            return false;
        }
    }
    return true;
}



function hasNoSplCharsNew(obj, displayName) {
    var s = "";
    s = lTrim(obj.value);
    var splChars;
    splChars = new Array("/", "|", "!", ";", ":", "\\", ",", "?");
    for (i = 0; i < s.length; i++)
        for (j = 0; j < splChars.length; j++) {
        if (s.charAt(i) == splChars[j]) {
            if (displayName != '') {
                alert(displayName + " cannot have special characters like /,|,!,;,:,\,? etc");
            }

            return false;
        }
    }
    return true;
}


/********************************/
/*Function to check email values*/
/********************************/

function isPositive(obj, displayName) {
    var str = "";
    str = lTrim(obj.value);

    if (str.length <= 0)
        return true;
    if (!isNaN(obj.value)) {
        if (parseFloat(obj.value) >= 0)
            return true;
        else {
            alert(displayName + " should be a positive number.");

            return false;
        }
    }
    else {
        alert(displayName + " should be numeric");

        return false;
    }
    return true;
}


function isNegative(obj, displayname) {

    if (obj.value <= 0) {
        alert(displayname + " " + " cannot be negative");
        return false;
    }

}



// Function for checking the value lies in specifies range
// obj-->Object
// Disp--> Display name for error alert
// lo---> Lower value
// hi---> Higher Value
function isBetween(obj, Disp, lo, hi) {
    if (lTrim(obj.value) == "")
        return true;
    val = parseInt(obj.value);
    lo = parseInt(lo);
    hi = parseInt(hi);
    if ((val < lo) || (val > hi)) {
        alert(Disp + " should be in the range of " + lo + " and " + hi)

        return (false);
    }
    else {
        return (true);
    }
}


function isDigit(theNum) {
    var theMask = '0123456789';

    if (isEmpty(theNum)) return (false);
    else if (theMask.indexOf(theNum) == -1) return (false);

    return (true);
}

function isReal(theStr, decLen) {
    var dot1st = theStr.indexOf('.');
    var dot2nd = theStr.lastIndexOf('.');
    var OK = true;

    if (isEmpty(theStr)) return false;

    if (dot1st == -1) return (true)
    else if (dot1st != dot2nd) return (false);
    else if (dot1st == 0) return (false);
    else {
        var intPart = theStr.substring(0, dot1st);
        var decPart = theStr.substring(dot2nd + 1);

        if (decPart.length > decLen) return (false);
        else if (!isInt(intPart) || !isInt(decPart)) return (false);
        else if (isEmpty(decPart)) return (false);
        else return (true);
    }
}

function isInt(theStr) {
    var flag = true;

    if (isEmpty(theStr)) { flag = false; }
    else {
        for (var i = 0; i < theStr.length; i++) {
            if (isDigit(theStr.substring(i, i + 1)) == false) {
                flag = false; break;
            }
        }
    }
    return (flag);
}


function isRoundNum(obj, displayname) {
    var flag = true;
    var theStr = obj.value;
    if (isEmpty(theStr)) { flag = false; }
    else {
        for (var i = 0; i < theStr.length; i++) {
            if (isDigit(theStr.substring(i, i + 1)) == false) {
                flag = false; break;
            }
        }
    }
    if (flag == false) {
        alert(displayname + " should be a Whole Number");

    }
    return (flag);
}

function isFloatNumber(obj, displayName) {
    var str = lTrim(obj.value);
    var firstIndex, lastIndex;
    firstIndex = str.indexOf(".");
    lastIndex = str.lastIndexOf(".");
    if (firstIndex != lastIndex) {
        alert(displayName + " should be numeric.");

        return false;
    }
    for (i = 0; i < str.length; i++) {
        if ((str.charAt(i) < '0' || str.charAt(i) > '9') && str.charAt(i) != ".") {
            if ((str.charAt(0)) == "-") {
                i = i + 1;
                continue;
            }
            alert(displayName + " should be numeric.");

            return false;
        }
    }
    return true;
}


function isMaxLength(obj, maxnum) {
    var str = "";
    str = obj.value;
    var len = str.length
    if (len <= maxnum) {
        return true;
    }
    return false;
}

function maxLength(obj, displayname, num) {
    var str = "";
    var num = num;
    str = lTrim(obj.value);
    //alert(str)
    if (str.length > num) {
        alert(displayname + " should not have more than " + num + " characters.");

        return false;
    }
    return true;
}



function closeWindow() {
    self.close();
}


function convert_date(field1) {

    var fLength = field1.value.length;
    var divider_values = new Array('-', '.', '/', ' ', ':', '_', ',');
    var array_elements = 7;
    var day1 = new String(null);
    var month1 = new String(null);
    var year1 = new String(null);
    var divider1 = null;
    var outdate1 = null;
    var counter1 = 0;
    var divider_holder = new Array('0', '0', '0');
    var s = String(field1.value);


    if (fLength == 0) {
        return true;
    }


    if (field1.value.toUpperCase() == 'NOW' || field1.value.toUpperCase() == 'TODAY') {
        var newDate1 = new Date();
        if (navigator.appName == "Netscape") {
            var myYear1 = newDate1.getYear() + 1900;
        }
        else {
            var myYear1 = newDate1.getYear();
        }
        var myMonth1 = newDate1.getMonth() + 1;
        var myDay1 = newDate1.getDate();
        field1.value = myDay1 + "/" + myMonth1 + "/" + myYear1;
        fLength = field1.value.length;
        s = String(field1.value);
    }


    if (fLength != 0 && (fLength < 6 || fLength > 11)) {
        invalid_date(field1);
        return false;
    }


    for (var i = 0; i < 3; i++) {
        for (var x = 0; x < array_elements; x++) {
            if (s.indexOf(divider_values[x], counter1) != -1) {
                divider1 = divider_values[x];
                divider_holder[i] = s.indexOf(divider_values[x], counter1);

                counter1 = divider_holder[i] + 1;

                break;
            }
        }
    }


    if (divider_holder[2] != 0) {
        invalid_date(field1);
        return false;
    }


    if (divider_holder[0] == 0 && divider_holder[1] == 0) {

        if (fLength == 6) {
            day1 = field1.value.substring(0, 2);
            month1 = field1.value.substring(2, 4);
            year1 = field1.value.substring(4, 6);
            if ((year1 = validate_year(year1)) == false) {
                invalid_date(field1);
                return false;
            }
        }

        else if (fLength == 7) {
            day1 = field1.value.substring(0, 2);
            month1 = field1.value.substring(2, 5);
            year1 = field1.value.substring(5, 7);
            if ((month1 = convert_month(month1)) == false) {
                invalid_date(field1);
                return false;
            }
            if ((year1 = validate_year(year1)) == false) {
                invalid_date(field1);
                return false;
            }
        }
        else if (fLength == 8) {
            day1 = field1.value.substring(0, 2);
            month1 = field1.value.substring(2, 4);
            year1 = field1.value.substring(4, 8);
            if (year1.length == 4 && (parseInt(year1) < 1900 || parseInt(year1) > 2100)) {
                alert("Year Can not be less than 1900 and greater than 2100");
                field1.focus();
                field1.select();
                return false;
            }
        }
        else if (fLength == 9) {
            day1 = field1.value.substring(0, 2);
            month1 = field1.value.substring(2, 5);
            year1 = field1.value.substring(5, 9);

            if ((month1 = convert_month(month1)) == false) {
                invalid_date(field1);
                return false;
            }
        }

        if ((outdate1 = validate_date(day1, month1, year1)) == false) {
            alert("The value " + field1.value + " is not a vaild date.\n\r" +
                        "Please enter a valid date in the format dd/mm/yyyy");
            field1.focus();
            field1.select();
            return false;
        }

        field1.value = outdate1;
        return true;
    }


    if (divider_holder[0] != 0 && divider_holder[1] != 0) {
        day1 = field1.value.substring(0, divider_holder[0]);
        month1 = field1.value.substring(divider_holder[0] + 1, divider_holder[1]);

        year1 = field1.value.substring(divider_holder[1] + 1, field1.value.length);
    }

    if (isNaN(day1) && isNaN(year1)) {
        invalid_date(field1);
        return false;
    }

    if (day1.length == 1) {
        day1 = '0' + day1;
    }

    if (month1.length == 1) {
        month1 = '0' + month1;
    }

    if (year1.length == 2) {
        if ((year1 = validate_year(year1)) == false) {
            invalid_date(field1);
            return false;
        }
    }

    if (month1.length == 3 || month1.length == 4) {
        if ((month1 = convert_month(month1)) == false) {
            alert("month1" + month1);
            invalid_date(field1);
            return false;
        }
    }


    if ((day1.length == 2 || month1.length == 2 || year1.length == 4) == false) {
        invalid_date(field1);
        return false;
    }

    if (year1.length == 4 && (parseInt(year1) < 1900 || parseInt(year1) > 2100)) {
        alert("Year Can not be less than 1900 and greater than 2100");
        field1.focus();
        field1.select();
        return false;
    }
    if ((outdate1 = validate_date(day1, month1, year1)) == false) {
        alert("The value " + field1.value + " is not a vaild date.\n\r" +
        "Please enter a valid date in the format dd/mm/yyyy");
        field1.focus();
        field1.select();
        return false;
    }

    field1.value = outdate1;
    var today = new Date();
    var todayDDMMYYYY, intMonth
    intMonth = parseInt(today.getMonth()) + 1
    todayDDMMYYYY = today.getDate() + "/" + intMonth + "/" + today.getYear();

    if (dateComp(todayDDMMYYYY, field1.value) < 0) {
        alert("Greater than today's date");
        return false;
    }

    return true;

}

function convert_month(monthIn) {

    var month_values = new Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC");

    monthIn = monthIn.toUpperCase();

    if (monthIn.length == 3) {
        for (var i = 0; i < 12; i++) {
            if (monthIn == month_values[i]) {
                monthIn = i + 1;
                if (i != 10 && i != 11 && i != 12) {
                    monthIn = '0' + monthIn;
                }
                return monthIn;
            }
        }
    }

    else if (monthIn.length == 4 && monthIn == 'SEPT') {
        monthIn = '09';
        return monthIn;
    }

    else {
        return false;
    }
}

function invalid_date(inField) {
    alert("The value " + inField.value + " is not in a vaild date format.\n\r" +
        "Please enter date in the format dd/mm/yyyy");
    inField.focus();
    inField.select();
    return true
}

function validate_date(day2, month2, year2) {
    var DayArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var MonthArray = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12");
    var inpDate = day2 + month2 + year2;
    var filter = /^[0-9]{2}[0-9]{2}[0-9]{4}$/;


    if (!filter.test(inpDate)) {
        return false;
    }

    filter = /01|02|03|04|05|06|07|08|09|10|11|12/;
    if (!filter.test(month2)) {
        return false;
    }

    var N = Number(year2);
    if ((N % 4 == 0 && N % 100 != 0) || (N % 400 == 0)) {
        DayArray[1] = 29;
    }

    for (var ctr = 0; ctr <= 11; ctr++) {
        if (MonthArray[ctr] == month2) {
            if (day2 <= DayArray[ctr] && day2 > 0) {
                inpDate = day2 + '/' + month2 + '/' + year2;
                return inpDate;
            }
            else {
                return false;
            }
        }
    }
}

function validate_year(inYear) {

    if (inYear < 10) {
        inYear = "20" + inYear;
        return inYear;
    }
    else if (inYear >= 10) {
        inYear = "19" + inYear;
        return inYear;
    }
    else {
        return false;
    }
}


function g_hasSplChr(obj, displayName) {
    var str = obj.value;

    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1);
        if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch) && (ch != '_')) {
            alert("\nThe " + displayName + " field  accepts letters,numbers & underscore.\n\nPlease re-enter.");

            return false;
        }
    }
    return true;
}


function g_hasSplChrSpace(obj, displayName) {
    var str = obj.value;

    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1);

        if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch) && (ch != '_') && (ch != ' ') && (ch != '-') && (ch != '+') && (ch != '/')) {
            alert("\nThe " + displayName + " field  accepts letters,numbers,spaces,slashes & underscore.\n\nPlease re-enter.");

            return false;
        }
    }
    return true;
}


function g_MykidhasSplChr(obj, displayName) {
    var str = obj.value;

    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1);
        if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch) && (ch != '+') && (ch != '-')) {
            alert("\nThe " + displayName + " field  accepts letters,numbers and positive/negative signs only.\n\nPlease re-enter.");

            return false;
        }
    }
    return true;
}


function g_hasSplChrPassArray(obj, displayName, splChars, strNames) {

    var str = obj.value;


    for (var i = 0; i < str.length; i++) {
        strFlag = false;
        var ch = str.substring(i, i + 1);

        for (j = 0; j < splChars.length; j++) {
            if (ch == splChars[j]) {
                strFlag = true;
            }
        }

        if (strFlag == false) {
            if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch) && (ch != '_')) {
                alert("\nThe " + displayName + " field  accepts letters,numbers & underscore.\nAnd can only have following special characters:\n" + strNames);



                return false;
            }
        }
    }
    return true;
}


var larrSplcharsearch = new Array(",", "|")

function g_hasSplChrPassArraySearch(str, splChars) {

    for (var i = 0; i < str.length; i++) {
        strFlag = false;
        var ch = str.substring(i, i + 1);

        for (j = 0; j < splChars.length; j++) {
            if (ch == splChars[j]) {
                strFlag = true;
            }
        }

        if (strFlag == false) {
            if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch) && (ch != '_')) {
                return false;
            }
        }
    }
    return true;
}
//=====================================================================================================================
// For Telephone FAX and Mobile
//=====================================================================================================================
function isPhone(obj) {
    var newString = "";    // REVISED/CORRECTED STRING
    var count = 0;         // COUNTER FOR LOOPING THROUGH STRING
    var checkString = lTrim(obj.value);
    if (checkString.length <= 0)
        return true;

    // LOOP THROUGH STRING CHARACTER BY CHARACTER
    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i + 1);

        // ENSURE CHARACTER IS AN ALPHA CHARACTER
        if ((ch >= "0" && ch <= "9") || ch == "+" || ch == "-" || ch == "(" || ch == ")" || ch == ",") {
            newString += ch;

        }
    }

    if (checkString != newString) {
        // VERIFY WITH USER THAT IT IS OKAY TO REMOVE INVALID CHARACTERS
        alert("The value you have entered\nis not valid PHONE FAX or MOBILE.\n  ");

        obj.select();
        // RETURN REVISED STRING
        return false;
    }
    else {
        return true;
    }
}


function isString(str) {
    var flag = false;
    if (str.length > 0) {
        for (i = 0; i < str.length; i++) {
            if ((str.charAt(0)) == "-") {
                i = i + 1;
                continue;
            }
            if (str.charAt(i) < '0' || str.charAt(i) > '9') {
                flag = true;
            }
        }
        if (flag)
            return true;
        else {
            return false;
        }
    }
    else
        return true;
    return flag;
}

/**
* <B> PURPOSE : </B>To check for Valid Name i.e String without any special character, string only with alphabets<BR>
* <B> REQUIRE : </B>Form Object and the Message to be Displayed if special characters are found<BR>
* <B> RETURNS : </B>false if special characters are found , else true, also returns the special character<BR>
*/
function isValidName(obj, message) {
    validationPassed = true;
    exitLoop = false;

    specialCharArr = ["?", ":", "-", "`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "_", "=", "+", "/", "\\", "|", ".", "<", ">", "(", ")", "{", "}", "[", "]", ",", "'", ";", "\""];
    regExpForANumber = /[0-9]/;

    do {
        //Check for null
        /*if(obj.value==null || obj.value=="")
        { 
        alert(message+"should not be blank"); 
        validationPassed=false;
			
			break;
        }*/
        // Check for a Number
        if (regExpForANumber.test(obj.value)) {
            if (message != '') {
                alert(message + " should not contain number");
            }
            validationPassed = false;

            break;
        }
        // Check for Special Character in Array
        for (i = 0; i < specialCharArr.length; i++) {
            if (obj.value.indexOf(specialCharArr[i]) != -1) {
                if (message != '') {
                    alert(message + " should not contain special character " + specialCharArr[i]);
                }
                validationPassed = false;

                break;
            }
        }

    } while (exitLoop)
    return validationPassed;
}

/**
* <B> PURPOSE : </B>To check quotes in the value, this method checks for sinlge quote as well as double quote<BR>
* <B> REQUIRE : </B>Form Object and the Message to be Displayed if value contains quotes<BR>
* <B> RETURNS : </B>true if value contains quotes, else false<BR>
*/
function containQuotes(obj, message) {
    contains = false;
    quotesRegExp = /"|'/;

    if (quotesRegExp.test(obj.value)) {
        contains = true;
        alert(message + " Can Not Contain Quotes");
    }
    return contains;
}

/**
* <B> PURPOSE : </B>To check for Valid String for Alphanumeric Characters, Without Special Characters<BR>
* <B> REQUIRE : </B>Form Object<BR>
* <B> RETURNS : </B>true if valid , else false<BR>
*/
function isAlphaNumeric(obj, message) {
    contains = false;
    valueLength = obj.value.length;
    regPayScale = new RegExp("\\w{" + valueLength + "}");
    if (regPayScale.test(obj.value)) {
        contains = true;

        obj.select();
        alert(message + " Can not have alpha numeric values.");
    }
    return contains;
}


function isLogin(obj, displayName) {
    var str = obj.value;

    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1);
        if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch)) {
            alert("\nThe " + displayName + " field  accepts letters,numbers and positive/negative signs only.\n\nPlease re-enter.");

            return false;
        }
    }
    return true;
}

function isPassword(obj, displayName) {
    var str = obj.value;

    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1);
        if (ch == ' ') {
            alert("\nThe " + displayName + " field  can not accept spaces.\n\nPlease re-enter.");

            return false;
        }
    }
    return true;
}

/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*Function Name		:  MoveOption
*Created  By		:  Nazish Ahsan
*Purpose 			:  To move the selected items from one list box to textarea or textfeild
*Creation Date 		:  07-Oct-2002
*Return Value       :  Nothing   
*Parametes	:
*			1)  MoveFrom : String 
*			2)	MoveTo : String
*How to Call Example:	call MoveSelectedOption('DCS','DCSNAME') OR call MoveSelectedOption('DCS','DCSNAME')
*Note : Please make Table Sequence before calling this Sub routine.
*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
var delimiter = " ";
function MoveOption(MoveFrom, MoveTo) {
    var SelectFrom = eval('document.main_form.' + MoveFrom);
    var SelectTo = eval('document.main_form.' + MoveTo);

    var SelectedIndex = SelectFrom.options.selectedIndex;
    var container;
    container = eval('document.main_form.' + MoveTo);
    if (SelectedIndex < 1) {
        alert("Please select feilds(s) to move.");
    } else {
        var name = SelectFrom.value;
        container.value = container.value + name + delimiter;
    }
}

/**--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*Function Name		:  MoveSelectedOption
*Created  By		:  Nazish Ahsan
*Purpose 			:  To Move the selected item from list box to another as a selected item
*Creation Date 		:  07-Oct-2002
*Return Value       :  Nothing   
*Parametes	:
*			1)  MoveFrom : String 
*			2)	MoveTo : String
*			2)	ToDo : String
*How to Call Example:	call MoveSelectedOption('DCS','DCSNAME','Add') OR call MoveSelectedOption('DCS','DCSNAME','Remove')
*Note : Please make Table Sequence before calling this Sub routine.
*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
var delimiter = " ";
function MoveSelectedOption(MoveFrom, MoveTo, ToDo, FormName) {
    var SelectFrom = eval('document.frmMilkBillGeneration.' + MoveFrom);
    var SelectTo = eval('document.frmMilkBillGeneration.' + MoveTo);
    var SelectedIndex = SelectFrom.options.selectedIndex;
    var container;
    if (ToDo == 'Add') {
        container = eval('document.frmMilkBillGeneration.' + ToDo + MoveTo);
    }
    if (ToDo == 'Remove') {
        container = eval('document.frmMilkBillGeneration.' + ToDo + MoveFrom);
    }
    if (SelectedIndex == -1) {
        alert("Please select DCS Name to move.");
    }
    else {
        for (i = 0; i < SelectFrom.options.length; i++) {
            if (SelectFrom.options[i].selected) {
                var name = SelectFrom.options[i].text;
                var ID = SelectFrom.options[i].value;
                SelectFrom.options[i] = null;
                SelectTo.options[SelectTo.options.length] = new Option(name, ID, true, true);
                i = i - 1;
                if (ToDo == 'Add' || ToDo == 'Remove') {
                    container = eval('document.frmMilkBillGeneration.' + MoveTo);
                }
            }
        }
    }
}

/**--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*Function Name		:  MoveTextValue
*Created  By		:  Nazish Ahsan
*Purpose 			:  To move the selected items form one textfeild or textarea to another textfeild or textarea
*Creation Date 		:  07-Oct-2002
*Return Value       :  Nothing   
*Parametes	:
*			1)  MoveFrom : String 
*			2)	MoveTo : String
*How to Call Example:	call MoveSelectedOption('DCS','DCSNAME') OR call MoveSelectedOption('DCS','DCSNAME')
*Note : Please make Table Sequence before calling this Sub routine.
*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/

function MoveTextValue(MoveFrom, MoveTo) {
    var SelectFrom = eval('document.main_form.' + MoveFrom);
    var SelectTo = eval('document.main_form.' + MoveTo);
    var SelectedTextValue = SelectFrom.value;
    var container;
    container = eval('document.main_form.' + MoveTo);
    if (SelectedTextValue < 1) {
        alert("Please select Feilds to move.");
    } else {
        var name = SelectFrom.value;
        container.value = container.value + name + delimiter;
    }
}


/**
* <B> PURPOSE : </B>To move the selected items form one list box to another list box<BR>
* <B> REQUIRE : </B>List box Object<BR>
* <B> RETURNS : </B>Nothing<BR>
*/
function doMoveListBoxItems(lbxObjFr, lbxObjTo) {
    var lenObjFr, lenObjTo, chkFlag;
    chkFlag = false;
    lenObjFr = lbxObjFr.length;
    lenObjTo = lbxObjTo.length;
    for (i = 0; i < lenObjFr; i++) {
        if (lbxObjFr.options[i].selected == true) {
            chkFlag = true;
            lbxObjTo.options[lenObjTo++] = new Option(lbxObjFr.options[i].text, lbxObjFr.options[i].value);
        }
    }
    if (chkFlag == true) {
        doRemoveListBoxItems(lbxObjFr)
        doSortListBoxItems(lbxObjTo)
    }
}

/**
* <B> PURPOSE : </B>To move all the items form one list box to another list box<BR>
* <B> REQUIRE : </B>List box Object<BR>
* <B> RETURNS : </B>Nothing<BR>
*/
function doMoveAllListBoxItems(lbxObjFr, lbxObjTo) {
    var lenObjFr, lenObjTo, chkFlag;
    chkFlag = false;
    lenObjFr = lbxObjFr.length;
    lenObjTo = lbxObjTo.length;
    for (i = 0; i < lenObjFr; i++) {
        chkFlag = true;
        lbxObjTo.options[lenObjTo++] = new Option(lbxObjFr.options[i].text, lbxObjFr.options[i].value);
    }
    if (chkFlag == true) {
        doRemoveAllListBoxItems(lbxObjFr)
        doSortListBoxItems(lbxObjTo)
    }
}

function comp(a, b) {
    if (a.toUpperCase() > b.toUpperCase())
        return 1;
    if (a.toUpperCase() < b.toUpperCase())
        return -1;

    return 0;
}

function doSortListBoxItems(objListBox) {
    var ListBoxIndex, i;
    ListBoxIndex = objListBox.length;
    var toSortArray = new Array(ListBoxIndex);
    var ArrayVal = new Array(ListBoxIndex);
    for (i = 0; i < ListBoxIndex; i++) {
        toSortArray[i] = objListBox.options[i].text;
        ArrayVal[i] = objListBox.options[i].value;
    }

    for (i = 0; i < ListBoxIndex; i++) {
        objListBox.options[i] = null;
    }

    toSortArray.sort(comp);
    for (i = 0; i < ListBoxIndex; i++) {
        objListBox.options[i] = new Option(toSortArray[i], ArrayVal[i]);
    }
}

function doRemoveListBoxItems(objListBox) {
    var ListBoxMaxIndex = objListBox.length, i, j;
    j = 0;
    var optionToRemoveIndex = new Array();

    for (i = 0; i < ListBoxMaxIndex; i++)
        if (objListBox.options[i].selected == true)
        optionToRemoveIndex[j++] = objListBox.options[i].text;

    for (i = 0; i < optionToRemoveIndex.length; i++) {
        for (j = 0; j < objListBox.length; j++) {
            if (optionToRemoveIndex[i] == objListBox.options[j].text) {
                objListBox.options[j] = null;
                break;
            }
        }
    }
}

function doRemoveAllListBoxItems(objListBox) {
    var ListBoxMaxIndex = objListBox.length, i, j;
    j = 0;
    for (j = ListBoxMaxIndex - 1; j >= 0; j--) {
        objListBox.options[j] = null;
    }
}

function isYear(obj, strMsg) {
    if (isEmpty(obj.value))
        return (true);
    else {
        if (!(isNumber(obj, strMsg)))
            return false;
        strYear = String(obj.value);
        if (strYear.length < 4) {
            alert("Enter " + strMsg + " in 'YYYY' Format");

            return false;
        }
        if (parseInt(strYear) < 1900 || parseInt(strYear) > 2900) {
            alert("Enter Valid " + strMsg);

            return false;
        }
    }
    return (true);
}

function Validateform(f) {
    var cnt;
    for (cnt = 0; cnt < f.length; cnt++) {
        if ((f.elements[cnt].chkLength + "1") != "undefined1") {
            if (f.elements[cnt].value.length > f.elements[cnt].chkLength) {
                alert(f.elements[cnt].Disp + " should not be more than  " + f.elements[cnt].chkLength + " characters");
                f.elements[cnt].focus();
                return false;
            }
        }

        if ((f.elements[cnt].isBlank + "1") != "undefined1") {
            check = isBlank(f.elements[cnt], f.elements[cnt].Disp)
            if (check == true)
                return false;
        }
        if ((f.elements[cnt].isNumber + "1") != "undefined1") {
            check = isNumber(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }

        if ((f.elements[cnt].isBloodGP + "1") != "undefined1") {
            check = isBloodGP(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }

        if ((f.elements[cnt].isPositive + "1") != "undefined1") {
            check = isPositive(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }

        if ((f.elements[cnt].isBetween + "1") != "undefined1") {

            check = isBetween(f.elements[cnt], f.elements[cnt].Disp, f.elements[cnt].Min, f.elements[cnt].Max)
            if (check == false)
                return false;
        }

        if ((f.elements[cnt].isEmail + "1") != "undefined1") {
            check = isEmail(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }

        if ((f.elements[cnt].isValidName + "1") != "undefined1") {
            check = isValidName(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }
        if ((f.elements[cnt].isContainQuotes + "1") != "undefined1") {
            check = containQuotes(f.elements[cnt], f.elements[cnt].Disp)
            if (check == true)
                return false;
        }

        if ((f.elements[cnt].isAlphaNumeric + "1") != "undefined1") {
            check = isAlphaNumeric(f.elements[cnt], f.elements[cnt].Disp)
            if (check == true)
                return false;
        }
        if ((f.elements[cnt].isPhone + "1") != "undefined1") {
            check = isPhone(f.elements[cnt])
            if (check == false)
                return false;
        }
        if ((f.elements[cnt].isYear + "1") != "undefined1") {
            check = isYear(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }
        if ((f.elements[cnt].isLogin + "1") != "undefined1") {
            check = isLogin(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }
        if ((f.elements[cnt].isPassword + "1") != "undefined1") {
            check = isPassword(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }
        if ((f.elements[cnt].g_hasSplChrSpace + "1") != "undefined1") {
            check = g_hasSplChrSpace(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }
        if ((f.elements[cnt].isValidDate + "1") != "undefined1") {
            check = isValidDate(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }
        if ((f.elements[cnt].isRoundNum + "1") != "undefined1") {
            check = isRoundNum(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }
        if ((f.elements[cnt].isTime + "1") != "undefined1") {
            check = chkTime(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }
        if ((f.elements[cnt].hasDoubleQuotes + "1") != "undefined1") {
            check = hasDoubleQuotes(f.elements[cnt], f.elements[cnt].Disp)
            if (check == false)
                return false;
        }
    }
    if ((f.isSearch + "1") != "undefined1") {
        check = fnSearch(f)
        if (check == false)
            return false;
    }

    return true;
}
/***
This function is called on the search page.
The function checks that atleast one parameter has to be entered
for the search.
	
***/
function fnSearch(f) {
    var cnt;
    var blnFlag = false;
    var cntrlIndex;

    cntrlIndex = 0;
    for (cnt = 0; cnt < f.length - 1; cnt++) {
        if (f.elements[cnt].type != 'hidden' && f.elements[cnt].type != 'submit') {
            if (f.elements[cnt].value == "") {
                blnFlag = true;
                if (cntrlIndex == 0)
                    cntrlIndex = cnt;
            }
            else {
                blnFlag = false;
                break;
            }
        }
    }
    if (blnFlag == true) {
        if ((f.Disp + "1") == "undefined1")
            alert("Please Enter atleast one search parameter.");
        else
            alert(f.Disp);
        f.elements[cntrlIndex].focus();
        return false;
    }
    else {
        return true;
    }
}


/*** Function for Opening a new Window***/

function fnOpenWin(url, name, features) {
    var popWin;
    features = features + ',Scrollbars=1'
    popWin = window.open(url, name, features);
    popWin.focus();
}
/**** Function to compare 2 dates ****/

function dateComp() {
    if (arguments[0] == null)
        return false;

    var cdate1 = arguments[0];
    var date1 = cdate1.split("/");
    var dd1 = date1[0];
    var mm1 = date1[1];
    var yy1 = date1[2];

    tmpdate1 = new Date(yy1, mm1 - 1, dd1);

    if (arguments[1] == null) {
        tmpdate = new Date();
        tmpdate2 = new Date(tmpdate.getYear(), tmpdate.getMonth(), tmpdate.getDate());
    }
    else {
        var cdate2 = arguments[1];
        var date2 = cdate2.split("/");
        var dd2 = date2[0];
        var mm2 = date2[1];
        var yy2 = date2[2];
        tmpdate2 = new Date(yy2, mm2 - 1, dd2);
    }


    if (tmpdate1 > tmpdate2)
        return 1;
    else if (tmpdate1 < tmpdate2)
        return -1;
    else
        return 0;
}


function chkLeapYear(varYear) {
    if (varYear % 4 == 0)
        return true; //leap year
    else
        return false; //not a leap year
}
function fnPopulate(element1, element2) {
    element2.value = element1.value;
}

function getDays(varMonth, varYear) {
    var arrMonthDays = new Array(12);

    arrMonthDays[0] = "31"; //Jan
    arrMonthDays[1] = (chkLeapYear(varYear)) ? 29 : 28; //Feb
    arrMonthDays[2] = "31"; //Mar
    arrMonthDays[3] = "30"; //Apr
    arrMonthDays[4] = "31"; //May
    arrMonthDays[5] = "30"; //June
    arrMonthDays[6] = "31"; //July
    arrMonthDays[7] = "31"; //Aug
    arrMonthDays[8] = "30"; //Sep
    arrMonthDays[9] = "31"; //Oct
    arrMonthDays[10] = "30"; //Nov
    arrMonthDays[11] = "31"; //Dec

    return arrMonthDays[varMonth - 1]; //return no of days
}



function chkTime(cntrl, dispName) {
    var cntrlVal = cntrl.value;
    if (cntrlVal.length != 11) {
        alert(dispName + " should be entered in HH:MM:SS AM format");
        cntrl.focus();
        return false;
    }
    else {
        if (cntrlVal.indexOf(":") != 2 || cntrlVal.lastIndexOf(":") != 5 || cntrlVal.indexOf(" ") != 8) {
            alert(dispName + " should be entered in HH:MM:SS AM format");
            cntrl.focus();
            return false;
        }
        else {
            var arrTime = new Array();
            var strHH, strMM, strSS, strAM;

            arrTime = cntrlVal.split(" ");
            strAM = arrTime[1];
            strAM = strAM.toUpperCase();
            arrTime = arrTime[0].split(":");
            strHH = arrTime[0];
            strMM = arrTime[1];
            strSS = arrTime[2];

            if (isInt(strHH)) {
                if (strHH < 1 || strHH > 12) {
                    alert("Hours should be between 1 and 12");
                    cntrl.focus();
                    return false;
                }
            }
            else {
                alert("Hours should be between 1 and 12");
                cntrl.focus();
                return false;
            }

            if (isInt(strMM)) {
                if (strMM < 0 || strMM > 59) {
                    alert("Minutes should be between 0 and 59");
                    cntrl.focus();
                    return false;
                }
            }
            else {
                alert("Minutes should be between 0 and 59");
                cntrl.focus();
                return false;
            }

            if (isInt(strSS)) {
                if (strSS < 0 || strSS > 59) {
                    alert("Seconds should be between 0 and 59");
                    cntrl.focus();
                    return false;
                }
            }
            else {
                alert("Seconds should be between 0 and 59");
                cntrl.focus();
                return false;
            }

            if (strAM != 'AM' && strAM != 'PM') {
                alert("AM/PM should be given");
                cntrl.focus();
                return false;
            }
        }
    }
    cntrl.value = strHH + ":" + strMM + ":" + strSS + " " + strAM;
    return true;
}

function compTwoTime(cntrl1, dispName1, cntrl2, dispName2) {
    var cntrlVal1 = cntrl1.value;
    var cntrlVal2 = cntrl2.value;

    var arrTime1 = new Array();
    var strHH1, strMM1, strSS1, strAM1;

    arrTime1 = cntrlVal1.split(" ");
    strAM1 = arrTime1[1];
    strAM1 = strAM1.toUpperCase();
    arrTime1 = arrTime1[0].split(":");
    strHH1 = arrTime1[0];
    if (strAM1 == 'PM') {
        strHH1 = strHH1 + 12;
    }
    strMM1 = arrTime1[1];
    strSS1 = arrTime1[2];

    var arrTime2 = new Array();
    var strHH2, strMM2, strSS2, strAM2;

    arrTime2 = cntrlVal2.split(" ");
    strAM2 = arrTime2[1];
    strAM2 = strAM2.toUpperCase();
    arrTime2 = arrTime2[0].split(":");
    strHH2 = arrTime2[0];
    if (strAM2 == 'PM') {
        strHH2 = strHH2 + 12;
    }
    strMM2 = arrTime2[1];
    strSS2 = arrTime2[2];

    var currDate = new Date();
    var tmpDate1 = new Date(currDate.getYear(), currDate.getMonth(), currDate.getDay(), strHH1, strMM1, strSS1);
    var tmpDate2 = new Date(currDate.getYear(), currDate.getMonth(), currDate.getDay(), strHH2, strMM2, strSS2);

    if (tmpDate1.getTime() < tmpDate2.getTime())
        return 1;
    if (tmpDate1.getTime() == tmpDate2.getTime())
        return 0;
    if (tmpDate1.getTime() > tmpDate2.getTime())
        return -1;
}


function round_2decimal(item)			// Rounding off to 2 decimal place
{
    var i;
    var j;
    var k;
    var l;
    var havedecimal;
    var p;
    var d1;
    var d2;
    var d3;
    p = "";
    l = "";
    havedecimal = 0;


    i = String(item);

    val = i.substring(0, 1);

    if (val == ".") {
        i = "0" + i + "0"
    }




    for (k = 0; k < i.length; k++) {
        val = i.substring(k, k + 1);
        if (val == ".") {

            havedecimal = 1;
            p = i.substring(k + 1, k + 4);

            break;
        }


    }

    if (havedecimal == 0)
        i = i + ".000";

    if (p.length == 1) {
        l = p + "00";
        i = String(parseInt(i)) + "." + l;
    }
    if (p.length == 2) {
        l = p + "0";
        i = String(parseInt(i)) + "." + l;
    }
    if (p.length > 2) {
        l = p;
        i = String(parseInt(i)) + "." + l;
    }

    item = i;

    for (k = 0; k < i.length; k++) {
        val = i.substring(k, k + 1);
        if (val == ".") {

            havedecimal = 1;
            p = i.substring(k + 1, k + 4);

            break;
        }


    }
    p = String(p);
    d1 = p.substring(0, 1);

    d2 = p.substring(1, 2);

    d3 = p.substring(2, 3);


    d1 = parseInt(d1);
    d2 = parseInt(d2);
    d3 = parseInt(d3);
    d4 = parseInt(i);
    if (d3 != 0) {
        if ((d3 >= 1) && (d3 < 5));
        else {
            d2 = d2 + 1;
            d3 = 0;
            if (d2 == 10) {
                d2 = 0
                d1 = d1 + 1;
            }
            if (d1 == 10) {
                d1 = 0
                d4 = d4 + 1;
            }
        }

    }
    else {

    }
    i = String(d4) + "." + String(d1) + String(d2);
    return i;
}

//Getting the Fee Amount of the Selected Fee Type and Date.(Davist Kr. Gera)
function GetFeeValue(strFeeType, strFeeDate, obj) {
    var intCounter, intFeeAmount = 0;

    for (intCounter = 0; intCounter < ArrFee.length; intCounter++) {
        if (strFeeType == Trim(ArrFee[intCounter][1])) //comparing Fee Type.
        {

            if (dateComp(strFeeDate, ArrFee[intCounter][3]) >= 0) //means the ParamDate is greater than or equal to FromFeeDate.
            {

                if (dateComp(strFeeDate, ArrFee[intCounter][4]) <= 0) //means the ParamDate is less than ToFeeDate.	
                {
                    intFeeAmount = ArrFee[intCounter][2];
                    break;
                }
            }
        }
    }

    obj.value = intFeeAmount;
}

//--------------------------------------------
//Getting the Valid Date as per the defined format DD/MM/YYYY.(Anurag Jain)
function isValidDate(field1, Disp) {

    var fLength = field1.value.length;
    var divider_values = new Array('-', '.', '/', ' ', ':', '_', ',');
    var array_elements = 7;
    var day1 = new String(null);
    var month1 = new String(null);
    var year1 = new String(null);
    var divider1 = null;
    var outdate1 = null;
    var counter1 = 0;
    var divider_holder = new Array('0', '0', '0');
    var s = String(field1.value);

    if (fLength == 0) {
        return true;
    }

    if (field1.value.toUpperCase() == 'NOW' || field1.value.toUpperCase() == 'TODAY') {
        var newDate1 = new Date();
        if (navigator.appName == "Netscape") {
            var myYear1 = newDate1.getYear() + 1900;
        }
        else {
            var myYear1 = newDate1.getYear();
        }
        var myMonth1 = newDate1.getMonth() + 1;
        var myDay1 = newDate1.getDate();
        field1.value = myDay1 + "/" + myMonth1 + "/" + myYear1;
        fLength = field1.value.length;
        s = String(field1.value);
    }

    if (fLength != 0 && (fLength < 6 || fLength > 11)) {
        invalid_date2(field1);
        return false;
    }

    for (var i = 0; i < 3; i++) {
        for (var x = 0; x < array_elements; x++) {
            if (s.indexOf(divider_values[x], counter1) != -1) {
                divider1 = divider_values[x];
                divider_holder[i] = s.indexOf(divider_values[x], counter1);

                counter1 = divider_holder[i] + 1;

                break;
            }
        }
    }

    if (divider_holder[2] != 0) {
        invalid_date2(field1);
        return false;
    }

    if (divider_holder[0] == 0 && divider_holder[1] == 0) {

        if (fLength == 6) {
            day1 = field1.value.substring(0, 2);
            month1 = field1.value.substring(2, 4);
            year1 = field1.value.substring(4, 6);
            if ((year1 = validate_year(year1)) == false) {
                invalid_date2(field1);
                return false;
            }
        }
        else if (fLength == 7) {
            day1 = field1.value.substring(0, 2);
            month1 = field1.value.substring(2, 5);
            year1 = field1.value.substring(5, 7);
            if ((month1 = convert_month(month1)) == false) {
                invalid_date2(field1);
                return false;
            }
            if ((year1 = validate_year(year1)) == false) {
                invalid_date2(field1);
                return false;
            }
        }
        else if (fLength == 8) {
            day1 = field1.value.substring(0, 2);
            month1 = field1.value.substring(2, 4);
            year1 = field1.value.substring(4, 8);
            if (year1.length == 4 && (parseInt(year1) < 1900 || parseInt(year1) > 2100)) {

                field1.focus();
                field1.select();
                return false;
            }
        }
        else if (fLength == 9) {
            day1 = field1.value.substring(0, 2);
            month1 = field1.value.substring(2, 5);
            year1 = field1.value.substring(5, 9);

            if ((month1 = convert_month(month1)) == false) {
                invalid_date2(field1);
                return false;
            }
        }

        if ((outdate1 = validate_date(day1, month1, year1)) == false) {

            field1.focus();
            field1.select();
            return false;
        }

        field1.value = outdate1;
        return true;
    }

    if (divider_holder[0] != 0 && divider_holder[1] != 0) {
        day1 = field1.value.substring(0, divider_holder[0]);
        month1 = field1.value.substring(divider_holder[0] + 1, divider_holder[1]);

        year1 = field1.value.substring(divider_holder[1] + 1, field1.value.length);
    }

    if (isNaN(day1) && isNaN(year1)) {
        invalid_date2(field1);
        return false;
    }

    if (day1.length == 1) {
        day1 = '0' + day1;
    }

    if (month1.length == 1) {
        month1 = '0' + month1;
    }

    if (year1.length == 2) {
        if ((year1 = validate_year(year1)) == false) {
            invalid_date2(field1);
            return false;
        }
    }

    if (month1.length == 3 || month1.length == 4) {
        if ((month1 = convert_month(month1)) == false) {
            alert("month1" + month1);
            invalid_date2(field1);
            return false;
        }
    }

    if ((day1.length == 2 || month1.length == 2 || year1.length == 4) == false) {
        invalid_date2(field1);
        return false;
    }

    if (year1.length == 4 && (parseInt(year1) < 1900 || parseInt(year1) > 2100)) {
        field1.focus();
        field1.select();
        return false;
    }
    if ((outdate1 = validate_date(day1, month1, year1)) == false) {
        field1.focus();
        field1.select();
        return false;
    }

    field1.value = outdate1;
    var today = new Date();
    var todayDDMMYYYY, intMonth
    intMonth = parseInt(today.getMonth()) + 1
    todayDDMMYYYY = today.getDate() + "/" + intMonth + "/" + today.getYear();

    return true;

}

//--------------------------------------------------------------------------

function invalid_date2(inField) {
    inField.focus();
    inField.select();
    return true;
}


function getMime(strValue, strSupportedMime) {
    var strVal = strValue;
    if (strVal.lastIndexOf('.') > 0) {
        if (strSupportedMime.lastIndexOf(strVal.substring(strVal.lastIndexOf('.'))) < 0) {
            return 0;
        }
        else {
            return 1;
        }
    }
    else {
        return 0;
    }

}

function IsValidPassword(obj) {
    var strValue = Trim(obj.value);
    var objNotWholePattern = new RegExp("[^a-zA-z]");
    var objNotWholePattern1 = new RegExp(".{6,}");
    var objNotWholePattern2 = new RegExp("[_]");
    if ((strValue.search(objNotWholePattern) != -1 || strValue.search(objNotWholePattern2) != -1) && strValue.search(objNotWholePattern1) != -1)
        return true;
    else
        return false;

}

function InsureSpaceAndSpclChar(e) {
    if (document.all) // if Internet Explorer
    {
        var keyCode = e.keyCode;

        if (keyCode == 32 || keyCode == 38 || keyCode == 62 || keyCode == 60) //For space,&,<,> resp.
        {
            window.event.returnValue = false;
        }

    }
    else // other browsers
    {
        if (e.keyCode == 0) {
            var keyCode = e.charCode;
            if (keyCode == 32 || keyCode == 38 || keyCode == 62 || keyCode == 60) {
                e.cancel = true;
                e.preventDefault();
                return false;
            }
        }

    }
}

function InsureInteger(e) {
    if (document.all) // if Internet Explorer
    {
        var keyCode = e.keyCode;

        if (!((keyCode > 47 && keyCode < 58))) {
            window.event.returnValue = false;
        }

    }
    else // other browsers
    {
        if (e.keyCode == 0) {
            var keyCode = e.charCode;
            if (!((keyCode > 47 && keyCode < 58))) {
                e.cancel = true;
                e.preventDefault();
                return false;
            }
        }

    }

}


/**--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*Function Name		:  InsureDateString
*Created  By		:  Bansh N.S. Patel
*Purpose 			:  To move the selected items form one textfeild or textarea to another textfeild or textarea
*Creation Date 		:  11th December, 2007
*Return Value       :  Bool   
*Parametes	:
*			  1)  e : Control to be validated 

*Example           : This function will insure that only integer as well as slash(/) charector should be entered
*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/

function InsureDateString(e) {
    if (document.all) // if Internet Explorer
    {
        var keyCode = e.keyCode;

        if ((keyCode != 47 && !(keyCode > 47 && keyCode < 58))) {
            window.event.returnValue = false;
        }

    }
    else // other browsers
    {
        if (e.keyCode == 0) {
            var keyCode = e.charCode;
            if ((keyCode != 47 && !(keyCode > 47 && keyCode < 58))) {
                e.cancel = true;
                e.preventDefault();
                return false;
            }
        }

    }

}

/**--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*Function Name		:  SSNValidation
*Created  By		:  Bansh N.S. Patel
*Purpose 			:  To move the selected items form one textfeild or textarea to another textfeild or textarea
*Creation Date 		:  11th December, 2007
*Return Value       :  Bool   
*Parametes	:
*			  1)ssn : string 

*Example            : This function will insure that only integer as well as (-,/) charector should be entered
*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
function SSNValidation(ssn) 
{
    var matchArr = ssn.match(/^(\d{4})/);
    if (matchArr == null) 
    {
        return false;
    }
    else 
    {
        return true;
    }
}
/**--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*Function Name		:  InsureSSNString
*Created  By		:  Bansh N.S. Patel
*Purpose 			:  To move the selected items form one textfeild or textarea to another textfeild or textarea
*Creation Date 		:  11th December, 2007
*Return Value       :  Bool   
*Parametes	:
*			   1) e : Control to be validated 

*Example            : This function will insure that only integer as well as (-,/) charector should be entered
*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*/
function InsureSSNString(e) 
{
    if (document.all) // if Internet Explorer
    {
        var keyCode = e.keyCode;

        if ((keyCode != 45 && !(keyCode > 45 && keyCode < 58))) 
        {
            window.event.returnValue = false;
        }

    }
    else // other browsers
    {
        if (e.keyCode == 0) 
        {
            var keyCode = e.charCode;
            if ((keyCode != 45 && !(keyCode > 45 && keyCode < 58))) 
            {
                e.cancel = true;
                e.preventDefault();
                return false;
            }
        }

    }
}
function InsureNotInteger(e) {
    if (document.all) // if Internet Explorer
    {
        var keyCode = e.keyCode;

        if ((keyCode > 47 && keyCode < 58)) {
            window.event.returnValue = false;
        }

    }
    else // other browsers
    {
        if (e.keyCode == 0) {
            var keyCode = e.charCode;
            if ((keyCode > 47 && keyCode < 58)) {
                e.cancel = true;
                e.preventDefault();
                return false;
            }
        }

    }
}

function ValidateEmail(objEmail) {
    var blnretVal = true;
    var regExpr = new RegExp("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
    if (objEmail.value.search(regExpr) == -1) {
        blnretVal = false;
    }
    return blnretVal;
}

function isStringInteger(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 isStringNotInteger(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        // Check that current character is not a number.
        var c = s.charAt(i);

        if (((c >= "0") && (c <= "9"))) { return false };
    }
    // All characters are not number.
    return true;
}

function validateDate(fld) {
    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
    var errorMessage = 'Please enter valid date as month, day, and four digit year.\nYou may use a slash, hyphen or period to separate the values.\nThe date must be a real date. 2-30-2000 would not be accepted.\nFormay mm/dd/yyyy.';
    if ((fld.value.match(RegExPattern)) && (fld.value != '')) {
        return true;
    } else {
        fld.focus();
        return false;
    }
}

function IsDateLessThanToday(dat1) {
    var retval
    var formatChar = "/";
    var aFormat = dat1.split(formatChar);


    var today = new Date();
    var yearNow = today.getFullYear();

    if (aFormat[2].length == 2) {
        if (parseInt(aFormat[2], 10) >= 0 && parseInt(aFormat[2], 10) <= parseInt(CutFromRightHand(yearNow, 2), 10)) {

            aFormat[2] = '20' + aFormat[2];
        }
        else {
            aFormat[2] = '19' + aFormat[2];
        }
        retval = aFormat[0] + "/" + aFormat[1] + "/" + aFormat[2];
    }
    else
        retval = dat1;
    var dateNow = new Date();
    var date1 = new Date(retval);
    var month = date1.getMonth();
    var DateDifference = parseInt((date1 - dateNow));
    if (DateDifference > 0)
        return false;
    else
        return true;

}
function IsDateLessThanEndDate(dat1, dat2) {
    var date1 = new Date(dat1);
    var date2 = new Date(dat2);
    var day1 = date1.getDate();
    var month1 = date1.getMonth();
    var year1 = date1.getYear();
    var day2 = date2.getDate();
    var month2 = date2.getMonth();
    var year2 = date2.getYear();
    if (day1 == day2 && month1 == month2 && year1 == year2)
        return 0;
    else if ((day1 < day2 && month1 == month2 && year1 == year2) || (month1 < month2 && year1 == year2) || year1 < year2)
        return -1;
    else
        return 1;
}
function CutFromRightHand(str, n) {

    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else {
        var iLen = String(str).length;
        return String(str).substring(iLen, iLen - n);
    }
}

function ComapareNumber(num1, num2) {
    if (num1 < num2)
        return 1;
    else
        return 0;
}

//The function masks Rhone with format "111-111-1111" /*Now we don't use these functions, because we use multicountries*/
function maskPhone(obj, evt) {
    if (!(evt.keyCode == 8)) {
        fldVal = obj.value;
        keyCount = fldVal.length;
        keyEntered = fldVal.substring(keyCount - 1, keyCount);
        if (keyCount <= 1) isNamedFone = false;

        keyCount++;
        //alert(keyCount);
        switch (keyCount) {
            case 4:
                obj.value += "-";
                break;
            case 8:
                obj.value += "-";
                break;
        }
    }
}


//The function masks Phone after User has copied it /*Now we don't use these functions, because we use multicountries*/
function maskCopiedPhone(obj) {
    fldVal = obj.value;
    var MaskedPhone = "";
    if (!isValidPhone(obj)) {
        for (i = 0; i < fldVal.length; i++) {
            var ch = fldVal.substring(i, i + 1);
            switch (i) {
                case 3:
                    if (ch != "-") {
                        MaskedPhone = MaskedPhone + "-";
                    }
                    break;
                case 6:
                    if (ch != "-") {
                        MaskedPhone = MaskedPhone + "-";
                    }
                    break;
            }

            MaskedPhone = MaskedPhone + ch;
        }
        obj.value = MaskedPhone;
    }
}



//The function masks SSN after User has copied it
function maskCopiedSSN(obj) {
    fldVal = obj.value;
    var MaskedSSN = "";
    var IsFstPosCorrect = true; //For the case if in the copied string there is already 

    for (i = 0; i < fldVal.length; i++) {
        var ch = fldVal.substring(i, i + 1);
        switch (i) {
            case 3:
                if (ch != "-") {
                    MaskedSSN = MaskedSSN + "-";
                    IsFstPosCorrect = false;
                }
                break;
            case 5:
                if (ch != "-") {
                    if (!IsFstPosCorrect) {
                        MaskedSSN = MaskedSSN + "-";
                    }
                }
                break;
            case 6:
                if (ch != "-") {
                    if (IsFstPosCorrect) {
                        MaskedSSN = MaskedSSN + "-";
                    }
                }
                break;
        }

        MaskedSSN = MaskedSSN + ch;
    }
    obj.value = MaskedSSN;

}


//The function masks SSN with format "111-11-1111"
function maskSSN(obj, evt) {
    if (!(evt.keyCode == 8)) {
        fldVal = obj.value;
        keyCount = fldVal.length;
        keyEntered = fldVal.substring(keyCount - 1, keyCount);

        keyCount++;
        switch (keyCount) {
            case 4:
                obj.value += "-";
                break;
            case 7:
                obj.value += "-";
                break;
        }
    }
}

//The function Validate the phone for the format 111-111-1111
function isValidPhone(obj) {
    var IsValid = true;
    var checkString = lTrim(obj.value);

    if (checkString.length <= 0) {
        return false;
    }
    var count = 0;
    // LOOP THROUGH STRING CHARACTER BY CHARACTER
    if (checkString.length < 13) {
        for (i = 0; i < checkString.length; i++) {
            count++;
            ch = checkString.substring(i, i + 1);
            // ENSURE CHARACTER IS AN ALPHA CHARACTER
            switch (count) {
                case 4:
                    {
                        if (ch != "-") {
                            IsValid = false;
                        }
                        break;
                    }
                case 8:
                    {
                        if (ch != "-") {
                            IsValid = false;
                        }
                        break;
                    }
                default:
                    {
                        if (ch == "-") {
                            IsValid = false;
                        }
                        break;
                    }
            }
        }
    }
    else {
        IsValid = false;
    }
    return IsValid;
}

//The function masks date with format "mm/dd/yyyy"
function maskDate(obj, evt) {
    if (!(evt.keyCode == 8)) {
        fldVal = obj.value;
        keyCount = fldVal.length;
        keyEntered = fldVal.substring(keyCount - 1, keyCount);

        keyCount++;
        switch (keyCount) {
            case 3:
                obj.value += "/";
                break;
            case 6:
                obj.value += "/";
                break;
        }
    }
}

//The function masks date with format "mm/dd/yyyy" after User has copied it
function maskCopiedDate(obj) {
    fldVal = obj.value;
    var MaskedDate = "";
    var IsFstPosCorrect = true;

    for (i = 0; i < fldVal.length; i++) {
        var ch = fldVal.substring(i, i + 1);
        switch (i) {
            case 2:
                if (ch != "/") {
                    MaskedDate = MaskedDate + "/";
                    IsFstPosCorrect = false;
                }
                break;
            case 4:
                if (ch != "/") {
                    if (!IsFstPosCorrect) {
                        MaskedDate = MaskedDate + "/";
                    }
                }
                break;
            case 5:
                if (ch != "/") {
                    if (IsFstPosCorrect) {
                        MaskedDate = MaskedDate + "/";
                    }
                }
                break;
        }

        MaskedDate = MaskedDate + ch;
    }
    obj.value = MaskedDate;

}
  
 
