this.attn = function(){

	var id = "attn";
	
	var defaultText = "";	
	
	var suggestion = true;
	
	var suggestionText = "Sandro Botticelli, Canaletto (Giovanni Antonio Canal), Carlo Francesco Nuvolone, Leonardo da Vinci, Michelangelo, Raphael (Raffaello Sanzio), Rembrandt Van Rijn, Peter Paul Rubens, Titian (Tiziano Vecellio), J.M.W. Turner, Sir Anthony Van Dyck, Fernando Botero, Cladio Bravo, Feng Zhengjie, Fang Lijun, Luo Brothers, He Sen, Georges Braque, Rembrandt Bugatti, Alexander Calder, Paul Cezanne, Lynn Chadwick, Marc Chagall, Edgar Degas, Kees van Dongen, Jean Dubuffet, Henri Fantin-Latour, Richard Guino, Oswald Herzog, Moise Kisling, Gustav Klimt, Fernand Leger, Tamara Lempicka, René Magritte, Henri Matisse, Joan Miro, Amedeo Modigliani, Claude Monet, Pablo Picasso, Camille Pissarro, Pierre August Renoir, Auguste Rodin, Egon Schiele, Alfred Sisley, Vincent Van Gogh, Louis Valtat, Emile Vernon, Maurice de Vlaminck, Francis Bacon, John Baldessari, Jean Michel Basquiat, Jim Dine, Lucio Fontana, Alberto Giacometti, Ori Gersht, Keith Haring, Damien Hirst, Hans Hoffman, Patrick Hughes, Robert Indiana, Jasper Johns, Alex Katz, Willem de Kooning, Axel Krause, Roy Lichtenstein, Igor Mitoraj, Henry Moore, Sarah Morris, Robert Motherwell, Takashi Murakami, Julian Opie, Marc Quinn, Tal R, Robert Rauschenberg, Gerhard Richter, George Rickey, Bridget Riley, Mark Rothko, Cy Twombly, Manolo Valdes, Andy Warhol, Tom Wesselmann, Botticelli, Giovanni Antonio Canal, Nuvolone, da Vinci, Rembrandt, Rubens, Vecellio, Turner, Van Dyck, Botero, Bravo, Zhengjie, Lijun, Braque, Bugatti, Calder, Cezanne, Chadwick, Chagall, Degas, van Dongen, Dubuffet, Fantin-Latour, Guino, Herzog, Kisling, Klimt, Leger, Lempicka, Magritte, Matisse, Miro, Modigliani, Monet, Picasso, Pissarro, Renoir, Rodin, Schiele, Sisley, Van Gogh, Valtat, Vernon, Vlaminck, Bacon, Baldessari, Basquiat, Dine, Fontana, Giacometti, Gersht, Haring, Hirst, Hoffman, Hughes, Indiana, Johns, Katz, de Kooning, Krause, Lichtenstein, Mitoraj, Moore, Morris, Motherwell, Murakami, Opie, Quinn, R, Rauschenberg, Richter, Rickey, Riley, Rothko, Twombly, Valdes, Warhol, Wesselmann, Other, Undefined"; 
	

	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",attn);

