﻿//--------------------------------------------------------------------
function FindObjectID(idName) {
    return document.getElementById(idName);
}
//--------------------------------------------------------------------
function InputInt() {
    if ((event.keyCode < 48) || (event.keyCode > 57)) {
        event.keyCode = 0;
    }
}

//--------------------------------------------------------------------
function InputFlo() {
    if (((event.keyCode < 48) || (event.keyCode > 57)) && (event.keyCode != 44) && (event.keyCode != 45) && (event.keyCode != 46)) {
        event.keyCode = 0;
    }
}
//--------------------------------------------------------------------
function InputNull(id) {
    var obj = FindObjectID(id);
    if (obj.value == "") {
        alert("Please enter a value");
        obj.focus();
    }
}
function InputNoSpace(id) {
    var obj = FindObjectID(id);
    var sText = obj.value.split('');
    var iCount = 0;
    for (var i = 0; i < sText.length; i++) {
        if (sText[i] == ' ')
            iCount += 1;
    }
    if (iCount > 0) {
        alert("Please do not enter a space");
        obj.select();
        obj.focus();
    }
}
// ------------------------------------------------------------------
function ChkisDate(val, format) {
    var tb = document.getElementById(val);
    strTxt = trimAll(tb.value);
    if (strTxt == '')
        return false;
    var date = DateFromFormat(strTxt, format);
    if (date == 0) {
        window.alert('Ngày tháng không hợp lệ! Nhập theo định dạng: ' + format);
        tb.select();
        tb.focus();
        return false;
    }
    return true;
}
//--------------------------------------------------------------------
// Utility functions for parsing in DateFromFormat()
//--------------------------------------------------------------------
function _isInteger(val) {
    var digits = '1234567890';
    for (var i = 0; i < val.length; i++) {
        if (digits.indexOf(val.charAt(i)) == -1) { return false; }
    }
    return true;
}
function _getInt(str, i, minlength, maxlength) {
    for (var x = maxlength; x >= minlength; x--) {
        var token = str.substring(i, i + x);
        if (token.length < minlength) { return null; }
        if (_isInteger(token)) { return token; }
    }
    return null;
}
//--------------------------------------------------------------------
// DateFromFormat( date_string , format_string )
// This function takes a date string and a format string. It matches
// If the date string matches the format string, it returns the 
// getTime() of the date. If it does not match, it returns 0.
// ------------------------------------------------------------------
function DateFromFormat(val, format) {
    val = val + '';
    format = format + '';
    var i_val = 0;
    var i_format = 0;
    var c = '';
    var token = '';
    var token2 = '';
    var x, y;
    var now = new Date();
    var year = now.getYear();
    var month = now.getMonth() + 1;
    var date = 1;
    var hh = now.getHours();
    var mm = now.getMinutes();
    var ss = now.getSeconds();
    var ampm = '';

    while (i_format < format.length) {
        // Get next token from format string
        c = format.charAt(i_format);
        token = '';
        while ((format.charAt(i_format) == c) && (i_format < format.length)) {
            token += format.charAt(i_format++);
        }
        // Extract contents of value based on format token
        if (token == 'yyyy' || token == 'yy' || token == 'y') {
            if (token == 'yyyy') { x = 4; y = 4; }
            if (token == 'yy') { x = 2; y = 2; }
            if (token == 'y') { x = 2; y = 4; }
            year = _getInt(val, i_val, x, y);
            if (year == null) { return 0; }
            i_val += year.length;
            if (year.length == 2) {
                if (year > 70) { year = 1900 + (year - 0); }
                else { year = 2000 + (year - 0); }
            }
        }
        else if (token == 'MMM' || token == 'NNN') {
            month = 0;
            for (var i = 0; i < MONTH_N.length; i++) {
                var month_name = MONTH_N[i];
                if (val.substring(i_val, i_val + month_name.length).toLowerCase() == month_name.toLowerCase()) {
                    if (token == 'MMM' || (token == 'NNN' && i > 11)) {
                        month = i + 1;
                        if (month > 12) { month -= 12; }
                        i_val += month_name.length;
                        break;
                    }
                }
            }
            if ((month < 1) || (month > 12)) { return 0; }
        }
        else if (token == 'EE' || token == 'E') {
            for (var i = 0; i < DAY_N.length; i++) {
                var day_name = DAY_N[i];
                if (val.substring(i_val, i_val + day_name.length).toLowerCase() == day_name.toLowerCase()) {
                    i_val += day_name.length;
                    break;
                }
            }
        }
        else if (token == 'MM' || token == 'M') {
            month = _getInt(val, i_val, token.length, 2);
            if (month == null || (month < 1) || (month > 12)) { return 0; }
            i_val += month.length;
        }
        else if (token == 'dd' || token == 'd') {
            date = _getInt(val, i_val, token.length, 2);
            if (date == null || (date < 1) || (date > 31)) { return 0; }
            i_val += date.length;
        }
        else if (token == 'hh' || token == 'h') {
            hh = _getInt(val, i_val, token.length, 2);
            if (hh == null || (hh < 1) || (hh > 12)) { return 0; }
            i_val += hh.length;
        }
        else if (token == 'HH' || token == 'H') {
            hh = _getInt(val, i_val, token.length, 2);
            if (hh == null || (hh < 0) || (hh > 23)) { return 0; }
            i_val += hh.length;
        }
        else if (token == 'KK' || token == 'K') {
            hh = _getInt(val, i_val, token.length, 2);
            if (hh == null || (hh < 0) || (hh > 11)) { return 0; }
            i_val += hh.length;
        }
        else if (token == 'kk' || token == 'k') {
            hh = _getInt(val, i_val, token.length, 2);
            if (hh == null || (hh < 1) || (hh > 24)) { return 0; }
            i_val += hh.length; hh--;
        }
        else if (token == 'mm' || token == 'm') {
            mm = _getInt(val, i_val, token.length, 2);
            if (mm == null || (mm < 0) || (mm > 59)) { return 0; }
            i_val += mm.length;
        }
        else if (token == 'ss' || token == 's') {
            ss = _getInt(val, i_val, token.length, 2);
            if (ss == null || (ss < 0) || (ss > 59)) { return 0; }
            i_val += ss.length;
        }
        else if (token == 'a') {
            if (val.substring(i_val, i_val + 2).toLowerCase() == 'am') { ampm = 'AM'; }
            else if (val.substring(i_val, i_val + 2).toLowerCase() == 'pm') { ampm = 'PM'; }
            else { return 0; }
            i_val += 2;
        }
        else {
            if (val.substring(i_val, i_val + token.length) != token) { return 0; }
            else { i_val += token.length; }
        }
    }
    // If there are any trailing characters left in the value, it doesn't match
    if (i_val != val.length) { return 0; }
    // Is date valid for month?
    if (month == 2) {
        // Check for leap year
        if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) { // leap year
            if (date > 29) { return 0; }
        }
        else { if (date > 28) { return 0; } }
    }
    if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
        if (date > 30) { return 0; }
    }
    // Correct hours value
    if (hh < 12 && ampm == 'PM') { hh = hh - 0 + 12; }
    else if (hh > 11 && ampm == 'AM') { hh -= 12; }
    var newdate = new Date(year, month - 1, date, hh, mm, ss);
    return newdate.getTime();
}
// ------------------------------------------------------------------
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 submitForm(submitButtonId) {
    if (event.keyCode == 13) {
        event.cancelBubble = true;
        event.returnValue = false;
        FindObjectID(submitButtonId).click();
    }
}
//--------------------------------------------------------------------
function DeleteCart() {
    if (confirm("Are you sure delete selected row?") == true) {
        grid.PerformCallback('Delete');
        CallbackPanelAddToCart.PerformCallback('ReLoad');
        return true;
    }
    else
        return false;
}
function UpdateCart() {
    if (confirm("Are you sure update now?") == true) {
        CallbackPanelUpdateCart.PerformCallback();
        CallbackPanelAddToCart.PerformCallback('ReLoad');
        return true;
    }
    else
        return false;
}
function CloseOrder() {
    if (confirm("Are you sure close selected row?") == true) {
        grid.PerformCallback('Delete');
        return true;
    }
    else
        return false;
}
function gridSelectionChanged() {
    var frm = document.Form1;
    if (!frm) {
        frm = document.aspnetForm;
    }

    var selCount = grid.GetSelectedRowCount() - grid.selectedWithoutPageRowCount;
    if (selCount > 0) {
        for (i = 0; i < frm.length; i++) {
            k = frm.elements[i];
            if ((k.type == 'button' || k.type == 'submit') && k.name.indexOf('btnDel') != -1) {
                k.disabled = false;
            }
        }
    }
    else {
        for (i = 0; i < frm.length; i++) {
            k = frm.elements[i];
            if ((k.type == 'button' || k.type == 'submit') && k.name.indexOf('btnDel') != -1) {
                k.disabled = true;
            }
        }
    }
}
