function loadWidgets() {
    if (typeof (DotNetNuke) === "undefined")
        Type.registerNamespace("DotNetNuke.UI.WebControls");

    if (typeof (DotNetNuke.UI.WebControls.Utility) === "undefined")
        getScript($dnn.baseResourcesUrl + "shared/scripts/dotnetnukeajaxshared.js",
                    function() { getScript($dnn.baseResourcesUrl + "shared/scripts/widgets.js"); });
    else
        getScript($dnn.baseResourcesUrl + "shared/scripts/widgets.js");
}

function getScript(apiUrl, successCallback)
{
	$.ajax({
		url: apiUrl,
		crossDomain: true,
		headers: {
			"accept": "application/json",
            "Access-Control-Allow-Origin":"*"
		},
		dataType: "script",
		success: successCallback
	});
}

if (typeof ($dnn) === "undefined") {
    $dnn = new Object();
    $dnn.pageScripts = document.getElementsByTagName("script");
    $dnn.scriptUrl = $dnn.pageScripts[$dnn.pageScripts.length - 1].src;
    $dnn.hostUrl = (typeof ($dnn.hostUrl) == "undefined" ? $dnn.scriptUrl.toLowerCase().replace("resources/shared/scripts/initwidgets.js", "") : $dnn.hostUrl);
    if (!$dnn.hostUrl.endsWith("/")) $dnn.hostUrl += "/";
    $dnn.baseDnnScriptUrl = $dnn.hostUrl + "resources/shared/scripts/";
    $dnn.baseResourcesUrl = $dnn.hostUrl + "resources/";
}

// jQuery dependency
if (typeof (Sys) === "undefined")
    getScript($dnn.baseDnnScriptUrl + "MSAJAX/MicrosoftAjax.js", loadWidgets());
else
    loadWidgets();

if (Sys && Sys.Application) {
    Sys.Application.notifyScriptLoaded();
}