// Werbescript (c) Frank Reiermann
// fuer DNS-TV

var xCookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toUTCString();
    }
    return (document.cookie = escape(name) + '=' + escape(value || '') + expire);
  },
  get: function(name) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
    return (cookie ? unescape(cookie[2]) : "");
  },
  erase: function(name) {
    var cookie = xCookie.get(name) || true;
    xCookie.set(name, '', -1);
    return cookie;
  },
  accept: function() {
    if (typeof navigator.cookieEnabled == 'boolean') {
      return navigator.cookieEnabled;
    }
    xCookie.set('_test', '1');
    return (xCookie.erase('_test') === '1');
  }
};

// Erweiterung der Funktionen von Prototype
Object.extend(Element, {
	DNSgetWidth: function(element) {
	   	element = $(element);
	   	return element.offsetWidth; 
	},
	DNSsetWidth: function(element,w) {
	   	element = $(element);
    	element.style.width = w +"px";
	},
	DNSsetHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	DNSsetTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	},
	DNSsetLeft: function(element,l) {
	   	element = $(element);
    	element.style.left = l +"px";
	},
	DNSsetSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	DNSsetHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	DNSsetInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});

// Funktionen zum Platzieren und festhalten von PopUps
function DNSGetPageScroll(){
	var xScroll, yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}
	arrayPageScroll = new Array(xScroll,yScroll) 
	return arrayPageScroll;
}


function DNSGetPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	
//	console.log(self.innerWidth);
//	console.log(document.documentElement.clientWidth);

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


function Random(max) {
	return Math.floor(max*Math.random());
}

// Schließt das Haupt-PopUp
function DNScloseAd() {
	DNSCronJob.stop();
	Event.stopObserving(document, 'keypress', escapeDNSOverlay.bfx );
	Event.stopObserving(window, 'resize', DNSplaceOverlay );
	Event.stopObserving(window, 'scroll', DNSplaceOverlay );
	$('dnsadframe').hide();
	$('dnsoverlay').hide();
}

// Overlay-Handling
var escapeDNSOverlay = {
	fx: function(e) 
	{
		var kC  = (window.event) ? event.keyCode : e.keyCode;
		var Esc = (window.event) ? 27 : e.DOM_VK_ESCAPE;
		if(kC==Esc && ($F('newvalue') == '' || $F('newvalue') == null) )
			DNScloseAd();
		else 
			DNScloseAD();
	}
}
escapeDNSOverlay.bfx = escapeDNSOverlay.fx.bindAsEventListener(escapeDNSOverlay);

// Startet die Werbung
function DNSshowAd() {
	if (werbepartner.length > 0) {
		DNSCronJob = new
			PeriodicalExecuter(DNScloseAd, 20); // nach 20 Sekunden geht die Werbung wieder weg
		pos = Random(werbepartner.length);
	
		var wcontent = '<div style="text-align:right;"><img src="/cgi-wms/images/minus.gif" onclick="DNScloseAd();"> &nbsp; <a href="#" onclick="DNScloseAd();" >WERBUNG SCHLIESSEN</a></div>';
		if (werbepartner[pos][0] != "") { // Bild-Anzeige	
			wcontent +=  '<a href="'+werbepartner[pos][1]+'"><img style="margin:1px;" src="'+werbepartner[pos][0]+'"></a>' ;
		} else { // IFrame-Anzeige
			if (werbepartner[pos][2]!="") {
				wcontent +=  '<iframe src="'+werbepartner[pos][2]+'" width="950" height="600" style="border:0px; margin:0px;padding:0px;"></iframe>' ;
			}
		}
		document.getElementById( 'dnsadframe' ).innerHTML=wcontent;
		DNSplaceOverlay();		 
		$('dnsoverlay').show();	
	
		new Effect.Appear( 'dnsadframe', {from:0.0, duration:2});
		
		Event.observe(window, 'resize', DNSplaceOverlay );
		Event.observe(window, 'scroll', DNSplaceOverlay );
	}
}

// Berichtigt immer wieder die Position
function DNSplaceOverlay() {
	var arrayPageSize = DNSGetPageSize();
	Element.DNSsetWidth('dnsoverlay', arrayPageSize[0]);
	Element.DNSsetHeight('dnsoverlay', arrayPageSize[1]);
	Event.observe(document, 'keypress', escapeDNSOverlay.bfx );
	
	// calculate top and left offset for the lightbox 
	var arrayPageScroll = DNSGetPageScroll();
	var DNSTop = arrayPageScroll[1] + ((arrayPageSize[3]-800) / 2);
	var DNSLeft = arrayPageScroll[0] + ( (arrayPageSize[0]-950   )/2  );
	Element.DNSsetTop('dnsadframe', DNSTop);
	Element.DNSsetLeft('dnsadframe', DNSLeft);	
}

// Ladevorgang abgecshlossen
function initDNSAd() {
	// Start-Button
	var adcount = xCookie.get('dnsad');
	if (adcount == "") adcount=0;
	
	if ((adcount>0) || (adcount < 5)) {
		DNSshowAd();
	}
	adcount++;	
	xCookie.set('dnsad', adcount, '1');

}


var DNSCronJob;

document.write('<div id="dnsoverlay" style="display: none;	position: absolute;	left: 0px;	top: 0px;	width: 100%;	height: 100%;	background: url(/cgi-wms/images/overlay1.gif); opacity: .7; filter: alpha(opacity=70);z-index: 1000;"> </div>');
document.write('<div id="dnsadframe" style="line-height:110%; display: none;position: absolute;z-index: 1001;border:0px;background-color:#000000; width:950px; height:800px; color:#FFFFFF; padding:3px;font-family:Arial, Helvetica; font-size:10px; font-weight:bold; margin:0px;overflow:hidden; text-align:center;">');
document.write('</div>');



// Nach dem Laden der Seite starten wir die Werbung
document.observe("dom:loaded", initDNSAd);

