//Global variables
var undefined;
var browser        = navigator.appName;
var version        = navigator.appVersion;
var useJava        = navigator.javaEnabled() ?"1":"0";
var isIEBrowser    = (navigator.appName.toLowerCase().indexOf("microsoft") != -1) ?"1":"0";
var isNavBrowser   = (navigator.appName.toLowerCase() == "netscape") ?"1":"0";
var isOthBrowser   = (!isIEBrowser && !isNavBrowser) ?"1":"0";
var isWinOS        = (version.toLowerCase().indexOf("win")!=-1) ?"1":"0";
var isMacOS        = (version.toLowerCase().indexOf("mac")!=-1) ?"1":"0";
var isOthOS        = (!isWinOS && !isMacOS) ?"1":"0";
var brVersion      = "";
var sButtonFrame   = "menuFrame";
var infoWin        = new Object();  //Object for info window
var childWin       = new Object();  //Object for child window
if (isIEBrowser   == true) {
	var aTemp        = version.split(";");
	var aTemp2       = aTemp[1].split(" ");
	brVersion        = aTemp2[2];
	aTemp            = null;
	aTemp2           = null;
} else {
	var sTemp        = version.substring(0, version.indexOf(" "));
	brVersion        = parseFloat(sTemp);
  sTemp            = null;
}
function jsChangeEFOTGTab(sElName) {
  var oDocument;
  for (var j = 0; j < top.frames.length; j++) {
    if (top.frames[j].name == "headerFrame") {
      var oDocument = top.frames[j].document;
      break;
    }
  }
  if (typeof oDocument != "object") return;
	for (var i = 0; i < oDocument.images.length; i++) {
	  var oCurrImg = oDocument.images[i];
	  if        (oCurrImg.name == "eFotgTab") {
			if (sElName == 'eFotgTab') {
	      oCurrImg.src = "images/eFOTG/tab_efotg_on.gif";
			} else {
	      oCurrImg.src = "images/eFOTG/tab_efotg_off.gif";
			}
		} else if (oCurrImg.name == "SearchTab") {
	    if (sElName == 'SearchTab') {
				oCurrImg.src = "images/eFOTG/tab_search_on.gif";
			} else {
	      oCurrImg.src = "images/eFOTG/tab_search_off.gif";
			}
		} else if (oCurrImg.name == "AboutTab") {
	    if (sElName == 'AboutTab') {
				oCurrImg.src = "images/eFOTG/tab_about_on.gif";
			} else {
	      oCurrImg.src = "images/eFOTG/tab_about_off.gif";
			}
		}
	}
} //jsChangeEFOTGTab

//Change the Portal Page
function jsChangePage( sURL ) {
  top.location.replace(sURL);
} // jsChangePage

function jsClosePage(sURL) {
  top.close();
} //jsClosePage

function jsGetHidInfoVal(sFrameRef) {
  var sReturn = "";
  var oFrames = top.frames;
  mainloop:
  for (var j = 0; j < oFrames.length; j++) {
    if (oFrames[j].name == sButtonFrame) {
      var oMenuFrame = oFrames[j].document.forms;
      for (var k = 0; k < oMenuFrame.length; k++) {
        if (oMenuFrame[k].name == "menuForm") {
          var oMenuForm = oMenuFrame[k];
          for (var l = 0; l < oMenuForm.length; l++) {
            if (oMenuForm[l].name == "hidCurrInfo") {
              sReturn = oMenuForm[l].value;
              break mainloop;
            }
          }  //l loop
        }
      } // k loop
    }
	} // mainloop/ j loop
  return sReturn;
} //jsGetHidInfoVal

// my_nrcs quick links jump
function jsJumpMenu(targ,selObj,restore) {
  var sURL = selObj.options[selObj.selectedIndex].value;
  // eval(targ+".location='"+sURL+"'");
  jsTechChildWinOpener(sURL);
	if (restore) selObj.selectedIndex=0;
} // jsJumpMenu

