// Simple plugin to manage and load scripts on a page.
(function ($) {
    $.fn.extend({
        afScriptManager: function (options) {

            //Settings list and the default values
            var defaults = { scriptType: 'video' };
            var options = $.extend(defaults, options);
            var timesTriedToLoadScript = 0;

            return this.each(function () {
                $.ajaxSetup({ async: false });
                switch (options.scriptType) {
                    case "video":
                        if (!jQuery.fn.dodImageCarousel) {
                            loadScript("/shared/widgets/js/jQuery.dodImageCarousel-1.0.4.min.js");
                        }
                        if (!jQuery.fn.genVideoWidget) {
                            loadCSS("/shared/widgets/css/videoWidget.css");
                            loadScript("/shared/widgets/js/genVideoWidget.min.js");
                        }
                        break;
                    case "slideshowlaunch":
                        if (!jQuery.fn.dodImageCarousel) {
                            loadScript("/shared/widgets/js/jQuery.dodImageCarousel-1.0.4.min.js");
                        }
                        if (!jQuery.fn.genSlideShowLauncherWidget) {
                            loadCSS("/shared/widgets/css/videoWidget.css");
                            loadScript("/shared/widgets/js/genSlideshowlauncherWidget.min.js");
                        }
                        break;
                    case "topstory":
                        if (!jQuery.fn.genTopStoriesWidget) {
                            loadCSS("/shared/widgets/css/topstoryWidget.css");
                        }
                        if (!jQuery.fn.aeImageResize) {
                            loadScript("/shared/widgets/js/jquery.ae.image.resize.min.js");
                        }
                        if (!jQuery.fn.dodImageRotator) {
                            loadScript("/shared/widgets/js/jQuery.dodImageRotator-1.0.0.min.js");
                        }
                        if (!jQuery.fn.dodCaption) {
                            loadScript("/shared/widgets/js/jQuery.dodCaption-1.0.0.min.js");
                        }
                        if (!jQuery.fn.genTopStoriesWidget) {
                            loadScript("/shared/widgets/js/genTopStoriesWidget.min.js");
                        }
                        break;
                    case "spotlight":
                        if (!jQuery.fn.genSpotlightsWidget) {
                            loadCSS("/shared/widgets/css/spotlightWidget.css");
                        }
                        if (!jQuery.fn.aeImageResize) {
                            loadScript("/shared/widgets/js/jquery.ae.image.min.js");
                        }
                        if (!jQuery.fn.dodImageRotator) {
                            loadScript("/shared/widgets/js/jQuery.dodImageRotator-1.0.0.min.js");
                        }
                        if (!jQuery.fn.dodCaption) {
                            loadScript("/shared/widgets/js/jQuery.dodCaption-1.0.0.min.js");
                        }
                        if (!jQuery.fn.genSpotlightsWidget) {
                            loadScript("/shared/widgets/js/genSpotlightsWidget.min.js");
                        }
                        break;
                }
            }); //end function

            function loadScript(scriptName) {
                if (timesTriedToLoadScript < 6) {
                    var didItLoad = false;
                    $.getScript(scriptName, function () {
                        didItLoad = true;
                        timesTriedToLoadScript = 0;
                    });
                    if (!didItLoad) {
                        timesTriedToLoadScript++; loadScript(scriptName);
                    }
                }
                else {
                    timesTriedToLoadScript = 0;
                }
            }

            function loadCSS(cssName) {
                //var newCSS = $("<link>");
                //newCSS.attr({
                //    rel: "stylesheet",
                //    type: "text/css",
                //    href: cssName
                //});
                //$("head").append("<link>");
		//var newCSS = $("head").children(":last");
		//newCSS.attr({
                //   rel: "stylesheet",
                //   type: "text/css",
                //   href: cssName
		//});
                        //Load css file and script file
                         var fileref=document.createElement("link");
                          fileref.setAttribute("rel", "stylesheet");
                          fileref.setAttribute("type", "text/css");
                          fileref.setAttribute("href", cssName);
                          document.getElementsByTagName("head")[0].appendChild(fileref);
            }
        }
    });
})(jQuery);

