
var gblSrtBy;
var gblSrtOrd; // 'Desc' / 'Asc'
var gblDrctrNam = []; // array for copy of values in database, used for [Cancel Edit] feature

function Busy(strPrm) {
  if (strPrm == 'Show') {
    document.getElementById('spnBusy').className = 'showCancel';
  } else { // strPrm == 'Hide'
    document.getElementById('spnBusy').className = 'hideCancel';
  }
} // Busy

function btnFilterClk() { // user clicked Filter button
  DspRefresh(); // refresh display with new filter
} // btnFilterClk

function btnFilterClr() { // user clicked Clear Filter button
  document.getElementById('txtLessonTitle').value = ''; // blank out title filter textbox
  DspRefresh(); // refresh display with empty filter
} // btnFilterClr

function btnReverseClk() { // user clicked Reverse button
  if (gblSrtOrd == 'Asc') { // swap current sort order
    gblSrtOrd = 'Desc';
  } else {
    gblSrtOrd = 'Asc';
  }
  DspRefresh(); // refresh display with new order
} // btnReverseClk

function ContentDsp(intLsnId) { // populate hidden control with value of this LsnId and submit the right form
  document.frmActArch.hdnLsnId.value = intLsnId;
  document.frmActArch.submit();
  return false;
} // ContentDsp

function DspRefresh() { // user clicked Reverse button OR selected new item in SortBy dropdown listbox
  var ctlSrtBy; // dropdown list control
  var strSrtBy; // dropdown list value
  var strTitle = document.getElementById('txtLessonTitle').value;
  var strHtml;

  ctlSrtBy = document.getElementById('drpSrtBy');            // get dropdown list control
  strSrtBy = ctlSrtBy.options[ctlSrtBy.selectedIndex].value; // get its value

//alert('SrtBy ' + strSrtBy + '\n' + 'SrtOrd ' + gblSrtOrd); // DEBUG Only
  Busy('Show');
  strHtml = frmActsArch.SearchResultsGet(strSrtBy, gblSrtOrd, strTitle); // get new listing
  if (strHtml.error != null) { // we have an error
    strHtml.value = strHtml.error.name; // display error name
  }
  Busy('Hide');
  document.getElementById('divBdy').innerHTML = strHtml.value; // display it
} // DspRefresh

function drpSrtByChg() { // user selected new item in SortBy dropdown list
  var ctlSrtBy; // dropdown list control
  var strSrtBy; // dropdown list value

  ctlSrtBy = document.getElementById('drpSrtBy');            // get dropdown list control
  strSrtBy = ctlSrtBy.options[ctlSrtBy.selectedIndex].value; // get control's value

  if (strSrtBy == gblSrtBy) return; // if value has not changed from previous selection then abort
  gblSrtBy = strSrtBy;              // remember new selection for next time around

  if (strSrtBy == 'Expiration Date') gblSrtOrd = 'Desc'; // set new sort
  if (strSrtBy == 'Release Date'   ) gblSrtOrd = 'Desc'; //   direction based
  if (strSrtBy == 'Title'          ) gblSrtOrd = 'Asc';  //   on new SortBy

  DspRefresh(); // update display
} // drpSrtByChg

function cancelLink(id, strDirNam) { // user clicked [Cancel]
  // calls are supposed to pass in the old value to be restored to the display
  document.getElementById('editLink'   + id).innerHTML = '[Edit]';      // change this link's label back to display mode
  document.getElementById('cancelLink' + id).className = 'hideCancel' ; // hide the Cancel command
  document.getElementById('txt'        + id).className = 'txtDirName0'; // change edit box to display only

  document.getElementById('txt' + id).value = strDirNam;                // put passed-in value into edit box (looks like a static label)
  document.getElementById('txt' + id).readOnly = true;                  // disallow editing
} // cancelLink

function updateLink(id) { // user clicked this link (label is [Edit] while in Display mode or [Update] while in Edit mode)
  var dirNew; // new value from edit box

  if (document.getElementById('editLink'   + id).innerHTML == '[Edit]') {   // we're in Display mode so enter Edit mode
      document.getElementById('editLink'   + id).innerHTML =  '[Save]';     // set label to reflect command's effect
      document.getElementById('cancelLink' + id).className = 'showCancel';  // display the Cancel command
      document.getElementById('txt'        + id).className = 'txtDirName1'; // change edit box to edit mode
      document.getElementById('txt'        + id).readOnly  = false;         // allow editing
      gblDrctrNam[id] = document.getElementById('txt'        + id).value;   // remember existing value
  if (document.getElementById('txt'        + id).value == '[None]') document.getElementById('txt' + id).value = ''; // convert <empty> indicator to actual empty
      document.getElementById('txt'        + id).focus();                   // put user in edit box
      return;                                                               // we're done
  } // Display mode -> Edit mode

  if (document.getElementById('editLink'   + id).innerHTML == '[Save]') {   // we're in Edit mode so enter Display mode
      document.getElementById('editLink'   + id).innerHTML =  '[Edit]';     // set label to reflect command's effect
      document.getElementById('cancelLink' + id).className = 'hideCancel';  // hide the Cancel command
      document.getElementById('txt'        + id).className = 'txtDirName0'; // change edit box to display onlly
  if (document.getElementById('txt'        + id).value == '') document.getElementById('txt' + id).value = '[None]'; // convert actual empty to <empty> indicator
      document.getElementById('txt'        + id).readOnly  = true;          // disallow editing

    dirNew = document.getElementById('txt' + id).value; // get new value from edit box
    dirNew = Trim(dirNew);                              // remove leading and trailing whitespace
    document.getElementById('txt' + id).value = dirNew; // update display
  //gblDrctrNam[id] = dirNew;                           // remember new value
    Busy('Show');
    var val = frmActsArch.DirectorSave(id, dirNew);     // save new value to back end
    Busy('Hide');
  } // Edit mode -> Display mode
} // updateLink

function key_press(Evnt, id) { // user pressed a key in a Course Director edit box
  if (document.getElementById('editLink' + id).innerHTML == '[Save]') { // we're in Edit mode
  //var strDirNam;
    var intKey;

  //strDirNam = document.getElementById('txt' + id).value; // get value from edit box

    intKey = KeyCodeGet(Evnt);                              // get user's keystroke
    if (intKey == 13) { updateLink (id                 ); } // execute command for Enter  key
    if (intKey == 27) { cancelLink (id, gblDrctrNam[id]); } // execute command for Escape key
  } // in Edit mode
} // key_press

function txtLsnTitleKey(Evnt) {
    var intKey;

    intKey = KeyCodeGet(Evnt);            // get user's keystroke
    if (intKey == 13) { btnFilterClk(); } // execute command for Enter  key
  //if (intKey == 27) { cancelLink (id, gblDrctrNam[id]); } // execute command for Escape key
} // txtLsnTitleKey
