﻿//Hàm thư viện Ngày tháng CreateBy TuanN
AGFS.DateUtils = {
    MMMM: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    MMM: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
    dddd: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
    ddd: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
    //2010-07-15T00:00:00+07:00
    convertDateToString: function (value, format) {
        try {
            if (value.indexOf('T').length != '-1')
                var a = value.split('T');
            else
                var a = value.split(' ');
            var b = a[0].split('-');
            var c = a[1].split('+');
            var e = c[0].split(':');
            var y = b[0];
            var M = b[1];
            var d = b[2];
            var H = e[0];
            var h = parseInt(H) % 12;
            if (h < 10)
                h = '0' + h;
            var m = e[1];
            var s = e[2];
            var t = '';
            if (H > 12)
                t = 'P.M';
            else
                t = 'A.M';
            var z = c[1];
            //String.Format("{0:y yy yyy yyyy}", dt);  // "8 08 008 2008"   year
            try {
                switch (format.match(new RegExp(/y/g)).length) {
                    default:
                        break;
                    case 1:
                        format = format.replace('y', y.substr(3, 1));
                        break;
                    case 2:
                        format = format.replace('yy', y.substr(2, 2));
                        break;
                    case 3:
                        format = format.replace('yyy', y.substr(1, 3));
                        break;
                    case 4:
                        format = format.replace('yyyy', y);
                        break;
                }
            } catch (Error) { }
            //String.Format("{0:M MM MMM MMMM}", dt);  // "3 03 Mar March"  month
            try {
                switch (format.match(new RegExp(/M/g)).length) {
                    default:
                        break;
                    case 1:
                        format = format.replace('M', M.substr(1, 1));
                        break;
                    case 2:
                        format = format.replace('MM', M);
                        break;
                    case 3:
                        format = format.replace('MMM', this.MMM[(parseInt(M) - 1)]);
                        break;
                    case 4:
                        format = format.replace('MMMM', this.MMMM[(parseInt(M) - 1)]);
                        break;
                }
            } catch (Error) { }
            //String.Format("{0:d dd}", dt);  // "9 09" day
            try {
                switch (format.match(new RegExp(/d/g)).length) {
                    default:
                        break;
                    case 1:
                        format = format.replace('d', d.substr(1, 1));
                        break;
                    case 2:
                        format = format.replace('dd', d);
                        break;
                }
            } catch (Error) { }
            //String.Format("{0:h hh H HH}",     dt);  // "4 04 16 16"      hour 12/24
            try {
                switch (format.match(new RegExp(/h/g)).length) {
                    default:
                        break;
                    case 1:
                        format = format.replace('h', h.substr(1, 1));
                        break;
                    case 2:
                        format = format.replace('hh', h);
                        break;
                }
            } catch (Error) { }
            try {
                switch (format.match(new RegExp(/H/g)).length) {
                    default:
                        break;
                    case 1:
                        format = format.replace('H', H.substr(1, 1));
                        break;
                    case 2:
                        format = format.replace('HH', H);
                        break;
                }
            } catch (Error) { }
            //String.Format("{0:m mm}",          dt);  // "5 05"            minute
            try {
                switch (format.match(new RegExp(/m/g)).length) {
                    default:
                        break;
                    case 1:
                        format = format.replace('m', m.substr(1, 1));
                        break;
                    case 2:
                        format = format.replace('mm', m);
                        break;
                }
            } catch (Error) { }
            //String.Format("{0:s ss}", dt);  // "7 07"            second
            try {
                switch (format.match(new RegExp(/s/g)).length) {
                    default:
                        break;
                    case 1:
                        format = format.replace('s', s.substr(1, 1));
                        break;
                    case 2:
                        format = format.replace('ss', s);
                        break;
                }
            } catch (Error) { }
            //String.Format("{0:t tt}",          dt);  // "P PM"            A.M. or P.M.
            try {
                switch (format.match(new RegExp(/t/g)).length) {
                    default:
                        break;
                    case 1:
                        format = format.replace('t', t.substr(1, 1));
                        break;
                    case 2:
                        format = format.replace('tt', t);
                        break;
                }
            } catch (Error) { }
            //String.Format("{0:z zz zzz}",      dt);  // "-6 -06 -06:00"   time zone
            try {
                switch (format.match(new RegExp(/z/g)).length) {
                    default:
                        break;
                    case 1:
                        format = format.replace('z', z.substr(0, 2));
                        break;
                    case 2:
                        format = format.replace('zz', z.substr(0, 3));
                        break;
                    case 3:
                        format = format.replace('zz', z);
                        break;
                }
            } catch (Error) { }
            return format;
        }
        catch (Error) { return Error; }
    },
    Now: function () {
        var date = new Date();
        return date.getFullYear() + '-' + (((date.getMonth() + 1) > 9) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds();
    },
    //Chuyen doi string thanh ngay thang nam theo dinh dang ngay truoc
    //Input string 10/02/2010
    //Output dinh dang kieu February 10,2010
    ConvertStringToMonthDayYearEN: function (strDate) {
        var date = new Date(strDate);
        var month;
        if (Encoder.isEmpty(strDate)) return '';
        switch (date.getMonth()) {
            case 0: month = "January"; break;
            case 1: month = "February"; break;
            case 2: month = "March"; break;
            case 3: month = "April"; break;
            case 4: month = "May"; break;
            case 5: month = "June"; break;
            case 6: month = "July"; break;
            case 7: month = "August"; break;
            case 8: month = "September"; break;
            case 9: month = "October"; break;
            case 10: month = "November"; break;
            case 11: month = "December"; break;
        }
        var day = date.getDate();
        if (day <= 9) {
            day = "0" + day;
        };
        return month + ' ' + day + ', ' + date.getFullYear();
    },
    //Chuyen doi string thanh ngay thang nam theo dinh dang ngay truoc
    //Input string 10/02/2010
    //Output dinh dang kieu February 10,2010
    //Create by TuanN
    ConvertStringToMonthDayYearTitleShort: function (strDate) {
        var date = new Date(strDate);
        var month;
        if (Encoder.isEmpty(strDate)) return '';
        switch (date.getMonth()) {
            case 0: month = "Jan"; break;
            case 1: month = "Feb"; break;
            case 2: month = "Mar"; break;
            case 3: month = "Apr"; break;
            case 4: month = "May"; break;
            case 5: month = "Jun"; break;
            case 6: month = "Jul &nbsp;"; break;
            case 7: month = "Aug"; break;
            case 8: month = "Sep"; break;
            case 9: month = "Oct"; break;
            case 10: month = "Nov"; break;
            case 11: month = "Dec"; break;
        }
        var day = date.getDate();
        if (day <= 9) {
            day = "0" + day;
        };
        return month + ' ' + day + ', ' + date.getFullYear();
    },
    // chuyen string thanh gio phut
    ConvertStringToHourMinus: function (strDate) {
        var date = new Date(strDate);
        var gio = date.getHours();
        if (gio == 0) {
            gio = "12";
        }
        else {
            if (gio <= 9) {
                gio = "0" + gio;
            }
        };
        var phut = date.getMinutes();
        if (phut <= 9) {
            phut = "0" + phut;
        }
        return gio + ':' + phut;
    },
    //Chuyen string thanh gio phut giay
    ConvertStringToHourMinusSecond: function (strDate) {
        var date = new Date(strDate);
        var gio = date.getHours();
        if (gio == 0) {
            gio = "12";
        }
        else {
            if (gio <= 9) {
                gio = "0" + gio;
            }
        };
        var phut = date.getMinutes();
        if (phut <= 9) {
            phut = "0" + phut;
        }
        var giay = date.getSeconds();
        if (giay <= 9) {
            giay = "0" + giay;
        }
        return gio + ':' + phut + ':' + giay;
    },
    // chuyen ngay tieng viet sang tieng anh  dd/MM -> MM/dd
    ConvertVietNameseToEnglish: function (strDate) {
        var arrDay = strDate.split('/');
        return arrDay[1] + '/' + arrDay[0] + '/' + arrDay[2];
    },
    //Chuyen doi string {dd/MM/yyyy HH:MM:ss} -> {MM/dd/yyyy}
    ConvertStringToMonthDayYear: function (strDate) {
        var ArrayDate = new Array();
        ArrayDate = strDate.split(' ');
        var strDayMonthYear = new Array();
        strDayMonthYear = ArrayDate[0].split('/');
        return strDayMonthYear[1] + "/" + strDayMonthYear[0] + "/" + strDayMonthYear[2];
    },
    // chuyen ngay tu tieng anh sang tieng viet MM/dd ->dd/MM
    ConvertEnglishToVietNamese: function (strDate) {
        if (Encoder.isEmpty(strDate)) return '';
        var arrDay = strDate.split('/');
        if (parseInt(arrDay[0]) <= 9) {
            arrDay[0] = "0" + parseInt(arrDay[0]);
        }
        if (parseInt(arrDay[1]) <= 9) {
            arrDay[1] = "0" + parseInt(arrDay[1]);
        }
        return arrDay[1] + '/' + arrDay[0] + '/' + arrDay[2];
    },
    // lay thoi gian hien tai
    GetDateTimeNow: function () {
        var now = new Date();
        var year = now.getYear();
        var month = now.getMonth() + 1;
        var date = now.getDate();
        var hours = now.getHours();
        var minutes = now.getMinutes();
        var seconds = now.getSeconds();
        var time = year.toString() + month.toString() + date.toString() + hours.toString() + minutes.toString() + seconds.toString();
        return time;
    },

    //vd goi DateUtils.GetDatePicker('#Idname');
    GetDatePicker: function (name) {
        $(name).datepicker({
            showOn: 'button',
            buttonImage: '/DesktopModules/AG.Article/App/Images/Cal.gif',
            buttonImageOnly: true,
            changeMonth: true,
            changeYear: true
        });
    },
    GetYearNow: function () {
        var now = new Date();
        return now.getFullYear();
    },
    //Chuyen doi string {dd/MM/yyyy HH:MM:ss} -> {dd/MM/yyyy}
    ConvertStringToDayMonthYear: function (strDate) {
        var ArrayDate = new Array();
        ArrayDate = strDate.split(' ');
        return ArrayDate[0];
    },
    // Lấy ngày hiện tại theo định dạng dd/MM/yyyy
    GetDate_ddMMyyyy: function () {
        var date = new Date();
        var Day = "";
        var Month = "";
        var Year = "";
        if (date.getDate() < 10) {
            Day = "0" + date.getDate();
        }
        else {
            Day = date.getDate();
        }

        if ((date.getMonth() + 1) < 10) {
            Month = "0" + (date.getMonth() + 1);
        }
        else {
            Month = (date.getMonth() + 1);
        }

        var Result = Day + '/' + Month + '/' + date.getFullYear();
        return Result;
    },
    //Đổi định dạng chuỗi vào từ dd/MM/Y thành Y-MM-dd HH:mm:ss
    ConvertStringDayMonthYearToYearMonthDayHourMinusSecond: function (string) {
        var ArrayString = new Array();
        ArrayString = string.split('/');
        return ArrayString[2] + "-" + ArrayString[1] + "-" + ArrayString[0] + " 00:00:00";
    },
    //Đổi định dạng chuỗi vào từ MM/dd/Y thành Y-MM-dd HH:mm:ss
    ConvertStringMonthDayYearToYearMonthDayHourMinusSecond: function (string) {
        var ArrayString = new Array();
        ArrayString = string.split('/');
        return ArrayString[2] + "-" + ArrayString[0] + "-" + ArrayString[1] + " 00:00:00";
    },
    GetDayFromDate: function (date) {
        var ArrayString = new Array();
        ArrayString = date.split('/');
        if (agLanguageName == 'vi-VN') {
var val1 = parseInt(ArrayString[0], 10);
        var val2 = parseInt(ArrayString[1], 10);
        var val2x = parseInt(ArrayString[1], 10);
        var val3 = parseInt(ArrayString[2], 10);
		}
		else
		{
		var val1 = parseInt(ArrayString[1], 10);
        var val2 = parseInt(ArrayString[0], 10);
        var val2x = parseInt(ArrayString[0], 10);
        var val3 = parseInt(ArrayString[2], 10);
		}
        if (val2 == 1) {
            val2x = 13;
            val3 = val3 - 1
        }
        if (val2 == 2) {
            val2x = 14;
            val3 = val3 - 1
        }
        var val4 = parseInt(((val2x + 1) * 3) / 5, 10)
        var val5 = parseInt(val3 / 4, 10)
        var val6 = parseInt(val3 / 100, 10)
        var val7 = parseInt(val3 / 400, 10)
        var val8 = val1 + (val2x * 2) + val4 + val3 + val5 - val6 + val7 + 2
        var val9 = parseInt(val8 / 7, 10)
        var val0 = val8 - (val9 * 7)
        return days[val0];
    }
}
function MakeArray(n) {
    this.length = n;
    for (var i = 1; i <= n; i++) {
        this[i] = 0;
    }
}
days = new MakeArray(7);
if (agLanguageName == 'vi-VN') {
    days[0] = "Thứ bảy"
    days[1] = "Chủ nhật"
    days[2] = "Thứ hai"
    days[3] = "Thứ ba"
    days[4] = "Thứ tư"
    days[5] = "Thứ năm"
    days[6] = "Thứ sáu"
}
else {
    days[0] = "Saturday"
    days[1] = "Sunday"
    days[2] = "Monday"
    days[3] = "Tuesday"
    days[4] = "Wednesday"
    days[5] = "Thursday"
    days[6] = "Friday"
}
