/* Common
------------------------------------------------------------------*/
function eleId(id) {
	if (document.getElementById(id)) {
		return document.getElementById(id);
	}
	return false;
}

function focusOn(id) {
	if (eleId(id)) {
		eleId(id).focus();
	}
}

function redirectTo(url, openInNewWindow) {
	if (openInNewWindow == true) {
		window.open(url);
	} else {
		document.location.href = url;
	}
}

function getOffset(ele) {
	xPos = ele.offsetLeft;
	yPos = ele.offsetTop;
	
	var parent = ele;
	while (parent.offsetParent)	{
		parent = parent.offsetParent;
		xPos += parent.offsetLeft;
		yPos += parent.offsetTop;
	}

	return {x: xPos, y: yPos};
}


var psX = 1;
var psY = 1;
function mpPos(e) {
	if (BrowserDetect.browser == "Explorer") {
		if (event.clientX) {
			psX = event.clientX; psY = event.clientY + calcScrollTop();
		}
	} else {
		psX = e.pageX; psY = e.pageY;
	}
	psX = parseInt(psX); psY = parseInt(psY);
	psX = (psX < 0 ? 0 : psX); psY = (psY < 0 ? 0 : psY);
	
	return true;
}
document.onmousemove = mpPos;


/* Rechterzijkant
------------------------------------------------------------------*/
function rightView() {
	rightPos();
	eleId('rightside').style.display = 'block';
}
function rightPos() {
	pageOffset = getOffset(eleId('page'));
	
	eleId('rightside').style.left = (parseInt(eleId('page').offsetWidth) + pageOffset.x + 10)+'px';
	eleId('rightside').style.top = (pageOffset.y+20)+'px';
}


/* Navigation
------------------------------------------------------------------*/
function dpSiteNavigation() {
	if (BrowserDetect.browser == "Firefox" && eleId('sitenavigation')) {
		eleId('sitenavigation').style.display = '';
	}
}

function chkSiteNavigation() {
	
}


/* Layout effects
------------------------------------------------------------------*/
var effPrevClassName = false;
function effLayout() {
	// Tables
	tblElements = document.body.getElementsByTagName('table');
	
	for (i = 0; i < tblElements.length; i++) {
	
		// Hover effect
		if (tblElements[i].className.indexOf('hover') >= 0) {
			trElemements = tblElements[i].getElementsByTagName('tr');
			
			for (n = 0; n < trElemements.length; n++) {
				trElemements[n].onmouseover = function() {
					effPrevClassName = this.className;
					this.className = 'hover';
				}
				trElemements[n].onmouseout = function() {
					this.className = effPrevClassName;
				}
			}
		}
		
		// Zebra effect
		if (tblElements[i].className.indexOf('zebra') >= 0) {
			trElemements = tblElements[i].getElementsByTagName('tr');
			
			for (n = 0; n < trElemements.length; n += 2) {
				trElemements[n].className = 'zebra';
			}
		}
	}
	
	
	// Headers H2
	replaceToTabs = new Array();
	
	h2Elements = document.body.getElementsByTagName('h2');
	for (i = 0; i < h2Elements.length; i++) {
	
		// Tab style
		if (h2Elements[i].className.indexOf('tab') >= 0) {
			var h2Ele = h2Elements[i];
					
			// Left
			var tabLeft = document.createElement('td');
			tabLeft.className = 'left';
			
			// Inner
			var tabInner = document.createElement('td');
			tabInner.className = 'inner';
			tabInner.innerHTML = h2Ele.innerHTML;
			
			// Right
			var tabRight = document.createElement('td');
			tabRight.className = 'right';
			
			// Color
			if (h2Elements[i].className.indexOf('green') >= 0) {
				tabLeft.style.backgroundImage = tabInner.style.backgroundImage = tabRight.style.backgroundImage = 'url(http://static.schoolreunie.nl/images/tab/green.gif)';
				tabInner.style.color = '#273c0e';
			}
			
			// Create tab
			var tabTable = document.createElement('table');
			var tabTbody = document.createElement('tbody');
			var tabTr = document.createElement('tr');
			
			tabTr.appendChild(tabLeft);
			tabTr.appendChild(tabInner);
			tabTr.appendChild(tabRight);
			
			tabTbody.appendChild(tabTr);
			
			tabTable.className = 'tab';
			tabTable.appendChild(tabTbody);
			
			replaceToTabs.push(new Array(h2Ele, tabTable));
		}
	}
	
	for (i = 0; i < replaceToTabs.length; i++) {
		parentOfElement = replaceToTabs[i][0].parentNode;
		
		// Replace h2 element with tab element
		parentOfElement.replaceChild(replaceToTabs[i][1], replaceToTabs[i][0]);
	}
}


