﻿/*=================================
  Note Editing
=================================*/
function deleteNote_Callback(resp){
  // Get the index of the returned id
  var noteID = parseInt(resp.responseText);
  
  // Remove the Note ID from the Array
  if (! isNaN(noteID)){
    for (var i = 0; i < notes.length; i++){
      if (notes[i].fldNoteID == noteID){
        notes.splice(i, 1);
      }
    }
  }
  
  // Redraw the notes
  setNotes();
}

function deleteNote_OnClick(e){
  // Get the sender & Note ID
  if (! e) e = window.event;
  var sender = e.srcElement ? e.srcElement : e.target;
  var note = notes[sender.noteIndex];

  // Prompt the user to confirm
  if (! confirm('Are you sure you want to delete this Note?')){
    return;
  }

  // Set the Callback
  ajax.setReadyStateChanged(deleteNote_Callback);
  ajax.send('GET', '/edit/notes.aspx?delete=' +
    '&noteID=' + note.fldNoteID, true, null);
}

function editNote_Callback(resp){
  // Response returns new group data
  getData_Callback(resp);

  // Hide the Note Edit form
  formContainer_Hide(document.getElementById('editNoteContainer'));
}

function editNote_Cancel(sender){
  // Hide the Note Edit form
  formContainer_Hide(document.getElementById('editNoteContainer'));
}

function editNote_OnClick(e){
  // Get the sender & Note ID
  if (! e) e = window.event;
  var sender = e.srcElement ? e.srcElement : e.target;
  var note = notes[sender.noteIndex];
  
  // Fill the Form
  var frm = document.getElementById('editNote');
  frm.noteID.value = note.fldNoteID;
  frm.text.value = note.fldText;

  document.getElementById('editNoteTitle').innerHTML = 'Edit Note';
  formContainer_Show(document.getElementById('editNoteContainer'));
}

function editNote_OnSubmit(frm){
  // Validate the form
  if (frm.text.value.length == 0){
    alert('Text must be given');
    frm.text.focus();
    return false;
  }
  
  // Get around newline bug in firefox (this is a first)
  // textarea.value in firefox is returned with newline as \n (not \r\n)
  var text = frm.text.value;
  if (text.indexOf('\n') > -1 && text.indexOf('\r\n') == -1){
    // \n is only present
    text = text.replace(/\n/g, '\r\n');
  }

  // Get the Data
  var data = 'noteID=' + frm.noteID.value +
    '&text=' + escape(text);
    
  // Set the Callback
  ajax.setReadyStateChanged(editNote_Callback);
  ajax.send('POST', '/edit/notes.aspx', true, data);
  
  return false;
}

function notes_Sort(a, b){
  var field;
  
  switch (Math.abs(noteSort)){
    case 1:
      field = 'fldText';
      break;
    case 2:
      field = 'fldCreatedTS';
      break;
    case 3:
      field = 'fldModifiedTS';
      break;
  }
  
  var f1, f2;
  if (noteSort > 0){
    // Ascending
    f1 = eval('a.' + field);
    f2 = eval('b.' + field)
  }else{
    // Descending
    f1 = eval('b.' + field);
    f2 = eval('a.' + field)
  }
  
  if (f1 > f2){
    return 1;
  }else if (f1 < f2){
    return -1;
  }else{
    return 0;
  }
}

function optAddNote_OnClick(e){
  // Reset the form
  var frm = document.getElementById('editNote');
  frm.noteID.value = '';
  frm.text.value = '';

  // Set the Note Title & Show the form
  document.getElementById('editNoteTitle').innerHTML = 'Add New Note';
  formContainer_Show(document.getElementById('editNoteContainer'));
}

function optViewNotes_OnClick(e){
  // Refresh the Groups
  setGroups();
  setSaved();

  getData(false, false, null, false, false, true);
}

function sortNotes(order){
  noteSort = order;
  notes.sort(notes_Sort);
  
  setNotes();
}
