﻿// JScript File

function trimAll(sString) {
    while (sString.substring(0, 1) == ' ') {
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length - 1, sString.length) == ' ') {
        sString = sString.substring(0, sString.length - 1);
    }
    return sString;
}

function fnOpenFind(TableName, ColumnName, AliasName, WhereClause, ReturnControl) {

    var q = "?TableName=" + TableName + "&ColumnName=" + ColumnName + "&AliasName=" + AliasName + "&WhereClause=" + WhereClause + "&ReturnControl=" + ReturnControl;
    var setting = "toolbar=no,status=yes,scrollbars=yes,resizable=yes,width=750,height=650,left=150,top=10";
    window.open('../frmFind.aspx' + q, "Find", setting);
}

//  check for valid numeric strings	
function IsNumeric(strString) {
    var strValidChars = "0123456789.-";
    var strChar;
    var blnResult = true;

    if (strString.length == 0) return true;

    //  test strString consists of valid characters listed above
    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}
function checkDate(Element, Format, Message) {
    strValue = Element.value;
    var objRegExp = /^\d{1,2}(\/)\d{1,2}(\/)\d{1,4}$/;
    if (!objRegExp.test(strValue)) {
        alert("Please enter valid " + Message);
        Element.focus();
        return false;
    }
    else {
        var arrayDate = strValue.split("\/"); //split date into month, day, year

        if (Format == "mm/dd/yy" || Format == "mm/dd/yyyy") {
            var intDay = parseInt(arrayDate[1], 10);
            var intYear = parseInt(arrayDate[2], 10);
            var intMonth = parseInt(arrayDate[0], 10);
        }
        else if (Format == "dd/mm/yy" || Format == "dd/mm/yyyy") {
            var intDay = parseInt(arrayDate[0], 10);
            var intYear = parseInt(arrayDate[2], 10);
            var intMonth = parseInt(arrayDate[1], 10);
        }
        if (intMonth > 12 || intMonth < 1) {
            alert("Please enter valid " + Message);
            Element.focus();
            return false;
        }
        else {
            var arrayLookup = { '1': 31, '3': 31, '4': 30, '5': 31, '6': 30, '7': 31,
                '8': 31, '9': 30, '10': 31, '11': 30, '12': 31
            }
            if (intMonth != 2) {
                if (intDay <= arrayLookup[intMonth] && intDay != 0)
                    return true;
            }
            else {
                if (FieldAttrib["FullYear"] == "Yes") {
                    var booLeapYear = (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0));
                    if (((booLeapYear && intDay <= 29) || (!booLeapYear && intDay <= 28)) && intDay != 0)
                        return true;
                } else {
                    return true;
                }
            }
        }
    }
    alert("Please enter valid " + Message);
    Element.focus();
    return false;
}

function compareDate(objStartDate, objEndDate, Format, Message) {
    if (objStartDate.value != "" && objEndDate.value != "") {
        var stdt, enddt;

        var arrstdt = objStartDate.value.split("/");
        var arrenddt = objEndDate.value.split("/");
        if (Format == "mm/dd/yyyy") {
            stdt = Date.UTC(arrstdt[2], arrstdt[0], arrstdt[1], 0, 0, 0);
            enddt = Date.UTC(arrenddt[2], arrenddt[0], arrenddt[1], 0, 0, 0);
        }
        else {
            if (Format == "dd/mm/yyyy") {
                stdt = Date.UTC(arrstdt[2], arrstdt[1], arrstdt[0], 0, 0, 0);
                enddt = Date.UTC(arrenddt[2], arrenddt[1], arrenddt[0], 0, 0, 0);
            }
        }
        if (stdt > enddt) {
            alert(Message);
            return false;
        }
    }
    return true;

}

//**********************************************/

