// 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 '';
}

function processfacets3(extra_href, expandFacet) {
    var href=facet_url+extra_href;
    href=href.replace(/%20/g,' ');
    href=href.replace(/%3a/g,':'); 

	var newurl = href;

    var reg1=new RegExp('expandfacet');
    if (expandFacet) {
    	if (reg1.test(newurl)) {
    		newurl = newurl.replace(/expandfacet=/i,'expandfacet=1');
    	}
    	else {
    		newurl += '&expandfacet=1';
    	}
    }
    else {
    	if (reg1.test(newurl)) {
    		newurl = newurl.replace(/&expandfacet=1/i,'');
    	}
    }

	document.location = newurl;
}

// 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 reg=new RegExp(facet+':');
    if (reg.test(href)) {
        // replace
        if(value == '') {
            newurl = href.replace(new RegExp(facet+":[^ ^\+^&]* ?"), '');
        } 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=[^&]+[&]*/),'');
}

