        <!--
        /* Client-side access to querystring name=value pairs
          Version 1.3
          28 May 2008

          License (Simplified BSD):
          http://adamv.com/dev/javascript/qslicense.txt
        */
        function Querystring(qs) { // optionally pass a querystring to parse
          this.params = {};

          if (qs == null) qs = location.search.substring(1, location.search.length);
          if (qs.length == 0) return;

        // Turn <plus> back to <space>
        // See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
          qs = qs.replace(/\+/g, ' ');
          var args = qs.split('&'); // parse out name/value pairs separated via &

        // split out each name=value pair
          for (var i = 0; i < args.length; i++) {
            var pair = args[i].split('=');
            var name = decodeURIComponent(pair[0]);

            var value = (pair.length==2)
              ? decodeURIComponent(pair[1])
              : name;

            this.params[name] = value;
          }
        }

        Querystring.prototype.get = function(key, default_) {
          var value = this.params[key];
          return (value != null) ? value : default_;
        }

        Querystring.prototype.contains = function(key) {
          var value = this.params[key];
          return (value != null);
        }

        // grab location from address bar. split at the periods.
        var sHost = location.host;
        var aHost = sHost.split('\.');
        var network = (aHost[1].length > 1) ? aHost[1] : "unknown";

        var thisPageName = network.toUpperCase() + ":" + caps(aHost[0]);
        var thisProp3 = "";

        var sPath = location.pathname;
        var aPath = sPath.split('/');
        var sPattern = /\S+!\S+\.jspa/;
        var sPattern2 = /^\w+\.jspa/;

        var sUrl = window.location.href;
        var sParams = "";
        var aUrl = sUrl.split('/');

        var arAllDivs = document.getElementsByTagName("div");
        var arDiv = new Array();
        var arH2s = new Array();

        for (i=0; i < arAllDivs.length; i++) {
          if (arAllDivs[i].className=="lw-breadcrumbs") {
              arDiv[0] = arAllDivs[i];
              break;
           }
         }

        if (arDiv.length == 1) {
          arH2s = arDiv[0].getElementsByTagName("h2");
        }

        if (arH2s.length > 0) {
          /* 2008-07-31 BV
             We need this because "Discussions" is not in the breadcrumb.
             Because there are currently no other sections to the THC boards.
             Once other sections are added and the section titles get their own
             breadcrumbs, this line can be removed.
          */
          thisPageName += ":" + "Discussions";
          for (i=0; i < arH2s.length; i++) {
              thisPageName += ":" + shortCleanString(arH2s[i].innerHTML);
           }
        } else if ( !sPattern.test(aPath[1]) && !sPattern2.test(aPath[1])  ) {
          var tempThisPageName = "";
          //catch-all for other conditions
          for (f=3;f<aUrl.length;f++) {
            tempThisPageName += ":" + caps(parseParams(aUrl[f]));
          }

          //manual overrides :(
          if (tempThisPageName == ":Category:Message-Boards:1") {
            thisPageName += ":HomePage";
          } else {
            thisPageName += tempThisPageName;
          }
        }

        if ( sPattern.test(aPath[1]) || sPattern2.test(aPath[1])  ) {

          //do this if there is no breadCrumbArray
          var tempArUrl = sUrl.split('\?');

          //get the file name
          var sFileName = parseFileName(tempArUrl[0]);
          var qs = new Querystring();

          switch (sFileName) {
            case "Index":
              thisPageName += ":HomePage";
              break;

            case "Search":
              thisPageName += ":SearchResults:BySearchPhrase";
              thisProp3 = qs.get("q");
              break;

            default:
              thisPageName += ":" + sFileName;
              if (tempArUrl.length > 1) {
                sParams = parseParams(tempArUrl[1]);
                if (sParams.length>0) {
                  thisPageName += ":";
                  thisPageName += sParams;
                }
              }
          } // end switch

       } // end if patterns

       /////////////////////////////////////////////////////////////////////
       /* FUNCS */
       //////////////////////////////////////////////////////////////////////
        function parseFileName (sUrl)
        {
          var aPieces = sUrl.split("/");
          var fileName  = aPieces[aPieces.length-1].split('\.');
          var sFileName = caps(fileName[0]);
          sFileName = sFileName.replace(/!/g , "_");
          return sFileName;
        }

        function parseParams (sParams)
        {
          var sParams = sParams.replace(/[=&\/]/g , ":");
          return sParams;
        }

        function caps (fileName)
        {
          var first = fileName.substring(0,1).toUpperCase();
          var rest = fileName.substring(1,fileName.length);
          fileName = first + rest;
          return fileName;
        }

        function shortCleanString (sRaw)
        {
          sRaw = cleanString(sRaw);
          sRaw = shortenString(sRaw);
          sRaw = caps(sRaw);
          return (sRaw);
        }

        function shortenString (sTooLong)
        {
          var sShortened = sTooLong.substring(0,14);
          return (sShortened);
        }

        function cleanString (sUnclean)
        {
          var tempA = "";
          // remove spaces and concatenate
          for (var char=0; char<sUnclean.length; char++) {

            if ( sUnclean.charAt(char) == " " ) {
              tempA += sUnclean.charAt(char+1).toUpperCase();
              char++;
           } else tempA += sUnclean.charAt(char);
          }

          sUnclean = tempA;

          var sClean = sUnclean.replace(/ /g, "");

          // check for colons, as in 'csi: miami'
          sClean = sClean.replace(/:/g, "");
          return (sClean);
        }
  //-->
