var NEXT_TEXT = '<!--next-->';
var MORE_TEXT = '<!--stop-->';

// CONSTANTS

var ajaxDir = templateDir + "/ajax";
var POST_PREFIX = "brief-";
var COMMENTS_PER_PAGE		= 15; // JVPHP

// bloki zawartości do niezależnie odświeżane
var POST ="post";
var GROUP="group";
var MONTH="month";
var COMMENTS="comments";


// i inne sposoby wpływania na listę video
var ALL = "all";
var SEARCH = "search";
var DATE = "date";

// kontrola zajawek
var briefCount = 0;
var currentGroup = ALL;
var currentBriefsOffset = 0;
var briefsForPage = 15;

// aktualny artykuł
var currentPost;
var currentUser;

// nawigacja kursora (focus)
var scrollTo = null;
var scrollPadding = 0;

/*
 * AJAX
 */

/*
 * AJAX videolist
 */

// przesuwanie zajawek
var maxPos=0;
var minPos;
var trailerHeight=90;
var actualpos;
var aimpos;
var sliding = false;
var border = true;

var briefEndPadding = 5; // ilość wideo zawsze widocznych (-1);

/*
setTimeout('startGA();', 500);
var pageTracker;
function startGA()
{

	try {
		var pageTracker = _gat._getTracker("UA-676308-11");
		pageTracker._setDomainName(".rafalmroczek.pl");
		pageTracker._trackPageview();
	} catch(err) {}
}
*/
/*
var pageTracker; 
try {
	pageTracker = _gat._getTracker("UA-676308-11");
	pageTracker._setDomainName(".rafalmroczek.pl");
	pageTracker._trackPageview();
} catch(err) {};
*/

//odbiera zdarzenia z odtwarzacza filmów
function videoeventlistener(event) {
	pageTracker._trackPageview('Odtwarzanie: ' + event.state);
	//alert('state: ' + event.state + ' file: ' + event.file);
}

// aktualizuj dostępność przycisków lewo / prawo
function updateVerticalNavigation() {		
	if (border) {
		// kliknięto gdy na granicy, stąd reset granicy.
		jQuery('#listUp').removeClass("inactive");
		jQuery('#listDown').removeClass("inactive");
		jQuery('#listUp').addClass("active");
		jQuery('#listDown').addClass("active");
		border = false;
	}
	if (aimpos >= maxPos) {			
		jQuery('#listDown').removeClass("active");
		jQuery('#listDown').addClass("inactive");			
		border = true;
	}
	if (aimpos <= minPos) {			
		jQuery('#listUp').removeClass("active");
		jQuery('#listUp').addClass("inactive");
		border = true;
	}
}

//aktualizuj dostępność przycisków góra / dół
function updateHorizontalNavigation() {
	
	// poprzednia strona zwiastunów
	if (currentBriefsOffset === 0) {
		jQuery('#prevBriefs').removeClass("active");
		jQuery('#prevBriefs').addClass("inactive");		
	} else {
		jQuery('#prevBriefs').removeClass("inactive");
		jQuery('#prevBriefs').addClass("active");		
	}
	
	// następna strona zwiastunów
	if (briefCount <= briefsForPage + currentBriefsOffset) {
		jQuery('#nextBriefs').removeClass("active");
		jQuery('#nextBriefs').addClass("inactive");		
	} else {
		jQuery('#nextBriefs').removeClass("inactive");
		jQuery('#nextBriefs').addClass("active");		
	}
}

// aktualizuj dostępność przycisków nawigacji zajawek
function updateNavigation() {
	updateVerticalNavigation();
	updateHorizontalNavigation();
}

// ustawienie kursora po zmianie grupy zajawek
function resetPosition(focusBriefNo) {	
	topElementNo = focusBriefNo - 2;
	if (topElementNo < 0)
		topElementNo = 0;
	
	actualpos=maxPos;
	if (empty(topElementNo)) {
		aimpos=maxPos;
	} else {
		aimpos = maxPos - topElementNo * trailerHeight;
	}
	
	// obliczenie minimalnej pozycji w pionie
	visibleBriefsCount = briefsForPage; 
	if (briefCount < briefsForPage + currentBriefsOffset) {
		visibleBriefsCount = briefCount -  currentBriefsOffset;
	}
	minPos = (briefEndPadding - visibleBriefsCount) * trailerHeight + maxPos;
	
	border=true;
	updateNavigation();		
	if (topElementNo != null) {
		//alert(aimpos + "\n" + maxPos + "\n" + topElementNo + "\n" + trailerHeight);
		initSlidingContent('videolist', 'set');
	}
}

