

this.searchfield = function(){
	
	var id = "searchfield";
	var defaultText = "търсене...";	
	var suggestion = true;
	var suggestionText = "компонент,модул,бот,плъгин,джумла,joomla,oscommerce,оскомерс,изработка на меню,дизайн,уеб дизайн,ueb dizain,uebdizain,3D Web Design,Web Design,zencart,зенкарт,Seo Optimization,SERP,оптимизация на сайт,изработка на сайт,динамичен сайт,Seo оптимизация,Seo оптимизация Google,Seo оптимизация за Google,component,bot,plugin,module,гугъл търсачка,търсачка гугъл,евтино,безплатно,Free,Google търсачка,търсачка Google,Avtorentacar,пари,печелене на пари,монетаризация,Adsense,интериорен дизайн,вътрешен дизайн,мода дизайн,Fashion Design,темплейти,дизайн мебели,моден дизайн,мебелен дизайн,изработка на електронен магазин,изработка на онлайн магазин,изработка електронен магазин,изработка онлайн магазин,създаване на сайт,как се прави сайт,как се прави уеб сайт,как да си направя сайт,как да си направя уеб сайт,как се прави Seo,как да си направя дизайн,как се прави уеб дизайн,как се прави темплейт,поръчка на сайт,ефекти за сайт,ефекти за сайтове,поръчки сайтове,поръчка на сайт,отстъпки сайт,блог,промоция на сайт,професионална разработка,PHP,Text Link Ads,TLA,Download,Design,CSS,Custom Design,Ajax,Web 2.0,Keywords,Description,Title,Heading,BlackList,WhiteList,Black Hat,White Hat,Gray Hat,Robots.txt,уеб сайт имоти,уеб сайт хотел,новинарски сайт,изработка новинарски сайт,агрегатор,класиране на първо място в Google,класиране на първа страница на Google,на първо място в Google,на първа страница на Google,първо място в Google,първа страница на Google,класиране на първо място в гугъл,класиране на първа страница на гугъл,на първо място в гугъл,на първа страница на гугъл,на първо място в гоогле,на първа страница на гоогле,как се прави сайт,OnPage Seo,OffPage Seo, колко струва оптимизация,колко струва дизайн,колко струва seo,колко струва уеб сайт,изработване интернет сайтове,изработване уеб сайтове, дизайн, уеб дизайн, уебдизайн, уеб, уеб сайт, динамичен сайт, динамични сайтове, keywords, rss, rss новини, news, Спорт, seo, world, България, entertainment, новини, блог, Любопитно, Бизнес, демо, времето, feeds, web 2.0, PICLENS, 3D, Fullscreen, business, фийд, health, feeds, модул, u.s., социални, sports, безплатно, top stories, politics, блогосфера, директория, blog, dao, info, Музика, търговия, включите, парфюми, такси, bulgaria, social bookmark, интернет, svejo.net,  3rdnews.info, beauty, google, блогове, полезно, реклама, Последни, валутни курсове, svejo, dao.bg, flickr, мрежи, сайтове, Банско, Футбол, europe, photo, standart news, taxi, София, ping.bg, снимки, видео, sport, margin, електронен, фрий, wordpress, youtube, велосипеди, Транспорт, general, курсове, фраза, obama, борси, агрегатор, announced, reuters, shing, Враца, жена, dnevnik.bg, фитнес, mortgages, reality, равносметка, Drag, думи, прочетете, height, Стара Загора, филми, world news, bluray, лиценз, gadget, миксове, novavizia, cbsnews.com, маркетинг, yahoo, упътване, фийдовете, size, api, gadgets, dmoz, изображения, популярни, photograph, blogging, блогът, minutes, people, Креатив, Имоти, софтуер, seocontest2008, microsoft, валути, индекси, коментари, ПИБ, usb, хостинг, хост българия, adwords, feedburner, февруари, фийдове, seodao, widget, световен, картинки, bookmarks, blogspot, phone, spots, Баскетбол, Други, електронен магазин, Тенис, Гледна точка, Красиво, врачки, списание, Свежо, сайт, фото, четец, онлайн магазин, Момичета, php, топ новини, всички, softvizia.com, weather, хотел, гласуване, prints, външен вид, възможности, Потребителски стоки, блогъри, matt, weblog, advertisement, bmx, social, photos, hotels, Хокей, Образование, Коментар, линкове, bulgarian, online, notrial info, експеримент, english, български, телевизия, хороскоп, таксиметров, jobtiger, Индустрия, Фото шеги, Интересно, evropa.dnevnik.bg, mp3, wma, сувенири, Франция, Редактори, e-commerce, футболни прогнози, фондове, washington post, превод, книги, представления, сцена, визия, Испания, Балкани, БНАП, емисия, модули, ефекти, цени, Помпи, Хумор, Музикални, windows, struvasi.com, Германия, оптимизация, travel, gsm, bansko, pocket, калкулатор, торент, анализи, превозвачи, Евро 2008, prison break, развитие, blogs, web studio, Главни новини, portable, smartphone, секция, модни, добавки, валутни, dvdrip, xvid, genre, game, economy, mail, dvd, e-vestnik.bg, Инвеститор, БНБ, megafon.capital.bg, клипове, price, Европа, САЩ, btv, absolute link, accessibility, address bar, affordance, alt text, alt tag, anchor, animated GIF, anti-alias, applet, assumed knowledge, authoring, automagically, autoresponder, back end/front end, backup, bandwidth, banner ad, banner blindness, belt-and-suspenders, bitmap, blog, blogger, blogging, bookmark, breadcrumb, broadband, browser, cache, cached files, call to action, Cascading Style Sheets , chatroom, chrome, click-through rate, client-side, server-side, closure, compatibility mode, data compression, content management system , contextual menu, convergence, cookie, cost-per-clickthrough, cost-per-thousand, crawler, cross-browser compatibility, cybersquatter, deep-linking, default, degrade gracefully, deprecated, design pattern, directory, disjointed rollover, dither, div, div-i-tis, divitis, document type declaration, doctype, document type definition, Domain Name System, DNS server, domain name, DomaiNZ, doorway/gateway page, dots-per-inch, download, Dublin Core metadata, dynamic HTML, e-commerce, email, element, encryption, favicon.ico, FTP client, firewall, Fireworks, Flash, Flash Generator, flow chart, fold, above-the-fold, footer navigation, form, folksonomy, frame, frameset, front end, back end, gateway page, global navigation, granularity, Graphic Interchange Format, Graphical User Interface, hack, handle, haptics, hexadecimal colours, hits, host, hosting, hotspot, HTML markup, HTML-text, hyperlink, iframes, i-mode, image map, impression, include, information architecture, information foraging, initialism, integration, interactive television, interface, internet, interstitial, intranet, Internet Protocol, IP address, IP number, JavaScript, Joint, label, landing page, legacy content, link: absolute, relative, root, link farm, link rot, definition, ordered, unordered, listserv, logfiles, logfile analysis, look-and-feel, lossless compression, lossy compression, macron, mailing lists, markup, meta element, description, meta description, meta tag, mine-sweeping, MP3, MySQL, natural language, navigation, open source, optimise, optimisation, PageRank, PR, design pattern, perceived affordance, phishing, web portal, pixel, plug-in, pop-up window, pop-under, prosumer, QuickTime, quirks mode, reciprocal links, referrer, referrer log, relative link, robot, robots file, robots.txt, rollover, disjointed rollover, root, root directory, root link, scan, scanning, schematic, SCM, SCP, search engine, search engine marketing, search engine optimisation, Section 508, semantic markup, server, session, session tracking, Shockwave, shopping-cart, shortcut icon, site feed, sitemap, smart tags, sniffer, spam, spim, spider, splash page, splash screen, spyware, standardista, standards-compliant/strict mode, status bar, sticky, streaming, streaming media, stylesheet, system font, tags, tags/tagging, target, template, top-level navigation, topic path, traffic, transform gracefully, transparent GIF, trackback, typosquatter, Unicode, uploading, usability, user session, code standards, form input, vector, vector-based file, version control, viral marketing, virus, visual editor, web, Web 2.0, web accessibility, web-authoring, web browser, web font, typeface, web-log, web server logs, websafe colours, palette, web standards, WebTV, wireframe, Worldwide Web, XML schema"; 

	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);

