var ajax_waiting = false; //czy uzytkownik juz czeka na odpowiedz serwera
var comment_page_regex = new RegExp("comment_page=([0-9]+)");
var target_c_member_id_regex = new RegExp("(target_c_member_id=|profil/)([0-9]+)");
var target_c_commu_id_regex = new RegExp("(target_c_commu_id=|spolecznosc/)([0-9]+)");
var comment_page_url = "";

jQuery(document).ready(function(){
	// Wylapanie zdarzenia ajaxSuccess
	jQuery("#last_comments").bind("ajaxSuccess", function () {
		ajax_waiting = false;
	});

	jQuery("#last_comments").bind("ajaxError", function () {
		if (ajax_waiting)
			alert("Wystąpił błąd podczas pobierania komentarzy. Spróbuj ponownie za kilka minut");
		ajax_waiting = false; //przy bledzie zapominamy, ze uzytkownik cos kliknal
	});
	
	// Wyświetlenie/ukrycie formularza do dodania nowego komentarza	
	jQuery("#add_comment_show").css("display", "block");
	jQuery("#add_comment_form").css("display", "none");	
	jQuery("#add_comment_show").click(function(){
		if (jQuery("#add_comment_show a").attr("class") == "look_back"){
			//jQuery("#add_comment_form").slideUp("fast");
			jQuery("#add_comment_form").hide();
			jQuery("#add_comment_show a").attr("class", "look");
			jQuery("#add_comment_show a span").text("Dodaj");			
		}else{
			//jQuery("#add_comment_form").slideDown("fast");
			jQuery("#add_comment_form").show();
			jQuery("#add_comment_show a").attr("class", "look_back");
			jQuery("#add_comment_show a span").text("Anuluj");
		}
		return false;		
	});

	jQuery("#add_comment_perform").click(function(){		
		comment_content = jQuery("#comment_content").val();
		if (comment_content.length==0){
			alert("Wpisz treść komentarza!");
			return false;	
		}else{
			ajax_waiting = true;
			jQuery("#add_comment_form").hide();
			jQuery("#last_comments_list").prepend('<li><img src="'+URL_TO_ROOT+'gfx/img/ajax_loader.gif" alt="Dodaje komentarz..." /></li>');
			
			jQuery("#add_comment_show a").attr("class", "look");
			jQuery("#add_comment_show a span").text("Dodaj");			
			jQuery("#comment_content").val("");
			
			target_c_member_id = jQuery("#target_c_member_id").val();
			ajax_url = turl({a: 'page_f_home_add_comment_ajax', comment: encodeURI(comment_content), target_c_member_id: target_c_member_id, ajax: 1});
			jQuery.get(ajax_url, function(content){				
				url = turl({a: 'page_f_home', target_c_member_id: target_c_member_id, comment_page: 1});
				comment_load_page_by_url(url);		
			});
			return false;
		}
	});
	
	jQuery("#add_commu_comment_perform").click(function(){		
		comment_content = jQuery("#comment_content").val();
		if (comment_content.length==0){
			alert("Wpisz treść komentarza!");
			return false;	
		}else{
			if ( jQuery('#pc_page_c_home').length == 1 )
			{
				ajax_waiting = true;
				jQuery("#add_comment_form").hide();
				jQuery("#last_comments_list").prepend('<li><img src="'+URL_TO_ROOT+'gfx/img/ajax_loader.gif" alt="Dodaje komentarz..." /></li>');
				
				jQuery("#add_comment_show a").attr("class", "look");
				jQuery("#add_comment_show a span").text("Dodaj");			
				jQuery("#comment_content").val("");
				
				target_c_commu_id = jQuery("#target_c_commu_id").val();
				sessid = jQuery('#sessid').val();
				ajax_url = turl({a:'do_c_home_add_comment', sessid:sessid, target_c_commu_id:target_c_commu_id, comment:encodeURI(comment_content), ajax:1});
				jQuery.get(ajax_url, function(content){
					jQuery('#c_commu_comment_count').text(parseInt(jQuery('#c_commu_comment_count').text())+1);
					jQuery('#c_commu_rate_user_available').text('1');				
					url = turl({a: 'page_c_home', target_c_commu_id: target_c_commu_id, comment_page: 1});
					commu_comment_load_page_by_url(url);		
				});
			}
			else
			{
				window.location = turl({a: 'page_o_login', msg:69});
			}
			return false;			
		}
	});
	
	if ( jQuery('#pc_page_f_home').length == 1 )
	{
		// Stronicowanie do tyłu
		jQuery("#last_comm_prev").click(function(){
			comment_change_page("prev");
			return false;
		});
		
		// Stronicowanie do przodu
		jQuery("#last_comm_next").click(function(){
			comment_change_page("next");
			return false;
		});
	}
	else if ( jQuery('#pc_page_c_home').length == 1 )
	{
		// Stronicowanie do tyłu
		jQuery("#last_comm_prev").click(function(){
			commu_comment_change_page("prev");
			return false;
		});
		
		// Stronicowanie do przodu
		jQuery("#last_comm_next").click(function(){
			commu_comment_change_page("next");
			return false;
		});
	}
});

