Livesearch = Class.create();
Livesearch.prototype = {
initialize: function(father, attachitem, target, hideitem, url, pars, searchform, loaditem, searchtext, resetbutton) {
this.father = father;
this.attachitem = attachitem;
this.target = target;
this.hideitem = hideitem;
this.url = url;
this.pars = pars;
this.searchform = searchform;
this.loaditem = loaditem;
this.searchtext = searchtext;
this.resetbutton = resetbutton;
this.t = null; // Init timeout variable
var buttonvalue = 'go';
$(father).innerHTML = '';
// Style the searchform for livesearch
var inputs = $(searchform).getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
var input = inputs.item(i);
if (input.type == 'submit')
input.style.display = "none";
}
Effect.Fade(this.resetbutton, { duration: .1, to: 0.3 });
$(this.loaditem).style.display = 'none';
Event.observe(attachitem, 'focus', function() { if ($(attachitem).value == searchtext) $(attachitem).setAttribute('value', '') });
Event.observe(attachitem, 'blur', function() { if ($(attachitem).value == '') $(attachitem).setAttribute('value', searchtext) });
// Bind the keys to the input
Event.observe(attachitem, 'keyup', this.readyLivesearch.bindAsEventListener(this));
},
readyLivesearch: function(event) {
var code = event.keyCode;
if (code == Event.KEY_ESC || ((code == Event.KEY_DELETE || code == Event.KEY_BACKSPACE) && $F(this.attachitem) == '')) {
this.resetLivesearch.bind(this);
} else if (code != Event.KEY_LEFT && code != Event.KEY_RIGHT && code != Event.KEY_DOWN && code != Event.KEY_UP && code != Event.KEY_RETURN) {
if (this.t) { clearTimeout(this.t) };
this.t = setTimeout(this.doLivesearch.bind(this), 400);
}
},
doLivesearch: function() {
Effect.Fade(this.resetbutton, { duration: .1, to: 0 });
Effect.Appear(this.loaditem, {duration: .1});
new Ajax.Updater(
this.target,
this.url,
{
method: 'get',
evalScripts: true,
parameters: this.pars + encodeURIComponent($F(this.attachitem)) + '&rolling=1',
onSuccess: this.searchComplete.bind(this)
});
},
searchComplete: function() {
$(this.hideitem).style.display = 'none';
Effect.Fade(this.loaditem, {duration: .1});
Effect.Appear(this.resetbutton, { duration: .1 });
Event.observe(this.resetbutton, 'click', this.resetLivesearch.bindAsEventListener(this));
$(this.resetbutton).style.cursor = 'pointer';
// Support for Lightbox
if (window.initLightbox) {
initLightbox();
}
},
resetLivesearch: function() {
$(this.hideitem).style.display = 'block';
Effect.Fade(this.resetbutton, { duration: .1, to: 0.3 });
$(this.attachitem).value = '';
$(this.target).innerHTML = '';
$(this.resetbutton).style.cursor = 'default';
}
}
var lsUrl = window.location.href.match(/^(http:\/\/[^/]+)/)[1]
+ 'http://alumni.eside.deusto.es/wp-content/themes/triplek2-091'.match(/^http:\/\/[^/]+(.+)/)[1];
new FastInit( function() { new Livesearch('searchform', 's', 'dynamic-content', 'current-content', lsUrl + '/rollingarchive.php', '&s=', 'searchform', 'searchload', 'Palabra o palabras a buscar', 'searchreset'); } );