(function(){
    var randomNum = Math.floor(Math.random() * 10000);
    var scriptPath = "http://www.wfpwidgets.org/widget-stack/";

    var lang = "en";
    if (navigator.userLanguage)
        lang = navigator.userLanguage.substr(0, 2);
    else if (navigator.language)
        lang = navigator.language.substr(0, 2);

    var widgetSize = "";
    if (typeof widget_size != "undefined")
        var widgetSize = widget_size;
    if (typeof widget_id != "undefined")
        var widgetId = widget_id;

    if (widgetSize != 'largeRectangle' && widgetSize != 'mediumRectangle') {
        
        include(scriptPath + 'js/wfpQuery.js', 'wfpQuery');
        ///Removed wfpbox now conacated into wfpQuery.js
        
        var css  = document.createElement('link');
        css.href  = scriptPath + 'css/wfpbox.css';
        css.type = 'text/css';
        css.rel = 'stylesheet';
        document.getElementsByTagName('head').item(0).appendChild(css);
    }


    document.write('<div id="wfp-widget-' + randomNum + '"></div>');

    function makeFrame(url, width, height, params) {
        ifrm = document.createElement("iframe");
        ifrm.setAttribute("name", "wfp-iframe-" + randomNum);
        ifrm.setAttribute("id", "wfp-iframe-" + randomNum);
        ifrm.setAttribute("src", url + params);
        ifrm.setAttribute("scrolling", "no");
        ifrm.setAttribute("frameBorder", 0);
        ifrm.setAttribute("width", width + "px");
        ifrm.setAttribute("height", height + "px");
        var ni = document.getElementById('wfp-widget-' + randomNum);
        ni.appendChild(ifrm);
    }
    
    // Passed in via JS

    var sizes = {};
    sizes.letterboard = {};
    sizes.letterboard.width = 728;
    sizes.letterboard.height = 90;
    sizes.letterboard.image = "letterboard.gif";

    sizes.mediumRectangle = {};
    sizes.mediumRectangle.width = 300;
    sizes.mediumRectangle.height = 250;
    sizes.mediumRectangle.image = "mediumRectangle.gif";

    sizes.largeRectangle = {};
    sizes.largeRectangle.width = 336;
    sizes.largeRectangle.height = 280;
    sizes.largeRectangle.image = "largeRectangle.jpg";

    sizes.skyscraper = {};
    sizes.skyscraper.width = 160;
    sizes.skyscraper.height = 600;
    sizes.skyscraper.image = "skyscraper.gif";

    sizes.squarePopUp = {};
    sizes.squarePopUp.width = 250;
    sizes.squarePopUp.height = 250;
    sizes.squarePopUp.image = "squarePopUp.gif";

    sizes.verticalRectangle = {};
    sizes.verticalRectangle.width = 240;
    sizes.verticalRectangle.height = 400;
    sizes.verticalRectangle.image = "verticalRectangle.gif";

    sizes.rectangle = {};
    sizes.rectangle.width = 180;
    sizes.rectangle.height = 150;
    sizes.rectangle.image = "rectangle.gif";

    sizes.rectangle31 = {};
    sizes.rectangle31.width = 300;
    sizes.rectangle31.height = 100;
    sizes.rectangle31.image = "rectangle31.gif";

    sizes.popUnder = {};
    sizes.popUnder.width = 720;
    sizes.popUnder.height = 300;
    sizes.popUnder.image = "popUnder.gif";

    sizes.fullBanner = {};
    sizes.fullBanner.width = 468;
    sizes.fullBanner.height = 60;
    sizes.fullBanner.image = "fullBanner.gif";

    sizes.halfBanner = {};
    sizes.halfBanner.width = 234;
    sizes.halfBanner.height = 60;
    sizes.halfBanner.image = "halfBanner.gif";

    sizes.microBar = {};
    sizes.microBar.width = 88;
    sizes.microBar.height = 31;
    sizes.microBar.image = "microBar.gif";

    sizes.button1 = {};
    sizes.button1.width = 120;
    sizes.button1.height = 90;
    sizes.button1.image = "button1.gif";

    sizes.button2 = {};
    sizes.button2.width = 120;
    sizes.button2.height = 60;
    sizes.button2.image = "button2.gif";

    sizes.verticalBanner = {};
    sizes.verticalBanner.width = 120;
    sizes.verticalBanner.height = 240;
    sizes.verticalBanner.image = "verticalBanner.gif";

    sizes.squareButton = {};
    sizes.squareButton.width = 125;
    sizes.squareButton.height = 125;
    sizes.squareButton.image = "squareButton.gif";

    sizes.normalSkyscraper = {};
    sizes.normalSkyscraper.width = 120;
    sizes.normalSkyscraper.height = 600;
    sizes.normalSkyscraper.image = "normalSkyscraper.gif";

    sizes.halfPageAd = {};
    sizes.halfPageAd.width = 300;
    sizes.halfPageAd.height = 600;
    sizes.halfPageAd.image = "halfPageAd.jpg";

    sizes.extra1 = {};
    sizes.extra1.width = 222;
    sizes.extra1.height = 77;
    sizes.extra1.image = "extra1.gif";

    sizes.extra2 = {};
    sizes.extra2.width = 214;
    sizes.extra2.height = 220;
    sizes.extra2.image = "extra2.jpg";

    sizes.extra3 = {};
    sizes.extra3.width = 1260;
    sizes.extra3.height = 64;
    sizes.extra3.image = "extra3.jpg";
    
    sizes.extra4 = {};
    sizes.extra4.width = 451;
    sizes.extra4.height = 207;
    sizes.extra4.image = "extra4.jpg";

    // Because more than one banner may be loaded in, or the page may have its own onload function
    // We assign them to a custom function
    function addLoadEvent(func) {
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
            window.onload = func;
        }
        else {
            window.onload = function() {
                oldonload();
                func();
            }
        }
    }

    addLoadEvent(function(){
        
        if (widgetSize == "mediumRectangle" || widgetSize == "largeRectangle") {
            makeFrame(scriptPath + 'banner.php', sizes[widgetSize].width, sizes[widgetSize].height, "?size=" + widgetSize + '&id=' + widgetId);
        } else {
            makeImg();
        }

        // Add analytics functions

    });
    function makeImg() {

        var a = document.createElement('a');
        a.setAttribute('href', scriptPath + 'banner.php?size=largeRectangle' + '&id=' + widgetId);
        a.setAttribute('id', 'wfp-a-' + randomNum);
        var ni = document.getElementById('wfp-widget-' + randomNum);
        ni.appendChild(a);

        var img = document.createElement("img");
        img.setAttribute("name", "wfp-img-" + randomNum);
        img.setAttribute("id", "wfp-img-" + randomNum);
        img.setAttribute('src', scriptPath + 'banners/'+ lang + '/' + sizes[widgetSize].image);
        ni = document.getElementById('wfp-a-' + randomNum);
        ni.appendChild(img);
        
        var interval = setInterval(function() {
            if ($wfp != undefined && $wfp.wfpbox != undefined) {
                setUpLightbox();
                clearInterval(interval);
            }
        }, 1000);
    }
    
    function setUpLightbox() {
        $wfp('#wfp-a-' + randomNum).wfpbox({
            'width'				: 336,
            'height'			: 280,
            'autoScale'     	: false,
            'transitionIn'		: 'none',
            'transitionOut'		: 'none',
            'type'				: 'iframe',
            'scrolling'         : "no"
        });
    }

    //this function includes all necessary js files for the application
    function include(file, id)
    {
        if (!document.getElementById(id)) {
            var script  = document.createElement('script');
            script.src  = file;
            script.id = id;
            script.type = 'text/javascript';

            document.getElementsByTagName('head').item(0).appendChild(script);
        } else {
            //console.log('already loaded ' + file);
        }

    }



})();

