/* 

	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 = "searchfield";
	
	// Text you want to set as a default value of your search field.
	var defaultText = "";	
	
	// 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 = "The Rock, Stone Cold Steve Austin, Brian Kendrick, Jeff Hardy, Matt Hardy, Lita, Mankind, Mick Foely, Sting, Jeff Jarrett, HHH, Triple H, Chyna, Dude Love, Batista, Chris Jericho, CM Punk, Melina, Beth Phoenix, Candice Michelle, Charlie Haas, Cody Rhodes, Dolph Ziggler, Goldust, Hacksaw Jim Duggan, Jim Duggan, Jamie Noble, JBL, John Bradshaw Layfield, Jerry Lawler, Jillian Hall, John Cena, JTG, Kane, Kelly Kelly, Kofi Kingston, Layla, Lilian Garcia, Michael Cole, Mickie James, Mike Knox, Vince McMahon, Shane McMahon, Randy Orton, Rey Mysterio, Rosa Mendes, Santino Marella, Shad, Shawn Michaels, Sim Snuka, Ted DiBiase, William Regal, Edge, Shelton Benjamin, Maryse, Carlito, Primo, Big Show, Brie Bella, Chavo Guerrero, Curt Hawkins, DH Smith, Eve, Ezekiel Jackson, Festus, Hurricane Helms, The Hurricane, Jesse, Jim Ross, Jimmy Wang Yang, Justin Roberts, Kizarny, Kung Fu Naki, Funaki, Maria, Michelle McCool, Montel Vontavious Porter, MVP, Mr. Kennedy, Natalya, Nikki Bella, R-Truth, Ranjin Singh, Ryan Braddock, Tazz, The Brian Kendrick, The Great Khali, Umaga, The Undertaker, Undertaker, Vickie Guerrero, Vladimir Kozlov, Zack Ryder, Alicia Foz, Christian, Christian Cage, DJ Gabriel, Evan Bourne, Finlay, Fit Finlay, Hornswoggle, Jack Swagger, John Morrison, Katie Lea, Burchill, Mark Henry, Matt Striker, Paul Burchill, Ricky Ortiz, The Miz, Theodore Long, Tiffany, Todd Grisham, Tommy Dreamer, Tony Atlas, Tony Chimel, Tyson Kidd, Layla, Mean Gene Okerlund, Sensational Sherri, Andre the Giant, Antonino Rocca, Arnold Skaaland, Baron Mikel Scicluna, Big John Studd, Bill Watts, Billy Graham, Bob Orton, Bobby Heenan, Bobo Brazil, Bret Hart, Buddy Rogers, Captain Lou Albano, Chief Jay Strongbow, Curt Hennig, Don Muraco, Dusty Rhodes, Eddie Graham, Eddie Guerrero, Ernie Ladd, Fabulous Moolah, Freddie Blassie, George Steele, Gerald Brisco, Gordon Solie, Gorilla Monsoon, Greg Valentine, Harley Race, High Chief Peter Maivia, Hulk Hogan, Ivan Putski, Jack Brisco, James Dudley, Jerry Lawler, Jesse Ventura, Jim Ross, Jimmy Hart, Jimmy Snuka, Johnny Rodz, Junkyard Dog, Killer Kowalski, Mae Young, Mr. Fuji, Nick Bockwinkel, Nikolai Volkoff, Pat Patterson, Paul Orndorff, Pedro Morales, Pete Rose, Ric Flair, Ricky Steamboat, Rocky Johnson, Roddy Piper, Sgt. Slaughter, The BlackJacks, The Funks, The Grand Wizard, The Iron Sheik, The Sheik, The Wild Samoans, Tito Santana, Tony Atlas, Valiant Brothers, Verne Gagne, William Perry, Jay Lethal, Kurt Angle, Booker T, King Booker, Awesome Kong, Gail Kim, Taylor Wilde, The Godfather, Black Reign, Dlo Brown, Stacey Keibler, Torrie Wilson, Trish Stratus, Dawn Marie, Sable, Al Snow, Big Bossman, Billy Gunn, Roaddogg, Viscera, Big Daddy V, Paul London, Spike Dudley, Brother Ray, Bubba Ray Dudley, Devon Dudley, D-Von Dudley, Brother D-Von, Big Dick Dudley, Chris Benoit, Dean Malenko, Perry Saturn, Mideon, Samoa Joe, AJ Styles, Curry Man, Christopher Daniels, Shark Boy, Kaz, Jimmy Rave, Lance Rock, Christy Hemme, Owen Hart, Jim Neidhart, X-Pac, 1-2-3 Kid, Sean Waltman, Razor Ramon, Scott Hall, Hulk Hogan, David Flair,  Stephanie McMahon, Linda McMahon"; 
	
	// 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);

