﻿ // Used to get num of hits from google mini in calculating category-wise count. Max value allowed is 100
var ApproxTotCount = 100;

// Used to control no of tabs shown in parametric count
var NoOfTabsPerRow = 3; 

/*********************************************************
* Used to control to show parametric category count or not. 
* 1 - To Show 
* 0 - Don't Show
**********************************************************/
var ShowParametricNavCount = 1; 

/******************************************************************************************************************
* Used to control to show parametric category count type from Mini
*
* Approx - Shows Approximate count based on the first ApproxTotCount hits from mini
* All - Shows count based on the total hits from mini
* SelCatOnly - Shows count based on the selected category ONLY
*
* Note: This variable has no effect if ShowParametricNavCount value is set to 0
******************************************************************************************************************/
var ShowParamNavCountType = "All"; 


function GetGoogleSearchResultsCatgorySucceeded(result, eventArgs)
{
    //alert(result);
    
    if(ShowParametricNavCount == 1 && ShowParamNavCountType == "Approx")
        result += "<br><br>Note: Count mentioned here is an approximate count and is based on first " + ApproxTotCount + " results.";
    document.getElementById("mtParametric").innerHTML = result ;
    //alert(result);
}

function GetGoogleSearchResultsCatgoryFailed(result, eventArgs)
{
    alert(result.get_message());
}


function traverse(tree, categoryname, searchurl) {
    var categoryAllLabel = "All";

    
    var activeButClass="srch_but-on";
    var staticButClass="srch_but";

    var activeLeftImg="images/srch_tab-lef-on.jpg";
    var staticLeftImg="images/srch_tab-lef.jpg";

    var paramNavHtmlDivStart = '<div id="srch_but-bank" style="clear:both">';
    var paramNavHtmlDivEnd = '</div>';
    var paramNavHtmlRepeater = '<div class="srch_divf"><table cellpadding="0" cellspacing="0"><tr><td width="10px"><img src="LeftImage" alt="spacer" width="10" height="22" /></td><td height="12" valign="middle" class="ActiveStaticButtonClass"><a href="SearchUrl">CategoryName</td></tr></table></div>';
    var index = 0;
    var Html = '';

        if(tree.hasChildNodes())
        {
            Html = paramNavHtmlDivStart;

            //if(index % NoOfTabsPerRow == 0)
            //{
                
                Html += paramNavHtmlRepeater;
                Html = Html.replace(/CategoryName/i, categoryAllLabel);
                Html = Html.replace(/SearchUrl/i, searchurl);
                if(categoryname == ''){
                    Html = Html.replace(/ActiveStaticButtonClass/, activeButClass);
                    Html = Html.replace(/LeftImage/, activeLeftImg);
                }else{
                    Html = Html.replace(/ActiveStaticButtonClass/, staticButClass);
                    Html = Html.replace(/LeftImage/, staticLeftImg);
                }
            //    index++;
            //}
            
            for(var i=0;i<tree.childNodes.length;i++)
            {
                var tmpUrl;
                
                /*if (index % NoOfTabsPerRow == 0)
                {
                    Html += paramNavHtmlEnd;
                    Html += paramNavHtmlStart;
                }*/
                
                Html += paramNavHtmlRepeater;
                Html = Html.replace(/CategoryName/, tree.childNodes(i).attributes.getNamedItem("Text").value);
                //alert(categoryname);
                if(categoryname == tree.childNodes(i).attributes.getNamedItem("Value").value){
                    Html = Html.replace(/ActiveStaticButtonClass/, activeButClass);
                    Html = Html.replace(/LeftImage/, activeLeftImg);
                }else{
                    Html = Html.replace(/ActiveStaticButtonClass/, staticButClass);
                    Html = Html.replace(/LeftImage/, staticLeftImg);
                }
                
                tmpUrl = searchurl + "&requiredfields=TF_MT_Category:" + tree.childNodes(i).attributes.getNamedItem("Value").value;
                Html = Html.replace(/SearchUrl/i, tmpUrl);
                
                //index++;
            }
                
            
            
            Html += paramNavHtmlDivEnd;
            
             document.getElementById("mtParametric").innerHTML = Html;
             
            // alert(Html);
             
            
        }
       
}


