﻿/* Singleline functions
---------------------------------------------------------------- */

function $d(d) {
	return document.getElementById(d);
}

var checkbox = function () {
	return {
		send : function (elm, who, source) {
			var elems = document.getElementsByTagName('input');
			var checked = new Array();
			for (var i = 0; i < elems.length; i++) {
				if (elems[i].type === 'checkbox' && elems[i].name === who && elems[i].checked) {
					//alert(elems[i].value);
					checked.push(elems[i].value);
				}
			}
			//alert( checked.join(','));
			ajax.page(source + '?categories=' + checked.join(','), 'gallery-ajax', true);
		},
		reload : function (elm, who, source) {
			var elems = document.getElementsByTagName('input');
			var checked = new Array();
			for (var i = 0; i < elems.length; i++) {
				if (elems[i].type === 'checkbox' && elems[i].name === who && elems[i].checked) {
					//alert(elems[i].value);
					checked.push(elems[i].value);
				}
			}
			//alert( checked.join(','));
			window.location = source + '?categories=' + checked.join(',');
		}
	};
}
();

var pop = function () {
	return {
		show : function (elem, objectId, img, nam, dat) {
			if (objectId != '' && img != '') {
				$d('popupimage').src = img;
				$d('popupimage').style.display = 'block';
				var pophead = $d('popuphead');
				var popdate = $d('popupdate');
				pophead.innerHTML = nam;
				popdate.innerHTML = dat;
				$d('ShareId').value = objectId;
				$d(elem).style.display = 'block';
			}
		},
		hide : function (elem) {
			$d(elem).style.display = 'none';
			var pophead = $d('popuphead');
			var popdate = $d('popupdate');
			pophead.innerHTML = '';
			popdate.innerHTML = '';
			$d('ShareId').value = ''
				$d('popupimage').src = '/anlaeg/gfx/clear.png';
		}
	}
}
();

function print() {
	var drl = $d('directlink');
	var xW;
	var xH;
	xW = '640';
	xH = '852';
	var dlink = drl.value + '/ShareId/' + $d('ShareId').value + '/p/1';
	window.open(dlink, 'sharer', 'toolbar=0,status=0,width=' + xW + ',height=' + xH);
}
function share() {
	var slt = $d('share-long-text');
	var drl = $d('directlink');
	var serUrl;
	var xW;
	var xH;
	var t = slt.value;
	xW = '626';
	xH = '436';
	var dlink = drl.value + '/ShareId/' + $d('ShareId').value;
	serUrl = 'http://www.facebook.com/sharer.php?u=' + dlink;
	window.open(serUrl, 'sharer', 'toolbar=0,status=0,width=' + xW + ',height=' + xH);
}
/* Toogle text
---------------------------------------------------------------- */

var field = function () {
	return {
		focus : function (f, txt) {
			if (f.value == txt) {
				f.value = '';
			} else {
				f.select();
			}
		},
		blur : function (f, txt) {
			if (f.value == '') {
				f.value = txt;
			}
		}
	};
}
();

/* Toogle
---------------------------------------------------------------- */

var dropallow = false;

var toogle = function () {
	return {
		dropdown : function (f, act) {
			var obj = $d('dropdown');
			if (obj) {
				if (act == 'show') {
					if (obj.style.display != 'block') {
						obj.style.display = 'block';
						obj.style.opacity = '0';
						setTimeout("toogle.dropdown(this,'delay');", 100);
						setTimeout("toogle.dropdown(this,'remove');", 200);
						dropallow = true;
					} else {
						toogle.dropdown(this, 'onclick');
					}
				}
				if (act == 'delay') {
					obj.style.opacity = '100';
					dropallow = true;
				}
				if (act == 'remove') {
					dropallow = false;
				}
				if (act == 'hide') {
					if (!dropallow) {
						obj.style.display = 'none';
						obj.style.opacity = '0';
					}
				}
				if (act == 'onclick') {
					if (obj.style.display == 'block') {
						toogle.dropdown(this, 'hide');
					}
				}
			}
		}
	};
}
();

/* Tabs
---------------------------------------------------------------- */

var tabs = function () {
	return {
		change : function (f, m, c) {
			var obj = $d(m);
			var ajx = $d(m + '-ajax');
			var hrf = f.href + '/ajax/true';
			var cuf = c || 'true';
			// console.log('obj:' +obj);
			// console.log('m:' +m);
			// console.log('f:' +f);
			// console.log('m:' +m);
			// console.log('hrf:' +hrf);
			if (obj && ajx) {
				// Reset
				var items = obj.getElementsByTagName('a');
				for (var d = 0; d < items.length; d += 1) {
					items[d].className = (cuf == 'true') ? 'cufon' : '';
					// console.log(items[d].href);
				}
				// Set
				f.className = (cuf == 'true') ? 'selected cufon' : 'selected';
				Cufon.refresh();
				// Ajax
				ajax.load(hrf, m + '-ajax', true);
			}
		}
	};
}
();

