var opened = 0;

function selectReplacement(obj) {
  obj.className += " replaced";
  var ul = document.createElement("ul");
  ul.className = 'selectReplacement';
  ul.onclick = function() {
    if(opened == 0) { this.className += " selectOpen"; thisOpened = 1; }
    else { this.className = this.className.replace(new RegExp(" selectOpen\\b"), ""); thisOpened = 0; }

    opened = thisOpened;
  }
  var opts = obj.options;
  for (var i=0; i<opts.length; i++) {
	var selectedOpt;
	if (opts[i].selected) {
	  selectedOpt = i;
	  break;
	} else {
	  selectedOpt = 0;
	}
  }
  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 = opts[i].index;
	li.selectID = obj.id;
	li.onclick = function() {
	  selectMe(this);
	}
	if (i == selectedOpt) {
	  li.className = "selected";
	  li.onclick = function() {
		this.parentNode.className += " selectOpen";
        opened = 1;
		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.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, selIndex) {
  var obj = document.getElementById(objID);
  obj.selectedIndex = selIndex;
}
function setForm() {
  var s = document.getElementById("searchCat");
  selectReplacement(s);
}
// Event Handlers
if (window.addEventListener) window.addEventListener("load",setForm,false);
else if (window.attachEvent) window.attachEvent("onload",setForm);