﻿

(function ()
{
    function Webchanix()
    {
        var urlParams = {};

        this.toBoolean = function (s)
        {
            switch (s.toLowerCase())
            {
                case "true": case "yes": case "1": return true;
                case "false": case "no": case "0": case null: return false;
                default: return Boolean(string);
            }
        },
        this.load = function (element, loadUrl, preLoadContent)
        {
            if (preLoadContent)
            {
                $("#" + element).html(preLoadContent);
            }
            $("#" + element).load(loadUrl);
        }
        this.redirectTo = function (href) { location.href = href; return false; },
        this.reload = function (href) { location.reload(true); },
        this.getQS = function (k, d)
        {
            if (k in urlParams)
            {
                if (urlParams[k].length > 0)
                {
                    return urlParams[k];
                }
            }

            return d;
        },
        this.confirmWithAlert = function (message, callback)
        {
            var yes = window.confirm(message);
            if (yes)
            {
                callback();
            }
        },

        this.effects =
        {
            toggleClasses: function (elementId, c, d)
            {
                $("#" + elementId).toggleClass(c);
                $("#" + elementId).toggleClass(d);
            },
            toggleSlideElement: function (elementId, callback)
            {
                var e = $("#" + elementId);
                e.slideToggle();
                //                function ()
                //                {
                //                    e.remove();
                //                    if (callback)
                //                    {
                //                        callback();
                //                    }
                //                });
            },

            slideUpAndRemove: function (elementId, callback)
            {
                var e = $("#" + elementId);
                e.slideUp(function ()
                {
                    e.remove();
                    if (callback)
                    {
                        callback();
                    }
                });
            },

            slideUp: function (elementId, callback)
            {
                var e = $("#" + elementId);
                e.slideUp(function ()
                {
                    if (callback)
                    {
                        callback();
                    }
                });
            }
        },

        this.growl = {

            checkGrowl: function ()
            {
                var s = $("#Growl").html();
                if (s.length > 0)
                {
                    var p = s.split("|");
                    if (p.length == 1)
                    {
                        $("#Growl").html('<div id="GrowlMsg">' + p[0] + '</div>')
                    }
                    else
                    {
                        $("#Growl").html('<div id="GrowlContainer"><span id="GrowlClose" onclick="$wx.effects.slideUp(\'Growl\')"></span><div id="GrowlMsg"><h4>' + p[0] + '</h4>' + p[1] + '</div><div class="Clear"></div></div>')
                        if (p[2] > 0)
                        {
                            setTimeout(function () { $("#Growl").slideUp(); }, p[2] * 1000);
                        }
                    }

                    $("#Growl").slideDown();
                }
            },
            mainCenter: function ()
            {

            }
        },

        this.block =
        {
            blockUi: function (message)
            {
                $.blockUI({ message: "<div class=\"BlockUiLoader\">" + message + "</div>" });
            },

            unblockUi: function (e)
            {
                if (e === null || e === "undefined" || e === "")
                {
                    $.unblockUI();
                }
                else
                {
                    $("#" + e).unblock();
                }
            },

            blockUiWithElement: function (elementId)
            {
                $.blockUI({ message: $("#" + elementId) });
            },
            blockElementWithMessage: function (e, m)
            {
                $("#" + e).block({ message: m });
            },

            blockUiWithClose: function (message)
            {
                $.blockUI({ message: "<div class=\"BlockUiLoader\">" + message + "<hr /><a href=\"#\" onclick=\"$wx.block.unblockUi()\">Close</a></div>" });
            }
        },

        this.controlpanel =
        {
            info: function ()
            {
                alert("control panel has not been initialized");
            }
        },

        (function ()
        {
            var e,
             a = /\+/g,  // Regex for replacing addition symbol with a space         
             r = /([^&=]+)=?([^&]*)/g,
             d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
             q = window.location.search.substring(1);
            while (e = r.exec(q))
            {
                urlParams[d(e[1])] = d(e[2]);
            }
        })();
    }

    window.$wx = new Webchanix();
})();
