var ajaxCall = false;
function validate_search(thisForm)
{
  var searchText = document.forms[thisForm].searchQuery.value;
  if (isEmptyString(searchText)) {
    alert('Please type a Search term in the entry box');
    return false;
  }
  return true;
}

function changeAttrs(someId)
{
  var rowsToShow = document.getElementById(someId);
  if (rowsToShow.style.display == 'none') {
    rowsToShow.style.display = '';
  } else {
    rowsToShow.style.display = 'none';
  }
  return true;
}

function displayOtherLink(arrayOfShowIds,arrayOfHideIds)
{
  if (typeof(arrayOfShowIds.length) == 'undefined') {
    return false;
  }

  if (typeof( arrayOfHideIds.length) == 'undefined') {
    return false;
  }

  for (var i = 0; i< arrayOfShowIds.length; i++) {
    var idToShow = arrayOfShowIds[i];
    var hrefToChange = document.getElementById(idToShow);
    hrefToChange.style.display = '';
  }

  for (var i = 0; i< arrayOfHideIds.length; i++) {
    var idToHide = arrayOfHideIds[i];
    var hrefToChange = document.getElementById(idToHide);
    hrefToChange.style.display = 'none';
  }
  return true;
}

function submitConfigForm(productId, conversationId, configId)
{
  document.revisePC.productId.value = productId;
  document.revisePC.conversationId.value = conversationId;
  document.revisePC.configurationId.value = configId;
  document.revisePC.submit();
}

function submitSearchCatQuery(query)
{
  formSubmit('Category_Refinement', query);
}

function submitSearchAttrbQuery(name, value)
{
  formAttrSearchSubmit('Attribute_Refinement', name, value);
}

function ShowRows(tblName)
{
  var cells = document.getElementsByName('hide' + tblName);
  for(var i=0; i<cells.length; i++) {
    cells[i].style.display = 'block';
  }
  
  cells = document.getElementsByName('hide' + tblName + 'onclick');
  for(var i=0; i<cells.length; i++) {
    cells[i].style.display = 'none';
  }
  return false;
}

function HideRows(tblName)
{
  var cells = document.getElementsByName('hide' + tblName);
  for(var i=0; i<cells.length; i++) {
    cells[i].style.display = 'none';
  }

  var cells = document.getElementsByName('hide' + tblName + 'onclick');
  for(var i = 0; i<cells.length; i++) {
    cells[i].style.display = 'block';
  }
  return false;
}

function formSubmit(name, value)
{
  var searchTool = (document.searchResultsForm.searchTool) ? document.searchResultsForm.searchTool.value : '';
  var searchQuery = (ajaxCall == true) ? searchQueryEnc : document.searchResultsForm.searchQuery.value;
  if (name == 'Search_Path_Requested') {
    document.searchResultsForm_1.searchPathRequested.value = value;
    document.searchResultsForm_1.searchType.value = 'search_refine_breadcrumb';
    document.searchResultsForm_1.searchQuery.value = (searchTool == 'IAP') ? searchQuery : '';
    if (ajaxCall == true) {
      searchRequest('searchResultsForm_1', true);
    } else {
      document.searchResultsForm_1.submit();
    }
  } else {
    document.searchResultsForm.categoryRefinementValue.value = '';
    document.searchResultsForm.attributeRefinementName.value = '';
    document.searchResultsForm.attributeRefinementValue.value = '';
    if (name == 'Sort_By_Modal') {
      document.searchResultsForm.sortByModal.value = value;
      document.searchResultsForm.pageNumberRequested.value = '1';
      document.searchResultsForm.searchQuery.value = (searchTool == 'IAP') ? searchQuery : '';
      document.searchResultsForm.inkTonerSearchQuery.value = '';
      document.searchResultsForm.searchType.value = 'search_refine_sort_modal';
    } else if (name == 'Show_Hide_Modal') { 
      document.searchResultsForm.showHideModal.value = value;
      document.searchResultsForm.searchType.value = 'search_refine_show_hide_modal';
      document.searchResultsForm.searchQuery.value = (searchTool == 'IAP') ? searchQuery : '';
    } else if (name == 'Items_Per_Page') {
      document.searchResultsForm.itemsPerPage.value = value;
      document.searchResultsForm.pageNumberRequested.value = '1';
      document.searchResultsForm.searchQuery.value = (searchTool == 'IAP') ? searchQuery : '';
      document.searchResultsForm.inkTonerSearchQuery.value = '';
      document.searchResultsForm.searchType.value = 'search_refine_items_per_page';
    } else if (name == 'Page_Number_Requested') { 
      document.searchResultsForm.pageNumberRequested.value = value;
      document.searchResultsForm.searchQuery.value = (searchTool == 'IAP') ? searchQuery : '';
      document.searchResultsForm.inkTonerSearchQuery.value = '';
      document.searchResultsForm.searchType.value = 'search_refine_pagination';
    } else if (name == 'Category_Refinement') {
      document.searchResultsForm.categoryRefinementValue.value = value;
      document.searchResultsForm.pageNumberRequested.value = '1';
      document.searchResultsForm.searchQuery.value = (searchTool == 'IAP') ? searchQuery : '';
      document.searchResultsForm.inkTonerSearchQuery.value = '';
      document.searchResultsForm.searchType.value = 'search_refine_by_category';
    }
    if (ajaxCall == true) {
      searchRequest('searchResultsForm', true);
    } else {
      document.searchResultsForm.submit();
    }
  }
}

