var doc = document, ab = 'artbible.info';

function nietniks(invoer) {
	if (invoer.value.length == 0) {
		alert("Vul svp wel iets in...");
		invoer.focus();
		return false;
	} else {return true;}
}

window.onload = function () {
	fragHLload(); fetchglossaryitemLoad(); platenPreloaden();
	if ((doc.getElementById("tekst") || doc.getElementById("treffers")) && (doc.selection || window.getSelection)) {
		var hetEl = doc.getElementById("tekst") ? doc.getElementById("tekst") : doc.getElementById("treffers");
		hetEl.ondblclick = function () {
			var curSel=(doc.selection?doc.selection.createRange().text:window.getSelection().toString()).match(/\S+/g);
			if (curSel && curSel.toString().length > 2) {
				if (doc.getElementById("tekst")) {zoekvenstertje(curSel);} 
				else {doc.forms[0].zoek.value = curSel; doc.forms[0].submit();}
			}
			return false;
		};
	}
};

function zoekvenstertje(woord) {
	if (doc.getElementById('zoekdiv')) {doc.getElementsByTagName('body')[0].removeChild(doc.getElementById('zoekdiv'));}
	var zoekdiv = doc.createElement("div");
	doc.getElementsByTagName('body')[0].appendChild(zoekdiv);
	zoekdiv.setAttribute('id', 'zoekdiv');
	var posx = (doc.documentElement ? doc.documentElement.scrollLeft : doc.body.scrollLeft);
	var posy = (doc.documentElement ? doc.documentElement.scrollTop : doc.body.scrollTop);
	zoekdiv.style.top = posy + 300 + 'px'; zoekdiv.style.left = posx + 200 + 'px';
	var b = doc.getElementById("banner").innerHTML;
	var d = b.indexOf("Oude ") > -1 ? 1 : b.indexOf("Nieuwe ") > -1 ? 2 : 3;
	// trailing non-letters/cijfers verwijderen
	woord = woord.toString().replace(/(.*)\W$/, "$1");
	zoekdiv.innerHTML = '<form action="/zoek.php"><input type="hidden" name="q" value="' + escape(woord) + '"><fieldset style="padding: 5px;"><legend>Zoek naar <strong>' + woord + '</strong>, in:</legend><label for="ot"><input type="checkbox" name="ot" id="ot" value="1"'+(d==1?" checked":"")+'><acronym title="Oude Testament">O.T.</acronym>&nbsp;</label><label for="nt"><input type="checkbox" name="nt" id="nt" value="1"'+(d==2?" checked":"")+'><acronym title="Nieuwe Testament">N.T.</acronym>&nbsp;</label><label for="ap"><input type="checkbox" name="ap" id="ap" value="1"'+(d==3?" checked":"")+'><acronym title="Apocrypha">Apocr.</acronym></label> &nbsp; <input type="submit" value="zoek!"> &nbsp; <input type="button" value="sluit" onClick="document.getElementsByTagName(\'body\')[0].removeChild(document.getElementById(\'zoekdiv\'))"></fieldset></form>';
}

var isopen = new Image(); isopen.src = "/pix/min.png";
var isdicht = new Image(); isdicht.src = "/pix/plus.png";
var imgPrefix = 'mpic', kopPrefix = 'mkop', liPrefix  = 'mlid';
var geenpointer = navigator.appName.indexOf('Internet Explorer') !=-1 && navigator.appVersion.substr(0,1) < 6;

// menustatus 1 = gesloten; 2 = open;
function leeskoek(mID) {
	return doc.cookie.substr(doc.cookie.indexOf(mID+'=')+3, 1);
}

function laadMenu(mID) {
	doc[imgPrefix+mID].id = imgPrefix+mID;
	doc.getElementById(imgPrefix+mID).nextSibling.nextSibling.id = kopPrefix + mID;
	var kids = doc.getElementById(mID).childNodes;
	for (var i = 0; i < kids.length; i++) {
		if (kids[i].className == 'kopje') {kids[i].onclick = toggleMenu;kids[i].id = liPrefix + mID;}
	}
	toonMenu(mID);
}

