// 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, remove) { 
    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 if(remove == 1){
        	newurl = href.replace(new RegExp(facet+":"+value), '');
        }
        else {
            newurl = href.replace(new RegExp(facet+":[^ ^\+^&]*"), facet+":"+value);
        }
        // change cat1 and cat2 to whatever you have called you categories and sub categories
        if(facet == 'cat') {
            // also need to remove subcategory
            newurl = newurl.replace(/sub:[^ ^\+^&]* ?/i,'');
			newurl = newurl.replace(/group:[^ ^\+^&]* ?/i,'');
			newurl = newurl.replace(/si:[^ ^\+^&]* ?/i,'');
        }
        if(facet == 'sub') {
            // also need to remove subcategory
			newurl = newurl.replace(/group:[^ ^\+^&]* ?/i,'');
        }

    } 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=[^&]+[&]*/),'');
}

function set_cookie (cookie_name, cookie_value, cookie_expire, cookie_path, cookie_domain, cookie_secure){
    //alert('value='+cookie_value);
    // BEGIN THE COOKIE PARAMETER STRING
	cookie_value = cookie_value.replace(/;/ig, '^');
    var cookie_string = cookie_name + "=" + cookie_value
    
    // ADD THE EXPIRATION DATE IF IT WAS SPECIFIED
    if (cookie_expire){
        var expire_date = new Date ()
        var ms_from_now = cookie_expire * 24 * 60 * 60 * 1000
        expire_date.setTime (expire_date.getTime () + ms_from_now)
        var expire_string = expire_date.toGMTString ()
        cookie_string += "; expires=" + expire_string
    }
    
    // ADD THE PATH, IF IT WAS SPECIFIED
    if (cookie_path){
        cookie_string += "; path=" + cookie_path
    }
    
    // ADD THE DOMAIN, IF IT WAS SPECIFIED
    if (cookie_domain){
        cookie_string += "; domain=" + cookie_domain
    }
    
    // ADD THE SECURE BOOKEAN, IF IT'S TRUE
    if (cookie_secure){
        cookie_string += "; true"
    }
    
    // SET THE COOKIE
    document.cookie = cookie_string
}

function goUrl(target_url) {
	document.location = target_url;
}
