﻿
// These functions are used for listboxes add, remove, removeAll and addAll (start)
        
  function clearlistbox(lb)
  {//Used to clear of the items in the given listbox.
    try
    {
        for (var i=lb.options.length-1; i>=0; i--)
        {
            lb.remove(i);
        }
        lb.selectedIndex = -1;
    }
    catch(e)
    {
    }
  }
  
  function backToUnsubscribeMethod(e) { $(e).click(function() { window.history.back(); });}


  function BreakValidation(Action,SelectedValue,lstFrom,lstTo)
  {//If user selects "Break" option in the listbox - Handled Here.
  try
  {
      if(Action == "Add")
      {
          if(SelectedValue == "BREAK")
          {
             var retValue = confirm("Are you sure you want to insert BREAK? This will not show any RightHandFreeText Widget on page.");
             if(retValue)
             {
                RemoveALL(lstFrom,lstTo);
                for(i=0;i<lstFrom.options.length;i++)
                {
                    if(lstFrom.options[i].value == "BREAK")
                    {
                        var optionText = lstFrom.options[i].text;
                        var optionVal = lstFrom.options[i].value;
                        var objOption = new Option(optionText, optionVal);
                        lstTo.options[lstTo.options.length] = objOption;
                        lstFrom.remove(i);
                        return;
                    }
                }
             }
             else
             {
                for(i=0;i<lstTo.options.length;i++)
                {
                    if(lstTo.options[i].value == "BREAK")
                    {
                        var optionText = lstTo.options[i].text;
                        var optionVal = lstTo.options[i].value;
                        var objOption = new Option(optionText, optionVal);
                        lstFrom.options[lstFrom.options.length] = objOption;
                        lstTo.remove(i);
                        return;
                    }
                }
             }
          }
      }
      else if(Action == "AddALL")
      {
        for(i=0;i<lstTo.options.length;i++)
        {
            if(lstTo.options[i].value == "BREAK")
            {
                var optionText = lstTo.options[i].text;
                var optionVal = lstTo.options[i].value;
                var objOption = new Option(optionText, optionVal);
                lstFrom.options[lstFrom.options.length] = objOption;
                lstTo.remove(i);
            }
        }
      }  
    }
    catch(e)
    {
    }  
  }



        
   function Add(lstFrom,lstTo)
    {//To add an item from source listbox to destination listbox.
        try
        {
            var selIndex = lstFrom.selectedIndex;
            var optionText = "";
            var optionVal = "";
            var optionIndex = "";
            
            if(lstFrom.selectedIndex == -1)
            {
                alert('Please select atleast one record to Add');
                return false;
            }
            else if(lstTo.innerHTML.indexOf("BREAK") != -1)
            {
                alert('Please remove BREAK from the listbox, then try to add a item.');
                return false;
            }
            else if(lstTo.innerHTML.indexOf(lstFrom.options[selIndex].value) != -1)
            {
                alert('You cannot add duplicate records');
                return  false;
            }
            else 
            {
                optionText = lstFrom.options[selIndex].text;
                optionVal = lstFrom.options[selIndex].value;
                optionIndex = lstTo.options.length;
                objOption = new Option(optionText, optionVal);
                lstTo.options[optionIndex] = objOption;
                lstFrom.remove(selIndex);
            }

            BreakValidation("Add",optionVal,lstFrom,lstTo);
            return true;
        }
        catch(e)
        {
        }
    }
    
    
    
    function AddALL(lstFrom,lstTo)
    {// To add all items from the source listbox to destination listbox.
        try
        {
            var lstFrom = document.getElementById(fromID);
                var lstTo = document.getElementById(toID);
                for(var i=0;i<lstFrom.options.length;i++)
                {
                    selIndex = i;   
                    var optionText = lstFrom.options[selIndex].text;
                    var optionVal = lstFrom.options[selIndex].value;
                    var optionIndex = lstTo.options.length;
                    var objOption = new Option(optionText, optionVal);
                    lstTo.options[optionIndex] = objOption;
                }
                clearlistbox(lstFrom);
                BreakValidation("AddALL","",lstFrom,lstTo);
        }
        catch(e)
        {
        }
    }
    function Remove(lstFrom,lstTo)
    {//To remove an item from the destination listbox and restore to source listbox.
        try
        {
            if(lstTo.selectedIndex == -1)
            {
                alert('Please select atleast one record to Remove');
                return false;
            }
            else if(lstTo.options[lstTo.selectedIndex].value == "")
            {
                alert('Please select a valid one record to Remove');
                return false;
            }
            else
            {
                var selIndex = lstTo.selectedIndex;
                var optionText = lstTo.options[selIndex].text;
                var optionVal = lstTo.options[selIndex].value;
                var optionIndex = lstFrom.options.length;
                var objOption = new Option(optionText, optionVal);
                lstFrom.options[optionIndex] = objOption;
                lstTo.remove(selIndex);
            }
            return true;
         }
        catch(e)
        {
        }
    }
    
    function RemoveALL(lstFrom,lstTo)
    {// To remove all items from the destination listbox and restore to source listbox.
        try
        {
            for(var i=0;i<lstTo.options.length;i++)
            {
                selIndex = i;
                var optionText = lstTo.options[selIndex].text;
                var optionVal = lstTo.options[selIndex].value;
                var optionIndex = lstFrom.options.length;
                var objOption = new Option(optionText, optionVal);
                lstFrom.options[optionIndex] = objOption;
            }
            clearlistbox(lstTo);
        }
        catch(e)
        {
        }
    }
   

       function SaveInHidden(HiddenFieldID,lstFrom,lstTo)
       {//Retreived all values from the source and the destination listboxs.
           try
           {
                var indicator = "";
                for(i=0;i<lstFrom.options.length;i++)
                {
                    document.getElementById(ListboxesDataID).value += lstFrom.options[i].text+"~"+lstFrom.options[i].value+";"
                }
                document.getElementById(ListboxesDataID).value = document.getElementById(ListboxesDataID).value.substring(0,(document.getElementById(ListboxesDataID).value.length-1))+"|";
                
                for(i=0;i<lstTo.options.length;i++)
                {
                    indicator = "1";
                    document.getElementById(ListboxesDataID).value += lstTo.options[i].text+"~"+lstTo.options[i].value+";";
                }
                if(indicator == "1")
                {
                    document.getElementById(ListboxesDataID).value = document.getElementById(ListboxesDataID).value.substring(0,(document.getElementById(ListboxesDataID).value.length-1));
                }
            }
            catch(e)
            {
            }
       } 
    
// These functions are used for listboxes add, remove, removeAll and addAll (end)
