Ext.onReady(function(){
	if (Ext.get('games_tree'))
	{
		var games_tree = Ext.get('games_tree');
		games_tree.select('li .letter').on('click', function(e){
			e.stopEvent();
			var anchor = Ext.get(e.target);
			var subtree = anchor.next();
			if (subtree.hasClass('expanded'))
			{
				anchor.replaceClass('opened', 'closed');
				subtree.removeClass('expanded');
			}
			else
			{
				anchor.replaceClass('closed', 'opened');
				subtree.addClass('expanded');
			}
		});
	}	
	
});
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.callback)
					{
						eval(config.callback);
					}
				}
			}
			,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 void(0);
}

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;
}

// 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];
}