//PageLoad function
//This function is called when:
//1. after calling $.historyInit();
//2. after calling $.historyLoad();
//3. after pushing "Go Back" button of a browser
function performSearch(search) {
	$.sliSearchingCur = true;
	var height = $.divSearch.outerHeight();
	$('#sli_slideController').css('height',height);
	$.divSearch.fadeOut("slow",function(){$($.divLoading).css("display", "block");$.sliSearchingCur=false;});
	
	$.sliSearch(search);
}


function ajaxsearchsubmit(form){
	var search = escape(form.w.value);
	var af = form.af.value;
	var asug = escape(form.asug.value);
	window.location.hash="#ts=ajax&w="+search+"&af="+af+"&asug="+asug;
	return false;
}

function sli_ajaxSearch(){

	var name = $("input#sli_search_1").val();
	searchNew(name);
	return false;
}

$(document).ready(function(){

	// Initialize history plugin.
	// The callback is called at once by present location.hash. 

	$.divSearch=$("#sli_loadingDiv");
	$.divLoading=$("#ajaxloading");
	$.facetURL="";
	$.facetDiv=$("#sli_facets");
	$.queryBase="#ts=ajax";
	//call this to start with to make sure is hidden
	
	if(location.hash==undefined||location.hash==''){
		location.hash = 'ts=ajax&w=*';
	}else{
		var re = new RegExp('(&|^)w=([^&]*)');
		var searchValue = re.exec(location.hash)[2];
		if(searchValue=='*'||searchValue=='%2a')searchValue="";
		searchValue = searchValue.replace(/\+/g, ' ');
		$("input#sli_search_1").val(unescape(searchValue));
		
	}
	$.historyInit(performSearch);

});


function sli_searchSuggest(searchSuggest){
	if(searchSuggest=='')
		$('.sli_suggestionsDiv').css('display','none');
	else
		$('.sli_suggestionsDiv').css('display','block');
	$('#sli_suggestions1').html(searchSuggest);
	$('#sli_suggestions2').html(searchSuggest);
	$('#sli_suggestions2 a').unbind();
	$('#sli_suggestions2 a').bind('click',function(){$.scrollTo(0,800);});
}
function sli_pagination(pagination){
	
	$('#sli_page_selector1').html(pagination);
	$('#sli_page_selector2').html(pagination);
	$('#sli_page_selector2 a').unbind();
	$('#sli_page_selector2 a').bind('click',function(){$.scrollTo(0,800);});
}
function sli_bct(bct){
	$('#sli_bct').html(bct);
}
function sli_view(view){
	$('#sli_view').html(view);
}
function sli_sortby(sort){
	$('#sli_sorting').html(sort);
}
function sli_merch_top(content){
	$('#merchTopResults').html(content);
}
function sli_merch_logo(content){
	$('#brand_image').html(content);
}
function sli_merch_bottom(content){
	$('#merchTopBottom').html(content);
}
function sli_count(content){
	$('#sli_count').html(content);
	$('#sli_count2').html(content);
}

function sli_loadContent(content,location,scrollToTop){
	$(location).unbind();
	if(content=='')
		$(location).css('display','none');
	else
		$(location).css('display','block');
	
	$(location).html(content);
	
	if(scrollToTop){
		$(location).bind('click',function(){$.scrollTo(0,800);});
	}
}

function searchNew(search){

	search = search.replace(/ /g,'+');
	$.sliFacetSearch($.queryBase+"&w="+escape(search));
}
function searchWithin(search){
	var toModify = $.facetURL;
	search = search.replace(/ /g,'+');
	var searchValue = toModify.replace(/(&|^)w=[^&$]*/,'$1w='+search);
	$.sliFacetSearch(searchValue);
}

function resetSearch(){
	var toModify = $.facetURL;
	$.facetURL = toModify.replace(/(&|^)w=[^&$]*/,'$1w=*');
	$("input#sli_searcher").val('');
	resetfacets2('');
}

//returns them to default style and takes of all click binding
function facetPreper(){
	$($.facetDiv).find("select").unbind().removeOption(/./);

}