function fnKeyPressDate(DateValue, DateCtrl) {
    var txtCtrl = document.getElementById(DateCtrl);

    if (event.keyCode == 32 || DateValue.length >= 10) {
        event.keyCode = 0;
        return;
    }
    if (DateValue.length == 2 || DateValue.length == 5) {
        DateValue = DateValue + '/';
        txtCtrl.value = DateValue;
    }
    if (event.keyCode == 47) {
        if (DateValue.length == 3 || DateValue.length == 6) {
            event.keyCode = 0;
            return;
        }
        if (DateValue.length == 0 || DateValue.length > 5) {
            event.keyCode = 0;
            return;
        }
        if (DateValue.length == 1) {
            DateValue = '0' + DateValue;
            txtCtrl.value = DateValue;
            return;
        }
        if (DateValue.length == 4) {
            DateValue = DateValue.substring(0, 3) + '0' + DateValue.substring(3, 4) + '/';
            txtCtrl.value = DateValue;
            event.keyCode = 0;
            return;
        }
        DateValue = DateValue + '/';
        txtCtrl.value = DateValue;
        event.keyCode = 0;
        return;
    }
    if (event.keyCode < 48 || event.keyCode > 57) {
        event.keyCode = 0;
        return;
    }
    if (event.keyCode == 48) {
        if (DateValue.length == 1) {
            if (DateValue[0] == '0') {
                event.keyCode = 0;
                return;
            }
        }
        if (DateValue.length == 4) {
            if (DateValue[3] == '0') {
                event.keyCode = 0;
                return;
            }
        }
    }
}

function fnKeyUpDate(DateValue, DateCtrl) {
    var txtCtrl = document.getElementById(DateCtrl);
    if (event.keyCode != 8 && event.keyCode != 46) {
        if (DateValue.length == 2 || DateValue.length == 5) {
            DateValue = DateValue + '/';
            txtCtrl.value = DateValue;
            return;
        }
    }
    if (event.keyCode == 46) txtCtrl.value = '';
}
/***********************************************/
/****function to check date*********************/
/***********************************************/
function fnCheckDate(DateValue, DateCtrl) {
    var dd;
    var mm;
    var yyyy;
    var txtCntrl = document.getElementById(DateCtrl);
    txtCntrl.style.backgroundColor = 'white';
    if (DateValue.length == 0) return false;
    if (DateValue.length != 10) {
        alert('Enter date in mm/dd/yyyy format.');
        txtCntrl.focus();
        return false;
    }
    //    dd = DateValue.substring(0,2);
    //    mm = DateValue.substring(3,5);
    dd = DateValue.substring(3, 5);
    mm = DateValue.substring(0, 2);
    yyyy = DateValue.substring(6);
    if (DateValue.substring(2, 3) != '/' || DateValue.substring(5, 6) != '/') {
        alert('Invalid date entered.Apply date format: mm/dd/yyyy');
        txtCntrl.focus();
        return false;
    }
    if (parseFloat(yyyy) == 0 || parseFloat(yyyy) < 1600) {
        alert('Year should be more than 1600.Apply date format: mm/dd/yyyy');
        txtCntrl.focus();
        return false;
    }
    if (parseFloat(mm) == 0 || parseFloat(mm) > 12) {
        alert('Enter proper month.Apply date format: mm/dd/yyyy');
        txtCntrl.focus();
        return false;
    }
    if (parseFloat(dd) == 0) {
        alert('Enter proper day.Apply date format: mm/dd/yyyy');
        txtCntrl.focus();
        return false;
    } else {
        switch (parseFloat(mm)) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12: 
                {
                    if (parseFloat(dd) <= 31)
                        return true;
                    else {
                        alert('Enter proper day.Apply date format: mm/dd/yyyy');
                        txtCntrl.focus();
                        return false;
                    }
                } break;
            case 4:
            case 6:
            case 9:
            case 11: 
                {
                    if (parseFloat(dd) <= 30)
                        return true;
                    else {
                        alert('Enter proper day.Apply date format: mm/dd/yyyy');
                        txtCntrl.focus();
                        return false;
                    }
                } break;
            case 2: 
                {
                    if ((parseFloat(yyyy) % 4) == 0)
                        var maxDays = 29;
                    else
                        var maxDays = 28;

                    if (parseFloat(dd) <= maxDays)
                        return true;
                    else {
                        alert('Enter proper day.Apply date format: mm/dd/yyyy');
                        txtCntrl.focus();
                        return false;
                    }
                }
        }
    }
}