/* Form
------------------------------------------------------------------*/
function checkPeriod(leftId, rightId) {
	var leftEle = eleId(leftId);
	var rightEle = eleId(rightId);
	
	if (leftEle.selectedIndex + 8 > leftEle.options.length) {
		rightEle.selectedIndex = leftEle.options.length - 1;
	} else {
		rightEle.selectedIndex = leftEle.selectedIndex + 8;
	}
}


/* Photogallery
------------------------------------------------------------------*/
var photoGalleries = new Array();
function gatherGalleries() {
	divElements = document.body.getElementsByTagName('div');
	
	for (i = 0; i < divElements.length; i++) {
		if (divElements[i].className.indexOf('photogallery') >= 0) {
			gallery = {
				divEle: divElements[i],
				images: new Array(),
				
				imgIndex: 0,
				fadePause: false,
				
				addImage: function(imgEle) {
					gallery.images[gallery.images.length] = imgEle;
				}
			};
			
			imgElements = divElements[i].getElementsByTagName('img');
			for (n = 0; n < imgElements.length; n++) {
				gallery.addImage(imgElements[n]);
			}
			
			photoGalleries.push(gallery);
		}
	}
	
	for (i = 0; i < photoGalleries.length; i++) {
		slideGallery(i);
	}
}

function slideGallery(i) {
	imgs = photoGalleries[i].images;
	maxHeight = 0;
	for (n = 0; n < imgs.length; n++) {
		var img = new Image();
		img.src = imgs[n].src;
		imgs[n].xOpacity = 0;
		
		if (img.height > maxHeight) {
			maxHeight = img.height;
		}
	}
	maxHeight += 10;
	
	photoGalleries[i].divEle.style.height = maxHeight + 'px';
	imgs[0].style.display = 'block';
	imgs[0].xOpacity = .99;
	
	setTimeout('so_xfade(' + i + ');',1000);
}

function so_xfade(i) {
	gallery = photoGalleries[i];
	
	imgs = gallery.images;

	cOpacity = imgs[gallery.imgIndex].xOpacity;
	nIndex = imgs[gallery.imgIndex+1] ? gallery.imgIndex+1 : 0;
	nOpacity = imgs[nIndex].xOpacity;
	
	cOpacity-=.05; 
	nOpacity+=.05;
	
	imgs[nIndex].style.display = "block";
	imgs[gallery.imgIndex].xOpacity = cOpacity;
	imgs[nIndex].xOpacity = nOpacity;
	
	setOpacity(imgs[gallery.imgIndex]); 
	setOpacity(imgs[nIndex]);
	
	if(cOpacity <= 0) {
		imgs[gallery.imgIndex].style.display = "none";
		gallery.imgIndex = nIndex;
		setTimeout('so_xfade(' + i + ');', 2000);
	} else {
		setTimeout('so_xfade(' + i + ');', 50);
	}
	
	function setOpacity(obj) {
		if(obj.xOpacity>.99) {
			obj.xOpacity = .99;
			return;
		}
		obj.style.opacity = obj.xOpacity;
		obj.style.MozOpacity = obj.xOpacity;
		obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
	}
}