﻿// Author Karen Chakhmakhchyan 
// JScript File GroupListControl.js
///
// in case when will be buttons for control checkboxes in datagrids ("Select All", "Unselect All", "Invert Selection")
///
    function selectBoxes(combo, chIDs, chInfo, allK)
    {
        
        var ind = (combo.options[combo.selectedIndex].value);
        switch(ind)
        {
            case '1': // select all
                 selectAll(chIDs, chInfo, allK);
                 break;
            case '2': // unselect all
                 unselectAll(chIDs, chInfo, allK);
                 break;
            case '3':  // invert selection
                 invertSelection(chIDs,chInfo, allK);
                 break;
        }
    }
    // handle checkboxes's clicking in datagrids
    function GropuListCtrl_On_Check(checkbox, checkInfo, index, checkPKs, pk)
    {
        //document.getElementById('BasketCtrl1_ContentPanel').style.overflow = 'auto';
        
         // TODO in future remove checkPKs, pk parameters
        if(checkbox.checked)
        {
            checkInfo.value = checkInfo.value + index  + ",";
            if(pk != "null")
            {
                checkPKs.value = checkPKs.value + pk + ",";
            }
        }
        else
        {
            checkInfo.value = removeIndex(checkInfo, index);
            if(pk != "null")
            {
                checkPKs.value = removeIndex( checkPKs, pk);
            }
        }
  } 
  // remove checkbox index from checkboxes list in a datagrid
  function removeIndex(checkInfo, index)
  {
           var ind = checkInfo.value.indexOf(index);
           if(ind != -1)
           {
              return checkInfo.value.substring(0, ind) + checkInfo.value.substring(ind + (index.toString()).length + 1, checkInfo.value.length);
           }
  }
  // selectb all checkboxes in a datagrid
  function selectAll(chIDs, chInfo, allK, chInfoPKs, allPKs)
  {
        var chIDsvalue = chIDs.value.substring(0, chIDs.value.length - 1); 
        var allKvalue = allK.value.substring(0, allK.value.length - 1); 
        var allkeys = allKvalue.split(",");
        var ids = chIDsvalue.split(",");
        var allPKvalue;
        var allPKeys;
        //
        // TODO in future remove  chInfoPKs, allPKs params      
        if(allPKs != null)
        {
            allPKvalue = allPKs.value.substring(0, allPKs.value.length - 1); 
            allPKeys = allPKvalue.split(",");
        }
        //alert(chInfo.value + "   " + chInfoPKs.value );
        //
        var i = 0;
        //alert(ids.length);
       // while (ids[i] != undefined && ids[i] != null)
        for( i = 0; i < ids.length; i++)
        {
            //alert(ids[i] + '  ' + allkeys[i]);
            if(allkeys[i].length > 0)
            {
                if( chInfo.value.indexOf(allkeys[i]) == -1)
                    chInfo.value += allkeys[i] + ",";
            }
           if(allPKs != null)
           {
            if(allPKeys[i].length > 0)
            {
                if( chInfoPKs.value.indexOf(allPKeys[i]) == -1)
                    chInfoPKs.value += allPKeys[i] + ",";
            }
           }
            if(ids[i].length > 0)
            {
                var ch = document.getElementById(ids[i]);
                if(ch != null)
                    ch.checked = true;
            }
           
            //i++;
        }
        //alert( chInfo.value + "      " + chInfoPKs.value);
  }
  // unselect all checkboxes and appropriate information in a datagrid
  function unselectAll(chIDs, chInfo, allK, chInfoPKs, allPKs)
  {
        var chIDsvalue = chIDs.value.substring(0, chIDs.value.length - 1); 
        var allKvalue = allK.value.substring(0, allK.value.length - 1);
        var allkeys = allKvalue.split(",");
        var ids = chIDsvalue.split(",");
        
        //TODO in future remove chInfoPKs, allPKs params
        var allPKvalue;
        var allPKeys
        if(allPKs != null)
        {
            allPKvalue = allPKs.value.substring(0, allPKs.value.length - 1); 
            allPKeys = allPKvalue.split(",");
        }
        //alert(chInfo.value + "   " + chInfoPKs.value );
        var i = 0;
        //while (ids[i] != undefined && ids[i] != null)
        for(i=0; i < ids.length; i++)
        {
          if(ids[i].length > 0)
          {
                var ch = document.getElementById(ids[i]);
                if(ch != null)
                {    
                    if(ch.checked == true)
                    {
                        chInfo.value = removeIndex(chInfo, allkeys[i]);
                        if(allPKs != null)
                        {
                            chInfoPKs.value = removeIndex(chInfoPKs, allPKeys[i]);
                        }
                        
                        ch.checked = false;
                        //
                        
                    }
                }
          }
          //i++;
        }
        //alert(chInfo.value + "   " + chInfoPKs.value );
        //alert(chInfo.value);
  }
  // invert checkboxes selection in a datagrid
  function invertSelection(chIDs,chInfo, allK, chInfoPKs, allPKs)
  {
        var chIDsvalue = chIDs.value.substring(0, chIDs.value.length - 1);
        var allKvalue = allK.value.substring(0, allK.value.length - 1);
        var ids = chIDsvalue.split(",");
        var indexes = allKvalue.split(",");
        ////////////////////////////////////////////
        var allPKvalue;
        var allPKeys
        if(allPKs != null)
        {
            allPKvalue = allPKs.value.substring(0, allPKs.value.length - 1); 
            allPKeys = allPKvalue.split(",");
        }
        //alert(chInfo.value + "   " + chInfoPKs.value );
        ////////////////////////////////////////////
        var i = 0;
        //while (ids[i] != undefined  && ids[i] != null)
        //alert(ids.length);
        for (i = 0; i < ids.length; i++)
        {
            //alert(ids[i] + '  ' + indexes[i]);
            //alert(chInfo.value);
            if(ids[i].length > 0)
            {
                var ch = document.getElementById(ids[i]);
                if (ch != null)
                {
                    if(ch.checked)
                    {
                       chInfo.value = removeIndex(chInfo, indexes[i]);
                       ch.checked = false; 
                       //
                       if(allPKs != null)
                       {
                            chInfoPKs.value = removeIndex(chInfoPKs, allPKeys[i]);
                       }
                    }
                    else
                    {
                        chInfo.value += indexes[i] + ",";
                        ch.checked = true;
                        //
                       if(allPKs != null)
                       {
                         chInfoPKs.value += allPKeys[i] + ",";
                       }
                    }
                }
            }
        }
  }
  // reset all inpur and select tags in the form
  function ResetForm(formname)
   {
       var formnameUP = formname.toUpperCase();
       var oInputs = document.getElementsByTagName("input");
       for (var i = 0; i < oInputs.length; i++)
       {
            //alert(oInputs.item(i).id); 
              var oInputID = oInputs.item(i).id.toUpperCase();
              var oInput = oInputs.item(i);
              if(oInputID.indexOf(formnameUP) != -1)
              {
                //alert(oInput.id);
                if(oInput.type == 'text')
                {
                    //alert(oInput.id);
                    if(oInput.value)
                    {
                        oInput.value = "";
                    }
                }
              }
        }
        var oSelects = document.getElementsByTagName("select");
        //alert(oSelects.length);
        for (var j = 0; j < oSelects.length; j++)
        {
            var oSelettID = oSelects.item(j).id.toUpperCase();
            var oSelect = oSelects.item(j);
            if(oSelettID.indexOf(formnameUP) != -1)
            {
                //alert(oSelect.id);
                oSelect.selectedIndex = 0;
            }
       }
    }
 
    
