function loadContent(config){
	if(config.autoGetParams && config.autoGetParams == true)
	{
		var postParams = getParams(Ext.get(config.formId).dom);
	}
	else
	{	
		var postParams = config.params;
	}
	
	config.preloader = config.preloader || false;
	config.formId = config.formId || '';

	// zobrazime loading
	if (config.preloader)
	{
		// vytvorime loading container
		Ext.get(config.targetID).createChild({
			tag: 'div',
			id: 'loading'
		});
		Ext.get('loading').setOpacity(.5);
		// nastavime zpozdeni
		config.timeOut = config.timeOut || 1000;
	}
		
	setTimeout(function(){
		Ext.Ajax.request({
			url: config.url
			,method: 'POST'
			,success: function(result,request){
				var res = Ext.util.JSON.decode(result.responseText);
				// pokud nastala chyba
				if (res.success == false)
				{
					// odstranime predchozi elementy s chybovyma zpravama z DOMu
					Ext.select('p.message-bad').remove();
					
					// vlozime chybovou zpravu do DOMu
					Ext.DomHelper.insertHtml(
						'afterBegin', 
						Ext.get(config.targetID).dom, 
						'<p class="message-bad">' + res.error +'</p>'
					);
					
					// odebereme loading container
					Ext.get('loading').remove();
				}
				// po uspesnem zpracovani
				else
				{
					// vlozime vysledek vraceny skriptem
					Ext.DomHelper.overwrite(Ext.get(config.targetID).dom, res.data);
					if(config.successFunction)
					{
						eval(config.successFunction);
					}
				}
			}
			,failure: function(){
				// odstranime predchozi elementy s chybovyma zpravama z DOMu
				Ext.select('p.message-bad').remove();
				
				// vlozime chybovou zpravu do DOMu
				Ext.DomHelper.insertHtml(
					'afterBegin', 
					Ext.get(config.targetID).dom, 
					'<p class="message-bad">Nepodařilo se načíst data</p>'
				);
				
				// odebereme loading container
				Ext.get('loading').remove();
			}
			,params: ''+postParams+''
		});}
		,config.timeOut);
	return false;
}

function deleteRecord(config){
	
	var postParams = config.params;
	
	Ext.Ajax.request({
			url: config.url
			,method: 'POST'
			,success: function(result,request){
				var res = Ext.util.JSON.decode(result.responseText);
				// pokud nastala chyba
				if (res.success == false)
				{
					Ext.get(config.targetId).dom.innerHTML = '<p class="message-bad">' + res.errors + '</p>' + Ext.get(config.targetId).dom.innerHTML;
				}
				// po uspesnem zpracovani
				else
				{
					if (config.hideElement && config.hideElement == true && config.hideId && config.hideId != '')
					{
						// skryjeme prvek
						Ext.get(config.hideId).fadeOut({remove:true});
					}
				}
			}
			,failure: function(){
				Ext.get(config.targetId).dom.innerHTML = '<p class="message-bad">Nepodařilo se načíst data</p>' + Ext.get(config.targetId).dom.innerHTML;
			}
			,params: ''+postParams+''
		});
}

function toogleCheckbox(checkboxID){
	if(Ext.get(checkboxID).dom.checked)
	{
		Ext.get(checkboxID).dom.checked = false;
	}
	else
	{
		Ext.get(checkboxID).dom.checked = true;
	}
}

// zobrazi/skryje prvek
function toogleDisplay(config){
	if (!config.displayId)
	{
		alert('Nezadáno ID prvku, který se má skrýt/zobrazit');
	} 
	else
	{
		// pokud chceme menit ikonu prepinatka
		if (config.toogleIcon && config.toogleIcon == true)
		{
			if (!config.switcherId)
			{
				alert('Nezadáno ID přepínátka');
			}
			else
			{
				var switcher = Ext.get(config.switcherId).dom;
			}
		}
		var element = Ext.get(config.displayId).dom;
		switch(element.style.display)
		{
			case 'block':
				// skryjeme prvek
				element.style.display = 'none';
				// zmenime prepinatko
				if (config.toogleIcon && config.toogleIcon == true)
				{
					switcher.className = 'expand';
				}
				break;
			case 'none':
				element.style.display = 'block';
				// zmenime prepinatko
				if (config.toogleIcon && config.toogleIcon == true)
				{
					switcher.className = 'collapse';
				}
				break;
			default: 
				element.style.display = 'block';
				// zmenime prepinatko
				if (config.toogleIcon && config.toogleIcon == true)
				{
					switcher.className = 'collapse';
				}
		}
	}
}

