﻿/// <reference path="..\jQuery-1.5.1.min.js" />
/// <reference path="..\Fancybox\jquery.fancybox-1.3.2.pack.js" />
/// <reference path="..\SnT.Utils.js" />
/// <reference path="..\ITU.Common.js" />

SnTUtils.RegisterNameSpace("ITU.Gallery");

ITU.Loader = ITU.Loader ? ITU.Loader : new SnTUtils.ExecutionQueue(true);

ITU.Gallery = function (settings) {

	var _me = this;
	this.Config = $.extend({}, {}, ITU.Gallery.Config);

	this.Context =
    {
    	ThumbnailContainer: null,
    	OnlyOneImage: false
    };
	var Init = function (settings) {

		_me.Config.Wrapper = $(_me.Config.Wrapper);
		if (_me.Config.Data && _me.Config.Wrapper.length) {

			RenderGallery();
		}
		_me.Config.Wrapper.data("Gallery", _me);
		_me.Config.Viewport = _me.Config.Wrapper.find(_me.Config.Viewport);
		_me.Context.ThumbnailContainer = _me.Config.Wrapper.find('.galleria');

		InitThumbnails();

		InitGalleria();
	};

	var InitGalleria = function () {

		var container = _me.Context.ThumbnailContainer;

		container.galleria({
			container: _me.Config.Wrapper,
			insert: '.galleria_container',
			history: _me.Config.History,
			scaleTumbs: _me.Config.ScaleTumbs,
			captionEnabled: _me.Config.CaptionEnabled,
			buttonNextHTML: '',
			clickNext: _me.ViewportClickNext,
			onImage: function (image, caption, thumb) {

				image.hide();
				var gContainer = _me.Config.Wrapper.find('.galleria_container');
				if (_me.Config.ResizeOnOneImage && _me.Context.OnlyOneImage) {

					gContainer.css({
						width: _me.Config.OnOneImageWidth + "px",
						height: _me.Config.OnOneImageHeight + "px"
					});
					if (_me.Context.OneImageViewPortFormatId && _me.Context.OneImageViewPortFormatId == 0) {

						gContainer.find("img").attr("width", _me.Config.OnOneImageWidth);
						gContainer.find("img").attr("height", _me.Config.OnOneImageHeight);
					}
				}
				if (!thumb.parents("li:first").hasClass("Video")) {

					image.fadeIn(_me.Config.ImageFadeInSpeed);
				}
				if (_me.Config.FadeOpacity < 1) {
					thumb.parent()
                    .fadeTo(_me.Config.FadeSpeed, 1)
                    .siblings()
                    .fadeTo(_me.Config.FadeSpeed, _me.Config.FadeOpacity);
				}
				gContainer.trigger('image-loaded');
				if (_me.Config.captionEnabled) {

					gContainer.hover(function () {
						if (caption.text() != '') {

							caption.stop().animate({ height: _me.Config.CaptionHeight }, _me.Config.CaptionAnimateSpeed);
						}
					},
					function () {

						caption.stop().animate({ height: 0 }, _me.Config.CaptionAnimateSpeed);
					});
				}
				else {

					caption.hide();
				}
			},
			onThumb: function (thumb) {

				var $li = thumb.parents('li'); opacity = $li.is('.active') ? 1 : _me.Config.FadeOpacity;

				$li.mouseenter(function () { $li.fadeTo(_me.Config.FadeSpeed, 1); });
				$li.mouseleave(function () { $li.not('.active').fadeTo(_me.Config.FadeSpeed, opacity); });
			}
		}).find('li:first').addClass('active');

		var galleria = _me.Config.Wrapper[0].galleria;

		if ($.browser.msie) {
			container.find('img:first').click();
		}
		_me.Config.Wrapper.find('.galleria_container .caption').css('height', 0);

		if (!_me.Context.OnlyOneImage) {

			galleria.clickNext = true;

			// next image
			_me.Config.Wrapper.find(".jcarousel-next-vertical").unbind("click").bind('click', function (event) { galleria.prev(); });

			//prev image
			_me.Config.Wrapper.find(".jcarousel-prev-vertical").unbind("click").bind('click', function (event) { galleria.next(); });
		}
		else {
			galleria.clickNext = false;
		}
	};
	var InitThumbnails = function () {

		var container = _me.Context.ThumbnailContainer;

		_me.Context.OnlyOneImage = SnTUtils.Parser.TryParseInt(container.find("li").length) == 1;

		if (!_me.Context.OnlyOneImage || !_me.Config.ResizeOnOneImage) {

			_me.Config.Wrapper.find(".jcarousel-skin-itu, .jcarousel-prev-vertical, .jcarousel-next-vertical").show();
		}

		container.find('li').each(function (idx) {

			$(this).data('index', (++idx))
				   .append('<div class="ActiveImage"></div><div class="PlayVideo"></div>');
		});

		function initCallbackHandler(carousel) {

			_me.Config.Wrapper.find('.galleria_container').bind('image-loaded', function () {

				var idx = container.find('li.active').data('index');
				carousel.scroll(idx);
				return false;
			});
		};

		container.jcarousel({
			vertical: true,
			scroll: 5,
			buttonNextHTML: null,
			buttonPrevHTML: null,
			initCallback: initCallbackHandler,
			itemLoadCallback: function (carousel, item, idx, state) {
				_me.Config.Wrapper.find(".jcarousel-next-vertical").removeClass("jcarousel-next-disabled")
                                    .removeClass("jcarousel-next-disabled-vertical")
									.removeAttr("disabled");

				_me.Config.Wrapper.find(".jcarousel-prev-vertical").removeClass("jcarousel-prev-disabled")
                                    .removeClass("jcarousel-prev-disabled-vertical")
									.removeAttr("disabled");

				var hiddenVideoHtml = _me.Config.Wrapper.find("li.active input.Video[type='hidden']");
				if (hiddenVideoHtml.length) {

					ShowVideo(hiddenVideoHtml.val());
				}
			}
		});
	};
	var ShowVideo = function (videoHtmlEncoded) {

		if (!String.IsNullOrWhiteSpace(videoHtmlEncoded)) {

			var viewport = _me.Config.Wrapper.find(".galleria_wrapper");
			var videoHtml = SnTUtils.HttpUtility.HtmlDecode(unescape(videoHtmlEncoded));

			var renderVideo = function () {

				viewport.html(videoHtml);

				//HACK: ff4
				viewport.append("<div> </div>");
				setTimeout(function () { viewport.append("<div> </div>"); }, 19);

				if (_me.Context.OnlyOneImage && _me.Config.ResizeOnOneImage) {

					viewport.find("embed").attr("width", _me.Config.OnOneImageWidth);
				}
			};

			if (ITU.Loader) {

				ITU.Loader.Enqueue(renderVideo);
			}
			else {

				renderVideo();
			}
		}
	};
	var RenderGallery = function () {

		var html = GetGalleryTemplate();

		_me.Config.Wrapper.html(html);

		RenderThumbnails();
	};
	var RenderThumbnails = function () {

		var ul = _me.Config.Wrapper.find("ul.galleria");
		var template = GetThumbnailTemplate();
		var items = _me.Config.Data.Items;

		if (items) {

			for (var i = 0; i < items.length; i++) {

				var item = items[i];

				item = AppendImageUrls(item);
				item = AppendVideoHtml(item);

				var li = $(String.Format(template, ITU.Common.RMDocumentType.ToString(item.Type), item.Description, item.Title, item.ViewportImageUrl, item.Video, item.ThumbnailUrl, _me.Config.ThumbnailWidth, _me.Config.ThumbnailHeight));

				ul.append(li);
			}
		}
	};
	var AppendVideoHtml = function (item) {

		item.Video = "";

		if (item.Type == ITU.Common.RMDocumentType.Video) {

			var videoEmbedHtml = _me.Config.VideoEmbedHtml;
			var videoEmbedHtmlTemplate = $(_me.Config.VideoEmbedHtmlTemplateId);
			if (videoEmbedHtmlTemplate.length) {

				videoEmbedHtml = videoEmbedHtmlTemplate.html();
			}

			var relatedResourceId = item.RelatedResourceId > 0 ? item.RelatedResourceId : _me.Config.DummyVideoThumbnailId;

			videoEmbedHtml = String.Format(videoEmbedHtml, relatedResourceId, item.ResourceId, _me.Config.ViewPortWidth, _me.Config.ViewPortHeight);

			item.Video = SnTUtils.HttpUtility.HtmlEncode(escape(videoEmbedHtml));
		}

		return item;
	};
	var AppendImageUrls = function (item) {

		if (SnTUtils.Parser.TryParseInt(item.ResourceId) > 0) {

			var relatedResourceId = SnTUtils.Parser.TryParseInt(item.RelatedResourceId);
			var thumbnailId = item.ResourceId;

			if (relatedResourceId > 0) {

				thumbnailId = relatedResourceId;
			}
			else if (item.Type == ITU.Common.RMDocumentType.Video) {

				thumbnailId = _me.Config.DummyVideoThumbnailId;
			}

			var isOneImage = _me.Config.Data.Items.length < 2;

			if (_me.Config.ThumbnailFormatId > 0 || _me.Config.OneImageThumbnailFormatId > 0) {

				var formatId = _me.Config.ThumbnailFormatId;
				if (isOneImage && _me.Config.OneImageThumbnailFormatId > 0) {

					formatId = _me.Config.OneImageThumbnailFormatId;
				}
				item.ThumbnailUrl = String.Format("{0}/GetImage.aspx?imgId={1}&fmtId={2}", ITU.Common.Config.ResourceManagerUrl, thumbnailId, formatId);
			}
			else {

				item.ThumbnailUrl = String.Format("{0}/GetImage.aspx?imgId={1}&width={2}&height={3}", ITU.Common.Config.ResourceManagerUrl, thumbnailId, _me.Config.ThumbnailWidth, _me.Config.ThumbnailHeight);
			}

			var viewPortResourceId = item.Type == ITU.Common.RMDocumentType.Video ? thumbnailId : item.ResourceId;
			if (_me.Config.ViewPortFormatId > 0 || _me.Config.OneImageViewPortFormatId > 0) {

				var formatId = _me.Config.ViewPortFormatId;
				if (isOneImage && _me.Config.OneImageViewPortFormatId > 0) {

					formatId = _me.Config.OneImageViewPortFormatId;
				}
				item.ViewportImageUrl = String.Format("{0}/GetImage.aspx?imgId={1}&fmtId={2}", ITU.Common.Config.ResourceManagerUrl, viewPortResourceId, formatId);
			}
			else {

				var viewportImageWidth = isOneImage ? _me.Config.OnOneImageWidth : _me.Config.ViewPortWidth;

				item.ViewportImageUrl = String.Format("{0}/GetImage.aspx?imgId={1}&width={2}&height={3}", ITU.Common.Config.ResourceManagerUrl, viewPortResourceId, viewportImageWidth, _me.Config.ViewPortHeight);
			}
		}
		else if (item.ImageUrl) {

			item.ThumbnailUrl = item.ImageUrl;
			item.ViewportImageUrl = item.ImageUrl;

			return item;
		}

		return item;
	};
	var GetGalleryTemplate = function () {

		var html = '<div class="galleryWrapper">'
					+ '<div class="galleria_container">'
						+ '<div class="galleria_wrapper"></div>'
						+ '<span class="caption"></span>'
					+ '</div>'
					+ '<div class="jcarousel-next jcarousel-next-vertical"></div>'
					+ '<div class="jcarousel-skin-itu">'
						+ '<div class="jcarousel-container">'
							+ '<div class="jcarousel-clip jcarousel-clip-vertical">'
								+ '<ul class="jcarousel-list jcarousel-list-vertical galleria gallery">'
								+ '</ul>'
							+ '</div>'
						+ '</div>'
					+ '</div>'
					+ '<div class="jcarousel-prev jcarousel-prev-vertical"></div><div class="clear"> </div>'
				+ '</div>';


		html = '<div class="gallery' + _me.Config.Mode + '">' + html + '</div>'

		return html;
	};
	var GetThumbnailTemplate = function () {

		return '<li class="{0}">'
					+ '<input class="ITUGalleryDescription" value="{1}" type="hidden" />'
					+ '<input class="ITUGalleryTitle" value="{2}" type="hidden" />'
					+ '<input class="ITUGalleryViewportImageUrl" value="{3}" type="hidden" />'
					+ '<input class="Video" type="hidden" value="{4}" />'
					+ '<img alt="{2}" title="{2}" src="{5}" width="{6}" height="{7}" />'
				+ '</li>';
	};
	var OnScriptLoaded = function () {

		//default
		$.extend(_me.Config, ITU.Gallery.Config);

		if (settings && !String.IsNullOrWhiteSpace(settings.Mode) && ITU.Gallery.Mode.Config[settings.Mode]) {

			$.extend(_me.Config, ITU.Gallery.Mode.Config[settings.Mode]);
		}
		else {

			$.extend(_me.Config, ITU.Gallery.Mode.Config.Wide);
		}

		$.extend(_me.Config, settings);

		if (_me.Config.Lightbox === true) {

			_me.Config.Wrapper = "#fancyGalleria";

			$.fancybox.showActivity();

			$.fancybox(String.Format('<div id="fancyGalleria" style="position:relative; height: {0}px; width:{1}px;"></div>', _me.Config.LightboxHeight, _me.Config.LightboxWidth),
				{
					onComplete: function () {

						Init(_me.Config);
					},
					autoDimensions: _me.Config.LightboxAutoDimensions,
					width: _me.Config.LightboxWidth,
					height: _me.Config.LightboxHeight
				});
		}
		else {
			Init(_me.Config);
		}
	};

	if (!$.jcarousel) {

		$.getScript(_me.Config.WebResourcesUrl + "/js/Gallery/jquery.jCarousel.js", OnScriptLoaded);
	}
	else {

		OnScriptLoaded();
	}
};