/* Validation
---------------------------------------------------------------- */

var validate = function () {
	var execute = true;
	return {
		err : function (f, act) {
			var obj = $d(f);
			if (obj) {
				if (act == 'reset') {
					obj.style.backgroundColor = '#f0f0f0';
				} else {
					obj.style.backgroundColor = '#eccdce';
				}
			}
		},
		email : function (str) {
			var filter = /^[^\s@]+@[^\s@]+\.[a-z]{2,6}$/i;
			if (filter.test(str)) {
				return true;
			} else {
				return false;
			}
		},
		empty : function (str) {
			var filter = /^\s+$/;
			var expression;
			if (filter.test(str) || str == '') {
				expression = false;
			} else {
				expression = true;
			}
			return expression;
		},
		onlynumbers : function (evt) {
			var charCode = (evt.which) ? evt.which : event.keyCode;
			if (charCode > 31 && (charCode < 48 || charCode > 57)) {
				return false;
			} else {
				return true;
			}
		},
		search : function (f, s) {
			execute = true;
			if (!validate.empty(f.q.value) || f.q.value == s) {
				execute = false;
			}
			return execute;
		},
		biblio : function (f, s) {
			execute = true;
			if (!validate.empty(f.ean.value) || f.ean.value == s) {
				execute = false;
			}
			return execute;
		},
		signin : function (f, s, t) {
			execute = true;
			if (!validate.empty(f.cpr.value) || f.cpr.value == s) {
				execute = false;
			}
			if (!validate.email(f.pin.value) || f.pin.value == t) {
				execute = false;
			}
			return execute;
		}
	};
}
();

/* Ticker
---------------------------------------------------------------- */

var sliding = false;

var ticker = function () {
	return {
		initialize : function (f, auto, wid) {
			var obj = $d(f);
			var elm = $d(f + '-controls');
			var cback = $d(f + '-back');
			var cforward = $d(f + '-forward');
			if (obj) {
				var tickers = ticker.count(f);
				if (tickers > 1) {
					if (elm) {
						elm.innerHTML = '';
						for (var d = 0; d < tickers; d += 1) {
							var dc = d + 1;
							if (d == 0) {
								elm.innerHTML += '<li><a href="#" title="" id="' + f + '-itm' + (dc) + '" class="mark" onclick="ticker.click(\'' + (dc) + '\',true,\'' + f + '\',\'' + wid + '\');return false;"><span>1</span></a></li>';
							} else {
								elm.innerHTML += '<li><a href="#" title="" id="' + f + '-itm' + (dc) + '" class="norm" onclick="ticker.click(\'' + (dc) + '\',true,\'' + f + '\',\'' + wid + '\');return false;"><span>1</span></a></li>';
							}
						}
					}
					if (cback && cforward) {
						cback.innerHTML = '<a href="#" title="" onclick="ticker.back(\'' + f + '\',\'' + wid + '\');return false;"><span>Back</span></a>';
						cforward.innerHTML = '<a href="#" title="" onclick="ticker.forward(\'' + f + '\',\'' + wid + '\');return false;"><span>Forward</span></a>';
					}
				}
			}
		},
		click : function (num, m, f, wid) {
			if (!sliding) {
				ticker.reset(f);
				var elm = $d(f + '-itm' + num);
				if (elm) {
					elm.className = 'mark';
					elm.blur();
				}
				ticker.toogle(num, f, wid);
			}
		},
		back : function (f, wid) {
			if (!sliding) {
				var obj = $d(f + '-controls');
				var items = obj.getElementsByTagName('a');
				var all = 0;
				var iscur = 0;
				for (var d = 0; d < items.length; d += 1) {
					all++;
					if (items[d].className == 'mark') {
						iscur = all;
					}
				}
				var next;
				var sub = parseInt(obj.title);
				if (!isNaN(sub)) {
					all = all - sub;
				}
				if (iscur == 1) {
					next = all;
				} else {
					next = iscur - 1;
				}
				ticker.click(next, false, f, wid);
			}
		},
		forward : function (f, wid) {
			if (!sliding) {
				var obj = $d(f + '-controls');
				var items = obj.getElementsByTagName('a');
				var all = 0;
				var iscur = 0;
				for (var d = 0; d < items.length; d += 1) {
					all++;
					if (items[d].className == 'mark') {
						iscur = all;
					}
				}
				var next;
				var sub = parseInt(obj.title);
				if (!isNaN(sub)) {
					all = all - sub;
				}
				if (iscur == all) {
					next = 1;
				} else {
					next = iscur + 1;
				}
				ticker.click(next, false, f, wid);
			}
		},
		auto : function (f, wid) {
			var obj = $d(f + '-controls');
			var items = obj.getElementsByTagName('a');
			var all = 0;
			var iscur = 0;
			for (var d = 0; d < items.length; d += 1) {
				all++;
				if (items[d].className == 'mark') {
					iscur = all;
				}
			}
			var next;
			if (iscur == all) {
				next = 1;
			} else {
				next = iscur + 1;
			}
			ticker.click(next, false, f, wid);
		},
		toogle : function (num, f, wid) {
			var obj = $d(f);
			var _from = 0;
			_from = parseInt(obj.style.left);
			if (isNaN(_from)) {
				_from = 0;
				obj.style.left = '0px';
			} else {
				_from = _from;
			}
			var _to = _from - (_from + ((num - 1) * wid));
			mover.move(f, _from, _to);
		},
		reset : function (f) {
			var obj = $d(f + '-controls');
			var items = obj.getElementsByTagName('a');
			for (var d = 0; d < items.length; d += 1) {
				if (items[d].className == 'norm' || items[d].className == 'mark') {
					items[d].className = 'norm';
				}
			}
		},
		count : function (f) {
			var obj = $d(f);
			var count = 0;
			var items = obj.getElementsByTagName('div');
			for (var d = 0; d < items.length; d += 1) {
				if (items[d].className == 'item') {
					count++;
				}
			}
			return count;
		}
	};
}
();

