/***********************************************************************

Author:     4rn0
URL:        http://www.4rn0.nl

***********************************************************************/

var __4rn0 = new Object()

__4rn0.init = function() {

	if (arguments.callee.done) {
		return;
	}
	
	arguments.callee.done = true;
	
	if (typeof(document.getElementById) == 'undefined') {
		document.getElementById = function(id) {
			return document.all[id];
		};
	}

	__4rn0.initAnchorEvents();
	__4rn0.initInputEvents();
	__4rn0.initGallery();
	__4rn0.initCollapsableContent();

}

__4rn0.initAnchorEvents = function() {
	
	var anchors = document.getElementsByTagName('A');
	for (var i = 0; i < anchors.length; i++) {
		
		if (anchors[i].getAttribute('rel') == 'external') {
			anchors[i].setAttribute('target', '_blank');
		}

		if (anchors[i].className == 'confirm') {
			anchors[i].onclick = function() {
				if (!confirm('Weet je zeker dat je dit wilt doen?')) {
					return false;
				}
			};
		}

	}
	
}

__4rn0.initInputEvents = function() {
	
	var inputs = document.getElementsByTagName('INPUT');
	for (var i = 0; i < inputs.length; i++) {
		
		if (inputs[i].className.indexOf('confirm') != -1) {
			inputs[i].onclick = function() {
				if (!confirm('Weet je zeker dat je dit wilt doen?')) {
					return false;
				}
			};
		}
		
		inputs[i].onclick = function() {
			if (document.all && this.getAttribute('type') == 'button' && this.parentNode.nodeName == 'A') {
				if (confirm('Weet je zeker dat je dit wilt doen?')) {
					document.location = this.parentNode.href;
				}
				this.parentNode.onclick = null;
			}
		};

	}
	
}

__4rn0.initGallery = function() {
	
	if (document.getElementById('thumbs')) {
		
		document.body.className += ' DOM';

		var setActive = false;
		var anchors = document.getElementById('thumbs').getElementsByTagName('A');
		var image = anchors[0];
		
		var photoNavigation  = "\n\t\t" + '<p class="main">' + "\n";
			photoNavigation += "\t\t\t" + '<img src="' + image.href + '" alt="" id="mainPhoto"><br>' + "\n";
			photoNavigation += "\t\t\t" + '<strong id="caption">' + image.title + '</strong><br>' + "\n";
			photoNavigation += anchors.length > 1 ? "\t\t\t" + '<a href="#" id="previousPhoto">vorige</a> | <a href="#" id="nextPhoto">volgende</a>' + "\n" : '';
			photoNavigation += "\t\t" + '</p>' + "\n";
			
		setInnerHTML(document.getElementById('placeHolder'), getInnerHTML(document.getElementById('placeHolder')) + photoNavigation);
		
		if (anchors.length > 1) {
			document.getElementById('previousPhoto').onclick = __4rn0.navigateThumbs;
			document.getElementById('nextPhoto').onclick = __4rn0.navigateThumbs;
		}

		for (var i = 0; i < anchors.length; i++) {
			
			if (anchors[i].getElementsByTagName('IMG').length == 1) {
				
				if (setActive == false) {
					anchors[i].className = 'active';
					setActive = true;
				}
				
				anchors[i].onclick = function() {
					
					var image = document.getElementById('mainPhoto');
	
					image.src = this.href;
					image.alt = this.title;
					setInnerHTML(document.getElementById('caption'), this.title);

					var selector = document.getElementById('image');
					
					if (selector) {

						for (var x = 0; x < selector.options.length; x++) {
							if (this.title == selector.options[x].firstChild.nodeValue) {
								selector.options[x].selected = true;
								break;
							}
						}
						
					}
			
					__4rn0.removeActiveThumbs();
					this.className = 'active';
					this.blur();
	
					return false;
				};
			}
			
		}
	
	}

}