ITU.Gallery.Mode = {

	Wide: 'Wide',
	Old: "Old",
	Middle: "Middle"
};

ITU.Gallery.Mode.Config = {

	Wide: {
		CaptionHeight: 50,
		OnOneImageWidth: 728,
		OnOneImageHeight: 349,
		OneImageViewPortFormatId: 0,
		ViewPortWidth: 620,
		ViewPortHeight: 349,
		ThumbnailWidth: 107,
		ThumbnailHeight: 61,
		LightboxWidth: 728,
		LightboxHeight: 349,
		LightboxAutoDimensions: false
	},
	Old: {
		CaptionHeight: 50,
		OnOneImageWidth: 550,
		OnOneImageHeight: 394,
		OneImageViewPortFormatId: 0,
		ViewPortWidth: 550,
		ViewPortHeight: 394,
		ThumbnailWidth: 97,
		ThumbnailHeight: 69,
		LightboxWidth: 644,
		LightboxHeight: 394,
		LightboxAutoDimensions: false
	},
	Middle: {
		CaptionHeight: 50,
		OnOneImageWidth: 487,
		OnOneImageHeight: 349,
		OneImageViewPortFormatId: 0,
		ViewPortWidth: 487,
		ViewPortHeight: 349,
		ThumbnailWidth: 85,
		ThumbnailHeight: 61,
		LightboxWidth: 588,
		LightboxHeight: 349,
		LightboxAutoDimensions: false
	}
};

