/*
  jsNav.  Written by Joe McCormack.  www.virtualsecrets.com.
*/
var navRetain = "normal";			/* How to cache data.  right = retain cache history after user's current position as static, left = retain cache history before user's current position as static, normal = retain cache history based on activity sequentially (the traditional way) */
var navLinkType = "text";			/* Type of cache history linking to use (text, button, image) */
var navCloseLevel = "none";			/* Close button level of closing ability.  single = close actively viewed cache data when clicked and load next cache data available but keep viewing area visible, all = close all cache data and remove from cache history and close viewing area, none = retain cache history but close the viewing area  */
var navBtnBackLabel = "<<";			/* Visible text for the back button */
var navBtnForwardLabel = ">>";			/* Visible text for the forward button */
var navBtnSpacer = "&nbsp;&nbsp;";		/* Spacing between the back and forward buttons; could use html tags here if needed */
var navBtnBackClass = "navBtnBack";		/* CSS class for the back button */
var navBtnForwardClass = "navBtnForward";	/* CSS class for the forward button */
var navBtnBackImg = "back.gif";			/* Path to image to use as the back button graphic */
var navBtnForwardImg = "forward.gif";		/* Path to image to use as the forward button graphic */
var navMax = 5;					/* Number of cache links/blocks to maintain */
var navTitleChars = 6;				/* Maximum number of characters per cache history link */
var navTxtDivider = " / ";			/* Divider between text cache links */
var navTitleTrailChars = "...";			/* Trailing character(s) to append to linkable text navigation titles */
var navInsName = "navLinks";			/* ID of the element that cache history links (textual or otherwise) are inserted into which is on the page */
var navInsData = "content";			/* ID of the element that cache history data is inserted into */
var navPaneActiveClass = "navLinkActive";	/* CSS class to reference indicating the cache block currently being viewed */
var navPaneOverClass = "navLinkOver";		/* CSS class to use when the mouse travels over a cache link - mouseover */
var navPaneDefClass = "navLinkDef";		/* CSS class to use when the mouse travels off a cache link - mouseout */
/* Do not modify */
var navIndex = -1;
var navToggle = 0;
navPaneTitles = new Array();
navPaneContent = new Array();
function navTrack(title, data) {
var loseData;
navToggle = 0;
if (navIndex == -1) {
		     /* navMin */
		     navIndex = navPaneTitles.push();
		     navIndex = navPaneContent.push();
		     navPaneTitles[navIndex] = title;
		     navPaneContent[navIndex] = data;
		    }
else if (navIndex >= navMax) {
			      /* navMax */
			      loseData = navPaneTitles.shift();
			      loseData = navPaneContent.shift();
			      navIndex = navPaneTitles.push();
			      navIndex = navPaneContent.push();
			      navPaneTitles[navIndex] = title;
			      navPaneContent[navIndex] = data;
			     }
else {
      /* navMin - navMax */
      if (typeof navPaneTitles[navIndex + 1] != "undefined") {
							      if (navRetain.toLowerCase() == "normal") {
													navIndex = navPaneTitles.push();
													navIndex = navPaneContent.push();
													navPaneTitles[navIndex] = title;
													navPaneContent[navIndex] = data;
													if (parseInt(navPaneTitles.length) > navMax) {
																		      loseData = navPaneTitles.shift();
																		      loseData = navPaneContent.shift();
																		      navIndex = navIndex - 1;
																		     }
												       }
							      else {
								    navPaneTitles.splice((navIndex + 1), 0, title);
								    navPaneContent.splice((navIndex + 1), 0, data);
								    if (parseInt(navPaneTitles.length) > navMax) {
														  if (navRetain.toLowerCase() == "right") {
																			   loseData = navPaneTitles.shift();
																			   loseData = navPaneContent.shift();
																			  }
														  else if (navRetain.toLowerCase() == "left") {
																			       loseData = navPaneTitles.pop();
																			       loseData = navPaneContent.pop();
																			      }
														 }
								   }
							     }
      else {
	    navIndex = navPaneTitles.push();
	    navIndex = navPaneContent.push();
	    navPaneTitles[navIndex] = title;
	    navPaneContent[navIndex] = data;
	    if (parseInt(navPaneTitles.length) > navMax) {
							  loseData = navPaneTitles.shift();
							  loseData = navPaneContent.shift();
							  navIndex = navIndex - 1;
							 }
	   }

     }
navCacheDisplay();
navTxtLinks();
}
function navCacheDisplay() {
if (navToggle == 0) {
		     document.getElementById(navInsData).innerHTML = navPaneContent[navIndex];
		     if (document.getElementById(navInsData).style.visibility.toLowerCase() != "visible") { document.getElementById(navInsData).style.visibility = "visible"; }
		    }
}
function navCacheHide() {
if (navToggle != 0) { document.getElementById(navInsData).style.visibility = "hidden"; }
}
function navTitleFilter(data) {
data = data.substring(0, navTitleChars);
data = data.replace(/</gi, "&lt;");
data = data.replace(/>/gi, "&gt;");
data = data.replace(/‹/gi, "&lsaquo;");
data = data.replace(/›/gi, "&rsaquo;");
data = data.replace(/«/gi, "&laquo;");
data = data.replace(/»/gi, "&raquo;");
data = data.replace(/"/gi, "&quot;");
data = data.replace(/“/gi, "&ldquo;");
data = data.replace(/”/gi, "&rdquo;");
data = data.replace(/„/gi, "&bdquo;");
data = data.replace(/‚/gi, "&sbquo;");
data = data.replace(/'/gi, "&#39;");
data = data.replace(/‘/gi, "&lsquo;");
data = data.replace(/’/gi, "&rsquo;");
data = data.replace(/–/gi, "&ndash;");
data = data.replace(/—/gi, "&mdash;");
data = data + navTitleTrailChars;
return(data);
}
function navTxtLinks() {
var compiled = "";
if (navLinkType.toLowerCase() == "text") {
					  for (x = 0; x < navPaneTitles.length; x++) {
										      if (x == navIndex) { compiled = compiled + "<span class=\"" + navPaneActiveClass + "\" onmouseover=\"this.className='" + navPaneOverClass + "';this.style.cursor='pointer';\" onmouseout=\"this.className='" + navPaneActiveClass + "';this.style.cursor='default';\" onmousedown=\"navTxtLinkActivate(" + x + ");\">" + navTitleFilter(navPaneTitles[x]) + "</span>"; }
										      else { compiled = compiled + "<span class=\"" + navPaneDefClass + "\" onmouseover=\"this.className='" + navPaneOverClass + "';this.style.cursor='pointer';\" onmouseout=\"this.className='" + navPaneDefClass + "';this.style.cursor='default';\" onmousedown=\"navTxtLinkActivate(" + x + ");\">" + navTitleFilter(navPaneTitles[x]) + "</span>"; }
										      if (x != (navPaneTitles.length - 1)) { compiled = compiled + navTxtDivider; }
										     }
					 }
else if (navLinkType.toLowerCase() == "button") {
						 var backShow = 0, forwardShow = 0;
						 if (navIndex >= 1) { backShow = 1; }
						 if (navIndex < navPaneTitles.length - 1) { forwardShow = 1; }
						 if (backShow == 1 && forwardShow == 1) {
											 compiled = compiled + "<input type=\"button\" class=\"" + navBtnBackClass + "\" value=\"" + navBtnBackLabel + "\" onmousedown=\"javascript:navBack();\" />";
											 compiled = compiled + navBtnSpacer;
											 compiled = compiled + "<input type=\"button\" class=\"" + navBtnForwardClass + "\" value=\"" + navBtnForwardLabel + "\" onmousedown=\"javascript:navForward();\" />";
											}
						 else if (backShow == 1) { compiled = compiled + "<input type=\"button\" class=\"" + navBtnBackClass + "\" value=\"" + navBtnBackLabel + "\" onmousedown=\"javascript:navBack();\" />"; }
						 else if (forwardShow == 1) { compiled = compiled + "<input type=\"button\" class=\"" + navBtnForwardClass + "\" value=\"" + navBtnForwardLabel + "\" onmousedown=\"javascript:navForward();\" />"; }
						}
else {
      if (navIndex >= 1) { compiled = compiled + "<img src=\"" + navBtnBackImg + "\" border=\"0\" alt=\"Back\" onmousedown=\"javascript:navBack();\" />"; }
      if (navIndex < navPaneTitles.length - 1) { compiled = compiled + "<img src=\"" + navBtnForwardImg + "\" border=\"0\" alt=\"Forward\" onmousedown=\"javascript:navForward();\" />"; }
     }
document.getElementById(navInsName).innerHTML = compiled;
}
function navTxtLinkActivate(element) {
navToggle = 0; navIndex = element; navCacheDisplay(); navTxtLinks();
}
function navBack() {
navToggle = 0; navIndex = navIndex - 1; navCacheDisplay(); navTxtLinks();
}
function navForward() {
navToggle = 0; navIndex = navIndex + 1; navCacheDisplay(); navTxtLinks();
}
function navStateRestore() {
if (navToggle != 0) {
		     if (navPaneTitles.length > 0) { navToggle = 0; navCacheDisplay(); navTxtLinks(); }
		    }
}
function navClose() {
var loseData = "", title = "", data = "";
navToggle = 0;
if (navCloseLevel.toLowerCase() == "none") {
					    navToggle = 1;
					    navCacheHide();
					   }
else if (navCloseLevel.toLowerCase() == "all") {
						var cacheSize = navPaneTitles.length;
						for (x = 0; x < cacheSize; x++) {
										 loseData = navPaneTitles.shift();
										 loseData = navPaneContent.shift();
										}
						navToggle = 1;
						navCacheHide();
					       }
else if (navCloseLevel.toLowerCase() == "single" || navCloseLevel.length == 0) {
										if (navIndex == -1) {
												     /* navMin */
												     navToggle = 1;
												     navCacheHide();
												    }
										else if (navIndex == navMax) {
													      /* navMax */
													      navIndex = navIndex - 1;
													      loseData = navPaneTitles.shift();
													      loseData = navPaneContent.shift();
													      title = navPaneTitles[navIndex];
													      data = navPaneContent[navIndex];
													     }
										else {
										      /* navMin - navMax */
										      title = navPaneTitles[navIndex];
										      data = navPaneContent[navIndex];
										      navPaneTitles.splice(navIndex, 1);
										      navPaneContent.splice(navIndex, 1);
										      if (navIndex > navPaneTitles.length - 1) { navIndex = navPaneTitles.length - 1; }
										      if (navPaneTitles.length == 0) {
														      navIndex = -1;
														      title = ""; data = "";
														      navToggle = 1;
														      navCacheHide();
														     }

										     }
									       }
navCacheDisplay();
navTxtLinks();
}
