Website.OverzichtFilter = {
	loader: new YAHOO.util.YUILoader({
		base: "/library/yui/",
		require: ["dom", "connection"]
		}),
	filters: [],
	initfilter: function(_id, _filterid, _typeoverzicht, _fieldname, _value, _typefilter, _selecttype, _defaultitem, _multisel, _formatstring) {
		var filter = { id: _id, filterid: _filterid, typeoverzicht: _typeoverzicht, fieldname: _fieldname, value: _value, typefilter: _typefilter, selecttype: _selecttype, defaultitem: _defaultitem, multisel: _multisel, formatstring: _formatstring }
		this.filters.push(filter);
	},
	clear: function(typeoverzicht) {
		for (var i = 0; i < this.filters.length; i++) {
			if (this.filters[i].typeoverzicht == typeoverzicht) {
				var el = document.getElementById(this.filters[i].id);
				if (el && el.tagName == "SELECT") el.value = "";
			}
		}
		this.refresh(typeoverzicht)
	},
	refresh: function(typeoverzicht) {
		var ids = [];
		var filterids = [];
		var values = [];
		var fieldnames = [];
		var typefilters = [];
		var selecttypes = [];
		var defaultitems = [];
		var multiselvalues = [];
		var formatstrings = [];
		for (var i = 0; i < this.filters.length; i++) {
			if (this.filters[i].typeoverzicht == typeoverzicht) {
				var el = document.getElementById(this.filters[i].id);
				if (el && el.tagName == "SELECT") this.filters[i].value = el.value;
				ids.push(this.filters[i].id);
				filterids.push(this.filters[i].filterid);
				values.push(this.filters[i].value);
				fieldnames.push(this.filters[i].fieldname);
				typefilters.push(this.filters[i].typefilter);
				selecttypes.push(this.filters[i].selecttype);
				defaultitems.push(this.filters[i].defaultitem);
				multiselvalues.push(this.filters[i].multisel);
				formatstrings.push(this.filters[i].formatstring);
			}
		}
		var URL = "/OverzichtFilterValues.aspx"
		var postdata = "TypeOverzicht=" + typeoverzicht + "&ids=" + ids.join(";") + "&filterids=" + filterids.join(";") + "&values=" + values.join(";") + "&fieldnames=" + fieldnames.join(";") + " &typefilters=" + typefilters.join(";") + "&selecttypes=" + selecttypes.join(";") + "&defaultitems=" + defaultitems.join(";") + "&multiselvalues=" + multiselvalues.join(";") + "&formatstrings=" + formatstrings.join(";");
		
		
		var buttonHolder = [];
		var dom = YAHOO.util.Dom;
		
		var snelzoekerContainer = dom.getElementsByClassName("SnelzoekerContainer");
		for (var n = 0; n < snelzoekerContainer.length; n++) {
			var zoekbuts = dom.getElementsByClassName("zoekbutton", "",  snelzoekerContainer[n]);
			for (i = 0; i < zoekbuts.length; i++) {
				var button = zoekbuts[i];
				buttonHolder[i] = button.getAttribute("href");
				button.removeAttribute("href");
				button.className = "zoekbutton disabled";
			}
		}
		var callback = {
			success: function(o) {
				var xml = o.responseXML;
				var elements = xml.getElementsByTagName("element");
				for (i = 0; i < elements.length; i++) {
					var el = document.getElementById(elements[i].getElementsByTagName("id")[0].firstChild.nodeValue);
					if (el && el.tagName == "SELECT") {
						el.innerHTML = "";
						var nodes = elements[i].getElementsByTagName("data")[0].childNodes;
						for (var j = 0; j < nodes.length; j++) {
							var newnode = document.createElement("option");
							newnode.appendChild(document.createTextNode(nodes[j].firstChild.nodeValue));
							newnode.setAttribute("value", nodes[j].getAttribute("value"));
							var className = nodes[j].getAttribute("class");
							if (className) newnode.setAttribute("class", className);
							if (nodes[j].getAttribute("selected") == "selected") newnode.setAttribute("selected", "selected")
							el.appendChild(newnode);
						}
					}
				}
				var scs = dom.getElementsByClassName("SnelzoekerContainer");
				for (n = 0; n < scs.length; n++) {
					var xs = dom.getElementsByClassName("zoekbutton disabled", "", scs[n]);
					for (i = 0; i < xs.length; i++) {
						xs[i].className = "zoekbutton";
						xs[i].href = buttonHolder[i];
					}
				}
			},
			failure: null
		}
		
		YAHOO.util.Connect.asyncRequest("POST", URL, callback, postdata);
	}
}
Website.OverzichtFilter.loader.insert();
