this.searchfield = function(){

	// CONFIGURATIE

	// ID voor de zoekform.
	var id = "zoek_veld";

	// Tekst voor de Value.
	var defaultText = "Zoeken op de website...";

	// set to either true or false
	// when set to true it will generate search suggestions list for search field based on content of variable below
	var suggestion = true;

	// Hier moeten de tags, trefwoorden ingevuld worden. Deze kunnen misschien ook uit een database getrokken worden. Trefwoorde moeten met een komma gescheiden worden
	var suggestionText = "Muziek, DPL, DPL Sound, Licht, Geluid, Professioneel, Professionele, Verkoop, Verhuur, Wensen, Service, Toespraak, Assortiment, Vakkundig, Lichtapparatuur, Geluidsapparatuur, Aanschaf, Contact, Hardenberg, De Brink, Brink, Multimedia, Apparatuur, Symmetrisch, Licht apparatuur, Lichtshow, Licht en Geluid, Eigenschappen, Doel, Ballans, Kleurstelling, Spreiding, Duidelijk, Installatie, Bediening, Deskundig, Lichttechnicus, Werken, Kwaliteit, MA, Martin, Ultralite, Manfrotto, Geluidsverhuurbedrijf, Geluidstechnicus, Visie, Geluidsinstallatie, Microfoon, Microfoons, Effectapparatuur, Geluidsset, Opdracht, Evenement, Optreden, Show, Event, Eindresultaat, Volume, Hard, Mooi, Klinken, Merken, E.A.W., Kling & Freitag, Bose, Carver, Dateq, Denon, Soundcraft, EV, Shure, Sennheiser, Beethoven, Top Drie, Melrose, Erwin Nijhoff, Geluidstechniek Hardenberg, K&G Verhuur, RTV, RTO Oost, Tour d'Overijssel, Bill's Bar, Beach Party, Schaapsheerdersfeest, Markelo, Dansschool Erik, Erik, BVIPM, Entertainment, Slobberfeest, Take Off '04, Sinterklaas, Avondvierdaagse, Vierdaagse, Feesttent, van Dijk Bouwbedrijf, Café The Old-inn, Voetbal vereniging HHC, Korfbal, Korfbalvereniging Juventa, Juventa, Voetbal, Staats Bos Beheer, Staats, Bos, Beheer";

	// EIND CONFIG (hieronder hoef er niet gewijzigd te worden tenzij je echt iets perse wilt veranderen in het script zelf )

	var field = document.getElementById(id);
	var classInactive = "sf_inactief";
	var classActive = "sf_actief";
	var classText = "sf_tekst";
	var classSuggestion = "sf_suggestie";
	this.safari = ((parseInt(navigator.productSub)>=20020000)&&(navigator.vendor.indexOf("Apple Computer")!=-1));
	if(field && !safari){
		field.value = defaultText;
		field.c = field.className;
		field.className = field.c + " " + classInactive;
		field.onfocus = function(){
			this.className = this.c + " "  + classActive;
			this.value = (this.value == "" || this.value == defaultText) ?  "" : this.value;
		};
		field.onblur = function(){
			this.className = (this.value != "" && this.value != defaultText) ? this.c + " " +  classText : this.c + " " +  classInactive;
			this.value = (this.value != "" && this.value != defaultText) ?  this.value : defaultText;
			clearList();
		};
		if (suggestion){

			var selectedIndex = 0;

			field.setAttribute("autocomplete", "off");
			var div = document.createElement("div");
			var list = document.createElement("ul");
			list.style.display = "none";
			div.className = classSuggestion;
			list.style.width = field.offsetWidth + "px";
			div.appendChild(list);
			field.parentNode.appendChild(div);

			field.onkeypress = function(e){

				var key = getKeyCode(e);

				if(key == 13){ // enter
					selectList();
					selectedIndex = 0;
					return false;
				};
			};

			field.onkeyup = function(e){

				var key = getKeyCode(e);

				switch(key){
				case 13:
					return false;
					break;
				case 27:  // esc
					field.value = "";
					selectedIndex = 0;
					clearList();
					break;
				case 38: // up
					navList("up");
					break;
				case 40: // down
					navList("down");
					break;
				default:
					startList();
					break;
				};
			};

			this.startList = function(){
				var arr = getListItems(field.value);
				if(field.value.length > 0){
					createList(arr);
				} else {
					clearList();
				};
			};

			this.getListItems = function(value){
				var arr = new Array();
				var src = suggestionText;
				var src = src.replace(/, /g, ",");
				var arrSrc = src.split(",");
				for(i=0;i<arrSrc.length;i++){
					if(arrSrc[i].substring(0,value.length).toLowerCase() == value.toLowerCase()){
						arr.push(arrSrc[i]);
					};
				};
				return arr;
			};

			this.createList = function(arr){
				resetList();
				if(arr.length > 0) {
					for(i=0;i<arr.length;i++){
						li = document.createElement("li");
						a = document.createElement("a");
						a.href = "javascript:void(0);";
						a.i = i+1;
						a.innerHTML = arr[i];
						li.i = i+1;
						li.onmouseover = function(){
							navListItem(this.i);
						};
						a.onmousedown = function(){
							selectedIndex = this.i;
							selectList(this.i);
							return false;
						};
						li.appendChild(a);
						list.setAttribute("tabindex", "-1");
						list.appendChild(li);
					};
					list.style.display = "block";
				} else {
					clearList();
				};
			};

			this.resetList = function(){
				var li = list.getElementsByTagName("li");
				var len = li.length;
				for(var i=0;i<len;i++){
					list.removeChild(li[0]);
				};
			};

			this.navList = function(dir){
				selectedIndex += (dir == "down") ? 1 : -1;
				li = list.getElementsByTagName("li");
				if (selectedIndex < 1) selectedIndex =  li.length;
				if (selectedIndex > li.length) selectedIndex =  1;
				navListItem(selectedIndex);
			};

			this.navListItem = function(index){
				selectedIndex = index;
				li = list.getElementsByTagName("li");
				for(var i=0;i<li.length;i++){
					li[i].className = (i==(selectedIndex-1)) ? "selected" : "";
				};
			};

			this.selectList = function(){
				li = list.getElementsByTagName("li");
				a = li[selectedIndex-1].getElementsByTagName("a")[0];
				field.value = a.innerHTML;
				clearList();
			};

		};
	};

	this.clearList = function(){
		if(list){
			list.style.display = "none";
			selectedIndex = 0;
		};
	};
	this.getKeyCode = function(e){
		var code;
		if (!e) var e = window.event;
		if (e.keyCode) code = e.keyCode;
		return code;
	};

};

// script controleerd bij iedere page load.

this.addEvent = function(obj,type,fn){
	if(obj.attachEvent){
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn](window.event );}
		obj.attachEvent('on'+type, obj[type+fn]);
	} else {
		obj.addEventListener(type,fn,false);
	};
};
addEvent(window,"load",searchfield);

