<!--
  /* 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 boolBreadCrumbs= (typeof breadCrumbArray != "undefined") ? true : false;

  if ( boolBreadCrumbs ) {
    if (breadCrumbArray.length == 2) {

      // SPECIAL HANDLING IF WE ARE VIEWING A SECTION'S HOMEPAGE
      thisPageName += ":" + cleanString(breadCrumbArray[1].name) + ":Home";

    } else if (breadCrumbArray.length > 2) {

      // start at 1; ignore "AETV Community Center" bc element 0
      /*
          Making exception for Photo Albums. If we are in an album,
          store the remaining "page name" in prop3. The page name
          will max at boards:aetv:PhotoAlbums.
      */
      if (cleanString(breadCrumbArray[1].name) == "PhotoAlbums") {
        thisPageName += ":" + cleanString(breadCrumbArray[1].name);

        for ( var f = 2; f < breadCrumbArray.length; f++ ) {
          thisProp3 += shortCleanString(breadCrumbArray[f].name) + ":";
        }
      } else {
        for ( var f = 1; f < breadCrumbArray.length; f++ ) {
          thisPageName += ":" + shortCleanString(breadCrumbArray[f].name);
        }
      }

      // grab all remaining breadcrumb text... only the first few are in the array :(
      var arAllDivs = document.getElementsByTagName("div");
      var arDiv = new Array();

      for (i=0; i < arAllDivs.length; i++) {
        if (arAllDivs[i].className=="lw-breadcrumbs") {
            arDiv[0] = arAllDivs[i];
            break;
          }
        }

        if (arDiv.length == 1) {
          var arH2s = arDiv[0].getElementsByTagName("h2");
          for (i=breadCrumbArray.length; i < arH2s.length; i++) {
            if (cleanString(breadCrumbArray[1].name) == "PhotoAlbums") {
              thisProp3 += shortCleanString(arH2s[i].innerHTML) + ":";
            } else {
              thisPageName += ":" + shortCleanString(arH2s[i].innerHTML);
            }
          }
        }

        //manually chop off last colon
        thisProp3 = thisProp3.replace(/(.*):$/,"$1" );

      } //end if bc ar length > 2

      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 == ":Gallery:Ae:1") {
         thisPageName += ":Gallery:Home";
       } else {
         thisPageName += tempThisPageName;
       }
      }
    } // end if boolBreadCrumb
    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 "Tags":
          thisPageName += ":SearchResults:ByTag";
          thisProp3 = qs.get("tag");
          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);
  }

//-->

