/*
 * AjaxSearch 1.9.0 - package AjaxSearch 1 - JQuery 1.4.2
 * author: Coroico - www.modx.wangba.fr - 18/05/2010
 *
 * Licensed under the GPL license: http://www.gnu.org/copyleft/gpl.html
 */

// set the folder location to the correct location of ajaxSearch.php
var _base = 'assets/snippets/ajaxSearch/';
var _baseUrl = 'http://www.tct-tesic.com/';

var _version = '1.9.0';
var _opacity = 1.;
var _liveSearch = 1;
var _minChars = 1;
var _init = 'none';
var _pagingType = 1;

$(document).ready(function() {
	// Safely inject CSS3 and give the search results a shadow
	var cssObj = { 'box-shadow' : '#888 5px 10px 10px', // Added when CSS3 is standard
		'-webkit-box-shadow' : '#888 5px 10px 10px', // Safari
		'-moz-box-shadow' : '#888 5px 10px 10px'}; // Firefox 3.5+
	//$("#suggestions").css(cssObj);
	
	// Fade out the suggestions box when not active
	 $("input").blur(function(){
	 	$('#suggestions').fadeOut();
	 });
});

jQuery(function($) {
	function activateSearch() {
		for (ias = 0; ias < asvar.length; ias++) {
			var asv = eval('(' + asvar[ias] + ')');
			activateAsInstance(asv);
		}
	}
	function activateAsInstance(asv) {
		var as = Array();
		as['vsn'] = asv.vsn;
		as['adv'] = asv.adv;
		as['sub'] = asv.sub;
		as['bxt'] = asv.bxt;
		as['cfg'] = asv.cfg;
		as['lt'] = null;
		as['is'] = false;
		if (as['vsn'] != _version) {
			alert("AjaxSearch version obsolete. Empty your browser cache and check the version of AjaxSearch-jQuery.js file");
			return;
		}
		var res = as['cfg'].match(/&pagingType=`([^`]*)`/);
		as['pgt'] = _pagingType;
		if (res !== null)
			as['pgt'] = res[1];
		res = as['cfg'].match(/&opacity=`([^`]*)`/);
		as['opc'] = _opacity;
		if (res != null)
			as['opc'] = parseFloat(res[1]);
		res = as['cfg'].match(/&init=`([^`]*)`/);
		as['ini'] = _init;
		if (res != null)
			as['ini'] = res[1];
		res = as['cfg'].match(/&liveSearch=`([^`]*)`/);
		as['lvs'] = _liveSearch;
		if (res != null)
			as['lvs'] = parseInt(res[1]);
		res = as['cfg'].match(/&minChars=`([^`]*)`/);
		as['mch'] = _minChars;
		if (res != null)
			as['mch'] = parseInt(res[1]);
		res = as['cfg'].match(/&asId=`([^`]*)`/);
		as['px'] = '';
		if (res != null)
			as['px'] = res[1] + '_';
		var p = as['px'];
		sf = $('#' + p + 'ajaxSearch_form');
		as['sr'] = $('#suggestions').hide().removeClass('init');
		as['si'] = $('#inputString');
		if (!as['lvs'])
			as['ss'] = $('#' + p + 'ajaxSearch_form input:submit');

		if (!as['lvs'])
			as['ss'].click(function() {
				doSearch(as);
				return false;
			});
		else
			as['si'].keyup(function() {
				doLiveSearch(as);
			});
		if (as['si'].length)
			as['si'].keydown(function(e) {
				var keyCode = e.keyCode || e.which;
				if (keyCode == 13) {
					doSearch(as);
				}
			});
		doSearch(as);
	}
	function doLiveSearch(as) {
		if (as['lt']) {
			window.clearTimeout(as['lt']);
		}
		as['lt'] = setTimeout(function() {
			doSearch(as)
		}, 400);
	}
	function doSearch(as) {
		if (!as['lvs'] && as['is'])
			return false;
		if (as['si'].length)
			s = as['si'].val();
		else if (as['se'].length) {
			sl = new Array();
			as['se'].find('option:selected').each(function(i) {
				sl.push($(this).attr('value'));
			});
			s = sl.join(" ");
		} else
			s = '';
		if (s == as['bxt'])
			s = '';
		as['s'] = s;
		if (as['si'].length && (s.length != 0) && as['lvs']
				&& (s.length < as['mch']))
			return false;
		if ((s.length == 0) && (as['ini'] == 'none'))
			return false;
		as['is'] = true;
		if (!as['lvs'])
			as['ss'].attr('disabled', 'disabled');
		var rbl = new Array("allwords", "exactphrase", "nowords");
		adv = "oneword";
		for ( var x = 0; x < 3; x++) {
			if (rb = $('#' + as['px'] + 'radio_' + rbl[x])) {
				if (rb.attr('checked') == true)
					adv = rb.attr('value');
			}
		}
		as['adv'] = adv;
		var pars = {
			q : _base + 'ajaxSearchPopup.php',
			search : as['s'],
			as_version : as['vsn'],
			advsearch : encodeURI(as['adv']),
			subsearch : encodeURI(as['sub']),
			ucfg : as['cfg']
		};
		$.post(_baseUrl + 'index-ajax.php', pars, function(text) {
			var out = eval('(' + text + ')');
			if (out.ctgnm)
				ctgnm = eval('(' + out.ctgnm + ')');
			else
				ctgnm = new Array();
			if (out.ctgnb)
				ctgnb = eval('(' + out.ctgnb + ')');
			else
				ctgnb = new Array();
			as['sr'].hide();
			as['sr'].html(out.res).show().css('opacity', as['opc']);
			if (as['pgt'] == 2)
				initMoreButtons(ctgnm, as);
			else
				initNextLinks(ctgnm, as);
			if (!as['lvs'])
				as['ss'].removeAttr('disabled');
			as['is'] = false;
		});
	}
	function closeSearch(as) {
		as['sr'].hide();
		as['sl'].hide();
		if (as['si'].length)
			as['si'].val(as['bxt']);
		as['is'] = false;
		if (!as['lvs'])
			as['ss'].removeAttr('disabled');
	}
	function cleanId(idnm) {
		idn = idnm.replace(/\s+\|\|\s+/g, "_");
		idn = idn.replace(/\s+/g, "_");
		return idn;
	}
	function updateNbResDisplayed(nb, asr) {
		msg = asr.find('.AS_ajax_resultsDisplayed');
		if (msg.length) {
			msgd = msg.html();
			msgp = msgd.match(/(^[^0-9]*)([0-9]*)(.*)$/);
			asnbrd = parseInt(msgp[2]);
			asnbrd = asnbrd + nb;
			nmsg = msgp[1] + asnbrd + msgp[3];
			msg.html(nmsg);
		}
	}
	function initNextLinks(grnm, as) {
		if (grnm) {
			var p = as['px'];
			for (i = 0, m = grnm.length; i < m; i++) {
				gr = as['sr'].find('#' + p + 'grpResult_' + cleanId(grnm[i]));
				pgn = i + ',0,1';
				q = gr.find('#' + p + 'next_' + cleanId(grnm[i]));
				if (q)
					initNextLink(q, gr, grnm[i], as, pgn);
			}
		}
	}
	function initNextLink(q, gr, grnm, as, pgn) {
		q.click(function() {
			nextResults(gr, grnm, as, pgn);
		});
	}
	function nextResults(gr, grnm, as, pgn) {
		var pars = {
			q : _base + 'ajaxSearchPopup.php',
			search : as['s'],
			as_version : as['vsn'],
			advsearch : encodeURI(as['adv']),
			subsearch : encodeURI(as['sub']),
			ucfg : as['cfg'],
			pgn : pgn
		};
		$.post("index-ajax.php", pars, function(text) {
			var out = eval('(' + text + ')');
			var p = as['px'];
			if (out.res) {
				nextResDisplayed(gr, out.res, as['sr']);
				gr.html(out.res);
			}
			if (out.pgn) {
				gr.find('#' + p + 'prev_' + cleanId(grnm)).click(function() {
					nextResults(gr, grnm, as, out.pgn + ',-1');
				});
				gr.find('#' + p + 'next_' + cleanId(grnm)).click(function() {
					nextResults(gr, grnm, as, out.pgn + ',1');
				});
			}
		});
	}
	function nextResDisplayed(gr, html, asr) {
		nbrd = 0;
		gr.find('.AS_ajax_result').each(function() {
			nbrd -= 1;
		});
		var copy = $('<div></div>').append(html);
		copy.find('.AS_ajax_result').each(function() {
			nbrd += 1;
		});
		updateNbResDisplayed(nbrd, asr);
	}
	function initMoreButtons(grnm, as) {
		if (grnm) {
			var p = as['px'];
			for (i = 0, m = grnm.length; i < m; i++) {
				gr = as['sr'].find('#' + p + 'grpResult_' + cleanId(grnm[i]));
				pgn = i + ',0,1';
				q = gr.find('#' + p + 'more_' + cleanId(grnm[i]));
				if (q)
					initMoreButton(q, gr, grnm[i], as, pgn);
			}
		}
	}
	function initMoreButton(q, gr, grnm, as, pgn) {
		q.click(function() {
			moreResults(gr, grnm, as, pgn);
		});
	}
	function moreResults(gr, grnm, as, pgn) {
		var pars = {
			q : _base + 'ajaxSearchPopup.php',
			search : as['s'],
			as_version : as['vsn'],
			advsearch : encodeURI(as['adv']),
			subsearch : encodeURI(as['sub']),
			ucfg : as['cfg'],
			pgn : pgn
		};
		$.post("index-ajax.php", pars, function(text) {
			var out = eval('(' + text + ')');
			var p = as['px'];
			if (out.hdr) {
				gr.find('.AS_ajax_grpResultName').remove();
				gr.prepend(out.hdr);
			}
			if (out.res) {
				moreResDisplayed(out.res, as['sr']);
				gr.find('.paging2').before(out.res);
			}
			if (out.ftr) {
				gr.find('.paging2').remove();
				gr.append(out.ftr);
			}
			if (out.pgn)
				gr.find('#' + p + 'more_' + cleanId(grnm)).click(function() {
					moreResults(gr, grnm, as, out.pgn + ',1');
				});
		});
	}
	function moreResDisplayed(html, asr) {
		var copy = $('<div></div>').append(html);
		nbrd = 0;
		copy.find('.AS_ajax_result').each(function() {
			nbrd += 1;
		});
		updateNbResDisplayed(nbrd, asr);
	}
	activateSearch();
});
