/**
 * @author florianbinder
 */

// Set focus to object
function setFocus(obj) {
	$(obj).focus();
}

// Admin functions
var Admin = {};

// Delete user
Admin.deleteUser = function(url) {
	if(confirm("Soll der Benutzer wirklich gekillt werden?")) {
		link(url);
	}
}

// Delete news
Admin.deleteNews = function(url) {
	if(confirm("Soll der Newseintrag wirklich gekillt werden?")) {
		link(url);
	}
}
// Edit news
Admin.editNews = function(url) {
	if(confirm("Willst du den Newseintrag wirklich bearbeiten?")) {
		link(url);
	}
}

// ***************************************************************** //
// Image Gallery
var ImageGallery = {};

ImageGallery.dir = null;
ImageGallery.piclist = new Array();
ImageGallery.current_pic = 0;
ImageGallery.number_of_pics = 0;
ImageGallery.thumb_status = 0;

// Initialise
ImageGallery.init = function(dir) {
	// Set directory
	ImageGallery.dir = dir;
	// Get pics
	ImageGallery.getPiclist(dir);
	// Create placeholder
	ImageGallery.createPlaceholder();
}
// Setup
ImageGallery.setup = function() {
	// Generate preloader
	ImageGallery.generatePreloader();
	// Show Preloader
	ImageGallery.showPreloader();
	// Set current pic
	ImageGallery.current_pic = 1;
	// Count number of pictures
	ImageGallery.number_of_pics = ImageGallery.piclist.length;
	// Generate numeration
	ImageGallery.generateNumeration();
	// Generate navigation arrows
	ImageGallery.setNavi();
	// Generate thumbnails
	ImageGallery.generateThumbnails();
	// Set thumblink
	ImageGallery.setThumblink();
	// Show pic
	ImageGallery.showPic(ImageGallery.current_pic);
	window.setTimeout("ImageGallery.timeoutShowPic();", 3000);
}

// Create placeholder
ImageGallery.createPlaceholder = function() {
	var ph = document.createElement("div");
	ph.id = "placeholder";
	ph.innerHTML = "loading picture...";
	$('contentcontainer').appendChild(ph);
}

// Show mainpic after a timeout
ImageGallery.timeoutShowPic = function() {
	$('mainpic').style.display = "block";
}

// Generate preloader
ImageGallery.generatePreloader = function() {
	var preloader = document.createElement('div');
	preloader.id = 'preloader';
	Element.addClassName(preloader, 'preloader');
	Element.setOpacity(preloader, 0.95);
	$('contentcontainer').appendChild(preloader);
}

// Show preloader
ImageGallery.showPreloader = function() {
	$('preloader').style.display = "block";
}

// Hide preloader
ImageGallery.hidePreloader = function() {
	$('preloader').style.display = "none";
}

// Show thumbnails
ImageGallery.showThumbnails = function() {
	var obj = $('thumbnailcontainer');
	obj.style.display = "block";
	new Effect.Opacity(obj, {duration: 1.0, from: 0, to: 0.9});
	ImageGallery.thumb_status = 1;
	ImageGallery.setThumblink();
}

// Hide thumbnails
ImageGallery.hideThumbnails = function() {
	var obj = $('thumbnailcontainer');
	new Effect.Opacity(obj, {duration: 1.0, from: 0.9, to: 0, afterFinish: function() {
		obj.style.display = "none";
	}});
	ImageGallery.thumb_status = 0;
	ImageGallery.setThumblink();
}

// Set thumblink
ImageGallery.setThumblink = function() {
	var thumbcaller = $('thumbcaller');
	thumbcaller.innerHTML = '';
	var thumblink = '';
	if(ImageGallery.thumb_status == 0) {
		thumblink = '<a onclick="ImageGallery.showThumbnails(); return false;" href="' + ImageGallery.dir + '.php?p=' + ImageGallery.current_pic + '&t=1" title="Show thumbnails">SHOW THUMBS</a>';
		//ImageGallery.thumb_status = 1;
	} else {
		thumblink = '<a onclick="ImageGallery.hideThumbnails(); return false;" href="' + ImageGallery.dir + '.php?p=' + ImageGallery.current_pic + '&t=0" title="Hide thumbnails">HIDE THUMBS</a>';
		//ImageGallery.thumb_status = 0;
	}
	thumbcaller.innerHTML = thumblink;
}

