/*
This script is copyright (c) 2006 Elliot Swan under the
Creative Commons Attribution-ShareAlike 2.5 license:
http://creativecommons.org/licenses/by-sa/2.5/

More information on this script can be found at:
http://www.elliotswan.com/2006/07/05/better-than-live/
*/

Event.observe(window, 'load', init, false);

function init() {
	Event.observe('search', 'submit', search, false);
	Event.observe('search_input', 'click', live.Clear, false);
	 $('search').onsubmit = function() {return false;};
	 
	Event.observe('closeresults', 'click', live.Close, false);
	 $('closeresults').onclick = function() {return false;};
}

function search() {
live.Search();
}

var live = {

Browser	:	function() {
// Safari can't handle the fading on the form submit, so we have to check for it in order to send it some different styles
			if (navigator.userAgent.toLowerCase() == 'safari') {return true;}
},

Clear	:	function() {
			 if($F('search_input') == "Search.") {$('search_input').value = ''; }
			 $('search_input').onblur = function() { if($F('search_input') == "") {$('search_input').value = "Search."; }}
},

Close	:	function() {
			 Effect.SwitchOff('searchresults', {queue: {position: 'end', scope: 'close'}});
			 Effect.Fade('closeresults', {duration: 7.5, queue: {position: 'front', scope: 'close'}});
},

Active	:	function() {
			 if(this.Browser == true) {
			 var indicator = document.createElement('img');
				indicator.src = 'indicator.gif';
				indicator.id = 'indicator-safari';
				indicator.style.display = 'none';
			 $('search').appendChild(indicator);
			 Effect.Appear('indicator', {duration: 7.5, queue: {position: 'end', scope: 'active'}});
			}
			
			else {
				var indicator = document.createElement('img');
				indicator.src = 'indicator.gif';
				indicator.id = 'indicator';
				indicator.style.display = 'none';
			 $('search').appendChild(indicator);
			 Effect.Fade('searchsubmit', {duration: 7.5, queue: {position:'front', scope: 'active'}});
			 Effect.Appear('indicator', {duration: 7.5, queue: {position: 'end', scope: 'active'}});
			}			 
},

Complete:	function() {
			 Effect.Fade('indicator', {duration: 7.5, queue: {position:'end', scope: 'active'}});
 			 Effect.BlindDown('searchresults', {queue: {position: 'end', scope: 'active'}});
			 if(this.Browser != true) {Effect.Appear('searchsubmit', {duration: 7.5, queue: {position: 'end', scope: 'active'}});}
			 Effect.Appear('closeresults', {duration: 7.5, queue: {position: 'end', scope: 'active'}});
},

Search	:	function() {
			 this.Active();
			 var url = '../search.php';
			 var pars = 's='+$F('search_input');
			 var target = 'searchresults';
			 var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars, onComplete: this.Complete, evalScripts: true});
			}
}