function jsTechChildWinOpener(sURL) {
  if (sURL != "") {
		var sAttr    = 'location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=yes';
		var nWidth   = screen.availwidth;
		var nHeight  = screen.availheight;
		var nLeft    = 5;
		var nTop     = 5;
		var wPct     = 95;
		var hPct     = 75;
		nWidth       = nWidth   * wPct / 100;
		nHeight      = nHeight  * hPct / 100;
		jsTechOpenChildWin(sURL, nWidth, nHeight, nLeft, nTop, sAttr);
  }
} //jsChildWinOpener

function OldjsHelpWinOpener(sURL) {
  if (sURL != "") {
		var sAttr    = 'location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=yes';
		var nWidth   = screen.availwidth;
		var nHeight  = screen.availheight;
		var nLeft    = 5;
		var nTop     = 5;
		var wPct     = 45;
		var hPct     = 75;
		nWidth       = nWidth   * wPct / 100;
		nHeight      = nHeight  * hPct / 100;
		jsOpenChildWin(sURL, nWidth, nHeight, nLeft, nTop, sAttr);
  }
}

// Generate a Generic Child Window.
// Parameters:
//    sURL -- URL of the page/frameset to be loaded into window
//    nWidth -- pixel width of the window
//    nHeight -- pixel height of the window
//    nLeft
//    nTop
//    sAttr -- screen attributes excluding width, height, left, top, 
//    screenLoc -- postion on screen (optional)
function jsTechOpenChildWin(sURL, nWidth, nHeight, nLeft, nTop, sAttr, screenLoc) {
  if (!childWin.win || (childWin.win && childWin.win.closed)) {
    // Initialize properties of the child window object.
    if (sAttr == undefined) sAttr = "";
    childWin.url    = sURL;
    childWin.width  = nWidth;
    childWin.height = nHeight;
    childWin.left   = nLeft;
    childWin.top    = nTop;
    childWin.attr   = sAttr;
    childWin.name   = "i" + (new Date()).getSeconds().toString(); //create unique name
    if (childWin.attr.substr(0, 1) == ",") childWin.attr = childWin.attr.substr(1);
    // Generate the window and give it has focus.
    if (screenLoc == "" || screenLoc == undefined) screenLoc = "";
    screenLoc = screenLoc.toLowerCase();
    switch (screenLoc) {
			case "ul":
				childWin.left = 5;
				childWin.top  = 5;
			break;
			case "um":
			  childWin.left = (isNavBrowser == true)? window.screenX + ((window.outerWidth - childWin.width) / 2): ((screen.width - childWin.width) / 2);
			  childWin.top  = 5;
			break;
			case "ur":
				childWin.left = (isNavBrowser == true)? window.screenX + (window.outerWidth - childWin.width) : (screen.width - childWin.width);
				childWin.left -= 10;
				childWin.top  = 5;
			break;
			case "cl":
				childWin.left = 5;
				childWin.top  = (isNavBrowser == true)? window.screenY + ((window.outerHeight - childWin.height) / 2): ((screen.height - childWin.height) / 2);
			break;
			case "cr":
				childWin.left = (isNavBrowser == true)? window.screenX + (window.outerWidth - childWin.width) : (screen.width - childWin.width);
				childWin.left -= 10;
				childWin.top  = (isNavBrowser == true)? window.screenY + ((window.outerHeight - childWin.height) / 2): ((screen.height - childWin.height) / 2);
			break;
			case "ll":
				var nOutH      = (isNavBrowser == true)? window.screenY + window.outerHeight: screen.height;
				var nCalcTop   = (nOutH - childWin.height);
				childWin.top   = nCalcTop - (nCalcTop * .60);
			break;
			case "lm":
				childWin.left = (isNavBrowser == true)? childWin.left = window.screenX + ((window.outerWidth - childWin.width) / 2): ((screen.width - childWin.width) / 2);
				childWin.top  = (isNavBrowser == true)? window.screenY + (window.outerHeight - childWin.height) : (screen.height - childWin.height);
				childWin.top  -= 100;
			break;
			case "lr":
				childWin.left = (isNavBrowser == true)? window.screenX + (window.outerWidth - childWin.width) : (screen.width - childWin.width);
				childWin.left -= 10;
				childWin.top  = (isNavBrowser == true)? window.screenY + (window.outerHeight - childWin.height) : (screen.height - childWin.height);
				childWin.top  -= 100;
			break;
			case "center":
				childWin.left = (isNavBrowser == true)? childWin.left = window.screenX + ((window.outerWidth - childWin.width) / 2): ((screen.width - childWin.width) / 2);
				childWin.top  = (isNavBrowser == true)? window.screenY + ((window.outerHeight - childWin.height) / 2): ((screen.height - childWin.height) / 2);
				childWin.top  -= 50;
			break;
    } //switch
    childWin.left = parseInt(childWin.left);
    childWin.top  = parseInt(childWin.top);
    // Assemble window attributes and position the dialog.
    if (isNavBrowser == true) {
      var attr = "screenX=" + childWin.left +
        ",screenY=" + childWin.top + ",width=" +
        childWin.width + ",height=" + childWin.height
    } else {
      var attr = "left=" + childWin.left + ",top=" +
        childWin.top + ",width=" + childWin.width +
        ",height=" + childWin.height
    }
		childWin.attr += "," + attr;
    childWin.win=window.open(childWin.url, childWin.name, childWin.attr);
    childWin.win.focus();
  } else {
    if (childWin.url != sURL) {
      childWin.url    = sURL;
      childWin.url    = sURL;
      if (childWin.width  != nWidth  ||
          childWin.height != nHeight ||
          childWin.left   != nLeft   ||
          childWin.top    != nTop)
      {
        childWin.width  = nWidth;
        childWin.height = nHeight;
        childWin.left   = nLeft;
        childWin.top    = nTop;
        childWin.attr   = sAttr;
        if (isIEBrowser  == true) childWin.attr += ",left=" + childWin.left + ",top=" + childWin.top;
        if (isNavBrowser == true) childWin.attr += ",screenX=" + childWin.left + ",screenY=" + childWin.top;
        childWin.attr  += ",width=" + childWin.width + ",height=" + childWin.height;
        if (childWin.attr.substr(0, 1) == ",") childWin.attr = childWin.attr.substr(1);
      }
      childWin.win    = window.open(childWin.url, childWin.name, childWin.attr);
    }
    childWin.win.focus();
  }
} //jsOpenChildWin

