function selectReplacement(obj) {
  // append a class to the select
  obj.className += ' replaced';
  // create list for styling
  var ul = document.createElement('ul');
  ul.className = 'selectReplacement';
  ul.id= 'menuname';
  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';
  this.onclick = function() {
  if(this.value==-1){closeList (ul);}
  this.parentNode.className += ' selectOpen';
  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);
  }
  
//ul onmousehide function 
  ul.onmouseout = function(e) {
//alert(ul);
//if (!e) var e = window.event;

//var relTarg = e.relatedTarget || e.toElement;
//alert(relTarg.nodeName);
//if (relTarg.nodeName != 'LI'){
//closeList (ul);
//}
}
  
  
  // add the input and the ul
  obj.parentNode.appendChild(ul);
  }
  function selectMe(obj) {
  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].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() {
  if(this.parentNode.className=='selectReplacement selectOpen')
  {
  this.parentNode.className= this.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
  }else
  {
  this.parentNode.className += ' selectOpen';
  }
 }
  }
  }
  }
  }
  function setVal(objID, selIndex) {
  var obj = document.getElementById(objID);
  obj.selectedIndex = selIndex;
	if(obj.selectedIndex!=0)
	{
		frmsubmitsel(selIndex);
	//document.frmgroupsel.submit();
	}
 }
  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();
  }

// Close the list making the last selection visible as selected object
function closeList(obj) {
var lis = obj.getElementsByTagName('li');
for (var i=0; i<lis.length; i++) {
if (lis[i].className =='') { // not the selected list item
lis[i].className='';
lis[i].onclick = function() {
selectMe(this);
}
} else {
setVal(lis[i].selectID, lis[i].selIndex);
lis[i].className='selected';
obj.className = obj.className.replace(new RegExp(" selectOpen\\b"), '');
lis.onclick = function() {
obj.className += ' selectOpen';
this.onclick = function() {
selectMe(this);
}
}
}
}
}
document.onmousedown = function(e) {
//alert('in');
 // Normalize the event
e = GetEvent(e);

(e.target) ? el = e.target : el = e.srcElement;
//alert(el.nodeName);
//if (!e) var e = window.event;
//var relTarg = e.relatedTarget || e.toElement;
if (el.nodeName != 'LI'){
var ul = document.getElementById('menuname');
closeList (ul);
}
}




    /**
   2. *   Gets an event with all needed properties
   3. *   @param      e           event
   4. *   @return     event object
   5. */
    function GetEvent(e)
    {
        if(!e)
        {
           e               = window.event;
       }
    
       if(e.layerX)
       {
           e.offsetX       = e.layerX;
           e.offsetY       = e.layerY;
       }
    
       if(e.type == 'mouseover' && !e.relatedTarget)
       {
           e.relatedTarget     = e.fromElement;
       }
       else if(e.type == 'mouseout' && !e.relatedTarget)
       {
           e.relatedTarget     = e.toElement;
       }
    
       e.src               = e.srcElement || e.target;
       e.key               = e.keyCode || e.charCode;
    
       return e;
   }


