// ***************************************************
// *
// * Name      jsBainC.js
// * Title     JavaScript for Bainbridge College
// *
// * Input     None
// * Output    HTML for menu bars, etc.
// *
// * Includes  jsMenuBarBottom(pMsg,pHomeSiteDot)
// *           jsMenuBarIsMe2(ptxt,plnk) (internal)
// *           jsJumpBox(list)
// *           jsLogo()
// *           jsGoogleCSE() - Google Custom Search Engine
// *           jsValidCSS()
// *           jsValidWAIA()
// *           jsValidXHTML()
// *
// * Called by All pages
// * Calls
// * Author    Bill Cunningham (c) Copyright 2009
// *
// * Mod's     March 17, 2009 Correct validation links
// *           March 29, 2009 Common images from imgCommon
// *           April 25, 2009 CSE - BUTTON instead of INPUT
// *           April 27, 2009 Remove "Print tips" from jsMenuBarBottom
// *           September 1, 2009 jsFlashGetReader()
// *
// ***************************************************

// ************************
function jsPDFGetReader() {
// ************************
var xImgSrc = "imgCommon/get_adobe_reader.gif";
// if (pDot) {xImgSrc = pDot + xImgSrc;}

var x =
   '<a href="http://get.adobe.com/reader/">'
 + '<img src="' + xImgSrc + '"'
 + ' alt="Get Adobe Reader"'
 + ' title="Get Adobe Reader"'
 + ' style="width:112px;height:33px;margin:0 0 0 1em;"/>'
 + '</a>';

document.write(x);
return;}

// **************************
function jsFlashGetReader() {
// **************************
var xImgSrc = "imgCommon/get_adobe_flash_player.png";
var x =
   '<a href="http://get.adobe.com/flashplayer/">'
 + '<img src="' + xImgSrc + '"'
 + ' alt="Get Adobe Flash Player"'
 + ' title="Get Adobe Flash Player"'
 + ' style="width:158px;height:39px;margin:0 0 0 1em;"/>'
 + '</a>';

document.write(x);
return;}

// ******************************************
function jsMenuBarBottom(pMsg,pHomeSiteDot) {
// ******************************************
// * pHomeSiteDot equals null | "" | "../"  *
// ******************************************
//alert("pMsg=\"" + pMsg + "\n\""
// + " pHomeSiteDot=\"" + pHomeSiteDot + "\"");

var xMenuBarClass="MenuBar";

var xmailto =
   '<a id=\"aReportProblem\" '
 + 'href=\"mailto:?to=adele.cunningham@bainbridge.edu'
 + '&amp;subject=Faculty Web Page - Report problem'
 + '&amp;body=Dear Dr. Cunningham:%0A%0D'
 + 'Specific error msg, broken link, circumstances, browser...%0D%0A'
 + 'Does http://www.bainbridge.edu work?%0D%0A">';

var xmailtoencoded = encodeURI(xmailto);
//alert(xmailtoencoded);

// var xloc = document.location;
// var xTextOnlyBClink  = "http://text.usg.edu:8080/tt/" + xloc;
// var xTextOnlyUABlink = "http://assistive.usablenet.com/tt/" + xloc;
//alert("xTextOnlyBClink=" + xTextOnlyBClink);

var xHomeSiteLink = "BainC-Index.htm";
if (pHomeSiteDot) {xHomeSiteLink = pHomeSiteDot + xHomeSiteLink;}
xHomeSiteLink =
 jsMenuBarIsMe2("<abbr title='Faculty Web Page home'>FWP</abbr> home", xHomeSiteLink);

// var xhtm = "x.htm";
// if (pHomeSiteDot) {xhtm = pHomeSiteDot + xhtm;}
// xhtm = jsMenuBarIsMe2("xhtm", xhtm);

var xSiteMapLink = "BainC-SiteMap.htm";
if (pHomeSiteDot) {xSiteMapLink = pHomeSiteDot + xSiteMapLink;}
xSiteMapLink = jsMenuBarIsMe2("Site map", xSiteMapLink);

var xValidXHTML = jsValidXHTML();
var xValidCSS   = jsValidCSS();
// var xValidWAIA  = jsValidWAIA();

var m = ''
// + '<div class="clsMenuBar clsMenuBarBottom">'
 + '<div class="' + xMenuBarClass + '">'
 + xValidXHTML + ' '
 + xValidCSS   + ' '
// + xValidWAIA
 + '<br/>'
 + '<span id="IDNavBottom"/>' // *** target only ***
 + '[ <a href="#">Top &uarr;</a>'
 + ' | ' + xmailto + 'Report problem</a>'
// + ' | <a href="http://validator.w3.org/check/referer">Validate XHTML 1.1</a>'
// + ' | <a href="http://jigsaw.w3.org/css-validator/check/referer/">Validate CSS</a>'
 + ' | <a href="http://www.bainbridge.edu/student/vp_stud/com_use.htm">BC computer policy</a>'
 + ' | ' + xHomeSiteLink
// + ' | ' + xhtm
 + ' | ' + xSiteMapLink
 + ' | <a href="http://www.bainbridge.edu/">BC home</a> ]'
 + '<br/>' + pMsg
 + '</div>';

//alert(m);
document.write(m);
return;}