function jsOpenInfo(sMenuID) {
  if (typeof sMenuID == "undefined") sMenuID = "";  //sMenuID is optional
  if (sMenuID == "") sMenuID = jsGetHidInfoVal();   //if sMenuID is blank, get value from hidCurrInfo
  if (sMenuID == "") return;                        //if sMenuID is still blank, return
	var sURL     = "info.aspx?DocID=" + sMenuID;
	var nWidth   = screen.availwidth;  // (isNavBrowser == true) ? top.outerWidth :  top.document.body.offsetWidth;
	var nHeight  = screen.availheight; // (isNavBrowser == true) ? top.outerHeight: top.document.body.offsetHeight;
	var wPct     = 40;
	var hPct     = 90;
	nWidth       = nWidth   * wPct / 100;
	nHeight      = nHeight  * hPct / 100;
  var sScrnLoc = '';
  var sArgs    = '';
  jsOpenInfoWin(sURL, nWidth, nHeight, sScrnLoc, sArgs);
} //jsOpenInfo

// Generate a info Window.
// Parameters:
//    url -- URL of the page/frameset to be loaded into window
//    width -- pixel width of the window
//    height -- pixel height of the window
//    screenLoc -- 'center', --- to come =  'ur', 'ul', 'lr', 'll', '[pixelTop],[pixelLeft]'
//    args -- [optional] any data you need to pass to the dialog
function jsOpenInfoWin(url, width, height, screenLoc, args) {
  if (!infoWin.win || (infoWin.win && infoWin.win.closed)) {
    // Initialize properties of the info window object.
    if (screenLoc == undefined) screenLoc = "";
    infoWin.url           = url;
    infoWin.width         = width;
    infoWin.height        = height;
    infoWin.args          = args;
    infoWin.name          = "i" + (new Date()).getSeconds().toString(); //create unique name
    infoWin.left          = 5;
    infoWin.top           = 5;
    infoWin.attr          = "left=" + infoWin.left + ",top=" + infoWin.top;
    if (isNavBrowser == true) {
      infoWin.attr        = "screenX=" + infoWin.left + ",screenY=" + infoWin.top;
    };
    infoWin.attr         += ",resizable=yes,scrollbars=yes,width=" + infoWin.width + ",height=" + infoWin.height;

    // Assemble window attributes and try to center the dialog.
    switch (screenLoc) {
      case '':
      break;
      case 'center':
        if (isNavBrowser == true) {
          infoWin.left = window.screenX + ((window.outerWidth - infoWin.width) / 2)
          infoWin.top  = window.screenY + ((window.outerHeight - infoWin.height) / 2)
        } else {
          infoWin.left = (screen.width - infoWin.width) / 2
          infoWin.top  = (screen.height - infoWin.height) / 2
        }
    } //switch
    // Generate the window and give it has focus.
    infoWin.win=window.open(infoWin.url, infoWin.name, infoWin.attr);
    infoWin.win.focus();
  } else {
    if (infoWin.url != url) {
      infoWin.url= url;
      infoWin.win=window.open(infoWin.url, infoWin.name, infoWin.attr);
    }
    infoWin.win.focus();
  }
} //jsOpenInfoWin

