/**
* @copyright	Copyright (C) 2007 PixPro Stockholm AB. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* PixSearch is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

/**
* PixSearch javascript
*
* Used to process Ajax searches on a Joomla database.
*
* @author		Henrik Hussfelt <henrik@pixpro.net>
* @package		mod_pixsearch
* @since		1.5
* @version		0.4.0
*/

/*
Global language vars, to be set from languagefiles through mod_pixsearch.
*/
var _txtResults	= null;
var _txtClose	= null;
var _txtSearch	= null;
var _txtReadmore= null;
var _txtNoResults=null;
var _txtAdvSearch=null;
var _txtSearchLink=null;
var _txtURIBase	= null;
var _optLimit	= null;
var _optOrdering= null;
var _optPhrase	= null;
var _optHideDivs = null;
var _optIncludeLink=null;
var _txtViewAll	=null;
var _optShowCategory=null;
var _optShowReadmore=null;
var _optShowDescription=null;

/*
Set global language vars
*/
function setSpecifiedLanguage(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){
	_txtResults	= a;
	_txtClose	= b;
	_txtSearch	= c;
	_txtReadmore= d;
	_txtNoResults=e;
	_txtAdvSearch=f;
	_txtSearchLink=g;
	_txtURIBase	= h;
	_optLimit	= i;
	_optOrdering= j;
	_optPhrase	= k;
	_optHideDivs = l;
	_optIncludeLink = m;
	_txtViewAll	= n;
	_optShowCategory = o;
	_optShowReadmore = p;
	_optShowDescription = q;
}

/*
When DOMReady, execute js_code.
*/
window.addEvent('domready', function() {
	$('ps_search_str').addEvent('click', function(e) {
		if($('ps_search_str').value == _txtSearch) $('ps_search_str').value = '';
	});

	$('ps_search_str').onkeyup = function(){
		var curtime = new Date();
		var url = _txtURIBase + '/search_lucene/com_search_java_lucene_searcher_web_json.php'; //?q '/SearchLucene.html';
		if($('ps_search_str').value == '' || $('ps_search_str').value.length < 3){
			var splitDivs=_optHideDivs.split(" ");
			$('ps_results').empty().removeClass('ps_results').setStyle('visibility', 'hidden');
			// SHOW DIVS
			if(splitDivs.length > 0 && splitDivs != '') splitDivs.each(function(r){
				$(r).setStyle('visibility', 'visible');
			});
		}
		else{
			var req = new Ajax(url, {
				method: 'get',
				delay : 400,
        data: {
          'searchphrase' : _optPhrase, //any,all,exact
          'ordering' : _optOrdering, // popular,oldest,newest,alpha,category
          'limit' : _optLimit, // 10
          'q' : $('ps_search_str').value,
	  'searchword' : $('ps_search_str').value,
          'format': 'json',
          'r' : curtime.getTime()
        },
				onComplete: function(results) {
					$('ps_results').empty().removeClass('ps_results').setStyle('visibility', 'visible');
          var res_header = new Element('div', {'class': 'ps_header' }).setHTML(_txtResults).injectInside($('ps_results'));
          var link = new Element('a', {'id': 'ps_link' }).setProperty('href','#').setHTML(_txtClose).injectBefore(res_header);
          var splitDivs=_optHideDivs.split(" ");
          $('ps_link').addEvent('click', function(e) {
            e = new Event(e).stop();
            $('ps_search_str').value = _txtSearch;
            $('ps_results').empty().removeClass('ps_results').setStyle('visibility', 'hidden');
            // SHOW DIVS
            if(splitDivs.length > 0 && splitDivs != '') splitDivs.each(function(r){
              $(r).setStyle('visibility', 'visible');
            });
          });
          results = Json.evaluate(results);
          var c = 1;
          var siteroot = "http://www.bugunbugece.com/istanbul/";
          results.each(function(r) {
            var el = new Element('div', {'class': 'ps_row_' + c });
            var link = new Element('a').setProperty('href',siteroot + r.link).injectInside(el);
            var name = new Element('h2').setHTML(r.title).injectInside(link);
						var	description = (_optShowDescription) ?  r.summary.substr(0,50) : '';
						var desc = new Element('span').setHTML(description).injectAfter(link);
            if(_optShowReadmore){
              var link = new Element('a',{'class': 'clearboth'}).setProperty('href',r.link).setHTML(_txtReadmore).injectAfter(desc);
              if(_optShowDescription) var br = new Element('br').injectAfter(desc);
            }
						el.inject($('ps_results'));
            c = (c==1) ? 2 : 1;
          });
					$('ps_results').addClass('ps_results');
					$('pixsearch_tmpdiv').empty().setStyle('visibility','visible');
				}
			});
			var rq = req.request.delay(400,req);
			$('ps_search_str').onkeydown = function(){req.send()};
		}
	}
});
