function commForm(cid, e)
{
	e.preventDefault();
	
	//Get element after which form will insert 
	var parent = $('#comments_' + (cid > 0 ? cid : 'mtitle'));
	var form, table, clsBtn, sndBtn, titleInput, nameInput, emailInput, saveCheck, contTxtArea;

	function createForm()
	{
		form = $('<form id="comments_ajax_form" method="post" action="?addcomm#comments_ajax_form" style="height: 310px; display: none;"></form>');

		table = $('<table cellpadding="0" cellspacing="0"></table>');
		table.fadeTo(0, 0);
		var tbody = $('<tbody></tbody>');
		table.append(tbody);
		
		tbody.append($('<tr><td class="comments_cls comments_form_top" colspan="2"><a id="comments_clsbtn" style="cursor: pointer;">Zavřít</a></td></tr>'));
	
		tbody.append($('<tr><th>Titulek:</th><td><input class="comments_txtinput" name="comments_title" id="comments_title" type="text" value="' + (cid > 0 ? 'Re: ' + $('#comments_title_' + cid).text() : '') + '" /></td></tr>'));
    
    var cookieName = jQuery.jCookie('comments_name');
		tbody.append($('<tr><th>Jméno:</th><td><input class="comments_txtinput" name="comments_name" id="comments_name" type="text" value="' + (cookieName ? unescape(cookieName) : '') + '" /></td></tr>'));
	
	  var cookieEmail = jQuery.jCookie('comments_email');
		tbody.append($('<tr><th>E-mail:</th><td><input class="comments_txtinput" name="comments_surname" id="comments_surname" type="text" value="' + (cookieEmail ? unescape(cookieEmail) : '') + ' /></td></tr>'));
	
		tbody.append($('<tr><th>Uložit jméno a E-mail:</th><td><input name="comments_save" id="comments_save_check" type="checkbox" value="1" />'
		 + '<div style="position: absolute; left: -10000px;"><input type="text" value="" name="comments_email" /><input type="text" value="" name="comments_content" /></div>'
		 + '</td></tr>'));

		tbody.append($('<tr><th>Text komentáře:</th><td><textarea name="comments_body" id="comments_body"></textarea></td></tr>'));

		tbody.append($('<tr class="comments_form_bottom"><td colspan="2"><input name="comments_send' + (cid > 0 ? '[' + cid + ']' : '') + '" id="comments_sndbtn" type="submit" value="Odeslat" /></td></tr>'));
		
		parent.after(form);
		verified = false;
		
		form.slideDown(600, function()
		{
			form.append(table);
			form.css('height', 'auto');
			table.fadeTo(400, 1 ,function()
			{
			  clsBtn = $('#comments_clsbtn');
			  sndBtn = $('#comments_sndbtn');
			  titleInput = $('#comments_title');
			  nameInput = $('#comments_name');
				emailInput = $('#comments_surname');
				saveCheck = $('#comments_save_check');
				contTxtArea = $('#comments_body');
			  
				if (clsBtn) clsBtn.click(function() {hide();});
				if (sndBtn) sndBtn.click(function(event) {if (!verified) verify(event);});
				$(document.body).keypress(function(event) {if (event.keyCode == 13) verify(event);});
			});
		});
	}
	
	function hide(handler)
	{
		table.fadeTo(400, 0, function()
		{
		  form.css('height', form.height() + 'px');
			form.children().remove();
			form.slideUp(600, function()
			{
				form.remove();
				if (handler) handler();
			});
		});
	}

  form = $('#comments_ajax_form');
	if (form.length)
	{
		table = form.children(':first'); 
		if (parent[0] == form[0].previousSibling)
		{
			hide();
			return true;
		}
		else hide(createForm);
	}
	else createForm();
	
	function verify(e) {
		var title = jQuery.trim(titleInput.val());
		var name = jQuery.trim(nameInput.val());
		var email = jQuery.trim(emailInput.val()).toString();
		var content = jQuery.trim(contTxtArea.val());
		
		if (!title || !name || !email || !content) {
			err('neúplně vyplněný formulář', e);
			return;
		}
		var emailCond = new RegExp('^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$');
		if (!email.match(emailCond)) err('nesprávný formát E-mailu', e);
	}
	
	function err(msg, e) {
		if (table.next().length) return;
		
		e.preventDefault();
		var p = $('<p class="comments_notice">Komentář nelze vložit - ' + msg + '</p>');
		p.fadeTo(0, 0);
		table.fadeTo(400, 0, function() {
		  form.css('height', form.height() + 'px');
			tmpTable = form[0].removeChild(table[0]);
			form.append(p);
			p.fadeTo(400, 1, function() {
				setTimeout(function() {p.fadeOut(400, function() {
					p.remove();
					form.append(tmpTable);
					table.fadeTo(300, 1);
					form.css('height', 'auto');
				});}, 1500);
			});
		});
	}

	return true;
}
