/*  FUNCTION reverseDisplay(name of item)
    This funciton reverse the visibility of the name of the item ide.
*/

function reverseDisplay(itemID)
	{
	temp=itemID
	currentDisplay=document.getElementById(temp).style.display;
	if(currentDisplay=="none")
		{
		document.getElementById(temp).style.display="block";
		}
	else	{
		document.getElementById(temp).style.display="none";
		}
	}

/*  FUNCTION dropDowns(which,how)
    This function shows and hides the drop-down menus.
    Parameters: which = name of element to show or hide
                how   = visible or hidden
*/

function dropdown(whichid,howvisible)
	{
	thedelay = 500;						// THIS MIGHT NEED ADJUSTMENT
	temp=whichid;
	if(howvisible=="hidden")
		{
		//timerId = setTimeout('document.getElementById(temp).style.visibility="hidden"',thedelay);
		document.getElementById(temp).style.visibility="hidden"
}
	if(howvisible=="visible")
		{
		// clearTimeout(timerId);
		document.getElementById(temp).style.visibility="visible";
		return false;
		}
	return true;
	}
	


/* FUNCTION SLIDE
   Parameters: "which" is the number of the DIV that will be shown. Concatenate to "div1" (for instance).
   So, the divs must be named "div1", "div2", etc.
*/			   

oldDiv="";						// INITIALIZE AS EMPTY FOR THE SLIDE FUNCTION

function slide(which)
	{
	newDiv="div" + which;
	document.getElementById(newDiv).style.display="block";			// SHOW THE REQUESTED DIV
	if(oldDiv && oldDiv != newDiv)
		{
		document.getElementById(oldDiv).style.display="none";		// HIDE THE ONE THAT'S SHOWING, IF ANY
		}
	oldDiv = newDiv;												// SET THIS FOR NEXT TIME
	location.href="#thumbtop";
	return;
	}

/* THIS FUNCTION USES slide() to expose a hidden DIV on another page by linking to that page with the search parameter equal to the number of the DIV.
For example: <a href="other_page.htm?2">Go to other page and show div2</a>	
*/

function showDiv()
	{
	if(location.search)
		{
		temp=location.search;
		temp=temp.substring(1,temp.length);
		slide(temp);
		}
	}			


// THIS FUNCTION IS USED TO SWITCH THE LITTLE MENUS ON THE FUTURE AND CURRENT SEWER PROJECTS PAGES

function switchL(what)
	{
	document.getElementById("divL1").style.display="none";
	document.getElementById("divL2").style.display="none";
	document.getElementById("divL3").style.display="none";
	document.getElementById(what).style.display="block";
	}

