
var frm_search = null;
var ctrl_search = null;
var layer_searchhelper = null;
var request_id = 0;
var search_timeout = null;
var search_terminated = false;

function search_init(search_frm, search_ctrl, searchhelper_layer) {
	frm_search = search_frm;
	ctrl_search = search_ctrl;
	layer_searchhelper = searchhelper_layer;
}

function search_close() {
	$($(layer_searchhelper).getAttribute('id')).style.display = 'none';
	ctrl_search.className = 'expresssearch';
	if ( $('ep_player') ) $('ep_player').style.display = 'block';
}

function search_terminate() {
	search_close();
	search_terminated = true;
}

function search_open() {
	$($(layer_searchhelper).getAttribute('id')).style.display = 'block';
	if ( $('ep_player') ) $('ep_player').style.display = 'none';
}

function search_is_open() {
	return $($(layer_searchhelper).getAttribute('id')).style.display == 'block';
}

function search_query(search) {
	if ( search.length < 3 ) {
		search_close();
	} else {

		/* layer_searchhelper.innerHTML = search_loadingscreen(); */
		if ( ctrl_search.className != 'expresssearching' ) ctrl_search.className = 'expresssearching';

		if ( search_timeout != null ) {
			clearTimeout(search_timeout);
			search_timeout = null;
		}

		search_timeout = setTimeout('search_execute(\'' + search + '\')', 700);
	}
}

function search_loadingscreen() {
	return '<div class=\"loading\"><img src=\"/styles/images/loading.gif\" alt=\"loading ...\" title=\"loading ...\" /></div><div class="searchfooter"><img src=\"/styles/images/close.gif\" alt=\"schlie&szlig;en\" onclick="search_close();" /><span onclick="search_close();">schlie&szlig;en</span></div>\n';
}

function search_execute(search) {

	request_id++;
	new Ajax.Request('/service/a=search&request='+request_id+'&exp=' + encodeURIComponent(search),
	{
		method: 'get',
		encoding: 'iso-8859-1',
		onSuccess: function(transport) {

			search_timeout = null;

			if ( request_id && transport.responseXML.getElementsByTagName("searchresults")[0].getAttribute("request") != request_id ) return;

			if ( transport.responseXML.getElementsByTagName("searchresult").length == 0 || ctrl_search.value == '' ) {

				search_close();

			} else if ( transport.responseXML.getElementsByTagName("searchresult").length <= 50 && $(layer_searchhelper) != null ) {

				if ( search_terminated ) {
					search_close();
					search_terminated = false;
				} else {
					ctrl_search.className = 'expresssearch';
					$(layer_searchhelper).innerHTML = "";
					var dummy = '<ul>';
					var lastorder = false;
					for ( var idx = 0; idx < transport.responseXML.getElementsByTagName("searchresult").length; idx++ ) {
						var searchresult = transport.responseXML.getElementsByTagName("searchresult")[idx];
						dummy += '<li' + ( lastorder != false && lastorder != searchresult.getAttribute('orderid') ? ' style="border-top: solid 1px #000;"' : '') + '><a href="' + searchresult.getAttribute('url') + '" onclick=\"\$(\'' + $(layer_searchhelper).getAttribute('id') + '\').style.display = \'none\'; return true;\">' + ( searchresult.getAttribute("autor") == null || searchresult.getAttribute("autor") == "" ? "" : "<i>" + searchresult.getAttribute("autor") + "</i> - " ) + searchresult.getAttribute('name') + '</a></li>';
						lastorder = searchresult.getAttribute('orderid');

					}
					dummy += '</ul>';
					dummy += '<div class="searchfooter"><span class=\"more\" onclick=\"$(\'' + frm_search.getAttribute('id') + '\').submit();\">mehr ...</span><img src=\"/styles/images/close.gif\" alt=\"schlie&szlig;en\" title=\"schlie&szlig;en\" onclick="search_close();" /><span onclick="search_close();" class=\"close\">schlie&szlig;en</span></div>\n';
					$(layer_searchhelper).innerHTML = dummy;

					if ( !search_is_open() ) {
						search_open();
					}
				}

			} else {

				search_close();

			}
		},
		onFailure: function() {
			/*alert('Something went wrong ...');*/
		}
	});

}