ITU.Gallery.Config = {

	Wrapper: ".galleryWrapper",
	Data: null,
	Viewport: 'div.galleria_wrapper',
	Mode: ITU.Gallery.Mode.Wide,
	CaptionEnabled: false,
	CaptionHeight: 0,
	CaptionAnimateSpeed: 250,
	FadeSpeed: 200,
	FadeOpacity: 1,
	ImageFadeInSpeed: 500,
	ScaleTumbs: false,
	Lightbox: false,
	ViewportClickNext: true,
	ResizeOnOneImage: true,
	OnOneImageWidth: 0,
	OnOneImageHeight: 0,
	WebResourcesUrl: '/webresources',
	DummyVideoThumbnailId: 913,
	ViewPortFormatId: 0,
	ThumbnailFormatId: 0,
	OneImageViewPortFormatId: 0,
	OneImageThumbnailFormatId: 0,
	ViewPortWidth: 0,
	ViewPortHeight: 0,
	ThumbnailWidth: 0,
	ThumbnailHeight: 0,
	LightboxAutoDimensions: false,
	LightboxWidth: 0,
	LightboxHeight: 0,
	VideoEmbedHtml: '<embed width="{2}" height="{3}" flashvars="image=/ResourceManager/GetImage.aspx%3FimgId%3D{0}%26width%3D{2}%26height%3D{3}%26filename%3Dslika.jpg&amp;file=/ResourceManager/FileDownload.aspx%3Frid%3D{1}%26rType%3D8%26file%3Preview.flv&amp;controlbar=over" wmode="opaque" allowscriptaccess="always" allowfullscreen="true" quality="high" bgcolor="#ffffff" name="player_{1}" id="player_{1}" style="" src="/WebResources/Js/FlashPlayer/player-viral.swf" type="application/x-shockwave-flash">',
	VideoEmbedHtmlTemplateId: 'VideoEmbedHtmlTemplate',
	ServiceUrl: '/App_Modules__SnT.Cms.Modules.Core.Package__SnT.Cms.Modules.Core.Gallery.GalleryService.asmx',
	LanguageId: SnTUtils.Language
};

