﻿/*=================================
  Group Editing
=================================*/
function deleteGroup_Callback(resp){
  // Response returns new group data
  getData_Callback(resp);
}

function deleteGroup_OnClick(e){
  // Get the sender & Group ID
  if (! e) e = window.event;
  var sender = e.srcElement ? e.srcElement : e.target;
  var parent = sender.parentNode.parentNode;
  var group = parent.groups[parent.groupIndex];

  // Prompt the user to confirm
  if (! confirm('Are you sure you want to delete the group \'' +
  group.fldName + '\'?')){
    return;
  }

  // Set the Callback
  ajax.setReadyStateChanged(deleteGroup_Callback);
  ajax.send('GET', '/edit/groups.aspx?delete=' +
    (currentGroup == group.fldGroupID ? 'get' : '') +
    '&groupID=' + group.fldGroupID, true, null);
}

function editGroup_Callback(resp){
  // Response returns new group data
  getData_Callback(resp);

  // Hide the Group Edit form
  formContainer_Hide(document.getElementById('editGroupContainer'));
}

function editGroup_Cancel(sender){
  // Hide the Group Edit form
  formContainer_Hide(document.getElementById('editGroupContainer'));
}

function editGroup_OnClick(e){
  // Get the sender & Group ID
  if (! e) e = window.event;
  var sender = e.srcElement ? e.srcElement : e.target;
  var parent = sender.parentNode.parentNode;
  var group = parent.groups[parent.groupIndex];
  
  // Fill the Form
  var frm = document.getElementById('editGroup');
  frm.groupID.value = group.fldGroupID;
  frm.col1.value = group.fldColumn1;
  frm.col2.value = group.fldColumn2;
  frm.col3.value = group.fldColumn3;
  frm.col4.value = group.fldColumn4;
  frm.col5.value = group.fldColumn5;
  frm.col6.value = group.fldColumn6;
  frm.pub.checked = (group.fldAttributes & 1);
  frm.name.value = group.fldName;
  frm.desc.value = group.fldDescription;

  document.getElementById('editGroupTitle').innerHTML = 'Edit Group';
  formContainer_Show(document.getElementById('editGroupContainer'));
}

function editGroup_OnSubmit(sender){
  // Get the Form
  var frm = document.getElementById('editGroup');
  
  // Validate the form
  if (frm.name.value.length == 0){ // Name
    alert('Name must be given');
    frm.name.focus();
    return false;
  }
  
  // Get the Data
  var data = 'name=' + escape(frm.name.value) +
    '&desc=' + escape(frm.desc.value) +
    '&col1=' + escape(frm.col1.value) +
    '&col2=' + escape(frm.col2.value) +
    '&col3=' + escape(frm.col3.value) +
    '&col4=' + escape(frm.col4.value) +
    '&col5=' + escape(frm.col5.value) +
    '&col6=' + escape(frm.col6.value) +
    (frm.pub.checked ? '&pub=on' : '') +
    '&groupID=' + escape(frm.groupID.value) +
    (frm.groupID.value == currentGroup ? '&get=' : '');
    
  // Set the Callback
  ajax.setReadyStateChanged(editGroup_Callback);
  ajax.send('POST', '/edit/groups.aspx', true, data);
  
  return false;
}

function moveGroup_Callback(resp){
  // Response returns new group data
  getData_Callback(resp);
}

function moveGroup_OnClick(e){
  // Get the sender
  if (! e) e = window.event;
  var sender = e.srcElement ? e.srcElement : e.target;
  var parent = sender.parentNode.parentNode;
  var group = parent.groups[parent.groupIndex];
  
  // Get the direction to move the group
  var direction = (sender.src.indexOf('up') > -1) ? -1 : 1;
  
  // Set the Callback
  ajax.setReadyStateChanged(moveGroup_Callback);
  ajax.send('GET', '/edit/groups.aspx?move=' + direction +
    '&groupID=' + group.fldGroupID, true, null);
}

function optAddGroup_OnClick(e){
  // Reset the form
  var frm = document.getElementById('editGroup');
  frm.groupID.value = '';
  frm.name.value = '';
  frm.desc.value = '';
  frm.col1.value = '';
  frm.col2.value = '';
  frm.col3.value = '';
  frm.col4.value = '';
  frm.col5.value = '';
  frm.col6.value = '';
  frm.pub.checked = false;

  // Set the Group Title & Show the form
  document.getElementById('editGroupTitle').innerHTML = 'Add New Group';
  formContainer_Show(document.getElementById('editGroupContainer'));
}

function saveGroup_Callback(resp){
  // Response returns new group data
  getData_Callback(resp);

  // Hide the Save Group button
  document.getElementById('saveGroup').style.display = 'none';
}

function saveGroup_OnClick(e){
  // Set the Callback
  ajax.setReadyStateChanged(saveGroup_Callback);
  ajax.send('GET', '/edit/groups.aspx?save=' +
    '&groupID=' + currentGroup, true, null);
}

function selGroup_OnChange(sender){
  // Clear all the options
  var cols = sender.form.column;
  cols.options.length = 1;
  
  // Get the Group
  var group;
  for (var i = 0; i < groups.length; i++){
    if (groups[i].fldGroupID == sender.value){
      group = groups[i];
      break;
    }
  }
  
  // If a group was found, use it's columns
  if (group){
    for (var i = 1; i <=6; i++){
      cols.options[i] = new Option(eval('group.fldColumn' + i), i);
    }
  }
}

function viewGroup_OnClick(e){
  // Get the sender
  if (! e) e = window.event;
  var sender = e.srcElement ? e.srcElement : e.target;
  var parent = sender.parentNode;
  var group = parent.groups[parent.groupIndex];
  
  // Get the Links
  getGroup(group.fldGroupID);
}

function viewPublicGroup_OnClick(e){
}