/* 

	SearchField 
	written by Alen Grakalic, provided by Css Globe (cssglobe.com)
	please visit http://cssglobe.com/post/1202/style-your-websites-search-field-with-jscss/ for more info
	
*/

this.searchfield = function(){
	
	// CONFIG 
	
	// this is id of the search field you want to add this script to. 
	// You can use your own id just make sure that it matches the search field in your html file.
	var id = "suchwort";
	
	// Text you want to set as a default value of your search field.
	var defaultText = "Suche nach Interview mit...";	
	
	// 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;
	
	// static list of suggestion options, separated by comma
	// replace with your own
	var suggestionText = "John, Scatman+ Slomka, Marietta+Abu-Assad, Hany+Adams, John+Adebisi, Mola+Affleck, Ben+Aimard, Pierre-Laurent+Akin, Fatih+Akyün, Hatice+al-Deen, Laith+Alakus, Buket+Alsmann, Götz+Amsterdam, Robert+Annaud, Jean-Jacques+Asbjörnsen, Kristin+Astley, Rick+Atkinson, Rowan+Atxaga, Bernardo+Aust, Stefan+Žbanic, Jasmila+Ballhaus, Michael+Bargeld, Blixa+Barsotti, Marcel+Baumann, Dieter+Baxmeyer, Florian+Bäumer, Marie+Böhm, Karlheinz+Böschen, Silke+Beck, Volker+Becker, Ben+Becker, Rolf+Becker, Wolfgang+Bedingfield, Daniel+Bega, Lou+Bekmambetow, Timur+Benaissa, Nadja+Benedikt, Julian+Berben, Iris+Berger, Senta+Berkel, Christian+Besson, Luc+Biedermann, Jeanette+Biller, Maxim+Biolay, Benjamin+Bisky, Lothar+Blair, Selma+Blanchett, Cate+Blaszkiewitz, Bernhard+Bleibtreu, Moritz+Bogner, Willy+Boll, Uwe+Boning, Wigald+Brandrup, Johannes+Brückner, Christian+Brühl, Daniel+Bregovic, Goran+Breuckmann, Manfred+Brice, Pierre+Bridgewater, Dee Dee+Broder, Henryk M.+Brody, Adrien+Broschkowski, Michael+Brussig, Thomas+Buck, Detlev+Burrows, Jonathan+Buscemi, Steve+Butz, Sebastian+Carpendale, Howard+Catterfeld, Yvonne+Chan, Jackie+Chang, Sarah+Chéreau, Patrice+Christlieb, Angela+Churcher, Mel+Cicero, Roger+Clark, Anne+Cody, Diablo+Coixet, Isabel+Cousteau, Jean-Michel+Cramer, Bettina+Craven, Wes+Cullum, Jamie+D, Thomas+Dasch, Annette+Dax, Max+Dörrie, Doris+de Biel, Ben+del Toro, Guillermo+Delling, Gerhard+Demme, Jonathan+Demtröder, Till+Dhorasoo, Vikash+DiCaprio, Leonardo+Diehl, August+Diesel, Vin+Dombrowski, Kerstin+Dorfmeister, Richard+Dorn, Christine+Dornford-May, Mark+Dresen, Andreas+Drewermann, Eugen+Du Mont, Sky+Dunst, Kirsten+Dutschke, Marek+Effenberg, Stefan+Eisermann, André+Elfman, Danny+Eligmann, Barbara+Elsner, Hannelore+Elstner, Frank+Emmerich, Roland+Erhardt, Marek+Ernst, Holger+Erpenbeck, Jenny+Faithfull, Marianne+Färberböck, Max+Fülling, Oliver+Fürmann, Benno+Feifel, Martin+Feist, Leslie+Feldmann, Rötger+Felsenheimer, Bela B.+Ferres, Veronica+Feuerstein, Herbert+Firth, Colin+Fleming, Renée+Flierl, Thomas+Flint, Katja+Follett, Ken+Frank, Kim+Frankenreiter, Donavon+Frears, Stephen+Freeland, Adam+Friedman, Michel+Fuchs, Arved+Furtwängler, Maria+Gabetta, Sol+Garrett, David+Gastmann, Constantin+Göske, François+Georgi, Peter+Gergiev, Valery+Ghobadi, Bahman+Gietinger, Klaus+Gilberto, Bebel+Giordano, Mario+Gladwell, Malcolm+Glas, Uschi+Glass, Philip+Glen, Marla+Goerne, Matthias+Goldenthal, Elliot+Golijov, Osvaldo+Gourari, Anna+Graham, Heather+Greengrass, Paul+Grimaud, Hélène+Grzegorczyk, Matias+Guggenheim, Davis+Gustavsen, Tord+Gyaltsen, Kelsang+Gysi, Gregor+Haas, Wolf+Haberlandt, Fritzi+Hader, Josef+Hagen, Nina+Hahn, Hilary+Haneke, Michael+Hanks, Tom+Harfouch, Corinna+Harms, Kirsten+Hathaway, Anne+Haussmann, Leander+Höller, Robert+Hübchen, Henry+Heinze, Thomas+Henckel von Donnersmarck, Florian+Hengstenberg, Michail+Hennicke, André+Hennig von Lange, Alexa+Henschel, Gerhard+Herbert, Matthew+Herbig, Michael Bully+Herfurth, Karoline+Hoffman, Dustin+Hoffman, Philip Seymour+Hoffmann, Rüdiger+Hoger, Hannelore+Holender, Ioan+Holighaus, Alfred+Horn, Guildo+Hoss, Nina+Huaicheng, Wang+Hummer, Julia+Huntgeburth, Hermine+Illner, Maybrit+Jackson, Janet+Jandová, Marta+Janke, Hans+Jarreau, Al+Jöcker, Detlev+Jürgens, Udo+Jean, Wyclef+Jenny, Zoë+Jentsch, Julia+Jessen, Liane+Joop, Wolfgang+Junkersdorf, Tom+Kaige, Chen+Kalkofe, Oliver+Kaminer, Wladimir+Kar-wai, Wong+Karmakar, Romuald+Kausch, Thomas+Kavina, Lydia+Kavka, Markus+Köhler, Horst+König, Ralf+Köstner, Lorenz Günther+Kekilli, Sibel+Kelly, Joey+Kerkeling, Hape+Ki-Duk, Kim+Kidjo, Angelique+Kidman, Nicole+Kier, Udo+King Karl, Lotto+Klaußner, Burghart+Klaws, Alexander+Kläuser, Horst+Klein, Hans-Joachim+Klein, Naomi+Kloeppel, Peter+Kloser, Harald+Klossowski de Rola, Stanislas+Klotz, Sibyll+Koch, Sebastian+Koch, Valerie+Kollek, Amos+Kollhoff, Hans+Konarske, Stefan+Kosslick, Dieter+Kowalsky, Peter+Kozená, Magdalena+Kramer, Ann-Kathrin+Kraus, Chris+Kraus, Peter+Król, Joachim+Krömer, Kurt+Krebitz, Nicolette+Kremer, Gidon+Kretschmann, Thomas+Krug, Manfred+Krumbiegel, Sebastian+Kurkow, Andrej+Kutcher, Ashton+LaBeouf, Shia+Lang, Lang+Lara, Alexandra Maria+Lau, Frederick+Lücke, Stephanie+Lützenkirchen, Tobias+Leconte, Patrice+Lemper, Ute+Lenßen, Ingo+Levy, Dani+Li, Yundi+Lindner, Patrick+Littmann, Corny+Loach, Ken+Loaf, Meat+Lohmeyer, Peter+Louisan, Annett+Loussier, Jacques+Luketic, Robert+Lunge, Ulf+Maar, Paul+Mae, Vanessa+Maisky, Mischa+Makatsch, Heike+Mandoki, Leslie+Mann, Ron+Marjan, Marie-Luise+Marsalis, Branford+Matthes, Ulrich+Mauff, Maximilian+Maurer, Mechtild+May, Corinna+Mühe, Anna Maria+Mühe, Ulrich+Müller, Richy+Müntefering, Franz+McAvoy, James+McElhone, Natascha+Mcferrin, Bobby+Meirelles, Fernando+Melikian, Anna+Mendes, Eva+Mendes, Sergio+Menken, Alan+Meyer, Clemens+Meyer, Hans-Werner+Meyer, Laurenz+Mißfelder, Philipp+Mierendorf, Tetje+Milberg, Axel+Mills, Jeff+Minghella, Anthony+Mistry, Jimi+Mockridge, Jeremy+Moeller, Ralf+Moll, Dominik+Mommsen, Oliver+Monheit, Jane+Monot Jr., Antoine+Morgenstern, Barbara+Morris, Errol+Moya, Sergej+Mutzke, Max+Nair, Mira+Nalin, Pan+Neid, Silvia+Netzer, Günter+Nick, Désirée+Noethen, Ulrich+Nova, Heather+Nuhr, Dieter+Nyman, Michael+Ochsenknecht, Jimi Blue+Ochsenknecht, Uwe+Ohrt, Christoph M.+Oldfield, Mike+Olm, Hans Werner+Opitz, Florian+Orrico, Stacie+Osang, Alexander+Ozon, François+Panfilow, Oleg+Pape, René+Pasko, Grigori+Pastewka, Bastian+Paul, Christiane+Penderecki, Krzysztof+Penke, Lars+Perels, Joachim+Peters, Trevor+Petersen, Wolfgang+Peterson, Gilles+Petzold, Christian+Peyroux, Madeleine+Pfaff, Dieter+Plasberg, Frank+Pohl, Kalle+Portman, Rachel+Potente, Franka+Prahl, Axel+Prochnow, Jürgen+Quabeck, Benjamin+Quasthoff, Thomas+Raacke, Dominic+Rachman, Paul+Radd, Norrin+Radisch, Iris+Rangnick, Ralf+Rau, Johannes+Reeves, Dianne+Regner, Tobias+Reich, Steve+Reichart, Thomas+Reilly, John C.+Reiter, Thomas+Reitschuster, Boris+Reno, Jean+Rexrodt, Günter+Richling, Mathias+Riemann, Katja+Riemelt, Max+Rietz, Jacqueline+Riha, David+Riklis, Eran+Robbins, Tim+Roche, Charlotte+Rodigan, David+Roehler, Oskar+Rohde, Armin+Rohrbeck, Oliver+Rois, Sophie+Roth, Claudia+Roth, Thomas+Rothemund, Marc+Ruf, Niels+Ruge, Nina+Ruzowitzky, Stefan+Saalfrank, Katharina+Sarkozy, Nicolas+Savas, Kool+Sawallisch, Wolfgang+Schaaf, Thomas+Schätzing, Frank+Schöneberger, Barbara+Schenke, Tobias+Schenkel, Martin+Schill, Ronald+Schilling, Tom+Schlöndorff, Volker+Schlingensief, Christoph+Schmid, Hans-Christian+Schmidt, Fabrice+Schmidt, Harald+Schmidt, Ulla+Schmitt, Harald+Schmitz, Kim+Schneider, Helge+Scholl, Andreas+Schoras, Chiara+Schulze-Erdel, Werner+Schumacher, Joel+Schwarz, Henrik+Schwarz, Jessica+Schweiger, Til+Schweighöfer, Matthias+Seehofer, Horst+Sheridan, Jim+Siebler, Harald+Siegel, Ralph+Simonis, Heide+Singer, Bryan+Sinopoli, Guiseppe+Sittler, Walter+Skride, Baiba+Smith, Jocelyn B.+Soares, Isabel+Sodann, Peter+Soderbergh, Steven+Sommer, Ariane+Sonneborn, Martin+Sorokin, Wladimir+Sosa, Mercedes+Stadlober, Robert+Stadtfeld, Martin+Stahlberg, Jan Henrik+Stöhr, Hannes+Stürmer, Christina+Steffel, Frank+Steffen, Britta+Stein, Axel+Stein, Thomas M.+Stiller, Ben+Stockhausen, Karlheinz+Ströbele, Hans-Christian+Streich, Alois+Stumph, Wolfgang+Suliman, Aktham+Sverak, Jan+Swinton, Tilda+Tabatabai, Jasmin+Tenor, Jimi+Thalbach, Katharina+Thalemann, Ralf+Theron, Charlize+Thierse, Wolfgang+Thompson, Emma+Thomson, Anna+Tiersen, Yann+Topol, Adrian+Toscani, Oliviero+Triebel, Jördis+Tsintsadze, Dito+Tufts, Gayle+Tukur, Ulrich+Tykwer, Tom+Ullmann, Kostja+Urzendowsky, Sebastian+van de Meiklokjes, Enie+van Veen, Herman+Vega, Suzanne+Veiel, Andres+Vester, Saskia+Vetter, Marcus+Villazón, Rolando+Visser, Ubbo+Vogel, Jürgen+von Boehm, Gero+von der Leyen, Ursula+von der Lippe, Jürgen+von Eichborn, Vito+von Jascheroff, Constantin+von Sinnen, Hella+Wader, Hannes+Wagenhofer, Erwin+Wagner, Jasmin+Wagner, Nike+Wainwright, Martha+Wajda, Andrzej+Wörner, Natalia+Webbe, Simon+Wecker, Konstantin+Wedge, Chris+Wehland, Henning+Weißflog, Jens+Weißmann, Marliese+Weigmann, Diane+Weingartner, Hans+Weiss, Christina+Weller, Walter+Wenders, Wim+Wenediktow, Alexej+Wepper, Fritz+Werner, Pe+Wickert, Ulrich+Wiesinger, Kai+Will, Anne+Wilson, Robert+Wimmer, Jeffrey+Winkelmann, Adolf+Winterbottom, Michael+Wolf, Stefan+Woo, John+Yamada, Yoji+Young, Paul+Young, Simone+Zeigler, Arnd+Zeul, Johanna+Zimmer, Hans+Zimmer, Joana+Zirner, August+Die Ökologisch-Demokratische Partei+2raumwohnung+Ace of Base+Apollo 440+Archive+Asian Dub Foundation+Astra Kid+Badesalz+Badmarsh & Shri+Baha Men+Balkan Beat Box+Banaroo+Bürgerrechtsbewegung Solidarität BüSo+BILDblog+Bloodhound Gang+Bodo Bach+Bumm Film+Calexico+Cecil, Jonni, Lauro+Christliche Mitte+Cinematic Orchestra+De-Phazz+Der Junge mit der Gitarre+Die Frauen+Die Grauen Panther+Die Humanistische Partei+Die Killerpilze+Die Prinzen+Die Sterne+Enigma+Erasure+Fairwork+Fantastischen Vier+Fettes Brot+Freestylers+Guano Apes+Halz Maul und Spiel+Hilliard Ensemble+Incognito+Jewdyssee+Junkie XL+K.I.Z.+Kid Loco+Kilians+King's Singers+King’s Singers+Kool & the Gang+Madcon+Marilyn's Boys+Maximo Park+Moby+Moloko+Morcheeba+Nada Surf+Nevada Tan+Orange Blue+Parov Stelar+Partei für RentenGerechtigkeit und Familie+Pole+Rosenstolz+Senor Coconut+Shut Up And Dance+Sneaker Pimps+Such a Surge+The Bad Plus+The Crystal Method+The Rock+Thievery Corporation+Tierschutzpartei+TipTop+Tokio Hotel+Trüby Trio+Uncle Ho+Underworld+Ursula 1000+Wir sind Helden"; 
	
	// END CONFIG (do not edit below this line, well unless you really, really want to change something :) )
	
	// Peace, 
	// Alen

	var field = document.getElementById(id);	
	var classInactive = "sf_inactive";
	var classActive = "sf_active";
	var classText = "sf_text";
	var classSuggestion = "sf_suggestion";
	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 initiates on 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);


