var loading=false;
var loading_count=0;
var loading_loaded=false;
var loading_resize_cancel=false;
var temp_position;
var temp_overflow;

function ajaxloading(target,source,resize,callback,completecallback)
{
	var animatedelay=400;
	if($("#"+target).length) {
		if(!loading) {
			loading=true;
			loading_resize_cancel=false;
			loading_loaded=false;
			
			if($("#loading_"+target).length>0)$("#loading_"+target).animate({opacity: 1},animatedelay);
			if(source && $('div.loading',source).length>0)$('div.loading',source).animate({opacity: 1},animatedelay);
			if(resize)
			{
				if(source) $(source).prepend('<div class="disable">&nbsp;</div>');
				height=($('#'+target).get(0).clientHeight>0)?$('#'+target).get(0).clientHeight:$('#'+target).get(0).offsetHeight;
				temp_position=$("#"+target).css('position');
				temp_overflow=$("#"+target).css('overflow');
				$("#"+target).css({'height':height,'position':'relative','overflow':'hidden'});
				
			}
			
			setTimeout(function(){
				if(callback){eval(callback);}
				ajaxloading_wait(target,source,resize,completecallback);
			},animatedelay);
		}
	} else alert('JS error');
}

function ajaxloading_wait(target,source,resize,completecallback)
{
	var animatedelay=300;
	
	if(loading_count<400) {
		if(loading_loaded || loading_resize_cancel) {
			if(loading_loaded)
			{
				if(resize)
					{	
						$("#"+target).wrapInner('<div style="overflow:hidden;" class="content" />');
						height=$("div.content","#"+target).height();
						
						$("#"+target).animate({'height':height },animatedelay,'swing',function(){
							$("#"+target).css({'height':'1%','position':temp_position,'overflow':temp_overflow});
						});
					}
				
				if(completecallback && !loading_resize_cancel)eval(completecallback);
			} 
			else 
			{
				//if($("#loading_"+target).length>0)$("#loading_"+target).animate({opacity: 0},animatedelay);
				//if(source && $('div.loading',source).length>0)$('div.loading',source).animate({opacity: 0},animatedelay);
				//alert('Данные не получены');
			}
			loading=false;
			loading_count=0;
			loading_loaded=false;
			$(".disable",source).remove();
			if($("#loading_"+target).length>0)$("#loading_"+target).animate({opacity: 0},animatedelay);
			if(source && $('div.loading',source).length>0)$('div.loading',source).animate({opacity: 0},animatedelay);
				
		} else {
			loading_count++;
			setTimeout(function(){
				ajaxloading_wait(target,source,resize,completecallback);
			},50);
		}
		
	}
	else {
	$(".disable",source).remove();
	$("#loading_"+target).animate({opacity: 0},animatedelay);
	if(source && $('div.loading',source).length>0)$('div.loading',source).animate({opacity: 0},animatedelay);
	loading=false;
	loading_count=0;
	loading_loaded=false;
	alert('Нет связи с сервером');
	}

}
