/**
 * ***WARNING*** This file is automatically generated DIRECT EDITS WILL BE LOST!
 *
 * NstAcro - Database of Acronym definitions to provide:
 *
 * - Ability to get lookup the "show" (how the acronym should appear) as well as
 *   how to URL associated with acronym as JavaScript string:
 *
 *    var show = NstAcro.getShow("XML");
 *    var expanded = NstAcro.getDefinition("XML");
 *    var url = NstAcro.getUrl("XML");
 *
 * - Ability to get URL associated with acronym as JavaScript string:
 *
 *    var url = NstAcro.getUrl("XML");
 *
 * NOTE: If you want to prefer man page display, you must set the "anchor" of
 * your man page URL (we will append the name of the man page). For example,
 * on the NST WUI, invoke the following: 
 *
 * if (window.NstAcro) {
 *   NstAcro.setManUrl("/nstwui/cgi-bin/system/man.cgi?action=man&page=");
 * }
 */

var NstAcro = new function() {
  this._Acronym = [];
  this._Show = [];
  this._Definition = [];
  this._Url = [];
  this._Man = [];

  this._ManUrl = false;

  // Set to true if running on NST WUI (and man pages are available)
  this._NstWui = false;

  // See if we are able to use DOM tooltips
  this._EnableDomTT = false;
  if (window.domTT_tooltips) {
    this._EnableDomTT = true;
  }
}

NstAcro.setManUrl = function(manUrlPrefix) {
  this._ManUrl = manUrlPrefix;
}

NstAcro.setShow = function(a, text) {
  this._Show[a] = text;
}

NstAcro.getShow = function(a) {
  if (this._Show[a]) {
    return this._Show[a];
  }
  return a;
}

NstAcro.setDefinition = function(a, definition) {
  this._Definition[a] = definition;
}

NstAcro.getDefinition = function(a) {
  if (this._Definition[a]) {
    return this._Definition[a];
  }
  return a;
}

NstAcro.setUrl = function(a, url) {
  this._Url[a] = url;
}

NstAcro.getUrl = function(a) {
  // Prefer man page link (if possible)
  if (this._ManUrl) {
    var man = this._Man[a];
    if (man) {
      return this._ManUrl + escape(man);
    }
  }
  var url = this._Url[a];
  if (url) {
    return url;
  }

  url = "http://www.google.com/search?q=wiki+" + a;

  // Add definition (if available)
  if (this._Definition[a]) {
    url += "+" + escape(this._Definition[a]);
  }

  return url;
}

NstAcro.setMan = function(a, man) {
  this._Man[a] = man;
}

NstAcro.getMan = function(a) {
  // Might return undefined value
  return this._Man[a];
}

NstAcro.showInfo = function(acro) {
  var url = this.getUrl(acro);
  if (url) {
    window.location = url;
  }
}

NstAcro.ttActivate = function(node, event, acro, definition) {
  var show = this.getShow(acro);

  // If passed a definition, lookup from database
  if (!definition) {
    definition= this.getDefinition(acro);
  }

  // If able to determine URL, then set href of node
  var url = this.getUrl(acro);
  if (url) {
    node.href = url;
  }

  if (this._EnableDomTT) {
    var tt = "<span class='ttEmphasis'>"
           + show + "</span>: "
           + "<span class='ttValue'>"
           + definition
           "</span>";

    var width = (8 * (show.length + definition.length + 2));

    domTT_activate(node, event, 'content', tt, 'width', width);
  } else {
    node.title = show + ": " + definition;
  }
}
    NstAcro.setDefinition("ACL","Access Control List");
