<?php

	$data_lang = $this->getData("language");

	/* ---- Language ---- */
	$galleria_caption_close = 		htmlspecialchars($data_lang->getNodeVal("data.general.galleria_caption_close"));
	$galleria_view_caption = 		htmlspecialchars($data_lang->getNodeVal("data.general.galleria_view_caption"));
	$galleria_start_autoplay = 		htmlspecialchars($data_lang->getNodeVal("data.general.galleria_start_autoplay"));
	$galleria_stop_autoplay = 		htmlspecialchars($data_lang->getNodeVal("data.general.galleria_stop_autoplay"));
	$galleria_enter_fullscreen = 		htmlspecialchars($data_lang->getNodeVal("data.general.galleria_enter_fullscreen"));
	$galleria_close_fullscreen = 		htmlspecialchars($data_lang->getNodeVal("data.general.galleria_close_fullscreen"));

?>

/**
 * Galleria Classic Theme 2012-04-04
 * http://galleria.io
 *
 * Licensed under the MIT license
 * https://raw.github.com/aino/galleria/master/LICENSE
 *
 */

(function($) {
Galleria.addTheme({
	name: 'sarin',
	author: 'intothedarkroom',
	defaults: {
		fullscreenDoubleTap: false,
		_fullscreen: false,
		_captions: false,
		_l10n: {
			captionClose:	"<?php echo $galleria_caption_close; ?>",
			captionOpen:	"<?php echo $galleria_view_caption; ?>",
			autoplayStart:	"<?php echo $galleria_start_autoplay; ?>",
			autoplayStop:	"<?php echo $galleria_stop_autoplay; ?>",
			fullscreenOpen:	"<?php echo $galleria_enter_fullscreen; ?>",
			fullscreenClose:	"<?php echo $galleria_close_fullscreen; ?>"
		}
	},
	init: function(options) {
		// create elements in the DOM
		var elements = ["info-close", "progress", "bar", "fullscreen", "play", 'info-link', "hover-preload"];
		var baritems = ["fullscreen", "play", "info-link", "counter", "hover-preload"];
			if (options._fullscreen==false) {
				elements.splice(3, 1);
				baritems.splice(0, 1);
			}
		this.addElement.apply(this, elements);
		// move them to the appropriate heirchy
		this.append({
			stage: "progress",
			container: "bar",
			info: 'info-close',
			bar: baritems
		});
		// local variables
		var self = this;
		var progress = this.$("progress");
		var info_link = this.$('info-link');
		var info_close = this.$('info-close');
		var info = this.$('info');
		var images = this.$('images');
		var play = this.$('play');
		var fullscreen = this.$('fullscreen');
		var isTouch = Galleria.TOUCH;
		var playing = options.autoplay>0;
		var captionsOn = null;
		var isFS = false;
		var toggleFS = function () {
			if (isFS) self.exitFullscreen();
			else self.enterFullscreen();
		}
		var togglePlayback = function () {
			playing ? self.pause() : self.play();
		}
		var toggleEvent = isTouch ? 'touchstart' : 'click';
		var toggleCaptions = function (force) {
			if (captionsOn||force===true) {
				captionsOn = false;
				info_link.addClass("enabled");
				info_link.attr("title", options._l10n.captionClose);
				info.fadeIn();
			} else if (!captionsOn||force===false) {
				captionsOn = true;
				info_link.removeClass("enabled");
				info_link.attr("title", options._l10n.captionOpen);
				info.fadeOut();
			}
		}
		// assign actions
		info_link.attr("title", options._l10n.captionClose);
		info_close.attr("title", options._l10n.captionClose);
		if (playing) play.addClass("playing");
		play.attr("title", (playing?options._l10n.autoplayStop:options._l10n.autoplayStart));
		fullscreen.attr("title", (isFS?options._l10n.fullscreenClose:options._l10n.fullscreenOpen));
		if (options._captions) {
			info_link.bind(toggleEvent, toggleCaptions);
			info_close.bind(toggleEvent, toggleCaptions);
		} else {
			info_link.hide();
		}
		if (options._fullscreen) {
			images.dblclick(toggleFS);
			fullscreen.click(toggleFS);
		}
		play.click(togglePlayback);
		// events
		self.bind('thumbnail', function(e) {
			if (!isTouch) {
				$(e.thumbTarget).css('opacity', 0.6).parent().hover(function() {
					$(this).not('.active').children().stop().fadeTo(100, 1);
				}, function() {
					$(this).not('.active').children().stop().fadeTo(400, 0.6);
				});
				if ( e.index === this.getIndex() ) {
					$(e.thumbTarget).css('opacity', 1);
				}
			} else {
				$(e.thumbTarget).css('opacity', this.getIndex() ? 1 : 0.6);
			}
		});
		self.bind('loadstart', function(e) {
			if (!e.cached) {
				this.$('loader')
					.show()
					.fadeTo(200, 0.5);
			}
			$(e.thumbTarget)
				.css('opacity', 1)
				.parent()
				.siblings()
				.children()
				.css('opacity', 0.6);
		});
		self.bind('loadfinish', function(e) {
			if (captionsOn==null&&options._captions) toggleCaptions(true);
			progress.width(0);
			this.$('loader').fadeOut(200);
		});
		self.bind("progress", function (e) {
			progress.width(e.percent / 100 * this.getStageWidth());
		});
		self.bind("play", function () {
			playing = true;
			play.addClass("playing");
			play.attr("title", options._l10n.autoplayStop);
		});
		self.bind("pause", function () {
			playing = false;
			play.removeClass("playing");
			play.attr("title", options._l10n.autoplayStart);
			progress.width(0);
		});
		self.bind("fullscreen_enter", function (e) {
			isFS = true;
			fullscreen.addClass("fs");
			fullscreen.attr("title", options._l10n.fullscreenClose);
		});
		self.bind("fullscreen_exit", function (e) {
			isFS = false;
			fullscreen.removeClass("fs");
			fullscreen.attr("title", options._l10n.fullscreenOpen);
			self.refreshImage();
		});
    }
});
}(jQuery));