function formAttrSearchSubmit(name, key, value)
{
  var searchTool = (document.searchResultsForm.searchTool) ? document.searchResultsForm.searchTool.value : '';
  var searchQuery = (ajaxCall == true) ? searchQueryEnc : document.searchResultsForm.searchQuery.value;
  if (name == 'Attribute_Refinement') {
    document.searchResultsForm.attributeRefinementName.value = key;
    document.searchResultsForm.attributeRefinementValue.value = value;
    document.searchResultsForm.categoryRefinementValue.value = '';
    document.searchResultsForm.pageNumberRequested.value = '1';
    document.searchResultsForm.searchQuery.value = (searchTool == 'IAP') ? searchQuery : '';
    document.searchResultsForm.inkTonerSearchQuery.value = '';
    document.searchResultsForm.searchType.value = 'search_refine_by_attribute';
  }
  if (ajaxCall == true) {
    searchRequest('searchResultsForm', true);
  } else {
    document.searchResultsForm.submit();
  }
}

function getFormParams(formName)
{
  var searchForm = document.forms[formName];
  var params = 'ajaxCall=true&formName=' + formName;
  for (var i=0; i < searchForm.elements.length; i++) {
    params += '&' + searchForm.elements[i].name + '=' + searchForm.elements[i].value;
  }
  return params;
}

function searchRequest(formName, historyLog)
{
  showOverlayDelay();
  var params = getFormParams(formName);
  if (historyLog == true) {
    logHistory(params);
  }
  var searchForm = document.forms[formName];
  SendHttpRequest(searchForm.action, params, searchResponse, '', true, true, searchErrorResponse);
}

function searchResponse(httpRequest)
{
  var xmlDoc = getXMLDoc(httpRequest);
  if(xmlDoc != null) {
    var searchContent = getNodeValue(xmlDoc, 'searchContent', '');
    document.getElementById('searchContent').innerHTML = searchContent;
    var modalParam = getNodeValue(xmlDoc, 'modalParam', '').split('~');
    if (modalParam.length > 0) {
      document.searchResultsForm.sortByModal.value = modalParam[1];
      document.searchResultsForm_1.sortByModal.value = modalParam[1];
      document.searchResultsForm.showHideModal.value = modalParam[2];
      document.searchResultsForm_1.showHideModal.value = modalParam[2];
      document.searchResultsForm.itemsPerPage.value = modalParam[3];
      document.searchResultsForm_1.itemsPerPage.value = modalParam[3];
      document.searchResultsForm.pageNumberRequested.value = modalParam[4];
      document.searchResultsForm_1.pageNumberRequested.value = modalParam[4];
      document.searchResultsForm.searchPathExisting.value = modalParam[5];
      document.searchResultsForm_1.searchPathExisting.value = modalParam[5];
      document.searchResultsForm_1.searchPathRequested.value = modalParam[5];
    }
    if (document.getElementById('quickLinkContent')) {
      var quickLinkContent = getNodeValue(xmlDoc, 'quickLinkContent', '');
      document.getElementById('quickLinkContent').innerHTML = quickLinkContent;
    }
    s_prop4 = getNodeValue(xmlDoc, 'sProp4', '');
    s_pageName = getNodeValue(xmlDoc, 'sPageName', '');
    if (window.hpmetrics != null) {
      var iSearch = getNodeValue(xmlDoc, 'iSearch', '');
      if (!isEmptyString(iSearch)) {
        eval(iSearch);
      }
    }
    //tooltip();
    omniData = getNodeValue(xmlDoc, 'omniData', '');
    postOmniData();
    hideOverlayDelay();
  } else {
    document.write(httpRequest.responseText);
    if (typeof applyLayout == 'function') { applyLayout(); }
  }
}

