﻿$.extend({
    WebServiceCall: function(params, callback) {
        var $url = params.url;
        var $data = params.data;

        $.ajax({
            type: "POST",
            async: false,
            url: $url,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: $data,
            success: function(json) {
                if ($.isFunction(callback))
                    callback(json);
            }
        });
    },
    InitialiseTinyMce: function() {
        tinyMCE.init({
            mode: "textareas",
            editor_selector: "mceEditor",
            editor_deselector: "mceNoEditor",
            width: 660,
            height: 350,
            theme: "advanced",
            plugins: "preview",
            theme_advanced_buttons1: "cut,copy,paste,code,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,formatselect,fontselect,fontsizeselect",
            theme_advanced_buttons2: "search,replace,|,undo,redo,|,link,unlink,|,preview,|,forecolor,backcolor,|,sub,sup",
            theme_advanced_buttons3: "",
            theme_advanced_toolbar_location: "top",
            theme_advanced_toolbar_align: "left",
            theme_advanced_resizing: true
        });
    },
    InitialiseUploadify: function(params, callback) {
        var $id = params.id;
        $folder = params.folder;
        $scriptData = params.scriptdata;
        $multi = params.multi;

        $($id).uploadify({
            'uploader': '/umbraco/admin/swf/uploadify.swf',
            'script': '/umbraco/Handlers/Uploadify.ashx',
            'cancelImg': '/umbraco/admin/images/cancel.png',
            'folder': $folder,
            'multi': $multi,
            'auto': true,
            'queueID': 'custom-queue',
            'queueSizeLimit': 3,
            'removeCompleted': true,
            'scriptData': $scriptData,
            'onComplete': function(event, queueID, fileObj, response, data) {
                if ($.isFunction(callback))
                    callback(response);
            }
        });
    }
});

(function($) {
    $.extend({
        getQueryString: function(name) {
            function parseParams() {
                var params = {},
                    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))
                    params[d(e[1])] = d(e[2]);

                return params;
            }

            if (!this.queryStringParams)
                this.queryStringParams = parseParams();

            return this.queryStringParams[name];
        }
    });
})(jQuery);