/**
 * Symuluje kliknięcie w przycisk następna/poprzednia strona z komentarzami
 * @param direction -- 'prev' lub 'next'
 */
function comment_change_page(direction){
	url = jQuery("#last_comm_"+direction).attr("href");
	if (!url || url==comment_page_url) return false;
	
	comment_load_page_by_url(url);
}

function commu_comment_change_page(direction){
	url = jQuery("#last_comm_"+direction).attr("href");
	if (!url || url==comment_page_url) return false;
	
	commu_comment_load_page_by_url(url);
}

/**
 * Wczytuje stronę z komentarzami
 */
function comment_load_page_by_url(url){
	ajax_waiting = true;
	comment_page_url = url;

	comment_page_match = url.match(comment_page_regex);
	comment_page = comment_page_match ? parseInt(comment_page_match[1]) : 0;
	target_c_member_id = parseInt(comment_page_url.match(target_c_member_id_regex)[2]);
	
	url = turl({m:'pc',a:'page_f_home_ajax_profile_comment',target_c_member_id:target_c_member_id,comment_page:comment_page,ajax:1});
	
	jQuery.get(url, function(content) {
		if (content == "session_expired") window.location.reload();
		else{
			var prev = content[0];
			var next = content[1];
			content = content.substring(2);
			
			jQuery("#last_comments_list").html(content);
			comment_update_urls(prev, next);
		}
	});	
}

function commu_comment_load_page_by_url(url){
	ajax_waiting = true;
	comment_page_url = url;

	comment_page_match = url.match(comment_page_regex);
	comment_page = comment_page_match ? parseInt(comment_page_match[1]) : 0;
	target_c_commu_id = parseInt(comment_page_url.match(target_c_commu_id_regex)[2]);
	
	url = turl({m:'pc',a:'page_c_home_ajax_commu_comment',target_c_commu_id:target_c_commu_id,comment_page:comment_page,ajax:1});
	
	jQuery.get(url, function(content) {
		if (content == "session_expired") window.location.reload();
		else{
			var prev = content[0];
			var next = content[1];
			content = content.substring(2);
			
			jQuery("#last_comments_list").html(content);
			commu_comment_update_urls(prev, next);
		}
	});	
}

/**
 * Uaktualnia przyciski następna/poprzednia strona z komentarzami w zależności czy są następne/poprzednie komentarze
 */
function comment_update_urls(prev, next){
	comment_page = parseInt(comment_page_url.match(comment_page_regex)[1]);
	target_c_member_id = parseInt(comment_page_url.match(target_c_member_id_regex)[2]);

	if (next == "1"){
		jQuery("#last_comm_next").removeClass("inactive");
		jQuery("#last_comm_next").attr("href", turl({a: 'page_f_home', target_c_member_id: target_c_member_id, comment_page: (comment_page+1)}));					
	}else{
		jQuery("#last_comm_next").addClass("inactive");
		jQuery("#last_comm_next").attr("href", "");
	}

	if (prev == "1"){
		jQuery("#last_comm_prev").removeClass("inactive");
		jQuery("#last_comm_prev").attr("href", turl({a: 'page_f_home', target_c_member_id: target_c_member_id, comment_page: (comment_page-1)}));							
	}else{		
		jQuery("#last_comm_prev").addClass("inactive");
		jQuery("#last_comm_prev").attr("href", "");
	}
}

function commu_comment_update_urls(prev, next){
	comment_page = parseInt(comment_page_url.match(comment_page_regex)[1]);
	target_c_commu_id = parseInt(comment_page_url.match(target_c_commu_id_regex)[2]);

	if (next == "1"){
		jQuery("#last_comm_next").removeClass("inactive");
		jQuery("#last_comm_next").attr("href", turl({a: 'page_c_home', target_c_commu_id: target_c_commu_id, comment_page: (comment_page+1)}));					
	}else{
		jQuery("#last_comm_next").addClass("inactive");
		jQuery("#last_comm_next").attr("href", "");
	}

	if (prev == "1"){
		jQuery("#last_comm_prev").removeClass("inactive");
		jQuery("#last_comm_prev").attr("href", turl({a: 'page_c_home', target_c_commu_id: target_c_commu_id, comment_page: (comment_page-1)}));							
	}else{		
		jQuery("#last_comm_prev").addClass("inactive");
		jQuery("#last_comm_prev").attr("href", "");
	}
}
