(function($){
	var
	comment_post_form = '#comment-post-form input, #comment-post-form textarea',
	comment_edit_form = '#comment-edit-form input, #comment-edit-form textarea',
	ajax_loading = '<div id="ajax-loading"></div>';

	function is_numeric(mixed_var){
		return (typeof(mixed_var) === 'number' || typeof(mixed_var) === 'string') && mixed_var !== '' && !isNaN(mixed_var);
	}

	$.fn.comment_pagination = function(){
		if($('#comment-edit').get(0)){
			alert('Nie możesz przejść do innej strony w trakcie edycji komentarza.');
			return false;
		}

		var
		href = this.attr('href').substr(7).split('#'),
		kom_id = this.attr('rel').split(' ')[1].substr(3),
		kom_typ = this.attr('rel').split(' ')[0].substr(14),
		dane = href[0].split('/');

		if(is_numeric(dane[dane.length-1])){
			var strona = dane[dane.length-1];
			delete dane[dane.length-1];
		}
		else{
			var strona = 0;
		}
		var link = dane.join('/');
		if(/\/$/.test(link)){
			var link = link.replace(/\/$/, '');
		}
		var link = 'http://'+link;

		$('#comments').append(ajax_loading);

		$.post('/ajax.php', { modul: 'komentarze', operacja: 'przeladuj', kom_id: kom_id, kom_typ: kom_typ, link: link, strona: strona }, function(reloaded){
			if($.browser.msie){
				$('#comments').empty().append(reloaded);
			}
			else{
				$('#comments').fadeTo(200, 0, function(){
					$('#comments').empty().append(reloaded).fadeTo(200, 1);
				});
			}
			window.location.hash = 'komentarze';
		});
	};

	$.fn.comment_delete = function(){
		$('#comment-delete-error').fadeOut().remove();

		var
		kom_id = this.attr('href').substr(1),
		dd = this.parents('dt').next(),
		span = this.parent();

		$.post('/ajax.php', { modul: 'komentarze', operacja: 'usun', kom_id: kom_id }, function(result){
			if(/\[skasowano\]/.test(result)){
				var result = result.replace(/\[skasowano\]/, '');
				if($.browser.msie){
					dd.empty().append(result);
				}
				else{
					dd.fadeTo(200, 0, function(){
						dd.empty().append(result).fadeTo(200, 1);
					});
				}
				span.fadeOut();
			}
			else{
				dd.prepend('<div id="comment-delete-error">'+result+'</div>');
				$('#comment-delete-error').fadeIn();
			}
		});
	};

	$.fn.comment_delete_complete = function(){
		$('#comment-delete-error').fadeOut().remove();

		var
		kom_id = this.attr('href').substr(1),
		dd = this.parents('dt').next(),
		comment_container = this.closest('div').parent(),
		span = this.parent();

		$.post('/ajax.php', { modul: 'komentarze', operacja: 'skasuj', kom_id: kom_id }, function(result){
			if(/\[skasowano\]/.test(result)){
				var result = result.replace(/\[skasowano\]/, '');
				comment_container.fadeOut();
			}
			else{
				dd.prepend('<div id="comment-delete-error">'+result+'</div>');
				$('#comment-delete-error').fadeIn();
			}
		});
	};

	$.fn.comment_edit = function(){
		if($('#comment-edit').get(0)){
			alert('Aby edytować kolejny komentarz musisz zapisać obecnie otwarty.');
			return false;
		}
		var
		kom_id = this.attr('href').substr(1),
		dd = this.parents('dt').next();
		$.post('/ajax.php', { modul: 'komentarze', operacja: 'edytuj', kom_id: kom_id }, function(editor){
			$(comment_post_form).attr('disabled', true);
			if($.browser.msie){
				dd.empty().append(editor);
			}
			else{
				dd.fadeTo(200, 0, function(){
					dd.empty().append(editor).fadeTo(200, 1);
				});
			}
		});
	};

	$.fn.comment_edit_submit = function(){
		$(comment_edit_form).attr('disabled', true);
		$('#comment-edit-loading').fadeIn();

		var
		dd = this.parents('dd'),
		kom_id = $('input[name=comment-edit-id]').val(),
		kom_typ = $('input[name=comment-edit-type]').val(),
		kom_tresc = $('textarea[name=comment-edit-text]').val(),
		redirect = $('input[name=comment-edit-redirect]').val();

		$.post('/ajax.php', { modul: 'komentarze', operacja: 'zapisz', kom_id: kom_id, kom_typ: kom_typ, kom_tresc: kom_tresc }, function(data){
			$('#comment-edit-loading').fadeOut();

			if(/\[zapisano\]/.test(data)){
				var data = data.replace(/\[zapisano\]/, '');
				if($.browser.msie){
					dd.empty().append(data);
				}
				else{
					dd.fadeTo(200, 0, function(){
						dd.empty().append(data).fadeTo(200, 1);
					});
				}
				$(comment_post_form).attr('disabled', false);
			}
			else{
				$('#comment-edit-error').empty().append(data).fadeIn();
				$(comment_edit_form).attr("disabled", false);
			}
		});
	};

	$.fn.comment_post_submit = function(){
		$(comment_post_form).attr('disabled', true);
		$('#comment-post-loading').fadeIn();

		var
		kom_id = $('input[name=comment-post-id]').val(),
		kom_typ = $('input[name=comment-post-type]').val(),
		kom_tresc = $('textarea[name=comment-post-text]').val(),
		redirect = $('input[name=comment-post-redirect]').val();

		$.post('/ajax.php', { modul: 'komentarze', operacja: 'dodaj', kom_id: kom_id, kom_typ: kom_typ, kom_tresc: kom_tresc }, function(data){
			$('#comment-post-loading').fadeOut();
			if(data == 'dodano'){
				$('#comment-post-error').fadeOut();
				var dane = redirect.substr(7).split('/');
				if(is_numeric(dane[dane.length-1])){
					delete dane[dane.length-1];
				}
				var link = dane.join('/');
				var forward_slash_test = /\/$/.test(link);
				if(forward_slash_test){
					var link = link.replace(/\/$/, '');
				}
				var link = 'http://'+link;

				window.location.hash = 'komentarze';

				$.post('/ajax.php', { modul: 'komentarze', operacja: 'przeladuj', kom_id: kom_id, kom_typ: kom_typ, link: link, strona: 0 }, function(reloaded){
					$('#comments').fadeTo(200, 0, function(){
						$('#comments').empty().append(reloaded).fadeTo(200, 1);
					});
				});

				$('#comment-post-form textarea').val('');
				$(comment_post_form).attr("disabled", false);
			}
			else{
				$('#comment-post-error').empty().append(data).fadeIn();
				$(comment_post_form).attr("disabled", false);
			}
		});
	};
})(jQuery);
