var i=0;
var curr_img = 0;
var prev_stack = [];
var next_stack = [];
var size = 2;
var time_to_fade = 200.0;
var loaded = 1;

var MAX_PER_ROW = 5;
var curr_thumb = 0;
var thumb_busy = false;

 var RecaptchaOptions = {
    theme : 'white',
                custom_translations : {
                        instructions_visual : "Przepisz tekst z obrazka:",
                        instructions_audio : "Napisz usłyszane słowa",
                        play_again : "Odtwórz ponownie",
                        cant_hear_this : "Odtwórz w formacie mp3",
                        visual_challenge : "Test vizualny",
                        audio_challenge : "Test audio",
                        refresh_btn : "Nowy test",
                        help_btn : "Pomoc",
                        incorrect_try_again : "Błąd, spróbuj ponownie",
                },
                lang : 'pl'
 };

function init() {
	if (document.getElementById('text') && document.getElementById('text_count')) checkLimit(300);
	if (document.getElementById('size_config')) startGallery();
	$($(".article_content>p").get(0)).addClass("first_p");
} 

function checkLimit(max) {
	var l = document.getElementById('text').value.length
	if (l > max) {
		document.getElementById('text').value = document.getElementById('text').value.substr(0, max);
		l = max;
	}
	document.getElementById('text_count').innerHTML = max - l;
	setTimeout("checkLimit(" + max + ")",500);
}

function navigateThumbs(i) {
	if (thumb_busy) return;
	thumb_busy = true;
	if (curr_thumb + i < 0)
		i = -curr_thumb;
	else if (curr_thumb + i >= $(".thumbnail").length - MAX_PER_ROW)
		i = $(".thumbnail").length - MAX_PER_ROW - curr_thumb;
		
	if (i) {
		curr_thumb += i;
	
		$(".thumbnail:visible").fadeOut(400, 
			function() {
				if ($(".thumbnail").filter(":animated").length == 1 || $(".thumbnail").filter(":animated").length == 0) {
					$(".thumbnail").slice(curr_thumb, curr_thumb + MAX_PER_ROW).fadeIn(700,
						function() {
							thumb_busy = false;
							if (curr_thumb == 0)
								$("#album_prev").hide();
							else
								$("#album_prev").show();	
							if (curr_thumb == $(".thumbnail").length - MAX_PER_ROW)	
								$("#album_next").hide();
							else
								$("#album_next").show();
						}
					);
				}
			}
		);
	}
	
}


function changePhoto(i) {
	$($(".thumbnail a").get(i)).attr("href").replace(/zdjecie-[0-9]+-([0-9]+).*/, '\1');
}


// STARA GALERIA
function next() {
	if (i > pic.length - 5) return;
	pic[i].style.display = "none";
	pic[i+1].style.display = "none";
	pic[i+2].style.display = "none";
	i+=3;
	
	document.getElementById('album_prev').style.visibility = "visible";
	if (i > pic.length - 5) document.getElementById('album_next').style.visibility = "hidden";
}

function prev() {
	pic[i].style.display = "block";
	if (i-1 >= 0) pic[i-1].style.display = "block";
	if (i-2 >= 0) pic[i-2].style.display = "block";
	if (i-3 >= 0) pic[i-3].style.display = "block";
	i-=3;
	document.getElementById('album_next').style.visibility = "visible";
	if (i <= 0) {
		document.getElementById('album_prev').style.visibility = "hidden";
		i=0;
	}
}

function setImg(img) {	
	if (img < 0 || img >= pic.length || !mainimg.complete || curr_img == img) return;
	mainimg.src = "script/resize_img.php?w=550&id=" + info[img].value;
	link.href = "script/open_img.php?id=" + info[img].value;
	document.getElementById('overlay').style.visibility = "visible";
	curr_img = img;
	
	if (curr_img == 0) document.getElementById('image_prev').style.visibility = "hidden";
	else document.getElementById('image_prev').style.visibility = "visible";
	
	if (curr_img == pic.length-1) document.getElementById('image_next').style.visibility = "hidden";
	else document.getElementById('image_next').style.visibility = "visible";
}

function close_info() {
	document.getElementById('overlay').style.visibility = "hidden";
}

// STARY SKRYPT ^^^^^^^^^^^^

function viewImg(img) {
	if (img < 0 || !document.getElementById('info' + img) || !document.getElementById('mainimg').complete || curr_img == img || document.getElementById('mainimg').change_state > 0)
		return false;
	
	document.getElementById('mainimg').change_state = 1;
	fade(-1, document.getElementById('mainimg'));
	viewImgThread(img);
	return false;
}

function viewImgThread(img) {
	if (document.getElementById('mainimg').change_state == 2) {
		document.getElementById('mainimg').change_state = 3;
		changeImg(img);
	}
	if (document.getElementById('mainimg').change_state == 3 && document.getElementById('mainimg').complete && loaded) {
		document.getElementById('mainimg').change_state = 4;
		fade(1, document.getElementById('mainimg'));
	}

	if (document.getElementById('mainimg').change_state == 5) 
		document.getElementById('mainimg').change_state = 0;
	else
		setTimeout("viewImgThread(" + img + ")", 50);
}


function loading_done() {
	loaded = 1;
}

function changeImg(img) {	
	var info = document.getElementById('info' + img).value;
	loaded = 0;
	
	document.getElementById('mainimg').src = "/zdjecie-" + info + "-550";
	document.getElementById('link').href = "/zdjecie-" + info;
	curr_img = img;
	
		  
	if (curr_img == 0) document.getElementById('image_prev').style.visibility = "hidden";
	else document.getElementById('image_prev').style.visibility = "visible";
	
	if (curr_img == document.getElementById('info_length').value-1) document.getElementById('image_next').style.visibility = "hidden";
	else document.getElementById('image_next').style.visibility = "visible";
}

