﻿
/*
* GLOBAL debug variable - check this variable before displaying debug data (eg console.log)
*/
var __DEBUG = true;
if (__DEBUG) {
    //        console.log('__DEBUG = true');
}

/*
* Full path to the order plugin for the requireJS script
*/
var require_order_js = '/Areas/CMS/Scripts/lib/require.order.js!';





JsLoader = {


    /*
    * load: Loads and executes the scripts specified in the array, and executes the callback in the end. 
    */
    load: function (array, callback) {
        require(array, callback);
    },


    /*
    * addCSS: Downloads and executes a css file only if its not already loaded.
    */
    addCSS: function (href, callback) {
        if ($("link[href='" + href + "']").length < 1) {
            $("head").append('<link href="' + href + '" type="text/css" rel="stylesheet">');
        }
        callback();
    },


    /*
    * removeCSS: Attempts to remove the specified css file from the document.
    */
    removeCSS: function (href, callback) {
        $("link[href='" + href + "']").remove();
        callback();
    },



    load_CodeMirror: function (callback) {
        JsLoader.addCSS('/Areas/CMS/Scripts/lib/CodeMirror/css/codemirror.css', function () {

            JsLoader.addCSS('/Areas/CMS/Scripts/lib/CodeMirror/theme/default.css', function () {

                require([require_order_js + '/Areas/CMS/Scripts/lib/CodeMirror/js/codemirror.js', require_order_js + '/Areas/CMS/Scripts/lib/CodeMirror/mode/xml/xml.js'],  callback);                       
            });      
        });
    },


    load_Slides: function (callback) {

        require(['/Areas/CMS/Scripts/lib/slides.min.jquery.js'], callback);
    },

    load_GoogleMap: function (callback) {
        require(['/Areas/CMS/Scripts/GoogleMap/GoogleMap.js'], callback);
    },

    load_Uploadify: function (callback) {
        require([require_order_js + 'https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js', require_order_js + '/Areas/CMS/Scripts/lib/uploadify/jquery.uploadify.v2.1.0.min.js'], callback);
    },

    load_Cycle: function (callback) {
        require(['/Areas/CMS/Scripts/lib/jquery.cycle.all.min.js'], callback);
    },

    JQueryExtender: function (callback) {
        require(['/Areas/CMS/Scripts/JQueryExtender.js'], callback);
    },

    CKEEditor: function (callback) {
        require(['/Areas/CMS/Scripts/lib/ckeditor/ckeditor.js'], callback);
    },

    JQTreeView: function (callback) {
        require(['/Areas/CMS/Scripts/lib/jquery.treeview.min.js'], callback);
    },

    JQueryUIAutoComplete: function (callback) {
        require(['/Areas/CMS/Scripts/lib/jquery-ui-1.8.11.custom.min.js'], callback);
    },

    JquerySuperFish: function (callback) {
        require([require_order_js + '/Areas/CMS/Scripts/lib/hoverIntent.js', require_order_js + '/Areas/CMS/Scripts/lib/superfish.js'], callback);
    },

    JqueryCookie: function (callback) {
        require(['/Areas/CMS/Scripts/lib/jquery.cookie.js'], callback);
    },

    jQueryLightBox: function (callback) {
        JsLoader.addCSS('/Areas/CMS/Scripts/lib/lightbox-0.5/css/jquery.lightbox-0.5.css', function () {
            require([, '/Areas/CMS/Scripts/lib/lightbox-0.5/jquery.lightbox-0.5.js'], callback);
        });
    },
    jQueryEasing: function (callback) {
        require([require_order_js + '/Areas/CMS/Scripts/lib/jquery.easing.1.3.js', require_order_js + '/Areas/CMS/Scripts/lib/jquery.easing.compatibility.js'], callback);
    },

    carouFredSel: function (callback) {
        // require(['/Areas/CMS/Scripts/lib/jquery.carouFredSel-3.2.1-packed.js'], callback);
        require(['/Areas/CMS/Scripts/lib/jquery.carouFredSel-4.3.2.js'], callback);
    },

    jQueryNestedSortable: function (callback) {
        require(['/Areas/CMS/Scripts/lib/jquery.ui.nestedSortable.js'], callback);
    },

    jqueryTimePicker: function (callback) {
        require(['/Areas/CMS/Scripts/lib/jquerytimepicker/jquery.ui.timepicker-0.0.8.js'], callback);
    },

    jqueryFileTree: function (callback) {
        require(['/Areas/CMS/Scripts/lib/jqueryFileTree/jqueryFileTree.js'], callback);
    },

    contextMenu: function (callback) {
        require(['/Areas/CMS/Scripts/lib/jqueryContextMenu/jquery.contextMenu.js'], callback);
    }
    , flexbox: function (callback) {
        require(['/Areas/CMS/Scripts/lib/FlexBox/js/jquery.flexbox.min.js'], callback);
    }




};                // end JsLoader helper class



