﻿// Copyright 2008 by eventim.de
				
/**
 * Global banner rotation is being used, IF there are no values for the actual function respectively will be overwritten if they have been set previously... 
 * Globale Bannerrotation, wird genutzt, falls keine Werte an die aktuelle Funktion uebergeben wurden, bzw. wird ueberschrieben
 * wenn bereits zuvor gesetzt ...
 *
 *	- url		Target-Url
 *	- img		Image-Url
 *	- title		Optional: Banner titel (alt-Attribut)
 *	- target	Optional: Target window (Default: _blank)
 *	- start		Optional: Start-date, example "new Date(2008, 0, 1, 0, 0, 0)", notice: month beginns with 0, not with 1 
 *	- end		Optional: End-date, example "new Date(2008, 11, 31, 23, 59, 59)", notice: month beginns with 0, not with 1 
 */
var globalRotation = [

	{ 
		title  : 'Biljettalarm', 
		target : 'blank', 
		url    : 'tinfo.dll?affiliate=ese&doc=newsletter/campaign2/new_sta', 
		img    : '/img/se_eventim/teaser/various/biljettalarmbanner.gif', 
		start  : new Date(2009, 0, 1, 0, 0, 0), 
		end    : new Date(2011, 0, 1, 0, 0, 0)
	},
	
	{ 
		title  : 'Ticketdirect', 
		target : 'blank', 
		url    : 'tinfo.dll?affiliate=ese&doc=info/inf_td', 
		img    : '/img/se_eventim/teaser/various/ticketdirectbanner.gif', 
		start  : new Date(2009, 0, 1, 0, 0, 0), 
		end    : new Date(2011, 0, 1, 0, 0, 0)
	}

/**	{ 
		title  : 'Biljettalarm', 
		target : 'blank', 
		url    : 'tinfo.dll?affiliate=ese&doc=newsletter/campaign2/new_sta', 
		img    : '/img/se_eventim/teaser/various/biljettalarmtemp.gif',
		start  : new Date(2009, 0, 1, 0, 0, 0), 
		end    : new Date(2010, 0, 1, 0, 0, 0)
	}
 */
	                                    
];

/**
 * Filtert abgelaufene oder ungueltige Items aus ...
 */
var filterBannerRotation = function(items) {
	
	var items     = items || [];
	var tmpBanner = [];
	var tmpNow    = new Date();
	
	for (var i = 0; i < items.length; i++) {
	
		if ((items[i].start || !(items[i].start || false)) <= tmpNow && (items[i].end >= tmpNow || !(items[i].end || false))) tmpBanner.push(items[i]);
	};
	
	return (tmpBanner.length == 0) ? false : tmpBanner ;
};

/**
 * Default Rotation setzen, zuvor, falls gesetzt lokal, diese noch validieren ...
 */
var defaultRotation = filterBannerRotation( globalRotation) || globalRotation;

/**
 * Banner, die wirklich immer angezeigt werden soll, bzw. in der Rotation sein sollen!
 */
var everytimeRotation = [];
defaultRotation = defaultRotation.concat(everytimeRotation || []);

/**
 * Banner, die der normalen Rotation hinzugefuegt werden sollen, sowie die die immer
 * laufen sollen, nun der defaultRotation hinzufuegen.
 */
var additionalRotation = additionalRotation || [];
defaultRotation = defaultRotation.concat(additionalRotation);

/**
 * Erstellt einen Banner aus einer uebergebenen Rotation(wenn verfuegbar).
 */
var foundBannerRotation = function() {
	
	// Werte validieren und vorbereiten ...
	var tmpBanner = filterBannerRotation(defaultRotation || []);
	
	// Jetzt wo bekannt ist, wieviele Banner noch aktiv in der Rotation sind, kann per Zufall einer davon angezeigt werden,
	// vorrausgesetzt, es gibt mindestens einen.
	if (!tmpBanner) return;
	
	var tmpZufall = Math.round((tmpBanner.length - 1) * Math.random());
	var showBanner = tmpBanner[tmpZufall] || false;
	
	// Ausgabe des Banners, wenn einer gefunden wurde ..., darauf achten, dass zwecks Tracking die Session
	// mit durchgereicht wird, falls vorhanden (andernfalls einfach "EVE_NO_SESSION").
	if(showBanner) document.write('<a href="' + showBanner.url + '" target="' + (showBanner.target || '_blank') + '"><img src="' + showBanner.img + '" alt="' + (showBanner.title || '') + '" border="0" /></a>');
};

foundBannerRotation(defaultRotation || false);