// determine whether the browser is IE, in order to take care of overflow when swapping panes
// overflow causes scroll bars to be shown in certain situations in safari and IE
var agt = navigator.userAgent.toLowerCase();
var appVer = navigator.appVersion.toLowerCase();
var is_ie = (appVer.indexOf('msie') != -1);
var is_opera = (agt.indexOf('opera') != -1);
var is_safari = ((agt.indexOf('safari') != -1) && (agt.indexOf('mac') != -1)) ? true : false;
var is_konq = (agt.indexOf('konqueror') != -1);
var is_khtml = (is_safari || is_konq);
var is_explorer = false;
var is_explorer = (is_ie && !is_opera && !is_khtml);

// swap panes to make text or images visible or invisible
var totalPanes = 8; // total number of panes
var hidePanes = 4; // number of panes that should be hidden, based on width of content panes
var hidePaneMin = 0;
var hidePaneMax = 0;
var hidePaneMinVideo = null; // youtube
var hidePaneMaxVideo = null; // youtube
function swapPane(paneNum) {
	// paneNum can not be greater than totalPanes or less than 0
	if (!paneNum || paneNum > totalPanes || paneNum < 0) {
		paneNum = 0;
		hidePaneMin = 0;
		hidePaneMax = 0;
	} else {
		// determine which panes to hide
		if (paneNum > (totalPanes - hidePanes + 1)) {
			hidePaneMin = hidePanes + 1;// first pane to hide
			hidePaneMax = totalPanes;// last pane to hide
		} else {
			hidePaneMin = paneNum + 1;
			hidePaneMax = paneNum + hidePanes - 1;
		}
	}
	if (hidePaneMinVideo && hidePaneMinVideo) { // youtube
		hidePaneMin = hidePaneMinVideo; // youtube
		hidePaneMax = hidePaneMaxVideo; // youtube
	}
	// swap the panes
	for (n = 1; n <= totalPanes; n++) {
		paneId = 'pane' + n;
		paneImgId = 'paneimg' + n;
		panetextId = 'panetext' + n;
		if (n != paneNum && n >= hidePaneMin && n <= hidePaneMax) {
			if (document.getElementById(paneId)) {
				document.getElementById(panetextId).className = 'panetexthidden';
				document.getElementById(paneImgId).className = 'paneimghidden';
				document.getElementById(paneId).className = 'panehidden';
				if (is_explorer) {
					document.getElementById(paneId).style.overflow = 'hidden';
				}
			} else if (document.all && !document.getElementById) {
				document.all(panetextId).className = 'panetexthidden';
				document.all(paneImgId).className = 'paneimghidden';
				document.all(paneId).className = 'panehidden';
				if (is_explorer) {
					document.all(paneId).style.overflow = 'hidden';
				}
			}
		} else if (n != paneNum && n == totalPanes) {
			if (document.getElementById(paneId)) {
				document.getElementById(panetextId).className = 'panetexthidden';
				document.getElementById(paneImgId).className = 'paneimg';
				document.getElementById(paneId).className = 'panedivend';
				if (is_explorer) {
					document.getElementById(paneId).style.overflow = 'hidden';
				}
			} else if (document.all && !document.getElementById) {
				document.all(panetextId).className = 'panetexthidden';
				document.all(paneImgId).className = 'paneimg';
				document.all(paneId).className = 'panedivend';
				if (is_explorer) {
					document.all(paneId).style.overflow = 'hidden';
				}
			}
		} else if (n != paneNum) {
			if (document.getElementById(paneId)) {
				document.getElementById(panetextId).className = 'panetexthidden';
				document.getElementById(paneImgId).className = 'paneimg';
				document.getElementById(paneId).className = 'panediv';
				if (is_explorer) {
					document.getElementById(paneId).style.overflow = 'hidden';
				}
			} else if (document.all && !document.getElementById) {
				document.all(panetextId).className = 'panetexthidden';
				document.all(paneImgId).className = 'paneimg';
				document.all(paneId).className = 'panediv';
				if (is_explorer) {
					document.all(paneId).style.overflow = 'hidden';
				}
			}
		} else if (n == paneNum && n > hidePanes) {
			if (document.getElementById(paneId)) {
				document.getElementById(paneImgId).className = 'paneimghidden';
				document.getElementById(panetextId).className = 'panetextvisible';
				document.getElementById(paneId).className = 'panetextend';
				if (is_explorer) {
					document.getElementById(paneId).style.overflow = 'auto';
				}
			} else if (document.all && !document.getElementById) {
				document.all(paneImgId).className = 'paneimghidden';
				document.all(panetextId).className = 'panetextvisible';
				document.all(paneId).className = 'panetextend';
				if (is_explorer) {
					document.all(paneId).style.overflow = 'auto';
				}
			}
		} else if (n == paneNum) {
			if (document.getElementById(paneId)) {
				document.getElementById(paneImgId).className = 'paneimghidden';
				document.getElementById(panetextId).className = 'panetextvisible';
				document.getElementById(paneId).className = 'panetext';
				if (is_explorer) {
					document.getElementById(paneId).style.overflow = 'auto';
				}
			} else if (document.all && !document.getElementById) {
				document.all(paneImgId).className = 'paneimghidden';
				document.all(panetextId).className = 'panetextvisible';
				document.all(paneId).className = 'panetext';
				if (is_explorer) {
					document.all(paneId).style.overflow = 'auto';
				}
			}
		}
	}
	n = 0;
	// swap images
	if (rollingNow == 0) {
		var rollImagesNow = setTimeout("preloadOneAndRoll();", 75);
	}
}

