/**
 * global ajaxCallback could be executed after ajax success
 */

function openWindow( link )
{
	return ! $.get( link, function(data){ createWindow(data); } );
}

function createWindow ( settings )
{
	var settings 	= eval( '(' + settings + ')' );
	var buttons 	= settings.buttons;

	settings.buttons= {};

	$.each( buttons, function( key, value ) {
		settings.buttons[key] = function(){ eval(value); };
	});

	settings.show		= 'slide',

	settings.width 		= 800;		// rozměr na šírku 800 px
	settings.height		= 600;		// rozměr na výšku 400 px 

	settings.modal 		= true;		// vždy je okno modální, aby bylo používání "jednosměrné"
	settings.autoOpen	= true;		// vždy se okno automaticky otevírá - vyplývá z funkčnosti "openWindow"
	settings.draggable	= false;	// nikdy není možnost hýbat s oknem - zbytečné
	settings.resizable	= false;	// nikdy není možnost měnit velikost - zbytečné

	settings.close = function(){ $(this).dialog("destroy"); };
	
	$('#dialog').html(settings.contents);
	$('#dialog').dialog( settings );
}

function updateSnippets(snippets) {
	for(index in snippets)
		updateSnippet(index,snippets[index]);
}

function updateSnippet(id, html) {
	 $("#" + id).html(html);
}

function ajaxFormBind()
{
	$('.ajax-form').ajaxForm(
			function( data, result ){
				if(result=='success' && data!='')
					update(data);
			}
	);
}

function updateSnippetsFromSource( link ) {
	
	if(/[#]$/.exec(link)) return;
	$.get(link, function(data, result) {
		if(result=='success' && data!='')
			update(data);
	});
}

function update(data) {
	$('#ajax-wait').fadeIn('fast');
	var json = eval('(' + data  + ')');
	
	if(json.snippets=='')
		return;
	
	updateSnippets(json.snippets);
	ajaxFormBind();
	if(ajaxCallback)
		ajaxCallback();
	$('#ajax-wait').fadeOut('fast');
}

$(document).ready( function() {
	ajaxFormBind();
	ajaxCallback = false;
});