NstAcro.setDefinition("AES","Advanced Encryption Standard");
NstAcro.setDefinition("AIM","AOL Instant Messenger");
NstAcro.setDefinition("ALSA","Advanced Linux Sound Architecture");
NstAcro.setDefinition("AOL","America OnLine - Global Internet Service");
NstAcro.setDefinition("AP","Access Point");
NstAcro.setDefinition("API","Application Programming Interface");
NstAcro.setDefinition("AJAX","Asynchronous JavaScript And XML");
NstAcro.setDefinition("AS","Autonomous System");
NstAcro.setDefinition("ASCII","American Standard Code for Information Interchange");
NstAcro.setDefinition("ASN","Abstract Syntax Notation One");
NstAcro.setDefinition("ATA","AT Attachment");
NstAcro.setDefinition("AUP","Acceptable Use Policy");
NstAcro.setDefinition("BIOS","Basic Input/Output System");
NstAcro.setDefinition("BMC","Baseboard Management Controller");
NstAcro.setDefinition("BSS","Basic Service Set");
NstAcro.setDefinition("BSSID","Basic Service Set Identifier");
NstAcro.setDefinition("BZIP2","Lossless Data Compression Algorithm");
NstAcro.setDefinition("C","Programming Language: C");
NstAcro.setDefinition("CCM","Counter Mode with CBC-MAC (a authenticated encryption algorithm)");
NstAcro.setDefinition("CD","Compact Disc");
NstAcro.setDefinition("CGI","Common Gateway Interface");
NstAcro.setDefinition("CIDR","Classless Inter-Domain Routing");
NstAcro.setDefinition("CIFS","Common Internet File System");
NstAcro.setMan("CIFS","smbd");
NstAcro.setDefinition("CPU","Central Processing Unit");
NstAcro.setDefinition("CRC","Cyclic Redundancy Check");
NstAcro.setDefinition("CRT","Cathode Ray Tube");
NstAcro.setDefinition("CSS","Cascading Style Sheets");
NstAcro.setDefinition("CSV","Comma Separated Values");
NstAcro.setDefinition("CTS","Clear To Send");
NstAcro.setDefinition("CUPS","Common UNIX Printing System");
NstAcro.setDefinition("CVS","Concurrent Versions System");
NstAcro.setDefinition("DCD","Data Carrier Detect");
NstAcro.setDefinition("DCE","Data Communications Equipment");
NstAcro.setDefinition("DHCP","Dynamic Host Configuration Protocol");
NstAcro.setDefinition("DMI","Desktop Management Interface");
NstAcro.setDefinition("DNS","Domain Name System");
NstAcro.setDefinition("DOM","Document Object Model");
NstAcro.setDefinition("DPI","Dots Per Inch");
NstAcro.setDefinition("DSR","Data Set Ready");
NstAcro.setDefinition("DTE","Data Terminal Equipment");
NstAcro.setDefinition("DTR","Data Terminal Ready");
NstAcro.setDefinition("DVD","Digital Versatile Disc");
NstAcro.setDefinition("EAP","Extensible Authentication Protocol");
NstAcro.setDefinition("FRU","Field Replaceable Unit");
NstAcro.setDefinition("FQDN","Fully Qualified Domain Name");
NstAcro.setDefinition("FTP","File Transfer Protocol");
NstAcro.setDefinition("GDM","GNOME Display Manager");
NstAcro.setDefinition("GNU","GNU's Not Unix");
NstAcro.setDefinition("GNOME","GNU Network Object Module Environment");
NstAcro.setDefinition("GPS","Global Positioning System");
NstAcro.setDefinition("GPL","GNU General Public License");
NstAcro.setDefinition("GUI","Graphical User Interface");
NstAcro.setDefinition("GIF","Graphics Interchange Format");
NstAcro.setDefinition("GUID","Global Unique IDentifier");
NstAcro.setDefinition("GZIP","GNU Data Compression Algorithm");
NstAcro.setDefinition("HAL","Hardware Abstraction Layer");
NstAcro.setDefinition("HTML","HyperText Markup Language");
NstAcro.setDefinition("HTTP","HyperText Transfer Protocol");
NstAcro.setDefinition("HTTPS","HyperText Transfer Protocol over Secure Socket Layer");
NstAcro.setDefinition("IAB","Individual Address Block");
NstAcro.setDefinition("IBSS","Independent Basic Service Set");
NstAcro.setDefinition("ICMP","Internet Control Message Protocol");
NstAcro.setDefinition("ICMPv4","Internet Control Message Protocol version 4");
NstAcro.setDefinition("ICMPv6","Internet Control Message Protocol version 6");
NstAcro.setDefinition("IDE","Integrated Drive Electronics");
NstAcro.setDefinition("IDS","Intrusion Detection System");
NstAcro.setDefinition("IE","Internet Explorer");
NstAcro.setDefinition("IEEE","Institute of Electrical and Electronics Engineers");
NstAcro.setDefinition("ILOM","Integrated Lights Out Manager");
NstAcro.setDefinition("IO","Input/Output");
NstAcro.setShow("IO","I/O");
NstAcro.setDefinition("IP","Internet Protocol");
NstAcro.setDefinition("IPC","Inter-Process Communication");
NstAcro.setDefinition("IPMI","Intelligent Platform Management Interface");
NstAcro.setUrl("IPMI","http://www.intel.com/design/servers/ipmi/spec.htm");
NstAcro.setDefinition("IPP","Internet Printing Protocol");
NstAcro.setDefinition("IPv4","Internet Protocol version 4");
NstAcro.setDefinition("IPv6","Internet Protocol version 6");
NstAcro.setDefinition("IRQ","Interrupt ReQuest");
NstAcro.setDefinition("ISO","International Organization for Standardization");
NstAcro.setDefinition("ISP","Internet Service Provider");
NstAcro.setDefinition("ISO9660","ISO File System Format For CD/DVD Media");
NstAcro.setDefinition("IV","Initialization Vector");
NstAcro.setDefinition("Java","The Java Programming Language");
NstAcro.setDefinition("JPEG","Joint Photographic Experts Group");
NstAcro.setDefinition("JSON","JavaScript Object Notation");
NstAcro.setDefinition("KB","KiloByte");
NstAcro.setDefinition("KML","Keyhole Markup Language");
NstAcro.setDefinition("LAN","Local Area Network");
NstAcro.setDefinition("Linux","The Linux Operating System");
NstAcro.setDefinition("LCD","Liquid Crystal Display");
NstAcro.setDefinition("LLC","Logical Link Control");
NstAcro.setDefinition("LVM2","Logical Volume Management 2");
NstAcro.setDefinition("MAC","Media Access Control");
NstAcro.setDefinition("MacOS","The Apple Mac Operating System");
NstAcro.setDefinition("MB","MegaByte");
NstAcro.setDefinition("MIME","Multipurpose Internet Mail Extensions");
NstAcro.setDefinition("MTA","Mail Transport Agent");
NstAcro.setDefinition("MUA","Mail User Agent");
NstAcro.setDefinition("NAS","Network Attached Storage");
NstAcro.setDefinition("NAT","Network Address Translation");
NstAcro.setDefinition("NetBIOS","Network Basic Input/Output System");
NstAcro.setDefinition("NFS","Network File System");
NstAcro.setMan("NFS","nfsd");
NstAcro.setDefinition("NIC","Network Interface Card");
NstAcro.setDefinition("NIS","Network Information Service");
NstAcro.setMan("NIS","ypserv");
NstAcro.setDefinition("NMB","NetBIOS Message Block protocol");
NstAcro.setMan("NMB","nmbd");
NstAcro.setDefinition("NSE","Nmap Scripting Engine");
NstAcro.setDefinition("NST","Network Security Toolkit");
NstAcro.setDefinition("NTP","Network Time Protocol");
NstAcro.setDefinition("NTFS","New Technology File System");
NstAcro.setDefinition("OID","Object IDentifier");
NstAcro.setDefinition("OS","Operating System");
NstAcro.setDefinition("OUI","Organizationally Unique Identifiers");
NstAcro.setDefinition("PAT","Port Address Translation");
NstAcro.setDefinition("PATA","Parallel ATA");
NstAcro.setDefinition("PB","PetaByte");
NstAcro.setDefinition("PC","Personal Computer");
NstAcro.setDefinition("PCI","Peripheral Component Interconnect");
NstAcro.setDefinition("PCM","Pulse-Code Modulation");
NstAcro.setDefinition("PDF","Portable Document Format");
NstAcro.setUrl("PDF","http://en.wikipedia.org/wiki/PHP");
NstAcro.setDefinition("PDML","Packet Details Markup Language");
NstAcro.setDefinition("PCS","Personal Communications Service");
NstAcro.setDefinition("PNG","Portable Network Graphics");
NstAcro.setDefinition("PSK","Pre-Shared Key");
NstAcro.setDefinition("PSML","Packet Summary Markup Language");
NstAcro.setDefinition("PHP","PHP: Hypertext Preprocessor");
NstAcro.setDefinition("PID","Process IDentifier");
NstAcro.setDefinition("POC","Point Of Contact");
NstAcro.setDefinition("PPD","PostScript Printer Description");
NstAcro.setDefinition("RI","Ring Indicator");
NstAcro.setDefinition("RAM","Random Access Memory");
NstAcro.setDefinition("RAMFS","RAM File System - SYSFS");
NstAcro.setDefinition("RAR","Roshal ARchive - Data Compression And Archival Format");
NstAcro.setDefinition("RMCP","Remote Management Control Protocol");
NstAcro.setDefinition("ROM","Read Only Memory");
NstAcro.setDefinition("RPC","Remote Procedure Call");
NstAcro.setMan("RPC","rpc");
NstAcro.setDefinition("RPM","RPM Package Manager");
NstAcro.setDefinition("RTS","Request To Send");
NstAcro.setDefinition("RxD","Receive Data");
NstAcro.setDefinition("SAN","Storage Area Network");
NstAcro.setDefinition("SAS","Serial Attached SCSI");
NstAcro.setDefinition("SAT","SCSI-ATA Command Translation");
NstAcro.setDefinition("SATA","Serial Advanced Technology Attachment");
NstAcro.setDefinition("SCSI","Small Computer System Interface");
NstAcro.setDefinition("SGML","Standard Generalized Markup Language");
NstAcro.setDefinition("SMB","Server Message Block protocol");
NstAcro.setMan("SMB","smbd");
NstAcro.setDefinition("SMTP","Simple Mail Transport Protocol");
NstAcro.setDefinition("SQL","Structured Query Language");
NstAcro.setDefinition("SSH","Secure SHell");
NstAcro.setDefinition("SSI","Server Side Includes");
NstAcro.setDefinition("SSID","Service Set Identifier");
NstAcro.setDefinition("STA","Station");
NstAcro.setDefinition("SVN","Subversion");
NstAcro.setDefinition("SYSFS","A Linux Virtual File System");
NstAcro.setDefinition("TAR","Tape ARchive Format");
NstAcro.setDefinition("TB","TeraByte");
NstAcro.setDefinition("TCP","Transmission Control Protocol");
NstAcro.setDefinition("TKIP","Temporal Key Integrity Protocol");
NstAcro.setDefinition("TMPFS","Temporary File System");
NstAcro.setDefinition("TTL","Time To Live (IP Protocol)");
NstAcro.setDefinition("TxD","Transmit Data");
NstAcro.setDefinition("UDP","User Datagram Protocol");
NstAcro.setDefinition("UNIX","The UNIX Operating System");
NstAcro.setDefinition("URL","Uniform Resource Locator");
NstAcro.setDefinition("URN","Uniform Resource Name");
NstAcro.setDefinition("URS","Update Rule Site");
NstAcro.setDefinition("USB","Universal Serial Bus");
NstAcro.setDefinition("UTC","Coordinated Universal Time");
NstAcro.setDefinition("USENIX","The Advanced Computing Systems Associations");
NstAcro.setDefinition("UUID","Universally Unique IDentifier");
NstAcro.setDefinition("VNC","Virtual Network Computing");
NstAcro.setDefinition("WAN","Wide Area Network");
NstAcro.setDefinition("WebDAV","Web-based Distributed Authoring And Versioning");
NstAcro.setDefinition("WEP","Wired Equivalent Privacy");
NstAcro.setDefinition("Windows","The Windows Operating System");
NstAcro.setDefinition("WPA","Wi-Fi Protected Access");
NstAcro.setDefinition("WPA2","Wi-Fi Protected Access 2");
NstAcro.setDefinition("WUI","Web User Interface");
NstAcro.setDefinition("X","X Window");
NstAcro.setMan("X","X");
NstAcro.setDefinition("XML","Extensible Markup Language");
NstAcro.setUrl("XML","http://www.w3.org/TR/2006/REC-xml11-20060816/");
NstAcro.setDefinition("XSL","Extensible Stylesheet Language");
NstAcro.setDefinition("XSLT","Extensible Stylesheet Language Transformations");
NstAcro.setDefinition("YUM","Yellowdog Updater Modified");
NstAcro.setDefinition("ZIP","A Data Compression And Archival Format");