/* THIS FUNCTION LOADS A LARGER TOUR IMAGE INTO photobox.htm, LOCATED IN THE TREATMENT PLANTS ROOT FOLDER
   The function is triggered by an onclick event on the small image, not on the A link.
   Important: The htm file calling this function must be in the "tour" folder of the treatment plant,
              and the image file to load must be in the "tour/image" folder of the treatment plant.
*/			  
	function bigTour(clickedImage,bigImageName)
		{
		smallImage=clickedImage;
		thephotobox = "../../photobox.htm?" + pathOnly(smallImage.src) + bigImageName;
		if(smallImage.height > 120)
			{
			win=window.open(thephotobox, "verticalbox", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,height=360,width=240");
			}
		else
			{
			win=window.open(thephotobox, "horizontalbox", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,height=360,width=540");
			}
		}


/* FUNCTION puSmallBig 

   Popup window with image based on screen resolution.
   800x600 resolution uses the smaller resolution.

   Usage:

   -Create a normal link to a file, targeted to "_blank" with
     onClick="puSmallBig(..parameters..);return false;

     If the Javascript doesn't run, this will just open a browser iteration
     with the file. Use the smaller file for this, to be on the safe side.

   Maximum image height: 400px for small resolution; 560px for large resolution

   Parameters:
   nameSmall:   relative filename with smaller image
   widthSmall:  popup window width for smaller image
   heightSmall: popup window height for smaller image
   nameBig:     relative filename with smaller image
   widthBig:    popup window width for smaller image
   heightBig:   popup window height for smaller image
   windowName:  name for the popup window
*/

function puSmallBig(nameSmall,widthSmall,heightSmall,nameBig,widthBig,heightBig,windowName)
	{
	if(screen.height)						// GET VIDEO HEIGHT, OR QUIT (last step)
		{
		if(screen.height > 600)				// USE BIGGER IMAGE
			{
			mywidth=widthBig;
			myheight=heightBig;
			myname=nameBig
			}
		else	{						// USE SMALLER IMAGE
			mywidth=widthSmall;
			myheight=heightSmall;
			myname=nameSmall
			}
		mywindowName=windowName;

		// TRY THE POPUP
		temp="mypup=window.open('" + myname + "','" + mywindowName + "','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,height=" + myheight + ",width=" + mywidth + "')";
		eval(temp);
		}
		
	if(mypup){return true;}				// POPUP WINDOW WAS MADE. DONE.

	return false;					// POPUP WINDOW WASN'T MADE, OR SCREEN RESOLUTION WASN'T DETERMINED

	}


/*
SMOOTH SCROLL: Move to named anchors on page smoothly
*/

/* Smooth scrolling
   Changes links that link to other parts of this page to scroll
   smoothly to those links rather than jump to them directly, which
   can be a little disorienting.

   sil, http://www.kryogenix.org/

   v1.0 2003-11-11
   v1.1 2005-06-16 wrap it up in an object
*/

var ss = {
  fixAllLinks: function() {
    // Get a list of all links in the page
    var allLinks = document.getElementsByTagName('a');
    // Walk through the list
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if ((lnk.href && lnk.href.indexOf('#') != -1) && 
          ( (lnk.pathname == location.pathname) ||
	    ('/'+lnk.pathname == location.pathname) ) && 
          (lnk.search == location.search)) {
        // If the link is internal to the page (begins in #)
        // then attach the smoothScroll function as an onclick
        // event handler
        ss.addEvent(lnk,'click',ss.smoothScroll);
      }
    }
  },

  smoothScroll: function(e) {
    // This is an event handler; get the clicked on element,
    // in a cross-browser fashion
    if (window.event) {
      target = window.event.srcElement;
    } else if (e) {
      target = e.target;
    } else return;

    // Make sure that the target is an element, not a text node
    // within an element
    if (target.nodeType == 3) {
      target = target.parentNode;
    }

    // Paranoia; check this is an A tag
    if (target.nodeName.toLowerCase() != 'a') return;

    // Find the <a name> tag corresponding to this href
    // First strip off the hash (first character)
    anchor = target.hash.substr(1);
    // Now loop all A tags until we find one with that name
    var allLinks = document.getElementsByTagName('a');
    var destinationLink = null;
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if (lnk.name && (lnk.name == anchor)) {
        destinationLink = lnk;
        break;
      }
    }

    // If we didn't find a destination, give up and let the browser do
    // its thing
    if (!destinationLink) return true;

    // Find the destination's position
    var destx = destinationLink.offsetLeft; 
    var desty = destinationLink.offsetTop;
    var thisNode = destinationLink;
    while (thisNode.offsetParent && 
          (thisNode.offsetParent != document.body)) {
      thisNode = thisNode.offsetParent;
      destx += thisNode.offsetLeft;
      desty += thisNode.offsetTop;
    }

    // Stop any current scrolling
    clearInterval(ss.INTERVAL);

    cypos = ss.getCurrentYPos();

    ss_stepsize = parseInt((desty-cypos)/ss.STEPS);
    ss.INTERVAL =
setInterval('ss.scrollWindow('+ss_stepsize+','+desty+',"'+anchor+'")',10);

    // And stop the actual click happening
    if (window.event) {
      window.event.cancelBubble = true;
      window.event.returnValue = false;
    }
    if (e && e.preventDefault && e.stopPropagation) {
      e.preventDefault();
      e.stopPropagation();
    }
  },

  scrollWindow: function(scramount,dest,anchor) {
    wascypos = ss.getCurrentYPos();
    isAbove = (wascypos < dest);
    window.scrollTo(0,wascypos + scramount);
    iscypos = ss.getCurrentYPos();
    isAboveNow = (iscypos < dest);
    if ((isAbove != isAboveNow) || (wascypos == iscypos)) {
      // if we've just scrolled past the destination, or
      // we haven't moved from the last scroll (i.e., we're at the
      // bottom of the page) then scroll exactly to the link
      window.scrollTo(0,dest);
      // cancel the repeating timer
      clearInterval(ss.INTERVAL);
      // and jump to the link directly so the URL's right
      location.hash = anchor;
    }
  },

  getCurrentYPos: function() {
    if (document.body && document.body.scrollTop)
      return document.body.scrollTop;
    if (document.documentElement && document.documentElement.scrollTop)
      return document.documentElement.scrollTop;
    if (window.pageYOffset)
      return window.pageYOffset;
    return 0;
  },

  addEvent: function(elm, evType, fn, useCapture) {
    // addEvent and removeEvent
    // cross-browser event handling for IE5+,  NS6 and Mozilla
    // By Scott Andrew
    if (elm.addEventListener){
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent){
      var r = elm.attachEvent("on"+evType, fn);
      return r;
    } else {
      alert("Handler could not be removed");
    }
  } 
}

ss.STEPS = 25;

ss.addEvent(window,"load",ss.fixAllLinks);

// END OF SMOOTH SCROLL



// HELPERS

	function pathOnly (InString)
		{
		LastSlash=InString.lastIndexOf ('/', InString.length-1);
		OutString=InString.substring  (0, LastSlash+1);
		return (OutString);	
		}