// ************************
function jsMenuBarIsMe(v) {
// ************************
alert("jsHTMLMenuBarIsMe(" + v + ") called. Remove? Change to jsHTMLMenuBarIsMe2(vtxt,vlnk)?");

var href1 = document.location;
var href2 = href1 + ""; // convert to string
var poslastslash = href2.lastIndexOf("/");
var href2len = href2.length;
var strAfterlastslash = href2.substring(poslastslash+1, href2len);

if (strAfterlastslash===v)
 {return true;} else {return false;} }

// **********************************
function jsMenuBarIsMe2(ptxt,pLink) {
// **********************************
//alert("ptxt="+ptxt + " pLink="+pLink);
var xHrefDoc1 = document.location;
var xHrefDoc2 = xHrefDoc1 + ""; // convert to string
var xHrefDoc2len = xHrefDoc2.length;
var xHrefDoc2poslastslash = xHrefDoc2.lastIndexOf("/");
var xstrHrefDoc2Afterlastslash = xHrefDoc2.substring(xHrefDoc2poslastslash+1, xHrefDoc2len);

//alert("xstrHrefDoc2Afterlastslash="+xstrHrefDoc2Afterlastslash);

var xLinkLen = pLink.length;
var xLinkposlastslash = pLink.lastIndexOf("/");
var xstrLinkAfterlastslash = pLink.substring(xLinkposlastslash+1, xLinkLen);

//alert("xstrLinkAfterlastslash="+xstrLinkAfterlastslash);

var xret = ptxt;
//alert("1. xret="+xret);
if (xstrLinkAfterlastslash!==xstrHrefDoc2Afterlastslash)
 {xret = '<a href="' + pLink + '">' + ptxt + '</a>';}
else
 {xret = '<span style="color:GrayText;">' + xret + '</span>';}

//alert("2. xret="+xret);
//alert("xHrefDoc2=" + xHrefDoc2
// + " xHrefDoc2len=" + xHrefDoc2len
// + " xHrefDoc2poslastslash=" + xHrefDoc2poslastslash
// + " xstrHrefDoc2Afterlastslash=" + xstrHrefDoc2Afterlastslash
// + " xret=" + xret);

return xret;}

// ****************************************************
function jsGoogleCSE() { // Google Custom Search Engine
// ****************************************************
var x = ''
 + '<form action="http://www.google.com/cse"'
 + ' id="cse-search-box">'
 + '<div>'                 // <DIV> or <FIELDSET> or <P>, et al.
 + '<input type="hidden" name="cx" value="000958433962116403200:u6xwaixexpm"/>'
 + '<input type="hidden" name="ie" value="UTF-8"/>'
 + '<input type="text" name="q" size="15"/>'
 + '<button type="submit" name="sa" value="Search"'
 + ' title="Faculty Web Page search" style="margin-left:0.4em;">'
 + 'Search'
 + '</button>'
 + '</div>'
 + '</form>'
// + '<script type="text/javascript"'
// + ' src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en">'
// + '</script>'
;

//alert("jsGoogleCSE = " + x);
document.write(x);
return;}

// *****************************
function jsImgSrc(pID,pImgSrc) {
// *****************************
// * Function Replaces image   *
// * Needs error checking      *
// *****************************
//alert("*** jsImgSrc ***" + "pID="+pID + " pImgSrc="+pImgSrc);
var xElem = document.getElementById(pID);
xElem.src = pImgSrc;
return;}

// ********************
function jsTextOnly() {
// ********************
// * Function Useless *
// ********************
var xloc = document.location;
var xTextOnlyBClink  = "http://text.usg.edu:8080/tt/" + xloc;
// var xTextOnlyUABlink = "http://assistive.usablenet.com/tt/" + xloc;
var xlink = '<a href="' + xTextOnlyBClink + '">Text only</a>';
//alert(xlink);
document.write(xlink);
return;}

// ****************
function jsLogo() {
// ****************
var xHome = "BainC-Index.htm";
// if (pDot) {xHome = pDot + xHome;}

var xImgSrc = "imgCommon/Logo-Dijkstra.jpg";
// if (pDot) {xImgSrc = pDot + xImgSrc;}

var xStyle = "position:absolute;top:.2em;left:.5em;width:64px;height:48px;border:none;";
var xImg =
 '<img src="' + xImgSrc + '"'
 + ' alt="BIOL 2112 Home"'
 + ' style="' + xStyle + '"/>';

var xret = jsIsMeLink(xImg,xHome,"","");

document.write(xret);
return; }

// ************************
function jsLogoOriginal() {
// ************************
var xHome = "BainC-Index.htm";
// if (pDot) {xHome = pDot + xHome;}

var xStyle = "position:absolute;top:.2em;left:.5em;width:64px;height:48px;border:none;";

var ximg =
 '<img src="imgCommon/Logo-Dijkstra.jpg" alt="BIOL 2112 logo"'
 + ' style="' + xStyle + 'z-index:-1;"/>';
document.write(ximg);

if (jsIsMe(xHome))
 {return;}

var ximgtransparent =
 '<img src="BY123LImages/Logo-Dijkstra-Transparent.gif"'
 + 'alt="BIOL 2112 logo"'
 + 'style="' + xStyle + 'z-index:1;"/>';
var xret = jsIsMeLink(ximgtransparent,xHome,"","");
document.write(xret);
return; }

