var httpWebsiteSearchRequestObject = getWebsiteSearchXMLHttpRequestObject();

function getWebsiteSearchXMLHttpRequestObject() {
    var requestObject;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer") {
        requestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        requestObject = new XMLHttpRequest();
    }
    return requestObject;
}



function ajaxGetWebsiteSearch(action, page, searchstring) {

    var region = 0;
    var topic = 0;
    var country = 0;
    var product = 0;
    var organization = 0;
    var search = '';
    var pagename = document.location.href;
    index = pagename.indexOf('?');
    if (index > 0)
      pagename = document.location.href.substring(0,index);

    var lang = 0;

    if (pagename.indexOf("https://bayer.onpublix.bayer.com/en/") >= 0 || pagename.indexOf("http://www.bayer.com") >= 0 )
       lang = 1;

    if (action == 'view' || action == 'search' || action == 'page')
    {
      region = escape(document.forms.websearch.s_region.value);
      topic = escape(document.forms.websearch.s_theme.value);
      country = escape(document.forms.websearch.s_country.value);
      product = escape(document.forms.websearch.s_product.value);
      organization = escape(document.forms.websearch.s_organization.value);
      search = escape(document.forms.websearch.s_query.value);
    }
    
    var url = pagename + '?region=' + region + '&topic=' + topic + '&country=' + country + '&product=' + product +'&organization=' + organization + '&search=' + search +'&action=' + action +'&page=' + page +'&lang=' + lang + '&strReturn=true&IntQry=true&timestamp=' + Math.random();        
    startEggTimer();
    httpWebsiteSearchRequestObject.open('GET', url);
    httpWebsiteSearchRequestObject.onreadystatechange = ajaxWebsiteSearchEvent;
    httpWebsiteSearchRequestObject.send(null);
}

function ajaxWebsiteSearchEvent() {
        // Ajax-Anfrage erfolgreich?
    if(httpWebsiteSearchRequestObject.readyState == 4){
        // Holt die Antwort aus der Anfrage
        var ajaxResponse = httpWebsiteSearchRequestObject.responseText;
        // ?ndert den Textinhalt, des HTML-Elements mit der ID ajax
                document.getElementById("SearchWebsites").innerHTML = ajaxResponse;
                stopEggTimer();
    }
}

function startEggTimer()
{
  document.getElementById("eggtimer").style.visibility = "visible";
}
function stopEggTimer()
{
  document.getElementById("eggtimer").style.visibility = "hidden";
}


function Websearch_View() {
	ajaxGetWebsiteSearch('view', -1, '');
}
function Websearch_Update() {	
	ajaxGetWebsiteSearch('view', -1, '');
}			
function Websearch_Reset() {
	ajaxGetWebsiteSearch('reset', -1, '');
}
function Websearch_Page(i) {
	ajaxGetWebsiteSearch('page', i, '');
}

function closeSearchLayer()
{
  sdi = -1;
  document.getElementById('search-layer').innerHTML = '';
  document.getElementById('search-layer').style.display = 'none';
}






