/*
 * Interface Blocker - jQuery plugin to block interfaces while loading via ajax
 *
 * @author Igor Finchuk
 */

(function($) {

    var loadedJS = new Array();
    var loadedCSS = new Array();

    $(function(){
        $('head').find('link[href]').each(function(){
            loadedCSS.push( $(this).attr('href') );
        });
        $('head').find('script[src]').each(function(){
            loadedJS.push( $(this).attr('src') );
        });
    });

    $.extend($.fn, {
        loadCSS : function ( url ) {
            if( $.inArray( url, loadedCSS ) < 0 ){
                $('<link href="'+ url +'" rel="stylesheet" type="text/css" />').appendTo( $('head') );
                loadedCSS.push( url );
            }
        },
        loadJS : function ( url, callback ) {

            if( typeof callback != 'function' ){
                callback = function(){};
            }

            if( $.inArray( url, loadedJS ) < 0 ){
                jQuery.ajax({
        			type: "GET",
        			url: url,
        			data: null,
        			cache: true,
        			dataType: "script",
        			success: callback
                });

                loadedJS.push( url );
            }else{
                callback();
            }
        }
    });

})( jQuery );