// ********************
function jsIsMe(plnk) {
// ********************
var xhref1 = document.location;
var xhref2 = xhref1 + ""; // convert to string
var xposlastslash = xhref2.lastIndexOf("/");
var xhref2len = xhref2.length;
var xstrAfterlastslash = xhref2.substring(xposlastslash+1, xhref2len);

if (xstrAfterlastslash===plnk)
 {return true;}
else
 {return false;} }

// ****************************************
function jsIsMeLink(ptxt,plnk,pcls,pakey) {
// ****************************************
var xret;

if (!pcls) {pcls='';}
if (!pakey) {pakey='';}

if (jsIsMe(plnk))
 {return ptxt;}
else
 {xret = '<a href="' + plnk + '"';
  if (''!==pcls)
   {xret = xret + ' class="' + pcls + '"';}
  if (''!==pakey)
   {xret = xret + ' accesskey="' + pakey + '"';}
  xret = xret + '>' + ptxt + '</a>';
  return xret;} }

/******************************/
/* Pasted from "BainCTest.js" */
/******************************/
// ****************************************
function jsBottomStuff(pMsg,pHomeSiteDot) {
// *****************************************
// * pHomeSiteDot equals null | "" | "../" *
// *****************************************
//alert("pMsg=\"" + pMsg + "\n\""               // backslash n = newline
// + " pHomeSiteDot=\"" + pHomeSiteDot + "\""); // backslash d-quote = escape for d-quote

var xBottomNavBar = jsBottomNavBar(pHomeSiteDot); // <UL> + <LI>s + </UL>
var xValid = jsValid(); // jsValidXHTML + jsValidCSS // + jsValidWAIA
var xSandbox = ''
 + '<a href="Sandbox/SB-Index.htm" style="float:right;">Sandbox</a>';

var xdocwrite = ''
 + '<div id="IDBottomStuff" class="BottomStuff">'
 + '<div id="IDBottomLeft"  class="BottomLeft">'
 +   pMsg
 + '<br/>'
 +   xBottomNavBar
 + '</div>'
 + '<div id="IDBottomRight" class="BottomRight">'
 +   xValid
// +   xSandbox
 + '</div>'
 + '</div>'
 + '</div>'; // End DIV class="BottomStuff"

//alert("jsBottomStuff > xdocwrite = " + xdocwrite);
document.write(xdocwrite);
return;}

// *****************
function jsValid() {
// *****************
var xValidXHTML = jsValidXHTML();
var xValidCSS   = jsValidCSS();
// var xValidWAIA  = jsValidWAIA();

var xret = ''
 + xValidXHTML + ' '
 + xValidCSS   + ' '
// + xValidWAIA
 ;

//alert("jsValid = " + xret);
return xret;}

// ********************
function jsValidCSS() {
// ********************
//alert(pDot);
var xImgSrc = "imgCommon/vcss.gif";
// if (pDot) {xImgSrc = pDot + xImgSrc;}

var xret =
// '<a href="http://jigsaw.w3c.org/css-validator/check?uri=referer">'
   '<a href="http://jigsaw.w3.org/css-validator/check/referer/">'
 + '<img'
 + ' src="' + xImgSrc + '"'
 + ' style="width:88px;height:31px;"'
 + ' title="Valid CSS 2.1 from jigsaw.w3.org"'
 + ' alt="Valid CSS!"/>'
 + '</a>';

//alert("jsValidCSS = " + xret);
// document.write(x);
return xret;}

// *************************
function jsValidCynthia1() {
// *************************
var xImgSrc = "imgCommon/Ctested.gif";
var xHREF1  = document.location;
var xHREF2  = xHREF1 + ""; // Convert to string
var xurl1   = encodeURI(xHREF2);

var xret =
   '<a href="http://www.cynthiasays.com/mynewtester/cynthia.exe?'
 + 'rptmode=-1'    // -1=508, 0=Pri 1, 1=Pri 1+2, 2=Pri 1+2+3
 + '&amp;incsrc=1' // Include source on accessibility failure
 + '&amp;runcr=1'  // Check alt text quality
 + '&amp;excls='   // Exclude line number start
 + '&amp;excle='   // Exclude line number end
 + '&amp;runpmc=1' // Check screen flicker
 + '&amp;runagc=1' // Check for animated GIF
 + '&amp;BROWSE_EMUL=Cynthia+1.0' // Default to standard
 + '&amp;url1=' + xurl1 + '"'
 + ' class="href">'
 + '<img'
 + ' src="' + xImgSrc + '"'
 + ' style="width:88px;height:31px;"'
 + ' alt="cynthiasays accessibilty check"'
 + ' title="cynthiasays accessibilty check"/>'
 + '</a>';
 
//alert("jsValidCynthia1 = " + xret);
document.write(xret);
return xret;}

