var siteroot = "";
var url = window.location.href;
var pathname = window.location.pathname;
var arrow = "<span>&#62;</span>";

//before reading from the breadcrumb DCR, we can print the appropriate site-level links depending on the url of the current page
function printSiteLinks()
{
	// all breadcrumbs will show the B.C. Home link
	jQuery('<a/>', {  
		id: 'bchome',  
		href: 'http://www2.gov.bc.ca/en/index.page?WT.svl=breadcrumb',  
		title: 'Home',  
		//rel: 'external',  
		text: 'B.C. Home'  
	}).appendTo('#breadcrumbs');
	$('#breadcrumbs').append(arrow);

	if(url.match(/data.gov.bc.ca/) || url.match(/\/dbc\//)) {
		siteroot = "dbc";
		//$('#breadcrumbs').append("dbc url found<br /><br />");				

		//only print the DataBC home link if this is not the homepage
		if(!(pathname == "/" || pathname == "/dbc/" || pathname.match(/\/dbc\/index.page/))) {
			jQuery('<a/>', {  
				id: 'dbchome',  
				href: formatLink('/sites/dbc/index.page'),  
				title: 'DataBC Home',  
				//rel: 'external',  
				text: 'DataBC Home'  
			}).appendTo('#breadcrumbs');			
			$('#breadcrumbs').append(arrow);
		}
	}
	else if(url.match(/openinfo.gov.bc.ca/) || url.match(/\/ibc\//)) {
		siteroot = "ibc";
		//$('#breadcrumbs').append("ibc url found<br /><br />");				
		
		//only print the Open Info home link if this is not the homepage
		if(!(pathname == "/" || pathname == "/ibc/" || pathname.match(/\/ibc\/index.page/))) {
			jQuery('<a/>', {  
				id: 'ibchome',  
				href: formatLink('/sites/ibc/index.page'),  
				title: 'Open Information Home',  
				//rel: 'external',  
				text: 'Open Information Home'  
			}).appendTo('#breadcrumbs');			
			$('#breadcrumbs').append(arrow);
		}
	}
	else if(url.match(/gov.bc.ca/) || url.match(/\/en\//)) {
		siteroot = "en";
		//$('#breadcrumbs').append("en url found<br /><br />");				
	}
	else {
		//$('#breadcrumbs').append('no match');
	}
	//alert("siteroot is: " + siteroot);
}

function parseXml(xml)
{
	var nodeset;
	var pattern = "/" + siteroot + "/";	
	//var regex = new RegExp(pattern);	
	//$('#breadcrumbs').append("url is: " + url + "<br /><br />");
	//$('#breadcrumbs').append("pattern is: " + pattern + "<br /><br />");
	//$('#breadcrumbs').append("urlstring length is: " + urlstring.length + "<br /><br />");
	
	//var urlstring = url.replace(regex, "");
	
	var index = url.indexOf(pattern);
	//$('#breadcrumbs').append("indexOf is: " + index + "<br /><br />");
	//$('#breadcrumbs').append("url length is: " + url.length + "<br /><br />");
	
	var path = url.substr(index + pattern.length, url.length);
	var tokens = path.split(/\//);	
	
	//$('#breadcrumbs').append("Number of tokens: " + tokens.length + "<br /><br />");
	
	var i = 0;
	while(i != tokens.length) {
		//$('#breadcrumbs').append("<br /><br />token " + i + ": ");	
		//$('#breadcrumbs').append(tokens[i] + "<br /><br />");	

		if(i == 0) {

			$(xml).find("crumbLvlOne").each(function()
			{										 
				var folder = $(this).find('crumbLvlOneFolder').text();
				var label = $(this).find('crumbLvlOneLabel').text();
				var brlink = $(this).find('crumbLvlOneLink').text();

				//$('#breadcrumbs').append("Folder in DCR is: " + folder + "<br /><br />");	
				//$('#breadcrumbs').append("Label in DCR is: " + label + "<br /><br />");	
				//$('#breadcrumbs').append("Link in DCR is: " + brlink + "<br /><br />");	
				
				// if a match folder has been entered in the DCR for "Breadcrumb Level 1", compare it to the first token from the URL
				if(folder) {
				
					var regex = new RegExp(folder);
					
					//$('#breadcrumbs').append("regex: "+ regex +"<br /><br />");
					
					if(tokens[i].match(regex)) {
						//$('#breadcrumbs').append("token " + i + " matched!<br /><br />");
						
						// if this is the index page for the section, do not print a link
						if(!(tokens[i+1].match(/index.page/))) {									
							
							jQuery('<a/>', {  
								id: label,  
								href: formatLink(brlink),  
								title: label,  
								//rel: 'external',  
								text: label  
							}).appendTo('#breadcrumbs');

							$('#breadcrumbs').append(arrow);									
						}
					}
				}
				else if(!folder) {
					//$('#breadcrumbs').append("string is empty - do not compare");						
				}
			});														
		}

		if(i == 1) {
		// compare DCR "Breadcrumb Level 2" folder to the 2nd token from the URL

			//$('#breadcrumbs').append("entered loop 2<br /><br />");

			$(xml).find("crumbLvlTwo").each(function()
			{
				var folder = $(this).find('crumbLvlTwoFolder').text();
				var label = $(this).find('crumbLvlTwoLabel').text();
				var brlink = $(this).find('crumbLvlTwoLink').text();

				var regex = new RegExp(folder);
				
				//$('#breadcrumbs').append("regex: "+ regex +"<br /><br />");
				
				if(tokens[i].match(regex)) {
					
					// save this nodeset for later - we only care about children of this node for future comparisons
					nodeset = $(this);

					// if this is the index page for the section, do not print a link
					if(!(tokens[i+1].match(/index.page/))) {

						jQuery('<a/>', {  
							id: label,  
							href: formatLink(brlink),  
							title: label,  
							//rel: 'external',  
							text: label  
						}).appendTo('#breadcrumbs');
						
						$('#breadcrumbs').append(arrow);
					}
				}
			});							
		}

		else if(i == 2) {
		// compare DCR "Breadcrumb Level 3" folder to the 3rd token from the URL

			//$('#breadcrumbs').append("entered loop 3<br /><br />");
		
			$(nodeset).find("crumbLvlThree").each(function()
			{
				//$('#breadcrumbs').append("found crumbLvlThree<br /><br />");
				
				var folder = $(this).find('crumbLvlThreeFolder').text();
				var label = $(this).find('crumbLvlThreeLabel').text();
				var brlink = $(this).find('crumbLvlThreeLink').text();
				
				var regex = new RegExp(folder);
				
				//$('#breadcrumbs').append("regex: "+ regex +"<br /><br />");
				
				if(tokens[i].match(regex)) {
					//$('#breadcrumbs').append("token " + i + " matched!<br /><br />");
					
					// if this is the index page for the section, do not print a link
					if(!(tokens[i+1].match(/index.page/))) {

						jQuery('<a/>', {  
							id: label,  
							href: formatLink(brlink),  
							title: label,  
							//rel: 'external',  
							text: label  
						}).appendTo('#breadcrumbs');

						$('#breadcrumbs').append(arrow);
					}
				}
			});	
			//$('#breadcrumbs').append("loop 3<br /><br />");	
		}
		
		//at this point the dynamic breadcrumbs are limited to 3 levels deep
		
		//else if(i == 3) {
		//3rd level test
		//	$('#breadcrumbs').append("loop 4<br /><br />");
		//}

		//else if(i == 4) {
		//4th level test
		//	$('#breadcrumbs').append("loop 5<br /><br />");					
		//}					
		i++;
	}

	//hide the final arrow in the breadcrumb
	//$("#breadcrumbs span").last().remove();

	//$('#breadcrumbs').append("<br /><br />path is: " + urlstring[1] + "<br /><br />");
}

function formatLink(brlink)
{
	//$('#breadcrumbs').append("indexOf is: " + index + "<br /><br />");
	//$('#breadcrumbs').append("url length is: " + url.length + "<br /><br />");
	var pattern = "/sites";
	var index = brlink.indexOf(pattern);
	var formatted_link = "";
	
	if(index != -1){			
		//$('#breadcrumbs').append("indexOf is: " + index + "<br /><br />");
		//$('#breadcrumbs').append("url length is: " + brlink.length + "<br /><br />");
		//$('#breadcrumbs').append("brlink passed in is: " + brlink + "<br /><br />");
		formatted_link = brlink.substr(index + pattern.length, brlink.length);
		//$('#breadcrumbs').append("formatted_link is: " + formatted_link + "<br /><br />");
		return formatted_link + "?WT.svl=breadcrumb";
	}
	else {			
		//$('#breadcrumbs').append("pattern not found<br /><br />");
		//$('#breadcrumbs').append("brlink passed in is: " + brlink + "<br /><br />");
		return brlink + "?WT.svl=breadcrumb";
	}			
	//var index = brlink.indexOf(pattern);

	//$('#breadcrumbs').append("formatted link is: " + brlink.substr(index, brlink.length) + "<br /><br />");
	//return brlink.substr(index + pattern.length, brlink.length);
}

function error()
{
	/*$('#breadcrumbs').append("<br /><br />failed to read from xml file<br /><br />");*/
}

