//##########################################################
function tworz_formeKomentarza($input, $miejsceNaForme, $miejsceNaListe, data) {
	var $form = $('<form />');
	
	var $poleAutor = $('<input type="text" name="autor" value="Nick" class="komentarz_autor" />');
		$poleAutor.change(function() {
			jQuery.cookie('autor', $(this).val(), 31);
		});
		if (jQuery.cookie('autor')) {
			$poleAutor.val(jQuery.cookie('autor'));
		}
		$poleAutor.data('def' , 'Nick');
		$poleAutor.bind({
			'blur' : function() {
				var $t = $(this);
				var $tEmail = $(this).closest('form').find('input[name="email"]');
				if ($t.val()=='') $t.val('Nick');
				if ($t.val()=='kartofelek007' || $t.val()=='kartofelek' || $tEmail.val()=='kartofelek007@gmail.com') {
					if (!$(this).parents('form').find('input[name="login_password"]').length) {
						var $password_input = $('<input type="text" name="login_password" class="login_password" value="Wpisz hasło ;)" />');
							$password_input.bind({
								'focus' : function() {
									if ($(this).val()=='Wpisz hasło ;)') $(this).val('');
								},
								'blur' : function() {
									if ($(this).val()=='') $(this).val('Wpisz hasło :)');
								}
							});
						$t.closest('form').find('textarea').parent().after($('<div class="nl"></div>').append($password_input))
					}
				} else {
					$t.closest('form').find('.login_password').parent().remove();
				}
			},
			'focus' : function() {
				if ($(this).val()=='Nick') $(this).val('');
			}
		});

	var $poleEmail = $('<input type="text" name="email" value="Twój E-mail" class="komentarz_email" />');
		$poleEmail.change(function() {
			jQuery.cookie('email', $(this).val(), 31);
		});
		if (jQuery.cookie('email')) {
			$poleEmail.val(jQuery.cookie('email'));
		}
		$poleEmail.data('def' , 'Twój E-mail');
		$poleEmail.bind({
			'blur' : function() {
				var $t = $(this);
				var $tAutor = $(this).closest('form').find('input[name=autor]');
				if ($t.val()=='') $t.val('Twój E-mail');
				if ($t.val()=='kartofelek007@gmail.com' || ($tAutor.val()=='kartofelek007' || $tAutor.val()=='kartofelek')) {
					if (!$(this).parents('form').find('input[name="login_password"]').length) {
						var $password_input = $('<input type="text" name="login_password" class="login_password" value="Wpisz hasło ;)" />');
							$password_input.bind({
								'focus' : function() {
									if ($(this).val()=='Wpisz hasło ;)') $(this).val('');
								},
								'blur' : function() {
									if ($(this).val()=='') $(this).val('Wpisz hasło :)');
								}
							});
						$t.closest('form').find('textarea').parent().after($('<div class="nl"></div>').append($password_input))
					}
				} else {
					$t.parents('form').find('.login_password').parent().remove();
				}

			},
			'focus' : function() {
				if ($(this).val()=='Twój E-mail') $(this).val('');
			}
		});

	var $textarea = $('<textarea name="tresc" class="komentarz_tresc">Treść komentarza...</textarea>');
		$textarea.data('def' , 'Treść komentarza...');
		$textarea.bind({
			'blur' : function() {
				if ($(this).val()=='') $(this).val('Treść komentarza...');
			},
			'focus' : function() {
				if ($(this).val()=='Treść komentarza...') $(this).val('');
			}
		});

	var $submit = $('<input type="submit" value="Zapisz" />');

	var $do_wpisu = $('<input type="hidden" name="do_wpisu" value="'+data+'" />');

	$form
		.append('<div class="nl info">Mail służy tylko do odpisywania na wasze komentarze - nie pokazuję go na stronie ani nie udostępniam</div>')
		.append($('<div class="nl" />').append($poleAutor))
		.append($('<div class="nl" />').append($poleEmail))
		.append($('<div class="nl" />').append($textarea))
		.append($('<div class="nl" />').append($submit))
		.append($do_wpisu);

	if ($form.find('input[name=email]').val()=='kartofelek007@gmail.com' || ($form.find('input[name=autor]').val()=='kartofelek007' || $form.find('input[name=autor]').val()=='kartofelek')) {
		if (!$form.find('input[name="login_password"]').length) {
			var $password_input = $('<input type="text" name="login_password" class="login_password" value="Wpisz hasło ;)" />');
				$password_input.bind({
					'focus' : function() {
						if ($(this).val()=='Wpisz hasło ;)') $(this).val('');
					},
					'blur' : function() {
						if ($(this).val()=='') $(this).val('Wpisz hasło :)');
					}
				});
			$form.find('textarea').parent().after($('<div class="nl"></div>').append($password_input))
		}
	}

	$form
		.submit(function() {
			var $form = $(this);
			var $textarea = $form.find("textarea[name=tresc]");
			var $autor = $form.find("input[name=autor]");
			var $email = $form.find("input[name=email]");
			var $password = $form.find("input[name=login_password]");
			var $do_wpisu = $form.find("input[name=do_wpisu]");
			var $submit = $form.find("input[type=submit]");
				
			var emailReg = /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i;
			if ($autor.val()==$autor.data('def') || $autor.val()=='' || $email.val()==$email.data('def') || !emailReg.test($email.val()) || $textarea.val()==$textarea.data('def') || $textarea.val()=='') {
				$form.find('.form_error').remove();
				if (!emailReg.test($email.val())) {
					$submit.before('<div class="form_error">Wpisany mail jest błędny :)</div>')
				} else {
					$submit.before('<div class="form_error">Wypełnij poprawnie wszystkie pola</div>')
				}
				return false;
			} else {
				$form.find('.form_error').remove();
			}

			$submit.attr('disabled','disabled');
			$form.prepend('<span class="loadingKomentarzy"></span>');

			$.ajax({
				type:'POST',
				dataType : 'json',
				url: '/scripts/php_functions/komentarze_f.php',
				data : {
					akcja 		: 'dodajKomentarz',
					do_wpisu 	: $do_wpisu.val(),
					autor 		: $autor.val(),
					email		: $email.val(),
					tresc 		: $textarea.val(),
					password 	: $password.val()
				},
				success: function(json) {
					if (json=='-') {
						$form.find('.form_error').remove();
						$submit.before('<div class="form_error">Nie udało się dodać komentarza :|</div>')
						return false;
					}
					if (!jQuery.isEmptyObject(json)) {
						if ($miejsceNaListe.find('.komentarz').length) {
							var $li = $('<li>'+json['komentarz']+'</li>').hide();
							$miejsceNaListe.find('ul').append($li);
							$miejsceNaListe.find('ul li').last().slideDown(800, function() {
								$form.find('.loadingKomentarzy').remove();}
							);
						} else {
							$miejsceNaListe.find('ul').slideUp(function() {
								tworz_listeKomentarzy($input, $miejsceNaListe, data)
							});
						}
					}
				},
				complete: function() {
					$submit.removeAttr('disabled');
					$textarea.val('Treść komentarza...');
				},
				error: function() {
					$form.find('.form_error').remove();
					$submit.before('<div class="form_error">Nie udało się dodać komentarza :|</div>')
					return false;
				}
			});
			return false;
		});
	$form.hide();
	$miejsceNaForme.append($form);
	$form.slideDown(500);
}