function searchErrorResponse(httpRequest)
{
  alert("Browser has encountered an error. Please try again");
  hideOverlayDelay();
}

function getNodeValue(xmlDoc, nodeName, defaultValue)
{
  var nodeValue = defaultValue;
  if (xmlDoc != null) {
    var node = xmlDoc.getElementsByTagName(nodeName);
    if(node != null) {
      nodeValue = (node.item(0) && node.item(0).childNodes.item(0)) ? node.item(0).childNodes.item(0).nodeValue : '';
    }
  }
  return nodeValue;
}

function logHistory(params)
{
  var histFrame = document.getElementById('historyFrame');
  if (histFrame == null) {
    histFrame = document.createElement('iframe');
    histFrame.id = 'historyFrame';
    histFrame.name = 'historyFrame';
    document.body.appendChild(histFrame);
  }

  var d = new Date();
  histFrame.src = '/shopping/jsi/search/historyFrame_search.htm?' + d.getTime() + '&' + params;
}

function updateShowHide(id, show)
{
  var element = document.getElementById(id);
  if(element != null && typeof element != 'undefined') {
    element.style.display = (show) ? '' : 'none';
  }
}

function setOverlayHeight()
{
  var btmPos = getAbsPosition(document.getElementById('bid'));
  if (btmPos != null) {
    var btmY = parseInt(btmPos.y);
    var btmX = parseInt(btmPos.x);

    var posFixed = (bAgent.ie4 || bAgent.ie5 || bAgent.ie55 || bAgent.ie6) ? false : true;

    var overObj = document.getElementById('searchOverlay');
    if (overObj != null) {
      if (posFixed == false) {
        overObj.style.height = parseInt(document.body.clientHeight) + 'px';
        overObj.style.width = parseInt(document.body.clientWidth) + 'px';
      } else {
        overObj.style.height = btmY + 'px';
        overObj.style.position = 'fixed';
      }
    }
  }
}

function showOverlayDelay()
{
  var my = 0;
  if (searchSite == 'call_center') {
    my = document.getElementById('right').scrollTop;
  } else {
    my = (document.body.scrollTop > 0) ? document.body.scrollTop : my;
    my = (document.documentElement.scrollTop > 0) ? document.documentElement.scrollTop : my;
  }

  var overlayObj = document.getElementById('searchOverlay_delay');
  if (document.all) {
    overlayObj.style.pixelTop = my;
  } else if (document.getElementById) {
    overlayObj.style.top = my + 'px';
  }

  overlayObj = document.getElementById('searchOverlay');
  if (overlayObj.style.height == "100%") {
    setOverlayHeight();
  }
  //alert(overlayObj.style.left + ',' + overlayObj.style.top + ',' + overlayObj.style.width + ',' + overlayObj.style.height);

  updateShowHide('searchOverlay', true);
  updateShowHide('searchOverlay_delay', true);
}

function hideOverlayDelay()
{
  updateShowHide('searchOverlay_delay', false);
  updateShowHide('searchOverlay', false);
}

function getAbsPosition(obj)
{
  var pos = new Object;
  pos.x = 0;
  pos.y = 0;

  if (obj) {
    //alert(obj.name + ', ' + obj.id + ', ' + obj.offsetLeft + ', ' + obj.offsetTop);
    pos.x = obj.offsetLeft;
    pos.y = obj.offsetTop;
    
    if (obj.offsetParent) {
      var parentpos = getAbsPosition(obj.offsetParent);
      pos.x += parentpos.x;
      pos.y += parentpos.y;
    }
  }
  return pos;
}

function _BrowserAgent()
{
  var b = navigator.appName;
  var v = navigator.appVersion;
  this.ie = (navigator.userAgent.toLowerCase().indexOf('opera') < 0 && b == 'Microsoft Internet Explorer');
  this.ie4 = this.ie5 = this.ie55 = this.ie6 = false;
  if (this.ie) {
    if (v.indexOf('MSIE 4') > 0) {
      this.ie4 = true;
    } else if (v.indexOf('MSIE 5') > 0) {
      this.ie5 = true;
    } else if (v.indexOf('MSIE 5.5') > 0) {
      this.ie55 = true;
    } else if (v.indexOf('MSIE 6') > 0) {
      this.ie6 = true;
    }
    this.b = 'MSIE';
  }
}

//END