function toonMenu(mID) {
	var curStat = leeskoek(mID);
	doc[imgPrefix+mID].src = curStat == '1' ? isdicht.src : isopen.src;
	doc.getElementById(liPrefix+mID).title = (curStat == '1' ? 'toon' : 'verberg') + ' dit menu';
	doc[imgPrefix+mID].style.cursor = geenpointer ? 'hand' : 'pointer';
	doc.getElementById(liPrefix+mID).style.cursor = geenpointer ? 'hand' : 'pointer';
	var kids = doc.getElementById(mID).childNodes;
	for (var i = 0; i < kids.length; i++) {
		if (kids[i].tagName == 'LI' && kids[i].className != 'kopje') {kids[i].style.display = curStat == '1' ? 'none' : 'block';}
	}
}

function toggleMenu(e) {
	if (window.event) {e = window.event;}
	var mID = e.srcElement ? e.srcElement.id : e.target.id; mID = mID.substr(imgPrefix.length);
	var eenjaar = new Date(); eenjaar.setFullYear(eenjaar.getFullYear() + 1);
	doc.cookie = mID + '=' + (leeskoek(mID) == 1 ? 2 : 1) + '; expires=' + eenjaar.toGMTString() + '; path=/'; 
	toonMenu(mID);
}

function leesdeelkoek() {return doc.cookie.substr(doc.cookie.indexOf('deel=')+5, 2);}

function toonboeklijst() {
	if (!navigator.cookieEnabled) {return;}
	doc.writeln('<ul class="hoofdmenu"><li class="kopje_bl"><a href="#" onclick="toonboeken(\'ot\'); return false" title="Oude Testament">O.T.</a> | <a href="#" onclick="toonboeken(\'nt\'); return false" title="Nieuwe Testament">N.T.</a> | <a href="#" onclick="toonboeken(\'ap\'); return false" title="apocriefen">apo.</a> | <a href="#" onclick="toonboeken(\'xx\'); return false" title="verberg">[--]</a></li><li id="alleboeken"></li></ul>');
	toonboeken(leesdeelkoek());
}

function toonboeken(deel) {
	var eenjaar = new Date(); eenjaar.setFullYear(eenjaar.getFullYear() + 1);
	deel = deel > '; ' ? deel : 'xx';
	doc.cookie = 'deel=' + deel + '; expires=' + eenjaar.toGMTString() + '; path=/'; 
	try {doc.getElementById('alleboeken').innerHTML = eval(deel);}
	catch(e) {doc.getElementById('alleboeken').innerHTML = '(u lust geen cookies?)';}
}

