var geba = {}

geba.domLoaded = function() {
	geba.initImgZoom();
	geba.tabSwitch();
	geba.externalURLs();
	geba.printPage();
	geba.gmapsInitialize();
}

// Initialize maps
geba.gmapsInitialize = function() {
	if (typeof latitude != 'undefined') {
		google.load('maps', 2, {'language' : 'nl'});
		google.setOnLoadCallback(geba.gmapsBuild);
	}
}

// Build controls and marker
geba.gmapsBuild = function() {
	var map = new google.maps.Map2(document.getElementById('gmap'));
	var center = new GLatLng(latitude, longitude);

	map.setCenter(center, 16);

	map.addOverlay(new GMarker(center));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl());
}

// Open external urls in a new window
geba.externalURLs = function() {
	l = document.links;
	for (var i=0, m=l.length; i<m; i++) {
		if (l.item(i).rel == 'external') {
			l.item(i).onclick = function() {
				window.open(this.href);
				return false;
			}
		}
	}
}

// Add print to trigger
geba.printPage = function() {
	document.getElementById('printTrigger').onclick = function() {
		if (confirm('Wilt u deze pagina printen?')) window.print();
		return false;
	}
}

// Switch tabs
geba.tabSwitch = function() {
	if (document.body.id == 'overgeba') {

		trigger1 = document.getElementById('tab1Trigger');
		target1 = document.getElementById('tab1');
		trigger2 = document.getElementById('tab2Trigger');
		target2 = document.getElementById('tab2');

		trigger1.onclick = function() {
			target1.className = trigger1.className = 'active';
			target2.className = trigger2.className = '';
			this.blur();
			return false;
		}

		trigger2.onclick = function() {
			target1.className = trigger1.className = '';
			target2.className = trigger2.className = 'active';
			this.blur();
			return false;
		}
	}
}

// Image zoom - add handlers
geba.initImgZoom = function() {

	// Preload spinner by loading div
	tmp = document.createElement('div');
	tmp.id = 'container';
	document.getElementById('skip').appendChild(tmp);

	var l = document.links;
	for (var i=0, m=l.length; i<m; i++) {
		if (l.item(i).rel == 'zoom') {
			l.item(i).onclick = function() {
				geba.imgZoom(this);
				return false;
			}
		}
	}
}

// Image zoom
geba.imgZoom = function(obj) {

	// Image
	var imgLarge = document.createElement('img');
	imgLarge.src = obj.href;
	imgLarge.title = 'Klik om terug te gaan naar de website';

	// Container
	var divContainer = document.createElement('div');
	divContainer.id = 'container';

	// Overlay
	var divOverlay = document.createElement('div');
	divOverlay.id = 'overlay';
	divOverlay.style.height = document.body.offsetHeight + 'px';

	// Overlay doesnt cover documentElement
	document.documentElement.style.backgroundColor = '#777';

	// Append to body
	divContainer.appendChild(imgLarge);
	divOverlay.appendChild(divContainer);
	document.body.appendChild(divOverlay);

	// IE6 fix
	if (navigator.userAgent.match(/MSIE 6/i)) {
		var scrTop = document.documentElement.scrollTop;
		var viewPort = document.documentElement.clientHeight;
		divContainer.style.top = (viewPort / 2) + scrTop;
	}

	// Center vertically when loaded
	if (imgLarge.complete) {
		geba.imgZoomCenter(imgLarge);
	} else {
		imgLarge.onload = function() {
			geba.imgZoomCenter(imgLarge);
		}
	}

	// Close image
	divOverlay.onclick = imgLarge.onerror = function() {
		divOverlay.parentNode.removeChild(divOverlay);
		document.documentElement.style.backgroundColor = '#f4f5f5';
	}
}

// Image loaded, center on screen + show
geba.imgZoomCenter = function(obj) {
	obj.style.visibility = 'visible';
	obj.style.marginTop = (obj.offsetHeight / -2) + 'px';
}

