//Version 3.5
//REQUIRES THAT facet_url be set before loading.
if ( typeof(facet_url)=='undefined' ) {
	alert("SLI Critical Javascript Error, facet_url is not defined.\nFacet functions will not work properly\nPlease check the top of your header template");
}
// For HREF status bar rewrites
function st(t) { 
	window.status=t.getAttribute('title'); 
	return true; 
}
function nost() {
	window.status=""; 
}

// sets the focus of the cursor to our search box
function sfocus() {
	if( typeof(document.searchform.w)!='undefined'){
		document.searchform.w.focus();
	}
}

// code to help process text link style facets
function getQueryVariable(variable) {
	var query = facet_url;
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if (pair[0] == variable) {
			return pair[1];
		}
	} 
	return '';
}

// code to process text link style facets
function processfacets2(extra_href, facet, value, depth, maxDepth) { 
	var href=facet_url+extra_href;
	href=href.replace(/%20/g,' ');
	href=href.replace(/%3a/g,':'); 
	var newurl = '';
	var specialfacet=false
	var facetremove=new RegExp('rr$');
	if(facetremove.test(facet)) 	{
		specialfacet=true;
		facet = facet.replace(new RegExp('rr$'), '');
	}
	var reg=new RegExp(facet+':');
	if (reg.test(href)) {
		// replace
		if(value == '') {
			newurl = href.replace(new RegExp(facet+":[^ ^\+^&]* ?"), '');
			if(facet == 'size'){
				remove = true;
				while(reg.test(newurl)){
					newurl = newurl.replace(new RegExp(facet+":[^ ^\+^&]* ?"), '');
				}
			}

		}else if(specialfacet == true) 	{
			newurl = href.replace(new RegExp(facet+":"+value+" ?"), '');
			remove = true;
		}else if(facet == 'size'){
			newurl = href.replace(/af=/i,'af='+facet+":"+value+' ');
		} else {
			newurl = href.replace(new RegExp(facet+":[^ ^\+^&]*"), facet+":"+value);
		}

		if (newurl == '') {
			newurl = href;
		}

		if (depth) {
			if (!maxDepth) {
				maxDepth = 10;
			}

			var facetPrefix = facet;
			facetPrefix = facetPrefix.replace(/[\d]*$/,'');
			var startRemoveDepth = depth+1;
			for (var i = startRemoveDepth; i < maxDepth; i++) {
				var reg = facetPrefix + i + ':[^ ^\+^&]* ?';
				var re = new RegExp(reg, 'g');
				newurl = newurl.replace(re,'');
			}
		}
	} else {
		// prepend
		if (getQueryVariable('af') == '') {
			newurl = href.replace(/af=/i,'af='+facet+":"+value);
		} else {
			newurl = href.replace(/af=/i,'af='+facet+":"+value+' ');
		}
	}
	document.location = newurl;
}

// Code needed for Dynamic Facet Breadcrumb Trial

//Remove all facets selected *after* a certain facet.
function removefacets2(extra_href, facet) { 
	var href=facet_url+extra_href;
	href=href.replace(/%20/g,' ');
	href=href.replace(/%3a/g,':'); 
	var newurl = href;
	var reg=new RegExp(/af=([^&]+)/i);
	var m = reg.exec(href);
	if (m!=null) {
		var r2 = new RegExp(facet+':[^&]+');
		var m2 = r2.exec(m[1]);
		if ( m2!=null ) {
			newurl = href.replace(reg,'af='+m2[0]);
		}
	}
	document.location = newurl;
}

// Remove all facets from a URL.
function resetfacets2(extra_href) {
	var href=facet_url+extra_href;
	document.location = href.replace(new RegExp(/af=[^&]+[&]*/),'');
}