makeRandom.m = 714025;
makeRandom.a = 4096;
makeRandom.c = 150889;
makeRandom.seed = (new Date()).getTime() % makeRandom.m;
function makeRandom() {
  makeRandom.seed = (makeRandom.seed * makeRandom.a + makeRandom.c) % makeRandom.m;
  return makeRandom.seed / makeRandom.m;
}

//var totalImages = 16; // externalized
// totalImages mag nooit kleiner zijn dan totalPanes * 2
if (totalImages < 2 * totalPanes) {
	totalImages = 2 * totalPanes;
}
totalImages++;

// make an array with as many random, non-repeating numbers as there are panes
var sameNum = 0;
var myNumbers = new Array();
var myKeepNumbers = new Array();
var myKeepNumbers1 = new Array();
var myKeepNumbers2 = new Array();
var flag = 1;
var myNum = 0;
function randomNumbers() {
	if (flag == 1) {
		myKeepNumbers = myKeepNumbers2;
	} else {
		myKeepNumbers = myKeepNumbers2;
	}

	for (n = 0; n < totalPanes; n++) {
		myNum = Math.floor(makeRandom() * (totalImages - 1)) + 1;
		for (g = 0; g < myNumbers.length; g++) {
			if (myNum == myNumbers[g] || myNum == myKeepNumbers[g]) {
				sameNum = 1;
			}
		}
		g = 0;
		if (sameNum) {
			sameNum = 0;
			n--;
		} else {
			myNumbers[n] = myNum;
		}
	}
	n = 0;
	if (flag == 1) {
		flag = 2;
		myKeepNumbers2 = myNumbers;
	} else {
		flag = 1;
		myKeepNumbers1 = myNumbers;
	}		
}

// swap one specified image
function swapImage(thePane) {
	elementId = 'paneimg' + thePane;
	if (document.getElementById(elementId)) {
		document.getElementById(elementId).src = '.\/library' + '\/portraits' + '\/image' + myNumbers[thePane - 1] + '\.jpg';
	} else if (document.all && !document.getElementById) {
		document.all(elementId).src = '.\/library' + '\/portraits' + '\/image' + myNumbers[thePane - 1] + '\.jpg';
	}
}
// swap one specified image with one of the colors
function swapProceed(thisPane) {
	if (document.getElementById('paneimg' + thisPane)) {
		document.getElementById('paneimg' + thisPane).src = '.\/library' + '\/images' + '\/blank\.gif';
	} else if (document.all && !document.getElementById) {
		elementId = 'paneimg' + thisPane;
		document.all(elementId).src = '.\/library' + '\/images' + '\/blank\.gif';
	}	
}

