dojo.require("dojo.fx");
dojo.require("dojo.fx.easing");

var chronicle_dir_preffix = './UserFiles/sscvcz/fotokronika';
var chronicle_actual_dir = '';
var path = [];
var chronicle_actual_photos = [];
var chronicle_photo_index = 0;
var slideshow_timer = 0;
var chronicle_photo_view = false;

function chronicleGetPath(dir)
{
	return (dir.split('/'));
}

function chronicleSetPath(path, deep)
{
	var result = '';
	if ((typeof(path) != "undefined") && (path.length > 0) && (deep <= path.length))
	{
		for (var i=0; i<deep; i++)
		{
			if (path[i] != '')
				result += '/'+path[i];
		}
	}
	return result;
}

function chroniclePhotoSet(step, force)
{
	if ((typeof(force) != "undefined") && force && (slideshow_timer != 0))
		chronicleSlideShow();

	if (((step == -1) && (chronicle_photo_index > 0)) || ((step == 1) && ((slideshow_timer != 0) || (chronicle_photo_index < (chronicle_actual_photos.length - 1)))))
	{
		chronicle_photo_index = chronicle_photo_index + step;
		if (chronicle_photo_index > (chronicle_actual_photos.length - 1))
			chronicle_photo_index =0;
		var foo = dojo.fadeOut({
			node: dojo.byId('chronicle_big_photo'),
			duration: 300,
			onEnd: function() {
				dojo.byId('chronicle_big_photo_area').className = 'chronicle_photos_photo_area_loader';
				if (chronicle_photo_index == 0)
					dojo.byId('chronicle_pred_photo').style.display = 'none';
				else
					dojo.byId('chronicle_pred_photo').style.display = 'block';

				if (chronicle_photo_index == (chronicle_actual_photos.length - 1))
					dojo.byId('chronicle_next_photo').style.display = 'none';
				else
					dojo.byId('chronicle_next_photo').style.display = 'block';

				dojo.byId('chronicle_big_photo').src = chronicle_dir_preffix+chronicle_actual_dir+'/'+chronicle_actual_photos[chronicle_photo_index];
			}
		});
		foo.play();
	}
}

function chronicleSlideShow()
{
	if (slideshow_timer != 0)
	{
		//stop
		clearTimeout(slideshow_timer);
		slideshow_timer = 0;
		dojo.byId('chronicle_slideshow').className = 'chronicle_slideshow_play';
	}
	else
	{
		dojo.byId('chronicle_slideshow').className = 'chronicle_slideshow_stop';
		slideshow_timer = setTimeout('chroniclePhotoSet(1)', 5000);
	}
}

function chroniclePhotoFadeIn()
{
	var foo = dojo.fadeOut({
		node: dojo.byId('chronicle_big_photo'),
		duration:5,
		onEnd: function() {
			dojo.byId('chronicle_big_photo_area').className = 'chronicle_photos_photo_area';
			dojo.byId('chronicle_big_photo').style.display = 'block';

			dojo.byId('chronicle_big_photo').style.width = '';
			dojo.byId('chronicle_big_photo').style.height = '';

			//	600*450
			width = dojo.byId('chronicle_big_photo').width;
			height = dojo.byId('chronicle_big_photo').height;

			var dest_width = 0;
			var dest_height = 0;

			if ((width > 600) || (height > 400))
			{
				dest_width = 600;
				tmp = dest_width / width;
				dest_height = height * tmp;
				if (dest_height > 400)
				{
					dest_height = 400;
					tmp = dest_height / height;
					dest_width = width * tmp;
				}
				dojo.byId('chronicle_big_photo').style.width = dest_width+'px';
				dojo.byId('chronicle_big_photo').style.height = dest_height+'px';
			}
			var foo2 = dojo.fadeIn({
				node: dojo.byId('chronicle_big_photo'),
				duration:300,
				onEnd: function() {
					if (slideshow_timer != 0)
						slideshow_timer = setTimeout('chroniclePhotoSet(1)', 7000);
				}
			});
			foo2.play();
		}
	});
	foo.play();
}