// *************************
function jsValidCynthia2() {
// *************************
var xImgSrc = "imgCommon/Ctested.gif";
var xHREF1  = document.location;
var xHREF2  = xHREF1 + ""; // Convert to string
var xurl1   = encodeURI(xHREF2);

var xret =
   '<a href="http://www.cynthiasays.com/fulloptions.asp?'
 + 'rptmode=-1'    // -1=508, 0=Pri 1, 1=Pri 1+2, 2=Pri 1+2+3
 + '&amp;incsrc=1' // Include source on accessibility error
 + '&amp;runcr=1'  // Check alt text quality
 + '&amp;excls='   // Exclude line number start
 + '&amp;excle='   // Exclude line number end
 + '&amp;runpmc=1' // Check screen flicker
 + '&amp;runagc=1' // Check for animated GIF
 + '&amp;BROWSE_EMUL=Cynthia+1.0' // Default to standard
 + '&amp;url1=' + xurl1 + '"'
 + ' class="href">'
 + '<img'
 + ' src="' + xImgSrc + '"'
 + ' style="width:88px;height:31px;"'
 + ' alt="cynthiasays accessibilty check"'
 + ' title="cynthiasays accessibilty check"/>'
 + '</a>';
 
//alert("jsValidCynthia2 = " + xret);
document.write(xret);
return xret;}

// *********************
function jsValidWAIA() {
// ***********************
// * Function Not called *
// * Use cynthiasays.com *
// ***********************
//alert(pDot);
var xImgSrc = "imgCommon/wcag1A.png";
// if (pDot) {xImgSrc = pDot + xImgSrc;}

var xret =
   '<a href="http://www.w3.org/WAI/WCAG1A-Conformance"'
 + ' title="Explanation of Level A Conformance">'
 + '<img'
 + ' src="' + xImgSrc + '"'
 + ' style="width:88px;height:31px;"'
 + ' alt="Level A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0">'
 + '</a>';

return xret;}

// **********************
function jsValidXHTML() {
// **********************
//alert(pDot);
var xImgSrc = "imgCommon/valid-xhtml11.png";
// if (pDot) {xImgSrc = pDot + xImgSrc;}

var xret =
//   '<a href="http://validator.w3c.org/check?ss=1&verbose=1&outline=1&uri=referer">'
   '<a href="http://validator.w3.org/check/referer?ss=1&outline=1">'
 + '<img'
 + ' src="' + xImgSrc + '"'
 + ' style="width:88px;height:31px;"'
 + ' title="Valid XHTML 1.1 from W3C validator"'
 + ' alt="Valid XHTML 1.1"/>'
 + '</a>';

//alert("jsValidXHTML = " + xret);
return xret;}

// *********************************************************************
function jsBottomNavBar(pHomeSiteDot) { // Generate <UL> + <LI>s + </UL>
// *********************************************************************
//alert("jsBottomNavBarTest\n" + "pHomeSiteDot = " + pHomeSiteDot);
var xTop = '<a href="#">Top &uarr;</a>';

var xBCHome = '<a href="http://www.bainbridge.edu/" title="Bainbridge College home>BC home</a>';

var xBCpolicy = '<a href="http://www.bainbridge.edu/student/vp_stud/com_use.htm"'
 + ' title="Bainbridge College computer policy">BC computer policy</a>';

var xMailto =
   '<a id=\"aReportProblem\" '
 + 'href=\"mailto:?to=adele.cunningham@bainbridge.edu'
 + '&amp;subject=Faculty Web Page - Report problem'
 + '&amp;body=Dear Dr. Cunningham:%0A%0D'
 + 'Specific error msg (e.g. Page not found 404, circumstances, ...:%0D%0A'
 + 'Browser and version (e.g. IE6, IE7, IE8, Firefox, Safari, ...):%0D%0A'
 + 'Course (e.g. BIOL 2112):%0D%0A'
 + 'Does http://www.bainbridge.edu work?%0D%0A">' // "%0D%0A" = CR-LF
 + 'Report problem</a>';

var xMailtoencoded = encodeURI(xMailto);
//alert("xMailtoencoded =\n" + xMailtoencoded);

// var xhtm = "x.htm";
// xhtm = pHomeSiteDot + xhtm;
// xhtm = jsMenuBarIsMe2LI("xhtm", xhtm);

// var xSiteMap = "BainC-SiteMap.htm";
// xSiteMap = pHomeSiteDot + xSiteMap;
// xSiteMap = jsNavBarIsMe2("Site map", xSiteMap);

// var xHomesite = "BainC-Index.htm";
// xHomesite = pHomeSiteDot + xHomesite;
// xHomesite =
//  jsNavBarIsMe2("<abbr title='Faculty Web Page home'>FWP</abbr> home", xHomesite);

// var xPubs = "BainC-Pubs-Index.htm";
// xPubs = pHomeSiteDot + xSiteMap;
// xPubs = jsNavBarIsMe2("Pubs", xPubs);

var xret = ''
 + '<ul id="IDBottomNavBar" class="Nav NavH NavHBar">'
 + '<li>' + xTop      + '</li>'
 + '<li>' + xBCHome   + '</li>'
 + '<li>' + xBCpolicy + '</li>'
 + '<li>' + xMailto   + '</li>'
// + '<li>' + xSiteMap  + '</li>'
// + '<li>' + xHomesite + '</li>'
// + '<li>' + xPubs     + '</li>'
// + '<li>' + xhtm + '</li>'
 + '</ul>';

xret = jsNavBarHorzHackIE(xret); // Fake "content" CSS to divide horizontal <LI>s

return xret;}

