/* Ajax links */
$("a.ajax").live("click", function (event) {
    event.preventDefault();
    $.get(this.href);
	// zobrazí spinner, signalizující uživateli, že se něco děje
	/*
	 $('<div id="ajax-spinner"></div>').css({
		position: "absolute",
		left: event.pageX + 10,
		top: event.pageY + 20
	}).ajaxStop(function() {
		$(this).remove(); // po skončení spinner smaž
	}).appendTo("body");
	*/
   showAjaxSpinner();
   $("body").ajaxStop(function(){
	   hideAjaxSpinner();
   });
	return false;
});

/* Ajax forms */
$("form.ajax").live("submit", function () {
	tinyMCE.triggerSave();
    $(this).ajaxSubmit();
    return false;
});

$("form.ajax :submit").live("click", function (event) {
	var submit_clicked = true;
	var submit = $(this);
	tinyMCE.triggerSave();
	var result = $(this).ajaxSubmit();
	
	/*
	$('<div id="ajax-spinner"></div>').css({
		position: "absolute",
		left: event.pageX + 10,
		top: event.pageY + 20
	}).ajaxStop(function() {
		submit.trigger("ajaxDialogSubmitClose");
		$(this).remove(); // po skončení spinner smaž
	}).appendTo("body");
	*/

	if ( ($(this).closest("form").data("valid") != null) && !($(this).closest("form").data("valid")) )	// check javascript validation
	  {
		  hideAjaxSpinner();
		  return false;
	  }
	  
	showAjaxSpinner();
	setTimeout('hideAjaxSpinner()', 2000);
	
	$("body").ajaxStop(function()
	{
		var return_json = $.parseJSON(result.responseText);
		var cancelClosing = (return_json['ajaxDialogData']['cancelClosing'] == null ? false : true);
		
		if(submit_clicked)
		{
			submit.trigger("ajaxDialogSubmitClose", [cancelClosing]);
			$.ajaxDialogTopFormSubmit(return_json['ajaxDialogData']);
		}
		
		hideAjaxSpinner();
		submit_clicked = false;
	});
	
	return false;
});

$("form :submit").live("click", function (event) {
	/*
	$('<div id="ajax-spinner"></div>').css({
		position: "absolute",
		left: event.pageX + 10,
		top: event.pageY + 20
	}).ajaxStop(function() {
		$(this).remove(); // po skončení spinner smaž
	}).appendTo("body");
	*/
   showAjaxSpinner();
    return true;
});

var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
$(document).keydown(function(e) {
  kkeys.push( e.keyCode );
  if ( kkeys.toString().indexOf( konami ) >= 0 ){
    $(document).unbind('keydown',arguments.callee);
    $.getScript('http://www.cornify.com/js/cornify.js',function(){
      cornify_add();
      $(document).keydown(cornify_add);
    });
  }
});

/**
 * Comment
 */
function showAjaxSpinner() {
	$('#overlay').remove();
    $("body").prepend('<div id="overlay"><div id="ajax-spinner-overlay-wrap"><div id="ajax-spinner-overlay"></div></div></div>');
	$("#overlay").css("height", $("body").height()+"px");
	$("#overlay").css("width", $("body").width()+"px");
	$("#overlay").click(function(){$(this).remove()});
}

function hideAjaxSpinner() {
    $('#overlay').remove();
}

/**
 * Flash error message into form message area
 *
 * @param jquery object of form
 * @param string text message to show
 */
function flashFormErrorMessage(form_obj, message)
{
	var div = form_obj.find("div.form_error_container");
	
	if(div.length == 0)
	{
		div = form_obj.prepend('<div class="form_error_container"></div>').find("div.form_error_container");
	}

	div.append('<div class="flash ui-widget ui-state-error ui-corner-all">' + message + '</div>');
}

/**
 * Removes all messages from form message area
 *
 * @param jquery object of form
 */
function removeFormErrorMessages(form_obj)
{
	var div = form_obj.find("div.form_error_container");
    
	if(div.length != 0)
	{
			div.children().remove();
	}
}

/**
 * Shows Ajax spinner in specified object or selector (string)
 *
 * @param string or jQuery object
 */
function showAjaxSpinnerIn(what)
{
	var obj;
	
	if((typeof what) == "object")
	{
		obj = what;
	}
	else if((typeof what) == "string")
	{
		obj = $(what);
	}
	else
	{
		return;
	}
	
	obj.css("position", "relative");
    $('<div id="overlay" class="snippet"><div id="ajax-spinner-overlay-wrap"><div id="ajax-spinner-overlay"></div></div></div>')
		.appendTo(obj)
		.click(function(){$(this).remove()});
}

/**
 * Return true if ajax spinner is shown
 *
 * @return true
 */
function isSpinnerShown()
{
	return ($('#overlay').length == 0)? false : true;
}
