﻿/* -- Slider - Gallery -- */

function Gallery() {
	var self = this;
	this.container;
	this.display;
	this.slider;
	
	this.content = new Array();
	
	this.init = function(container) {
		var list = container.getElementsByTagName("div");
		
		for (var i = 0; i < list.length; i++) {
			var img = list[i].getElementsByTagName("img")[0].src;
			var text = list[i].getElementsByTagName("p")[0].innerHTML;
			this.content.push(new Array(img, text));
		}
		
		container.innerHTML = "";
		container.style.display = "block";
		this.container = container;
		this.paint();
	};
	
	this.paint = function() {
		this.display = this.getDisplay();
		this.container.appendChild(this.display);
		
		this.slider = this.getSlider();
		this.container.appendChild(this.slider);
		
		var images = this.slider.childNodes[1].childNodes[0].childNodes;
		if (images.length > 0) {
			this.addListeners();
			this.setDisplay(images[0]);
		}
	};
	
	this.getDisplay = function() {
		var display = document.createElement("div");
		display.className = "display";
		return display;
	};
	
	this.getSlider = function() {
		var slider = document.createElement("div");
		slider.className = "slider";
		
		var left = document.createElement("div");
		left.className = "left";
		
		var aLeft = document.createElement("a");
		aLeft.href = "JavaScript: gallery.slideLeft()";
		
		left.appendChild(aLeft);
		slider.appendChild(left);
		
		var images = document.createElement("div");
		images.className = "images";
		
		var imgContainer = document.createElement("div");
		imgContainer.className = "container";
		imgContainer.style.width = (this.content.length * 70) + "px";
		
		var preloadContainer = document.createElement("div");
		preloadContainer.style.display = "none";
		
		for (var i = 0; i < this.content.length; i++) {
			var img = document.createElement("img");
			img.src = this.content[i][0];
			
			var text = document.createElement("p");
			text.innerHTML = this.content[i][1];
			
			var element = document.createElement("div");
			element.appendChild(img);
			element.appendChild(text);
			
			imgContainer.appendChild(element);
			
			var preload = document.createElement("img");
			preload.src = this.content[i][0].replace("thumbs/", "");
			preloadContainer.appendChild(preload);
		}
		
		images.appendChild(imgContainer);
		slider.appendChild(images);
		slider.appendChild(preloadContainer);
		
		var right = document.createElement("div");
		right.className = "right";
		
		var aRight = document.createElement("a");
		aRight.href = "JavaScript: gallery.slideRight()";
		
		right.appendChild(aRight);
		slider.appendChild(right);
		slider.innerHTML += "<div style='clear: both;'></div>";
		
		return slider;
	};
	
	this.setDisplay = function(element) {
		var content = element.cloneNode(true);
		var src = content.firstChild.src.replace("thumbs/", "");
		
		var image = new Image();
		image.onreadystatechanged = content.replaceChild(image, content.firstChild);
		image.src = src;
		
		this.display.innerHTML = "";
		this.display.appendChild(content);
	};
	
	this.addListeners = function() {
		var list = this.slider.childNodes[1].firstChild.childNodes;
		for (var i = 0; i < list.length; i++) {
			list[i].onclick = function() {
				gallery.setDisplay(this);
			};
		}
	};
	
	this.slideLeft = function(to) {
		var slider = this.slider.childNodes[1];
		var from = parseInt(slider.firstChild.style.marginLeft);
		if (isNaN(from)) {
			from = 0;
		}
		if (!to && to != 0) {
			var width = parseInt(slider.offsetWidth);
			to = from + width;
			var max = 0;
			if (to < max) {
				this.slideLeft(to);
			} else {
				this.slideLeft(max);
			}
		} else {
			var next = from + 8;
			if (next > to) {
				next = to;
			}
			slider.firstChild.style.marginLeft = next + "px";
			if (next < to) {
				setTimeout(function() {
					self.slideLeft(to);
				}, 5);
			}
		}
	};
	
	this.slideRight = function(to) {
		var slider = this.slider.childNodes[1];
		var from = parseInt(slider.firstChild.style.marginLeft);
		if (isNaN(from)) {
			from = 0;
		}
		if (!to) {
			var width = parseInt(slider.offsetWidth);
			to = from - width;
			var max = width-parseInt(slider.firstChild.style.width);
			if (to > max) {
				this.slideRight(to);
			} else {
				this.slideRight(max);
			}
		} else {
			var next = from - 8;
			if (next < to) {
				next = to;
			}
			slider.firstChild.style.marginLeft = next + "px";
			if (next > to) {
				setTimeout(function() {
					self.slideRight(to);
				}, 5);
			}
		}
	};
}

/* -- Calendar - Events -- */
var events = new Array();
function showEvents(y, m) {
	document.getElementById("columnset8_column3").style.height = "auto";
	var all = document.getElementById("allEvents");
	var current = document.getElementById("events");
	current.innerHTML = "";
	m = myMonths[m];
	var divs = all.getElementsByTagName('div');
	for (var i = 0; i < divs.length; i++) {
		if (divs[i].className.indexOf("module688_2_columnset2") != -1) {
			divs[i].style.height = "82px";
		} else if (divs[i].className.indexOf("modulelayout688_2") != -1) {
			divs[i].style.height = "82px";
			divs[i].style.overflow = "hidden";
				if (navigator.appVersion.indexOf("MSIE 7.") >= 0) {
				divs[i].style.borderTop = "1px solid #D7D6D6";
				}
			events.push(divs[i]);
		}
	}
	var dayActive = new Array();
	var pattern = new RegExp(m + " " + y, "i");
	var dayPattern = new RegExp("[0-9]|([1-3][1-9]). " + m + " " + y, "i");
	for (var i = 0; i < events.length; i++) {
		var date = events[i].getElementsByTagName("div")[11].getElementsByTagName("span")[0].innerHTML;
		var success = pattern.test(date);
		if (success) {
			var index = date.search(dayPattern);
			dayActive.push(parseInt(date.substring(index, index+2).replace(".", "")));
			current.appendChild(events[i].cloneNode(true));
		}
	}
	current.innerHTML += "<div style='clear:both'></div>";
	calendar.markDates(dayActive);
	events = new Array();
}


function newsLetterLink(){
	window.open(this.href,'newsletter','width=400, height=550, scrollbars=yes, menubar=no, status=no, directories=yes, location=no,toolbars=no');
	return false;
}

function makeNewsletterLinks(){
	var anchors = document.getElementById('indhold').getElementsByTagName('a');
	//alert (anchors.length);
	for (i=0; i<anchors.length; i++){
		anchors[i].onclick = newsLetterLink;
	}
}


fixObjects=true;