function startGallery() {
	if (document.getElementById('size_config').value)
		size = document.getElementById('size_config').value;
		
	$(".thumbnail").hide();
	$(".thumbnail").slice(0, MAX_PER_ROW).show();
	/*while (document.getElementById('album_container').getElementsByTagName("div").length > 0) {
		next_stack.unshift(document.getElementById('album_container').getElementsByTagName("div")[0]);
		document.getElementById('album_container').removeChild(document.getElementById('album_container').getElementsByTagName("div")[0]);
	}
	for (var i=0; i < size; i++)
		document.getElementById('album_container').appendChild(next_stack.pop());*/

	$("#album_prev").removeClass("hide_it");
	$("#album_next").removeClass("hide_it");
	

	$("#album_prev").hide();
	
	 
		
	if (document.getElementById('image_next'))
		document.getElementById('image_next').style.visibility = "visible";
	
	document.getElementById('album_container').change_state = 0;
	if (document.getElementById('mainimg'))
		document.getElementById('mainimg').change_state = -1;
}

function navigateGallery(i, istimedout) {
	istimedout = typeof(istimedout) != 'undefined' ? istimedout : 0;
	
	var element = document.getElementById('album_container');
	if (!istimedout && element.change_state > 0) return;
	
	
	if (element.change_state == 0) {
		element.change_state = 1;
		fade(-1,element);
	}
	
	if (element.change_state == 2) {
		element.change_state = 3;
		moveGallery(i);
		fade(1,element);
	}
	
	if (element.change_state == 4) {
		element.change_state = 0;
		
		if (prev_stack.length > 0) document.getElementById('album_prev').style.visibility = "visible";
		else document.getElementById('album_prev').style.visibility = "hidden";

		if (next_stack.length > 0) document.getElementById('album_next').style.visibility = "visible";
		else document.getElementById('album_next').style.visibility = "hidden";
		
		return;
	}
	
	setTimeout("navigateGallery(" + i + ", 1)", 50);
}

function moveGallery(i) {
	if (i > 0) {
		for (;i > 0 && next_stack.length > 0; i--) {
			prev_stack.push(findFirstDiv());
			document.getElementById('album_container').removeChild(findFirstDiv());
			document.getElementById('album_container').appendChild(next_stack.pop());
		}
	}
	if (i < 0) {
		for (; i < 0 && prev_stack.length > 0; i++) {
			next_stack.push(findLastDiv());			
			document.getElementById('album_container').insertBefore(prev_stack.pop(), document.getElementById('album_container').getElementsByTagName("div")[0]);
			document.getElementById('album_container').removeChild(findLastDiv());
		}
	}
}



function findLastDiv() {
	var tab = document.getElementById('album_container').getElementsByTagName("div");
	for (var i = tab.length-1; i > 0; i--)
		if (document.getElementById('album_container') == tab[i].parentNode)
			return tab[i];
			
	return 0;
}

function findFirstDiv() {
	var tab = document.getElementById('album_container').getElementsByTagName("div");
	for (var i in tab)
		if (document.getElementById('album_container') == tab[i].parentNode)
			return tab[i];
			
	return 0;
}

function fade(state, element)
{
	//var element = document.getElementById('album_container');
	if(element == null)
		return;
    
	element.fade_state = state;

	element.fade_time_left = time_to_fade;
	setTimeout(function() { animateFade(new Date().getTime(), element); }, 33);
}

function animateFade(last_tick, element)
{  
   var cur_tick = new Date().getTime();
   var elapsed_ticks = cur_tick - last_tick;
   
  //var element = document.getElementById('album_container');
  
   if(element.fade_time_left <= elapsed_ticks)
   {
     element.style.opacity = element.fade_state == 1 ? '1' : '0';
     element.style.filter = 'alpha(opacity = ' 
         + (element.fade_state == 1 ? '100' : '0') + ')';
     element.fade_state = element.fade_state == 1 ? 2 : -2;
	 element.change_state++;
     return;
   }
  
   element.fade_time_left -= elapsed_ticks;
   var new_op_val = element.fade_time_left/time_to_fade;
   if(element.fade_state == 1)
     new_op_val = 1 - new_op_val;

   element.style.opacity = new_op_val;
   element.style.filter = 'alpha(opacity = ' + (new_op_val*100) + ')';
   
   setTimeout(function() { animateFade(cur_tick, element); }, 33);
}

function fullscreen(img) {
	if (getInternetExplorerVersion() < 9.0 && getInternetExplorerVersion() != -1)
		return false;
	return open_fullscreen(document.getElementById('info' + img).value);
}
	
function open_fullscreen(id) {	
	var full_screen = document.createElement('div');
	full_screen.setAttribute("class", "fullscreen");
	document.body.appendChild(full_screen);
	
	var img = document.createElement('img');
	img.setAttribute("src", "/zdjecie-" + id);
	
	img.setAttribute("style", "display: block; position: relative; margin: auto; margin-top: 15px; max-width: " + (document.documentElement.clientWidth-30) + "px; max-height: " + (document.documentElement.clientHeight-30) + "px;");
	full_screen.appendChild(img);
	full_screen.onclick = function () { document.body.removeChild(this); };
	
	return true;
}

function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

$(document).ready(init);
