﻿this.searchfield = function(){
	var id = "searchfield";
	var defaultText = "Кто ищет, тот найдет...";	
	var suggestion = true;
	var suggestionText = "Никита группа, NikitA группа, Прэй Проджект, Pray Project, хиты 2011, Петр Налич, Peter Nalitch, K-Maro, Shakira, Шакира, Sophie Ellis-Bextor, Софи Эллис-Бекстор, Mobb Deep, Митя Фомин, Mitya Fomin, Chicane, Чикейн, Armin van Buuren, Армин ван Бюрен, Katy Perry, Кэти Перри, Benny Benassi, Бенни Бенасси, хит-парад, радио хиты, Obie Trice, Оби Трайс, Eminem, Эминем, Timbaland, Тимбалэнд, 8Ball and MJG, T.I., Chamillionaire, Serdar Ortac, Daddy Yankee, Дэдди Янки, DJ Khaled, B.o.B, Usher, Ашер, Агата Кристи, Faithless, Фейтлес, Christina Aguilera, Кристина Агилера, Enrique Iglesias, Энрике Иглесиас, Kylie Minogue, Кайли Миноуг, Ludacris, Лудакрис, Хиты энерджи, радио Energy, Energy радио, DJ Tiesto, диджей Тиесто, Stromae, Стромае, Drake, Jamie Foxx, Mary J. Blige, Ne-Yo, Sam Obernik, Метод, Metod, Rihanna, Рианна, Jay-Z, Бьянка, Bjanka, 2Pac, музыка для стриптиза, песни для стриптиза, стриптиз музыка, Bonobo, Анжелика Варум, Beyonce, Бейонс, Avril Lavigne, Аврил Лавин, Мираж, Lil Wayne, Лил Вайн, Amel Bent, Амель Бент, Schiller, Шиллер, Lady Gaga, Леди Гага, Toni Braxton, Тони Брекстон, Chris Brown, Крис Браун, Ак-47, Ака-47, Keri Hilson, Кери Хилсон, Limp Bizkit, Лимп Бизкит, R. Kelly, Onyx, Оникс, Trance In Motion, Young Jeezy, Guf, Гуф, Ноггано, новейшие хиты, музыка 2010, Belinda, Madonna, Мадонна, Полина Гагарина, Nightwish, Найтвиш, турецкие хиты, турецкая музыка, Akon, Aventura, Soulja Boy, Gucci Mane, Sugababes, Lil Scrappy, Ранетки, Snoop Dogg, Tarkan, Таркан, Lil Jon, Кеша, KeSha, Lostprophets, Duran Duran, Hot Chocolate, Lily Allen, Paul Wall, Лика Стар, клубный сборник, музыка клубная, Paul Oakenfold, Nelly Furtado, Inna, Various artists, французский рэп, хиты франции, рэп французский, хиты 2010, Diam's, Сплин, Турецкий рок, рок турции, Booba, Teoman, Ugur Arslan, Sezen Aksu, Soprano, Gece Yolculari, Admiral T, Yuksek Sadakat, Kery James, Redd, Demir Demirkan, Ciara, Джастин Тимберлейк, Justin Timberlake, Orelsan, Zaho, 113, Jeremih, Джереми, Антистресс Медитация, Медитация Антистресс, Rafet el Roman, Hadise, Mirkelam, Zeynep Mansur, La Fouine, Hande Yener, Хандэ Енэр, Niran Unsal, Ниран Унсал, Altay, Алтай, Bendeniz, Бендениз, Black Eyed Peas, Emre Altug, Mafia K'1 Fry, Mustafa Sandal, Мустафа Сандал, Rohff, Planete Rap";
	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);

