

   function multiSelectHandler( form_name, left_panel_name, right_panel_name )
	{

      this.form_name = form_name;
		this.left_panel_name = left_panel_name;
		this.right_panel_name = right_panel_name;



      this.init = function()
		{
		   var _this = this;
			$('[name=' + this.form_name + '] [name=' + this.left_panel_name + ']' ).bind("dblclick", function(){
		      _this.addSelectedElement();
		   });

         $('[name=' + this.form_name + '] [name=' + this.right_panel_name + ']' ).bind("dblclick", function(){
            _this.removeSelectedElement();
         });
		}



      this.addSelectedElement = function()
      {
	      var list1 = window.document.forms[this.form_name][this.left_panel_name];
	      var list2 = window.document.forms[this.form_name][this.right_panel_name];
	      var len = list2.length;
	      for(var i = 0; i < list1.length; i++)
	      {
	         if((list1.options[i] != null) && (list1.options[i].selected))
	         {
	            var found = false;
	            for(var count = 0; count < len; count++)
	            {
	               if(list2.options[count] != null)
	               {
	                  if(list1.options[i].text == list2.options[count].text)
	                  {
	                     found = true;
	                     break;
	                  }
	               }
	            }
	            if(found != true)
	            {
	               list2.options[len] = new Option(list1.options[i].text, list1.options[i].value);
	               list2.options[len].selected = true;
	               len++;
	            }
	         }
	      }
	   }



      this.removeSelectedElement = function()
      {
	      y = document.forms[this.form_name][this.left_panel_name];
	      x = document.forms[this.form_name][this.right_panel_name];
	      for(i = x.length-1; i>=0; i--)
	      {
	         if(x.options[i].selected)
	         {
	            x.options[i].selected=false;
	            removeElement(x.options,i);
	         }
	      }
	   }



      this.removeElementByIndex = function( index )
		{
			x = document.forms[this.form_name][this.right_panel_name];
			removeElement( x.options,index );
		}



	   function removeElement( array, index )
	   {
	      for(i=index; i<array.length-1;i++)
	      {
	         array[i].value = array[i+1].value;
	         array[i].text = array[i+1].text;
	      }
	      array.length-=1;
	   }



	   this.selectSubmitElements = function()
	   {
	      var destList = document.forms[this.form_name][this.right_panel_name];
	      for(var i = 0; i < destList.length; i++)
	      {
	         destList.options[i].selected = true;
	      }
	   }



      this.init();
	}