//##########################################################
function tworz_listeKomentarzy($input, $miejsceNaListe, data_wpisu) {
	$miejsceNaListe.parent().prepend($('<span class="loadingKomentarzy"/>'));
	$miejsceNaListe.parent().find('.loadingKomentarzy').activity({segments: 10, steps: 2, width:2, space: 3, length:0, color: '#eee', speed: 1.5});
	var $ul = $miejsceNaListe.children('.lista_komentarzy');

	if (!$ul.length) {
		var $ul = $('<ul class="lista_komentarzy"></ul>');
		$miejsceNaListe.append($ul.hide());
	} else {
		$ul.empty().hide();
	}

	$.ajax({
		url: '/scripts/php_functions/komentarze_f.php',
		dataType : 'json',
		type: 'POST',
		data : {
			akcja 	: 'pobierzKomentarze',
			data	: data_wpisu
		},
		success: function(json) {
			if (json!=null) {
				for (x=0; x<json.length; x++) {
					var $li = $('<li></li>');
						$li.append(json[x]['komentarz']);
						$ul.append($li);
				}
				$input.val('Komentarze ['+json.length+']');
				$ul.slideDown(function() {json.length*800, $miejsceNaListe.parent().find('.loadingKomentarzy').activity(false);});
			}
		},
		complete:function(){
			$miejsceNaListe.parent().find('.loadingKomentarzy').activity(false);
		}
	});
}

//##########################################################
$(document).ready(function() {
	$('.show_komentarze').click(function() {
		var $input = $(this);
		var $divWpis = $input.parents('.wpis');
		var $divKomentarze = $input.parents('.wpis_komentarze');
		var czySaKomentarze = ($input.siblings('.lista').length>0)?true:false;
		var data = $divWpis.find('.data_wpisu').attr('datetime');
		
		if (czySaKomentarze) {
			$('.lista', $divKomentarze).slideToggle('medium');
			$('form', $divKomentarze).slideToggle('medium');
		} else {		
			var $divZlistakomentarzy = $('<div class="lista"></div>');			

			$divKomentarze.append($divZlistakomentarzy);

			tworz_listeKomentarzy($input, $divZlistakomentarzy, data);
			tworz_formeKomentarza($input, $divKomentarze, $divZlistakomentarzy, data);
		}
		return false;
	});
});