function jsOpeneFOTG(StateCode) {
  if (StateCode == "") return;
	var sURL     = "efotg.aspx?state=" + StateCode;
	var nWidth   = screen.availwidth;
	var nHeight  = screen.availheight;
	var wPct     = 100;
	var hPct     = 95;
	nWidth       = nWidth   * wPct / 100;
	nHeight      = nHeight  * hPct / 100;
	var nLeft    = 0;
	var nTop     = 15;
	var sArgs    = "left=" + nLeft + ",top=" + nTop;
	if (isNavBrowser == true) {
		sArgs      = "screenX=" + nLeft + ",screenY=" + nTop;
	};
	var bOpenInWindow = true;
	if (bOpenInWindow) {
		sArgs       += ",menubar=yes,toolbar=yes,location=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,width=" + nWidth + ",height=" + nHeight;
		var eFOTGWin = window.open(sURL, 'eFOTGWin', sArgs);
		eFOTGWin.focus();
	} else {
		location.replace(sURL);
	}
} //jsOpeneFOTG

function jsBtnMouseDown(oBtn){
	jsSetBtnImage(oBtn, "d");
} //jsBtnMouseDown
function jsBtnMouseOut(oBtn) {
	jsSetBtnImage(oBtn, "u");
}
function jsSetBtnImage(oBtn, sBtnSuff) {
	var sOldSrc   = oBtn.src;
	if (sOldSrc.indexOf("shim") > -1) {
		return;
	}
	var aFileExt  = sOldSrc.split(".");
	var nFileExt  = aFileExt.length;
	var i         = 0;
	var sFileName = "";
	for (i = 0; i < nFileExt - 1; i++) {
		sFileName  += aFileExt[i] + ".";
	}	
	if (sFileName == "") sFileName = aFileExt[0];
	var aFileSuff = sFileName.split("_");
	var nFileSuff = aFileSuff.length;
	var sNewSrc   = "";
	for (i = 0; i < nFileSuff - 1; i++) {
		sNewSrc += aFileSuff[i] + ".";
	}	
	if (sNewSrc   == "") sNewSrc = aFileSuff[0];
	else sNewSrc  = sNewSrc.substr(0, sNewSrc.length - 1);
	sNewSrc      += "_" + sBtnSuff + "." + aFileExt[nFileExt - 1];
	oBtn.src      = sNewSrc;
} //jsBtnMouseOut


