var xmlhttp;
var browserAgent = navigator.userAgent.toLowerCase();

var objValidXMLFile;
var objValidXMLFile2;
var objValidXMLFile3;

function doLoad() 
{
	if( browserAgent.indexOf( "gecko" ) > -1 )
		loadValidExternalXMLFile();
	else if( browserAgent.indexOf( "msie" ) > -1 )
		StartBreadcrumb();
}

function loadValidExternalXMLFile()
{
	objValidXMLFile = jsXML.createDOMDocument();
	objValidXMLFile.onreadystatechange = doLoad_ValidExternalXMLFile;
	objValidXMLFile.load( "/resources/nav/navigation.xml" );
}

function doLoad_ValidExternalXMLFile()
{
	if(objValidXMLFile.readyState == 4)
		BuildTrail1();

	if( objValidXMLFile2.readyState == 4 )
		BuildTrail2();

	if( objValidXMLFile3.readyState == 4 )
		BuildTrail3();    
}

var breadcrumbString = "<strong>you are here</strong> ";	
var host = window.location.host;
var tempPath = window.location.href;
tempPath = tempPath.slice( tempPath.indexOf( host ) + host.length, tempPath.length );

var pathArray = tempPath.split( '/' );
function BuildTrail1()
{
	var i = 0;
	//- Check Tier 1 -//
	try
	{
		if( pathArray[1].indexOf( '.html' ) == -1 )
		{
			var tier1Coll = objValidXMLFile.getElementsByTagName( 'tier1' );
			for( i = 0; i < tier1Coll.length; i++ )
			{
				var folderName = tier1Coll[i].getAttribute( 'dir' ).split( '/' )[1];
				if( folderName == pathArray[1] )
				{
					breadcrumbString += "<span class=\"cookietrail\">::</span> <a class=\"cookietrail2\" href=\"" + tier1Coll[i].getAttribute( 'link' ) + "\">" + tier1Coll[i].getAttribute( 'name' ) + "</a> ";

					objValidXMLFile2 = jsXML.createDOMDocument();
					objValidXMLFile2.loadXML( tier1Coll[i].xml );
					break;
				}
			}
		}
	}
	catch(e)
	{
		alert( '[Mozilla Error]\n\nError in Navigation - Tier1' );
		document.getElementById( "breadCrumbingPrimary" ).innerHTML = breadcrumbString;
	}
}

function BuildTrail2()
{
	var i = 0;
	//- Check Tier 2 -//
	try
	{
		if( pathArray[2].indexOf( '.html' ) == -1 )
		{
			var tier2Coll = objValidXMLFile2.getElementsByTagName( 'tier2' );
			for( i = 0; i < tier2Coll.length; i++ )
			{
				var folderName = tier2Coll[i].getAttribute( 'dir' ).split( '/' )[2];
				if( folderName == pathArray[2] )
				{
					breadcrumbString += "<span class=\"cookietrail\">::</span> <a class=\"cookietrail2\" href=\"" + tier2Coll[i].getAttribute( 'link' ) + "\">" + tier2Coll[i].getAttribute( 'name' ) + "</a> ";

					objValidXMLFile3 = jsXML.createDOMDocument();
					objValidXMLFile3.loadXML( tier2Coll[i].xml );
					break;
				}
			}
		}
	}
	catch(e)
	{
		alert( '[Mozilla Error]\n\nError in Navigation - Tier2' );
		document.getElementById( "breadCrumbingPrimary" ).innerHTML = breadcrumbString;
	}
}

