(function ProLinkWidget(win, doc) {
    function loadScript(url, async, callback) {
        var container = doc.getElementsByTagName("head")[0] || doc.getElementsByTagName("body")[0];
        
        if (container) {
            var script = doc.createElement("script");
            var lock = false;
            
            script.src = url;
            script.type = "text/javascript";
            
            if (async === true) {
                script.async = true;
            }
            
            script.onload = script.onreadystatechange = function () {
                if (!lock && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
                    lock = true;
                    callback && callback();
                }
            };
            
            container.appendChild(script);
        }
    }
    
    function insertWidget() {
        var j = jQuery.noConflict();
        var widget = j("#PLWidget");
        var link = j('<a href="#"></a>');
        var button = j("<img id='PLButton' src='" + baseUrl + buyButtonUrl + "' />");
        var body = j("body");
        
        j('head').append('<link rel="stylesheet" href="' + baseUrl + cssUrl + '" type="text/css" />');
        
        link.append(button);
        link.click(function(e) {
            var overlay = j('<div id="PLOverlay"></div>');
            var container = j('<div id="PLWidgetContainer"></div>');
            var iframe = j('<iframe frameborder="0" scrolling="no"></iframe>');
            var closeButton = j('<img id="PLCloseButton" src="' + baseUrl + closeButtonUrl + '" />');
            
            container.width(width);
            container.height(height);
            
            var top = e.pageY - j(window).scrollTop();
            var left = e.pageX;
            
            top = Math.min(top, j(window).height() - height - edgeOffset);
            top = Math.max(top, edgeOffset) + j(window).scrollTop();
            left = Math.min(left, j(window).width() - width - edgeOffset);
            left = Math.max(left, edgeOffset);
            
            iframe.attr('src', iframeUrl);
            closeButton.click(function() {
                closeButton.remove();
                overlay.remove();
                iframe.remove();
                container.remove();
            });
            
            closeButton.css({
                position: 'absolute',
                margin: 0,
                top: 0,
                left: width - 40
            });
            
            container.css({
                position: 'absolute', 
                margin: 0, 
                top: top + 'px', 
                left: left +'px'
            });
            
            container.append(iframe);
            container.append(closeButton);
            body.append(container);
            body.append(overlay);

            return false;
        });
        
        //button.insertAfter(widget);
        link.insertAfter(widget);
    }
    
    width = 383;
    height = 383;
    edgeOffset = 50;
    baseUrl = "http://prolink.pl";
    jqueryUrl = "http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js";
    buyButtonUrl = "/img/widget/buy_button.png";
    closeButtonUrl = "/img/widget/close_button.png";
    cssUrl = "/css/widget_frame.css";
    iframeUrl = "http://prolink.pl/widget/index/?url="+escape(location.href);

    loadScript(jqueryUrl, true, insertWidget);
})(window, document);

