title: Error this.areaTrovata is not a function
body: <p>Hi all and thanks a lot for who will answer me.
  I have this code:</p>
  
  <pre><code>&lt;script&gt;
      Polymer({
        is: 'go-catalog-tree',
        properties:{
          items: Array,
          areas: Array,
          prova_area: String,
          prova_name: String,
          end_read_items: {
            type: Boolean,
            value: false
          },
          end_read_areas: {
            type: Boolean,
            value: false
          },
          selectedFolder: {
            type: Object,
            value: {
              name: '',
              area:'',
              children: '',
            },
            notify: true,
          },
        },
          areaTrovata: function(area, child) {
            for(var i=0; i &lt; child.length; i++)
            {
                if(area.compareTo(child.area) == 0)
                   return child[i];
                else 
                   return areaTrovata(area, child);
            }
          },
        loadData: function() {
          this.$.axGetAreas.generateRequest();
          this.$.axGetItems.generateRequest();
        },
  
        // add a callback to the element's prototype
        ready: function() {
          //document.getElementById('catalogTree')
          //  .addEventListener('folderSelected', this.selectedFolder);
  
          this.loadData();
        },
  
        // first argument is the change record for the array change,
        // change.base is the array specified in the binding
        arrayItem: function(change, index, path) {
          // this.get(path, root) returns a value for a path
          // relative to a root object.
          return this.get(path, change.base[index]);
        },
  
  
  
  
        getItems: function(area){
          var items =[];
  
          for(var i=0; i &lt; this.items.length; i++){
            if (this.items[i].area === area){
              items.push({
                'name': this.items[i].area + ' ' + this.items[i].item + ' ' + this.items[i].name,
                'open': true,
                'shared': true,
                'id': this.items[i].id,
                'area': this.items[i].area,
                'name': this.items[i].name,
                'matnr': this.items[i].matnr,
                'price': this.items[i].price,
                'currency': this.items[i].currency,
                'item': this.items[i].item,
                'layout': this.items[i].layout,
                'children': [],
              });
            }
          }
  
          return items;
        },
  
        getSubAreas: function(areas, area, parent){
            if(area.leaf !== null &amp;&amp; area.leaf === 'X'){
             return this.getItems(area.area);
  
            }else{
                  var children = [];
  
                  for(var i=0; i &lt; areas.length; i++){
                  if (areas[i].parent === parent){
                      children.push({
                    'name': areas[i].name,
                    'open': true,
                    'depth': areas[i].depth,
                    'shared': false,
                    'children': this.getSubAreas(areas, areas[i], areas[i].area)
                  });
                }
              }
                  return children;
          }
        },
  
        handleResponseItems: function() {
          this.items = this.$.axGetItems.lastResponse.items;
          this.end_read_items = true;
  
          if (this.end_read_areas &amp;&amp; this.end_read_items){
            this.displayTree();
          }
        },
  
        handleResponseAreas: function() {
          this.areas = this.$.axGetAreas.lastResponse.areas;
          this.end_read_areas = true;
  
          if (this.end_read_areas &amp;&amp; this.end_read_items){
            this.displayTree();
          }
        },
  
        displayTree: function() {
          var list = [];
  
          for(var i=0; i &lt; this.areas.length; i++){
              if(this.areas[i].parent === undefined ||
              this.areas[i].parent === null ||
              this.areas[i].parent === '')
            {
                  list.push({
                'name': this.areas[i].name,
                'open': true,
                'area': this.areas[i].area,
                'depth': this.areas[i].depth,
                'shared': false,
                'children': this.getSubAreas(
                              this.areas,
                              this.areas[i],
                              this.areas[i].area
                            )
              });
              }
          }
  
          this.areas = [];
          this.items = [];
          this.end_read_areas = false;
          this.end_read_items = false;
  
  
          document.querySelector('file-tree').data = {
            'name': 'Catalog',
            'open': true,
            'shared': false,
            'children': list
          };
          document.querySelector('file-tree')
            .addEventListener('folderSelected', this.eventSelectedFolder);
            document.getElementById('mybtn').addEventListener('click', this.eventButtonPressed);
        },
  
        eventSelectedFolder: function(event){
  
          this.selectedFolder = {
            'name': event.detail.data.name,
            'area': event.detail.data.area,
            'children': event.detail.data.children,
          };
          this.prova_area = this.selectedFolder.area;
          this.prova_name = this.selectedFolder.name;
  
          console.log(this.selectedFolder);
          //console.log(this.areaTrovata);
          console.log(this.prova_area);
        },
        addFolder: function(valore_nuovo, area, child){
        var list=[];
  
        for(var i = 0; i &lt; child.length; i++)
        {
          if(this.area[i].parent === undefined ||
              this.area[i].parent === null ||
              this.area[i].parent === '')
            {
                  list.push({
                'name': valore_nuovo,
                'open': true,
                'area': this.areas[i].area,
                'depth': this.areas[i].depth,
                'shared': false,
                'children': this.getSubAreas(
                              this.area,
                              this.area[i],
                              this.area[i].area
                            )
              });
              }
        }
          document.querySelector('file-tree').data = {
            'name': 'Catalog',
            'open': true,
            'shared': false,
            'children': list
          };
          document.querySelector('file-tree')
            .addEventListener('folderSelected', this.eventSelectedFolder);
            document.getElementById().addEventListener('click', this.eventButtonPressed);
        },
         eventButtonPressed: function(e){
           return this.addFolder(document.getElementsByName("gianni"), this.prova_area, 
           this.areaTrovata(this.prova_area,
           document.querySelector('file-tree').data.children));
           console.log(this.addFolder(document.getElementsByName("gianni"), this.prova_area, 
           this.areaTrovata(this.prova_area,
           document.querySelector('file-tree').data.children)));
  
          },    
  
  
  
  
     });
    &lt;/script&gt;
  </code></pre>
  
  <p>and when i press the button the console return me: "this.areaTrovata is not a function".
  I really have no idea of what is happening because it's since a week that i am working on this project.
  Thanks again for the help.</p>