/* Move divs <|> slider.toogle('divname',['customfunction()','anotherfunction()']);
---------------------------------------------------------------- */

var mover = function () {
	var slideAtClose = true;
	var duration = 0.4;
	var obj;
	var newLeft;
	var curLeft;
	return {
		init : function (elm, from) {
			obj = $d(elm);
			if (obj) {
				obj.style.left = from + 'px';
			}
		},
		move : function (elm, from, to, functions) {
			if (!sliding) {
				mover.init(elm, from);
				newLeft = to;
				curLeft = from;
				mover.slide(elm, functions);
			}
		},
		slide : function (elm, functions) {
			sliding = true;
			var frames = 30 * duration;
			var tinc = (duration * 1000) / frames;
			tinc = Math.round(tinc);
			var sinc = (curLeft - newLeft) / frames;
			var frameSizes = new Array();
			for (var i = 0; i < frames; i++) {
				if (i < frames / 2) {
					frameSizes[i] = (sinc * (i / frames)) * 4;
				} else {
					frameSizes[i] = (sinc * (1 - (i / frames))) * 4;
				}
			}
			for (var i = 0; i < frames; i++) {
				curLeft = curLeft - frameSizes[i];
				window.setTimeout("$d('" + elm + "').style.left = '" + Math.round(curLeft) + "px';", tinc * i);
				if ((i + 1) == frames) {
					window.setTimeout("mover.complete(" + functions + ");", tinc * (i + 5));
				}
			}
		},
		hide : function () {
			obj.style.height = 'auto';
			obj.style.display = 'none';
		},
		complete : function (functions) {
			sliding = false;
			if (functions) {
				for (var i = 0; i < functions.length; i++) {
					try {
						eval(functions[i]);
					} catch (e) {
						alert(e.description);
					}
				}
			}
		}
	};
}
();

/* Sections toogler
---------------------------------------------------------------- */

