function ss_fixAllLinks() 
{ 
	// 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',smoothScroll); 
   		} 
 	} 
}
function smoothScroll(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 **REPLACED WITH BELOW CODE TO ALLOW FOR IMG TAGS WITHIN A-LINKS 
 	//if (target.nodeName.toLowerCase() != 'a') return; 
 	// Find the triggering anchor
	while (target.nodeName.toLowerCase() != 'a') 
	{
		target = target.parentNode;
	}
 	// 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;
		document.title = "Go 2 Lift: " + destinationLink.name.toUpperCase();
 	} 
 	// Stop any current scrolling 
 	clearInterval(ss_INTERVAL); 
  	cypos = ss_getCurrentYPos(); 
  	ss_stepsize = parseInt((desty-cypos)/ss_STEPS);
	//USE BELOW FOR NON-EASED SCROLLING FUNCTION...
 	//ss_INTERVAL = setInterval('ss_scrollWindow('+ss_stepsize+','+desty+',"'+anchor+'")',10); 
	//Use below for easing...
 	ss_INTERVAL = setInterval('ss_scrollWindow('+cypos+','+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(); 
 	} 
} 
//USE BELOW FOR NON-EASED SCROLLING 
//function ss_scrollWindow(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; 
// } 
//}
//USE BELOW FOR EASED SCROLLING
var idx = 0;
function ss_scrollWindow(srcy,desty,anchor)
{
	// use 0 - pi/2 of sine curve to scroll
	var y = srcy+(Math.sin(((idx++)/ss_STEPS)*0.5*Math.PI)*(desty-srcy));
	window.scrollTo(0,y);
	if (idx == ss_STEPS) 
	{
		window.scrollTo(0,desty);
		// cancel the repeating timer
		clearInterval(ss_INTERVAL);
		// and jump to the link directly so the URL's right
		location.hash = anchor;
		idx = 0;
	}
}
function ss_getCurrentYPos() 
{ 
 	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; 
} 
function ss_addEvent(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; 
	} 
}
var ss_INTERVAL; 
var ss_STEPS = 60; 
ss_addEvent(window,"load",ss_fixAllLinks);