// *********************************************************************
function jsBottomNavBarx(pHomeSiteDot) { // Generate <UL> + <LI>s + </UL>
// *********************************************************************
var xTop = '<a href="#">Top &uarr;</a>';

var xBCHome = '<a href="http://www.bainbridge.edu/">'
 + '<abbr title="Bainbridge College home">BC</abbr> home</a>';

var xBCpolicy = '<a href="http://www.bainbridge.edu/student/vp_stud/com_use.htm">'
 + '<abbr title="Bainbridge College home">BC</abbr> computer policy</a>';

var xMailto =
   '<a id=\"aReportProblem\" '
 + 'href=\"mailto:?to=adele.cunningham@bainbridge.edu'
 + '&amp;subject=Faculty Web Page - Report problem'
 + '&amp;body=Dear Dr. Cunningham:%0A%0D'
 + 'Specific error msg (e.g. Page not found 404, circumstances, ...:%0D%0A'
 + 'Browser and version (e.g. IE6, IE7, Firefox, Safari, ...):%0D%0A'
 + 'Course (e.g. BIOL 2112):%0D%0A'
 + 'Does http://www.bainbridge.edu work?%0D%0A">' // "%0D%0A" = CR-LF
 + 'Report problem</a>';

var xMailtoencoded = encodeURI(xMailto);
//alert(xMailtoencoded);

// var xhtm = "x.htm";
// xhtm = pHomeSiteDot + xhtm;
// xhtm = jsMenuBarIsMe2LI("xhtm", xhtm);

var xSiteMap = "BainC-SiteMap.htm";
xSiteMap = pHomeSiteDot + xSiteMap;
xSiteMap = jsMenuBarIsMe2("Site map", xSiteMap);

var xHomesite = "BainC-Index.htm";
xHomesite = pHomeSiteDot + xHomesite;
xHomesite =
 jsMenuBarIsMe2("<abbr title='Faculty Web Page home'>FWP</abbr> home", xHomesite);

var xret = ''
 + '<ul id="IDBottomNavBar" class="Nav NavH NavHBar">'
 + '<li>' + xTop      + '</li>'
 + '<li>' + xBCHome   + '</li>'
 + '<li>' + xBCpolicy + '</li>'
 + '<li>' + xMailto   + '</li>'
 + '<li>' + xSiteMap  + '</li>'
 + '<li>' + xHomesite + '</li>'
// + '<li>' + xhtm + '</li>'
 + '</ul>';

xret = jsNavBarHorzHackIE(xret); // Fake "content" CSS to divide horizontal <LI>s

return xret;}

// **********************************************************************
function jsNavBarHorzHackIE(pReplace) { // Fake "content" CSS for IE6,IE7
// **********************************************************************
var xnavappVer = navigator.appVersion; // cf. http://dpo.uab.edu/~billc/billcIndex.htm
//alert("navigator.appVersion = " + xnavappVer);
//var xMSIE = xnavappVer.indexOf("MSIE");
//alert("navigator.appVersion = " + xnavappVer + "\n\n xMSIE = " + xMSIE);
//if (xMSIE === -1)   // If ((NOT IE6) and (NOT IE7))
// {return pReplace;} // then {don't fake "content"}

var xMSIE6 = xnavappVer.indexOf("MSIE 6.0");
var xMSIE7 = xnavappVer.indexOf("MSIE 7.0");
if ((xMSIE6 === -1) && (xMSIE7 === -1)) // If ((NOT IE6) and (NOT IE7))
 {return pReplace;} // then {don't fake "content"}

var xval0 = pReplace;

var xregexp1 = /<li>/g; // match all "<li>"
var xrep1 = "<li>| ";   // li:before{content:"| ";}
var xval1 = xval0.replace(xregexp1,xrep1); // FAKE "content" CSS for IE

var xregexp2 = /<\/li>/g; // match all "</li>"
var xrep2 = " |</li>";    // li:after{content:" |";}
var xval2 = xval1.replace(xregexp2,xrep2); // FAKE "content" CSS for IE

// alert("HACK xval0="+xval0 + "\n\n xval1="+xval1 + "\n\n xval2="+xval2);
return xval2;}

