$rnd		= function( min, max) 		{ return min + ( Math.random() * ( max - min ) ) ;  };
doSubmit 	= function(form, event) {
	var partner  = form.partner.value;
	form.q.value = form.q.value.replace(/^\s+|\s+$/, '');
	if(!form.q.value) {
		form.q.focus();	
		return false;
	}
	
	if(partner === 'random') {
		partner = form.partner.options[parseInt( $rnd( 1,  form.partner.options.length))].value;
	}
	
	// Go
	window.location.href= partner + '?q='+form.q.value;
	return false;
}

Event.add( window, "DOMContentLoaded", function() {

	var myAjaxRPC = new Ajax.RPC();
	var options 	= {
		'className'	: "autocomplete",
		'autocomplete'  : true,
		'valueKey' 	: "q",
		'valueFormat' 	: "$1.toString().toLowerCase().camelCase()",
		//'submitForm'	: true,
		'fetch' 	: function( value ) {
			return ( myAjaxRPC.send( "morpheus.GetPartialQuerySuggestions", value.toString(), 10));
		},
		'format'	: function( obj ) {
			var cnt = String(obj.n);
			if ( cnt.length > 3 )
				cnt = cnt.replace( /^(.*?)(.{3})$/, "$1.$2");
			var title = obj.q.toString().toLowerCase().camelCase().replace(/ó( |\.|$)/g, 'ò$1');
			return (  title + "<span>" + cnt + "</span>");
		},
		'events' 	: {
			//'select' : function() {
			//	this.element.form.submit();
			//},
			'close' : function() {
			},
			'loading' : function() {
				Node.toggleClass( this.element, "loading");
			},
			'halt' : function() {
				Node.removeClass( this.element, "loading");
			}
		}
	}
	
	new AutoComplete ( $("field-q"), options);
	
	document.forms[0].q.focus();	
});