﻿  function OnSearchUsingGoogle(p_query, p_bAdvanced)
  {
      var l_oLanguage = document.getElementById(g_idLanguage);
     

      //alert(l_oLanguage.value);
      //debugger;
    var l_oSearchBox = document.getElementById(g_idSearch);
    var o_SearchProgressPanel =  document.getElementById(g_idSearchProgressPanel);
    var o_SearchProgressPanelAdvanced = document.getElementById(g_idSearchProgressPanelAdvanced);
    var l_idSearchCollection = document.getElementById(g_idSearchCollection);
    
   //syncronizing search strings in top and bottom search boxes
   if (p_query.indexOf("q=")!=-1)//search string is coming from bottom search box created by google XSLT
   {
      var l_arrQueryStrings = unescape(p_query).parseURL();
      for(i=0; i<l_arrQueryStrings.length;i++)
      {
         if(l_arrQueryStrings[i][0]=="q")
         {
            l_oSearchBox.value = l_arrQueryStrings[i][1];
            break;
         }
      }
   } 

    if(p_query == undefined || p_query.indexOf("q=") == -1)
        p_query = String.format("search?q={0}&btnG=Google+Search&site={1}&restrict={1}&output=xml_no_dtd&lr=lang_{2}&client=wdc&ie=utf8&oe=utf8", (p_query == undefined) ? "" : p_query, l_idSearchCollection.value, getLocale('', true));
    
    // showing search progress message
    if(p_bAdvanced)
      o_SearchProgressPanelAdvanced.className="on";
    else
        o_SearchProgressPanel.className = "on";
    //alert(p_query);
    //alert(g_boolIsSafari);
      
    if(g_boolIsSafari != "true") //sending atlas request
    {
        var x = Sys.Application.findObject(g_idResultsPanel).get_behaviors().getItem(0);
        x.searchComplete.add(OnSearchCompleteHandler);
        // x._doSearch(p_query, p_bAdvanced, l_oLanguage.options[l_oLanguage.selectedIndex].value, '' );
        x._doSearch(p_query, p_bAdvanced, l_oLanguag.value, '');
        event.cancelBubble = true;
    }
    else//do postback in case of safari
    {
        var l_oQueryHiddenField = document.getElementById(g_strQueryHiddenFieldId);
       // debugger;
        l_oQueryHiddenField.value = p_query;
        var MyVarfromthis = document.getElementById(g_strEventTargetGoButton);
        //alert(MyVarfromthis);
        __doPostBack(g_strEventTargetGoButton, '');
       


        //__doPostBack('ctl00_SearchGo', '');
    }
    return false;
  } 

  function SendAjaxCallForSearchOnPageLoad()
  {
    
    var strQuery;
    var g_oSearch = document.getElementById(g_idSearch);
    var g_strQuery = g_oSearch.value;
    var o_SearchProgressPanel =  document.getElementById(g_idSearchProgressPanel);
    
    if (g_strQuery!='')
    {
        o_SearchProgressPanel.className = "on";
        var l_idSearchCollection = document.getElementById(g_idSearchCollection);
        strQuery = String.format("search?q={0}&btnG=Google+Search&site={1}&restrict={1}&output=xml_no_dtd&lr=lang_{2}&client=wdc&ie=utf8&oe=utf8", escape(g_strQuery), l_idSearchCollection.value, getLocale(g_strLang, true));
         
        var x = Sys.Application.findObject(g_idResultsPanel).get_behaviors().getItem(0);
        x.searchComplete.add(OnSearchCompleteHandler);
        
        var l_oLanguage = document.getElementById(g_idLanguage);
        // x._doSearch(strQuery, false, l_oLanguage.options[l_oLanguage.selectedIndex].value, '');
        x._doSearch(strQuery, false, l_oLanguage.value, '');
    }
  }
  
  function OnSearchUsingMSN(p_query, p_bAdvanced)
  {
    var l_oLanguage = document.getElementById(g_idLanguage);
    var x = Sys.Application.findObject(g_idResultsPanel).get_behaviors().getItem(1);
    //x._doSearchEx(p_query, p_bAdvanced, l_oLanguage.options[l_oLanguage.selectedIndex].value );
    x._doSearchEx(p_query, p_bAdvanced, l_oLanguage.value);
    event.cancelBubble = true;
    return false;
  }
  
  function OnSearchCompleteHandler(sender, e)
  {
    ShowADSearch(false);
  }
  
  function ADSearch_onclick() 
  {
        collecturl("search", "");
        return false;
  }
  
  function ShowADSearch(p_bShowADSearchPanel)
  {
       var o_AdSearchPanel = document.getElementById(g_idAdvancedSearchPanel);
       var o_SearchResultPanel = document.getElementById(g_idResultsPanel);
       var o_SearchProgressPanel =  document.getElementById(g_idSearchProgressPanel);
       var o_SearchPageTitle = document.getElementById(g_idSearchPageTitle);
       var o_SearchProgressPanelAdvanced =  document.getElementById(g_idSearchProgressPanelAdvanced);       
       if(p_bShowADSearchPanel==true)
       {
            //showing adsearch panel and hiding search results panel    
            o_AdSearchPanel.className = "on";
            o_SearchResultPanel.className="off";
            o_SearchPageTitle.className="off";
            document.aspnetForm.as_q.focus();
       }
       else
       {
            //showing search results panel and hiding adsearch panel 
            o_AdSearchPanel.className = "off";
            o_SearchResultPanel.className="on";
            o_SearchPageTitle.className="on";
       }
       o_SearchProgressPanelAdvanced.className="off";
       o_SearchProgressPanel.className="off";
       return false;
 }
  
 function esc(x)
 {
    x = escape(x).replace(/\\+/g, "%2b"); 
    if (x.substring(0,2)=="\\%u") x="";
    return x;
 }

