﻿    function addOption(selectionName, targetName, hiddenFieldName) {    
      var notSelectableIndex = 0;
      var z = document.getElementById(selectionName); 
      if (z.selectedIndex != notSelectableIndex) {            
        var display = z.options[z.selectedIndex].text;            
        var option = z.options[z.selectedIndex].value;            
        var y = document.createElement('option');            
        y.text = display;            
        y.value = option;            
        var x = document.getElementById(targetName);      
        try {                
        x.add(y,null);
        }            
        catch(ex) {                
        x.add(y);
        }            
          
        // Set hidden field  
        if (hiddenFieldName)
        {
          var h = document.getElementById(hiddenFieldName);            
          h.value = h.value+option+',';
        }

        if(z.selectedIndex!= 0)
        {
          z.remove(z.selectedIndex);
          z.selectedIndex = notSelectableIndex;
        }
       }    
      }    
   
      function removeAllOptions(selectionName, targetName, hiddenFieldName) 
      {		      
        var targetList = document.getElementById(targetName);
        while (targetList.length > 0)
        {
          targetList.selectedIndex = 0;
          removeOption(selectionName, targetName, hiddenFieldName); 
        }
      }

       function removeOption(selectionName, targetName, hiddenFieldName) 
       {		
        try 
        {			
          var x = document.getElementById(targetName);	    
          if (x.selectedIndex != -1 ) 
          {		        
            // Remove from hidden field
            for(i=x.length-1; i>=0; i--)
            {
              if(x.options[i].selected)
              {
                //set hidden field
                if (hiddenFieldName)
                {
                  var h = document.getElementById(hiddenFieldName);	        
                  h.value = h.value.replace(x.options[i].value+',',',');//miska
                  h.value = h.value.replace(','+x.options[i].value+',',',');
                }
                var q = document.getElementById(selectionName);
                var display = x.options[i].text;            
                var option = x.options[i].value;            
                var y = document.createElement('option');            
                y.text = display;            
                y.value = option;                    
                try {                
                q.add(y,null);
                }            
                catch(ex) {                
                q.add(y);
                }  
                x.remove(i);     
              }
            }
            
            //x.options[0].text = ' '+(x.length-1)+' valittuna ';		        
            x.selectedIndex = 0;
          		    
          }		
        }		
        catch (err) {			

        }    
       }
       
       function setVisibility(targetName, resultAreaName, emptyAreaName)
       {
          var target = document.getElementById(targetName);
          var resultArea = document.getElementById(resultAreaName);
          var emptyArea = document.getElementById(emptyAreaName)
          if(target.length>0)
          {
            if('none' == resultArea.style.display)
            {
              resultArea.style.display = '';
              if (emptyArea)
                emptyArea.style.display = 'none';
            }
          }
          if(target.length==0)
          {
            resultArea.style.display = 'none';
            if (emptyArea)
              emptyArea.style.display = '';
          }
       }

