/**************************************************
 ** Global Variables                             **
 **************************************************/

/**************************************************
 ** UserOptions Functions                        **
 **************************************************/

/**     
 * doViewFilters
 *
 * Load's the users current account filters.
 *
 */
function doViewFilters() {
  var request = createXMLHttpRequest();

  changeById('helpContainer', '<div id="APRSMail:Filters:Data"></div>'
                              + '<div id="APRSMail:Filters:Error" style="color: red; font-size: 8px; font-weight: bold; text-transform: uppercase"></div>'
            );

  if (!loggedIn) {
    changeById('APRSMail:Filters:Error', 'You must be logged in to use this feature.');
    return;
  } // if

  changeById('APRSMail:Filters:Error', "Loading account information...");

  var queryString = "/ajax/aprsmail/filters/view.php?h="
                    + seed;

  request.open("GET", queryString, true);
  request.onreadystatechange = function() {

    if (request.readyState == 4) {
      var xmlDoc = request.responseXML;

      var retData = new Array();
      xmlArray("/openaprs/reply", xmlDoc, retData);
      for (i=0; i < retData.length; i++) {
        if (retData[i]["done"] == "yes") {
          changeById('APRSMail:Filters:Data', retData[i]["response"]);
          changeById('APRSMail:Filters:Error', '');
        } // if
        else {
          //changeById('helpContainer', "There was an error loading your inbox.");
          changeById(retData[i]["field"], retData[i]["response"]);
        } // else
      } // for

    } // if

  } // function()

  request.send(null);
} // doViewFilters

/**     
 * doChangeFilters
 *
 * Load's the users current account.
 *
 */
function doChangeFilters() {
  var request = createXMLHttpRequest();

  //changeById('helpContainer', '<div id="APRSMail:Filters:Data"></div>'
  //                            + '<div id="APRSMail:Filters:Error" style="color: red; font-size: 8px; font-weight: bold; text-transform: uppercase"></div>'
  //          );

  if (!loggedIn) {
    changeById('APRSMail:Filters:Error', 'You must be logged in to use this feature.');
    return;
  } // if

  changeById('APRSMail:Error:Enable', '');
  changeById('APRSMail:Error:Open', '');
  changeById('APRSMail:Error:WhiteList', '');
  changeById('APRSMail:Error:Pin', '');
  changeById('APRSMail:Error:Timezone', '');

  changeById('APRSMail:Filters:Error', "Storing account information...");

  /**
   * Default Variables
   *
   * Span through the possible field values
   * and set our variable list accordingly.
   *
   */
  var ids = {
    "e": "APRSMail:Form:Enable",
    "o": "APRSMail:Form:Open",
    "w": "APRSMail:Form:WhiteList",
    "p": "APRSMail:Form:Pin",
    "tz": "APRSMail:Form:Timezone"
  }
  
  var dfts = {
    "e": "1",
    "o": "0",
    "w": "0",
    "p": "",
    "tz": "America/Los_Angeles"
  }
    
  var var_list = createURI(document, false, ids, dfts);


  var queryString = "/ajax/aprsmail/useroptions/change.php?h="
                    + seed
                    + var_list;

  request.open("GET", queryString, true);
  request.onreadystatechange = function() {

    if (request.readyState == 4) {
      var xmlDoc = request.responseXML;

      var retData = new Array();
      xmlArray("/openaprs/reply", xmlDoc, retData);
      for (i=0; i < retData.length; i++) {
        if (retData[i]["done"] == "yes") {
          changeById('APRSMail:UserOptions:Data', retData[i]["response"]);
          changeById('APRSMail:UserOptions:Error', 'Account information stored.');
        } // if
        else {
          changeById('APRSMail:UserOptions:Error', "There was an error storing your account information.");
          changeById(retData[i]["field"], retData[i]["response"]);
        } // else
      } // for

    } // if

  } // function()

  request.send(null);
} // doChangeFilters

/**     
 * doAddFilter
 *
 * Load's the users current account.
 *
 */
function doAddFilter() {
  var request = createXMLHttpRequest();

  //changeById('helpContainer', '<div id="APRSMail:Filters:Data"></div>'
  //                            + '<div id="APRSMail:Filters:Error" style="color: red; font-size: 8px; font-weight: bold; text-transform: uppercase"></div>'
  //          );

  if (!loggedIn) {
    changeById('APRSMail:Filters:Error', 'You must be logged in to use this feature.');
    return;
  } // if

  changeById('APRSMail:Error:Header', '');
  changeById('APRSMail:Error:Match', '');
  changeById('APRSMail:Error:Action', '');

  changeById('APRSMail:Filters:Error', "Storing filter information...");

  /**
   * Default Variables
   *
   * Span through the possible field values
   * and set our variable list accordingly.
   *
   */
  var ids = {
    "hd": "APRSMail:Form:Add:Header",
    "m": "APRSMail:Form:Add:Match",
    "a": "APRSMail:Form:Add:Action"
  }
  
  var dfts = {
    "hd": "1",
    "m": "",
    "a": "accept"
  }
    
  var var_list = createURI(document, false, ids, dfts);


  var queryString = "/ajax/aprsmail/filters/add.php?h="
                    + seed
                    + var_list;

  request.open("GET", queryString, true);
  request.onreadystatechange = function() {

    if (request.readyState == 4) {
      var xmlDoc = request.responseXML;

      var retData = new Array();
      xmlArray("/openaprs/reply", xmlDoc, retData);
      for (i=0; i < retData.length; i++) {
        if (retData[i]["done"] == "yes") {
          changeById('APRSMail:Filters:Data', retData[i]["response"]);
          changeById('APRSMail:Filters:Error', 'Filter information stored.');
        } // if
        else {
          changeById('APRSMail:Filters:Error', "There was an error storing your filter information.");
          changeById(retData[i]["field"], retData[i]["response"]);
        } // else
      } // for

    } // if

  } // function()

  request.send(null);
} // doAddFilter

/**     
 * doRemoveFilter
 *
 * Load's the users current account.
 *
 */
function doRemoveFilter(filter_id) {
  var request = createXMLHttpRequest();

  //changeById('helpContainer', '<div id="APRSMail:Filters:Data"></div>'
  //                            + '<div id="APRSMail:Filters:Error" style="color: red; font-size: 8px; font-weight: bold; text-transform: uppercase"></div>'
  //          );

  if (!loggedIn) {
    changeById('APRSMail:Filters:Error', 'You must be logged in to use this feature.');
    return;
  } // if

  changeById('APRSMail:Filters:Error', "Storing removing filter information...");

  var queryString = "/ajax/aprsmail/filters/remove.php?h="
                    + seed
                    + "&f="
                    + filter_id;

  request.open("GET", queryString, true);
  request.onreadystatechange = function() {

    if (request.readyState == 4) {
      var xmlDoc = request.responseXML;

      var retData = new Array();
      xmlArray("/openaprs/reply", xmlDoc, retData);
      for (i=0; i < retData.length; i++) {
        if (retData[i]["done"] == "yes") {
          changeById('APRSMail:Filters:Data', retData[i]["response"]);
          changeById('APRSMail:Filters:Error', 'Filter information removed.');
        } // if
        else {
          changeById('APRSMail:Filters:Error', "There was an error removing your filter information.");
          changeById(retData[i]["field"], retData[i]["response"]);
        } // else
      } // for

    } // if

  } // function()

  request.send(null);
} // doRemoveFilter


