/**
 * "Trida" definuje operace a postupy pro pridani noveho koemtare na nastence ci k vybranemu lementu apliakce (dokument, fotka)
 */

function Comment() {
}

/**
 * Inicializuje pridavani komentaru
 */
Comment.prototype.init = function() {
	
	
	this.prepareForm($('.selector-new-comment form'));
}

/**
 * Pripravy formular na pridavani komentaru
 *
 * @param jqForm jQuery instance s formularem na pridani noveho komentare
 */
Comment.prototype.prepareForm = function( jqForm) {
	jqForm.find('textarea')
		.css('height', '20px')
		.css('width', '99%');
	jqForm.find('input[type=submit]')
		.css('display', 'none');
	if(jqForm.find('textarea').length > 0) {
		var defaultText = jqForm.find('textarea').attr('title');

		jqForm.find('textarea').val( defaultText)
		.focus( function() {
			if($(this).val() == defaultText) {
				$(this).val("");
			}
			jqForm.find('input[type=submit]').css('display', 'block');
			$(this).css('height', '60px');
		})
		.blur( function( e) {
			if($(this).val() != "") {
				e.preventDefault();
				return;
			}
			$(this).val(defaultText);
			$(this)
				.css('height', '20px')
				.css('width', '99%');
			jqForm.find('input[type=submit]')
				.css('display', 'none');
		});

	}
	var _that = this;
	jqForm.submit( function ( e) {
		// Zabránění odeslání formuláře a vykonání všech dalších navěšených eventů
		e.stopImmediatePropagation();
		return _that.submitComment( this);
	});
	
}

/**
 * Odesla formular s novym komentarem
 */
Comment.prototype.submitComment = function( submitter) {
	var fields = $(submitter).serializeArray();

	var _that = this;
	$.post($(submitter).attr('action'), fields, function( json) {
		if(json.status != 'ok') {
			return alert('Doslo k chybe');
		}
		var comment = $(json.html);
		$(comment).css('display', 'none');
		_that.prepareForm( $(submitter));

		$(submitter).parent('.selector-new-comment').before( comment);
		$(comment).slideDown("slow");
		return true;
	}, 'json');
	return false;
}