// kursor na konkretnym elemencie
function scrollToElement(elementId) {
	scroll(0, document.getElementById(elementId).offsetTop + scrollPadding);
}

/* 
 * AJAX post & postflow
 */

/*
 * Parametry wywołań ajaxowych dopisywane ręcznie...
 */

var PARAMS_START	="<!--PARAMS_START ";
var PARAMS_END		=" PARAMS_END-->";
var PARAMS_DELIMETER = ",";

function clearParams(response) {
	cut = response.search(PARAMS_END);
	if (cut > -1) {
		return response.substring(cut + PARAMS_END.length);
	}
	return response;
}

function getParams(response) {	
	
	start = response.search(PARAMS_START);
	if (start > -1) {
		end = response.search(PARAMS_END);
		params = response.substring(start+PARAMS_START.length, end);
		params_array = params.split(PARAMS_DELIMETER);
		return params_array;
	} else {		
		return null;
	}
}

// wnętrze tagu XML
function disableXMLWrapping(text) {	
	start = text.search('>')+1;
	end = text.lastIndexOf('</')-2;
	result = text.substring(start, end);		
	return result;
}

// przypięcie linków do zajawek
function initVideoListLinks() {	
	jQuery('#videolist a.wholelink').click(function(){
		parentId=this.parentNode.parentNode.id;
		postId = parentId.substring(parentId.lastIndexOf('-')+1, parentId.length);
		getPost(postId, "videolist", true);	
	}); // na podstawie id;
	
	jQuery('#videolist a.imagelink').click(function(){
		parentId=this.parentNode.parentNode.parentNode.id;
		postId = parentId.substring(parentId.lastIndexOf('-')+1, parentId.length);
		getPost(postId, "videolist image", true);	
	}); // na podstawie id;
}

function initVideoLinks() {
    initVideoListLinks();
	jQuery('.postlink a').click(function(){
		parentId=this.parentNode.parentNode.id;
		from = parentId.substring(0, parentId.lastIndexOf('-'));
		postId = parentId.substring(parentId.lastIndexOf('-')+1, parentId.length);
		getPost(postId, from);
	}); // na podstawie id;
	
	jQuery('.recent-owner-comments li a').click(function(){		
		parentId=this.parentNode.parentNode.parentNode.id;
			postId = parentId.substring(parentId.lastIndexOf('-')+1, parentId.length);
		scrollTo = "commentlist";
					getPost(postId, "ownerComments", true);		
					    }); // na podstawie id;
}

/*
 * Przesuwanie zwiastunów
 */

function slideContent(containerId, direction) {
	sliding=true;
	slideSpeed=15;
	if (Math.abs(aimpos-actualpos)<20) {
		slideSpeed=4;
	}
	if (Math.abs(aimpos-actualpos)<5) {
		slideSpeed=1;
	}
	
	if (direction == 'set') {
		if (aimpos > actualpos) {
			direction = 'down';
		} else {
			direction = 'up';
		}
	}
	
	if(direction == 'up') {
		actualpos = actualpos - slideSpeed;
		if (actualpos<aimpos) {
			actualpos=aimpos;
			sliding=false;
		}
	}
	else if(direction == 'down') {
		actualpos = actualpos + slideSpeed;
		if (actualpos>aimpos) {
			actualpos=aimpos;
			sliding=false;
		}
	} 
		
	scrollingContent.style.top = actualpos + 'px';	
	if (actualpos!=aimpos) {
		timed = setTimeout('slideContent("' + containerId + '","' + direction + '")',30);
	} else {
		sliding=false;
	}
}