function jsOpenPage(sURL,sDefaultShow) {
  var nInfo = "";
  if (sDefaultShow != undefined) {
    nInfo = parseInt(sDefaultShow);
    if (isNaN(nInfo) == true) {nInfo = "";}
    else {sDefaultShow = null;}
  }
	var sShow      = "window";
	var allCookies = document.cookie;
	var pos        = allCookies.indexOf("eFOTGDisplay=");
	var start      = -1;
	var end        = -1;
	var sDisp      = "";
	if (pos != -1) {
		start = pos + 13;
		end = allCookies.indexOf(";", start);
		if (end == -1) end = allCookies.length;
		sDisp = allCookies.substring(start, end);
		sDisp = unescape(sDisp);
	}
  if (sDisp != "") sShow = (sDisp == "radFrame"?"frame":"window");
	if (sDefaultShow != undefined) sShow = sDefaultShow;
	if (typeof top.headerFrame == "object") {
		var sTabName = "eFotgTab";
		if (sURL == "efotg_search.aspx") sTabName = "SearchTab";
		if (sURL == "about.htm") sTabName = "AboutTab";
	  jsChangeEFOTGTab(sTabName); //set tab to eFOTG (if top.headerFrame found)
	}  
  jsSetHidInfoVal(nInfo);
  var oFrames = top.frames;
  openPageLoop:
  for (var j = 0; j < oFrames.length; j++) {
    if (oFrames[j].name == sButtonFrame) {
      var oMenuImgs = oFrames[j].document.images;
      for (var k = 0; k < oMenuImgs.length; k++) {
        if (oMenuImgs[k].name == "btnInfo") {
          var oBtnInfo    = oMenuImgs[k];
          if (nInfo != "") {
            oBtnInfo.src    = "images/btnInfo_u.jpg"; 
            oBtnInfo.alt    = "Current document information";
          } else {
            oBtnInfo.src    = "images/eFotg/shim.gif";
            oBtnInfo.alt    = alt="placeholder for info button";
          }  
        }
        if (oMenuImgs[k].name == "btnTBook") {
          var oBtnTBook    = oMenuImgs[k];
          if (nInfo != "") {
            oBtnTBook.src   = "images/btnTBook_u.jpg"; 
            oBtnInfo.alt    = "Update ThunderBook with current document";
          } else {
            oBtnInfo.src    = "images/eFotg/shim.gif";
            oBtnInfo.alt    = alt="placeholder for ThunderBook button";
          }  
        }
      }
      break openPageLoop;
    }
	} //openPageLoop
	if (sShow == "frame") {top.dataFrame.location.href = sURL;} 
	else {window.open(sURL);}
} //jsOpenPage

function jsOutInfoBtn() {
  var sReturn   = '';
  var sHidValue = '';
  sHidValue = jsGetHidInfoVal();
  if (sHidValue != "") sReturn = '&nbsp;&nbsp;<A class="cHand" onclick="jsOpenInfo(' + "'" + sHidValue + "'" + ')"><IMG src="images/info.jpg" height="16" width="50" border="0"></A>';
  return sReturn;
} //jsOutInfoBtn

function jsNoPage(inMsg) {
  var sMsg = "";
  //if (inMsg != undefined) sMsg = inMsg;
  //else sMsg = "The menu item you selected does not have a page associated with it."
  //window.alert(sMsg);
  jsOpenPage("underConstruction.html","frame")
} //jsNoPage

