(function() {

    var scripts = document.getElementsByTagName('script');
    var baseURL = '';
    for (var i=0; i<scripts.length; i++)
        if (scripts[i].src.match(/(.*)premium\.js$/))
            baseURL = RegExp.$1;

    ProNN = {

        shockerz: [
           "	<p class='red'>Sie haben keinen Zugriff auf diese Inhalte!<br />\
		Ihr Provider will mehr Geld verdienen!</p>\
		<p>Jetzt auf das <strong>Superduper-XXL</strong>-Paket upgraden<br />\
		und schon k&ouml;nnen auch Sie wieder Videos online gucken!</p>",

           "	<p class='red'>Ihr Provider unterst&uuml;tzt diese \
Inhalte nicht, wir m&ouml;chten Sie daher bitten, auf andere Websites \
auszuweichen.</p>\
		<p>Jetzt auf das <strong>Superduper XXL</strong>-Paket upgraden<br />\
		und schon k&ouml;nnen auch Sie wieder Videos online gucken!</p>",
		
           "	<p class='red'>Videos kosten extra! <br>\
		 Wo kommen wir denn da hin?</p>\
		<p>Jetzt auf das <strong>Superduper XXL</strong>-Paket upgraden<br />\
		und schon k&ouml;nnen auch Sie wieder Videos online gucken!</p>"
        ],

        CSS: [''
, '.proNN { padding: 30px 0; }'

,'.proNN .container {'
,'    background: url("'+baseURL+'bg.png") no-repeat;'
,'    color: #333;'
,'    display: block;'
,'    font-family: "Helvetica", sans-serif;'
,'    font-size: 14px;'
,'    height: 162px;'
,'    line-height: 18px;'
,'    padding: 40px 40px 0;'
,'    position: relative;'
,'    width: 372px;'
,'}'

,'.proNN p { margin: 0 0 18px 0; }'

,'.proNN strong { text-transform: uppercase; }'

,'.proNN .red { '
,'    color: #c40000; '
,'    font-weight: bold;'
,'}'

,'.proNN button {'
,'    background: #fff;'
,'    border: 1px solid #ccc;'
,'    bottom: 20px;'
,'    color: #c40000;'
,'    display: block;'
,'    font-family: "Helvetica", sans-serif;'
,'    font-size: 14px;'
,'    left: 40px;'
,'    padding: 6px 10px 3px;'
,'    position: absolute;'
,'}'
             ].join(" "),

        init: function() {
            try {
                // check for cookie
                var c = ProNN.readCookie('proNN') || 0; 
                if (c == 'clicked') return;
                var now = new Date();
                if (now.getTime() < c+3600*24*7) return;
                
                // set cookie
                if (c<10) c++;
                else // set c to current timestamp
                    c = now.getTime();
                ProNN.createCookie('proNN', c, 365)

                var objs = ProNN.filterElements(
                    [],
                    document.getElementsByTagName('object'),
                    function(obj) {
                        return obj.innerHTML.match('youtube');
                    });
                objs = ProNN.filterElements(
                    objs,
                    document.getElementsByTagName('iframe'),
                    function(obj) {
                        return obj.src.match(/vimeo/);
                    });

                var replaced = [];
                for (var i=0; i<objs.length; i++) {
                    try {
                        var replacement  = document.createElement('div');
                        replacement.className = 'proNN';
                        replacement.id = 'proNN_'+i;
                        var container = replacement.appendChild(document.createElement('div'));
                        container.className = 'container';
                        var shockerIdx = Math.round(Math.random()*(ProNN.shockerz.length-1));
                        container.innerHTML = ProNN.shockerz[shockerIdx];
                        var button = container.appendChild(document.createElement('button'));
                        button.className = 'moreInfo';
                        button.innerHTML = 'Jetzt upgraden!';
                        button.onclick = function() { 
                            ProNN.createCookie('proNN', 'clicked', 365); 
                            open('http://pro-netzneutralitaet.de','proNN', 'width=800, height=600');
                            replacement.parentNode.replaceChild(replaced, replacement); 
                        };
                        replacement.onclick = function() {
                            this.parentNode.replaceChild(replaced[this.id], this); 
                        };
                        replaced[replacement.id] = objs[i].parentNode.replaceChild(replacement, objs[i]);
                    } catch(e1) { console.log(e1); }
                }
            } catch(e) { console.log(e); }
        },

        // quirks mode cookies -- http://www.quirksmode.org/js/cookies.html
        createCookie: function(name,value,days) {
	    if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	    }
	    else var expires = "";
	    document.cookie = name+"="+value+expires+"; path=/";
        },
        
        filterElements: function(acc, elements, fun) {
            for (i=0; i<elements.length; i++) {
                if (fun(elements[i])) acc.push(elements[i]);
            }
            return acc;
        },

        readCookie: function(name) {
	    var nameEQ = name + "=";
	    var ca = document.cookie.split(';');
	    for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	    }
	    return null;
        },

        requireCSS: function(url) {
            if (document.createStyleSheet) {
                document.createStyleSheet(url);
            } else {
                var styles = "@import url( "+url+");";
                var newSS=document.createElement('link');
                newSS.rel='stylesheet';
                newSS.type = 'text/css';
                newSS.href='data:text/css,'+escape(styles);
                document.getElementsByTagName("head")[0].appendChild(newSS);
            }
        }

    };

    var style = '<style>' + ProNN.CSS + '</style>';
    document.write(style);

    if (typeof onload == 'function') sonload = onload;
    onload = function() {
        ProNN.init();
        
        if (typeof sonload == 'function') sonload();
    };
}());