// Generate thumbnails
ImageGallery.generateThumbnails = function() {
	if(!$('thumbnailcontainer')) {
		var thumbcont = document.createElement('div');
		thumbcont.id = 'thumbnailcontainer';
		Element.setOpacity(thumbcont, 0);
		thumbcont.style.display = "none";
		$('contentcontainer').appendChild(thumbcont);
	} else {
		$('thumbnailcontainer').innerHTML = '';
	}
	
	var thumbs = '';
	var thumbcont = $('thumbnailcontainer');
	for(var i=0; i<ImageGallery.number_of_pics; i++) {
		var link = ImageGallery.dir + '.php?p=' + (i+1) + '&t=0';
		var thumbclass = 'thumblink';
		if(ImageGallery.current_pic == (i+1)) {
			thumbclass = 'thumbcurrent';
		}
		pic = '../src/imageresizer.php?p=../portfolio/' + ImageGallery.dir + '/' + ImageGallery.piclist[i] + '&w=85&q=100';
		var img = new Image(85, 51);
		img.src = pic;
		thumbs += '<a id="thumbnail_' + (i+1) + '" onclick="ImageGallery.showPic(' + (i+1) + '); return false;" href="' + link + '" title="' + ImageGallery.piclist[i] + '" class="thumbnail ' + thumbclass + '"><img src="' + img.src + '" width="85" border="0" alt="' + ImageGallery.piclist[i] + '" /></a>';
	}
	thumbcont.innerHTML = thumbs;
}

// Initialize and set navigation arrows
ImageGallery.setNavi = function() {
	var navicont = $('navi');
	navicont.innerHTML = '';
	var newnav = '';
	if(ImageGallery.current_pic == 1) {
		newnav += '<span id="navi_prev" class="navi_disabled">&lt;</span>';
	} else {
		newnav += '<a id="navi_prev" href="' + ImageGallery.dir + '.php?p=' + (ImageGallery.current_pic-1) + '&t=' + ImageGallery.thumb_status + '" title="Previous picture" onclick="ImageGallery.getPrevPic(); return false;">&lt;</a>';
	}
	newnav += '&nbsp;';
	if(ImageGallery.current_pic == ImageGallery.number_of_pics) {
		newnav += '<span id="navi_next" class="navi_disabled">&gt;</span>';
	} else {
		newnav += '<a id="navi_next" href="' + ImageGallery.dir + '.php?p=' + (ImageGallery.current_pic+1) + '&t=' + ImageGallery.thumb_status + '" title="Next picture" onclick="ImageGallery.getNextPic(); return false;">&gt;</a>';
	}
	navicont.innerHTML = newnav;
}

// Get prev pic
ImageGallery.getPrevPic = function() {
	if(ImageGallery.current_pic > 1) {
		ImageGallery.current_pic--;
		
		ImageGallery.generateNumeration();
		ImageGallery.setNavi();
		ImageGallery.setThumblink();
		ImageGallery.showPic(ImageGallery.current_pic);
	}
}

// Get next pic
ImageGallery.getNextPic = function() {
	if(ImageGallery.current_pic != ImageGallery.number_of_pics) {
		ImageGallery.current_pic++;
		
		ImageGallery.generateNumeration();
		ImageGallery.setNavi();
		ImageGallery.setThumblink();
		ImageGallery.showPic(ImageGallery.current_pic);
	}
}

// Numeration
ImageGallery.generateNumeration = function() {
	$('numeration').innerHTML = ImageGallery.current_pic + '/' + ImageGallery.number_of_pics;
}

// Show picture
ImageGallery.showPic = function(num) {
	ImageGallery.showPreloader();
	// Select pic in thumbnail list
	var thumbs = $$('.thumbnail');
	for(var i=0; i<thumbs.length; i++) {
		var obj = thumbs[i];
		if(Element.hasClassName(obj, "thumblink")) {
			Element.removeClassName(obj, "thumblink");
		}
		if(Element.hasClassName(obj, "thumbcurrent")) {
			Element.removeClassName(obj, "thumbcurrent");
		}
		if((i+1) == num) {
			Element.addClassName(obj, "thumbcurrent");
		}
	}
	
	var pic = ImageGallery.dir + '/' + ImageGallery.piclist[num-1];
	$('mainpic').src = pic;
	ImageGallery.hidePreloader();
		
	ImageGallery.current_pic = num;
	ImageGallery.generateNumeration();
	ImageGallery.setNavi();
}

// Get Piclist
ImageGallery.getPiclist = function(dir) {
	new Ajax.Request('../src/ajax.php', {
		method:'post',
		postBody:'func=getPiclist&dir=' + dir,
		onSuccess:function(t) {
			ImageGallery.piclist = eval(t.responseText);
			ImageGallery.setup();
		}
	});
}