//<!--

var filterType;
var filterValue;
var lastSearch = 'Keyword';
var lastSearchText = 'Enter a Brand or Product...';


var setSearchType = function(t,a){
 var oPrevious = document.getElementById('div'+ a + lastSearch+'SearchTab');
 var oSearch = document.getElementById('txt' + a + 'Search');
 var oSearchTab = document.getElementById('div' + a + t+'SearchTab');
 var strHelp;

 switch(t){
  case "ingredient":
   strHelp = "Enter an Ingredient..."; 
   document.getElementById('div' + a + 'keywordSearchTab').className = 'unselectedNoBorder'
   document.getElementById('div' + a + 'upcSearchTab').className = 'unselectedBorder'
   document.getElementById('div' + a + 'recipeSearchTab').className = 'unselectedBorder'
   document.getElementById('hdnSearchType').value = 'ingredient';
   break;
  case "upc":
   strHelp = "Enter a UPC Code (including the small numbers)...";
   document.getElementById('div' + a + 'keywordSearchTab').className = 'unselectedBorder'
   document.getElementById('div' + a + 'ingredientSearchTab').className = 'unselectedNoBorder'
   document.getElementById('div' + a + 'recipeSearchTab').className = 'unselectedBorder';
   document.getElementById('hdnSearchType').value = 'upc';
   break;
  case "recipe":
   strHelp = "Enter a Recipe Title...";
   document.getElementById('div' + a + 'keywordSearchTab').className = 'unselectedBorder'
   document.getElementById('div' + a + 'ingredientSearchTab').className = 'unselectedBorder'
   document.getElementById('div' + a + 'upcSearchTab').className = 'unselectedNoBorder';
   document.getElementById('hdnSearchType').value = 'recipe';
   break;
  default:
   strHelp = "Enter a Brand or Product...";  
   document.getElementById('div' + a + 'ingredientSearchTab').className = 'unselectedBorder'
   document.getElementById('div' + a + 'upcSearchTab').className = 'unselectedBorder'
   document.getElementById('div' + a + 'recipeSearchTab').className = 'unselectedBorder';
   document.getElementById('hdnSearchType').value = 'keyword';
 }
 
 oSearchTab.className = 'selected';
 
 if(oSearch.value == lastSearchText || oSearch.value.trim() == ''){
  oSearch.value = strHelp;
  lastSearchText = strHelp;
 }
 
 oSearch.onfocus = function(){
  if(oSearch.value == strHelp){
   oSearch.value = '';
  } 
 }
 
 oSearch.onblur = function(){
  if(oSearch.value.trim() == ''){
   oSearch.value = strHelp;
  } 
 }
  
 lastSearch = t;
}


var reRunSearch = function(s,t){
 document.getElementById('txtSearch').value = s;
 ColdFusion.navigate('/search/actSearch.cfm?searchType='+t+'&searchString='+escape(s),'divSearchResultHolder');
}

var runSearch = function(s,t){
 if(s.trim().length > 2){
  //document.location.href = 'http://dev.foodfacts.local/search/index.cfm?searchType='+t+'&searchText='+ escape(s);
  xmlhttp.open("GET",'/search/actSearch.cfm?searchType='+t+'&searchString='+ escape(s),true);
  xmlhttp.send(null);
  xmlhttp.onreadystatechange=function(){
   if (xmlhttp.readyState==4 && xmlhttp.status==200) document.location.href = '/search/index.cfm';
  } 
 }
 else{
  alert("Please enter a more descriptive term.");
 }
}