var box = function () {
	var boxtim;
	var boxcur;
	return {
		initialize : function (f) {
			var obj = $d(f + '-items');
			var elm = $d(f + '-controls');
			var ind = $d(f + '-indi');
			if (obj && ind) {
				var tickers = box.count(f + '-items');
				if (tickers > 1) {
					if (elm) {
						elm.innerHTML = '';
						for (var d = 0; d < tickers; d += 1) {
							var dc = d + 1;
							if (d == 0) {
								elm.innerHTML += '<li><span id="' + f + '-node' + (dc) + '" class="mark" onclick="box.show(this,\'' + (dc) + '\',\'' + (f) + '\');return false;">&nbsp;</span></li>';
							} else {
								elm.innerHTML += '<li><span id="' + f + '-node' + (dc) + '" class="norm" onclick="box.show(this,\'' + (dc) + '\',\'' + (f) + '\');return false;">&nbsp;</span></li>';
							}
						}
					}
				} else {
					ind.style.display = 'none';
				}
			}
		},
		show : function (f, n, t) {
			var obj = $d(f.id + '-item');
			var imx = $d(f.id + '-item-img');
			if (obj && imx) {
				box.reset(t);
				boxcur = n;
				if (imx.filters) {
					box.set(t + '-node' + boxcur + '-item-img', 0);
					imx.style.filter = "blendTrans(duration=0.6)";
					imx.filters.blendTrans.Apply();
					imx.filters.blendTrans.Play();
				} else {
					box.set(t + '-node' + boxcur + '-item-img', 0);
					setTimeout("box.fader('" + t + "-node" + boxcur + "-item-img',0,100,600);", 50);
				}
				obj.style.display = 'block';
				f.className = 'mark';
				setTimeout("box.delay('" + boxcur + "','" + t + "');", 500);
			}
		},
		/*
		init:function(){
		boxtim = setTimeout("box.loop();", 1000);
		boxcur = 1;
		box.delay(boxcur);
		},
		over:function(){
		clearTimeout(boxtim);
		},
		out:function(){
		boxtim = setTimeout("box.loop();", 5000);
		},
		loop:function(){
		var obj = $d('box-node'+boxcur+'-item');
		var imx = $d('box-node'+boxcur+'-item-img');
		var elm = $d('box-node'+boxcur);
		if(obj && elm && imx){
		box.reset();
		if(imx.filters){
		box.set('box-node'+boxcur+'-item-img', 0);
		imx.style.filter = "blendTrans(duration=0.6)";
		imx.filters.blendTrans.Apply();
		imx.filters.blendTrans.Play();
		}else{
		box.set('box-node'+boxcur+'-item-img', 0);
		setTimeout("box.fader('box-node"+boxcur+"-item-img',0,100,600);", 50);
		}
		obj.style.display = 'block';
		elm.className = 'selected';
		setTimeout("box.delay('"+boxcur+"');", 2000);
		if(boxcur==5){
		boxcur = 1;
		}else{
		boxcur++;
		}
		}
		boxtim = setTimeout("box.loop();", 5000);
		},
		 */
		delay : function (f, t) {
			var bxo = $d(t + '-items');
			var imx = $d(t + '-node' + f + '-item-img');
			if (bxo && imx) {
				bxo.style.backgroundImage = 'url(' + imx.src + ')';
			}
		},
		reset : function (t) {
			var obj = $d(t + '-items');
			if (obj) {
				var items = obj.getElementsByTagName('div');
				for (var d = 0; d < items.length; d += 1) {
					var str = items[d].className;
					if (str.indexOf('img') != -1) {
						items[d].style.display = 'none';
					}
				}
			}
			var elm = $d(t + '-nodes');
			if (elm) {
				var items = elm.getElementsByTagName('span');
				for (var d = 0; d < items.length; d += 1) {
					items[d].className = 'norm';
				}
			}
		},
		set : function (id, opacity) {
			var obj = $d(id).style;
			obj.opacity = (opacity / 100);
			obj.MozOpacity = (opacity / 100);
			obj.KhtmlOpacity = (opacity / 100);
			obj.filter = "alpha(opacity=" + opacity + ")";
			obj.backgroundColor = '#ffffff';
		},
		fader : function (id, opacStart, opacEnd, millisec) {
			var speed = Math.round(millisec / 100);
			var timer = 0;
			if (opacStart > opacEnd) {
				for (i = opacStart; i <= opacEnd; i = i - 2) {
					setTimeout("box.set('" + id + "'," + i + ")", (timer * speed));
					timer++;
				}
			} else if (opacStart < opacEnd) {
				for (i = opacStart; i <= opacEnd; i = i + 2) {
					setTimeout("box.set('" + id + "'," + i + ")", (timer * speed));
					timer++;
				}
			}
		},
		count : function (f) {
			var obj = $d(f);
			var count = 0;
			var items = obj.getElementsByTagName('div');
			for (var d = 0; d < items.length; d += 1) {
				var str = items[d].className;
				if (str.indexOf('img') != -1) {
					count++;
				}
			}
			return count;
		}
	};
}
();

/* Google Maps
---------------------------------------------------------------- */

var marker;
var map;
var geocoder;
var locations = new Array();
var games = new Array();
var routes = new Array();
var SchoolStep1 = new Array();
var SchoolStep2 = new Array();
var SchoolStep3 = new Array();
var SchoolStep4 = new Array();
var routesMarker = new Array();

