var giDetail = new sack();
var giThumb = new sack();

function gidLoading(){
	var ed = document.getElementById('gallery_item'); 
	ed.innerHTML = "Loading ...";
	ed.style.display = "block";
}

function gidCompleted(){
	var ed = document.getElementById('gallery_item'); 
	if (giDetail.responseStatus){
    	ed.innerHTML = giDetail.response;
	}
}

function showGalleryItem(gid, id) {
	giDetail.requestFile = "./?mod=gallery&task=item_detail&gid="+gid+"&id="+id;
	giDetail.element = 'gallery_item';
	giDetail.onLoading = gidLoading;
	giDetail.onCompletion = gidCompleted;
	giDetail.runAJAX();
}

var current_page = 1;
var total_page = 1;

function gitLoading(){
	var et = document.getElementById('gallery_thumbs'); 
	et.innerHTML = "Loading ...";
	et.style.display = "block";
}

function gitCompleted() {
	var et = document.getElementById('gallery_thumbs'); 
	if (giThumb.responseStatus){
    	et.innerHTML = giThumb.response;
	}
}

function gitAJAX(gid, pn) {
	giThumb.requestFile = "./?mod=gallery&task=item_thumb&gid="+gid+"&pn="+pn;
	giThumb.element = "gallery_thumbs";
	giThumb.onLoading = gitLoading;
	giThumb.onCompletion = gitCompleted;
	giThumb.runAJAX();
}

function firstGalleryItemPage(gid, total) {
	gitAJAX(gid, 1);
	setGalleryItemPageBar(1, total);
}

function prevGalleryItemPage(gid, total) {
	var prev_page = current_page - 1;
	if (prev_page < 1)
		return;
	gitAJAX(gid, prev_page);
	setGalleryItemPageBar(prev_page, total);
}

function nextGalleryItemPage(gid, total) {
	var next_page = current_page + 1;
	if (next_page > total_page)
		return;
	gitAJAX(gid, next_page);
	setGalleryItemPageBar(next_page, total);
}

function lastGalleryItemPage(gid, total) {
	gitAJAX(gid, total);
	setGalleryItemPageBar(total, total);
}

function setGalleryItemPageBar(current, total) {
	current_page = current;
	total_page = total;
	document.getElementById("current_page").innerHTML = current_page;
	if (total == 1 || current < 1)
		return;
	if (current == 1) {
		document.getElementById("first").style.display = "none";
		document.getElementById("previous").style.display = "none";
		document.getElementById("last").style.display = "inline";
		document.getElementById("next").style.display = "inline";
	}
	else if (current < total) {
		document.getElementById("first").style.display = "inline";
		document.getElementById("previous").style.display = "inline";
		document.getElementById("last").style.display = "inline";
		document.getElementById("next").style.display = "inline";
	}
	else if (current == total) {
		document.getElementById("first").style.display = "inline";
		document.getElementById("previous").style.display = "inline";
		document.getElementById("last").style.display = "none";
		document.getElementById("next").style.display = "none";
	}
}

var slide = false;
var slide_index = 0;

function slideShowItem(gid, all_pix) {
	slide_index = (slide_index + 1) % all_pix.length;
	var pix_id = all_pix[slide_index];
	showGalleryItem(gid, pix_id);
}

function stopSlideShow() {
	clearInterval(slide);
}

function playSlideShow(gid, all_pix) {
	var gallery_id = gid;
	slide = setInterval(function() {
		if (slide_index+1 == all_pix.length) {
			return;
		}
		slide_index = (slide_index + 1) % all_pix.length;
		var pix_id = all_pix[slide_index];
		showGalleryItem(gid, pix_id);
	}, 3000);
}