var resetSearch = true;
var filterCategories = function(p,t){
 
  switch(t.toUpperCase()){
   case 'MAIN':
	document.getElementById('hdnMainCategory').value = 0;
	document.getElementById('hdnSubCategory').value = 0;
	document.getElementById('hdnSubSubCategory').value = 0;
    break;
   case 'SUB':
	if(document.getElementById('divRefineBySubCategory'+document.getElementById('hdnMainCategory').value)){
	 document.getElementById('divRefineBySubCategory'+document.getElementById('hdnMainCategory').value).className = 'hidden';
	}
	if(document.getElementById('divRefineBySubCategory'+p)){
	 document.getElementById('divRefineBySubCategory'+p).className = '';
	}
	document.getElementById('hdnMainCategory').value = p;
	document.getElementById('hdnSubCategory').value = 0;
	document.getElementById('hdnSubSubCategory').value = 0;
    break;
   case 'SUBSUB':
    if(document.getElementById('divRefineBySubSubCategory'+document.getElementById('hdnSubCategory').value)){
	 document.getElementById('divRefineBySubSubCategory'+document.getElementById('hdnSubCategory').value).className = 'hidden';
	}
	if(document.getElementById('divRefineBySubSubCategory'+p)){
	 document.getElementById('divRefineBySubSubCategory'+p).className = '';
	}
	document.getElementById('hdnSubCategory').value = p;
	document.getElementById('hdnSubSubCategory').value = 0;
	break;
   default:
	document.getElementById('hdnSubSubCategory').value = p;
  }
  
  resetSearch = false;
  filterSearchResults();
}


var primeFilter = function(){
 filterSearchResults(true);
}


var autoSelectSub = function(){
  var t = getSearchType();
  if(t.toUpperCase() == 'RECIPES'){
   var categorySortPage = "dspRecipeCategories.cfm";
  }
  else{
   var categorySortPage = "dspCategories.cfm";
  }
  
  if(document.getElementById('hdnMainCategory').value != 0){
   if(document.getElementById('divRefineBySubCategory'+document.getElementById('hdnMainCategory').value)){
    v = document.getElementById('hdnMainCategory').value;
	m = "Sub";
	d = "divRefineBySubCategory";
	document.getElementById('divRefineBySubCategory'+document.getElementById('hdnMainCategory').value).className = "";
	ColdFusion.navigate('/search/'+categorySortPage+'?autoSelect=true&intParent='+v+'&strType='+m,d+v);
   }
  }
}

var autoSelectSubSub = function(){
  var t = getSearchType();
  if(t.toUpperCase() == 'RECIPES'){
   var categorySortPage = "dspRecipeCategories.cfm";
  }
  else{
   var categorySortPage = "dspCategories.cfm";
  }
  
  if(document.getElementById('hdnSubCategory').value != 0){
   if(document.getElementById('divRefineBySubSubCategory'+document.getElementById('hdnSubCategory').value)){
    v = document.getElementById('hdnSubCategory').value;
	m = "SubSub";
	d = "divRefineBySubSubCategory";
	document.getElementById('divRefineBySubSubCategory'+document.getElementById('hdnSubCategory').value).className = "";
	ColdFusion.navigate('/search/'+categorySortPage+'?autoSelect=true&intParent='+v+'&strType='+m,d+v);
   }
  }
}


var filterSearchResults = function(bFilterOnly){ 
 var b = bHideBrandNames();
 var t = getSearchType();
 var searchDiv = getSearchDiv();
 var c = bHideControversial();
 var a = bHideAvoidance();
 var p = getResultCount();
 var j = getCurrPage();
 var s = getSearchContext();
 try{
  var r = getRecipeID();
 }
 catch(e){
  var r = 0;
 }
 if(t.toUpperCase() == 'RECIPES'){
  var categorySortPage = "dspRecipeCategories.cfm";
 }
 else{
  var categorySortPage = "dspCategories.cfm";
 }
 var sBrand = getBrand();
 var o = bHideRecipesFromOtherUsers();
 
 if(document.getElementById('hdnMainCategory').value == 0){
  m = "Main";
  f = "";
  v = "";
  d = "divRefineByCategory";
 }
 else{
  if(document.getElementById('hdnSubSubCategory').value != 0){
   f = "SubSub";
   m = ""
   v = document.getElementById('hdnSubSubCategory').value;
   d = "";
   if(t.toUpperCase() == 'RECIPES'){
    f = "Sub";
   }
  }
  else if(document.getElementById('hdnSubCategory').value != 0){
   f = "Sub"
   m = "SubSub";
   v = document.getElementById('hdnSubCategory').value;
   d = "divRefineBySubSubCategory"
  }
  else{
   f = "Main"
   m = "Sub";
   v = document.getElementById('hdnMainCategory').value;
   d = "divRefineBySubCategory";
  }
 }

  
 if(bFilterOnly == true){
  ColdFusion.navigate('/search/'+categorySortPage+'?strType=Main&autoSelect=true','divRefineByCategory');
 }
 else{
  if(m != "" && !resetSearch){
   ColdFusion.navigate('/search/'+categorySortPage+'?intParent='+v+'&strType='+m,d+v);
  }
 }
  
 if(bFilterOnly != true){
  if(window.location.href.indexOf('products.cfm') > 0){
   ColdFusion.navigate('/public/dspProducts.cfm?filterType='+f+'&filterValue='+v,searchDiv);
  }
  else{
   ColdFusion.navigate('/search/dspSearchResults.cfm?searchString='+getSearchString()+'&filterType='+f+'&filterValue='+v+'&hideBrands='+b+'&searchType='+t+'&hideControversial='+c+'&hideAvoidance='+a+'&recipe='+r+'&brand='+sBrand+'&resultCount='+p+'&currPage='+j+'&context='+s+'&otherUsers='+o+'&resetSearch='+resetSearch,searchDiv);
  } 
 }
 resetSearch = true;
}