function initSlidingContent(containerId,dir) {
	scrollingContainer = document.getElementById(containerId);
	scrollingContent = scrollingContainer.getElementsByTagName('UL')[0];
	direction=dir;
	scrollingContainer.style.position = 'relative';
	scrollingContainer.style.overflow = 'hidden';
	scrollingContent.style.position = 'relative';
	
	if((direction == 'up')&&(aimpos > minPos)){		
		aimpos = aimpos - trailerHeight;				
	}

	if((direction == 'down')&&(aimpos < maxPos)){
		aimpos = aimpos + trailerHeight;
	}
	if (actualpos!=aimpos) {
		
		updateVerticalNavigation();
		slideContent(containerId, direction);
	}
}

function scrollContent() {
	if (scrollTo !== null) {
		scrollToElement(scrollTo);
		scrollTo = null;
	} else {
		scroll(0,0);
	}	
	scrollPadding = 0;
	
	// ustawienie odpowiedniego elementu z listy odtwarzania
	initSlidingContent('videolist', 'set');	
}

// odświeżenie kontentu
// DEPRECATED: lepiej używać procedury jQuery wprost.
// service	- doostawca kontentu
// type		- rodzaj przybywającego kontentu, determinuje obszary odświeżania
// 
function refreshContent(service, data, type, from, dontOverrideAjaxName)
{
	if (ajaxInProgress == type) {
		// szybkie klikanie
		return false;
	}
	
	var trackerPrefix;
	var focusBriefNo; // numer zajawki na którą będzie focus po odświeżeniu zawartości
	
	if (from) {
		trackerPrefix = "/" + from + "/";
	} else {
		trackerPrefix = "/";
	}
	
	var ajaxLoader = '<center><label class="ajax-loader"></label></center>';
		
	// artykuł
	function refreshPost(response) {	
		nextPos=response.search(NEXT_TEXT);		
		postContainer=disableXMLWrapping(response.substring(0,nextPos));			
		jQuery('#postcontainer').html(postContainer);
		initPSR();
		
		flow=disableXMLWrapping(response.substring(nextPos+NEXT_TEXT.length, response.length));
		jQuery('#optionalcontinuation').html(flow);
		scrollContent();
		pageTracker._trackPageview(trackerPrefix + "artykul-"+currentPost);		
	}
	
	// grupa zajawek
	function refreshGroup(response) {							
		// pobieranie ewentualnych parametrów
		if (params = getParams(response)) {
			briefNumber = params[0];
			// aktualizacja bieżącego wideo
			
		    focusBriefNo = briefNumber % briefsForPage;
			currentBriefsOffset = briefNumber - focusBriefNo;
			
			//alert(briefNumber + "\n" + currentBriefsOffset + "\n" + focusBriefNo);
			response = clearParams(response);
		}
		jQuery('#videolist').html(disableXMLWrapping(response));
		initVideoListLinks();
		// wczytanie ilości zwiastunów
		briefCount = jQuery('#brief_count').val();
		resetPosition(focusBriefNo);
		pageTracker._trackPageview(trackerPrefix+"nowagrupa");
	}
	
	// miesiąc w kalendarzu
	function refreshCalendar(response) {				
		jQuery('#calendar').html(disableXMLWrapping(response));		
		initCalendar();
		pageTracker._trackPageview(trackerPrefix+"zmiana-miesiaca");
	}
	
	// strona z komentarzami
	function refreshComments(response) {
		jQuery('#commentlist').html(response);
		updateCommentsNavigation();
		pageTracker._trackPageview(trackerPrefix+"komentarze");
	}
	
	var callback;
	var containerWithLoading;
	
	switch (type)
	{
	case POST:
		callback = refreshPost;
		containerWithLoading = '';
		break;
	case DATE:
		// podklasa "GROUP", nie ma "break"
		/* TODO focus na filmik po wyborze daty wylaczone		
		var date = data['date'];
		var searchDay = date.substring(date.lastIndexOf('-')+1, date.search(' '));				
		
		// znalezienie filmu z briefdate o szukanej dacie;
		var container = document.getElementById('videolist');		
		var briefs = container.getElementsByTagName('LI');
		var brief;		
		var postOrder = 0;
		
		for(var i=0; i < briefs.length; i++) {
			// szukanie daty
			date = briefs[i].getElementsByTagName('span')[0].innerHTML;
			day = date.substring(date.search(' ')+1, date.search(','));			
			if (day == searchDay) {	
				// przypisujemy numer zwiastuna, żeby przewinąć listę odpowiednio
				focusBriefNo = postOrder;
				break;
			}
			postOrder++;			
		}	
		*/
		
	case GROUP:
		callback = refreshGroup;
		containerWithLoading = '#videolist';
		break;
	case MONTH:		
		callback = refreshCalendar;		
		containerWithLoading = '';
		break;
	case COMMENTS:
		callback = refreshComments;
		containerWithLoading = '';
		break;
	default:	
		return false;
	}
	ajaxOn(type);
	jQuery.ajax({
		beforeSend: function() {
						if (containerWithLoading != '') {
							jQuery(containerWithLoading).html(ajaxLoader);
						}
					},
		type: 'GET',
		data: data,
		url: service,
		timeout: 10000,
		error: function() {},
		success: function(response) {ajaxOff();callback(response);}
	});
	
	// udało się odświeżyć;
	return true;
}