/* Old Code
function traverse(tree, categoryname, searchurl) {
    var categoryAllLabel = "All";

    var activeLeftClass = "grn-left";
    var activeMidClass = "grn-mid";
    var activeRightClass = "grn-rgt";

    var staticLeftClass = "dgrn-left";
    var staticMidClass = "dgrn-mid";
    var staticRightClass = "dgrn-rgt";

    var paramNavHtmlTableStart = '<table border="0" cellspacing="1" cellpadding="0">';
    var paramNavHtmlStart = '<tr>';
    var paramNavHtmlEnd = '</tr>';
    var paramNavHtmlTableEnd = '</table>';
    var paramNavHtmlRepeater = '<td><table width="98%" border="0" cellspacing="0" cellpadding="0"><tr><td width="4" class="LeftClass">&nbsp;</td><td height="22" class="MiddleClass"><a href="SearchUrl">CategoryName</a></td><td width="4" class="RightClass">&nbsp;</td></tr></table></td>';
    var index = 0;
    var Html = '';

        if(tree.hasChildNodes())
        {
            Html = paramNavHtmlTableStart;

            if(index % NoOfTabsPerRow == 0)
            {
                
                Html += paramNavHtmlStart;
                Html += paramNavHtmlRepeater;
                Html = Html.replace(/CategoryName/i, categoryAllLabel);
                Html = Html.replace(/SearchUrl/i, searchurl);
                if(categoryname == ''){
                    Html = Html.replace(/LeftClass/, activeLeftClass);
                    Html = Html.replace(/MiddleClass/, activeMidClass);
                    Html = Html.replace(/RightClass/, activeRightClass);
                }else{
                    Html = Html.replace(/LeftClass/, staticLeftClass);
                    Html = Html.replace(/MiddleClass/, staticMidClass);
                    Html = Html.replace(/RightClass/, staticRightClass);
                }
                index++;
            }
            
            for(var i=0;i<tree.childNodes.length;i++)
            {
                var tmpUrl;
                
                if (index % NoOfTabsPerRow == 0)
                {
                    Html += paramNavHtmlEnd;
                    Html += paramNavHtmlStart;
                }
                
                Html += paramNavHtmlRepeater;
                Html = Html.replace(/CategoryName/, tree.childNodes(i).attributes.getNamedItem("Text").value);
                //alert(categoryname);
                if(categoryname == tree.childNodes(i).attributes.getNamedItem("Text").value){
                    Html = Html.replace(/LeftClass/, activeLeftClass);
                    Html = Html.replace(/MiddleClass/, activeMidClass);
                    Html = Html.replace(/RightClass/, activeRightClass);
                }else{
                    Html = Html.replace(/LeftClass/, staticLeftClass);
                    Html = Html.replace(/MiddleClass/, staticMidClass);
                    Html = Html.replace(/RightClass/, staticRightClass);
                }
                
                tmpUrl = searchurl + "&requiredfields=TF_MT_Category:" + tree.childNodes(i).attributes.getNamedItem("Value").value;
                Html = Html.replace(/SearchUrl/i, tmpUrl);
                
                index++;
            }
                
            
            
            Html += paramNavHtmlEnd;
            Html += paramNavHtmlTableEnd;
            
             document.getElementById("mtParametric").innerHTML = Html;
             
            // alert(Html);
             
            
        }
       
}
*/
 
function traverseNoParamNavCount(categoryname, searchurl) {

    var xmlDoc;
    var xmlFile = "xslt/TFGM-BookCategory.xml";

    if (window.XMLHttpRequest)
      {
      xmlDoc=new window.XMLHttpRequest();
      xmlDoc.open("GET",xmlFile,false);
      xmlDoc.send("");
      xmlDoc=xmlDoc.responseXML;
      }
    // IE 5 and IE 6
    else if (ActiveXObject("Microsoft.XMLDOM"))
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async=false;
      xmlDoc.load(xmlFile);
      }


    if (xmlDoc.childNodes.length > 0){
        var doc=xmlDoc.documentElement;
        traverse(doc, categoryname, searchurl);
    }
}

function initTraverse(categoryname, searchurl, catCount) {
    if(ShowParametricNavCount == 1)
        traverseParamNavCount(categoryname, searchurl, ShowParamNavCountType, catCount);
    else
        traverseNoParamNavCount(categoryname, searchurl);
}

function traverseParamNavCount(categoryname, searchurl, ShowParamNavCountType, catCount){
    MerrionIT.ITI.TaxFind.WebService.GetGoogleSearchResultsCatgory(categoryname, searchurl, ApproxTotCount, NoOfTabsPerRow, ShowParamNavCountType, catCount, GetGoogleSearchResultsCatgorySucceeded,GetGoogleSearchResultsCatgoryFailed);
}