var getSearchString = function(){
 return urlValue('searchText');
}

var getSearchDiv = function(){
 var d = "divSearchResults";
 
 if(document.getElementById('hdnSearchType')){
  if(document.getElementById('hdnSearchType').value.toUpperCase() == "RECIPE"){
   d = "divRecipeIngredientSearchResults";
  }
 }
 
 return d;
}


var getSearchType = function(){
  var t = "Advanced";
  
  if(document.getElementById('hdnSearchType')){
   t = document.getElementById('hdnSearchType').value;
  }
  
  return t;
}


var getSearchContext = function(){
 var c = "keyword";
 
 if(document.getElementById('hdnContext')){
  c = document.getElementById('hdnContext').value;
 }
 
 return c;
}


var bHideBrandNames = function(){
 var b;
 if(document.getElementById('chkHideBrandNames')){
  b = document.getElementById('chkHideBrandNames').checked;
 }
 else{
  b = false;
 }
 return b;
}


var bHideControversial = function(){
 var c;
 if(document.getElementById('chkHideControversial')){
  c = document.getElementById('chkHideControversial').checked;
 }
 else{
  c = false;
 }
 return c;
}


var bHideRecipesFromOtherUsers = function(){
 y = false;
 if(getSearchContext().toUpperCase() == "RECIPES"){
  if(document.getElementById('chkHideOtherUsers')){
   y = document.getElementById('chkHideOtherUsers').checked;
  }
 }
 return y;
}

var bHideAvoidance = function(){
 var a;
 if(document.getElementById('chkHideAvoidance')){
  a = document.getElementById('chkHideAvoidance').checked;
 }
 else{
  a = false;
 }
 return a;
}


var getBrand = function(){
 var b = 0;

 if(!bHideBrandNames()){
  if(document.getElementById('selBrand')){
   oSel = document.getElementById('selBrand');
   if(oSel[oSel.selectedIndex].value.toUpperCase() != 'SHOW ALL'){
    b = oSel[oSel.selectedIndex].value.toUpperCase()
   }
  }
 }
 
 return b;
}

var toggleBrandView = function(){
 var oDiv = document.getElementById('divBrandFilter');
 if(bHideBrandNames()){
  oDiv.className = 'hidden';
 }
 else{
  oDiv.className = '';
 }
}


var getResultCount = function(){
 if(document.getElementById('selResultCount')){
  oSel = document.getElementById('selResultCount');
  return oSel[oSel.selectedIndex].value;
 }
 else{
  return 20;
 }
}

var getCurrPage = function(){
 var intPage = 1;
 
 if(document.getElementById('hdnCurrPage')){
  if(isNumeric(document.getElementById('hdnCurrPage').value)){
   intPage = document.getElementById('hdnCurrPage').value;
  }
 }
 
 return intPage;
}

var setCurrPage = function(p){
 document.getElementById('hdnCurrPage').value = p;
}


