	/* $Id$ */
	
	function selectReplacement(obj) 
	{
		obj.className += ' replaced';
		var ul = document.createElement('ul');
		ul.className = 'selectReplacement';
		var opts = obj.options;
		var selectedOpt = (!obj.selectedIndex) ? 0 : obj.selectedIndex;
		for (var i=0; i<opts.length; i++) 
		{
			var li = document.createElement('li');
			var txt = document.createTextNode(opts[i].text);
			li.appendChild(txt);
			li.selIndex = i;
			li.selectID = obj.id;
			li.onclick = function() 
								{
									selectMe(this);
								};
			if (i == selectedOpt) 
			{
				li.className = 'selected';
				li.onclick = function() 
								{
		  							this.parentNode.className += ' selectOpen';
		  							this.onclick = function() 
															{
																selectMe(this);
															};
								};
			}
		
			if (window.attachEvent) 
			{
				li.onmouseover = function() 
									{
		  								this.className += ' hover';
									};
				li.onmouseout = function() 
									{
										this.className = this.className.replace(new RegExp(" hover\\b"), '');
									};
			}
			ul.appendChild(li);
		}
		
		obj.onfocus = function() 
						{
							ul.className += ' selectFocused';
						};
		
		obj.onblur = function() 
						{
							ul.className = 'selectReplacement';
						};
		
		obj.oc = obj.onchange;
		
		obj.onchange = function() 
						{
							var idx = this.selectedIndex;
						};
						
//		obj.onkeypress = obj.onchange;
		obj.parentNode.insertBefore(ul,obj);
	}
	
	function selectMe(obj) 
	{
		var lis = obj.parentNode.getElementsByTagName('li');
		for (var i=0; i<lis.length; i++) 
		{
			if (lis[i] != obj) 
			{
				lis[i].className='';
				lis[i].onclick = function() 
								{
					  				selectMe(this);
								};
			} 
			else 
			{
				setVal(obj.selectID, obj.selIndex);
				obj.className='selected';
				obj.parentNode.className = obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
				obj.onclick = function() 
								{
									obj.parentNode.className += ' selectOpen';
									this.onclick = function() 
													{
														selectMe(this);
													};
								};
			}
		}
	}
	
	function setVal(objID,val) 
	{
		var obj = document.getElementById(objID);
		obj.selectedIndex = val;
		if(obj.oc)
		{
			obj.oc.call(obj);
		}
	}
	
	function setForm() 
	{
		var s = document.getElementsByTagName('select');
		for (var i=0; i<s.length; i++) 
		{
			if(s[i].className == 'replaceable')
			{
				selectReplacement(s[i]);
			}
		}
	}
	
	function gotoPage(obj)
	{
		var opts = obj.options;
		var newpage = opts[obj.selectedIndex].value;
		if(newpage != 'null')
		{
			document.location.href = newpage;
		}
	}
	
	window.onload = function() 
					{
						(document.all && !window.print) ? null : setForm();
					};
					