﻿        
 function enableProviderTypeSearch(provTypeId, provSpecId, provTypeSearchId, resetProvSpecValue)
{                        
    var provType = document.getElementById(provTypeId);
    var provSpec = document.getElementById(provSpecId);
    var provTypeSearch = document.getElementById(provTypeSearchId);
    
    if(resetProvSpecValue)
    {
        provSpec.selectedIndex = 0; 
    }
    if(provSpec.selectedIndex != 0 && provType.selectedIndex != 0)
    {
        provTypeSearch.disabled=false;
    }
    else
    {
        provTypeSearch.disabled=true;
    }
}

function staticFeeSchedulesValidateControls( valNPIId, valNPILookupId, valProvTypeId, valProvSpecId, searchType, userType)
{
    var valNPI = document.getElementById(valNPIId);
    var valNPILookup = document.getElementById(valNPILookupId);
    var valProvType = document.getElementById(valProvTypeId);
    var valProvSpec = document.getElementById(valProvSpecId);
    
    if(searchType == "NPI")
    {
        if(userType == "HMO")
        {
           enableDisableValidators(valNPILookup, true);
        }
        else if(userType == "Medicaid")
        {
            enableDisableValidators(valNPI, true);
        }
        
        enableDisableValidators(valProvType,false);
        enableDisableValidators(valProvSpec,false);
    }
    else if (searchType == "ProviderType")
    {
        enableDisableValidators(valProvType,true);
        enableDisableValidators(valProvSpec,true);
        enableDisableValidators(valNPI, false);
        enableDisableValidators(valNPILookup, false);
    }
    
}
function enableDisableValidators(valControl, flag)
{
    
    if(valControl != null)
    {
        ValidatorEnable(valControl, flag);
    }
}

function setControlStyle(control, visible)
{
    if(control != null)
    {
        if(visible == true)
        {
             if(control.id.indexOf("btn") > 0)
             {
                control.style.display = 'inline';
             }
             else
             {
                control.style.display = 'block';
             }
        }
        else
        {
            control.style.display = 'none';
        }
    }
}
//Function to enable submit to batch button
function enableSubmittoBatch(btnSubmitID , btnSubmittoBatchID , buttonText, rptProcedureCodesItemsCount)
{
    var btnSubmit = document.getElementById(btnSubmitID);
    var btnSubmittoBatch = document.getElementById(btnSubmittoBatchID);
    
    if(buttonText == "Add")
    {
        rptProcedureCodesItemsCount++;
    }
    else
    {
        rptProcedureCodesItemsCount--;
    }
    if(rptProcedureCodesItemsCount > 1)
    {
        btnSubmittoBatch.style.display = 'inline';
        btnSubmit.style.display = 'none';
    }
    else 
    {
        btnSubmit.style.display = 'inline';
        btnSubmittoBatch.style.display = 'none';
    }
}