__4rn0.navigateThumbs = function() {
	
	var anchors = document.getElementById('thumbs').getElementsByTagName('A');
	for (var i = 0; i < anchors.length; i++) {
		if (anchors[i].className == 'active') {
			var target = (this.getAttribute('id') == 'nextPhoto' ? (i == anchors.length - 1 ? 0 : i + 1) : (i == 0 ? anchors.length - 1 : i - 1));
			var image = document.getElementById('mainPhoto');
			
			image.src = anchors[target].href;
			image.alt = anchors[target].title;
			setInnerHTML(document.getElementById('caption'), anchors[target].title);

			var selector = document.getElementById('image');

			if (selector) {
				for (var x = 0; x < selector.options.length; x++) {
					if (anchors[target].title == selector.options[x].firstChild.nodeValue) {
						selector.options[x].selected = true;
						break;
					}
				}
			}

			__4rn0.removeActiveThumbs();
			anchors[target].className = 'active';
			this.blur();

			break;
		}
	}
		
	return false;
	
}

__4rn0.removeActiveThumbs = function() {
	
	var anchors = document.getElementById('thumbs').getElementsByTagName('A');
	for (var i = 0; i < anchors.length; i++) {
		if (anchors[i].getElementsByTagName('IMG').length == 1) {
			anchors[i].className = '';
		}
	}
	
}

__4rn0.initCollapsableContent = function() {
	
	var container = document.getElementById('collapsableContent');

	if (document.getElementById('id')) {
		var activeDocument = document.getElementById('id').value;
	}

	if (container) {
	
		cleanWhiteSpace(container);
		
		var anchors = container.getElementsByTagName('A');
		for (var i = 0; i < anchors.length; i++) {
			if (anchors[i].className == 'toggleList') {

				var nextSibling = anchors[i].parentNode.nextSibling;
				nextSibling.style.display = 'none';
				setInnerHTML(anchors[i], '<span>[+]</span> ' + getInnerHTML(anchors[i]));

				anchors[i].onclick = function() {
					var nextSibling = this.parentNode.nextSibling;
					nextSibling.style.display = (nextSibling.style.display == 'none') ? 'block' : 'none';
					setInnerHTML(this, '<span>[' + (nextSibling.style.display == 'none' ? '+' : '-') + ']</span>' + getInnerHTML(this).substr(16));
				};

				var inputs = nextSibling.getElementsByTagName('INPUT');
				for (var j = 0; j < inputs.length; j++) {
					
					if (document.getElementById('type')) {
						var type = document.getElementById('type').value + '-' + activeDocument;
					}
					
					else {
						var type = activeDocument;
					}
					
					if (inputs[j].value == type) {
						nextSibling.style.display = 'block';
						setInnerHTML(anchors[i], '<span>[-]</span>' + getInnerHTML(anchors[i]).substr(16));
						//inputs[j].parentNode.className += ' active';
						//inputs[j].checked = true;
					}
				}

			}
		}
	
	}

}


if (document.addEventListener) { document.addEventListener('DOMContentLoaded',__4rn0.init,null); }
/*@cc_on @*/ /*@if (@_win32) document.write("<script defer src=../js/twp.init.js><"+"/script>"); /*@end @*/   
window.onload = __4rn0.init;


function setInnerHTML(element, toValue) {
	if (typeof(element.innerHTML) != 'undefined') {
		element.innerHTML = toValue;
	}
	else {
		var range = document.createRange();
		rangthis.selectNodeContents(element);
		rangthis.deleteContents();
		element.appendChild(rangthis.createContextualFragment(toValue));
	}
}

function getInnerHTML(element) {
	if (typeof(element.innerHTML) != 'undefined') {
		return element.innerHTML;
	}
	else {
		var returnStr = '';
		for (var i = 0; i < element.childNodes.length; i++)
			returnStr += getOuterHTML(element.childNodes[i]);

		return returnStr;
	}
}

function cleanWhiteSpace(element) {
	for (var i = 0; i < element.childNodes.length; i++) {
		var node = element.childNodes[i];
		if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
			node.parentNode.removeChild(node);
		}
	}
}

function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
    var oCurrent;
    var oAttribute;
    for(var i=0; i<arrElements.length; i++){
        oCurrent = arrElements[i];
        oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
        if(typeof oAttribute == "string" && oAttribute.length > 0){
            if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
                arrReturnElements[arrReturnElements.length] = oCurrent;
            }
        }
    }
    return arrReturnElements;
}
