(function($) {
	$.fn.expand_button = function(){
		
		var arr_split;
		var params;
		var param;
		var obj;
		
		this.each(function(i){
			//MAGICA!!!!!!!
			if($(this).data("data")==null){
				$b = new Object();
				$b.obj = $(this);
				$b.textButton = $(this).html();
				$b = analyse_url($b);
				
				$(this).data("data", $b);
				obj = $(this).data("data");
				
				if(obj.expand == 0){
					init(obj);
				}else{
					$(this).data("data", $b);
					bind_click($b);
				}
			}
			
		});
		
		function init(obj){
			$.ajax({
				url: obj.url_string,
				success: function(data){
					obj.obj.parents(".expand_this").find(".ajax_box").html(data);
					obj = change_url_params(obj);
					$(this).data("data", obj);
					bind_click(obj);
				}
			});
		}
		
		function bind_click($b){
			$b.obj.click(function(e){
				$b.obj.html("<img src='"+path+"img/loader.gif' />");
				$b.obj.unbind("click");
				$.ajax({
					url: $b.url_string,
					success: function(data) {
						if(data==""){
							$b.obj.remove();
						}else{
							$b.obj.html($b.textButton);
							$(data).appendTo($b.obj.parents(".expand_this").find(".ajax_box"));
							$b = analyse_url($b);
							$b = change_url_params($b);
							$(this).data("data", $b);
							bind_click($b);
						}
					}
				});
				
			});
		}
		
		function analyse_url($b){
			$b.url_string	= $b.obj.attr("rel");
			arr_split 		= $b.url_string.split("?",2);
			params 			= arr_split[1].split("&");
			param;
			for(i in params){
				param = params[i].split("=");
				if(param[0] == "ebc"){
					$b.expand = param[1];
				}
				if(param[0] == "ebe"){
					$b.expanded = param[1];
				}
			}
			
			return $b;
		}
		
		function change_url_params($b){
			$b.expanded 	= parseInt($b.expanded) + parseInt($b.expand);
			
			arr_split 		= $b.url_string.split("?",2);
			params 			= arr_split[1].split("&");
			param;
			for(i in params){
				param = params[i].split("=");
				if(param[0] == "ebc"){
					param[1] = $b.expanded;
					params[i] = param.join("=");
				}
			}
			
			$b.url_string	= arr_split[0]+"?"+params.join("&");
			$b.obj.attr("rel",$b.url_string);
			return $b;
		}
		
		
	};
})(jQuery);