ITU.Gallery.Show = function (settings) {

	var galleryId = SnTUtils.Parser.TryParseIntNullable(settings);
	if (galleryId != null && galleryId > 0) {

		settings = { Id: galleryId };
	}

	if (!settings.Wrapper) {

		settings.Lightbox = true;
	}

	if (settings.Id) {

		var languageId = settings.LanguageId ? settings.LanguageId : ITU.Gallery.Config.LanguageId;

		var successCallback = function (response) {

			settings.Data = response;

			return new ITU.Gallery(settings);
		};

		SnTUtils.Ajax(ITU.Gallery.Config.ServiceUrl + "/GetList", { galleryId: settings.Id, languageId: languageId }, successCallback, function () { });
	}
	else {

		return new ITU.Gallery(settings);
	}
};

(function ($) {
	var $$;
	$$ = $.fn.galleria = function ($options) {
		if (!$$.hasCSS()) {
			return false;
		}
		var $defaults = {
			container: '.galleryWrapper',
			insert: '.galleria_container',
			clickNext: true,
			scaleTumbs: false,
			onImage: function (image, caption, thumb) { },
			onThumb: function (thumb) { }
		};
		var $opts = $.extend($defaults, $options);
		var wrapper = $defaults.container[0];

		var getImageMeta = function (container) {

			var meta = new Object();
			var hndTitle = container.find("input.ITUGalleryTitle[type='hidden']");
			var hndDescription = container.find("input.ITUGalleryDescription[type='hidden']");
			var hndViewportImageUrl = container.find("input.ITUGalleryViewportImageUrl[type='hidden']");

			meta.Title = hndTitle.length ? hndTitle.val() : '';
			meta.Description = hndDescription.length ? hndDescription.val() : '';
			meta.ViewportImageUrl = hndViewportImageUrl.length ? SnTUtils.HttpUtility.UrlDecode(hndViewportImageUrl.val()) : '';

			return meta;
		};
		
		function onPageLoad(li) {

			var _wrapper = $defaults.container.find(".galleria_wrapper");
			var _thumb = li.find("img");
			var _src = _thumb.data("ViewportImageUrl");

			if (_src) {
				li.siblings('.active').removeClass('active');
				li.addClass('active');
				var _img = $(new Image()).attr('src', _src).addClass('replaced');
				var alt = _thumb.attr("alt");
				if(String.IsNullOrWhiteSpace(alt))
				{
					alt = '';
				} 
				_img.attr({					
					alt:alt,
					title: alt
				});
				_wrapper.empty().append(_img);
				_wrapper.siblings('.caption').html(String.Format('<span class="ItuGalleryItemTitle">{0}</span><span class="ItuGalleryItemDescription">{1}</span>', _thumb.data("Meta").Title, _thumb.data("Meta").Description));

				wrapper.galleria.onImage(_img, _wrapper.siblings('.caption'), _thumb);

				if ($defaults.clickNext) {
					_img.css('cursor', 'pointer').click(function () {
						wrapper.galleria.next();
					});
				}
			} else {
				_wrapper.siblings().andSelf().empty();
				_wrapper.find('.galleria li.active').removeClass('active');
			}
			wrapper.galleria.current = li;
		};
		wrapper.galleria = $.extend({}, {

			current: '',
			onImage: function () { },
			activate: function (_src) {

				onPageLoad(_src);
			},
			next: function () {
				var _next = $($$.nextSelector(wrapper.galleria.current));
				this.activate(_next);
			},
			prev: function () {				
				var _prev = $($$.previousSelector(wrapper.galleria.current));
				this.activate(_prev);
			}
		}, $opts);
		return this.each(function () {

			$(this).addClass('galleria');
			$(this).children('li').each(function (i) {
				
				var _container = $(this);
				
				var _o = $.meta ? $.extend({}, $opts, _container.data()) : $opts;
				_o.clickNext = $(this).is(':only-child') ? false : _o.clickNext;
				var _a = $(this).find('a').is('a') ? $(this).find('a') : false;
				var _img = $(this).children('img').css('display', 'none');
				var _src = _a ? _a.attr('href') : _img.attr('src');
				var meta = getImageMeta(_container);

				if (_src) {

					if (!String.IsNullOrWhiteSpace(meta.ViewportImageUrl)) {

						_src = meta.ViewportImageUrl;
					}
				}
				var _title = _a ? _a.attr('title') : meta.Title;
				var _loader = new Image();

				$(_loader).load(function () {

					$(this).attr('alt', meta.Title);
					var _thumb = _a ? _a.find('img').addClass('thumb noscale').css('display', 'none') : _img.clone(true).addClass('thumb').css('display', 'none');
					if (_a) {
						_a.replaceWith(_thumb);
					}
					if ($opts.scaleTumbs) {
						var w = Math.ceil(_img.width() / _img.height() * _container.height());
						var h = Math.ceil(_img.height() / _img.width() * _container.width());
						if (w < h) {
							_thumb.css({
								height: 'auto',
								width: _container.width(),
								marginTop: -(h - _container.height()) / 2
							});
						} else {
							_thumb.css({
								width: 'auto',
								height: _container.height(),
								marginLeft: -(w - _container.width()) / 2
							});
						}
					} else {
						window.setTimeout(function () {
							_thumb.css({
								marginLeft: -(_thumb.width() - _container.width()) / 2,
								marginTop: -(_thumb.height() - _container.height()) / 2
							});
						}, 1);
					}

					_thumb.data('ViewportImageUrl', _src);
					_thumb.data('Meta', meta);
					_thumb.attr('title', _title);

					var onClick = function () {
						wrapper.galleria.activate(_container);
					};

					_thumb.click(onClick);
					_container.find(".PlayVideo, .ActiveImage").attr({title: meta.Title, alt: meta.Title}).click(onClick);
					_thumb.hover(function () {
						$(this).addClass('hover');
					}
                    , function () {
                    	$(this).removeClass('hover');
                    });
					_container.hover(function () {
						_container.addClass('hover');
					},
                    function () {
                    	_container.removeClass('hover');
                    });
					_container.prepend(_thumb);
					_thumb.css('display', 'block');
					_o.onThumb(jQuery(_thumb));
					if (_container.hasClass('active')) {
						wrapper.galleria.activate(_container);
					}
					_img.remove();
				}).error(function () {
					_container.html('<span class="error" style="color:red">Error loading image: ' + _src + '</span>');
				}).attr('src', _src);
			});
		});
	};
	$$.nextSelector = function (selector) {
		return $(selector).is(':last-child') ? $(selector).siblings(':first-child') : $(selector).next();
	};
	$$.previousSelector = function (selector) {
		return $(selector).is(':first-child') ? $(selector).siblings(':last-child') : $(selector).prev();
	};
	$$.hasCSS = function () {
		$('body').append($(document.createElement('div')).attr('id', 'css_test').css({
			width: '1px',
			height: '1px',
			display: 'none'
		}));
		var _v = ($('#css_test').width() != 1) ? false : true;
		$('#css_test').remove();
		return _v;
	};
})(jQuery);