var ot = '<a href="/bijbel/genesis.html">Genesis</a><a href="/bijbel/exodus.html">Exodus</a><a href="/bijbel/leviticus.html">Leviticus</a><a href="/bijbel/numeri.html">Numeri</a><a href="/bijbel/deuteronomium.html">Deuteronomium</a><a href="/bijbel/jozua.html">Jozua</a><a href="/bijbel/richteren.html">Richteren</a><a href="/bijbel/ruth.html">Ruth</a><a href="/bijbel/1_samuel.html">1 Samu&euml;l</a><a href="/bijbel/2_samuel.html">2 Samu&euml;l</a><a href="/bijbel/1_koningen.html">1 Koningen</a><a href="/bijbel/2_koningen.html">2 Koningen</a><a href="/bijbel/1_kronieken.html">1 Kronieken</a><a href="/bijbel/2_kronieken.html">2 Kronieken</a><a href="/bijbel/ezra.html">Ezra</a><a href="/bijbel/nehemia.html">Nehemia</a><a href="/bijbel/esther.html">Esther</a><a href="/bijbel/job.html">Job</a><a href="/bijbel/psalmen.html">Psalmen</a><a href="/bijbel/spreuken.html">Spreuken</a><a href="/bijbel/prediker.html">Prediker</a><a href="/bijbel/hooglied.html">Hooglied</a><a href="/bijbel/jesaja.html">Jesaja</a><a href="/bijbel/jeremia.html">Jeremia</a><a href="/bijbel/klaagliederen.html">Klaagliederen</a><a href="/bijbel/ezechiel.html">Ezechi&euml;l</a><a href="/bijbel/daniel.html">Dani&euml;l</a><a href="/bijbel/hosea.html">Hosea</a><a href="/bijbel/joel.html">Jo&euml;l</a><a href="/bijbel/amos.html">Amos</a><a href="/bijbel/obadja.html">Obadja</a><a href="/bijbel/jona.html">Jona</a><a href="/bijbel/micha.html">Micha</a><a href="/bijbel/nahum.html">Nahum</a><a href="/bijbel/habakuk.html">Habakuk</a><a href="/bijbel/zefanja.html">Zefanja</a><a href="/bijbel/haggai.html">Haggai</a><a href="/bijbel/zacharia.html">Zacharia</a><a href="/bijbel/maleachi.html">Maleachi</a>';
var nt = '<a href="/bijbel/mattheus.html">Matthe&uuml;s</a><a href="/bijbel/marcus.html">Marcus</a><a href="/bijbel/lukas.html">Lukas</a><a href="/bijbel/johannes.html">Johannes</a><a href="/bijbel/handelingen.html">Handelingen</a><a href="/bijbel/romeinen.html">Romeinen</a><a href="/bijbel/1_korinthiers.html">1 Korinthi&euml;rs</a><a href="/bijbel/2_korinthiers.html">2 Korinthi&euml;rs</a><a href="/bijbel/galaten.html">Galaten</a><a href="/bijbel/efeziers.html">Efezi&euml;rs</a><a href="/bijbel/filippensen.html">Filippensen</a><a href="/bijbel/kolossensen.html">Kolossensen</a><a href="/bijbel/1_tessalonicensen.html">1 Tessalonicensen</a><a href="/bijbel/2_tessalonicensen.html">2 Tessalonicensen</a><a href="/bijbel/1_timotheus.html">1 Timothe&uuml;s</a><a href="/bijbel/2_timotheus.html">2 Timothe&uuml;s</a><a href="/bijbel/titus.html">Titus</a><a href="/bijbel/filemon.html">Filemon</a><a href="/bijbel/hebreeen.html">Hebree&euml;n</a><a href="/bijbel/jakobus.html">Jakobus</a><a href="/bijbel/1_petrus.html">1 Petrus</a><a href="/bijbel/2_petrus.html">2 Petrus</a><a href="/bijbel/1_johannes.html">1 Johannes</a><a href="/bijbel/2_johannes.html">2 Johannes</a><a href="/bijbel/3_johannes.html">3 Johannes</a><a href="/bijbel/judas.html">Judas</a><a href="/bijbel/openbaring.html">Openbaring</a>';
var ap = '<a href="/bijbel/3_ezra.html">3 Ezra</a><a href="/bijbel/4_ezra.html">4 Ezra</a><a href="/bijbel/tobit.html">Tobit</a><a href="/bijbel/judith.html">Judith</a><a href="/bijbel/boek_der_wijsheid.html">Boek der Wijsheid</a><a href="/bijbel/jezus_sirach.html">Jezus Sirach</a><a href="/bijbel/baruch.html">Baruch</a><a href="/bijbel/esther_apocrief.html">Esther</a><a href="/bijbel/gebed_van_azaria.html">Gebed van Azaria</a><a href="/bijbel/gezang_in_de_vuuroven.html">Gezang in de vuuroven</a><a href="/bijbel/susanna.html">Susanna</a><a href="/bijbel/bel_en_de_draak.html">Bel en de draak</a><a href="/bijbel/gebed_van_manasse.html">Gebed van Manasse</a><a href="/bijbel/1_makkabeeen.html">1 Makkabee&euml;n</a><a href="/bijbel/2_makkabeeen.html">2 Makkabee&euml;n</a><a href="/bijbel/3_makkabeeen.html">3 Makkabee&euml;n</a>';
var xx = '';