// ******************************
// * Pasted from "BainCTest.js" *
// ******************************
// **********************************
function jsNavBarIsMe2(ptxt,pLink) {
// **********************************
//alert("jsNavBarIsMe2\n" + "ptxt="+ptxt + " pLink="+pLink);
var xHrefDoc1 = document.location;
var xHrefDoc2 = xHrefDoc1 + ""; // convert to string
var xHrefDoc2len = xHrefDoc2.length;
var xHrefDoc2poslastslash = xHrefDoc2.lastIndexOf("/");
var xstrHrefDoc2Afterlastslash = xHrefDoc2.substring(xHrefDoc2poslastslash+1, xHrefDoc2len);

//alert("xstrHrefDoc2Afterlastslash="+xstrHrefDoc2Afterlastslash);

var xLinkLen = pLink.length;
var xLinkposlastslash = pLink.lastIndexOf("/");
var xstrLinkAfterlastslash = pLink.substring(xLinkposlastslash+1, xLinkLen);

//alert("xstrLinkAfterlastslash="+xstrLinkAfterlastslash);

var xret = ptxt;
//alert("1. xret="+xret);
if (xstrLinkAfterlastslash!==xstrHrefDoc2Afterlastslash)
 {xret = '<a href="' + pLink + '">' + ptxt + '</a>';}
else
 {xret = '<span class="HereWeStand">' + xret + '</span>';}

//alert("2. xret="+xret);
//alert("xHrefDoc2=" + xHrefDoc2
// + " xHrefDoc2len=" + xHrefDoc2len
// + " xHrefDoc2poslastslash=" + xHrefDoc2poslastslash
// + " xstrHrefDoc2Afterlastslash=" + xstrHrefDoc2Afterlastslash
// + " xret=" + xret);

return xret;}

// ***********************************************************
function jsNavHTopTabs(pHomeSiteDot) { // <UL> + <LI>s + </UL>
// ***********************************************************
//alert("jsNavHTopTabs" + "\npHomeSiteDot = " + pHomeSiteDot);
var i=0;
var j=0;
var xLIs = [];

var xTEXTs = [
 "Home",
 "BIOL 2111",
 "BIOL 2112",
 "Site map"
 ];

var xCLASSs = [
 "PAGE-BainC-Index",
 "PAGE-BIOL2111-Index",
 "PAGE-BIOL2112-Index",
 "PAGE-BainC-SiteMap"
 ];

var xTITLEs = [
 "Faculty Web Page home",
 "BIOL 2111 - Human Anatomy &amp; Physiology I",
 "BIOL 2112 - Human Anatomy &amp; Physiology II",
 "Faculty Web Page Site Map"
 ];

var xHREFs = [
 "BainC-Index.htm",
 "BIOL2111/BIOL2111-Index.htm",
 "BIOL2112/BIOL2112-Index.htm",
 "BainC-SiteMap.htm"
 ];

var xlen = xHREFs.length; // All same length
for (i=0;i<xlen;i++) {
 xHREFs[i] = pHomeSiteDot + xHREFs[i];}

var xBODY = document.getElementsByTagName("body"); /* Better be only one <BODY> element */
var xBODYclassNames = xBODY[0].className.split(" ");
var xBODYclassNameslen = xBODYclassNames.length; // Usually 0 or at most 1.

var xHereWeStand = -1; // Any match will be nonnegative.

LABELHereWeStand:
for (i=0;i<xBODYclassNameslen;i++) { // Eliminate classNames of no interest.
for (j=0;j<xlen;j++) {
 if (xCLASSs[j]===xBODYclassNames[i])
  {xHereWeStand = j;
   break LABELHereWeStand;}}}
alert("LABELHereWeStand: i,j=" + i + j);

for (i=0;i<xlen;i++) { // Assemble <LI>s
if (i!==xHereWeStand)
 {xLIs[i] = ''
  + '<li title="' + xTITLEs[i] + '">'
  + '<a href="' + xHREFs[i] + '">'
  + xTEXTs[i]
  + '</a>'
  + '</li>' ;}
else
 {xLIs[i] = '' // We're here. No href link.
  + '<li title="' + xTITLEs[i] + '" class="HereWeStand">' // {color:GrayText;}
   + xTEXTs[i]
  + '</li>' ;}
} // next i

var xret = '<ul class="Nav NavH NavHTabs">'

for (i=0;i<xlen;i++) { // Assemble <UL> + <LI>s + </UL>
 xret = xret + xLIs[i];}

xret = xret + '</ul>';

//alert("jsNavHTopTabs() = " + xret);
document.write(xret);
return;}

