gerd
11/7/2016 - 6:15 PM

createtemplatecondition_episodedesc.js

lexisnexis.component.CreateTemplateEpisodeDescription = lexisnexis.component.Component
        .extend({

          data: {
            getAvailableurl: '/getAvailableEpisodeDescriptions',
            getSearchurl : '/getAvailableEpisodeDescriptionsForSearch',
            updateEpisodeDescriptionsurl : '/updateEpisodeDescriptions',
            getAvailableOnDatasetChangeurl : '/getAvailableEpisodeOnDataSetChange',
            availableTreeDiv: '#episodeDescTree',
            withMoveRightButton: '#with-move-right',
            withMoveLeftButton: '#with-move-left',

            withoutMoveRightButton: '#without-move-right',
            withoutMoveLeftButton: '#without-move-left',

            includeSelectedTreeDiv: '#with-selected-list',
            excludeSelectedTreeDiv: '#without-selected-list',
            searchTreeInputBox: '#searchTreeInputBox',
            selectAllAvailableEpisodes: '#selectAllAvailableEpisodes',
            selectAllIncludeEpisodes: '#selectAllIncludeEpisodes',
            selectAllExcludeEpisodes: '#selectAllExcludeEpisodes',
            searchKey : '',
            outOfStockEpisodeIds : [],
            timerObj : ''
          },

          config: {

          },
          // called by the framework
          ready: function() {
            var cs = this;
            cs.data.getAvailableurl = LN.getContextPath() + cs.data.getAvailableurl;
            cs.data.getSearchurl = LN.getContextPath() + cs.data.getSearchurl;
            cs.data.updateEpisodeDescriptionsurl = LN.getContextPath() + cs.data.updateEpisodeDescriptionsurl;
            cs.data.getAvailableOnDatasetChangeurl = LN.getContextPath() + cs.data.getAvailableOnDatasetChangeurl;
            cs.data.searchKey = '';
            $("#no-Match-Result").hide();
            $("#without-default-text").hide();
            cs.setupJSTree();
            cs.setupJSSearch();
            cs.withmoveRight();
            cs.withmoveLeft();
            cs.withoutmoveRight();
            cs.withoutmoveLeft();
            /*cs.withDefaultTexthideShow();
            cs.withoutDefaultTexthideShow(); */
            cs.bindDropDownEvents(); 
            cs.bindSelectAllEvents();
            LN.getPage().registerEvent(EVENT_TYPES.APPLY_BUTTON_CLICK, cs, cs.onDataSetChangeOfEpisodes);
           
          },
          
          //Create js trees
          setupJSTree: function() {
            var cs = this;
            var params = JSON.stringify({
              'selDataSet': $('#ln_topmenu_dataset').attr("dataSetkey"),
              'searchKey' : $(cs.data.searchTreeInputBox).val().length >= 3 ? $(cs.data.searchTreeInputBox).val() : ""
            });
            LN.ajaxPostJSON($(cs.data.availableTreeDiv).parent(), cs.data.getAvailableurl, params, cs.setupJSTreeCallBack, cs);
            //cs.episodeDefaultTexthideShow();
          },
          
          /* Binding search operation */
          setupJSSearch : function(){
            var cs = this;
            //Preventing the default submit action for the search box. 
            $(cs.data.searchTreeInputBox).keydown(function(e) {
              if (e.keyCode == 13) {
                e.preventDefault();
              }
            });
            
             // Search
            $(cs.data.searchTreeInputBox).keyup(function(e) {
              e.preventDefault();
              clearTimeout(cs.data.timerObj);
              cs.data.timerObj = setTimeout(function() {
                if(cs.data.searchKey != $(cs.data.searchTreeInputBox).val() 
                        && $(cs.data.searchTreeInputBox).val().length >= 3 || ($(cs.data.searchTreeInputBox).val().length == 2 && cs.data.searchKey.length == 3)
                        || $(cs.data.searchTreeInputBox).val().length == 0){
                  var params = JSON.stringify({
                    'selDataSet': $('#ln_topmenu_dataset').attr("dataSetkey"),
                    'searchKey' : $(cs.data.searchTreeInputBox).val().length >= 3 ? $(cs.data.searchTreeInputBox).val() : ""
                  });
                  cs.data.searchKey = $.parseJSON(params).searchKey;
                  LN.ajaxPostJSON($(cs.data.availableTreeDiv).parent(), cs.data.getSearchurl, params, cs.searchJsTreeCallBack, cs);
                }
              },1000);
            });
            
            // Clear
            $(cs.data.searchTreeInputBox).focusout(function(e) {
              if ($(cs.data.searchTreeInputBox).val().length < 3) {
                $(cs.data.searchTreeInputBox).val('');
              }
            });

          },

          setupJSTreeCallBack: function(cs, data) {
            cs.updateOutofStockEpisodes(cs,data);
            cs.setupAvailableJsTree(cs, data);
            cs.setupIncludeJsTree(cs, data);
            cs.setupExcludeJsTree(cs, data);
                     
            //cs.withDefaultTexthideShow();
            //$("#no-Match-Result").hide();
            //cs.episodeDefaultTexthideShow();

          },
          
          setupAvailableJsTree : function(cs, data){
            //Available JS Tree
            $(cs.data.availableTreeDiv).jstree({
              'plugins': ["checkbox", "sort", "wholerow"],
              'core': {
                'check_callback': true,
                'worker': false,
                'themes': {
                  'icons': false,
                  'responsive': true
                },
                'data': data.availableEpisode
              }
            }).bind("changed.jstree", function(e, data) {
                cs.bindAvailableCheckBoxEvent();
                //cs.bindIncludeCheckBoxEvent();
                //cs.bindExcludeCheckBoxEvent();
                
            }).bind("ready.jstree", function(event) {
              if($(cs.data.searchTreeInputBox).val().length >= 3){
                $(cs.data.availableTreeDiv).jstree("open_all");
              }
              cs.bindAvailableCheckBoxEvent();
              cs.episodeDefaultTexthideShow();
              cs.enableOrDisableSelectAllCheckBox();
            });
          },
          setupIncludeJsTree : function(cs, data){
            // Second Tree
            $(cs.data.includeSelectedTreeDiv).jstree({
              'plugins': ["checkbox", "sort", "wholerow"],
              "core": {
                "check_callback": true,
                'worker': false,
                'themes': {
                  'icons': false,
                  'responsive': true
                },
                'data': data.includeEpisode
              }
            }).bind("changed.jstree", function(node, action, selected, event) {
              //cs.bindAvailableCheckBoxEvent();
              cs.bindIncludeCheckBoxEvent();
              //cs.bindExcludeCheckBoxEvent();
              cs.withDefaultTexthideShow();
            }).bind("ready.jstree", function(event, data) {
              // $(cs.data.includeSelectedTreeDiv).jstree("open_all");
              cs.bindIncludeCheckBoxEvent();
              cs.withDefaultTexthideShow();
              cs.createIncludeOutOfStockNodes();
              cs.addGrayColorTextEpisodesDataSet();
            }).bind("open_node.jstree", function(event, data) {
              cs.addGrayColorTextEpisodesDataSet();
            });
          
          },
          setupExcludeJsTree : function(cs, data){
            $(cs.data.excludeSelectedTreeDiv).jstree({
              'plugins': ["checkbox", "sort", "wholerow"],
              "core": {
                "check_callback": true,
                'worker': false,
                'themes': {
                  'icons': false,
                  'responsive': true
                },
                'data': data.excludeEpisode
              }
            }).bind("changed.jstree", function(node, action, selected, event) {
              //cs.bindAvailableCheckBoxEvent();
              //cs.bindIncludeCheckBoxEvent();
              cs.bindExcludeCheckBoxEvent();
            }).bind("ready.jstree", function(event, data) {
              // $(cs.data.excludeSelectedTreeDiv).jstree("open_all");
              cs.bindExcludeCheckBoxEvent();
              cs.withoutDefaultTexthideShow();
              //cs.createOutOfStockNodes();
              cs.addGrayColorTextEpisodesDataSet();
            }).bind("open_node.jstree", function(event, data) {
              cs.addGrayColorTextEpisodesDataSet();
            });
          },
          /* Method will get called when user starts search operation*/
          searchJsTreeCallBack : function(cs, data){
           
            //$(cs.data.availableTreeDiv).jstree(true).settings.core.data = data.availableEpisode;
            //$(cs.data.availableTreeDiv).jstree(true).refresh();
            /*Destroy and create again */
            $(cs.data.availableTreeDiv).jstree("destroy");
            cs.setupAvailableJsTree(cs, data);
          },
          
          withmoveRight : function(){
            var cs = this;
            $(cs.data.withMoveRightButton).click(function(e) {
              LN.showAjaxIndicator($(cs.data.availableTreeDiv).parent());
              LN.showAjaxIndicator($(cs.data.includeSelectedTreeDiv).parent());
              /* Read selected Nodes to move */
              var selectedIncludeTGKArray = [];
              var selectedIncludeEpisode = [];
              
              var parentNodeToAdd = "";
              var parentNode = "";
              
              $($(cs.data.availableTreeDiv).jstree(true).get_selected(true)).each(function(i, obj) {
                if (obj.parent != "#" && obj.id.indexOf("$") == -1) {
                	selectedIncludeTGKArray.push(obj.id);
                	if ((obj.parent != '#') && (obj.parent.indexOf("$") >= 0) && (parentNode != obj.parent.substring(0, obj.parent.indexOf("$")) + ", ")) {
                		parentNode = obj.parent.substring(0, obj.parent.indexOf("$")) + ", ";
              		  	parentNodeToAdd = parentNode;
              	  	} else {
              		  parentNodeToAdd = "";
              	  	}
                	selectedIncludeEpisode.push(parentNodeToAdd + obj.text);
                }
              });
              
              parentNodeToAdd = "";
              parentNode = "";
              var includeSelectedJson = $(cs.data.includeSelectedTreeDiv).jstree(true).get_json();
              
              $(includeSelectedJson).each(function(i, includeSelectedtobject) {
                $(includeSelectedtobject.children).each(function(k, includeSelchildobj) {
                $(includeSelchildobj.children).each(function(l, includeSelsubchildobj) {
                    selectedIncludeTGKArray.push(includeSelsubchildobj.id);
                    if (parentNode != (includeSelectedtobject.text + ", ")) {
                  		parentNode = includeSelectedtobject.text + ", ";
                  		parentNodeToAdd = parentNode;
                    } else {
                		  parentNodeToAdd = "";
                	}
                    selectedIncludeEpisode.push(parentNodeToAdd + includeSelsubchildobj.text);
                  });
                });
              });
              
              var selectedExludeTGKArray = [];
              var selectedExcludeEpisode = [];
              parentNodeToAdd = "";
              parentNode = "";
              var excludeSelectedJson = $(cs.data.excludeSelectedTreeDiv).jstree(true).get_json();
              
              $(excludeSelectedJson).each(function(i, excludeSelectedtobject) {
                $(excludeSelectedtobject.children).each(function(k, excludeSelchildobj) {
                  $(excludeSelchildobj.children).each(function(l, excludeSelsubchildobj) {
                    selectedExludeTGKArray.push(excludeSelsubchildobj.id);
                    if (parentNode != (excludeSelectedtobject.text + ", ")) {
                  		parentNode = excludeSelectedtobject.text + ", ";
                  		parentNodeToAdd = parentNode;
                    } else {
                		  parentNodeToAdd = "";
                	}
                    selectedExcludeEpisode.push(parentNodeToAdd + excludeSelsubchildobj.text);
                    });
                });
              });
              
              /*
               * If select all is checked, clear search text box
               */
              if($(cs.data.selectAllAvailableEpisodes).is(':checked')){
                $(cs.data.searchTreeInputBox).val("");
              }
              
              cs.updateEpisodeDescriptions(selectedIncludeTGKArray, selectedExludeTGKArray, selectedIncludeEpisode, selectedExcludeEpisode, 'MoveIncludeRight');
             });
            
          },
          
          withmoveLeft: function() {
            var cs = this;
            $(cs.data.withMoveLeftButton).click(function(e) {
              LN.showAjaxIndicator($(cs.data.includeSelectedTreeDiv).parent());
              LN.showAjaxIndicator($(cs.data.availableTreeDiv).parent());
              
              //Read include selected jS Tree Nodes
              var selectedIncludeTGKArray = [];
              var selectedIncludeEpisode = [];
              parentNodeToAdd = "";
              parentNode = "";
              var includeSelectedJson = $(cs.data.includeSelectedTreeDiv).jstree(true).get_json();
              
              $(includeSelectedJson).each(function(i, includeSelectedtobject) {
                $(includeSelectedtobject.children).each(function(k, includeSelchildobj) {
                  $(includeSelchildobj.children).each(function(l, includeSelsubchildobj) {
                    /* Don't include selected nodes*/
                    if (includeSelsubchildobj.state.selected == false) {
                      selectedIncludeTGKArray.push(includeSelsubchildobj.id);
                      if (parentNode != (includeSelectedtobject.text + ", ")) {
                    	  parentNode = includeSelectedtobject.text + ", ";
                    	  parentNodeToAdd = parentNode;
                      } else {
                  		  parentNodeToAdd = "";
                      }
                      selectedIncludeEpisode.push(parentNodeToAdd + includeSelsubchildobj.text);
                    }
                    });
                });
              });
              
              var selectedExludeTGKArray = [];
              var selectedExcludeEpisode = [];
              parentNodeToAdd = "";
              parentNode = "";
              var excludeSelectedJson = $(cs.data.excludeSelectedTreeDiv).jstree(true).get_json();
              
              $(excludeSelectedJson).each(function(i, excludeSelectedtobject) {
                $(excludeSelectedtobject.children).each(function(k, excludeSelchildobj) {
                  $(excludeSelchildobj.children).each(function(l, excludeSelsubchildobj) {
                    selectedExludeTGKArray.push(excludeSelsubchildobj.id);
                    if (parentNode != (excludeSelectedtobject.text + ", ")) {
                  		parentNode = excludeSelectedtobject.text + ", ";
                  		parentNodeToAdd = parentNode;
                    } else {
                    	parentNodeToAdd = "";
                	}
                    selectedExcludeEpisode.push(parentNodeToAdd + excludeSelsubchildobj.text);
                    });
                });
              });
              
              cs.updateEpisodeDescriptions(selectedIncludeTGKArray, selectedExludeTGKArray, selectedIncludeEpisode, selectedExcludeEpisode, 'MoveIncludeLeft');
               
            });
          },
          
          withoutmoveRight: function() {
            var cs = this;
            $(cs.data.withoutMoveRightButton).click(function(e) {
         
              LN.showAjaxIndicator($(cs.data.excludeSelectedTreeDiv).parent());
              LN.showAjaxIndicator($(cs.data.availableTreeDiv).parent());
              
              /* Read selected Nodes to move */
              var selectedIncludeTGKArray = [];
              var selectedIncludeEpisode = [];
              var parentNodeToAdd = "";
              var parentNode = "";
              
              var includeSelectedJson = $(cs.data.includeSelectedTreeDiv).jstree(true).get_json();
              $(includeSelectedJson).each(function(i, includeSelectedtobject) {
                $(includeSelectedtobject.children).each(function(k, includeSelchildobj) {
                  $(includeSelchildobj.children).each(function(l, includeSelsubchildobj) {
                    selectedIncludeTGKArray.push(includeSelsubchildobj.id);
                    if (parentNode != (includeSelectedtobject.text + ", ")) {
                  		parentNode = includeSelectedtobject.text + ", ";
                  		parentNodeToAdd = parentNode;
                    } else {
                    	parentNodeToAdd = "";
                	}
                    selectedIncludeEpisode.push(parentNodeToAdd + includeSelsubchildobj.text);
                    });
                });
              });
              
              var selectedExludeTGKArray = [];
              var selectedExcludeEpisode = [];
              parentNodeToAdd = "";
              parentNode = "";
              
              $($(cs.data.availableTreeDiv).jstree(true).get_selected(true)).each(function(i,obj){
                if(obj.parent != "#"  && obj.id.indexOf("$") == -1){
                  selectedExludeTGKArray.push(obj.id);
                  if ((obj.parent != '#') && (obj.parent.indexOf("$") >= 0) && (parentNode != obj.parent.substring(0, obj.parent.indexOf("$")) + ", ")) {
                	  parentNode = obj.parent.substring(0, obj.parent.indexOf("$")) + ", ";
                	  parentNodeToAdd = parentNode;
                  } else {
                	  parentNodeToAdd = "";
                  }
                  selectedExcludeEpisode.push(parentNodeToAdd + obj.text);
                }
              });
              
              parentNodeToAdd = "";
              parentNode = "";
              var excludeSelectedJson = $(cs.data.excludeSelectedTreeDiv).jstree(true).get_json();
              
              $(excludeSelectedJson).each(function(i, excludeSelectedtobject) {
                $(excludeSelectedtobject.children).each(function(k, excludeSelchildobj) {
                  $(excludeSelchildobj.children).each(function(l, excludeSelsubchildobj) {
                    selectedExludeTGKArray.push(excludeSelsubchildobj.id);
                    if (parentNode != (excludeSelectedtobject.text + ", ")) {
                  		parentNode = excludeSelectedtobject.text + ", ";
                  		parentNodeToAdd = parentNode;
                    } else {
                    	parentNodeToAdd = "";
                	}
                    selectedExcludeEpisode.push(parentNodeToAdd + excludeSelsubchildobj.text);
                    });
                });
              });
              
              /*
               * If select all is checked, clear search text box
               */
              if($(cs.data.selectAllAvailableEpisodes).is(':checked')){
                $(cs.data.searchTreeInputBox).val("");
              }
              cs.updateEpisodeDescriptions(selectedIncludeTGKArray, selectedExludeTGKArray, selectedIncludeEpisode, selectedExcludeEpisode,'MoveExcludeRight');
                 
            });
          },
          
          withoutmoveLeft: function() {
            var cs = this;
            $(cs.data.withoutMoveLeftButton).click(function(e) {
              
              LN.showAjaxIndicator($(cs.data.availableTreeDiv).parent());
              LN.showAjaxIndicator($(cs.data.excludeSelectedTreeDiv).parent());
              
              /* Read selected Nodes to move */
              var selectedIncludeTGKArray = [];
              var selectedIncludeEpisode = [];
              var parentNodeToAdd = "";
              var parentNode = "";
              
              var includeSelectedJson = $(cs.data.includeSelectedTreeDiv).jstree(true).get_json();
              $(includeSelectedJson).each(function(i, includeSelectedtobject) {
                $(includeSelectedtobject.children).each(function(k, includeSelchildobj) {
                  $(includeSelchildobj.children).each(function(l, includeSelsubchildobj) {
                    selectedIncludeTGKArray.push(includeSelsubchildobj.id);
                    if (parentNode != (includeSelectedtobject.text + ", ")) {
                  		parentNode = includeSelectedtobject.text + ", ";
                  		parentNodeToAdd = parentNode;
                    } else {
                		  parentNodeToAdd = "";
                	}
                    selectedIncludeEpisode.push(parentNodeToAdd + includeSelsubchildobj.text);
                   });
                });
              });
              
              var selectedExludeTGKArray = [];
              var selectedExcludeEpisode = [];
              parentNodeToAdd = "";
              parentNode = "";
              var excludeSelectedJson = $(cs.data.excludeSelectedTreeDiv).jstree(true).get_json();
              
              $(excludeSelectedJson).each(function(i, excludeSelectedtobject) {
                $(excludeSelectedtobject.children).each(function(k, excludeSelchildobj) {
                  $(excludeSelchildobj.children).each(function(l, excludeSelsubchildobj) {
                    /* Don't include selected nodes*/
                    if(excludeSelsubchildobj.state.selected == false){
                      selectedExludeTGKArray.push(excludeSelsubchildobj.id);
                      if (parentNode != (excludeSelectedtobject.text + ", ")) {
                    	  parentNode = excludeSelectedtobject.text + ", ";
                    	  parentNodeToAdd = parentNode;
                      } else {
                  		  parentNodeToAdd = "";
                  	}
                      selectedExcludeEpisode.push(parentNodeToAdd + excludeSelsubchildobj.text);
                    }
                    });
                });
              });
              
              cs.updateEpisodeDescriptions(selectedIncludeTGKArray, selectedExludeTGKArray, selectedIncludeEpisode, selectedExcludeEpisode, "MoveExcludeLeft");
                     
            });
          },
                    
          /* Method update the values into session, once success get the provider count */
          updateEpisodeDescriptions: function(includeEpisodeTGK, excludeEpisodeTGK, selectedIncludeEpisode, selectedExcludeEpisode, action) {
            var cs = this;
            $.ajax({
              'url': cs.data.updateEpisodeDescriptionsurl,
              'contentType': 'application/json',
              'dataType': 'json',
              'method': 'post',
              'beforeSend': function(xhr) {
                xhr.setRequestHeader('X-TransactionID', LN.TRANSACTION_ID);
              },
              'data': JSON.stringify({
                'selDataSet': $('#ln_topmenu_dataset').attr("dataSetkey"),
                'includeEpisodeTGK': includeEpisodeTGK,
                'excludeEpisodeTGK': excludeEpisodeTGK,
                'selectedIncludeEpisode': selectedIncludeEpisode,
                'selectedExcludeEpisode': selectedExcludeEpisode,
                'includeEpisodeAnyAll': $("#includeEpisodeAnyAll").val(),
                'excludeEpisodeAnyAll': $("#excludeEpisodeAnyAll").val(),
                'searchKey' : $(cs.data.searchTreeInputBox).val().length >= 3 ? $(cs.data.searchTreeInputBox).val() : ""
              }),
              'success': function(data, textStatus, jqXHR) {
                
                cs.updateOutofStockEpisodes(cs,data);
                
                //$(cs.data.availableTreeDiv).jstree(true).settings.core.data = data.availableEpisode;
                //$(cs.data.availableTreeDiv).jstree(true).refresh();
                $(cs.data.availableTreeDiv).jstree("destroy");
                cs.setupAvailableJsTree(cs, data);
                LN.hideAjaxIndicator($(cs.data.availableTreeDiv).parent());
                
               
                if(action == "MoveIncludeRight" || action == "MoveIncludeLeft"){
                 
                  //$(cs.data.includeSelectedTreeDiv).jstree(true).settings.core.data = data.includeEpisode;
                  //$(cs.data.includeSelectedTreeDiv).jstree(true).refresh();
                  $(cs.data.includeSelectedTreeDiv).jstree("destroy");
                  cs.setupIncludeJsTree(cs, data);
                  LN.hideAjaxIndicator($(cs.data.includeSelectedTreeDiv).parent());
                }
                
                else if (action == "MoveExcludeRight" || action == "MoveExcludeLeft"){
                  //$(cs.data.excludeSelectedTreeDiv).jstree(true).settings.core.data = data.excludeEpisode;
                  //$(cs.data.excludeSelectedTreeDiv).jstree(true).refresh();
                  $(cs.data.excludeSelectedTreeDiv).jstree("destroy");
                  cs.setupExcludeJsTree(cs, data);
                  LN.hideAjaxIndicator($(cs.data.excludeSelectedTreeDiv).parent());
                }
                
              },
              'error': function(jqXHR, textStatus, errorThrown) {
              },
              'complete': function(jqXHR, textStatus) {
                //$(cs.data.availableTreeDiv).jstree("destroy");
                //$(cs.data.includeSelectedTreeDiv).jstree("destroy");
                //$(cs.data.excludeSelectedTreeDiv).jstree("destroy");
                //cs.setupJSTree();
                cs.enableOrDisableSelectAllCheckBox();
                
                createTemplateJs.updatePatientCountAjax("/getPatientsCountForConditonTemplate", "&selDataSet=" + $('#ln_topmenu_dataset').attr("dataSetkey")
                        + "&includeEpisodeAnyAll=" +  $("#includeEpisodeAnyAll").val() + "&excludeEpisodeAnyAll=" + $("#excludeEpisodeAnyAll").val());
              }
            });
            
          },
          
          bindSelectAllEvents: function() {
            var cs = this;
            $('#selectAllAvailableEpisodes, #selectAllIncludeEpisodes, #selectAllExcludeEpisodes').on('change',
                    function(e) {
                      e.preventDefault();
                      if (e.currentTarget.id == 'selectAllAvailableEpisodes') {
                        if (e.currentTarget.checked) {
                          $(cs.data.availableTreeDiv).jstree(true).select_all(true);
                        } else {
                          $(cs.data.availableTreeDiv).jstree(true).deselect_all(true);
                        }
                        cs.bindAvailableCheckBoxEvent(e.currentTarget.checked);
                      } else if (e.currentTarget.id == 'selectAllIncludeEpisodes') {
                        if (e.currentTarget.checked) {
                          $(cs.data.includeSelectedTreeDiv).jstree(true).select_all(true);
                        } else {
                          $(cs.data.includeSelectedTreeDiv).jstree(true).deselect_all(true);
                        }
                        cs.bindIncludeCheckBoxEvent();
                      } else if (e.currentTarget.id == 'selectAllExcludeEpisodes') {
                        if (e.currentTarget.checked) {
                          $(cs.data.excludeSelectedTreeDiv).jstree(true).select_all(true);
                        } else {
                          $(cs.data.excludeSelectedTreeDiv).jstree(true).deselect_all(true);
                        }
                        cs.bindExcludeCheckBoxEvent();
                      }

                    });
          },
          
          // Method to handle when user selected all check boxes manually ,
          // Select All check box
          // shold get selected automatically.
          bindAvailableCheckBoxEvent: function(currentTraget) {
            var cs = this;
 
            var selectedArrayLength = $(cs.data.availableTreeDiv).jstree(true).get_selected(false).length;
            var allNodesArray = $(cs.data.availableTreeDiv).jstree(true).get_json('#', {
              'flat': true
            });
            
              if (selectedArrayLength > 0 && selectedArrayLength == allNodesArray.length) {
                $(cs.data.selectAllAvailableEpisodes).prop('checked', true);
              } else {
                $(cs.data.selectAllAvailableEpisodes).prop('checked', false);
              }
              
            if (selectedArrayLength > 0) {
              $(cs.data.withMoveRightButton).prop('disabled', false);
              $(cs.data.withoutMoveRightButton).prop('disabled', false);
            } else {
              $(cs.data.withMoveRightButton).prop('disabled', true);
              $(cs.data.withoutMoveRightButton).prop('disabled', true);
            }

          },
          bindIncludeCheckBoxEvent: function() {
            var cs = this;
            var selectedArrayLength = $(cs.data.includeSelectedTreeDiv).jstree(true).get_selected(false).length;
            var allNodesArray = $(cs.data.includeSelectedTreeDiv).jstree(true).get_json('#', {
              'flat': true
            });
            if (selectedArrayLength > 0 && selectedArrayLength == allNodesArray.length) {
              $(cs.data.selectAllIncludeEpisodes).prop('checked', true);
            } else {
              $(cs.data.selectAllIncludeEpisodes).prop('checked', false);
            }

            if (selectedArrayLength > 0) {
              $(cs.data.withMoveLeftButton).prop('disabled', false);
            } else {
              $(cs.data.withMoveLeftButton).prop('disabled', true);
            }

          },
          bindExcludeCheckBoxEvent: function() {
            var cs = this;
            var selectedArrayLength = $(cs.data.excludeSelectedTreeDiv).jstree(true).get_selected(false).length;
            var allNodesArray = $(cs.data.excludeSelectedTreeDiv).jstree(true).get_json('#', {
              'flat': true
            });
            if (selectedArrayLength > 0 && selectedArrayLength == allNodesArray.length) {
              $(cs.data.selectAllExcludeEpisodes).prop('checked', true);
            } else {
              $(cs.data.selectAllExcludeEpisodes).prop('checked', false);
            }

            if (selectedArrayLength > 0) {
              $(cs.data.withoutMoveLeftButton).prop('disabled', false);
            } else {
              $(cs.data.withoutMoveLeftButton).prop('disabled', true);
            }

          },

          withDefaultTexthideShow: function() {
            var cs = this;
            if ($('#with-selected-list > ul > li').length > 0 || $('#without-selected-list > ul > li').length > 0) {
              $("#with-default-text").hide();
              $("#without-default-text").hide();

            } else {
              $("#with-default-text").show();
            }
          },
          episodeDefaultTexthideShow: function() {
            if ($('#episodeDescTree > ul > li').length > 0) {
              $("#episode-default-text").hide();
              $("#no-Match-Result").hide();

            } else {
              if($("#searchTreeInputBox").val().length >= 3){
                $("#episode-default-text").hide();
                $("#no-Match-Result").show();
              }
              else{
                $("#no-Match-Result").hide();
                $("#episode-default-text").show();
              }
            }
          },
          withoutDefaultTexthideShow: function() {
            if ($('#with-selected-list > ul > li').length > 0 || $('#without-selected-list > ul > li').length > 0) {
              $("#with-default-text").hide();
              $("#without-default-text").hide();

            } else {
              $("#with-default-text").show();
            }
          },
          
          bindDropDownEvents: function() {
            var cs = this;
            $('#includeEpisodeAnyAll, #excludeEpisodeAnyAll').on('change', function(e) {
              e.preventDefault();
              var currentTarget = e.currentTarget;
              var divId = currentTarget.id.match('exclude') ? 'without-selected-list' : 'with-selected-list';
              if ($('#' + divId + ' li.jstree-node').length > 0) {
                cs.getPatientCountAjax();
              }
            });
          },
          
          getPatientCountAjax : function(){
            createTemplateJs.updatePatientCountAjax("/getPatientsCountForConditonTemplate", "&selDataSet=" + $('#ln_topmenu_dataset').attr("dataSetkey")
                    + "&includeEpisodeAnyAll=" +  $("#includeEpisodeAnyAll").val() + "&excludeEpisodeAnyAll=" + $("#excludeEpisodeAnyAll").val());
          },
          enableOrDisableSelectAllCheckBox: function() {
            var cs = this;

            var AvailableDiv = $(cs.data.availableTreeDiv + " > ul >li");
            if (AvailableDiv.length > 0) {
              $(cs.data.selectAllAvailableEpisodes).prop('disabled', false);
            } else {
              $(cs.data.selectAllAvailableEpisodes).prop('disabled', true);
            }

            var includeDiv = $(cs.data.includeSelectedTreeDiv + " > ul >li");
            if (includeDiv.length > 0) {
              $(cs.data.selectAllIncludeEpisodes).prop('disabled', false);
            } else {
              $(cs.data.selectAllIncludeEpisodes).prop('disabled', true);
            }

            var excludeDiv = $(cs.data.excludeSelectedTreeDiv + " > ul >li");
            if (excludeDiv.length > 0) {
              $(cs.data.selectAllExcludeEpisodes).prop('disabled', false);
            } else {
              $(cs.data.selectAllExcludeEpisodes).prop('disabled', true);
            }

          },
          
          onDataSetChangeOfEpisodes : function(cs){
            
            var inlcudeEpisodeJson = [];
            var exlcudeEpisodeJson = [];
            
            var includeSelectedJson = $(cs.data.includeSelectedTreeDiv).jstree(true).get_json();
            $(includeSelectedJson).each(function(i, includeSelectedtobject) {
              
              $(includeSelectedtobject.children).each(function(k, includeSelchildobj) {
                $(includeSelchildobj.children).each(function(l, includeSelsubchildobj) {
                  
                  inlcudeEpisodeJson.push({"id": includeSelsubchildobj.id,
                    "text": includeSelsubchildobj.text,
                    "parent": includeSelchildobj.id});
                  
                  });
              });
            });
            
            var excludeSelectedJson = $(cs.data.excludeSelectedTreeDiv).jstree(true).get_json();
            $(excludeSelectedJson).each(function(i, excludeSelectedtobject) {
              
              $(excludeSelectedtobject.children).each(function(k, excludeSelchildobj) {
                $(excludeSelchildobj.children).each(function(l, excludeSelsubchildobj) {
                
                  exlcudeEpisodeJson.push({"id": excludeSelsubchildobj.id,
                    "text": excludeSelsubchildobj.text,
                    "parent": excludeSelchildobj.id});
                   
                  });
              });
            });
            
            
            var params = JSON.stringify({
              'selDataSet': $('#ln_topmenu_dataset').attr("dataSetkey"),
              'searchKey' : $(cs.data.searchTreeInputBox).val().length >= 3 ? $(cs.data.searchTreeInputBox).val() : "",
              'inlcudeEpisodeJson' : inlcudeEpisodeJson,
              'exlcudeEpisodeJson' : exlcudeEpisodeJson
            });
            
            LN.ajaxPostJSON($(cs.data.availableTreeDiv).parent(), cs.data.getAvailableOnDatasetChangeurl, params, cs.setupJSTreeCallBackOnDataSetChange, cs);
          },
          setupJSTreeCallBackOnDataSetChange: function(cs, data) {
            
            cs.updateOutofStockEpisodes(cs,data);
            
            //Destory 
            $(cs.data.availableTreeDiv).jstree("destroy");
            cs.setupAvailableJsTree(cs, data);
            
            $(cs.data.includeSelectedTreeDiv).jstree("destroy");
            cs.setupIncludeJsTree(cs, data);
            
            $(cs.data.excludeSelectedTreeDiv).jstree("destroy");
            cs.setupExcludeJsTree(cs, data);
                     
            //cs.withDefaultTexthideShow();
            //$("#no-Match-Result").hide();
            //cs.episodeDefaultTexthideShow();

          },
          createIncludeOutOfStockNodes : function() {
            var cs = this;
            
            $(cs.data.includeEpisodesOutOfStock).each(function(i, obj){
              $(cs.data.includeSelectedTreeDiv).jstree(true).create_node(obj.parent, {"id" : obj.id, "text" : obj.text});
            });
          },
          
          addGrayColorTextEpisodesDataSet : function(){
            var cs = this;
            //Open all
            //$(cs.data.specialitiesSelectedDiv).jstree(true).open_all();
            jQuery.each(cs.data.outOfStockEpisodeIds, function(index,value) {
              $('#'+value).addClass('ln-ppm-jsTreetext-light-grey');
            });
          },
          updateOutofStockEpisodes : function(cs, data){
          //Identify outOfStock
            cs.data.outOfStockEpisodeIds = [];
            
            if(data.outOfStockEpisode != ""){
              $(data.outOfStockEpisode).each(function(i,obj){
                cs.data.outOfStockEpisodeIds.push(obj.id);
              });
            }
            
          }
         
 });