// roll the images
var rollingNow = 0;
var rollPane = 0;
var rollTimer = null;
var rollOnFirstTimer = null;
var rollOnTimer = null;
var turnOnRoll = 0;
var myLoadImages = new Array();
var emptyArray = new Array();
function rollImages() {
	rollingNow = 1;
	// turn off persistent roll
	if (rollPane == 0) {
		window.clearTimeout(rollOnTimer);
		rollOnTimer = null;
		// generate new random numbers
		randomNumbers();
	}
	if (rollPane >= (hidePaneMin - 2) && rollPane <= hidePaneMax) {
		// roll hidden images as well, to avoid doubles
		if (hidePaneMin) {
			for (h = hidePaneMin - 1; h <= hidePaneMax; h++) {
				swapImage(h);
			}
		}
		rollPane = hidePaneMax;
	}
	rollPane++;
	// show shutter, little flash of blank/black/white/gray before loading portrait, in order to better show movement
	var shutter = 0;
	if (shutter) {
		if (rollPane < totalPanes) {
			swapProceed(rollPane);
			setTimeout('swapImage(rollPane);', 20); // needs to be less than the rollTimer setTimeout
		} else {
			swapProceed(totalPanes);
			setTimeout('swapImage(totalPanes);', 20); // equals above setTimeOut
		}
	} else {	
		swapImage(rollPane);
	}
	if (rollPane >= totalPanes) {
		rollPane = 0;
		// turn on persistent roll
		window.clearTimeout(rollOnTimer);
		rollOnTimer = null;
		rollOnTimer = window.setTimeout('keepRolling();', 4000);
	}
	var rollTimer = window.setTimeout('preloadOneAndRoll();', 75);
	if (!rollPane) {
		window.clearTimeout(rollTimer);
		var rollTimer = null;
		rollingNow = 0;
	}
}

// persistent rolling of images
function keepRolling() {
	preloadOneAndRoll();
	rollOnTimer = window.setTimeout('keepRolling();', 4000);
}

function preloadOneAndRoll() {
	if(document.images) {
		toLoad = rollPane + 1;
		var myImage = new Image(80,350);
		myImage.src = '.\/library' + '\/portraits' + '\/image' + toLoad + '\.jpg';
		tempTimer = window.setTimeout('rollImages();', 50);
//		alert(toLoad);
	} else {
		rollImages();
	}
}

// change links
var amountOfItems = 0;
var maxMenuItems = 100;
var myClassName = '';
function changeLinks(toChangeItem) {
	// check how many menu items there are
	for (z = 0; z <= maxMenuItems; z++) {
		myMenuItem = 'menuitem' + z;
		if (document.getElementById(myMenuItem) || (document.all && !document.getElementById && document.all.myMenuItem)) {
			amountOfItems++;
		} else {
			z = maxMenuItems + 1;
		}
	}
	z = 0;
	for (z = 0; z < amountOfItems; z++) {
		myMenuItem = 'menuitem' + z;
		if (myMenuItem == toChangeItem.id || myMenuItem == toChangeItem) {
			myClassName = 'current';
		} else {
			myClassName = '';
		}
		if (document.getElementById(myMenuItem)) {
			document.getElementById(myMenuItem).className = myClassName;
		} else if (document.all && !document.getElementById) {
			document.all(myMenuItem).className = myClassName;
		}
	}
	z = 0;
	amountOfItems = 0;
}

function topSpacer() {
	if (window.innerHeight) {
		if (document.getElementById('container').offsetHeight) {
			myHeight = document.getElementById('container').offsetHeight;
		} else if (document.all('container').offsetHeight && !document.getElementById) {
			myHeight = document.all('container').offsetHeight;
		} else {
			myHeight = 450;
		}
		spacerHeight = (window.innerHeight - myHeight) / 2;
		var spacer = 'topspacer';
		if (document.getElementById(spacer)) {
			document.getElementById(spacer).height = spacerHeight;
		} else if (document.all && !document.getElementById) {
			document.all(spacer).height = spacerHeight;
		}
	}
}

// 1px x 1px iframe loading empty pages with Google Analytics javascript
function analyze(toAnalyze) {
	if (document.getElementById('analyticsframe').src) {
		document.getElementById('analyticsframe').src = '.\/library' + '\/analytics' + '\/' + toAnalyze + '.html';
	} else if (frames['analyticsframe'].location.href) {
		frames['analyticsframe'].location.href = '.\/library' + '\/analytics' + '\/' + toAnalyze + '.html';
	}
}

function portrait(person) {
	for (b = 1; b <= 4; b++) {
		c = b;
		c = c + 4;
		personId = 'paneimg' + c;
		if (document.getElementById(personId)) {
			document.getElementById(personId).src = '.\/library' + '\/nienke-nicole' + '\/' + person + b + '\.jpg';
		} else if (document.all && !document.getElementById) {
			document.all(personId).src = '.\/library' + '\/nienke-nicole' + '\/' + person + b + '\.jpg';
		}
	}
}

