
/* **** FUNKCE PRO PRACI S NACITANIM POMOCI AJAXU **** */
var bShowing = false;
/**
 * paramter pro predani dat | elemnt, do ktereho vypisu predana data | element, ze ktereho jsem zavolal tuto fci
 */
function fGetContent( sParam , sElm , sWhereLoader , sType )
{
	if( $('#'+sElm).length < 1 || sElm == "" || sElm == undefined )	return false; //sElm neexistuje
	if( sParam == "" || sParam == undefined || sParam == null ) return false; //sParam neni nastaveny
	if( sWhereLoader == "" || sWhereLoader == undefined || sWhereLoader == null || $('#'+sWhereLoader).length < 1 ) sWhereLoader = sElm; //sParam neni nastaveny
	var rCaller = '#'+sWhereLoader;
	if( sType == "" || sType == undefined || sType == null ) sType = 'content'; //sParam neni nastaveny
	sElm = '#'+sElm;

	if( bShowing==false )	fShowLoading( sElm , rCaller );
	
	if( sType=='content' )	
		$(sElm).load( "/ajax/getContent.php" , {pParam:sParam} , fFinishLoad() );
	else if( sType=='question' ){
		sParam = $('#'+sParam).serialize();
		$(sElm).load( "/ajax/sendQuestion.php" , {pParam:sParam} , fFinishLoad() );
	}
	//pokud postem vic parametru: {pParam:"hodnotaPromenne", nazevPromenne:hodnotaPromenne} oddelene carkou v {}
	
	//pred startem ajaxoveho nahravani
	$(sElm).ajaxSend( function( event, request, settings )	{	fAjaxSend( this , rCaller , event , request , settings );		});
	//pri zacatku ajaxu
	$(sElm).ajaxStart( function()							{	fAjaxStart( this , rCaller );	});
	//na konci ajaxu
	$(sElm).ajaxStop( function()							{	fAjaxStop( this , rCaller );	});
	//pri bezchybnem dokonceni ajaxu
	$(sElm).ajaxSuccess( function( event, request, settings ){	fAjaxSuccess( this , rCaller , event , request , settings );	});
	//pri vzniku chyby
	$(sElm).ajaxError( function( event, request, settings )	{	fAjaxError( this , rCaller , event , request , settings );	});
	//po kompletnim dokonceni:
	$(sElm).ajaxComplete( function( request, settings )		{	fAjaxComplete( this , rCaller , request , settings );			});
}//fGetContent




/* **** Site effects **** */



function fShowLoading( rElm , rCaller )
{
	bShowing = true;
	var vis = $(rCaller).is(":visible");
	if (!vis)
		$(rCaller).show();  // must be visible to get .position
	var pos = $(rCaller).position();
	if (!vis) 
		$(rCaller).hide();
	if($(rCaller).css('position')!='relative') $(rCaller).css('position','relative');
	if( $(rCaller+'loader').length > 0 ){	
		rCaller = rCaller+'loader';
	}else{
		$(rCaller).append('<div id="'+rCaller.substring(1,rCaller.length)+'loader" class="ajaxLoader"></div>');
		var oCss = {
				'top' 	: '0px',//pos.top,//$(rCaller).css('top'),
				'left' 	: '0px',//pos.left,//$(rCaller).css('left'),
				'width' : $(rCaller).width(),
				'height': $(rCaller).height()
		}
		$(rCaller+'loader').css(oCss);
		rCaller = rCaller+'loader';
	}
	$(rCaller).html('<div class="ajaxLoadingDiv"><img src="/css/img/loading.gif" class="ajaxLoadingImage" /></div>');
	$(rCaller).show();
	$(rCaller).children('.ajaxLoadingDiv').fadeIn();
}//fShowLoading

function fHideLoading( rElm , rCaller )
{
	if( $(rCaller+'loader').length > 0 )	rCaller = rCaller+'loader';
	$(rCaller).children('.ajaxLoadingDiv').fadeOut("slow",function(){ fRemoveLoading(rElm , rCaller); });
}//fHideLoading

function fRemoveLoading( rElm , rCaller )
{
	$(rCaller).children('.ajaxLoadingImage').remove();
	$(rCaller).children('.ajaxLoadingDiv').remove();
	$(rCaller).hide();
}


/* **** Ajax handlers **** */


//callback funkce pri volani load
function fFinishLoad()
{
}//fFinishLoad


//1. funkce pred zacatkem odeslani pomoci ajax
function fAjaxSend( rElm , rCaller , event , request , settings )
{
}//fAjaxSend


//2. pri zacatku odesilani ajaxem - napr. zobrazeni loadingu
function fAjaxStart( rElm , rCaller )
{
	fShowLoading( rElm , rCaller );
}//fAjaxStart


//3. na konci odesilani ajaxem - napr. skryti loadingu
function fAjaxStop( rElm , rCaller )
{
	fHideLoading( rElm , rCaller );
}//fAjaxStop


//4. pokud je ajax uspesne dokoncen
function fAjaxSuccess( rElm , rCaller , event , request , settings )
{	
}//fAjaxComplete


//pri vzniku chyby v ajax
function fAjaxError( rElm , rCaller , event , request , settings )
{
	alert('Chyba pri  nahravani z adresy: '+settings.url);
}//fAjaxError


//po kompletnim dokonceni ajaxu
function fAjaxComplete( rElm , rCaller , request , settings )
{	
}//fAjaxComplete