var gmaps = function () {
	return {
		init : function () {
			geocoder = new google.maps.Geocoder();
		},
		load : function (lat, lng) {
			var latlng;
			var mapOptions = {
				zoom : 12,
				mapTypeId : google.maps.MapTypeId.SATELLITE/*,center:latlng*/
			};
			map = new google.maps.Map(document.getElementById("location-map"), mapOptions);
			latlng = new google.maps.LatLng(lat, lng);
			map.setCenter(latlng);
			google.maps.event.addListener(map, 'dragend', function (event) {
					gmaps.infowin(this, 'close');
				});
			if (typeof locations_run == 'function') {
				gmaps.loadmarkers('locations');
			}
			if (typeof SchoolStep1_run == 'function') {
				gmaps.loadmarkers('SchoolAll');
			} else if (typeof SchoolStep2_run == 'function') {
				gmaps.loadmarkers('SchoolAll');
			} else if (typeof SchoolStep3_run == 'function') {
				gmaps.loadmarkers('SchoolAll');
			} else if (typeof SchoolStep4_run == 'function') {
				gmaps.loadmarkers('SchoolAll');
			}
			if(document.getElementById('loadthismap') != null && document.getElementById('loadthismap') != 'undefined'){
				var loadthis = document.getElementById('loadthismap').value;
				gmaps.loadmarkers(loadthis);
			}
		},
		loadmarkers : function (t) {
			
			// Reset
			gmaps.reset('all');
			gmaps.infowin(this, 'close');
			
			if (t == 'locations') {
				locations_run();
				
			}
			if (t == 'games') {
				games_run();
			}
			if (t == 'routes') {
				routes_run();
			}
			if (t == 'SchoolAll') {
				if (typeof SchoolStep1_run == 'function') {
					SchoolStep1_run();
				}
				if (typeof SchoolStep2_run == 'function') {
					SchoolStep2_run();
				}
				if (typeof SchoolStep3_run == 'function') {
					SchoolStep3_run();
				}
				if (typeof SchoolStep4_run == 'function') {
					SchoolStep4_run();
				}
			}
			if (t == 'SchoolStep1') {
				SchoolStep1_run();
			}
			if (t == 'SchoolStep2') {
				SchoolStep2_run();
			}
			if (t == 'SchoolStep3') {
				SchoolStep3_run();
			}
			if (t == 'SchoolStep4') {
				SchoolStep4_run();
			}
			
		},
		reset : function (t) {
			if (t == 'locations') {
				for (var i = 0; i <= locations.length - 1; i++) {
					locations[i].setMap(null);
				}
			}
			if (t == 'games') {
				for (var i = 0; i <= games.length - 1; i++) {
					games[i].setMap(null);
				}
			}
			if (t == 'routes') {
				for (var i = 0; i <= routes.length - 1; i++) {
					routes[i].setMap(null);
					routesMarker[i].setMap(null);
				}
			}
			if (t == 'all') {
				gmaps.reset('locations');
				gmaps.reset('games');
				gmaps.reset('routes');
				
				gmaps.reset('SchoolStep1');
				gmaps.reset('SchoolStep2');
				gmaps.reset('SchoolStep3');
				gmaps.reset('SchoolStep4');
			}
			
			/* Skoletjenesten */
			if (t == 'SchoolAll') {
				/*
				gmaps.reset('SchoolStep1');
				gmaps.reset('SchoolStep2');
				gmaps.reset('SchoolStep3');
				gmaps.reset('SchoolStep4');
				 */
				gmaps.loadmarkers('SchoolStep1');
				gmaps.loadmarkers('SchoolStep2');
				gmaps.loadmarkers('SchoolStep3');
				gmaps.loadmarkers('SchoolStep4');
			}
			if (t == 'SchoolStep1') {
				for (var i = 0; i <= SchoolStep1.length - 1; i++) {
					SchoolStep1[i].setMap(null);
				}
			}
			if (t == 'SchoolStep2') {
				for (var i = 0; i <= SchoolStep2.length - 1; i++) {
					SchoolStep2[i].setMap(null);
				}
			}
			if (t == 'SchoolStep3') {
				for (var i = 0; i <= SchoolStep3.length - 1; i++) {
					SchoolStep3[i].setMap(null);
				}
			}
			if (t == 'SchoolStep4') {
				for (var i = 0; i <= SchoolStep4.length - 1; i++) {
					SchoolStep4[i].setMap(null);
				}
			}
		},
		infowin : function (f, m) {
			var obj = $d('maps-info');
			var hed = $d('maps-info-head');
			var des = $d('maps-info-desc');
			//var tmphed = $d('locations'+f+'-head');
			var tmphed = $d(f + '-head');
			//var tmpdes = $d('locations'+f+'-desc');
			var tmpdes = $d(f + '-desc');
			if (m == 'show') {
				if (obj && hed && des && tmphed && tmpdes) {
					hed.innerHTML = tmphed.innerHTML;
					des.innerHTML = tmpdes.innerHTML;
					obj.style.display = 'block';
					obj.className = 'info boxout';
					Cufon.refresh();
				}
			}
			if (m == 'close') {
				if (obj) {
					obj.className = 'info boxin';
					setTimeout("gmaps.infowin(this,'hide');", 700);
				}
			}
			if (m == 'hide') {
				if (obj) {
					obj.style.display = 'none';
				}
			}
		},
		grapinfo : function (f) {
			var obj = $d('maps-info');
			if (obj) {
				obj.style.display = 'block';
			}
		}
	};
}
();

