$(document).ready(function() {

  $('#submitMassEdit').click(function() {
    var editArr = new Array();

    $('.editCheck').each(function() {
      if (this.checked == true) {
        editArr.push($(this).attr('id').split('-')[1]);
      }
    });

    if (editArr.length == 0) {
        return;
    }

    url = 'massEdit?toEdit=' + editArr.join('|');
    window.location.href = url;
  });


  $('#submitMassUpdate').click(function() {

    var updateArr = new Array();
    var refreshArr = new Array();
    var renameArr = new Array();
    var deleteArr = new Array();
    var metadataArr = new Array();

    $('.updateCheck').each(function() {
      if (this.checked == true) {
        updateArr.push($(this).attr('id').split('-')[1]);
      }
    });

    $('.refreshCheck').each(function() {
      if (this.checked == true) {
        refreshArr.push($(this).attr('id').split('-')[1]);
      }
    });

    $('.renameCheck').each(function() {
      if (this.checked == true) {
        renameArr.push($(this).attr('id').split('-')[1]);
      }
    });

    $('.deleteCheck').each(function() {
      if (this.checked == true) {
        deleteArr.push($(this).attr('id').split('-')[1]);
      }
    });

/*
    $('.metadataCheck').each(function() {
      if (this.checked == true) {
        metadataArr.push($(this).attr('id').split('-')[1]);
      }
    });
*/
    if (updateArr.length + refreshArr.length + renameArr.length + deleteArr.length + metadataArr.length == 0) {
      return false;
    }

    url = 'massUpdate?toUpdate=' + updateArr.join('|') + '&toRefresh=' + refreshArr.join('|') + '&toRename=' + renameArr.join('|') + '&toDelete=' + deleteArr.join('|') + '&toMetadata=' + metadataArr.join('|');

    window.location.href = url;

  });

  $('.bulkCheck').click(function() {

    var bulkCheck = this;
    var whichBulkCheck = $(bulkCheck).attr('id');

    $('.'+whichBulkCheck).each(function() {
        if (!this.disabled) {
            this.checked = !this.checked;
        }
    });
  });

  ['.editCheck', '.updateCheck', '.refreshCheck', '.renameCheck', '.deleteCheck'].forEach(function(name) {
    var lastCheck = null;

    $(name).click(function(event) {

      if(!lastCheck || !event.shiftKey) {
        lastCheck = this;
        return;
      }

      var check = this;
      var found = 0;

      $(name).each(function() {
        switch (found) {
          case 2: return false;
          case 1: 
            if (!this.disabled) {
              this.checked = lastCheck.checked;
            }
        }

        if (this == check || this == lastCheck) {
          found++;
        }
      });

      lastClick = this;
    });

  });

});