(function ($) {

	$.fn.ITUGallery = function (options) {

		var settings = {

			Wrapper: ""
		};
		return this.each(function () {

			if (options) {
				$.extend(settings, options);
			}

			var me = $(this);
			settings.Wrapper = me;

			me.data("ITUGallery", new ITU.Gallery(settings));
		});
	};
})(jQuery);


SnTUtils.RegisterNameSpace("ITU.MiniGallery");

ITU.MiniGallery = function (settings) {

	var _me = this;
	this.Config = {
		Container: '',
		FadeSpeed: 500
	};

	var Init = function () {

		_me.Config = $.extend({}, _me.Config, settings);
		_me.Config.Container = $(_me.Config.Container);

		InitGallery();
	};

	var InitGallery = function () {

		var container = _me.Config.Container;
		var carousel = container.find(".ObjectDetailsCarouselGallery");

		carousel.jCarouselLite({
			 visible: 1
			, scroll: 1
			, speed: 1
			, fadeSpeedOut: 125
            , fadeSpeedIn: 250
            , fadeOutTo: 0.1
            , fadeInTo: 1.0
            , fadeSelector: 'img'
            , fade: true
			, btnNext: container.find(".ObjectDetailsCarouselGalleryNext")
            , btnPrev: container.find(".ObjectDetailsCarouselGalleryPrev")
		});

	};

	Init();
};