/* Dark layer
---------------------------------------------------------------- */

var darken = function () {
	return {
		create : function () {
			var dark = $d('layerdark');
			if (!dark) {
				var dot = document.createElement("div");
				dot.id = 'layerdark';
				dot.style.opacity = 0.5;
				dot.style.filter = 'alpha(opacity=50)';
				dot.style.width = '100%';
				dot.style.height = '100%';
				dot.style.position = 'absolute';
				dot.style.zIndex = '1000';
				dot.style.backgroundColor = '#000000';
				dot.style.left = '0px';
				dot.style.top = '0px';
				dot.onclick = function () {
					darken.kill();
				}
				document.body.appendChild(dot);
			}
		},
		show : function () {
			darken.create();
			var dark = $d('layerdark');
			var height = document.documentElement.scrollHeight;
			if (dark) {
				dark.style.height = height + 'px';
				dark.style.display = 'block';
			}
		},
		fixed : function () {
			var dark = $d('layerdark');
			var height = document.documentElement.scrollHeight;
			if (dark) {
				dark.style.height = height + 'px';
			}
		},
		kill : function () {
			var dark = $d('layerdark');
			if (dark) {
				dark.style.display = 'none';
			}
		}
	};
}
();

/* Ajax <|> ajax.load('http://','ajaxdiv',true,hash,['customfunction()','anotherfunction()']);
---------------------------------------------------------------- */

var ajax = function () {
	return {
		nocache : function () {
			var minutes = 1000 * 60;
			var hours = minutes * 60;
			var days = hours * 24;
			var years = days * 365;
			var d = new Date();
			var t = d.getTime();
			return t;
		},
		load : function (url, container, load, store, functions) {
			var obj = $d(container);
			var loader = '';
			'<div class="loading"><span>Loading...</span></div>';
			if (obj && url) {
				if (load) {
					obj.innerHTML = loader;
				}
				ajax.page(url, container, functions);
				//if(store){bookmarks.sethash(store,url,container);}
			}
		},
		page : function (url, container, functions) {
			var _url = '';
			var _no = '';
			var page_request = false;
			if (url.indexOf("?") == -1) {
				_no = '?nocache=' + ajax.nocache();
			} else {
				_no = '&nocache=' + ajax.nocache();
			}
			_url = url + _no;
			
			if (window.XMLHttpRequest) {
				page_request = new XMLHttpRequest();
			} else if (window.ActiveXObject) {
				try {
					page_request = new ActiveXObject('Msxml2.XMLHTTP');
				} catch (e) {
					try {
						page_request = new ActiveXObject('Microsoft.XMLHTTP');
					} catch (e) {}
				}
			} else {
				return false;
			}
			
			page_request.onreadystatechange = function () {
				ajax.parse(page_request, container, functions);
			}
			page_request.open('GET', _url, true);
			page_request.send(null);
		},
		parse : function (page_request, container, functions) {
			if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf('http') == -1)) {
				document.getElementById(container).innerHTML = page_request.responseText;
				ajax.completed(functions);
			}
		},
		completed : function (functions) {
			// After complete functions here..
			if (functions) {
				for (var i = 0; i < functions.length; i++) {
					try {
						eval(functions[i]);
					} catch (e) {
						alert(e.description);
					}
				}
			}
			retick();
			Cufon.refresh();
		}
	};
}
();

/* Window load
---------------------------------------------------------------- */

window.onload = function () {
	
	/* Initialize content slides */
	ticker.initialize('slide-num1', false, 320);
	ticker.initialize('slide-num2', false, 175);
	ticker.initialize('slide-num3', false, 240);
	ticker.initialize('slide-num4', false, 240);
	
	// Mulitiple images boxes
	box.initialize('box1');
	box.initialize('box2');
	//box.initialize('box3');
	
	// Google Maps
	if ($d('location-map')) {
		gmaps.init();
		gmaps.load('55.68687525596443', '12.53265380859375');
	}
	if ($d('factbox-map')) {
		factboxMap();
	}
	bgCheck();
}

/* Init */
function retick() {
	/* Initialize content slides */
	ticker.initialize('slide-num1', false, 320);
	ticker.initialize('slide-num2', false, 175);
	ticker.initialize('slide-num3', false, 240);
	ticker.initialize('slide-num4', false, 240);
	
	// Mulitiple images boxes
	box.initialize('box1');
	box.initialize('box2');
	//box.initialize('box3');
	if ($('.slideshow1').length) {
		$('.slideshow1').slideshow({
				'width' : '731',
				'height' : '365',
				'displaytime' : '10000',
				'navPosition' : 'bl'
			});
	}
	if ($('.slideshowudstilling').length) {
		$('.slideshowudstilling').slideshow({
				'width' : '352',
				'height' : '232',
				'displaytime' : '10000',
				'navPosition' : 'br'
			});
	}
}

