jQuery(document).ready(function(){
	var search_area			=	jQuery(".ajax_search_area");
	var options_area		=	jQuery(".options",		search_area);
	var default_text		=	jQuery(".default_text",	search_area)
	var results				=	jQuery(".result_area",	search_area);
	var ajax_reply			=	jQuery(".ajax_reply",	results);
	var entry				=	jQuery(".input .entry",	search_area);
	var loading				=	jQuery(".loading",		search_area);
	var search_area_open	=	false;
	var search_mutex		=	false;
	
	entry.attr("disabled","");
	
	search_area.click(function(e){
		if(search_area_open == false){
			search_area_open = true;
			
			search_area.animate({width:"500px"},500);
			default_text.hide("slow");
			entry.focus();
			
			e.preventDefault();
			return false;
		}
	});
	
	search_area.keyup(function(e){
		if(e.keyCode == 13) change_page();
	});
	
	jQuery(document.body).click(function(e){
		if(jQuery(e.target).parents(".ajax_search_area").length == 0){
			close_search_area();
		}
	});
	
	entry.keyup(function(e){
		ajax_query(false);

		return false;
	});
	
	jQuery("input[name='ajax_search_submit']",search_area).click(function(e){
		change_page();
		return false;
	});
	
	jQuery(".options span",search_area).click(function(e){
		var group = this.className;
		jQuery(".options input[value='"+group+"']",search_area).attr("checked",true);
		ajax_query(false);
	});
	
	var change_page = function()
	{
		var type = jQuery("input:checked",options_area).val();
		type = (type == "name") ? "search_phrase" : "search_city";

		location.href = "/gastraum.php?"+type+"="+get_query();
	}
	
	var get_query = function()
	{
		return Base64.encode(entry.val());
		//return escape(entry.val()).replace(" ","+");
	}
	
	var ajax_query = function(recursion)
	{		
		var query = get_query();
		
		var type = jQuery("input:checked",options_area).val();
		
		loading.hide();

		if(query.length >= 2) {
			loading.show();
			
			if(search_mutex == false){
				search_mutex = true;
			
				var ajax_search_url = "/module/ajax_search/ajax_suchergebnisse.php?begriff="+query+"&type="+type;
				
				ajax_reply.load(ajax_search_url,
					function(){
						loading.hide();
						
						results.show();
						
						results.animate({height:ajax_reply.outerHeight(true)+"px"},200);
						
						jQuery("img.close",search_area).click(close_search_area);
						search_mutex = false;
						
						//	if text has changed since this query was executing, you need to perform another one
						if(query != get_query() && recursion == false) ajax_query(true);
					},
					
					function(){
						ajax_reply.html("");
					}
				);
			}
		 }else{
			 results.hide();
		 }
	};
	
	var close_search_area = function()
	{
		search_area_open	=	false;
		search_mutex		=	false;
		entry.val("");
		
		if(results.css("display") == "block"){
			results.animate({height:"0px"},1000,function(){
				ajax_reply.html("");
				results.hide();
				
				search_area.animate({width:"300px"},500);
				default_text.show("slow");
			});
		}else{
			search_area.animate({width:"300px"},500);
			default_text.show("slow");
		}
	};
});

function xhide(){};
