﻿var CriteriaXml;
function SaveSearch(xmlStr)
{
      
}

  /***  To get querystring key value ***/
    function getQuerystring(key, default_)
    {
      if (default_==null) default_=""; 
      key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
      var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
      var qs = regex.exec(window.location.href);
      if(qs == null)
        return default_;
      else
        return qs[1];
    } 

    /** to check whether request is coming from cloud search/mysearch/fresh request/search results page **/
    function chkCloudKey(){
        var returnStatus;
        var key = getQuerystring('src_pg'); //getting source page details
        
        if (key == null || key == "") //no source page details then it is a fresh request
            returnStatus = false;
        else{
            if(key == 'google') //source page exists and it is from search results page
            {
                key = getQuerystring('tf_searchtype'); //getting search type key from query string collection
                
                if(key == null || key == ""){ //no search type key then consider it as fresh request
                    returnStatus = false;
                }
                else
                {
                    if(key == 'simple') //from search results page and it is a simple search
                    {
                        key = getQuerystring('q'); //getting search query value 
                        if(key == null || key == "") //no key found then consider as fresh request
                            returnStatus = false;
                        else
                        {
                            //alert(key);
                            key = decodeURIComponent(decodeURIComponent(key));
                            document.frmSimSearch.q.value = key.replace(/[\s+]/g,' ');
                            //toggleSearch('simple'); //showing simple search screen
                        }
                    }
                    else if(key == 'adv') //from search results page and it is a adv search request
                    {
                        //toggleSearch('advance'); //showing advanced search screen
                        
                        //key = getQuerystring("partialfields"); //getting advanced search keys values from querystring collection
                        key = getQuerystring("adv_srch_params"); //getting advanced search keys values from querystring collection
                        if(key == null || key == "") //no keys found then consider as fresh request
                            returnStatus= false;
                        else
                        {
                            //alert(key);
                            key = decodeURIComponent(decodeURIComponent(key));
                            key = key.replace(/[\s.]/g, '.$');
                            key = key.replace(/[\s|]/g, '|$');
                            
                            var searchParams = key.split(/[\s$]/);                            
                            
                            for(var i=0;i<searchParams.length;i++){
                                addControl(1);
                                setSearchData(i,searchParams[i]);
                            }
                            addControl(-1);
                        }
                    }
                }
            }
            else if(key == 'mysearch' || key == 'tagcloud') //search request is from MySearches / TagClouds pages
            {
                key = getQuerystring('CloudKey'); //getting cloudkey key value from query string
                
                
                if (key == null || key == "") //no key found then consider as fresh request
                {
                    returnStatus= false;
                }
                else //key found
                {
                    document.getElementById("divSearchOptions").style.display="none"; //hiding search options div
                    document.getElementById("divLoader").style.display="block"; //showing loading search requests div
                    document.frmSimSearch.q.value = key; //assing search query value to text field
                    document.frmSimSearch.src_pg.value = '';
                    document.frmSimSearch.submit(); //submitting search page to search results page
                    //return true;
                }
                
                key = getQuerystring('tf_searchtype'); //getting search type key from query strig
                
                if(key == null || key == "") //no key found then consider as fresh request
                {
                    returnStatus= false;
                }
                else //key found
                {
                    if (key == 'simple') //search request is from mysearch page and it is a simple search request
                    {
                        key = getQuerystring('q'); //getting query value
                        
                        if(key == null || key == "") //no key found then consider as fresh request
                            returnStatus= false;
                        else // key found
                        {
                            document.getElementById("divSearchOptions").style.display="none"; //hiding search options div
                            document.getElementById("divLoader").style.display="block"; //showing loading search results div
                            document.frmSimSearch.q.value = key; //assing search keyword to text field
                            document.frmSimSearch.src_pg.value = '';
                            document.frmSimSearch.submit(); //submitting search requests to search results page
                        }
                    }
                    else if(key == 'adv') //search request is from mysearch page and it is a advanced search request
                    {
                        //key = getQuerystring("partialfields"); //getting search parameters from querystring
                        key = getQuerystring("adv_srch_params"); //getting search parameters from querystring
                        if(key == null || key == "") //no key found then consider as fresh request
                            returnStatus= false;
                        else
                        {

                            key = decodeURIComponent(decodeURIComponent(key));
                            key = key.replace(/[\s.]/g, '.$');
                            key = key.replace(/[\s|]/g, '|$');
                            
                            var searchParams = key.split(/[\s$]/);                            
                            var gmQ='';                            
                            for(var i=0;i<searchParams.length;i++){
                                var srchKeywords = searchParams[i].split(':');
                                if (srchKeywords.length == 2){
                                    if ( i == searchParams.length-1)
                                        gmQ = gmQ + srchKeywords[1] + ' ';
                                    else
                                        gmQ = gmQ + srchKeywords[1].substring(0,srchKeywords[1].length-1) + ' ';
                                }
                            }
    
                                              
                            document.getElementById("divSearchOptions").style.display="none"; //hiding search options div
                            document.getElementById("divLoader").style.display="block"; //showing loading search requests div
                            //document.frmTFAdv.partialfields.value = key; //assiging search parameters to text field
                            document.frmTFAdv.adv_srch_params.value = key; //assiging search parameters to text field
                            document.frmTFAdv.q.value = gmQ; //assiging search parameters to text field
                            document.frmTFAdv.src_pg.value = '';
                            document.frmTFAdv.action="TaxFindSearchResult.aspx"; 
                            document.frmTFAdv.submit(); //submitting search request to search results page
                        }
                    }
                }
            }
        }
    }

