﻿$("#btnSearch").click(function(){		
		if(!ready) return;		
		getCategoriesFromSearchTerms();
	}
);


$("#btnClear").click(function(){
	var searchTerms = getElementsByClassName('searchTerm');
		for(var i = 0; i < searchTerms.length; i++)
		{
			searchTerms[i].value = '';
			searchTerms[i].style.color = '#000000';
		}
	}
);

$("#SearchNavBtn").click(function(){
	$("#searchResult").hide();
	$("#searchFourthNav").hide();
	$("#searchList").BlindRight(500);	
	}
);


function getSearchTerms()
{
	var result = "|";
	var searchTermCtr = 0;
	for(; searchTermCtr < 20 ; searchTermCtr++){
		var txtBox = $get("searchTerm" + searchTermCtr);
		if(txtBox != null){
			if(txtBox.value != ""){
				result += txtBox.value + "|";
			}
		}
	}
	return result;
	
}

function doTrackWebtrendsURL(category,section)
{
	dcsMultiTrack('DCS.dcsuri', '/productsearch.aspx', 'WT.ti', '+' + category + '+', 'WT.ac',section);
}

function getCategoriesFromSearchTerms()
{
	var searchTerms = getSearchTerms();
	
	PageMethods.GetCategoriesSearchResults(searchTerms,getCategoriesSearchResultsSuccess,getCategoriesSearchResultsFail);
	doTrackWebtrendsURL('productsearch',searchTerms);
}
var cat;
function getCategoriesSearchResultsSuccess(response)
{
	var categories = response;
	//alert(response);
	var result = '';
	
	var searchResultList = $get("searchResultList");
	searchResultList.innerHTML = "";

	for(var i = 0;;i++)
	{		
		if(categories[i] == null)
		{			
			if(i == 0)
			{
			   // alert("no matching products found");
			   $get("searchResult").style.display = 'none';
				$get("searchNoResult").style.display ='block';
				return;
			}
			break;		
		}
		else
		{  
			var searchTerm = categories[i].SearchTerm;
			//alert("searchTerm:" + searchTerm);
			var productSearchCategories = categories[i].ProductSearchCategories;
			var searchTermContainer = document.createElement('p');
			if(i == 0){
				searchTermContainer.className = "paddingTop5";
			}
			var aSearchTerms = "<a href='javascript:void(0)' onclick=\"getProducts('"+ searchTerm + "',0,'SearchTerms');return false;\">"+searchTerm+"</a>";
			
			searchTermContainer.innerHTML = aSearchTerms;
			searchResultList.appendChild(searchTermContainer);
			
			var ulResult = document.createElement('ul');
			ulResult.className = "resultLevel2";
			
			var cateCtr = 0
			for(cateCtr = 0;;cateCtr++)
			{
				if(productSearchCategories[cateCtr] == null)
				{
					break;
				}
				else
				{					
					var productSearchCategory = productSearchCategories[cateCtr];
					var liResult = document.createElement('li');					
					var aLink = "<a href='javascript:void(0)' onclick=\"getProducts('"+ searchTerm + "'," + productSearchCategory.ID + ",'" + productSearchCategory.MatchingType + "','" + productSearchCategory.Name + "');return false;\">"+productSearchCategory.Name+"</a>";
					
					liResult.innerHTML = aLink;
					ulResult.appendChild(liResult);
				}
			}
			
			if(cateCtr > 0)
			{
				searchResultList.appendChild(ulResult);
			}
		}
	}
	  $get("searchNoResult").style.display ='none';
	productSearchCategoriesSlide();
	
	return result;
}

function populateBtnImage(text)
{
	$get('imgProductNavBtn').src = "TitleImage.aspx?imageName=" + text;		
}

function getCategoriesSearchResultsFail(response)
{
	alert('failed:'+ response._message);
}

var ready = true;

function getProducts(keyword,categoryId,matchingType,categoryName)
{	
	if(ready)
	{
		ready = false;
		HideResult();
		var labelTitle = categoryName;
		
		if(matchingType == "SearchTerms"){
			labelTitle = keyword;
		}
		
		populateBtnImage(labelTitle);

		//alert('keyword: ' + keyword + " categoryId: " + categoryId + " matchingType: " + matchingType);
		PageMethods.GetProductsSearchResults(keyword,categoryId,matchingType,getProductsSearchResultsSuccess,getProductsSearchResultsFail);
	}
}

function getProductsSearchResultsSuccess(response)
{
	var products = response;
	var productContainer = document.createElement('div');
	productContainer.className = 'proContainer' + products["categoryId"];	
	$get('divProductList').innerHTML = "";
	for(var i = 0;;i++)
	{		
		if(products[i] == null)
		{			
			break;		
		}
		else
		{   
			var templateProduct = $get('templateProduct').cloneNode(true);			
			
			templateProduct.style.display = 'block';
			templateProduct.id = "";
			var productName = '';
			
			if(products[i]['Brand']['Name'] != null && products[i]['Brand']['Name'] != "")
			{
				productName += products[i]['Brand']['Name'] + '&nbsp;';
				if(products[i]['PSymbol']['Character'] != null && products[i]['PSymbol']['Character'] != "")
				{				
					productName += products[i]['PSymbol']['Character'] + '&nbsp;';
				}				
			}
			productName += products[i]['Name'];
			
			if(products[i]['Unit'] != null && products[i]['Unit'] != "")
			{
				productName += '&nbsp;'+products[i]['Unit'];
			}
			
			getElementsByClassName('productName','span',templateProduct)[0].innerHTML = productName;
			getElementsByClassName('productPrice','span',templateProduct)[0].innerHTML = formatCurrency(products[i]['TotalPrice']);
			if(products[i]['Quantity'] != null){
				getElementsByClassName('Quantity','span',templateProduct)[0].innerHTML = products[i]['Quantity'];
			}
			if(products[i]['OldPrice'] != 0){
				getElementsByClassName('OldPrice','span',templateProduct)[0].innerHTML = 'was '+ formatCurrency(products[i]['OldPrice']);
			}
			if(products[i]['UnitPrice'] != null && products[i]['UnitPrice'] != ""){
				getElementsByClassName('UnitPrice','span',templateProduct)[0].innerHTML = "(" + (products[i]['UnitPrice']) + ")";
			}
			
			getElementsByClassName('price','input',templateProduct)[0].value = (products[i]['TotalPrice']);
			getElementsByClassName('productNumber','input',templateProduct)[0].value = products[i]['Number']; 
			
			productContainer.appendChild(templateProduct.cloneNode(true));
			$get('divProductList').appendChild(templateProduct.cloneNode(true));		
		}
	}
	
	//set ready variable in show result
	ShowResult();		
}

function getProductsSearchResultsFail(response)
{
	alert('failed:'+ response._message);
}
