﻿(function ($) {
    $(document).ready(function () {
    });
})(jQuery);

//$.HelperJS
$.HelperJS = {

    Navigate: function (url) {
        window.location = (SITE_ROOT + url);
    },

    //Initialize()
    Initialize: function () {
    },

    //DecodeUrl()
    DecodeUrl: function (url) {
        return url.toString().replace('?', '%3f').replace('&', '%26').replace('#', '%23');
    },

    EncodeUrl: function (url) {
        return url.toString().replace('%3f', '?').replace('%26', '&').replace('%23', '#');
    },

    //Ajax()
    Ajax: function (params) {
        params.resetMain = params.resetMain == true ? true : false;
        params.before ? params.before() : null;
        params.showSplash == false ? null : $("#AjaxLoaderDiv").show();

        $.ajax({
            cache: false,
            type: params.type,
            async: params.div == "divCompanyNews" ? false : true,
            url: SITE_ROOT + params.url,
            data: params.data,
            success: function (jsonResult) {
                params.showSplash == false ? null : $("#AjaxLoaderDiv").hide();
                //var result = jsonResult; 
                result = $.parseJSON(jsonResult);

                params.success ? params.success() : null;

                if (!result) {
                    return;
                }

                if (result.redirect && result.redirect != "") {
                    var sType = result.redirect.indexOf('?') == -1 ? '?' : '&';
                    if (result.includeReturnUrl == "True") {
                        var s = "#" + $.MasterJS.CurrentController;
                        s = $.MasterJS.CurrentVars == "" ? s : s + "?" + $.MasterJS.CurrentVars;
                        s = window.location;
                        window.location = SITE_ROOT + result.redirect + sType + 'ReturnUrl=' + $.HelperJS.DecodeUrl(s);
                    }
                    else
                        window.location = $.HelperJS.EncodeUrl(result.redirect);
                    return;
                }

                //result.messageTitle || result.messageBody ? $.DialogJS.ShowDialog(result.messageTitle, result.messageBody) : null;

                if (result.partialView && params.div) {
                    if (params.resetMain) {
                        $.MasterJS.ResetMainDivFunctions();
                    }
                    //DO NOT REMOVE COMMENTS!!!
                    //$("#" + params.div).fadeOut(500);
                    $("#" + params.div).html(result.partialView);
                    //$("#" + params.div).fadeIn(500);
                    if (params.div == "divMain") {
                        window.scrollTo(0, 0);
                        params.url == "Public/Home" ? $("#footermenu").hide() : $("#footermenu").show();
                    }
                    //Sys.Mvc.FormContext._Application_Load();
                }
            },
            error: function (xhr, status, error) {
                $("#AjaxLoaderDiv").hide();
                var title;
                var body;
                switch (xhr.status) {
                    case 404:
                        title = "Page cannot be found.";
                        body = "The page you requested cannot be found.";
                        break;
                    default:
                        title = "Unknown error!";
                        body = "There was an unexpected error!";
                        break;
                }
                //$.DialogJS.ShowDialog(title, body);
                params.failure ? params.failure() : null;
            },
            dataType: "text json"
        });
        params.after ? params.after() : null;
    },

    //getUrlVars()
    getUrlVars: function () {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },

    //getUrlVar()
    getUrlVar: function (name) {
        return $.HelperJS.getUrlVars()[name];
    },

    toggleDiv: function (bVal, sDiv) {
        bVal ? $(sDiv).show() : $(sDiv).hide();
        $.HelperJS.toggleDivFields(bVal, sDiv);
        if (!bVal)
            $.MasterJS.ResetValidationMessages(sDiv);
    },

    // if bVal is true, enables all fields under sDiv that don't have a hidden ancestor div (fields are visible)
    // if bVal is false, disables all fields under sDiv
    toggleDivFields: function (bVal, sDiv) {
        if (bVal) {
            $(sDiv).find("input, select").attr('disabled', '');
            $(sDiv).find("div:hidden").each(function () {
                $(this).find("input, select").attr('disabled', 'disabled');
            });
        }
        else
            $(sDiv).find("input, select").attr('disabled', 'disabled');
    }

    //    LoadNews: function () {
    //        var newpage = 1;
    //        if ($("#CompanyNewsPage").length) {
    //            newpage = parseInt($("#CompanyNewsPage").val()) + 1;
    //        }
    //        newpage = newpage < 1 ? 1 : newpage > 3 ? 1 : newpage;
    //        $("#CompanyNewsPage").val(newpage);
    //        $.HelperJS.Ajax({ div: 'divCompanyNews', type: 'GET', url: 'Public/CompanyNews', data: 'page=' + newpage, success: function () { window.setTimeout("$.HelperJS.LoadNews()", 3000); } });
    //    }

};

// Centers calling object in middle of viewable screen
$.fn.center = function () {
    this.css("top", ($(window).height() - this.height()) / 2);
    this.css("left", ($(window).width() - this.width()) / 2);
    return this;
} 