//    function addControl(count)
//    {
//        var dynStr = ""            
//        dynStr = dynStr + "<table><tr><td><span>Select</span></td><td><span>KeyWord</span></td><td></td></tr><tr><td>";
//        dynStr = dynStr + "<select name=\"SearchBy\"><option value=\"TF_MT_Title\">Title</option><option value=\"TF_MT_Author\">Author</option><option value=\"TF_MT_Editor\">Editor</option>";
//        dynStr = dynStr + "<option value=\"TF_MT_SubHeading\">Subject</option><option value=\"TF_MT_Description\">Citation & Abstract</option>";
//        dynStr = dynStr + "</select></td><td><input type='text' name='txtKeyword'/></td>";
//        dynStr = dynStr + "<td align='left'><select name=\"condition\"><option>And</option><option>Or</option></select></td></tr></table>";
//        
//        addDynamicControls('divDynControls',dynStr,'hidDyn',count);
//    }
     function addControl(count,optValue,optTitle)
    {
        var dynStr = ""            
        dynStr = dynStr + "<table><tr><td><span>Select</span></td><td><span>KeyWord</span></td><td></td></tr><tr><td>";
        dynStr = dynStr + "<select name=\"SearchBy\" style=\"width:100px\"><option value="+optValue+">"+optTitle+"</option>";
        dynStr = dynStr + "</select></td><td><input type='text' name='txtKeyword'/></td>";
        dynStr = dynStr + "<td align='left'><select name=\"condition\"><option>And</option><option>Or</option></select></td></tr></table>";
        
        addDynamicControls('divDynControls',dynStr,'hidDyn',count);
    }
    
    function submitSimpleSearch()
    {
    //alert("gjsd");
        if(document.frmSimSearch.q.value != ""){
           //document.frmSimSearch.partialfields.value = "TF_MT_Keyword:" + document.frmSimSearch.q.value;
           document.frmSimSearch.q.value = document.frmSimSearch.q.value.replaceAll("'", "\\\\'");           
           document.frmSimSearch.q.value = document.frmSimSearch.q.value.replace(/[&]/g, '%26');
           //document.frmSimSearch.q.value = document.frmSimSearch.q.value.replaceAll("'", "\\\\'");           
           //alert(document.frmSimSearch.q.value.replace(/[&]/g, '%26'));
           //alert(encodeURIComponent(encodeURIComponent('ITR & TaxFax')));
           document.frmSimSearch.submit();
        }
        else
           return false;
    }
    
    function validateDynControls()
    {
//        if(validateDynamicControls('divDynControls','Keyword required'))
//        {
            var SearchByObj = document.getElementsByName("SearchBy")
            var keyWordObj = document.getElementsByName("txtKeyword")
            var condObj = document.getElementsByName("condition")
            var i;
            var toBeStrippedCond = "";


            
            var gmPF = "";
            var strCond = "";
            var gmQ = "";
            for(i = 0; i < SearchByObj.length; i++)
            {
                var curCond = condObj[i].options[condObj[i].selectedIndex].innerHTML;
                var curQry = trim(keyWordObj[i].value);
                curQry = curQry.replace(/[&]/g, '%26');
                
                if (curQry.length > 0){
                    //gmQ = gmQ + keyWordObj[i].value;
                    //if (SearchByObj[i].options[SearchByObj[i].selectedIndex].value != "TF_MT_Title"){
                        gmPF = gmPF + SearchByObj[i].options[SearchByObj[i].selectedIndex].value + ":" + keyWordObj[i].value;
                    
                    
                        //gmPF = gmPF + SearchByObj[i].options[SearchByObj[i].selectedIndex].value + ":" + encodeURIComponent(encodeURIComponent(keyWordObj[i].value));
                        //gmQ = gmQ + encodeURIComponent(encodeURIComponent(keyWordObj[i].value));
                        gmQ = gmQ + keyWordObj[i].value; // for q value, encoding is not reqd
                        if (i <= SearchByObj.length-1){
                            if (curCond == 'And'){
                                gmPF = gmPF + ".";
                                strCond = strCond + "." + "$";
                                //gmQ = gmQ + " AND "
                                gmQ = gmQ + " ";
                            }else if (curCond == 'Or'){
                                gmPF = gmPF + "|";
                                strCond = strCond + "|" + "$";
                                //gmQ = gmQ + " OR "
                                gmQ = gmQ + " ";
                            }
                            toBeStrippedCond = curCond.toUpperCase();
                        }
                    //}
                }
            }
            
//            for(var i=0;i<strCond.split("$").length-1;i++){
//                alert(strCond.split("$")[i]);
//            }
            if (gmQ.lastIndexOf(toBeStrippedCond) >=0){
                gmQ = gmQ.substring(0,gmQ.lastIndexOf(toBeStrippedCond));
                gmQ = trim(gmQ);
            }
            if(gmPF.length > 0){
                gmPF = gmPF.substring(0,gmPF.length-1);
            }
                
            alert(gmPF);
            alert(gmQ);
            //document.frmTFAdv.partialfields.value = gmPF;
            document.frmTFAdv.adv_srch_params.value = gmPF;
            document.frmTFAdv.q.value = gmQ; //gmQ.replace(/[&]/g, '%26');
           document.frmTFAdv.action="TaxFindSearchResult.aspx";
           document.frmTFAdv.submit();
           //alert(gmQ.replace(/[&]/g, '%26'));
//        }
        return true;
    }
    function submitSearch()
    {
        if(document.getElementById('UCSearchControl1_ctl02_txtSearch').value != "")
        {
            document.location = "SearchResults.aspx";
        }
        else
        {
            document.getElementById("spnSearch").innerHTML  = "Keyword required";
            //alert("Keyword required");
        }
    }
   
    function toggleSearch(flag)
    {
        if(flag == 'simple')
        {
            document.getElementById("tblAdvance").style.display = 'none'
            document.getElementById("tblSimple").style.display = 'block'
        }
        else
        {
            document.getElementById("tblAdvance").style.display = 'block'
            document.getElementById("tblSimple").style.display = 'none'
            if(document.getElementById("divDynControls").innerHTML == "")
                addControl(1)
        }
    }
    function GetCollection_GM(GM_Coll,frmname)
    {
        if(frmname =='frmSimSearch')
        {
       // alert( document.frmSimSearch.hidSite.value);
          document.frmSimSearch.hidSite.value=GM_Coll;
         }
         else
         { 
            document.frmTFAdv.Hidden2.value=GM_Coll;
         }
        
    }
      function ClickTreeView(e,frmname)
      {
         var TreePath = parent.frames["myTreeView"];
         TreePath.document.getElementById("cmdCheckSelectNode").click();
         var GM_coll=TreePath.document.getElementById("hdnIds").value;
         TreePath.document.getElementById("hdnIds").value="-1";
         GetCollection_GM(GM_coll,frmname);
         //alert(frmname);
  
        return true;    
     }
     