function BuildTrail3()
{
	var i = 0;
	//- Check Tier 3 -//
	try
	{
		if( pathArray[3].indexOf( '.html' ) == -1 )
		{
			var tier3Coll = objValidXMLFile3.getElementsByTagName( 'tier3' );
			for( i = 0; i < tier3Coll.length; i++ )
			{	
				var folderName = tier3Coll[i].getAttribute( 'dir' ).split( '/' )[3];
				if( folderName == pathArray[3] )
				{
					breadcrumbString += "<span class=\"cookietrail\">::</span> <a class=\"cookietrail2\" href=\"" + tier3Coll[i].getAttribute( 'link' ) + "\">" + tier3Coll[i].getAttribute( 'name' ) + "</a>";
					break;
				}
			}
		}
		else
		{
			var tier3Coll = objValidXMLFile3.getElementsByTagName( 'tier3' );
			for( i = 0; i < tier3Coll.length; i++ )
			{	
				var folderName = tier3Coll[i].getAttribute( 'link' ).split( '/' )[3];
				if( ( pathArray[3] != "index.html" ) && ( folderName == pathArray[3] ) )
				{
					breadcrumbString += ":: " + tier3Coll[i].getAttribute( 'name' );
					break;
				}
			}
		}
	}
	catch(e)
	{
		alert( '[Mozilla Error]\n\nError in Navigation - Tier3' );
	}
	
	document.getElementById( "breadCrumbingPrimary" ).innerHTML = breadcrumbString;
}

        
function BuildBreadcrumbTrail()
{	
	var breadcrumbString = "<strong>you are here</strong> ";	
	var host = window.location.host;
	
	var dataSource = new ActiveXObject( 'MSXML.DOMDocument' );
	dataSource.async = false;
	dataSource.load( '/resources/nav/navigation.xml' );
	
	var tempPath = window.location.href;
	tempPath = tempPath.slice( tempPath.indexOf( host ) + host.length, tempPath.length );
	
	var pathArray = tempPath.split( '/' );

	var i = 0;
	
	if( browserAgent.indexOf( "msie" ) > -1 )
	{
		var tempDom = new ActiveXObject( 'MSXML.DOMDocument' );
		tempDom.async = false;

		//- Check Tier 1 -//
		try
		{
			if( pathArray[1].indexOf( '.html' ) == -1 )
			{
				var tier1Coll = xmlhttp.responseXML.documentElement.getElementsByTagName( 'tier1' );
				for( i = 0; i < tier1Coll.length; i++ )
				{
					var folderName = tier1Coll[i].getAttribute( 'dir' ).split( '/' )[1];
					if( folderName == pathArray[1] )
					{
						breadcrumbString += "<span class=\"cookietrail\">::</span> <a class=\"cookietrail2\" href=\"" + tier1Coll[i].getAttribute( 'link' ) + "\">" + tier1Coll[i].getAttribute( 'name' ) + "</a> ";

						tempDom.loadXML( tier1Coll[i].xml );
						break;
					}
				}
			}
		}
		catch(e){}

		//- Check Tier 2 -//
		try
		{
			if( pathArray[2].indexOf( '.html' ) == -1 )
			{
				var tier2Coll = tempDom.getElementsByTagName( 'tier2' );
				for( i = 0; i < tier2Coll.length; i++ )
				{
					var folderName = tier2Coll[i].getAttribute( 'dir' ).split( '/' )[2];
					if( folderName == pathArray[2] )
					{
						breadcrumbString += "<span class=\"cookietrail\">::</span> <a class=\"cookietrail2\" href=\"" + tier2Coll[i].getAttribute( 'link' ) + "\">" + tier2Coll[i].getAttribute( 'name' ) + "</a> ";

						tempDom.loadXML( tier2Coll[i].xml );
						break;
					}
				}
			}
		}
		catch(e){}

		//- Check Tier 3 -//
		try
		{
			if( pathArray[3].indexOf( '.html' ) == -1 )
			{
				var tier3Coll = tempDom.getElementsByTagName( 'tier3' );
				for( i = 0; i < tier3Coll.length; i++ )
				{	
					var folderName = tier3Coll[i].getAttribute( 'dir' ).split( '/' )[3];
					if( folderName == pathArray[3] )
					{
						breadcrumbString += "<span class=\"cookietrail\">::</span> <a class=\"cookietrail2\" href=\"" + tier3Coll[i].getAttribute( 'link' ) + "\">" + tier3Coll[i].getAttribute( 'name' ) + "</a>";
						break;
					}
				}
			}
			else
			{
				var tier3Coll = tempDom.getElementsByTagName( 'tier3' );
				for( i = 0; i < tier3Coll.length; i++ )
				{	
					var folderName = tier3Coll[i].getAttribute( 'link' ).split( '/' )[3];
					if( ( pathArray[3] != "index.html" ) && ( folderName == pathArray[3] ) )
					{
						breadcrumbString += ":: " + tier3Coll[i].getAttribute( 'name' );
						break;
					}
				}
			}
		}
		catch(e){}
	}
	
	document.getElementById( "breadCrumbingPrimary" ).innerHTML = breadcrumbString;
}

function CreateBookmark( title, url )
{
	if( document.all )
		window.external.AddFavorite( url, title );
	else if( window.sidebar )
		window.sidebar.addPanel( title, url, "" )
}

function go(form)
{
	destination = form.State.options[form.State.selectedIndex].value;
	if (destination) location.href = "http://www.traillink.com/TL_Active_Pages/TrailSearch/default.asp?State=" + destination + "&Action=StateSearch";
}

function LoadXMLDoc( url )
{
	if( window.ActiveXObject && browserAgent.indexOf( "mac_powerpc" ) == -1 )
	{
		try
		{
			xmlhttp = new ActiveXObject( "Msxml2.XMLHTTP" );
		}
		catch(e)
		{
			try
			{
				xmlhttp = new ActiveXObject( "Microsoft.XMLHTTP" );
			}
			catch(e)
			{
			}
		}

		if( xmlhttp )
		{
			xmlhttp.onreadystatechange = State_Change;
			xmlhttp.open( "GET", url, true );
			xmlhttp.send();
		}
	}

	// code for Mac IE
	else if( browserAgent.indexOf( "msie" ) > -1 && browserAgent.indexOf( "mac_powerpc" ) > -1 && document.createElement && document.childNodes )
	{
		alert( 'Mac IE' );
	}
}

function PopWindow(file, width, height, showScroll)
{
	if ( typeof( showScroll ) == 'undefined' )
		showScroll = 'yes';

	window.open(file, "Popup", "height=" + height + ",width=" + width +
	",toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=" + showScroll)
	return false;
}

function PrintThisPage( pagePath )
{
	if( pagePath.lastIndexOf( "#" ) == pagePath.length - 1 )
		pagePath = pagePath.slice( 0, pagePath.lastIndexOf( "#" ) );
		
	pagePath = pagePath + '?printerFriendly=true';
	window.open( pagePath, "" );
}

function StartBreadcrumb()
{
	LoadXMLDoc( '/resources/nav/navigation.xml' );
}

function State_Change()
{
	// if xmlhttp shows "loaded"
	if( xmlhttp.readyState == 4 )
	{
		// if "OK"
		if( xmlhttp.status == 200 )
		{
			//alert( "XML data OK" )
			//alert( xmlhttp.responseXML );
			try
			{
				BuildBreadcrumbTrail();
			}
			catch(e)
			{
				alert( 'Something has broken.' );
			}
		}
		else
		{
			alert( "Problem retrieving XML data: " + xmlhttp.statusText )
		}
	}
}

function TellAFriend()
{
	var tempURL = window.location.href;
	var newURL = "http://support.railstotrails.org/site/TellAFriend?page=" + tempURL;

	window.location.href = newURL;
}