function chronicleActualPhotoDownload()
{
	open('./photodownload.php?photo='+encodeURI(chronicle_actual_dir+'/'+chronicle_actual_photos[chronicle_photo_index]), '_blank', '_blank');
}

function chroniclePhotos(handle)
{
	if (slideshow_timer != 0)
	{
		clearTimeout(slideshow_timer);
		slideshow_timer = 0;
	}
	chronicle_photo_view = true;
	var foo = dojo.fadeOut({
		node: dojo.byId('chronicle_main'),
		duration:300,
		onEnd: function() {
			dojo.byId('chronicle_main').style.display = 'none';
			dojo.byId('chronicle_main_loader').style.display = 'block';

			chronicle_photo_index = parseInt(handle.id.substr(handle.id.lastIndexOf('_') + 1));

			var main_content = '';

			main_content += '<div id="chronicle_photos_control_area">';
			main_content += '<h2>'+path[path.length - 1]+'</h2>';
			style = '';
			if (chronicle_photo_index > 0)
				style=' style="display: block;"';
			main_content += '<a href="javascript:;" onclick="chroniclePhotoSet(-1, true);"'+style+' id="chronicle_pred_photo"></a>';
			style = '';
			if (chronicle_photo_index < (chronicle_actual_photos.length - 1))
				style=' style="display: block;"';
			main_content += '<a href="javascript:;" onclick="chroniclePhotoSet(1, true);"'+style+' id="chronicle_next_photo"></a>';
			style = '';
			if (chronicle_actual_photos.length > 1)
				style=' style="display: block;"';
			main_content += '<a href="javascript:;" onclick="chronicleSlideShow();"'+style+' id="chronicle_slideshow" class=\"chronicle_slideshow_play\"></a>';
			main_content += '</div>';
			main_content += '<div class="chronicle_photos_photo_area_loader" id="chronicle_big_photo_area"><img src="'+chronicle_dir_preffix+chronicle_actual_dir+'/'+chronicle_actual_photos[chronicle_photo_index]+'" alt="" id="chronicle_big_photo" onload="chroniclePhotoFadeIn();"></div>';

			top_buttons = '<a href="javascript:;" onclick="chronicleStartFadeOut(\''+encodeURI(chronicleSetPath(path, 2))+'\')" id="chronicle_top_button_back_archive">zpět na<br>archiv</a><a href="javascript:;" onclick="chronicleStartFadeOut(\''+encodeURI(chronicleSetPath(path, 3))+'\')" id="chronicle_top_button_back_gallery">seznam<br>galerií</a><a href="javascript:;" onclick="chronicleStartFadeOut(\''+encodeURI(chronicleSetPath(path, 4))+'\')" id="chronicle_top_button_back_gallery2">zpět na<br>galerii</a><a href="javascript:;" onclick="chronicleActualPhotoDownload()" id="chronicle_top_button_save_photo">stáhnout<br>foto</a>';
			dojo.byId('chronicle_control_top_buttons_area').innerHTML = top_buttons;

			dojo.byId('chronicle_main').innerHTML = main_content;

			dojo.byId('chronicle_main_loader').style.display = 'none';
			dojo.byId('chronicle_main').style.display = 'block';
			var foo2 = dojo.fadeIn({
				node: dojo.byId('chronicle_main'),
				duration:300,
				onEnd: function() {
				}
			});
			foo2.play();
		}
	});
	foo.play();
}

function chronicleStartFadeOut(dir_param)
{
	chronicle_photo_view = false;
	if (slideshow_timer != 0)
	{
		clearTimeout(slideshow_timer);
		slideshow_timer = 0;
	}
	if (dojo.byId('chronicle_main').style.display != 'none')
	{
		var foo = dojo.fadeOut({
			node: dojo.byId('chronicle_main'),
			duration:300,
			onEnd: function() {
				chronicleStart(dir_param);
			}
		});
		foo.play();
	}
}