function bgCheck() {
	var objDocEle = document.documentElement;
	var objDocBdy = document.body;
	var myWidth = 0,
	myHeight = 0;
	
	if (typeof(window.innerWidth) == 'number') { //Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if (objDocEle && (objDocEle.clientWidth || objDocEle.clientHeight)) { //IE 6+
		myWidth = objDocEle.clientWidth;
		myHeight = objDocEle.clientHeight;
	} else if (objDocBdy && (objDocBdy.clientWidth || objDocBdy.clientHeight)) { //IE 4
		myWidth = objDocBdy.clientWidth;
		myHeight = objDocBdy.clientHeight;
	}
	
	var mod = false;
	if (window.removeProperty) {
		mod = true
	}
	if (myWidth > myHeight) {
		if ($d('bgImage').style.removeProperty) {
			$d('bgImage').style.removeProperty('height');
		} else {
			$d('bgImage').style.removeAttribute('height');
		}
		$d('bgImage').style.width = '100%';
	} else {
		if ($d('bgImage').style.removeProperty) {
			$d('bgImage').style.removeProperty('width');
		} else {
			$d('bgImage').style.removeAttribute('width');
		}
		$d('bgImage').style.height = '100%';
	}
}

/* Window onscroll
---------------------------------------------------------------- */

window.onscroll = function () {
	darken.fixed();
}

window.onresize = function () {
	//bgCheck();
}
/* Window onclick
---------------------------------------------------------------- */

window.document.onclick = function () {
	
	// Dropdown
	toogle.dropdown(this, 'onclick');
	
}

var addEvent = function (elem, type, eventHandle) {
	if (elem == null || elem == undefined)
		return;
	if (elem.addEventListener) {
		elem.addEventListener(type, eventHandle, false);
	} else if (elem.attachEvent) {
		elem.attachEvent("on" + type, eventHandle);
	}
};
addEvent(window, "resize", function () {
		bgCheck();
	});

/* Cufon replacements
---------------------------------------------------------------- */

Cufon.replace('.cufon', {
		hover : true
});
Cufon.replace('.cufon2', {
		hover : true
});
var popopactive = false;
/* Flash popup */
var popop = function () {
	return {
		show : function () {
			var dark = document.getElementById('layerdark');
			var elm = document.getElementById('info-popup');
			var height = document.documentElement.scrollHeight;
			if (dark && elm) {
				dark.style.height = height + 'px';
				dark.style.display = 'block';
				elm.style.display = 'block';
			}
			popop.infobox();
			popop.parse();
		},
		fixed : function () {
			var dark = document.getElementById('layerdark');
			var height = document.documentElement.scrollHeight;
			if (dark) {
				dark.style.height = height + 'px';
				popop.infobox();
			}
		},
		kill : function () {
			var dark = document.getElementById('layerdark');
			var obj = document.getElementById('info-popup');
			var fla = document.getElementById('flashcontent');
			if (dark) {
				dark.style.display = 'none';
			}
			if (obj && fla) {
				obj.style.display = 'none';
				fla.innerHTML = '';
			}
		},
		infobox : function () {
			var dark = document.getElementById('layerdark');
			var obj = document.getElementById('info-popup');
			var coors = popop.documentdimensions();
			var pops = coors.split('/');
			var popX = pops[0];
			var popY = pops[1];
			var scrll = popop.scrollposition();
			var scrl = scrll.split('/');
			var scrlY = parseInt(scrl[1]);
			var fake = 105;
			if (popY < 650) {
				fake = 20;
			}
			if (obj) {
				obj.style.top = (scrlY + fake) + 'px';
				obj.style.left = (popX / 2) - (928 / 2) + 'px';
			}
		},
		documentdimensions : function () {
			var myWidth = 0,
			myHeight = 0;
			if (typeof(window.innerWidth) == 'number') {
				myWidth = window.innerWidth;
				myHeight = window.innerHeight;
			} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
				myWidth = document.documentElement.clientWidth;
				myHeight = document.documentElement.clientHeight;
			} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
				myWidth = document.body.clientWidth;
				myHeight = document.body.clientHeight;
			}
			return myWidth + '/' + myHeight;
		},
		scrollposition : function () {
			var myTop = 0,
			myLeft = 0;
			if (document.all) {
				myLeft = (document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
				myTop = (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
			} else {
				myLeft = window.pageXOffset;
				myTop = window.pageYOffset
			}
			return myLeft + '/' + myTop;
		},
		parse : function () {
			var flashvars = {
				siteVersion : '0.9'
			};
			var params = {
				base : "http://flash.befaestningen.dk/trekroner/Flash/",
				wMode : "transparent",
				allowScriptAccess : "always"
			};
			var attributes = {
				id : "flashcontent",
				name : "flashcontent"
			};
			swfobject.embedSWF('http://flash.befaestningen.dk/trekroner/Flash/mainLoader.swf?siteVersion=0.9', "flashcontent", "908", "547", "10.0.0", false, flashvars, params, attributes);
		}
	};
}
();
function closeit() {
	popop.kill();
}
window.onresize = function () {
	popop.fixed();
}
window.onscroll = function () {
	popop.fixed();
}

