﻿// JScript File

function CodeExists(code,selectedCodes)
{
    var exists = false;
    if(selectedCodes != null && selectedCodes.length > 0)
    {        
       for(var i =0; i < selectedCodes.length ; i++)
       {
         if(selectedCodes[i] == code)
         {
             exists = true;
         }
       }
    }
    return exists;
}

function AddCode(code,codes)
{
  codes.push(code);
}

function RemoveCode(code,codes)
{
  var j;
  for(var i =0; i < codes.length ; i++)
  {
   if(codes[i] == code)
   {
      j = i;
   }
  }
  codes.splice(j,1);
}

function CompareSavedCodes(savedCodes,selectedCodes)
{    
    if(savedCodes != null && selectedCodes != null)
    {        
        //alert(savedCodes + "::" + selectedCodes);
        if(savedCodes.length != selectedCodes.length)
        {
            return true;
        }
    }   
    return false;
}

function CheckChangedHandler(checkbox,clientid){    
   var result = document.getElementById(clientid).value;   
   
   var splitResult = result.split(":");
   if(splitResult[0]==null || splitResult[1] == null || splitResult[3] ==null)
   {
        return;        
   }
   
   var selectedCodes;
      
   selectedCodes = splitResult[0].split(",");
   
   var disabledCodes = splitResult[1].split(",");
   var savedCodes = splitResult[3].split(",");
   
   var changeFlag = splitResult[2];
      
   var requiredEq = checkbox.requiredEquipment;
   var incompatibleEq = checkbox.incompatibleEquipment;
   var listEq = checkbox.listEquipment; 
     
   if(checkbox.checked)
   {    
       if (!CodeExists(checkbox.code, selectedCodes))
       {
          AddCode(checkbox.code,selectedCodes);
       }
   }
   else
   {
      if(CodeExists(checkbox.code, selectedCodes))
      {
          RemoveCode(checkbox.code, selectedCodes);
      }
   }
   if(requiredEq != null && requiredEq != "")
   {
     var codes = requiredEq.split(",");
     var exists;
     
     if(codes != null && codes.length > 0)
     {
         for(var i=0; i < codes.length; i++)
         {
           if(checkbox.checked)
            {
                document.getElementById(clientid+codes[i]).checked=true;
                if (!CodeExists(codes[i], selectedCodes))
                {
                  AddCode( codes[i], selectedCodes);
                }
            }
         }
     }
   }
   
   if(incompatibleEq != null && incompatibleEq != "")
   {
     var codes = incompatibleEq.split(",");
     var exists;
     if(codes != null && codes.length > 0)
     {
         for(var i=0; i < codes.length; i++)
         {
            if(document.getElementById(clientid+codes[i]) != null)
            {
                if(checkbox.checked)
                {
                    document.getElementById(clientid+codes[i]).checked=false;
                    if(CodeExists(codes[i], selectedCodes))
                    {
                       RemoveCode(codes[i], selectedCodes);
                    }
                    document.getElementById(clientid+codes[i]).disabled=true;
                    if (!CodeExists(codes[i], disabledCodes))
                    {
                        AddCode(codes[i], disabledCodes);
                    }
                }
                else
                {
                    document.getElementById(clientid+codes[i]).disabled=false;
                    if(CodeExists(codes[i], disabledCodes))
                    {
                        RemoveCode(codes[i], disabledCodes);
                    }
                }
            }
         }
     }
   }
    var finalResult = selectedCodes.toString() + ":" + disabledCodes.toString();
    
    if(selectedCodes[0]=="")
    {
        selectedCodes= selectedCodes.slice(1);
    }
    
    //alert(selectedCodes.toString());
    
    if(CompareSavedCodes(savedCodes,selectedCodes))
    {
        finalResult = finalResult + ":1" + ":" + savedCodes;
    } 
    else
    {
        finalResult = finalResult + ":0" + ":" + savedCodes;
    }
    document.getElementById(clientid).value=finalResult;        
}