function chronicleStart(dir_param)
{
	dojo.byId('chronicle_main').style.display = 'none';
	dojo.byId('chronicle_main_loader').style.display = 'block';

	if (typeof(dir_param) != "undefined")
		chronicle_actual_dir = decodeURI(dir_param);

	var jsonStore = new dojo.data.ItemFileReadStore({url: "./chroniclelist.php?dir="+encodeURI(chronicle_actual_dir), clearOnClose: true});

	jsonStore.fetch({onComplete: function(items) {
		if (items.length > 0)
		{
			chronicle_actual_dir = items[0]['dir'][0];
			path = chronicleGetPath(chronicle_actual_dir);

			var top_folders = '';
			dojo.forEach(items[0]['dirs_level0'], function (folder_name) {
				top_folder_class = 'chronicle_top_folder';
				if (path[1] == folder_name)
					top_folder_class = 'chronicle_top_folder_selected';
				top_folders += '<a href="javascript:;" onclick="chronicleStartFadeOut(\''+encodeURI('/'+folder_name)+'\')" class="'+top_folder_class+'"><span class="chronicle_top_folder_left"></span>'+folder_name+'<span class="chronicle_top_folder_right"></span></a>';
			});

			var main_content = '';
			var top_buttons = '';
			switch(items[0]['level'][0])
			{
				case 1:
					var is_empty = true;
					dojo.forEach(items[0]['dirs'], function (folder_name) {
						is_empty = false;
						main_content += '<a href="javascript:;" onclick="chronicleStartFadeOut(\''+encodeURI(chronicle_actual_dir+'/'+folder_name)+'\')" class="chronicle_folder">'+folder_name+'</a>';
					});
					if (is_empty)
						main_content += '<h2>Tato složka je prázdná.</h2>';
					break;
				case 2:
					var is_empty = true;
					var suffix = '_0';
					dojo.forEach(items[0]['dirs'], function (folder_name) {
						is_empty = false;
						main_content += '<a href="javascript:;" onclick="chronicleStartFadeOut(\''+encodeURI(chronicle_actual_dir+'/'+folder_name)+'\')" class="chronicle_list_item'+suffix+'">'+folder_name+'</a>';
						if (suffix == '_0')
							suffix = '_1';
						else
							suffix = '_0';
					});
					if (is_empty)
						main_content += '<h2>Tato složka je prázdná.</h2>';
					top_buttons = '<a href="javascript:;" onclick="chronicleStartFadeOut(\''+encodeURI(chronicleSetPath(path, 2))+'\')" id="chronicle_top_button_back_archive">zpět na<br>archiv</a>';
					break;
				case 3:
					var is_empty = true;
					chronicle_actual_photos = items[0]['photos'];
					dojo.forEach(items[0]['photos'], function (file_name, index) {
						is_empty = false;
						main_content += '<a href="javascript:;" onclick="chroniclePhotos(this);" class=\"chronicle_thumbnail_loader\" id=\"chronicle_thumb_'+index+'\"><img src="'+items[0]['full_path'][0]+'/thumbs/'+file_name+'" alt="" onload="this.parentNode.className=\'chronicle_thumbnail\'; this.style.display=\'block\';"></a>';
					});
					if (is_empty)
						main_content += '<h2>Tato složka je prázdná.</h2>';
					top_buttons = '<a href="javascript:;" onclick="chronicleStartFadeOut(\''+encodeURI(chronicleSetPath(path, 2))+'\')" id="chronicle_top_button_back_archive">zpět na<br>archiv</a><a href="javascript:;" onclick="chronicleStartFadeOut(\''+encodeURI(chronicleSetPath(path, 3))+'\')" id="chronicle_top_button_back_gallery">seznam<br>galerií</a>';
					break;
			}

			dojo.byId('chronicle_control_top_folders_area').innerHTML = top_folders;
			dojo.byId('chronicle_main').innerHTML = main_content;
			dojo.byId('chronicle_control_top_buttons_area').innerHTML = top_buttons;

			var foo = dojo.fadeOut({
				node: dojo.byId('chronicle_main'),
				duration:5,
				onEnd: function() {
					dojo.byId('chronicle_main_loader').style.display = 'none';
					dojo.byId('chronicle_main').style.display = 'block';
					var foo2 = dojo.fadeIn({
						node: dojo.byId('chronicle_main'),
						duration:300
					});
					foo2.play();
				}
			});
			foo.play();
		}
	}});
}