// zobrazi/skryje radek tabulky
function toogleRowDisplay(config){
	if (!config.displayId)
	{
		alert('Nezadáno ID prvku, který se má skrýt/zobrazit');
	} 
	else
	{
		// pokud chceme menit ikonu prepinatka
		if (config.toogleIcon && config.toogleIcon == true)
		{
			if (!config.switcherId)
			{
				alert('Nezadáno ID přepínátka');
			}
			else
			{
				var switcher = Ext.get(config.switcherId).dom;
			}
		}
		var element = Ext.get(config.displayId).dom;
		if (document.all)
		{
			displayValue = 'inline';
		}
		else
		{
			displayValue = 'table-row';
		}
		if (!element.style.display)
		{
			element.style.display = 'none';
		}
		switch(element.style.display)
		{
			case 'inline':
			case 'table-row':
				// skryjeme prvek
				element.style.display = 'none';
				// zmenime prepinatko
				if (config.toogleIcon && config.toogleIcon == true)
				{
					switcher.className = 'expand';
				}
				break;
			case 'none':
				element.style.display = displayValue;
				// zmenime prepinatko
				if (config.toogleIcon && config.toogleIcon == true)
				{
					switcher.className = 'collapse';
				}
				break;
			default:
				element.style.display = displayValue;
				// zmenime prepinatko
				if (config.toogleIcon && config.toogleIcon == true)
				{
					switcher.className = 'collapse';
				}
		}
	}
}

// zobrazi kalendar
function showDatePicker(targetID){
	
}

// fce sestavi retezec parametru z formularovych poli
function getParams(obj){
	var getstr = '';
	var ele = obj.elements;
	for ( i = 0; i < ele.length; i++ ) {
		if ( ele[i].type && ele[i].type.length > 0 ) {
			switch ( ele[i].type ) { 
				case "text" :
					getstr += ele[i].name + '=' + ele[i].value + '&';
					break;
				case "password" :
					getstr += ele[i].name + '=' + ele[i].value + '&';
					break;
				case "hidden" :
					getstr += ele[i].name + '=' + ele[i].value + '&';
					break;
				case "textarea" :
					getstr += ele[i].name + '=' + ele[i].value + '&';
					break;
				case "radio" :
					if ( ele[i].checked ) 
						getstr += ele[i].name + '=' + ele[i].value + '&';
					break;
				case "checkbox" :
					if ( ele[i].checked )
					{ 
						getstr += ele[i].name + '=' + ele[i].value + '&';
					}	
					break;
				case "select-one" :
					for ( var x = 0 ; x < ele[i].length; x++ ) {
						if ( ele[i].options[x].selected ) 
							getstr += ele[i].name + '=' + ele[i].options[x].value + '&';
					}
					break;
				case "select-multiple" :
					for ( var x =0 ; x < ele[i].length; x++ ) {
						if ( ele[i].options[x].selected ) 
							getstr += ele[i].name + '=' + ele[i].options[x].value + '&';
					}
					break;
			}
		}
	}
    return getstr;
}

var targetID;
function BrowseServer(fieldID)
{
	targetID = fieldID || 'xFilePath';
	// You can use the "CKFinder" class to render CKFinder in a page:
    //var finder = new CKFinder() ;
    //finder.BasePath = '/js/fckeditor/editor/filemanager/browser/ckfinder/' ;    // The path for the installation of CKFinder (default = "/ckfinder/").
    //finder.SelectFunction = SetFileField ;
    //finder.Popup() ;
    
    // It can also be done in a single line, calling the "static"
    // Popup( basePath, width, height, selectFunction ) function:
    CKFinder.Popup('/libs/ckfinder/', null, null, SetFileField) ;
}

// This is a sample function which is called when a file is selected in CKFinder.
function SetFileField(fileUrl)
{
	Ext.get(targetID).dom.value = fileUrl ;
}

// formatovani cisel
function number_format(a, b, c, d) {
	// number_format(number, decimals, comma, formatSeparator)
	var k = "";
	if(a.indexOf("-") == 0) {
		k = "-";
		a = a * -1;
	}
	a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
	var e = a + "";
	var f = e.split(".");
	if(!f[0]) f[0] = "0";
	if(!f[1]) f[1] = "";
	if(f[1].length < b){
		var g = f[1];
		for(var i = f[1].length + 1; i <= b; i++) {
			g += "0";
		}
		f[1] = g;
	}
	if(d != "" && f[0].length > 3) {
		var h = f[0];
		f[0] = "";
		for(var j = 3; j < h.length; j += 3) {
			i = h.slice(h.length - j, h.length - j + 3);
			f[0] = d + i +  f[0] + "";
		}
		j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
		f[0] = j + f[0];
	}
	c = (b <= 0) ? "" : c;
	return k + f[0] + c + f[1];
}
