﻿$("#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);
}