function jsRefreshMenu(sStateCode,sFips) {
  var sURL = "efotg.aspx?Refresh=true&state=" + sStateCode + "&fips=" + sFips;
  var oFrames = top.frames;
  /*
  openPageLoop:
  for (var j = 0; j < oFrames.length; j++) {
    if (oFrames[j].name == sButtonFrame) {
      var oMenuImgs = oFrames[j].document.images;
      for (var k = 0; k < oMenuImgs.length; k++) {
        if (oMenuImgs[k].name == "btnRefreshMenu") {
          var oBtnInfo    = oMenuImgs[k];
          oBtnInfo.src    = "./images/eFotg/refreshmenuClicked.jpg";
          break openPageLoop;
        }
      }
      break openPageLoop;
    }
	} //openPageLoop
	*/
	top.location.href = sURL;
} //jsRefreshMenu

function jsSetHidInfoVal(sValue) {
  var oFrames = top.frames;
  var nReturn = 0; //set to 1 if successful
  mainloop:
  for (var j = 0; j < oFrames.length; j++) {
    if (oFrames[j].name == sButtonFrame) {
      var oMenuFrame = oFrames[j].document.forms;
      for (var k = 0; k < oMenuFrame.length; k++) {
        if (oMenuFrame[k].name == "menuForm") {
          var oMenuForm = oMenuFrame[k];
          for (var l = 0; l < oMenuForm.length; l++) {
            if (oMenuForm[l].name == "hidCurrInfo") {
              oMenuForm[l].value = sValue;
              nReturn = 1; //success
              break mainloop;
            }
          }  //l loop
        }
      } // k loop
    }
	} // mainloop/ j loop
	return nReturn;
} //jsSetHidInfoVal

function jsOpenTBook() {
  var sMenuID = jsGetHidInfoVal();   //if sMenuID is blank, get value from hidCurrInfo
  if (sMenuID == "") return;                        //if sMenuID is still blank, return
	var sURL     = "thunderbook.aspx?DocID=" + sMenuID;
	var nWidth   = screen.availwidth;  // (isNavBrowser == true) ? top.outerWidth :  top.document.body.offsetWidth;
	var nHeight  = screen.availheight; // (isNavBrowser == true) ? top.outerHeight: top.document.body.offsetHeight;
	var wPct     = 70;
	var hPct     = 70;
	nWidth       = nWidth   * wPct / 100;
	nHeight      = nHeight  * hPct / 100;
  var sScrnLoc = '';
  var sArgs    = '';
  jsOpenTBookWin(sURL, nWidth, nHeight, sScrnLoc, sArgs);
} //jsOpenTBook

function jsOpenTBookWin(url, width, height, screenLoc, args) {
  if (!infoWin.win || (infoWin.win && infoWin.win.closed)) {
    // Initialize properties of the info window object.
    if (screenLoc == undefined) screenLoc = "";
    infoWin.url           = url;
    infoWin.width         = width;
    infoWin.height        = height;
    infoWin.args          = args;
    infoWin.name          = "i" + (new Date()).getSeconds().toString(); //create unique name
    infoWin.left          = 50;
    infoWin.top           = 50;
    infoWin.attr          = "left=" + infoWin.left + ",top=" + infoWin.top;
    if (isNavBrowser == true) {
      infoWin.attr        = "screenX=" + infoWin.left + ",screenY=" + infoWin.top;
    };
    infoWin.attr         += ",resizable=yes,scrollbars=yes,width=" + infoWin.width + ",height=" + infoWin.height;

    // Assemble window attributes and try to center the dialog.
    switch (screenLoc) {
      case '':
      break;
      case 'center':
        if (isNavBrowser == true) {
          infoWin.left = window.screenX + ((window.outerWidth - infoWin.width) / 2)
          infoWin.top  = window.screenY + ((window.outerHeight - infoWin.height) / 2)
        } else {
          infoWin.left = (screen.width - infoWin.width) / 2
          infoWin.top  = (screen.height - infoWin.height) / 2
        }
    } //switch
    // Generate the window and give it has focus.
	infoWin.win = window.open(infoWin.url, infoWin.name);
    infoWin.win.focus();
  } else {
    if (infoWin.url != url) {
      infoWin.url= url;
	  infoWin.win = window.open(infoWin.url, infoWin.name);
    }
    infoWin.win.focus();
  }
} //jsOpenInfoWin