function clearControlValues( rlstTypeofSearchID ,
                             txtSingleProcCodeID ,
                             txtRngProcCodeID ,
                             txtRngProcedureCodeToID ,
                             ddlNPIID ,
                             uc1NPILookupID ,
                             ddlProgramID ,
                             dtDOSID ,
                             ddlClaimTypeID ,
                             ddlProviderTypeID ,
                             ddlProviderSpecID ,
                             cbo24MonthHistoryID, 
                             rowSingleProcCdID,
                             rowListProcCdID,
                             rowRngProcCdID
                             )
{
    
         rlstTypeofSearch  = document.getElementById(rlstTypeofSearchID);
         txtSingleProcCode  = document.getElementById(txtSingleProcCodeID);
         txtRngProcCode  = document.getElementById(txtRngProcCodeID);
         txtRngProcedureCodeTo  = document.getElementById(txtRngProcedureCodeToID);
         ddlNPI  = document.getElementById(ddlNPIID);
         uc1NPILookup  = document.getElementById(uc1NPILookupID);
         ddlProgram  = document.getElementById(ddlProgramID);
         dtDOS  = document.getElementById(dtDOSID);
         ddlClaimType  = document.getElementById(ddlClaimTypeID);
         ddlProviderType  = document.getElementById(ddlProviderTypeID);
         ddlProviderSpec  = document.getElementById(ddlProviderSpecID);
         cbo24MonthHistory = document.getElementById(cbo24MonthHistoryID);  
         rowSingleProcCd = document.getElementById(rowSingleProcCdID);
         rowListProcCd = document.getElementById(rowListProcCdID);
         rowRngProcCd = document.getElementById(rowRngProcCdID);
         
         if(rlstTypeofSearch != null)
         {
            var inputs = rlstTypeofSearch.getElementsByTagName("input");
            for (var i = 0; i < inputs.length; i++)
            {
                if(inputs[i].checked)
                {
                    inputs[i].checked = false; 
                }
            }
         }  
         
         if(ddlNPI != null)
         {
            ddlNPI.selectedIndex = -1;
         } 
         if(ddlProgram != null)
         {
            ddlProgram.selectedIndex = -1;
         }
         if(ddlClaimType != null)
         {
            ddlClaimType.selectedIndex = -1; 
         }
         if(ddlProviderType != null)
         {
            ddlProviderType.selectedIndex = -1;
         }
         if(ddlProviderSpec != null)
         {
            ddlProviderSpec.selectedIndex = -1;
         }
         txtSingleProcCode.value = "";
         setControlStyle(rowSingleProcCd, true);
         setControlStyle(rowListProcCd, false);
         setControlStyle(rowRngProcCd, false);
}

