﻿function assembleSearchURL(baseURL, psid, sc) {

  var searchURL = baseURL + "/shop.aspx?";
  searchURL += "&strid=";
  searchURL += psid;
  searchURL += "&shopurl=search.aspx";
  searchURL += "&sc=";
  searchURL += sc;
  searchURL += "&k=";

  return searchURL;

}

function ClickSearch() {

  var searchTerms = document.getElementById("SearchTerms").value;

  if (searchTerms != "" && searchTerms.length >= 3) {

    var searchLocation = assembleSearchURL(g_baseURL, g_psid, g_sc);
    searchLocation += document.getElementById("SearchTerms").value;

    //track search
    trackSearch(searchTerms);

    //Redirect user
    window.top.location = searchLocation;
  }
}

function EnterKeySearch(e) {
  var keynum;

  if (window.event) // IE
  {
    keynum = e.keyCode;
  }
  else if (e.which) // Netscape/Firefox/Opera
  {
    keynum = e.which;
  }

  if (keynum == 13) {
    ClickSearch();
    return false;
  }
  else {
    return true;
  }
}

function trackSearch(searchTerms) {
  trackOutGoingLinks('/outgoing/search/' + g_pcid + '/pd/' + g_sku + '/' + g_psid + '/' + searchTerms + '/');
}

function AssembleSearchDropdown(s, baseURL) {
  // assemble from comma seperated search terms
  if (s.length == 0)
    return "";

  var a = s.split(",");
  var ddHTML = "";

  for (var i = 0; i < a.length; i++) {
    ddHTML = ddHTML + "<a href='" + baseURL + a[i] + "' onClick='trackSearch(\"" + a[i] + "\");'>" + a[i] + "</a><br>";
  }

  return ddHTML;
}

function makeAjaxCall(targetURL, targetElement, parameterToPost) {

  var myRequest = new ajaxObject(targetURL);

  myRequest.callback = function(responseText) {
    if (responseText.length > 0) {
      document.getElementById(targetElement).innerHTML = AssembleSearchDropdown(responseText, assembleSearchURL(g_baseURL, g_psid, g_sc));
      DelayedShowSearchDropdown();
    }
    else {
      document.getElementById(targetElement).style.visibility = 'hidden';
      document.getElementById(targetElement).innerHTML = '';
    }
  }

  myRequest.update(parameterToPost);
}

function loadTypingSuggestions(textBox) {
  var param = 'js=1&s=' + textBox.value;
  makeAjaxCall('/pd/ajax/SuggestedTypings.aspx', 'searchFlyOut', param);
}

var dropdownTimer = 0;

function ShowSearchDropdown() {
  document.getElementById('searchFlyOut').style.visibility = 'visible';
  clearTimeout(dropdownTimer);
}

function DelayedShowSearchDropdown() { /* delayed hide, so that it links can be clicked before it is hidden */
  dropdownTimer = setTimeout("ShowSearchDropdown()", 30);
}

function showDropdown(textBox) {
  if (textBox.value.length > 0 && textBox.value.length < 8) {
    loadTypingSuggestions(textBox);
  }
  else { /* input length is zero */
    document.getElementById('searchFlyOut').style.visibility = 'hidden';
    document.getElementById('searchFlyOut').innerHTML = '';
  }
}
