(function() {

	var Class = benignware.core.Class;
	var Element = Class.require("benignware.core.Element");
	var Event = Class.require("benignware.events.Event");
	var Component = Class.require("benignware.core.Component");
	var DOM = Class.require("benignware.utils.DOM");
	var StringUtils = Class.require("benignware.utils.StringUtils");
	var Slideshow = Class.require("benignware.view.Slideshow");
	var ItemScroller = Class.require("benignware.view.ItemScroller");

	DOM.getInstance().addEventListener('DOMContentLoaded', function(event) {
		var slideshow = document.getElementById('slideshow');
		if (slideshow) {
			slideshow.addEventListener(Slideshow.TRANSITION_START, slideHandler, false);
		}
		var itemScroller = document.getElementById('item-scroller');
		if (itemScroller) {
			itemScroller.addEventListener(ItemScroller.CHANGE, itemScrollerChangeHandler, false);
		}
	}, false);
	
	function slideHandler(event) {
		var slideshow = event.target;
		//
		var itemScroller = document.getElementById('item-scroller');
		if (itemScroller) {
			var i = event.target.getPosition();
			itemScroller.setPosition(i);
		}
		var slideshowControls = document.getElementById('slideshow-controls');
		if (slideshowControls) {
			slideshowControls.style.visibility = "visible";
		}
		
		var slideshowMarkers = document.getElementById('slideshow-position-markers');
		if (slideshowMarkers) {
			var markers = DOM.getElements(slideshowMarkers);
			for (var i = 0; i < markers.length; i++) {
				var child = markers[i];
				if (i == slideshow.getPosition()) {
					Element.addCSSName(child, 'selected');
				} else {
					Element.removeCSSName(child, 'selected');
				}
			}
		}
		
		var slideshowTeaserItems = document.getElementById('slideshow-teaser-items');
		if (slideshowTeaserItems) {
			var items = DOM.getElements(slideshowTeaserItems);
			for (var i = 0; i < items.length; i++) {
				var child = items[i];
				child.style.display = i == slideshow.getPosition() ? "block" : "none";
			}
		}
	}
	
	function itemScrollerChangeHandler(event) {
		var slideshow = document.getElementById('slideshow');
		if (slideshow) {
			var i = event.target.getPosition();
			slideshow.setPosition(i);
		}
	}
	
	
})();
		