function enablePageValidators(rbtnListId
                            , valSingleProcCdId
                            , valRngProcCdFromId
                            , valRngProcCdToId
                            , valReqNPIDropDownId
                            , valReqNPIId
                            , valReqProgramId
                            , valReqDOSId
                            , valReqClaimTypeId
                            , valReqFileUploadId
                            )
{

    var rbtnList = document.getElementById(rbtnListId);
    var valSingleProcCd = document.getElementById(valSingleProcCdId);
    var valRngProcCdFrom = document.getElementById(valRngProcCdFromId);
    var valRngProcCdTo = document.getElementById(valRngProcCdToId);
    var valReqNPIDropDown = document.getElementById(valReqNPIDropDownId);
    var valReqNPI = document.getElementById(valReqNPIId);
    var valReqProgram = document.getElementById(valReqProgramId);
    var valReqDOS = document.getElementById(valReqDOSId);
    var valReqClaimType = document.getElementById(valReqClaimTypeId);
    var valReqFileUpload = document.getElementById(valReqFileUploadId);
    var inputs = rbtnList.getElementsByTagName("input");
    var typeofSearchChecked = false;
    
    for (var i = 0; i < inputs.length; i++)
    {
        if (inputs[i].checked)
        {
            typeofSearchChecked = true;
            
            switch (inputs[i].value)
            {
                case "SingleProcedureCode": //Single Procedure Code
                    enableDisableValidators(valRngProcCdFrom, false);
                    enableDisableValidators(valRngProcCdTo, false);
                    enableDisableValidators(valSingleProcCd, true);
                    enableDisableValidators(valReqFileUpload, false);
                    enableDisableValidators(valReqNPIDropDown,true);
                    enableDisableValidators(valReqNPI, true);
                    enableDisableValidators(valReqProgram, true);
                    enableDisableValidators(valReqDOS, true);
                    enableDisableValidators(valReqClaimType, true);
                    break;
                case "ListOfProcedureCodes": // List of Procedure Codes
                    enableDisableValidators(valRngProcCdFrom, false);
                    enableDisableValidators(valRngProcCdTo, false);
                    enableDisableValidators(valSingleProcCd, false);
                    enableDisableValidators(valReqFileUpload, false);
                    enableDisableValidators(valReqNPIDropDown,true);
                    enableDisableValidators(valReqNPI, true);
                    enableDisableValidators(valReqProgram, true);
                    enableDisableValidators(valReqDOS, true);
                    enableDisableValidators(valReqClaimType, true);
                    break;
                case "RangeOfProcedureCodes": // Range of procedure codes
                    enableDisableValidators(valRngProcCdFrom, true);
                    enableDisableValidators(valRngProcCdTo, true);
                    enableDisableValidators(valSingleProcCd, false);
                    enableDisableValidators(valReqProgram, true);
                    enableDisableValidators(valReqDOS, true);
                    enableDisableValidators(valReqClaimType, true);
                    enableDisableValidators(valReqNPIDropDown,true);
                    enableDisableValidators(valReqNPI, true);
                    enableDisableValidators(valReqFileUpload, false);
                    break;
                case "AllApplicableProcedureCodes": // All applicable procedure codes
                    enableDisableValidators(valRngProcCdFrom, false);
                    enableDisableValidators(valRngProcCdTo, false);
                    enableDisableValidators(valSingleProcCd, false);
                    enableDisableValidators(valReqFileUpload, false);
                    enableDisableValidators(valReqNPIDropDown,true);
                    enableDisableValidators(valReqNPI, true);
                    enableDisableValidators(valReqProgram, true);
                    enableDisableValidators(valReqDOS, true);
                    enableDisableValidators(valReqClaimType, true);
                    break;
                case "UploadFromFile": // Upload file
                    enableDisableValidators(valRngProcCdFrom, false);
                    enableDisableValidators(valRngProcCdTo, false);
                    enableDisableValidators(valSingleProcCd, false);
                    enableDisableValidators(valReqNPIDropDown,true);
                    enableDisableValidators(valReqNPI, false);
                    enableDisableValidators(valReqProgram, false);
                    enableDisableValidators(valReqDOS, false);
                    enableDisableValidators(valReqClaimType, false);
                    enableDisableValidators(valReqFileUpload, true);
                    break;
                default:
                    break;
            }
        }
    }
    if(typeofSearchChecked == false)
    {
        enableDisableValidators(valRngProcCdFrom, false);
        enableDisableValidators(valRngProcCdTo, false);
        enableDisableValidators(valReqFileUpload, false);
    }
}
function enableTypeofSearch(rbtnListId
                            , rowSingleProcCodeId
                            , rowListProcCodeId
                            , rowRngProcCodeId
                            , rowUploadFileId
                            , rowNPILookupId
                            , rowProgramId
                            , rowDOSId
                            , rowDOSTextId
                            , rowClaimTypeId
                            , rowClaimTypeTextId
                            , row24MonthHistoryId
                            , btnSubmitId
                            , btnSubmittoBatchId
                            , totalItems)
{
    var rbtnList = document.getElementById(rbtnListId);
    var rowSingleProcCode = document.getElementById(rowSingleProcCodeId);
    var rowListProcCode = document.getElementById(rowListProcCodeId);
    var rowRngProcCode = document.getElementById(rowRngProcCodeId);
    var rowUploadFile = document.getElementById(rowUploadFileId);
    var rowNPILookup = document.getElementById(rowNPILookupId);
    var rowProgram = document.getElementById(rowProgramId);
    var rowDOS = document.getElementById(rowDOSId);
    var rowDOSText = document.getElementById(rowDOSTextId);
    var rowClaimType = document.getElementById(rowClaimTypeId);
    var rowClaimTypeText = document.getElementById(rowClaimTypeTextId);
    var row24MonthHistory = document.getElementById(row24MonthHistoryId);
     
    var btnSubmit = document.getElementById(btnSubmitId);
    var btnSubmittoBatch = document.getElementById(btnSubmittoBatchId);
    var inputs = rbtnList.getElementsByTagName("input");
    
    for (var i = 0; i < inputs.length; i++) 
    {
          if (inputs[i].checked) 
          {
            switch(inputs[i].value)
            {
                case "SingleProcedureCode": //Single Procedure Code
                     setControlStyle(rowSingleProcCode, true)
                     setControlStyle(rowListProcCode, false);
                     setControlStyle(rowRngProcCode, false);
                     setControlStyle(rowUploadFile, false);
                     setControlStyle(rowProgram, true);
                     setControlStyle(rowNPILookup, true);
                     setControlStyle(rowDOS, true);
                     setControlStyle(rowDOSText, true);
                     setControlStyle(rowClaimType, true);
                     setControlStyle(rowClaimTypeText, true);
                     setControlStyle(row24MonthHistory, true);
                     setControlStyle(btnSubmit, true);
                     setControlStyle(btnSubmittoBatch, false);
                    break;
                case "ListOfProcedureCodes": // List of Procedure Codes
                     setControlStyle(rowListProcCode, true);
                     setControlStyle(rowSingleProcCode, false);
                     setControlStyle(rowRngProcCode, false);
                     setControlStyle(rowUploadFile, false);
                     setControlStyle(rowNPILookup, true);
                     setControlStyle(rowProgram, true);
                      setControlStyle(rowDOS, true);
                     setControlStyle(rowDOSText, true);
                     setControlStyle(rowClaimType, true);
                     setControlStyle(rowClaimTypeText, true);
                     setControlStyle(row24MonthHistory, true);
                    if(totalItems == 1)
                    {
                         setControlStyle(btnSubmit, true);
                         setControlStyle(btnSubmittoBatch, false);
                    }
                    else
                    {
                         setControlStyle(btnSubmit, false);
                         setControlStyle(btnSubmittoBatch, true);
                    }
                    break;
                case "RangeOfProcedureCodes": // Range of procedure codes
                     setControlStyle(rowRngProcCode, true);
                     setControlStyle(rowSingleProcCode, false);
                     setControlStyle(rowListProcCode, false);
                     setControlStyle(rowNPILookup, true);
                    
                     setControlStyle(rowUploadFile, false);
                     setControlStyle(rowProgram, true);
                     setControlStyle(rowDOS, true);
                     setControlStyle(rowDOSText, true);
                     setControlStyle(rowClaimType, true);
                     setControlStyle(rowClaimTypeText, true);
                     setControlStyle(row24MonthHistory, true);
                    
                     setControlStyle(btnSubmit, false);
                     setControlStyle(btnSubmittoBatch, true);
                    break;
                case "AllApplicableProcedureCodes": // All applicable procedure codes
                     setControlStyle(rowRngProcCode, false);
                     setControlStyle(rowSingleProcCode, false);
                     setControlStyle(rowListProcCode, false);
                     setControlStyle(rowUploadFile, false);
                     setControlStyle(rowNPILookup, true);
                     setControlStyle(rowProgram, true);
                     setControlStyle(rowDOS, true);
                     setControlStyle(rowDOSText, true);
                     setControlStyle(rowClaimType, true);
                     setControlStyle(rowClaimTypeText, true);
                     setControlStyle(row24MonthHistory, true);
                     setControlStyle(btnSubmit, false);
                     setControlStyle(btnSubmittoBatch, true);
                    break;
                case "UploadFromFile": // Upload file
                     setControlStyle(rowRngProcCode, false);
                     setControlStyle(rowSingleProcCode, false);
                     setControlStyle(rowListProcCode, false);
                     setControlStyle(rowUploadFile, true);
                     setControlStyle(rowNPILookup, false);
                     setControlStyle(rowProgram, false);
                     setControlStyle(rowDOS, false);
                     setControlStyle(rowDOSText, false);
                     setControlStyle(rowClaimType, false);
                     setControlStyle(rowClaimTypeText, false);
                     setControlStyle(row24MonthHistory, false);
                    
                     setControlStyle(btnSubmit, false);
                     setControlStyle(btnSubmittoBatch, true);
                default:
                    break;
            }
              break;
          }
      }
}