//Get the culture info as per the google requirement
//like "en", "es" but in case of chinese it return zh-TW, zh-CN
function getLocale(culture, cultureOnly)
{
   if(culture == null || culture == '')
   { 
     var l_oLanguage = document.getElementById(g_idLanguage);
     // culture = l_oLanguage.options[l_oLanguage.selectedIndex].value
     culture = l_oLanguage.value
   }
   // in case of advanced search language 
   if(culture=='advanced')
   {
      var l_oLanguage = document.getElementById(g_idLanguage);
      //culture = l_oLanguage.options[l_oLanguage.selectedIndex].value
      culture = l_oLanguage.value
   }

   if(!cultureOnly) return culture;
   
   switch(culture)
   {
     case "zh-TW":
     case "zh-CN":
        return culture.substring(0, 2);
     
     default:
        return culture.substring(0, 2);
   }
    
    return "en";
}

function collecturl(target, custom) 
{
   var p = new Array();
   var i = 0;
   var url="";
   var z = document.aspnetForm;
   var l_oDDOccur = document.getElementById(g_idDropDownOccurance);
   var l_oDDSort = document.getElementById(g_idDropDownSort);
   var l_oDDNumResult = document.getElementById(g_idDropDownNumResult);
   var l_oLanguage = document.getElementById(g_idLanguage);
   var l_oSearchBox = document.getElementById(g_idSearch);
   var l_oSearchCollectionBox = document.getElementById(g_idSearchCollection);
   //var l_tempCollection = document.getElementById(g_id_txtCollection);
   var l_tempCollection = null;
  
   var l_strSearchString=''; //this would store the search string ..this needs to be same in top and bottom search boxes

   if (z.as_q.value.length) 
   {
      p[i++] = 'as_q=' + esc(z.as_q.value);
      l_strSearchString += z.as_q.value;
   }
   if (z.as_oq.value.length) 
   {
     p[i++] = 'as_oq=' + esc(z.as_oq.value);
     var l_arrTemp = z.as_oq.value.split(' ');
     for(j=0;j<l_arrTemp.length;j++)
     {
      l_strSearchString += ' ' + ((l_arrTemp[j].trim()=='') ? '' : (l_arrTemp[j].trim() + ((j==l_arrTemp.length-1)? '':' OR')));
     }
   }
   if (z.as_epq.value.length) 
   {
      p[i++] = 'as_epq=' + esc(z.as_epq.value);
      l_strSearchString += ' ' + "\"" + z.as_epq.value + "\"";
   }
   if (z.as_eq.value.length) 
   {
     p[i++] = 'as_eq=' + esc(z.as_eq.value);
     var l_arrTemp = z.as_eq.value.split(' ');
     for(j=0;j<l_arrTemp.length;j++)
     {
      l_strSearchString += ' ' + ((l_arrTemp[j].trim()=='') ? '' : ('-' + l_arrTemp[j].trim()));
     }
   }
   if (z.as_sitesearch && z.as_sitesearch.value.length) 
   {
     p[i++]='as_sitesearch='+esc(z.as_sitesearch.value);
   }
   if (z.as_lq && z.as_lq.value.length) 
   {
     p[i++] = 'as_lq=' + esc(z.as_lq.value);
   }
   if (l_oDDOccur.options[l_oDDOccur.selectedIndex].value.length) 
   {
     p[i++]='as_occt='+esc(l_oDDOccur.options[l_oDDOccur.selectedIndex].value);
   }
//   if (l_oLanguage.options[l_oLanguage.selectedIndex].value != '') 
//   {
//     p[i++] = 'lr=lang_' +  getLocale('advanced', true);
   // }

   if (l_oLanguage.value != '') {
       p[i++] = 'lr=lang_' + getLocale('advanced', true);
   }
   
   if (l_oDDNumResult.options[l_oDDNumResult.selectedIndex].value != '10')  
   {
     p[i++] = 'num=' + l_oDDNumResult.options[l_oDDNumResult.selectedIndex].value;
   }
   if (l_oDDSort.options[l_oDDSort.selectedIndex].value != '')  
   {
     p[i++] = 'sort=' + l_oDDSort.options[l_oDDSort.selectedIndex].value;
   }
   
   if (l_oSearchCollectionBox.options[l_oSearchCollectionBox.selectedIndex].value != '')  
   {

       p[i++] = 'restrict=' + l_oSearchCollectionBox.options[l_oSearchCollectionBox.selectedIndex].value;
       //l_tempCollection.value = l_oSearchCollectionBox.options[l_oSearchCollectionBox.selectedIndex].value;
     
   }   
   
   if (p.length > 0) 
   {
     url = p[0];
     for (var j = 1; j < p.length; j++) 
     { 
       url += "&" + p[j]; 
     }
   }

   url += String.format("&btnG=WD+Search&site={0}&output=xml_no_dtd&client=wdc&proxystylesheet=&ie=utf8&oe=utf8", l_oSearchCollectionBox.options[l_oSearchCollectionBox.selectedIndex].value); 

   
   if(l_oSearchBox!=undefined)
      l_oSearchBox.value = l_strSearchString;
   
   var o_SearchProgressPanelAdvanced =  document.getElementById(g_idSearchProgressPanelAdvanced);
   o_SearchProgressPanelAdvanced.className="on";

    
   if(g_boolIsSafari != "true") //sending atlas request
   {
     var x = Sys.Application.findObject(g_idResultsPanel).get_behaviors().getItem(0);
     x.searchComplete.add(OnSearchCompleteHandler);
     // x._doSearch(target + '?' + url, false,l_oLanguage.options[l_oLanguage.selectedIndex].value, l_oSearchCollectionBox.options[l_oSearchCollectionBox.selectedIndex].innerText);
     x._doSearch(target + '?' + url, false, l_oLanguage.value, l_oSearchCollectionBox.options[l_oSearchCollectionBox.selectedIndex].innerText);
     event.cancelBubble = true;
   }
   else//do postback in case of safari
   {
     var l_oQueryHiddenField= document.getElementById(g_strQueryHiddenFieldId );
     l_oQueryHiddenField.value=target + '?' + url;
     //__doPostBack(g_strEventTargetGoButton ,'')
     __doPostBack(g_strEventTargetGoButton, '');
     
   }
   return false;
  
}

function OnKeyPressOnGoogleSearchBox(p_query, p_bAdvanced)
{
    //If enter key is pressed
    if(window.event.keyCode == 13) 
       return OnSearchUsingGoogle(p_query, p_bAdvanced); 
}

function OnKeyPressOnMSNSearchBox(p_query, p_bAdvanced)
{
    //If enter key is pressed
    if(window.event.keyCode == 13) 
      return OnSearchUsingMSN(p_query, p_bAdvanced);
}

