/*
	Copyright Code Computerlove Ltd 2009-2010
	Build: 1.0.0.243
	Date: 19/01/2010 15:21:28
*/

/*
	Copyright Code Computerlove Ltd 2009
	Build: 1.0.0.217
	Date: 30/10/2009 16:28:30
*/

(function($j) {

	Code.registerNamespace('Website.Pages');

	Website.Pages.Gallery = {

		_pageUrl: '/gallery/index.htm',
		_imagePaneContainer: '.flickr-list div.image-panes',
		_imageThumbHeight: 96,
		_imageThumbPadding: 7,
		_imageImagesPerRow: 3,


		hideVideoCaption: function() {
			$j("p.js-caption").hide();
		},

		showVideoControls: function() {

			$j("#TestScroll").mouseover(
				function(e) {
					var myTarget = $j(e.target);
					if (myTarget.is(".js-video-thumbnail")) {
						myTarget.parent().prepend('<img class="video-play" src="_Client/Images/Global/GalleryVideoPlay.png" />');
						myTarget.parent().siblings('.js-caption').stop().show();
					}
				}).mouseout(
					function(e) {
						var myTarget = $j(e.target);
						if (myTarget.is("img.video-play")) {
							myTarget.parent().siblings('.js-caption').stop().hide();
							myTarget.remove();
						}
					});
		},

		_loadTabbedVideoGallery: function() {
			var self = this;
			//video galleries
			if ($j("div.tab-panes > div").length > 1)
				$j("div.tab-panes > div").hide();

			$j("ul.tabs").tabs("div.tab-panes > div", {
				current: "active",
				effect: "fade",
				fadeInSpeed: 2000,
				fadeOutSpeed: 2000,
				rotate: true
			});

			$j("#VideoPreviousPage a").click(function() {
				$j("ul.tabs").tabs().prev();
				return false;
			});

			$j("#VideoNextPage a").click(function() {
				$j("ul.tabs").tabs().next();
				return false;
			});

		},

		_loadTabbedImageGallery: function() {
			var self = this;
			//image galleries
			if ($j("div.image-panes > div").length > 1)
				$j("div.image-panes > div").hide();

			$j("ul.image-tabs").tabs("div.image-panes > div", {
				current: "active",
				effect: "fade",
				fadeInSpeed: 2000,
				fadeOutSpeed: 2000,
				rotate: true
			});

			$j("#ImagePreviousPage a").click(function() {
				$j("ul.image-tabs").tabs().prev();
				return false;
			});

			$j("#ImageNextPage a").click(function() {
				$j("ul.image-tabs").tabs().next();
				return false;
			});
		},

		initImageCategory: function() {
			var self = this;

			$j(".js-slt-category").change(function() {

				var imagesContent = $j(".js-images-container");

				imagesContent.fadeTo('fast', 0.1, function() {
					imagesContent.html('<div class="ajax-loader"><img src="/_client/images/global/ajax-loader.gif" alt="loading" /></div>');
					imagesContent.fadeTo('fast', 1);
				});

				var targetContent = self._pageUrl + '?id=' + $j(".js-slt-category").val();

				setTimeout(function() {

					$j.ajax({
						type: "GET",
						url: targetContent,
						dataType: "html",
						success: function(data) {

							var dataContent = $j('.js-images-container', data);

							imagesContent.fadeTo('fast', 0.1, function() {
								imagesContent.html(dataContent.html());
								self._loadTabbedImageGallery();
								$j('.overlay-image').fancybox({ overlayOpacity: 0.9, padding: 0 });
								imagesContent.fadeTo('fast', 1);
								self._calculateImageGalleryHeight();
							});

						}
					});

				}, 500);

				return true;
			});
		},

		_calculateImageGalleryHeight: function() {
			var self = this;
			var imageTotalHeight = $j('.pane:visible ul li').size();
			var imageRowHeight = Math.ceil(imageTotalHeight / self._imageImagesPerRow);
			var newCSSPaneHeight = Math.ceil(imageRowHeight * (self._imageThumbHeight + self._imageThumbPadding));

			$j(self._imagePaneContainer).css('height', newCSSPaneHeight);
		},

		onReady: function() {
			var self = this;
			self.hideVideoCaption();
			self.showVideoControls();
			self._loadTabbedVideoGallery();
			self._loadTabbedImageGallery();
			self.initImageCategory();
			self._calculateImageGalleryHeight();
		}

	};

	$j().ready(function() {
		Website.Pages.Gallery.onReady();
	});

})(jQuery);	
