
this.searchfield = function(){

	var id = "searchfield";
	/*
	var r_text = new Array ();
	r_text[0] = "Pizza";
	r_text[1] = "ABN AMRO";
	r_text[2] = "Airport enquiries";
	r_text[3] = "Citi Bank";
	r_text[4] = "Vodafone";
	r_text[5] = "PVR Cinemas";
	r_text[6] = "DU South Campus";
	r_text[7] = "Dominos";
	var i = Math.floor(8*Math.random())
	var defaultText = r_text[i];	
	*/

	var defaultText = "";	
	var suggestion = true;
	var suggestionText = "Airport enquiries, Railway enquiries, Roadways enquiries, Art Galleries, India Contemporary Art, Art Heritage, Amercan Centre, Teen Murti Auditorium, Italian Cultural Centre, Pyare Lal Bhawan, Shri Ram Bhartiya Kala Kendra, Ambedkar Autitotium, Aiims, Moolchand Hospital, Blood Bank Organisation, Batra Hospital, Holy Family, Police, Ambulance, Safdarjung Hospital, Sir Ganga Ram Hospital, AIIMS (EMERGENCY), Indraprastha Apollo Hospital, Lai Bahadur Shashtri Hospital, Blood Banks, Max Medicentre, Lalit Kala Akademi, Delhi Music Society, Triveni Kala Sangam, Sangeet Natak Akedemi, Max Mueller Bhavan, Embassies, Foreign Missions, ATM, Citi Bank, ICICI Bank, State Bank Of India, Axis Bank, Bank of  America, ABN AMRO, Deutch Bank, International Monetary Fund, Centurion Bank, Tata Indicom, Reliance, Vodafone, Airtel, Dolphin, MTNL helplines, Care India, International Committee of Red Cross, Japan International Cooperation, Carpet Export Promotion Council, Central Silk Board, Export Promotion Council, The State Trading Corporation of India, ITPO, Air Canada, Air France, Air Maurtitius, Air India, American Airlines, Austrian Airlines, British Airways, Emirates, Lufthansa, Pakistan International, Airport Exchange, Thai Airways, Air Decan, Jet Airways, Kingfisher Airlines, Pawan Hans Helicopters, Paramount Airways, Spicejet, Movie World, PVR Cinemas, PVR Sonia, Ritz, World of Wonder, Delhi Golf Club, Jawaharlal Nehru Stadium, Delhi Tennis Stadium, British Council library, Indian Institute of Tehnology, Nehru Memorial Library, Bhartiya Vidya Bhawan Library, Delhi School of Economics, DTC Call Center, Centralised Railway Enquiry, National Museusms, Archaeological Museam, Zakir Hussain Memorial Trust, National Gallery of Modern art, State Guest House, Luxury hotels, Hotels, Mughlai/Indian, Fast Food, Multi Cuisine, Pizza Hut, Nirulas, Barista Coffee Shop, Cafe Coffee Day, NGO, Foreign Language Classes, Colleges in Delhi, Medical Colleges, DU South Campus, Jamia Millia Islamia, Delhi University Hostels, Golf, Tennis, Cricket Update, Shooting, Cab Facilities, Places of worship, Books, Vessels, Toys, Shoes, Hospitals, Health, Odeon Cinema, Odyssey, Le Maridian, The Oberoi, Jaypee Hotel Siddharth, Raddisson Hotel, Vasant Continental, Oriental, Dominos, Urban Pind, Yo China, Waves Restaurant, Garam Masala, China Garden, Spirit Lounge & Bar, Kaffa, Rajdhani College, Ram lal anand College, Deshbandhu College, Faculty of Science, WUS Health Centre, Kirori Mal College, Rajiv Gandhi Cancer Institute, Call Delhi Cab, Yorks Hotel, Radisson Hotel, Rabindra Bhavan, Metro"; 
	
	// 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);