// ********************************************************
function jsNavVMainxxx(pHomeSiteDot) { // <UL> + <LI>s + </UL>
// ********************************************************
// alert("jsNavVMain" + "\npHomeSiteDot = " + pHomeSiteDot);
var xULclass = "Nav NavV"; // <ul class="Nav NavH NavHTabs">
var i=0;
var j=0;
var xLIs = [];
var xRegExp = new RegExp();
var xRegExpTest = false;

// *********************************
// * These arrays should be STATIC *
// *********************************
var xTEXTs = [
 "Home",
 "BIOL 2111",
 "BIOL 2112",
 "Site map"
 ];

var xCLASSs = [
 "PAGE-BainC-Index",
 "PAGE-BIOL2111-Index",
 "PAGE-BIOL2112-Index",
 "PAGE-BainC-SiteMap"
 ];

var xTITLEs = [
 "Faculty Web Page home",
 "BIOL 2111 - Human Anatomy &amp; Physiology I",
 "BIOL 2112 - Human Anatomy &amp; Physiology II",
 "Faculty Web Page Site Map"
 ];

var xHREFs = [
 "BainC-Index.htm",
 "BIOL2111/BIOL2111-Index.htm",
 "BIOL2112/BIOL2112-Index.htm",
 "BainC-SiteMap.htm"
 ];

var xlen = xHREFs.length; /* All same length */
for (i=0;i<xlen;i++) {
 xHREFs[i] = pHomeSiteDot + xHREFs[i];}

var xBODY = document.getElementsByTagName("body"); /* Better be only one <BODY> element */
var xBODYclassNames = xBODY[0].className.split(" ");
var xBODYclassNameslen = xBODYclassNames.length; // Usually 0 or at most 1.

var xHereWeStand = -1; // Any match will be nonnegative.

LABELHereWeStand:
for (i=0;i<xBODYclassNameslen;i++) { // Eliminate classNames of no interest.
for (j=0;j<xlen;j++) {
 if (xCLASSs[j]===xBODYclassNames[i])
  {xHereWeStand = j;
   break LABELHereWeStand;}}}
alert("LABELHereWeStand: i,j=" + i + j);

//var xBODY = document.getElementsByTagName("body"); /* Better be exactly one <BODY> element */
//var xBODYclassNames = xBODY[0].className;

//xHereWeStand = -1; // Any match will be nonnegative.

for (i=0;i<xlen;i++) {
// xRegExp = new RegExp("\\b" + xCLASSs[i] + "\\b");
// xRegExpTest = xRegExp.test(xBODYclassNames);
// if (xRegExpTest)
//  {xHereWeStand = i;
//   break;}
 } // next i

for (i=0;i<xlen;i++) { // Assemble <LI>s
if (i!==xHereWeStand)
 {xLIs[i] = ''
  + '<li title="' + xTITLEs[i] + '">'
  + '<a href="' + xHREFs[i] + '">'
  + xTEXTs[i]
  + '</a>'
  + '</li>' ;}
else
 {xLIs[i] = '' // We're here. No href link.
  + '<li title="' + xTITLEs[i] + '" class="HereWeStand">' // {color:GrayText;}
  + xTEXTs[i]
  + '</li>' ;}
} // next i

var xret = '<ul class="' + xULclass + '">'

for (i=0;i<xlen;i++) { // Assemble <UL> + <LI>s + </UL>
 xret = xret + xLIs[i];}

xret = xret + '</ul>';

alert("jsNavVMain() = " + xret);
document.write(xret);
return;}

