/*
 coded by Kae - kae@verens.com
 http://verens.com/archives/2004/09/03/multiselect
 Improvements by Cameron rAy Mott - changed the check for a multiple field to check for brackets at the end of the name instead
 I'd appreciate any feedback.
 You have the right to include this in your sites.
 Please retain this notice.
*/

function addEvent(el,ev,fn){
 if(el.attachEvent)el.attachEvent('on'+ev,fn);
 else if(el.addEventListener)el.addEventListener(ev,fn,false);
}

addEvent(window,'load',buildMultiselects);

function buildMultiselects(){
 do{
  found=0;
  a=document.getElementsByTagName('select');
  for(b=0;b<a.length,!found;b++){
   if(a[b]==null)break;
   if (a[b].name.substring(a[b].name.length-2, a[b].name.length) == "[]"){
//   if(a[b].size>1){
    found=1;
    disabled=(a[b].disabled)?1:0;
    width=a[b].offsetWidth;
    height=a[b].offsetHeight;
    el=document.createElement('div');
    el.style.overflow='auto';
    el.style.width=width+"px";
    el.style.height=height+"px";
    el.style.border="1px solid #000";
    el.style.borderColor="#333 #555 #555 #333";
    c=a[b].getElementsByTagName('option');
    for(d=0;d<c.length;d++){
     el2=document.createElement('span');
     el2.style.display="block";
     el2.style.border="1px solid #eee";
     el2.style.borderWidth="1px 0";
     el2.style.font="10px arial";
     el2.style.lineHeight="10px";
     el2.style.paddingLeft="20px";
     el3=document.createElement('input');
     el3.type="checkbox";
     if(c[d].selected){
      el3.checked="checked";
      el3.defaultChecked=true;
     }
     if(disabled)el3.disabled="disabled";
     el3.value=c[d].value;
     el3.style.marginLeft="-16px";
     el3.style.marginTop="-2px";
     el3.name=a[b].name;
     el4=document.createTextNode(c[d].innerHTML);
     el2.appendChild(el3);
     el2.appendChild(el4);
     el.appendChild(el2);
    }
    a[b].parentNode.insertBefore(el,a[b]);
    a[b].parentNode.removeChild(a[b]);
   }
  }
 }while(found);
}