(function ($) {

	$.fn.ITUMiniGallery = function (options) {

		var settings = {
			Container: ''
		};
		return this.each(function () {

			if (options) {
				$.extend(settings, options);
			}

			var me = $(this);
			settings.Container = me;

			if(!me.data("ITUMiniGallery"))
			{
				me.data("ITUMiniGallery", new ITU.MiniGallery(settings));
			}
		});
	};
})(jQuery);

SnTUtils.RegisterNameSpace("ITU.MainCarousel");

ITU.MainCarousel = {

	Init: function (settings) {

		_mainHeaderCarousel = $("#mainCarousel");

		var config = $.extend({}, {

			btnNext: "#mainCarouselControlsContainer .next-container a"
			, btnPrev: "#mainCarouselControlsContainer .prev-container a"
			, pager: '#mainCarouselPager'
			, pagerItemHtml: ''
			, visible: 1
			, scroll: 1
			, speed: 0
			, fadeSpeedOut: 250
			, fadeSpeedIn: 500
			, fadeOutTo: 0.1
			, fadeInTo: 1.0
			, fadeSelector: '.topnewsimg'
			, fade: true
			, lazyLoadFunction: null
			, imageFormatId: 0
			, imageWidth: 980
			, imageHeight: 364
		}, settings);

		config.lazyLoadFunction = function (args) {

			var imageDimensionString = config.imageFormatId > 0 ? ("fmtId=" + config.imageFormatId) : ("width=" + config.imageWidth + "&height=" + config.imageHeight);

			$(args.item).find("img.Obserable").attr("src", String.Format("/ResourceManager/GetImage.aspx?{0}&imgId={1}", imageDimensionString, args.itemId));
		};
		
		_mainHeaderCarousel.jCarouselLite(config);

		_mainHeaderCarousel.carousel = _mainHeaderCarousel.data("carousel");
	}
};