function DateAdd(objDate, strInterval, intIncrement) {
    if (typeof (objDate) == "string") {
        objDate = new Date(objDate);

        if (isNaN(objDate)) {
            throw ("DateAdd: Date is not a valid date");
        }
    }
    else if (typeof (objDate) != "object" || objDate.constructor.toString().indexOf("Date()") == -1) {
        throw ("DateAdd: First parameter must be a date object");
    }

    if (
        strInterval != "M"
        && strInterval != "D"
        && strInterval != "Y"
        && strInterval != "h"
        && strInterval != "m"
        && strInterval != "uM"
        && strInterval != "uD"
        && strInterval != "uY"
        && strInterval != "uh"
        && strInterval != "um"
        && strInterval != "us"
        ) {
        throw ("DateAdd: Second parameter must be M, D, Y, h, m, uM, uD, uY, uh, um or us");
    }

    if (typeof (intIncrement) != "number") {
        throw ("DateAdd: Third parameter must be a number");
    }
    switch (strInterval) {
        case "M":
            objDate.setMonth(parseInt(objDate.getMonth()) + parseInt(intIncrement));
            break;

        case "D":
            objDate.setDate(parseInt(objDate.getDate()) + parseInt(intIncrement));
            break;

        case "Y":
            objDate.setYear(parseInt(objDate.getYear()) + parseInt(intIncrement));
            break;

        case "h":
            objDate.setHours(parseInt(objDate.getHours()) + parseInt(intIncrement));
            break;

        case "m":
            objDate.setMinutes(parseInt(objDate.getMinutes()) + parseInt(intIncrement));
            break;

        case "s":
            objDate.setSeconds(parseInt(objDate.getSeconds()) + parseInt(intIncrement));
            break;

        case "uM":
            objDate.setUTCMonth(parseInt(objDate.getUTCMonth()) + parseInt(intIncrement));
            break;

        case "uD":
            objDate.setUTCDate(parseInt(objDate.getUTCDate()) + parseInt(intIncrement));
            break;

        case "uY":
            objDate.setUTCFullYear(parseInt(objDate.getUTCFullYear()) + parseInt(intIncrement));
            break;

        case "uh":
            objDate.setUTCHours(parseInt(objDate.getUTCHours()) + parseInt(intIncrement));
            break;

        case "um":
            objDate.setUTCMinutes(parseInt(objDate.getUTCMinutes()) + parseInt(intIncrement));
            break;

        case "us":
            objDate.setUTCSeconds(parseInt(objDate.getUTCSeconds()) + parseInt(intIncrement));
            break;
    }
    return objDate;
}
/*********************************************/
//        }

function IncreaseTextSize(obj) {
    a = obj.value.split('\n');
    b = 1;
    for (x = 0; x < a.length; x++) {
        if (a[x].length >= obj.cols) b += Math.floor(a[x].length / obj.cols);
    }
    b += a.length;
    if (b > obj.rows) obj.rows = b;
    if (obj.readOnly == false) { obj.style.backgroundColor = 'lightyellow'; }
    
}
function DecreaseTextSize(obj, row) {
    obj.rows = row;
    if (obj.readOnly == false) { obj.style.backgroundColor = 'White' }
}

/****************************************************************/

function PopupCenter(pageURL, mywindow, w, h) {
    //alert(pageURL);
    var left = (screen.width / 2) - (w / 2);
    var top = (screen.height / 2) - (h / 2);
    var targetWin = window.open(pageURL, mywindow, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
    targetWin.focus();
    return false;
}


function PopupWindow(title, pageurl, control, control_id, hight, width) {
    // alert(pageurl);
    //alert(pageurl + '?KeepThis=true&q=\"' + $(control + '#' + control_id).val() + '\"&TB_iframe=true&height=' + hight + '&width=' + width + '');
    tb_show(title, pageurl + '?KeepThis=true&q=\"' +
                    $(control + '#' + control_id).val() +
                    '\"&TB_iframe=true&height=' + hight + '&width=' + width + '');
    return false;
}    

