var $ds = 
{
	 items: {}
	,count: {}
	,form: {}
	,current:'dummy-node-listing'
	,timeout: []
	,timeout_search: []
	,query:''
	,start_page: 0
	,pagination_opts:function()
	{
		return {
			items_per_page:12,
			num_display_entries:10,
			current_page:$ds.start_page,
			num_edge_entries:2,
			link_to:"javascript:;",
			prev_text:"<img src='/assets/images/icons/pagination-left.gif' align='absmiddle' />",
			next_text:"<img src='/assets/images/icons/pagination-right.gif' align='absmiddle' />",
			ellipse_text:"...",
			prev_show_always:true,
			next_show_always:true,
			callback: $ds.populate
		};
	}
	,init: function()
	{
		$(".search-options:eq(0)").height($(".search-options:eq(0)").height());
		$ds.form = $(document.search_realisations);
		$ds.form.find(":input").bind("click"
		,function()
		{
			var $this = this;
			clearTimeout($ds.timeout);
			$ds.timeout = setTimeout(function(){$this.form.submit();},1000);
		});
		
		if(location.hash && location.hash!='')
		{
			var hash = location.hash.replace("#","");
			//$ds.onsubmit(hash);
			hash = hash.split("&");
			var fields = [];
			for(h in hash)
			{
				var field = hash[h].split("=");
				if(!/(array|object)/.test(typeof fields[field[0]])) fields[field[0]] = [];
				fields[field[0]].push(field[1]);
			}
						
			$ds.form.find(":input").removeAttr("checked").each(function()
			{
				
				if(!fields[this.name]) return;
				
				if($(this).is(":checkbox") || $(this).is(":radio"))
				{
					if(/(array|object)/.test(typeof fields[this.name]))
					{
						for(i in fields[this.name])
						{
							if(fields[this.name][i] == this.value)
							{
								$(this).attr("checked","checked");
								continue;
							}
						}
					}
				}
				else
				{
					
					if(/(array|object)/.test(typeof fields[this.name]))
						$(this).val(fields[this.name][0]);
				}
				
			});
			
			$ds.start_page = $("input[name=p]").val();
		}
		
		$ds.onsubmit();
		
	}
	,onsubmit: function()
	{
		$("#search-loader").show();
		$ds.query = $ds.form.serialize();
		$.ajax({url:'/application/request/get_realisations/',data:$ds.query+'&count_only=1',success:$ds.request_done});
	}
	,request_done: function(data)
	{
		if(data && typeof data != 'object') data = utils.eval(data);
		$ds.count = data.count;
		$(".pagination").css({opacity:0});
		$("#search-string").html(data.search_str);
		
		if($ds.count == 0)
		{
			setTimeout(function(){$("#search-loader").hide();},100);
			location.hash = $ds.query;
			return $("#realisations-container").html('<div class="padding100 font18 b center">'+lang('no search results')+'</div>');
		}
		else if($ds.count > $ds.pagination_opts().items_per_page)
		{
			$(".pagination").css({opacity:1});
		}
		
		$("#pagination-top").pagination($ds.count, $ds.pagination_opts());
	}
	,populate: function(page_index)
	{
		if($ds.start_page!=0)
			$ds.start_page = 0;
		
		$ds.form.find('input[name=p]').val(page_index);
		
		var query = $ds.form.serialize();
		
		$.ajax({url:'/application/request/get_realisations',data:query
		,success:function(data)
		{
			data = utils.eval(data);
			location.hash = query;
			
			$("#realisations-container").html(data.html);
			Cufon.replace('.style_str', { fontFamily: 'helvetica-med',letterSpacing:'1px' });
			Cufon.replace('.type_str', { fontFamily: 'helvetica-light' });
			setTimeout(function(){$("#search-loader").hide();},100);
			$("#realisations-container").append($("#ariane").clone(true));
			
		}});
				
	}
	
};

ol($ds.init);