function selectReplacement(obj) {
      // append a class to the select
      $(obj).addClassName('replaced');
      // create list for styling
      var divSelect = document.createElement('div');
      $(divSelect).addClassName('divSelectReplacement');
      var ul = document.createElement('ul');
      $(ul).addClassName('selectReplacement');
      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.val = opts[i].value;
		li.relativeSelect = $(obj);
		li.relativeOption = opts[i];
        li.selectID = obj.id;
        li.onclick = function() {
          selectMe(this);
        }
        if (i == selectedOpt) {
          $(li).addClassName('selected');
          li.onclick = function() {
           $(this.parentNode).addClassName('selectOpen');
            this.onclick = function() {
              selectMe(this);
            }
          }
        }
        divSelect.onclick = function() {

        	if($(li).getStyle('display') == 'block')
        	{
        		$(ul).removeClassName('selectOpen');
        	}
        	else
        	{
        		$(ul).addClassName('selectOpen');
        	}
        }
		if(i == 0){	
          $(li).addClassName('firstElement');
		  divSelect.appendChild(txt);	
		}
        if (window.attachEvent) {
          li.onmouseover = function() {
            $(this).addClassName('hover');
          }
          li.onmouseout = function() {
              $(this).removeClassName('hover');
          }
        }
        if(i != 0)
        {
        	ul.appendChild(li);
        }
      }
      // add the input and the ul
      obj.parentNode.appendChild(divSelect);
      obj.parentNode.appendChild(ul);
    }
    function selectMe(obj) {
	  var opts = obj.relativeSelect.options;
      for (var i=0; i<opts.length; i++) {
        opts[i].selected = false;
      }
	  obj.relativeOption.selected = true;
	  
      var lis = obj.parentNode.getElementsByTagName('li');
      for (var i=0; i<lis.length; i++) {
        if (lis[i] != obj) { // not the selected list item
          $(lis[i]).removeClassName('selected');
          lis[i].onclick = function() {
            selectMe(this);
          }
       } else {
          setVal(obj.selectID, obj.selIndex);
          $(obj).addClassName('selected');
          $(obj.parentNode).removeClassName('selectOpen');
          obj.onclick = function() {
            $(obj.parentNode).addClassName('selectOpen');
            this.onclick = function() {
              selectMe(this);
            }
          }
        }
      }
      if(obj.relativeOption.value != -1){
      	if(obj.relativeSelect.readAttribute('onChange') != "" && obj.relativeSelect.readAttribute('onChange') != null)
      	{
      		if(Prototype.Browser.IE){
				obj.relativeSelect.readAttribute('onChange').apply();
			}else{
				eval(obj.relativeSelect.getAttribute('onChange'));
			}
      	}
      	else
      	{
	  		obj.relativeSelect.up('form').submit();
      	}
	  }
    }
    function setVal(objID, selIndex) {
      var obj = document.getElementById(objID);
      obj.selectedIndex = selIndex;
    }
    function setForm() {
      var s = document.getElementsByTagName('select');
      for (var i=0; i<s.length; i++) {
        selectReplacement(s[i]);
      }
    }
    function closeSel(obj) {
      // close the ul
    }
    /*window.onload = function() {
      (document.all && !window.print) ? null : setForm();
    }*/
