﻿kp.scriptManager = {};
kp.scriptManager.scripts = new Array();
kp.requireScript = function(scriptname) {
    if (typeof (scriptname) == 'undefined' || scriptname == '')
        throw new Error('scriptname cannot be empty.');
    //    if ($(kp.scriptManager.scripts).find(scriptname).length > 0)
    //        return;
    if (kp.scriptManager.scripts.join('|').indexOf(scriptname) > -1)
        return this;
    //kp.log(document.getElementsByTagName('head')[0]);
    var elem = document.createElement("script");
    elem['type'] = 'text/javascript';
    elem['src'] = scriptname.indexOf('/') >= 0 ? scriptname : ('/Scripts/' + scriptname);
    document.getElementsByTagName('head')[0].appendChild(elem);
    kp.scriptManager.scripts.push(scriptname);
    kp.log('loaded scripts: ' + kp.scriptManager.scripts);
};

(function($) {
    $.fn.runScript = function(scriptname) {
        $.kp_loadScript(scriptname);
        return this;
    };
})(jQuery);
jQuery.extend({
    kp_loadScript: function(scriptname) {
        if (typeof (scriptname) == 'undefined' || scriptname == '')
            throw new Error('scriptname cannot be empty.');
        var scripturl = scriptname.indexOf('/') >= 0 ? scriptname : ('/Scripts/' + scriptname);
        //        if ($(kp.scriptManager.scripts).find(scriptname).length > 0)
        //            return;
        if (kp.scriptManager.scripts.join('|').indexOf(scriptname) > -1)
            return this;
        var x = $.ajax({
            type: 'GET',
            url: scripturl,
            dataType: 'script',
            async: false
        });
        kp.scriptManager.scripts.push(scriptname);
        kp.log('loaded scripts: ' + kp.scriptManager.scripts);
    }
});

