(function ($) {
	function loadJsFiles(options) {
		if (options.fileList && options.fileList.length > 0) {
			var file = options.fileList.shift();
            if (options.fileList.length == 0 && typeof options.callBack != 'undefined') {
                $.getScript(file, function() {
                    options.callBack();
                });
            }
            else {
                $.getScript(file, function() {
                    loadJsFiles({'fileList' : options.fileList, 'callBack' : options.callBack});
                });
            }
		}
	};
	
	function loadCssFiles(options) {
		$.each(options.fileList, function(index, value) { 
			var link = $('<link>');
			link.attr({type:'text/css', rel:'stylesheet', href:value});
			$('head').append( link ); 
		});
	};
	
	function loadBreadcrumb(options) {
		var section =  $('#footer .section1'),
            breadcrumb = options.breadcrumb;
        
		if (breadcrumb) {
            var breadcrumbHTML = $('<div class="breadcrumb floatl"></div>');

            $.each(breadcrumb, function(index) {
                if (index == (breadcrumb.length - 1))
                    breadcrumbHTML.append('<div class="floatl current" id="footer-breadcrumb-current"><span>' + this.name + '</span></div>');
                else
                    breadcrumbHTML.append('<div class="floatl"><a href="' + this.url + '">' + this.name + '</a></div><div class="arrow floatl"><!-- --></div>');
            });

            section.append(breadcrumbHTML);
		}
	}

    function loadIEFiles(options) {
        var ie7jsFiles 	= [options.assetUrl + 'js/json2.js'],
            ie7cssFiles	= [options.assetUrl + 'css/ie7.css'];

        if ($.browser.msie && parseFloat($.browser.version) < 8) {
            loadCssFiles({'fileList' : ie7cssFiles});
            loadJsFiles({'fileList' : ie7jsFiles, 'callBack' : function() {
                loadCufonFiles(options);
            }});
        } else {
            loadCufonFiles(options);
        }
    }

    function loadCufonFiles(options) {
        var cufonFiles  = [options.assetUrl + 'js/ITC_Franklin_Gothic.js'];

        if (options.lang != "ja") {
            loadJsFiles({ 'fileList' : cufonFiles});
        }
    }
	
	$.UFC = {
		setLayout : function(options) {
			var opts = $.extend({}, $.UFC.defaults, options),
                optsString = JSON.stringify(opts);

			var jsFiles  	= ['http://cufon.shoqolate.com/js/cufon-yui.js',
			             	   opts.assetUrl + 'js/jquery.ufcButtons.js',
			             	   opts.assetUrl + 'js/jquery.mainMenu.js',
			             	   opts.assetUrl + 'js/jquery.searchBox.js',
			             	   opts.assetUrl + 'js/startup.js',
                               opts.url + 'api/layout?languageCode=' + opts.lang + '&callback=$.UFC.finishLayout&options=' + optsString],
				cssFiles 	= ['http://yui.yahooapis.com/2.9.0/build/reset-fonts-grids/reset-fonts-grids.css',
                               opts.assetUrl + 'css/main.css',
                               'http://yui.yahooapis.com/2.9.0/build/container/assets/skins/sam/container.css',
                               'http://yui.yahooapis.com/2.9.0/build/autocomplete/assets/skins/sam/autocomplete.css'];

			loadCssFiles({'fileList' : cssFiles});
            loadJsFiles({'fileList' : jsFiles, 'callBack' : function() {
                loadIEFiles(opts);
            }});

		},
        finishLayout : function(data, options) {
            $('body').prepend(data.header).append(data.footer);
            readyFunction();
            loadBreadcrumb(options);
        }
	};

	$.UFC.defaults = {
        'lang' : 'en_US',
        'url' : 'http://www.ufc.com/',
        'assetUrl' : 'http://video.ufc.tv/ufc_system_assets_20110415/',
        'breadcrumb' : [{'name' : 'Home', 'url' : 'http://www.ufc.com/'}]
    };
})(jQuery);