/* Booking
-------------------------------------------*/

function GotoPageInForm(inputId){
	var elem = document.getElementById(inputId);
	var obj = document.getElementById(inputId);
	var error = false;
	if(inputId=='activity'){
		if(obj.value==''){
			error = true;
		}
	}
	if(inputId=='place'){
		if(obj.value==''){
			error = true;
		}
	}
	if(!error){
		var value;
		if(typeof(elem.selectedIndex) != 'undefined') {
			value = elem.options[elem.selectedIndex].value;
		}else{
			value = elem.value;
		}
		top.location.href = value;
		return true;
	}
}

function BookingDate(){
	var elem = document.getElementById('date');
	var prio =  document.getElementById('priorities');
	if(typeof(elem.selectedIndex) != 'undefined') {
		if(elem.options[elem.selectedIndex].value=='Other'){
			prio.style.display = 'block';
		}else{
			prio.style.display = 'none';
		}
	}
}

function ActivateNext(elem){
	var button = document.getElementById('btnnext');
	if(typeof(elem.selectedIndex) != 'undefined' && elem.selectedIndex>0){
		//button.disabled = false;
	}else{
		//button.disabled = true;
	}
}

/* Validation
---------------------------------------------------------------- */

var validate = function(){
	var execute = true;
	return {
		err:function(step,f){
			var obj = document.getElementById(f);
			if(obj){
				if(step=='1'){obj.style.backgroundColor = '#fdffc3';/*setTimeout("validate.err('2','"+f+"');", 50);*/}
				//if(step=='2'){obj.style.backgroundColor = '#ffc5c5';setTimeout("validate.err('3','"+f+"');", 50);}
				//if(step=='3'){obj.style.backgroundColor = '#ffdfdf';setTimeout("validate.err('4','"+f+"');", 50);}
				//if(step=='4'){obj.style.backgroundColor = '#fef1f1';setTimeout("validate.err('5','"+f+"');", 50);}
				//if(step=='5'){obj.style.backgroundColor = '#fff';}
			}
		},
		reset:function(f){
			var obj = document.getElementById(f);
			if(obj){obj.style.backgroundColor = '#fff';}
		},
		email:function(str){
			var filter = /^[^\s@]+@[^\s@]+\.[a-z]{2,6}$/i;
			if(filter.test(str)){return true;}else{return false;}
		},
		empty:function(str){
			var filter = /^\s+$/;
			var expression;
			if(filter.test(str) || str==''){expression = false;}else{expression = true;}
			return expression;
		},
		onlynumbers:function(evt){
			var charCode = (evt.which) ? evt.which : event.keyCode;
			if(charCode > 31 && (charCode < 48 || charCode > 57)){return false;}else{return true;}
		},
		booking:function(f){
			execute = true;
			
			validate.reset(f.date.id);
			validate.reset(f.school.id);
			validate.reset(f.classstep.id);
			validate.reset(f.students.id);
			validate.reset(f.teatcher.id);
			validate.reset(f.email.id);
			validate.reset(f.phone.id);
			validate.reset(f.ean.id);
			
			if(!validate.empty(f.date.value)){
				execute = false;
				validate.err('1',f.date.id);
			}
			if(!validate.empty(f.school.value)){
				execute = false;
				validate.err('1',f.school.id);
			}
			
			if(!validate.empty(f.classstep.value)){
				execute = false;
				validate.err('1',f.classstep.id);
			}
			if(!validate.empty(f.students.value)){
				execute = false;
				validate.err('1',f.students.id);
			}
			if(!validate.empty(f.teatcher.value)){
				execute = false;
				validate.err('1',f.teatcher.id);
			}
			
			
			if(!validate.email(f.email.value)){
				execute = false;
				validate.err('1',f.email.id);
			}
			
			if(!validate.empty(f.phone.value)){
				execute = false;
				validate.err('1',f.phone.id);
			}
			
			if(!validate.empty(f.ean.value)){
				execute = false;
				validate.err('1',f.ean.id);
			}

			return execute;
		}
	};
}();