// highlight van # (ontleend aan http://doward.me.uk)
function addClass(obj,cName){ obj.className+=(obj.className.length>0?' ':'')+cName;}
function fragHL(frag) {
	if (doc.getElementById("tekst")) {frag = 'v' + frag;}
    if (frag.length>1 && doc.getElementById(frag) && frag != "top") {addClass (doc.getElementById(frag),'highlight');}
}
function fragHLload() {fragHL(location.hash.substring(1)); }

// term uit woordenlijst vissen
var glossLinks = []; // hier wordt per linkID open/dicht bijgehouden
var mydldiv = []; // array met elementen waarin de dl wordt getoond
var curDiv, glossLink; // actieve div, wl-url
function fetchglossaryitemLoad() {
	var atags = doc.getElementsByTagName('a'), j = 0;
	for (var i = 0; i < atags.length; i++) {
		if (atags[i].className == 'wlb' || atags[i].className == 'wlk') {
			atags[i].onclick=function() {return fetchglossaryitem(this);};atags[i].id='wl'+j;glossLinks[atags[i].id]= 0;j++;}
	}
}
function fetchglossaryitem(a) {
	if (getItemIsShown(a.id)) {if (mydldiv[a.id]) {a.parentNode.removeChild(mydldiv[a.id]);}		setItemIsShown(a.id);
	} else {
		glossLink = a.href; var glossterm = a.href.substr(a.href.indexOf('#')+1); if (glossterm.length == 0) {return true;}
		mydldiv[a.id] = a.parentNode.insertBefore(doc.createElement('span'), a.nextSibling);
		curDiv = mydldiv[a.id];
		// content ophalen
		myreq = inireq();
		if (myreq) {
			myreq.onreadystatechange = processReq;
			myreq.open("GET", 'http://' + location.hostname + '/fetchglossaryitem.php?glossary=' + a.className + '&glossterm=' + glossterm, true);
			myreq.setRequestHeader('If-Modified-Since', 'Tue, 27 Dec 2005 01:23:45 GMT');
			myreq.send("");
		}
		setItemIsShown(a.id);
	}
	return false;
}
function getItemIsShown(aID) {return (glossLinks[aID] == 1);}
function setItemIsShown(aID) {glossLinks[aID] = glossLinks[aID] == 1 ? 0 : 1;}

