(function() {
    var config = {"vendors":[{"vendorName":"RDF","html":"","scripts":["https://rdf.radial.com/rdf/scripts/v1/rdf.min.js"],"vendor-callbacks":{"ondeploy":"","onload":""}}]}
    	,
        c, n, j, k,
        body = document.body,
        deployment, deploymentScript, deploymentId, deploymentScriptId,
        vendor, script,
        idSafe = function(id) {
            return id.toLowerCase().replace(/\W+/ig, "-").replace(/^-|-$/g, "");
        };

    if (!window.rdf) window.rdf = {};
        rdf.clientCode = "IRBUS";

    c = -1;
    n = config.vendors.length;

    while (++c !== n) {
        vendor = config.vendors[c];

        console.log("Deploying", vendor.vendorName, "...");

        // Deploy HTML
        if (vendor.html) {
            console.log("Deploying html", "...");

            deployment = document.createElement('div');
            deployment.id = deploymentId = "radial-jsc-html:1:" + idSafe(vendor.vendorName);
            deployment.style.position = "absolute";
            deployment.style.right = "100%";
            deployment.style.bottom = "100%";
            deployment.innerHTML = vendor.html;

            body.appendChild(deployment);
            deployment = null;
        }

        // Deploy Scripts
        j = -1;
        k = vendor.scripts.length;

        while (++j !== k) {
            script = vendor.scripts[j];

            console.log("Deploying script", script, "...");

            deploymentScript = document.createElement('script');
            deploymentScript.id = deploymentScriptId = "radial-jsc-script:" + (j + 1) + ":" + idSafe(vendor.vendorName);
            deploymentScript.type = "text/javascript";
            deploymentScript.src = script;

            (function(vendor, deploymentId, deploymentScriptId) {
                deploymentScript[(deploymentScript.addEventListener ? 'onload' : 'onreadystatechange')] = function() {
                    if (!this.readyState || (/^complete|loaded$/i).test(this.readyState)) {
                        if (vendor['vendor-callbacks'] && vendor['vendor-callbacks'].onload) eval("(" + vendor['vendor-callbacks'].onload + ")(deploymentId, deploymentScriptId)");
                        if (vendor['domain-callbacks'] && vendor['domain-callbacks'].onload) eval("(" + vendor['domain-callbacks'].onload + ")(vendor.vendorName, deploymentId, deploymentScriptId)");
                    }
                };
            })(vendor, deploymentId, deploymentScriptId);

            document.getElementsByTagName('head')[0].appendChild(deploymentScript);
            deploymentScript = null;
        }

        if (vendor['vendor-callbacks'] && vendor['vendor-callbacks'].ondeploy) eval("(" + vendor['vendor-callbacks'].ondeploy + ")(deploymentId, deploymentScriptId)");
        if (vendor['domain-callbacks'] && vendor['domain-callbacks'].ondeploy) eval("(" + vendor['domain-callbacks'].ondeploy + ")(vendor.vendorName, deploymentId, deploymentScriptId)");
    }
})();