function setGroup(group) {
	
	if (group != currentGroup) {
		/*  usuwamy, przyciski zawsze można wciskać!
		jQuery('#group-' + currentGroup).toggleClass('currentGroup');
		jQuery('#group-' + group).toggleClass('currentGroup');
		*/
		currentGroup = group;
	}
}

/*
 * AJAX comments
 */

var currentCommentsPage = 1; // bieżąca strona komentarzy
var commentsMaxPage; // ilość stron z komentarzami

// wczytanie komentarzy
function getComments(dontOverrideAjaxName) {
	data={'page': currentCommentsPage, 'postId': currentPost};
	from = "comments"+currentCommentsPage;
	refreshContent(ajaxDir + '/getComments.php', data, COMMENTS, from, dontOverrideAjaxName);
}

// najnowsze komentarze do artykułu
function firstComments(dontOverrideAjaxName) {
	currentCommentsPage = 1;	
	getComments(dontOverrideAjaxName);
}

// poprzednia strona z komentarzami
function prevComments() {
	if (currentCommentsPage > 1) {
		currentCommentsPage -= 1;
		getComments();
	}
}

// następna strona z komentarzami
function nextComments() {	
	if (currentCommentsPage < commentsMaxPage) {
		currentCommentsPage += 1;
		getComments();
	}
}

function refreshComments() {
	firstComments();
}

// callback po dodaniu nowego komentarza
function commentSent(data) {	
	document.getElementById('commentcontent').value = '';
	setTimeout('refreshComments()', 2000);
}

// wysyłanie komentarza
function sendComment(author, commentContent, postId, sessionEmail) {
	jQuery.post(wpDir + "/wp-comments-post.php", { author: author, comment: commentContent, comment_post_ID: postId, email: sessionEmail}, commentSent());
	pageTracker._trackPageview("/komentarz!");
}

//przypięcie akcji pod formularz z komentarzem
function initCommentsButtons() {
	jQuery('#commentform').submit(function () {
		var newCommentAuthor = jQuery(this.author).val();
		var newComment = jQuery(this.commentcontent).val();
		var sessionEmail = jQuery(this.email).val();
		
		if (!empty(newCommentAuthor) && !empty(newComment)) {
			sendComment(newCommentAuthor, newComment, currentPost, sessionEmail);
			previewHidden = true;
			updateLivePreview();
		}
		return false;			
	});
	
	jQuery('#prevcomments').click(function() {
		prevComments();
	});		
	
	jQuery('#nextcomments').click(function() {
		nextComments();
	});	
}

function updateCommentsNavigation() { 
	commentsCount = jQuery('#comments_count').val();
	if (empty(commentsCount)) {
		commentsCount = 0;
	}
	commentsMaxPage = Math.ceil(commentsCount / COMMENTS_PER_PAGE);	
	// aktualizacja licznika 
	jQuery('#commentsnumber').html(commentsCount);
	
	nextCommentsButton = jQuery('#nextcomments');
	if (commentsMaxPage > currentCommentsPage) {	
		nextCommentsButton.removeClass('inactive');
		nextCommentsButton.addClass('active');
	} else {
		nextCommentsButton.removeClass('active');
		nextCommentsButton.addClass('inactive');
	}

	prevCommentsButton = jQuery('#prevcomments');
	if (currentCommentsPage > 1) {		
		prevCommentsButton.removeClass('inactive');
		prevCommentsButton.addClass('active');
	} else {
		prevCommentsButton.removeClass('active');
		prevCommentsButton.addClass('inactive');
	}
}

