
$(function() {

    if (typeof window.VH == "undefined" || !window.VH) {
        window.VH = {};
    }

    if (typeof VH.UTIL == "undefined" || !VH.UTIL) {
        VH.UTIL = {};
    }

    /***
    * Object that has useful utility functions
    */

    VH.UTIL = function() {

        var debug = false;
        var hasConsole = false;

        var log = function() {

            if (!debug) {
                return;
            }
            try {
                // firefox
                window.loadFirebugConsole();
                if (debug) {
                    console.log.apply(this, arguments);
                }
            }
            catch (error) {
                // everything else
                if (!$("#log").length) {
                    $("body").append('<div id="log"></div>');
                    $("#log").css({
                        "z-index": "9999",
                        "border": "3px solid #C00",
                        "position": "absolute",
                        "bottom": "0",
                        "left": "0",
                        "overflow": "auto",
                        "width": "99%",
                        "height": "100px",
                        "font-size": "0.9em",
                        "text-align": "left",
                        "background-color": "#FFF"
                    });
                }
                $("#log").append(arguments[0] + "<br />");
            }

        };

        var isUndefinedOrNull = function(object) {
            return typeof object === "undefined" || object === null || object === '';
        };

        var disableDropdown = function(dropdown, clearAndShowLoading) {
            dropdown.attr("disabled", true);
            if (clearAndShowLoading) {
                dropdown.empty().append('<option value="-">Loading, please wait...</option>');
            }
        };

        var enableDropdown = function(dropdown, optionElems) {
            dropdown.attr("disabled", false);
            if (optionElems) {
                dropdown.empty().append(optionElems);
            }
        };

        var selectOptionIfExists = function(dropdown, text) {
            if (dropdown.find('option[text="' + text + '"]').length > 0) {
                dropdown.val(text);
            }
        };

        var CompareDate = function(date1, date2) {

            var differenceInDays = Math.floor((date1.getTime() - date2.getTime()) / 86400000);
            return differenceInDays > 0;
        };

        return {
            log: log,
            disableDropdown: disableDropdown,
            enableDropdown: enableDropdown,
            isUndefinedOrNull: isUndefinedOrNull,
            selectOptionIfExists: selectOptionIfExists,
            CompareDate: CompareDate
        };
    } ();

});




