$(document).ready(function() {


	// layer (glossary selector)

	var layerController = LayerController.getInstance();

	if ($("a#glossary-selector-handle").length) {
		var glossarySelector = new GlossarySelector;
		layerController.register(glossarySelector);
		glossarySelector.toggleWith("a#glossary-selector-handle");

	}

	if ($("div#glossary-selector-handle").length) {
		var glossarySelector = new GlossarySelector;
		layerController.register(glossarySelector);
		
		//alert("hier &#246;ffnen ...");
		//glossarySelector.toggleWith("div#glossary-selector-handle");
		glossarySelector.toggle("div#glossary-selector-handle");
				
	}


	
});

$.extend(Layer.prototype, {
	close: function () {}
});

/********************************************************************/

var GlossarySelector = function() {

	this.construct();
	
	this.selectors = {
		selectList: 'div#glossary-selector',
		mask: 'div#glossary-list-wrapper',
		slider: 'div.slider'
	};
	
	this.initKeyScrolling(this.selectors);
	
};


$.extend(GlossarySelector.prototype, Layer.prototype);

$.extend(GlossarySelector.prototype, KeyScrollable.prototype);

$.extend(GlossarySelector.prototype, {
	
	afterHide: function() {
		$("div#glossary-selector-handle").parent().css("z-index", "10");

		this.onClose();
	},

	beforeShow: function() {
		$("div#glossary-selector-handle").parent().css("z-index", "11");

		this.onOpen();
	},

	
	init: function() {
		var numberOfLocations = $("div#glossary-selector li").length;
		var visibleLocations = 20;
		if (numberOfLocations < visibleLocations) {
			$("div#glossary-selector div.slider").hide();
		} else {
			var sliderHeight = 300;
			var visibleHeight = 300;
			var handleHeight = Math.round(sliderHeight * visibleLocations / numberOfLocations);
			sliderHeight -= handleHeight;
			
			jQuery("div#glossary-selector div.slider").css("height", sliderHeight + "px").css("margin-top",handleHeight / 2 + "px").wrap("<div class='sliderHolder' style='height:"+visibleHeight+"px;'/>");
			
			//$("div#glossary-selector div.handle").css("height", handleHeight + "px");
			var locationListHeight = $("div#glossary-selector ul").height();
			
			jQuery("div#glossary-selector div.slider div.handle").hide();
			
			var syncLayer = function(e, ui) {
				
				jQuery("div#glossary-selector div.slider .manualslider").css("bottom", ui.value / locationListHeight * 	visibleHeight - (handleHeight/2) + "px");
				
				var newLocationListOffset = parseInt(locationListHeight - ui.value - visibleHeight);
				$("div#glossary-selector ul").css("top",  "-" + newLocationListOffset + "px");
			}
			
			jQuery("div#glossary-selector div.slider").append("<a class='manualslider' style='display:block;position:absolute;width:5px;height:"+handleHeight+"px;background:black;'></a>");
			
			var $slider = $("div#glossary-selector div.slider").slider( {
				min: 0,
				max: (locationListHeight - visibleHeight),
				slide: syncLayer,
				change : syncLayer,
				orientation: "vertical"
			});
			
			$(this.selectors.selectList).mousewheel(function(event, delta) {
				if (delta < 0) {
					$slider.slider("value", $slider.slider("value")-(delta+10));
				} else if (delta > 0) {
					$slider.slider("value", $slider.slider("value")-delta+10);
				}
				event.preventDefault();
				event.stopPropagation();
			});
			
			$("div#glossary-selector div.slider").slider("value", (locationListHeight - visibleHeight));
			
		}
	}
	
});

$(document).ready(function(e) {
		
		//install onclick handlers to show the selected article
		
		$('div.glossary dt a').bind('click',function(e) {
				$('div.glossary dd').hide();
				$('div.glossary dt').removeClass('active');
				$(this).parent().next().show();
				$(this).parent().addClass('active');
				return false;
			});
			
		//$('#glossary-list-wrapper li a').addClass('red')
		
		$('#glossary-list-wrapper li a').bind('click',function(e) {
				$('div.glossary dd').hide();
				$('div.glossary-selector li').removeClass('active');
				$('#Entry' + this.id).show();
				$(this).parent().addClass('active');
				moveFooter(this.id)
				return false;
			});
			
			
		moveFooter(0)
			
		function moveFooter(entryId) {
				var MinPageHeight = parseInt($(window).height()) - 600;
				MinPageHeight = Math.max(MinPageHeight, 850) //min H&#246;he mit Glossaryword-Auswahl-Div
				var EntryHeight = MinPageHeight
				if (entryId > 0) {
					EntryHeight = parseInt($('#Entry' + entryId).height()) + 500
				} else {
					if ($(document).getUrlParam("art") != null) {
						EntryHeight = parseInt($('#Entry' + $(document).getUrlParam("art")).height()) + 500
					}
				}
				var PageHeight = Math.max(EntryHeight,MinPageHeight);
				$('#main-zone').css({height:PageHeight + 'px'});
		}
	});
	
	var contentList=""
	
	
	
	//Show Detail of first entry
	$(document).ready(function() {
	
		if (location.search && location.search.toString().indexOf("alph") == -1) {
			// direkter Aufruf eines Topic
		} else {
			if ($("div#glossary-selector-handle").length) {
				var firstEntry = $("div#glossary-list-wrapper ul li:eq(0) a");
				
				//firstEntry.css({backgroundColor: 'blue'});
				
				firstEntry.click();
			
			}
		}
		
	
	});