var displayIngredientBox = function(w){
 ColdFusion.navigate('/members/dspIngredients.cfm?item='+w,'divIngredientText');
 oIngBox = document.getElementById('divMainIngredientBox');
 oIngBox.className = '';
 oIngBox.style.left = (getAbsoluteLeft('divIngredientLink'+w) + 75) + 'px';
 oIngBox.style.top = (getAbsoluteTop('divIngredientLink'+w) - 25) + 'px';
}


var hideIngredientBox = function(){
 oIngBox = document.getElementById('divMainIngredientBox');
 oIngBox.className = 'hidden';
 oIngBox.style.left = '0px';
 oIngBox.style.top = '0px';
}


var loadBrands = function(){
 if(!bHideBrandNames() && document.getElementById('selBrand')){
  var oSel = document.getElementById('selBrand');
  var oSearch = new SearchObject();
  var strResult = oSearch.limitBrands();
  oSel.options.length = 0;
  if(strResult && strResult.DATA.length > 0){
   for(i=0;i<strResult.DATA.length;i++){
    var option = new Option();
    option.text = strResult.DATA[i][strResult.COLUMNS.findIdx('BRAND')];
    option.value = strResult.DATA[i][strResult.COLUMNS.findIdx('BRAND')];
    option.title = strResult.DATA[i][strResult.COLUMNS.findIdx('BRAND')];
    oSel.options[i] = option;
   }
  }
  else{
   var option = new Option();
   option.text = "Show All";
   option.value = "Show All";
   oSel.options[0] = option;
  }
  oSel.options[0].selected = true;
 }
}

var checkComparison = function(obj,type){
 var oSearch = new Search();
 var maxProducts = 3;
 var productArray = oSearch.getComparisonArray(type);
 
 if(!obj.checked){
  oSearch.removeFromComparisonArray(obj.value,type);
 }
 else{ 
  if(productArray.length < maxProducts){
   oSearch.setComparisonArray(obj.value,type);
  }
  else{
   alert("You may only select 3 products.");
   obj.checked = false;
  }
 }
}


var addComparedItem = function(value,type){
 var oSearch = new Search();
 var productArray = oSearch.getComparisonArray(type);
 
 if(productArray.length < 3){
  oSearch.setComparisonArray(value,type);
  return true;
 }
 else{
  alert("You may only select 3 products.");
  return false;
 }
}


var removeComparedItem = function(value,type){
 var oSearch = new Search();
 oSearch.removeFromComparisonArray(value,type);
 document.getElementById('div'+value).innerHTML = '';
 var oChecks = document.frmSearchResults.chkCompare;
 
 for(var i=0;i<oChecks.length;i++){
  if(oChecks[i].value == value){
   oChecks[i].checked = false;
  }
 }
 

 var productArray = oSearch.getComparisonArray(type);
 if(productArray.length == 0){
  ColdFusion.Window.hide('wdnComparison');
 }

}


var doComparison = function(t){
 if(!t){
  var t = 'item';
 }
 var oSearch = new Search();
 var productArray = oSearch.getComparisonArray(t);
 
 if(productArray.length < 2){
  alert("Please select at least 2 products to compare.");
 }
 else{
  document.location.href = '/search/compare.cfm?type='+t;
 }
}



var openComparisonWindow = function(t){
 var strWndName = 'wdnComparison';
 var bExists = true;
 
 try{
  ColdFusion.Window.getWindowObject(strWndName);
 }
 catch(err){
  bExists = false;
 }
 
 
 if(bExists){
  ColdFusion.navigate('/search/dspSelectedCompared.cfm?type='+t,strWndName+'_body');
 }
 else{
  ColdFusion.Window.create(strWndName,'Compared Items','/search/dspSelectedCompared.cfm?type='+t,{center:true,draggable:false,height:400,width:600,modal:true});
 }

 
 ColdFusion.Window.getWindowObject(strWndName).show();
}


var doSearch = function(q,t){
	var type='keyword';
	switch(t){
	   case "ingredient":
	      type='ingredient';
	      break;
	   case "upc":
	      type='upc';
		  break;
	   case "recipe":
	      type='recipe';
		  break;
	   default:
	      type='keyword';
		  break;
	}
	window.location.href = '/search/index.cfm?type='+type+'&query='+escape(q);
}

//-->

