var DOM;
var Hendriks = {};
function showorhidesearch(id, buttonid) {
	var el = document.getElementById(id);
	var button = document.getElementById(buttonid);
	var filters = document.getElementById('Filters').getElementsByTagName('span');
	var objecttypes = document.getElementById('Objecttypes').getElementsByTagName('a');
	for (var i = 0; i < filters.length; i++) {
		if (!YAHOO.util.Dom.hasClass(filters[i], "onzichtbaar")) YAHOO.util.Dom.addClass(filters[i], "onzichtbaar");
	}
	for (var i = 0; i < objecttypes.length; i++) {
		YAHOO.util.Dom.removeClass(objecttypes[i], "actief");
	}
	YAHOO.util.Dom.removeClass(el, "onzichtbaar");
	YAHOO.util.Dom.addClass(button, "actief");
}
function toonhelp(img) {
	img.parentNode.parentNode.getElementsByTagName("div")[0].style.display = "block";
	img.style.display = "none";
	img.parentNode.getElementsByTagName("img")[1].style.display = "block";
}
function sluithelp(img) {
	img.parentNode.parentNode.getElementsByTagName("div")[0].style.display = "none";
	img.style.display = "none";
	img.parentNode.getElementsByTagName("img")[0].style.display = "block";
}

Hendriks.switchFilter = function(id,base) {
	var dropdown = document.getElementById(id);
	var value = dropdown.options[dropdown.selectedIndex].value;
	var filters = YAHOO.util.Dom.getElementsByClassName("filtergroep", null, base);
	
	for (var n in filters) {
		var item = filters[n];
		if(item.nodeType == 1) {
			if (!YAHOO.util.Dom.hasClass(item, "onzichtbaar")) {
				YAHOO.util.Dom.addClass(item, "onzichtbaar");
				YAHOO.util.Dom.removeClass(item, "zichtbaar");
			}
		}
	}
	var actief = document.getElementById(value);
	DOM.addClass(actief, "zichtbaar");
	DOM.removeClass(actief, "onzichtbaar");
};

Hendriks.Init = {
	isLoaded : false,
	init : function() {
		DOM = YAHOO.util.Dom
		if (Hendriks.Init.isLoaded) {
			Hendriks.switchFilter(Hendriks.Init.filterid, Hendriks.Init.filterbase);
		} else {
			var fun = function() { Hendriks.switchFilter(Hendriks.Init.filterid, Hendriks.Init.filterbase)};
			if (window.addEventListener) {
				window.addEventListener("load", fun);
			} else {
				window.attachEvent("onload", fun);
			}
		}
	}
};

Hendriks.MoveImage = {
	object : null,
	init : function(obj) {
		if (Hendriks.Init.IsLoaded) {
			this.object = document.getElementById(obj);
			this.moveInit();
		} else {
			var fun = function() { 
				Hendriks.MoveImage.object = document.getElementById(obj);
				Hendriks.MoveImage.moveInit();
			};
			
			if (window.addEventListener) {
				window.addEventListener("load", fun);
			} else {
				window.attachEvent("onload", fun);
			}
		}
	},
	moveInit : function() {
		images = this.object.getElementsByTagName("img");
		if (images.length > 0) {
			var image = images[0];
			image.style.position = "absolute";
			image.style.zIndex = "1";
			image.style.display = "block";
			image.style.left = "0px";
			image.style.top = "0px";
			// Een extra closure om de functie ook in IE aan te roepen te maken ...
			var fun = function() {
				Hendriks.MoveImage.doMove(image);
			}	
			window.setInterval(fun, 100); /* in IE is het niet mogelijk extra params mee te geven aan setInterval */
			
		} else {
			console.log("failed to locate image for moving");
		}
	},
	doMove : function(image) { /* We kunnen hier geen 'this' gebruiken. omdat setinverval de scope aanpast.! */
		var width = image.width;
		var height = image.height;
		var maskWidth = Hendriks.MoveImage.object.clientWidth;
		var maskHeight  = Hendriks.MoveImage.object.clientHeight;
		var left = parseInt(image.style.left);
		var top = parseInt(image.style.top);
		
		if (left + (width - maskWidth) > 0) {
			image.style.left = parseInt(left - 1) + "px";
		} else {
			image.style.left = "0px";
		}
		if (top + (height - maskHeight) > 0) {
			image.style.top = parseInt(top - 1) + "px";
		} else {
			image.style.top = "0px";
		}
	}
};


var loader = new YAHOO.util.YUILoader({
	base: "/library/yui/",
	require: ["dom"],
	onSuccess : Hendriks.Init.init
	});
loader.insert();

if (window.addEventListener) {
	window.addEventListener("load", function() { Hendriks.Init.IsLoaded = true });
} else {
	window.attachEvent("onload", function() { Hendriks.Init.IsLoaded = true });
}