function initCommentsBlock() {
	initCommentsButtons();
	updateCommentsNavigation();
}

// artykuły w okolicy zadanej daty
function getFromDate(date) {
	data={'date': date};	
	from=date.substring(0, date.indexOf(' '));
	refreshContent(ajaxDir + '/getPostsFromDate.php', data, DATE, from);
	setGroup(DATE);
	//setGroup(ALL);
}

// podczepienie akcji pod kalendarz
function initCalendar() {		
	jQuery('.day-calendar').click(function() {
		getFromDate(this.id.substring(this.id.search('-')+1, this.id.length) + " 00:00:00");
	});	
}

function empty(variable) {
	return !variable || variable=="";
}

// zmiana grupy zajawek
function changeGroup(group, offset) {	
    if (empty(offset)) {
	    offset = 0;
		}
		    if (group == currentGroup && currentBriefsOffset == offset) {
			    return;		
				}					
					
					    data={'groupID': group, 'offset': offset};
						from = group;
						    if (refreshContent(ajaxDir + '/getGroup.php', data, GROUP, from)) {
							    // aktualizujemy stan 
								    setGroup(group);
									    currentBriefsOffset = offset;
										}
										}

// pokazanie oglądanej zajawki
// now - czy od razu, czy tylko ustawienie pozycji docelowej
function focusOnPost(postId, now) {
	currentBrief = document.getElementById(POST_PREFIX+postId);
	if (currentBrief === null) {
		return;
	}
	
	var container = document.getElementById('videolist');	
	var briefs = container.getElementsByTagName('LI');	
	var brief;
	var postOrder = 0;
	var focusBriefNo = 0;
	for (brief in briefs) {	
		if (briefs[brief].id) { // zabezpieczenie przed wzieciem nieprawidlowych elementów
			if (POST_PREFIX+postId == briefs[brief].id) {
				focusBriefNo = postOrder;
				break;
			} else {
				postOrder++;
			}
		}
	}
	
	// focus ustawiamy na środku, czyli przewijamy do filmiku o 2 w gore
	    focusBriefNo = focusBriefNo - 2;
		if(focusBriefNo < 0) {
			focusBriefNo = 0;
			    }
	
	aimpos = maxPos - focusBriefNo * trailerHeight;	
	if (now) {
		initSlidingContent('videolist', 'set');
	}
}

// wczytanie artykułu do obejrzenia
// now - kiedy ustawić bieżącą zajawkę, przed załadowaniem posta czy po. 
function getPost(postId, from, now) {	
	if (now !== true) {
		now = false;
	}
	
	data={'postId': postId};
	if (refreshContent(ajaxDir + '/getPost.php', data, POST, from)) {
		// jeśli odświeżanie jest w toku (nie jest to spam itp.), odświeżamy pozostałe fragmenty
	setCurrentPost(postId);	
		firstComments(true);
	focusOnPost(postId, now);		
}
}

// ustawienie meta danych przy zmianie posta
function setCurrentPost(postId) {
	jQuery('#' + POST_PREFIX + currentPost).removeClass("currentpost");	
	currentPost=postId;
	jQuery('#' + POST_PREFIX + currentPost).addClass("currentpost");
}

// ustawienie kursora na konkretnym komentarzu 
function focusOnComment(commentId, postId) {
	commentIdAttr = 'div-comment-' + commentId;
	scrollPadding=-200;
	scrollTo=commentIdAttr;
	getPost(postId);
}

// zmiana miesiąca w kalendarzu
function changeMonth(year, month) {		
	data={'year': year, 'month': month};	
	from=year+"miesiac"+month;
	refreshContent(ajaxDir + '/getCalendar.php', data, MONTH, from);
}