// ********************************************************
function jsNavVMain(pHomeSiteDot) { // <UL> + <LI>s + </UL>
// ********************************************************
// alert("jsNavVMain" + "\npHomeSiteDot = " + pHomeSiteDot);
var xULclass = "Nav NavV NavVTest"; // <ul class="Nav NavH NavHTabs">
var i=0;
//var j=0;
var xLIs = [];
var xlen = 0;      // Length of parallel arrays set after loading them.
var xlenExtra = 0; // Length of extra    arrays set after loading them.

var xBODY = document.getElementsByTagName("body"); /* Better be only one <BODY> element */
var xBODYclassNames = xBODY[0].className;
//alert("xBODYclassNames = " + xBODYclassNames);
// var xBODYclassNameslen;
// var xHereWeStand;

var xRegExp = new RegExp("");
var xRegExpTest = false;

// *********************************
// * These arrays should be STATIC *
// *********************************
var xTEXTs = [
 "Home",
 "BIOL 2111 - AP I",
 "BIOL 2112 - AP II",
 "Site map",
 "GeorgiaView",
 "myA&amp;P",
 "Frog study"
 ];
var xTEXTsExtra = [
 "Sandbox",
 "St. John&rsquo;s",
 "Eliza&rsquo;s wedding",
 "Port City Rodeo",
 "X"
 ];

var xCLASSs = [
 "PAGE-BainC-Index",
 "PAGE-AP-I-Index",
 "PAGE-BIOL2112-Index",
 "PAGE-BainC-SiteMap",
 "GeorgiaView-external link, never highlight, never disable",
 "myAandP-external link, never highlight, never disable",
 "PAGE-FrogStudy"
 ];
var xCLASSsExtra = [
 "PAGE-Sandbox",
 "PAGE-SJ-Index",
 "PAGE-CharlestonWedding",
 "PAGE-Rodeo",
 "PAGE-X"
 ];
var xCLASSsExtraShow = [
 "SHOW-Sandbox",
 "SHOW-SJ-Index",
 "SHOW-CharlestonWedding",
 "SHOW-Rodeo",
 "SHOW-X"
 ];

var xTITLEs = [
 "Faculty Web Page home",
 "BIOL 2111 - Human Anatomy &amp; Physiology I",
 "BIOL 2112 - Human Anatomy &amp; Physiology II",
 "Faculty Web Page Site Map",
 "GeorgiaView login",
 "myA&amp;P login",
 "Frog poopulation study - Bainbridge College, Georgia USA"
 ];
var xTITLEsExtra = [
 "Bill C's sandbox",
 "St. John&rsquo;s Episcopal Church, Bainbridge, Georgia",
 "Eliza&rsquo;s wedding Church of the Holy Communion, Charleston, South Carolina, Saturday July 18, 2009",
 "Port City Rodeo",
 "Page X"
 ];

var xHREFs = [
 "BainC-Index.htm",
 "AP/AP-I-Index.htm",
 "BIOL2112/BIOL2112-Index.htm",
 "BainC-SiteMap.htm",
 "http://bainbridge.view.usg.edu",
 "http://www.myAandP.com",
 "FrogStudy/FrogStudy-Index.htm"
 ];
var xHREFsExtra = [
 "Sandbox/SB-Index.htm",
 "SJ/SJ-Index.htm",
 "Sandbox/SB-CharlestonWedding/SB-CharlestonWedding.htm",
 "Sandbox/SB-Rodeo/Rodeo-Index.htm",
 "x.htm"
 ];
 
var xExtLink = [
 false,
 false,
 false,
 false,
 true,
 true,
 false
 ];
var xExtLinkExtra = [
 false,
 false,
 false,
 false,
 false
 ];

xlen = xHREFs.length;           // All parallel arrays are the same length.
xlenExtra = xHREFsExtra.length; // All extra    arrays are the same length.

for (i=0;i<xlenExtra;i++) { // Assemble <LI>s
//alert("xCLASSsExtraShow["+i+"]=" + xCLASSsExtraShow[i]);
 xRegExp = new RegExp("\\b" + xCLASSsExtraShow[i] + "\\b"); // Usually none or Sandbox+SJ+Wedding+X
 xRegExpTest = xRegExp.test(xBODYclassNames);
 if (xRegExpTest) {
  xTEXTs[xlen]  = xTEXTsExtra[i]; // Append Extra stuff.
  xCLASSs[xlen] = xCLASSsExtra[i];
  xTITLEs[xlen] = xTITLEsExtra[i];
  xHREFs[xlen]  = xHREFsExtra[i];
  xExtLink[xlen] = xExtLinkExtra[i];
  xlen = xlen + 1;}
  } // next i

// xHereWeStand = -1; // Any match will be nonnegative.

// xBODY = document.getElementsByTagName("body"); /* Better be only one <BODY> element */
// xBODYclassNamesSplit = xBODY[0].className.split(" ");
// xBODYclassNameslen = xBODYclassNames.length; // Usually 0 or at most 1.

//LABELHereWeStand:
//for (i=0;i<xBODYclassNameslen;i++) { // Eliminate classNames of no interest.
//for (j=0;j<xlen;j++) {
// if (xCLASSs[j]===xBODYclassNamesSplit[i])
//  {xHereWeStand = j;
//   break LABELHereWeStand; // Assume at most one hit
//}}}
//alert("LABELHereWeStand: i,j=" + i + j);

//for (i=0;i<xlen;i++) {
// xRegExp = new RegExp("\\b" + xCLASSs[i] + "\\b"); /* Usually only one class. */
// xRegExpTest = xRegExp.test(xBODYclassNames);
// if (xRegExpTest)
//  {xHereWeStand = i;
//   alert("HereWeStand (break)= " + xHereWeStand);
//   break;}
// } // next i
//alert("xHereWeStand (after)= " + xHereWeStand);

for (i=0;i<xlen;i++) { // Assemble <LI>s
 xRegExp = new RegExp("\\b" + xCLASSs[i] + "\\b"); /* Usually only one class. */
 xRegExpTest = xRegExp.test(xBODYclassNames);
 if ((!xRegExpTest) || (xExtLink[i])) {
  xLIs[i] = '' // We're not here. Generate href link.
  + '<li title="' + xTITLEs[i] + '">'
  + '<a href="';
  if (!xExtLink[i]) {  // if local link then account for folder structure
    xHREFs[i] = pHomeSiteDot + xHREFs[i];}
  if (xExtLink[i]) {   // if external link then set class="external"
    xHREFs[i] = xHREFs[i] + '" class="external';} // closing quote added below
//alert(xExtLink[i] + " xHREFs[" + i + "] = " + xHREFs[i]);
  xLIs[i] = xLIs[i]
  + xHREFs[i]
  + '">'
  + xTEXTs[i]
  + '</a>'
  + '</li>';}
 else {
  xLIs[i] = '' // We're here. No href link.
  + '<li title="' + xTITLEs[i] + '"' // + ' class="HereWeStand"' // {color:GrayText;}
  + ' style="'
  + 'background-color:#F5F5DC;'
  + 'color:GrayText;'
  + '">'
  + xTEXTs[i]
  + '</li>';}
} // next i

var xUL = '<ul class="' + xULclass + '">'

for (i=0;i<xlen;i++) { // Assemble <UL> + <LI>s + </UL>
 xUL = xUL + xLIs[i];}

xUL = xUL + '</ul>';

//alert("jsNavVMain() = " + xUL);
document.write(xUL);
return;}

/*************************/
/* End of "BainCTest.js" */
/*************************/
// *********************
// * End of "BainC.js" *
// *********************
