
function selectReplacement(obj) {
  obj.className += ' replaced';
  var ul = document.createElement('ul');
  ul.className = 'selectReplacement';
  ul.id = "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';
        
        setTimeout(function() {
          document.onclick = function() {
           selectClose();
          }
        },10);
        
        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.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);
        };
        
        setTimeout(function() {
          document.onclick = function() {
            selectClose();
          }
        },10);
                

      };
    }
  }
}

function setVal(objID,val) {
  var obj = document.getElementById(objID);
  obj.selectedIndex = val;
}

function setForm() {
  var s = document.getElementsByTagName('select');
  for (var i=0; i<s.length; i++) {
    selectReplacement(s[i]);
  }
}

function selectClose() {
  var selected = $$("li.selected").first();
  //var ul = $('selectReplacement');
  //ul.className="selectReplacement";
  document.onclick = null;
  selectMe(selected);      
}


/*window.onload = function() {
  (document.all && !window.print) ? null : setForm();
};*/