// zmiana grupy zajawek zgodnie z rezultatem wyszukiwania 
function getSearchResults(searchFraze) {
	data={'searchfraze': searchFraze};
	from="search"+searchFraze;
	refreshContent(ajaxDir + '/getSearchResults.php', data, GROUP,from);
	setGroup(SEARCH);
}

// następne zajawki w grupie 
function nextBriefs() {
	if (currentBriefsOffset + briefsForPage < briefCount) {
		// są następne						
		changeGroup(currentGroup, currentBriefsOffset + briefsForPage);
		
	}
}

// poprzednie zajawki w grupie
function prevBriefs() {
	if (currentBriefsOffset > 0) {
		// są następne
		changeGroup(currentGroup, currentBriefsOffset - briefsForPage);
	}
}

/*
 * Przesuwanie komentarzy
 */

var moving = false;

function slidedown(objname) {
	var obj = jQuery("#"+objname);
	obj.css("display", "block");
	obj.animate({ 
        height: "40px"                
      }, 500 , "linear", function() {
    	  obj.css("height", "100%");
      	} 
	);
}

function slideup(objname) {
	var obj = jQuery("#"+objname);
	obj.animate({ 
        height: "0px"
      }, 500, "linear", function() {
    	  obj.css("display", "none");
      	}) 
      ;
}

var previewHidden = true; // czy zasłoniety jest podgląd komentarza

 function updateLivePreview() {
	var newComment = document.getElementById('commentcontent').value;
	var newCommentAuthor = document.getElementById('author').value;
	
	var commentSubmit = jQuery("#commentsubmit");
	if(!newCommentAuthor || empty(newComment)) {		
		slideup('comment-preview');		
		commentSubmit.removeClass("active");;
		commentSubmit.addClass("inactive");
		previewHidden = true;
		return;
	}
	
	if (newComment) {
		commentSubmit.removeClass("inactive");;
		commentSubmit.addClass("active");
	}
	
	var name;
	if(newCommentAuthor) {
		name = '<b>' + newCommentAuthor + '</b>';
	} else {
		name = "<b>Gość</b>";
	}
	
	var wd = ["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"];
	
	var today=new Date();
	var h=today.getHours();
	var m=today.getMinutes();
	var y=today.getFullYear();
	var M=wd[today.getMonth()];
	var d=today.getDate();
		
	if (m<10) {
		m="0" + m;
	}
	//var previewHeader = name + " napisał " + M + " " + d + ", " + y + " o " + h + ":" + m + ":";
	var previewHeader = name + " napisał o " + h + ":" + m + ":";
	var previewFormat =name+"<span class=\"meta\"> on " + M + " " + d + ", " + y + " at " + h + ":" + m + "</span><br />" + newComment; 
	
	document.getElementById('comment-preview').getElementsByTagName('DIV')[0].innerHTML = previewHeader;
	document.getElementById('comment-preview').getElementsByTagName('DIV')[2].innerHTML = newComment;
	
	if (previewHidden) {
		previewHidden = false;		
		slidedown('comment-preview');
	}
}



/**
 * CYKLICZNE OPERACJE
 */
 
/*
function twoDigits(number) {
	// TODO nie działa
	if (number.length < 2) {
		return "0" + number;
	} else {
		return number;
	}	
}
 
function formatCountDown(hours, minutes, seconds) {
	
	return twoDigits(hours) +":"+twoDigits(minutes)+":"+twoDigits(seconds);
}
 
function getHours(time) {
	return time.substring(0, time.search(':'));
}

function getMinutes(time) {
	return time.substring(time.search(':')+1, time.lastIndexOf(':'));
}

function getSeconds(time) {
	return time.substring(time.lastIndexOf(':')+1, time.length);
}
 
function takeHour(time) {
	hours = getHours(time);
	hours--;		
	return formatCountDown(hours, getMinutes(time), getSeconds(time));
}

function takeMinute(time) {
	minutes =  getMinutes(time);
	minutes--;
	var newTime = time;
	if (minutes < 0) {
		minutes = 59;
		newTime = takeHour(time);
	}
	return formatCountDown(getHours(newTime), minutes, getSeconds(newTime));
}
 
function takeSecond(time) {		
	seconds = getSeconds(time);
	seconds--;
	newTime = time;
	if (seconds == 0) {
		seconds = 59;
		newTime = takeMinute(time);
	};
	return formatCountDown(getHours(newTime), getMinutes(newTime), seconds);
}
 
function updateCountDown() {
	var time = jQuery('#countdown').text();
	time = takeSecond(time);
	jQuery('#countdown').text(time);
}
 
function initCountDown() {
	var deadline = new Date(2009, 11, 14, 21, 40);		
	var today = new Date();

	var difference = deadline.getTime()-today.getTime();
	var minute=1000*60;//*60*24;	
	
	var minutesDifference;
	if (difference > 0) {
		hourDifference = Math.ceil(difference/(1000 * 60 * 60));
		minutesDifference = Math.ceil(difference/(1000 * 60) % 60);	
		secondDifference = Math.ceil(difference/(1000)  % 60);
	} else {
		hourDifference = 0;
		minutesDifference = 0;
		secondDifference = 0;
	}
	
	jQuery('#countdown').text(twoDigits(hourDifference) + ":" + twoDigits(minutesDifference) + ":" + twoDigits(secondDifference));
	setInterval('updateCountDown()', 1000);
}
*/
 