var myreq;
function inireq() {
	var req = false;
	if (window.XMLHttpRequest) {try {req = new XMLHttpRequest();} catch(e) {req = false;}} 
	else if (window.ActiveXObject) {try {req = new ActiveXObject("Msxml2.XMLHTTP");} catch(e) {try {req = new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {req = false;}}}
	if (!req) {alert('Er heeft zich een probleem voorgedaan. Gebruik s.v.p. een recente versie van Internet Explorer, Firefox, Opera of Safari.');}
	return req;
}
function processReq() {
    if (myreq.readyState == 4) {
		// alert(myreq.responseText);
		if (myreq.responseXML.getElementsByTagName('status').item(0).firstChild.data == 1) {
			curDiv.innerHTML =  myreq.responseXML.getElementsByTagName('resultaat').item(0).firstChild.data;
		} else {location = glossLink;}
	}
}

function englink(wid) {
	doc.write('<a href="' + location.protocol + '//www.' +ab + '/art/large/' + wid + '.html" class="englink">This page in English</a>');
}

function toonBlowUp(plaat) {
	// args: pic.src, caption, target link, target link text (PM)
	// minMarge = links+rechts; divPad = som van padding,borders etc. in plaatdiv
	var pic = new Image(); pic.src = plaat; var scaled = false, picWidth=0, picHeight=0, minMarge = 50, divPad = 22; 
	var voettekstMetLink = '<p align="center">[ <a href="#" onclick="return sluitBlowUp();">sluit</a> ] | [ <a href="' + (arguments.length == 3 ? arguments[2] : plaat) + '">full size</a> ]</p>', voettekst = '<p align="center">[ <a href="#" onclick="return sluitBlowUp();">sluit</a> ]</p>', caption = arguments.length > 1 ? '<p align="center">' + arguments[1] + '</p>' : '';
	if (!doc.getElementById('transpAchtergrondDiv')){var tmp=doc.createElement('div');tmp.id='transpAchtergrondDiv';doc.getElementsByTagName('body')[0].appendChild(tmp);}
	if (!doc.getElementById('plaatDiv')){var tmp=doc.createElement('div');tmp.id='plaatDiv';doc.getElementsByTagName('body')[0].appendChild(tmp);}
	var bgDiv = doc.getElementById('transpAchtergrondDiv'), plaatDiv = doc.getElementById('plaatDiv'); 
	var rootElm = (doc.documentElement && doc.compatMode == 'CSS1Compat') ? doc.documentElement : doc.body;
	var vpw = (self.innerWidth ? self.innerWidth : rootElm.clientWidth) - 16; // ff hard de body-padding
	var vph = self.innerHeight ? self.innerHeight : rootElm.clientHeight;
	bgDiv.style.height = Math.max(rootElm.scrollHeight, vph) + 'px';
	bgDiv.style.display = 'block';
	if (pic.width == 0) {
		plaatDiv.innerHTML = '<p align="center"><img src="/pix/loading.gif" width="32" height="32" alt="loading..." name="bigpic" title=""></p>' + voettekst;
		plaatDiv.style.width = '400px';
		plaatDiv.style.left = (vpw - 400 - divPad) / 2 + 'px'; 
		plaatDiv.style.top = rootElm.scrollTop + 100 + 'px';
		pic.onload = function () {
			removeEvent(doc.images['bigpic'], 'click', sluitBlowUp);
			picWidth = this.width; picHeight = this.height;
			if (this.width > vpw - minMarge - divPad) {
				picWidth = vpw - minMarge - divPad; picHeight = this.height * (picWidth / this.width);
				scaled = true;
			}
			if (picHeight + minMarge + divPad > vph) {
				picHeight = vph - minMarge - divPad; picWidth = Math.min(picWidth, pic.width * (picHeight / this.height));
				scaled = true;
			}
			plaatDiv.style.left = Math.max(0, vpw - (picWidth + divPad)) / 2 + 'px'; 
			plaatDiv.style.top = Math.max(0, (rootElm.scrollTop + (vph - (picHeight + 100))/2 )) +divPad/2 + 'px';
			plaatDiv.style.width = 'auto'; plaatDiv.innerHTML = '<p align="center"><img src="/pix/loading.gif" alt="" name="bigpic" title=""></p>' + caption + (scaled ? voettekstMetLink : voettekst);
			doc.images['bigpic'].src = pic.src; addEvent(doc.images['bigpic'], 'click', sluitBlowUp);
			doc.images['bigpic'].width = picWidth > 0 ? picWidth : doc.images['bigpic'].width;
			doc.images['bigpic'].height = picHeight > 0 ? picHeight : doc.images['bigpic'].height;
		};
	} else {
		plaatDiv.innerHTML = '<img src="' + pic.src + '" border="1" name="bigpic">';
		picWidth = pic.width; picHeight = pic.height;
		if (pic.width + minMarge + divPad> vpw) {
			picWidth = vpw - minMarge - divPad; picHeight = pic.height * (picWidth / pic.width);
			scaled = true;
		} 
		if (picHeight + minMarge + divPad > vph) {
			picHeight = vph - minMarge - divPad; picWidth = Math.min(picWidth, pic.width * (picHeight / pic.height));
			scaled = true;
		}
		plaatDiv.style.left = Math.max(minMarge, vpw - (picWidth + divPad)) / 2 + 'px'; 
		plaatDiv.style.top = Math.max(0, (rootElm.scrollTop + (vph - (picHeight + 100))/2 )) + divPad/2 + 'px';
		doc.images['bigpic'].width = picWidth > 0 ? picWidth : doc.images['bigpic'].width;
		doc.images['bigpic'].height = picHeight > 0 ? picHeight : doc.images['bigpic'].height;
		plaatDiv.innerHTML += caption + (scaled ? voettekstMetLink : voettekst);
	}
	addEvent(doc.images['bigpic'], 'click', sluitBlowUp); 
	addEvent(doc, 'keyup', handleEsc); 
	plaatDiv.style.display = 'block';
}
function sluitBlowUp() {
	removeEvent(doc.images['bigpic'], 'click', sluitBlowUp);
	removeEvent(doc, 'keyup', handleEsc); 
	doc.getElementById('transpAchtergrondDiv').style.display = 'none';
	var p = doc.getElementById('plaatDiv'); p.style.width = 'auto'; p.innerHTML = ''; p.style.display = 'none';
	return false;
}
function handleEsc(e) {
	return (((window.event) ? event.keyCode : e.keyCode) == 27) ? sluitBlowUp() : true;
}
// platen preloaden
function platenPreloaden() {
	var pic = new Image(); pic.src = '/pix/loading.gif';
	if (doc.getElementsByTagName('a')) {
		var aas = doc.getElementsByTagName('a');
		for (var i = 0, aasL = aas.length; i < aasL; i++) {if (aas[i].className.indexOf('preload') > -1) {pic = new Image(); pic.src = aas[i].href;}}
	}
}
// event-gedoe
// written by Dean Edwards, 2005
// http://dean.edwards.name/
function addEvent(element,type,handler) {
if(!handler.$$guid)handler.$$guid=addEvent.guid++;if(!element.events)element.events={};
var handlers=element.events[type];
if(!handlers){handlers=element.events[type]={};if(element["on"+type]){handlers[0]=element["on"+type];}}
handlers[handler.$$guid]=handler;element["on"+type]=handleEvent;}
addEvent.guid = 1;
function removeEvent(element,type,handler){if(element.events&&element.events[type]){delete element.events[type][handler.$$guid];}}
function handleEvent(event) {
var returnValue = true;event=event||fixEvent(window.event);var handlers=this.events[event.type];
for (var i in handlers) {this.$$handleEvent = handlers[i];if (this.$$handleEvent(event) === false) {returnValue = false;}} return returnValue;}
function fixEvent(event){event.preventDefault=fixEvent.preventDefault;event.stopPropagation=fixEvent.stopPropagation; return event;}
fixEvent.preventDefault=function(){this.returnValue=false;};
fixEvent.stopPropagation=function(){this.cancelBubble=true;};

function Carrousel () {
	this.listElID = null;
	var listEl, lis, curLi = 0, timer, interval = 5; // seconds;
	this.init = function() {
		listEl = doc.getElementById(this.listElID);
		if (!listEl) {return false;}
		lis = listEl.getElementsByTagName('li');
		var L = lis.length;
		if (L < 2) {return false;}
		for (var i = 0; i < L; i++) {
			lis[i].innerHTML += '<a href="#" id="next_' + (i==L-1?0:i+1) + '" class="next">volgende &raquo;</a>';
			addEvent(doc.getElementById('next_' + (i==L-1?0:i+1)), 'click', function(){stopTimer(); theJob(); startTimer(); return false;});
			if (i > 0) {
				lis[i].style.display = 'none';
				var pic = new Image();pic.src = lis[i].getElementsByTagName('a')[0].getElementsByTagName('img')[0].src;
			}
		}
		startTimer();
	};
	var theJob = function() {
		lis[curLi].style.display = 'none';
		curLi = curLi == lis.length -1 ? 0 : curLi + 1;
		lis[curLi].style.display = 'block';
	};
	var startTimer = function () {timer = self.setInterval(theJob, interval*1000);};
	var stopTimer = function () {self.clearInterval(timer);};
};

function toonInPopup(url) {
	window.open(url, "pop", "width=550,height=350");
}

