jQuery().ready(function() {
  // applying the settings
  jQuery('#edit-field-publication-id-nids').change( function() { onChangePublication(this); } );
  jQuery('#edit-field-publication-issue-node-id-nids').change( function() { onChangeIssue(this); } );

});

var departments = new Array();

/**
 *
 */
function onChangePublication(sel) {
  getDepartments('publication', sel.value);
}

function onChangeIssue(sel) {
  getDepartments('publication-issue', sel.value);
}

/**
 *
 */
function getDepartments(typ, nid) {

  if (departments[nid]) {
    populateDepartments(departments[nid]);
    return;
  }

  var path = "/"+ typ + "/ac/" + nid + "/departments";
  $.post(path, null, getDepartmentsCallback, "json");
}

/**
 *
 */
function getDepartmentsCallback(R) {
  if (R.status) {
    departments[R.status] = R.data;
    populateDepartments(R.data);
  }
  else {
    populateDepartments(null);
  }
}

/**
 *
 */
function getDepartmentHtmlId() {
  var vid = Drupal.settings.publications.taxonomy_department_vid;
  return "edit-taxonomy-"+vid;
}

/**
 *
 */
function clearDepartments() {
  $("#"+getDepartmentHtmlId()).empty();
}

/**
 *
 */
function populateDepartments(data) {
  clearDepartments();

  var options = '<option value="">- None -</option>';
  if (data) {
    for (i in data) {
      options += '<option value="' + i + '">' + data[i] + '</option>';
    }
  }
  $("#"+getDepartmentHtmlId()).html(options);
}


function weightReorderOnDragStart(table, row) {
  $(row).addClass('weightOnDragStart');
}

function weightReorderOnDrop(table, row) {
  $(row).removeClass('weightOnDragStart');
  var rows = table.tBodies[0].rows;
  var weight=1, W, R, id, info, cls='even';
  for (var i=0; i<rows.length; i++) {
    cls = (cls=='even') ? 'odd' : 'even';
    R   = $("#"+rows[i].id);
    W   = $("#edit-"+rows[i].id+"-weight");
    R.removeClass('even odd');
    R.addClass(cls);
    W.val(weight++);
  }
}    