var cyclicTimer;

// natychmiastowe wczytanie danych bieżących i ustawienie timeout;
function refreshNow() {
	if (cyclicTimer) {
		clearTimeout(cyclicTimer);
	}
	refreshContent(ajaxDir + '/getLatestForumPosts.php', {}, FORUM_LATEST);
	
	
	cyclicTimer = setTimeout('refreshNow()', 180000); 
}
	

/*
 * Kontrolowanie ilości wywołań ajaxowych do serwera
 */

var ajaxInProgress = false;
var ajaxTimeout; 

function ajaxOn(name, timeout) {
	if (!name)
		name = "default";
	if (!timeout)
		timeout = 5000;
	ajaxTimeout = setTimeout('ajaxOff', timeout);
	if (!ajaxInProgress) {
		// czasami jednym kliknięciem odpala się kilka akcji ajaxowych. Zostawiamy pierwszą nazwę. 
		ajaxInProgress = name;
	}
}

function ajaxOff() {
	clearTimeout(ajaxTimeout);	
	ajaxInProgress = false;
}

/* 
 * INIT
 */
jQuery(document).ready(function() {	
	szukajvalue = "Szukaj...";
	
	
	currentUser = jQuery('#author').val();
	briefCount = jQuery('#brief_count').val();	
	setCurrentPost(jQuery('#comment_post_ID').val());
	
	initCommentsBlock();
	initVideoLinks();
	initCalendar();
	
	jQuery('#toplink').click(function () {		
		getPost(352, "toplink", true);		
	});
	
	
	jQuery('#group-' + currentGroup).click(function() {
		javascript:changeGroup(ALL);
	});
	
	jQuery('#searchform').submit(function () {
		searchFraze = document.getElementById('searchfraze').value;
		if ((searchFraze != szukajvalue) && (searchFraze != '')) {
			getSearchResults(searchFraze);
		};
		return false;			
	});
	
	jQuery('#group-search').click(function () {		
		jQuery('#searchform').submit();
	});
	
	searchFrazeJQ = jQuery('#searchfraze');
	
	searchFrazeJQ.focus(function () {
		if (szukajvalue==this.value) {
			searchFrazeJQ.val("");
		}
	});
	
	searchFrazeJQ.blur(function () {
		if (""==this.value) {
			searchFrazeJQ.val(szukajvalue);
		}
	});
	
	jQuery('#listDown').click(function () {		
		initSlidingContent('videolist','down');
	});
	jQuery('#listUp').click(function () {		
		initSlidingContent('videolist','up');
	});
	jQuery('#prevBriefs').click(function () {		
		prevBriefs();
	});
	jQuery('#nextBriefs').click(function () {		
		nextBriefs();
	});
	
	resetPosition();	
	
	//poprawka forum bloga 
	// TODO zastanowić się nad mechaniką linków (na osobnej karcie, co o gdzie linkuje
	//jQuery('.widget_rss h4').html("Forum bloga");
	//jQuery('.widget_rss h4 a:first').remove();
	
	
	//cyclicTimer = setTimeout('refreshNow()', 180000); 	 
});