function querySearch(e,val)
{
          if( e.which ) 
            key= e.which;
          else if( e.keyCode ) 
            key= e.keyCode;

					if (
//key != 8 /* backspace */
					   key != 9 /* tab */
					&& key != 13 /* enter */
					&& key != 16 /* shift */
					&& key != 17 /* strg */
					&& key != 18 /* alt */
					&& key != 19 /* pause */
					&& key != 20 /* capslock */
					&& key != 27 /* esc */
					&& key != 33 /* bild auf */
					&& key != 34 /* bild ab */
					&& key != 35 /* end */
					&& key != 36 /* pos1 */
					&& key != 37 /* pfeil rechts */
					&& key != 38 /* pfeil oben */
					&& key != 39 /* pfeil links */
					&& key != 40 /* pfeil unten */
					&& key != 44 /* druck */
					&& key != 45 /* einfg */
					&& key != 46 /* entf */
					&& key != 91 /* windows-key */
					&& key != 92 /* windows-key rechts */
					&& key != 93 /* kontext-menu */
					&& key != 144 /* num */
					&& key != 145 /* rollen */
					&& key != 113 /* f2 */
					&& key != 114 /* f3 */
					&& key != 118 /* f7 */
					&& key != 119 /* f8 */
					&& key != 120 /* f9 */
					&& key != 121 /* f10 */
					&& key != 122 /* f11 */
					&& key != 123 /* f12 */
					&& key != 220 /* ^ */
          && !e.ctrlKey
					&& !e.altKey
          )
					{

            val = val.replace('<','');
            val = val.replace('>','');
            if (val.length >= 0)
            {                
                sdi = -1;
                region = escape(document.forms.websearch.s_region.value);
                topic = escape(document.forms.websearch.s_theme.value);
                country = escape(document.forms.websearch.s_country.value);
                product = escape(document.forms.websearch.s_product.value);
                organization = escape(document.forms.websearch.s_organization.value);

                var pagename = document.location.href;
                index = pagename.indexOf('?');
                if (index > 0)
                  pagename = document.location.href.substring(0,index);
                var lang = 0;

                if (pagename.indexOf("https://bayer.onpublix.bayer.com/en/") >= 0 || pagename.indexOf("http://www.bayer.com") >= 0 )
                  lang = 1;

                var url = '/module/WebsiteSearchProvider.aspx?region=' + region + '&topic=' + topic + '&country=' + country + '&product=' + product +'&organization=' + organization + '&search=' + val +'&lang=' + lang + '&timestamp=' + Math.random();        
                //startEggTimer();
                httpWebsiteSearchRequestObject.open('GET', url);
                httpWebsiteSearchRequestObject.onreadystatechange = ajaxWebsiteSearchEventProvider;
                httpWebsiteSearchRequestObject.send(null);
            }
					}
					return false;
}
					
 

function ajaxWebsiteSearchEventProvider() {
        // Ajax-Anfrage erfolgreich?
    if(httpWebsiteSearchRequestObject.readyState == 4){
        // Holt die Antwort aus der Anfrage
        var ajaxResponse = httpWebsiteSearchRequestObject.responseText;
        // ?ndert den Textinhalt, des HTML-Elements mit der ID ajax
        if (ajaxResponse != null && ajaxResponse != '')
        {
         document.getElementById("search-layer").style.display = 'block';
         document.getElementById("search-layer").innerHTML = ajaxResponse;
         //stopEggTimer();
        }
        else
        {
         document.getElementById("search-layer").style.display = 'none';
        }
    }
}


function setSearchValue(text)
{
 document.getElementById('s_query').value = text.replace('&amp;','&');
}



















var sdi = -1;

function moveSearchCursor(e, val) {

  if (val == null || val=='')
    return;

  var container = document.getElementById('search-layer');
  var keyCode;  

  if (e.which)
    keyCode = e.which;
  else if (e.keyCode)
    keyCode = e.keyCode;
    
    

  if (keyCode == 13 && sdi == -1) {
    Websearch_View();
    return false;
  }

  if (container != null && (keyCode == 38 || keyCode == 40 || keyCode == 13)) {
    var spans = new Array();
    var tmpIdx = 0;
    
    

    for (var i = 0; i < container.childNodes.length; i++) {
      if (typeof container.childNodes[i] != 'undefined')
      {
        spans[tmpIdx++] = container.childNodes[i].childNodes[0];
      }
    }
   

    if (keyCode == 13 && sdi != -1) {   
        setSearchValue(spans[sdi].innerHTML); 
        closeSearchLayer();
        Websearch_View();
      return false;
    } else if (keyCode == 13) {
        Websearch_View();
        return false;
    } else {
      for (var i = 0; i < spans.length; i++) {
        RemoveClassName(spans[i], 'entitysearchlink');
      }

      if (keyCode == 40) 
      {
        if (spans.length - 1 == sdi) 
        {
          sdi = 0;
        } else 
        {
          sdi++;
        }
      }
      else 
      {
        if (sdi <= 0) 
        {
          sdi = spans.length - 1;
        } else 
        {
          sdi--;
        }
      }

      if (spans[sdi] != null)
       spans[sdi].className =  'entitysearchlink-highlighted';
    }
  }
}

function RemoveClassName(objElement, strClass) 
{
  if (objElement != null)
    objElement.className = strClass;
}





