var SlideShowSections = new function() {
	// Slide class
	var Slide = function(slide) {
		this.imgObj	= null;
		this.linkObj = null;
		this.wholeItem = slide;
		
		this.getImagePath  = function() {
			return (this.imgObj) ? this.imgObj.src : '';
		}
		
		this.getLinkUrl = function() {
			return (this.linkObj) ? this.linkObj.href : '';
		}
		
		// Constructor
		// get image and remove from slide
		var imgs = slide.getElementsByTagName('img');
		if (imgs.length) {
			this.imgObj = imgs[0];
//			slide.removeChild(this.imgObj);
		}
		// get link and remove from slide
		var pLinkNode = XB.getElementsByClass('link', 'p', slide)[0];
		if (pLinkNode) {
			this.linkObj = pLinkNode.firstChild;
			slide.removeChild(pLinkNode);
		}
	}
	
	// PROPERTIES
	this.list = new Array;
	this.current = 0;
	this.flashLoaderReady = false;
	this.flashNavigationReady = false;
	this.flashLoader = null;
	this.flashNavigation = null;
	this.slideCopyBox = null;
	
	// METHODS
	// flash ready event handler
	this.onFlashLoaded = function() {
//		alert('onFlashLoaded');
		this.flashLoader = document['flashLoader'] || window['flashLoader'];
		this.flashLoaderReady = true;
	}
	
/*	this.onFlashNavigationLoaded = function() {
//		alert('onFlashNavigationLoaded');
		this.flashNavigation = document['flashNavigation'] || window['flashNavigation'];
		this.flashNavigationReady = true;
	}
*/	
	this.onFlashNavigationClicked = function (id) {
//		alert('onFlashNavigationClicked');
		// just in case....
		id = parseInt(id);
		// rotation:
		id = (id > this.list.length - 1) ? 0 : ((id < 0) ? this.list.length - 1 : id);
		if (this.flashLoaderReady) {
			this.flashLoader.changeImage(id);
		}
	}
	
	this.onChangeImage = function(id) {
//		alert('onChangeImage ' + id);
		// change the text;
/*		if (this.flashNavigationReady) {
			this.flashNavigation.changeImage(id);
		}
*/
		var slideCopyBox = this.slideCopyBox;
		var childNodes = slideCopyBox.childNodes;
		var l = childNodes.length;
		for (var i=0; i<l; i++) {
			slideCopyBox.removeChild(slideCopyBox.firstChild);
		}
		var naviItems = this.htmlNavigation.getElementsByTagName('li');
		XB.removeClassFromElement('act', naviItems[this.current]);
		XB.appendClassToElement('act', naviItems[id]);
		slideCopyBox.appendChild(this.list[id].wholeItem);
		this.current = id;
	}
	
	
	// initDisplay creates flash loader object, removes promotions from DOM and creates navigation
	this.initDisplay = function(flashLoaderPath, flashNavigationPath, id) {
		// sanitize id
		id = parseInt(id);
		id = (id > this.list.length) ? 0 : id;
		this.current = id;
		
		// initialize list of slides
		var slides = XB.getElementsByClass('section-slides', 'div');
		var l = slides.length;
		if (!l)	{
			return;
		}
		for (var i=0; i<l; i++) {
			var items = XB.getElementsByClass('item', 'div', slides[i]);
			var m = items.length;
			for (var j=0; j<m; j++) {
				this.list.push(new Slide(items[j]));
			}
		}
		
		this.slideCopyBox = document.getElementById('slideCopyBox');
		// prepare display object
		this.flashLoaderBox = document.getElementById('flashLoaderBox');
		var vFlashVars = '';
		var imgPaths = [];
		var l = this.list.length;
		for (var i=0; i<l; i++) {
			imgPaths[i] = this.list[i].getImagePath().replace("&", '%26', "g");
		}
		vFlashVars = 'promotions=' + imgPaths.join(',');
		var linkUrls = [];
		for (var i=0; i<l; i++) {
			linkUrls[i] = this.list[i].getLinkUrl();
		}
		vFlashVars += '&urls=' + linkUrls.join(',');
		
		this.flashLoaderBox.innerHTML = '<object width="310" height="190" align="middle" id="flashLoader" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"><param value="always" name="allowScriptAccess"/><param value="fileadmin/content/swf/BannerLoader.swf" name="movie"/><param value="high" name="quality"/><param value="#666666" name="bgcolor"/><param value="transparent" name="wmode"/><param value="promotions=fileadmin/content/img/slideshow/310x190/coral.jpg,fileadmin/content/img/slideshow/310x190/galabingo.jpg,fileadmin/content/img/slideshow/310x190/ecommerce.jpg&urls=divisions/retail-betting.html,divisions/gala-gaming.html,divisions/remote-gambling.html" name="flashvars"/><embed width="310" height="190" align="middle" wmode="transparent" flashvars="promotions=fileadmin/content/img/slideshow/310x190/coral.jpg,fileadmin/content/img/slideshow/310x190/galabingo.jpg,fileadmin/content/img/slideshow/310x190/ecommerce.jpg&urls=divisions/retail-betting.html,divisions/gala-gaming.html,divisions/remote-gambling.html" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptaccess="always" name="flashLoader" id="flashLoader" swliveconnect="true" bgcolor="#666666" quality="high" src="fileadmin/content/swf/BannerLoader.swf"/></object>';
		
//'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="flashLoader" width="310" height="190" align="middle"><param name="allowScriptAccess" value="always" /><param name="movie" value="' + flashLoaderPath + '" /><param name="quality" value="high" /><param name="bgcolor" value="#666666" /><param name="wmode" value="transparent" /><param name="flashvars" value="' + vFlashVars + '" /><embed src="' + flashLoaderPath +'" quality="high" bgcolor="#666666" width="310" height="190" swLiveConnect="true" id="flashLoader" name="flashLoader" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" FlashVars="' + vFlashVars + '" wmode="transparent" /></object>';

//'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="flashLoader" width="370" height="200" align="middle"><param name="allowScriptAccess" value="always" /><param name="movie" value="'+flashLoaderPath+'" /><param name="quality" value="high" /><param name="bgcolor" value="#666666" /><param name="flashvars" value="'+vFlashVars+'" /><embed src="'+flashLoaderPath+'" quality="high" bgcolor="#666666" width="370" height="200" swLiveConnect="true" id="flashLoader" name="flashLoader" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" FlashVars="'+vFlashVars+'" /></object>';

		// init flash navigation
/*		var flashId = 'flashNavigation';
		this.flashNavigationBox = document.getElementById('flashNavigationBox');
		this.flashNavigationBox.innerHTML = 
'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="' + flashId + '" width="650" height="95" align="middle"><param name="allowScriptAccess" value="always" /><param name="movie" value="' + flashNavigationPath + '" /><param name="quality" value="high" /><param name="bgcolor" value="#666666" /><param name="wmode" value="transparent" /><embed src="' + flashNavigationPath +'" quality="high" bgcolor="#666666" width="650" height="95" swLiveConnect="true" id="' + flashId + '" name="' + flashId + '" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" /></object>';	
*/
		// initialize HTML navigation
		this.htmlNavigation = document.getElementById('htmlNavigationBox');
		var naviLinks = this.htmlNavigation.getElementsByTagName('a');
		var l = naviLinks.length;
		var this_ = this;
		for (var i = 0; i < l; i++) {
			naviLinks[i].onclick = (function(){
				var i_cached = i;
				return function(e) {
					this_.onFlashNavigationClicked(i_cached);
					return false;
				}
			})();
		}
	}

	this.init = function(cookieId) {
		if (cookieId == null) {
			cookieId = 0;
		}
		// reading cookie to set current promotion
		var cookies = document.cookie.split('; ');
		var id=0;
		for (var i=0; i<cookies.length; i++) {
			var cookie = cookies[i].split('=');
			if (cookie[0] == 'promotion' + cookieId) {
				id = parseInt(cookie[1]);
				break;
			}
		}
	
		// init display of promotions
		SlideShowSections.initDisplay('fileadmin/content/swf/BannerLoader.swf',
			//'http://img0.eurobet.com/coralgames/fileadmin/BannerLoader.swf',
			'fileadmin/content/swf/FlashNavigation.swf',
			id);
	
		// setting cookie on page unload
		window.onunload = function() {document.cookie = 'promotion' + cookieId + '=' + SlideShowSections.current; };
	}
};

// compatibility with FlashLoader, interface stays same
var Promotions = SlideShowSections;

Announcer.subscribe('onBodyEnd', function() {
	SlideShowSections.init();
});