// LiveSearch JavaScript
//
// By Jakob Skjerning <http://mentalized.net>
// Uses XMLJS by Peter Cooper <http://www.feedfab.com/xmljs/>
// Inspired by Google Suggest, Dunstans LiveSearch et al

var timer = null;
var previousQuery = '';    	        

function delaySearch(query)
{
    // previousQuery = query;
    startSearchTimer(query);                        
}

function stopSearchTimer()
{
    clearTimeout(timer);
}

function startSearchTimer(query)
{
    // If an existing timer exists, kill it and use the new
    if (timer) {
        stopSearchTimer();
    }

    timer = setTimeout("getResults('" + query + "')", 700);
}

	        
function getResults(query)
{    
    if (query != previousQuery) {
        if (query == '') {
            // Hide and clear the results
            // new Effect.SlideUp('search_resultspanel', {
            //     afterFinish:function(element) {
            new Effect.Fade('search_results')
            $('search_results').innerHTML = '';
            //     }
            // });
        } else {        
            if (previousQuery == '') {
                // new Effect.Appear('search_resultspanel');
                // new Effect.SlideDown('search_resultspanel');
            }
            new Ajax.Updater(
                'search_results', 
                'http://mentalized.net/mt/mt-search-xmlrpc.cgi',
                {
                    onLoading:function(request){            
                        $('search_status').innerHTML = '<img src="/skins/substance/images/spinner_green_16x16.gif" />';
                        new Effect.Fade($('search_results'), {
                            afterFinish:function(element) {
                                $('search_results').innerHTML = '';
                            }
                        });
                    },
                    onComplete:function(request){            
                        new Effect.Fade($('search_status'), {
                            afterFinish:function(element) {
                                $('search_status').innerHTML = '';
                            }
                        });
                        new Effect.Appear('search_results');
                    },
                    parameters:'Template=xmlrpc&search=' + query,
                    evalScripts:true, 
                    asynchronous:true
                }
            )
        }
        previousQuery = query;        
    }
}