function facetLoaded(){

	var re = new RegExp('(&|^)w=([^&$]*)');
	var searchValue = re.exec(location.hash)[2];
	if(searchValue=='*'||searchValue=='%2a')searchValue="";
	searchValue = searchValue.replace(/\+/g, ' ');
	$("input#sli_search_1").val(unescape(searchValue));
	
	$('#sli_clearFacets').css("visibility","hidden");
	//if search occours within facet selection and will return no facets need to set selected facet manually
	for(facet in $.selectedFacetArray){
		$('#sli_clearFacets').css('visibility','visible');
		var facetObject = $("select#sli_"+facet);
		if(facetObject.length>0){
			if(facetObject[0].length<2){
				facetObject.removeOption(/./);
				facetObject.addOption("","-- All Products --");
				facetObject.addOption($.selectedFacetArray[facet]["key"],$.selectedFacetArray[facet]["name"]);
				createActionFunction(facetObject,facet);
			}
		}
		var facetObject = $("input#sli_"+facet);
		if(facetObject.length>0){
			facetObject.checked=false;
			$(destination).bind("click",function(){
				processfacets2('',facetTopic,'');
			});
		}
	}
	$($.facetDiv).find("select").each(function(i){
		if(this.length<2){
			destination = $(this);
			destination.removeOption(/./);
			destination.addOption("","-- No Options --");
		}
	});
	$.sliSearchingCur = false;
	$($.divLoading).css("display", "none");
	$.divSearch.fadeIn("slow");
	$('#sli_slideController').animate({height: $.divSearch.outerHeight()},1000);
}

function createActionFunction(element, facet){
	$(element).bind("change",function(){
		var facetValue = $(this).selectedValues();
		processfacets2('',facet,facetValue);
	});
}

function createFacetObjects(facetTopic,facetArray,facetTopicName){
	var id='#sli_'+facetTopic;
	destination = $(id);
	if(facetTopic!='condition'){
		createActionFunction(destination,facetTopic);
		destination.addOption("","Select "+facetTopicName);
		var selected = "";
		for(facetKey in facetArray){
			var facetEntry = facetArray[facetKey];
			destination.addOption(facetEntry['key'], facetEntry['name']+" ("+facetEntry['count']+")");
			if(facetEntry['selected']!=''){
				selected = facetEntry['key'];
			}
		}
		destination.selectOptions(selected);
	}else{
		destination.unbind();
		var selected = "";
		for(facetKey in facetArray){
			var facetEntry = facetArray[facetKey];
			if(facetEntry['selected']!=''){
				selected = facetEntry['key'];
			}
		}
		if(selected==""){
			destination.checked=true;
			$(destination).bind("click",function(){

				processfacets2('',facetTopic,'new');
			});
		}else{
			destination.checked=false;
			$(destination).bind("click",function(){
				processfacets2('',facetTopic,'');
			});
		}
	}
}


function facetUpdate(facetTopic,facetTopicName,facetTopicLabel,facetTotalCount,facetDisplayCount,facetArray){
	createFacetObjects(facetTopic,facetArray,facetTopicName);
}




//code to help process text link style facets
function getQueryVariable(variable) {
	var query = $.facetURL;
	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) { 
	var href=$.facetURL+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;
		}
	} else {
		// prepend
		if (getQueryVariable('af') == '') {
			newurl = href.replace(/af=/i,'af='+facet+":"+value);
		} else {
			newurl = href.replace(/af=/i,'af='+facet+":"+value+' ');
		}
	}
	$.sliFacetSearch(newurl);
}

// Code needed for Dynamic Facet Breadcrumb Trial

//Remove all facets selected *after* a certain facet.
function removefacets2(extra_href, facet) { 

	var href=$.facetURL+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]);
		}
	}
	$.sliFacetSearch(newurl);
}

// Remove all facets from a URL.
function resetfacets2(extra_href) {

	var href=$.facetURL+extra_href;
	$.sliFacetSearch(href.replace(new RegExp(/af=[^&]+[&]*/),''));
}



//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();
	}
}





