/* Minification failed. Returning unminified contents.
(108,34-35): run-time error JS1100: Expected ',': =
(122,36-37): run-time error JS1100: Expected ',': =
 */
function IsNull(jQueryObj)
{
    if (jQueryObj === undefined || jQueryObj.length == 0) {
        return true;
    }
    return false;
}

function IsNullValue(val) {
    if (val == null || !val) {
        return true;
    }
    return false;
}

function IsIE() {
    var ua = window.navigator.userAgent; //Check the userAgent property of the window.navigator object
    var msie = ua.indexOf('MSIE '); // IE 10 or older
    var trident = ua.indexOf('Trident/'); //IE 11

    return (msie > 0 || trident > 0);
}

function ToTwoDigits(number)
{
    return ("0" + number).slice(-2);
}

function GetSimpleDate(date)
{
    /*
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();

    return month + "/" + day + "/" + year;
    */
    
    return date.toLocaleDateString();
}

function GetSimpleDateWithLeadingZeros(date) {
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();

    return (month < 10 ? "0" + month : month) + "/" + (day < 10 ? "0" + day : day) + "/" + year;
}

function GetSimpleDateNoDashes(date) {
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();

    return year + "" + (month < 10 ? "0" + month : month) + "" + (day < 10 ? "0" + day : day);
}


function GetSimpleTime(date)
{
    var startTimeHours = date.getHours();
    var startTimeMinutes = ToTwoDigits(date.getMinutes());
    var isStartTimeAM = startTimeHours < 12;
    startTimeHours %= 12;
    startTimeHours = startTimeHours == 0 ? 12 : startTimeHours;

    return startTimeHours + ":" + startTimeMinutes + " " + (isStartTimeAM ? "AM" : "PM");
}

function GetLocaleDateFormat() {
    var dt = new Date(2010, 10, 25);
    var format = dt.toLocaleDateString();
    format = format.replace("2010", "yy");
    format = format.replace("11", "m");
    format = format.replace("25", "d");
    return format;
}

function GetLocaleDateFormatForNotification() {
    var dt = new Date(2010, 10, 25);
    var format = dt.toLocaleDateString();
    format = format.replace("2010", "yyyy");
    format = format.replace("11", "M");
    format = format.replace("25", "d");
    return format;
}

function GetLocaleTimeFormatForNotification() {
    var dt = new Date(2010, 8, 25, 13, 34);
    var format = dt.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
    format = format.replace("01", "hh");
    format = format.replace("13", "HH");
    format = format.replace("34", "mm");
    format = format.replace("PM", "tt");
    return format;
}

function IsLocale24HourClock() {
    var dt = new Date(2010, 7, 25, 15, 0, 0);
    var timeFormat = dt.toLocaleTimeString();
    var is24HourClock = false;
    if (timeFormat.indexOf("15") > -1) {
        is24HourClock = true;
    }
    return is24HourClock;
}

function GetTimezoneName(dateStr = null) {
    var dateLocal = new Date();
    if (dateStr != null) {
        dateLocal = new Date(dateStr);
    }
    var pattern = /\((.+)\)/;
    var result = dateLocal.toString().match(pattern);
    var timezoneName = "";
    if (result.length > 0) {
        timezoneName = result[1];
    }
    return timezoneName;
}

function GetTimezoneOffset(dateStr = null) {
    var dateLocal = new Date();
    if (dateStr != null) {
        dateLocal = new Date(dateStr);
    }
    var timezoneOffset = dateLocal.getTimezoneOffset();
    var hour = Math.abs(parseInt(timezoneOffset / 60));
    var minute = Math.abs(parseInt(timezoneOffset % 60));
    return "UTC" + (timezoneOffset > 0 ? "-" : "+") + (hour < 10 ? "0" : "") + hour + ":" + (minute < 10 ? "0" : "") + minute;
}

function ParseDate(json) {
    return new Date(parseInt(json.substr(6)));
}

function Refresh()
{
    location.reload();
}

function RedirectTo(url)
{
    window.location.href = url;
}

function SetCookie(cname, cvalue) {
    if (IsIE()) {
        document.cookie = cname + "=" + cvalue + ";path=/";
    } else {
        document.cookie = cname + "=" + cvalue + ";expires=0;path=/";
    }
}

function GetCookie(cname) {
    var match = document.cookie.match(new RegExp('(^| )' + cname + '=([^;]+)'));
    if (match) return match[2];
    return null;
}

function GetPlacement(customerCountAhead) {
    var placement = customerCountAhead + 1;
    var firstDigit = placement % 10;
    var secondDigit = parseInt((placement % 100) / 10);
    var postfix = "th";
    if (secondDigit != 1) {
        switch (firstDigit) {
            case 1:
                postfix = "st";
                break;
            case 2:
                postfix = "nd";
                break;
            case 3:
                postfix = "rd";
                break;
        }
    }
    return placement + postfix;
}

function ToggleFullscreen(isInFullScreen) {
    var docElm = document.documentElement;
    if (!isInFullScreen) {
        if (docElm.requestFullscreen) {
            docElm.requestFullscreen();
        } else if (docElm.mozRequestFullScreen) {
            docElm.mozRequestFullScreen();
        } else if (docElm.webkitRequestFullScreen) {
            docElm.webkitRequestFullScreen();
        } else if (docElm.msRequestFullscreen) {
            docElm.msRequestFullscreen();
        }
    } else {
        if (document.exitFullscreen) {
            document.exitFullscreen();
        } else if (document.webkitExitFullscreen) {
            document.webkitExitFullscreen();
        } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
        } else if (document.msExitFullscreen) {
            document.msExitFullscreen();
        }
    }
}

function AnimateToRight(jQueryObj, x, callback)
{
    jQueryObj.animate({
        left: x + "px"
    }, 500, function () {
        callback();
    });
}

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, '\\$&');
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));
}

$.fn.removeClassStartingWith = function (filter) {
    $(this).removeClass(function (index, className) {
        return (className.match(new RegExp("\\S*" + filter + "\\S*", 'g')) || []).join(' ');
    });
    return this;
};



function GetLocaleDateFormatByPreference(date, preference) {
    //console.log(preference);
    var output = "";
    if (preference.DateFormatId == 0) {
        output = date.toLocaleDateString();
    } else {
        var year = date.toLocaleDateString("en-US", { year: preference.YearFormat });
        var month = date.toLocaleDateString("en-US", { month: preference.MonthFormat });
        var day = date.toLocaleDateString("en-US", { day: preference.DayFormat });
        var format = preference.Format;
        output = format.replace("(Year)", year);
        output = output.replace("(Month)", month);
        output = output.replace("(Day)", day);
    }
    return output;
}

function GetLocaleTimeFormatByPreference(time, preference) {
    //console.log(preference);
    var output = "";
    if (preference.TimeFormatId == 0) {
        output = time.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
    } else {
        var hour24 = time.getHours();
        var hour12 = hour24 % 12;
        hour12 = hour12 == 0 ? 12 : hour12;
        var minute = time.getMinutes();
        var period = hour24 >= 12 ? "PM" : "AM";

        if (preference.HourFormat == "2-digit") {
            if (hour24 < 10) {
                hour24 = "0" + hour24;
            }

            if (hour12 < 10) {
                hour12 = "0" + hour12;
            }
        }

        if (preference.MinuteFormat == "2-digit") {
            if (minute < 10) {
                minute = "0" + minute;
            }
        }
        var format = preference.Format;
        output = format.replace("(24Hour)", hour24);
        output = output.replace("(Hour)", hour12);
        output = output.replace("(Minute)", minute);
        output = output.replace("(Period)", period);
    }
    return output;
};
