/*
* jQuery ifixpng plugin
* (previously known as pngfix)
* Version 2.1  (23/04/2008)
* @requires jQuery v1.1.3 or above
*
* Examples at: http://jquery.khurshid.com
* Copyright (c) 2007 Kush M.
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*/

(function($) {

	/**
	* helper variables and function
	*/
	$.ifixpng = function(customPixel) {
		$.ifixpng.pixel = customPixel;
	};

	$.ifixpng.getPixel = function() {
		return $.ifixpng.pixel || '/Templates/Main/Images/pixel.gif';
	};

	var hack = {
		ltie7: $.browser.msie && $.browser.version < 7,
		filter: function(src) {
			return "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='" + src + "')";
		}
	};

	/**
	* Applies ie png hack to selected dom elements
	*
	* $('img[@src$=.png]').ifixpng();
	* @desc apply hack to all images with png extensions
	*
	* $('#panel, img[@src$=.png]').ifixpng();
	* @desc apply hack to element #panel and all images with png extensions
	*
	* @name ifixpng
	*/
	$.fn.ifixpng = hack.ltie7 ? function() {
		return this.each(function() {
			var $$ = $(this);

			// in case rewriting urls
			var base = $('base').attr('href');
			if (base) {
				// remove anything after the last '/'
				base = base.replace(/\/[^\/]+$/, '/');
			}
			if ($$.is('img') || $$.is('input')) { // hack image tags present in dom
				if ($$.attr('src')) {
					if ($$.attr('src').match(/.*\.png([?].*)?$/i)) { // make sure it is png image
						// use source tag value if set 
						var source = (base && $$.attr('src').search(/^(\/|http:)/i)) ? base + $$.attr('src') : $$.attr('src');
						// apply filter
						$$.css({ filter: hack.filter(source), width: $$.width(), height: $$.height() })
						  .attr({ src: $.ifixpng.getPixel() })
						  .positionFix();
					}
				}
			} else { // hack png css properties present inside css
				var image = $$.css('backgroundImage');
				if (image.match(/^url\(["']?(.*\.png([?].*)?)["']?\)$/i)) {
					image = RegExp.$1;
					image = (base && image.substring(0, 1) != '/') ? base + image : image;
					$$.css({ backgroundImage: 'none', filter: hack.filter(image) })
					  .children().children().positionFix();
				}
			}
		});
	} : function() { return this; };

	/**
	* Removes any png hack that may have been applied previously
	*
	* $('img[@src$=.png]').iunfixpng();
	* @desc revert hack on all images with png extensions
	*
	* $('#panel, img[@src$=.png]').iunfixpng();
	* @desc revert hack on element #panel and all images with png extensions
	*
	* @name iunfixpng
	*/

	$.fn.iunfixpng = hack.ltie7 ? function() {
		return this.each(function() {
			var $$ = $(this);
			var src = $$.css('filter');
			if (src.match(/src=["']?(.*\.png([?].*)?)["']?/i)) { // get img source from filter
				src = RegExp.$1;
				if ($$.is('img') || $$.is('input')) {
					$$.attr({ src: src }).css({ filter: '' });
				} else {
					$$.css({ filter: '', background: 'url(' + src + ')' });
				}
			}
		});
	} : function() { return this; };

	/**
	* positions selected item relatively
	*/

	$.fn.positionFix = function() {
		return this.each(function() {
			var $$ = $(this);
			var position = $$.css('position');
			if (position != 'absolute' && position != 'relative') {
				$$.css({ position: 'relative' });
			}
		});
	};

})(jQuery);





/*
* "jQuery checkbox v.1.3.0 Beta 1"
* http://widowmaker.kiev.ua/checkbox/
*/

displayForm = function(elementId) {
	var content = [];
	$('#' + elementId + ' input').each(function() {
		var el = $(this);
		if ((el.attr('type').toLowerCase() == 'radio')) {
			if (this.checked)
				content.push([
								'"', el.attr('name'), '": ',
								'value="', (this.value), '"',
								(this.disabled ? ', disabled' : '')
							].join(''));
		}
		else
			content.push([
							'"', el.attr('name'), '": ',
							(this.checked ? 'checked' : 'not checked'),
							(this.disabled ? ', disabled' : '')
						].join(''));
	});
	alert(content.join('\n'));
}

changeStyle = function(skin) {
	jQuery('#myform :checkbox').checkbox((skin ? { cls: skin} : {}));
}



/* Infinite Carousell 
*  Made By JQueryForDesigners.com
*/

$.fn.infiniteCarousel = function(custom) {


	function repeat(str, num) {
		return new Array(num + 1).join(str);
	}

	return this.each(function() {


		var $wrapper = $('.wrapper', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $single = $items.filter(':first'),

			singleWidth = $single.outerWidth(),
			visible = Math.ceil($wrapper.innerWidth() / singleWidth),
            currentPage = 1,
			cSpeed = 700,
            pages = Math.ceil($items.length);
		var myInterval;

		// 1. If items is less then the visible items, abort the carousel
		if (pages > visible) {

			// 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
			$items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
			$items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
			$items = $slider.find('> li'); // reselect

			// 3. Set the left position to the first 'real' item
			$wrapper.scrollLeft(singleWidth * visible);

			// 4. paging function
			function gotoPage(page) {

				controllerID = page - 1;
				$(".carouselController").removeClass("carouselControllerCurrent");
				if (page > pages) {
					$(".carouselController").eq(0).addClass("carouselControllerCurrent");
				}
				else if (page == 0) {
					$(".carouselController").eq(pages - 1).addClass("carouselControllerCurrent");
				}
				else {
					$(".carouselController").eq(controllerID).addClass("carouselControllerCurrent");
				}


				var dir = page < currentPage ? -1 : 1,
					n = Math.abs(currentPage - page),
					left = singleWidth * dir * n;

				$wrapper.filter(':not(:animated)').animate({
					scrollLeft: '+=' + left
				}, cSpeed, function() {
					if (page == 0) {
						$wrapper.scrollLeft(singleWidth * (pages + (visible - 1)));
						page = pages;
					} else if (page > pages) {
						$wrapper.scrollLeft(singleWidth * visible);
						// reset back to start position
						page = 1;
					}

					currentPage = page;
				});

				return false;
			}

			function triggerTimer() {
				myInterval = setInterval(function() { return gotoNextPage() }, 15000);
			}

			function clearTimer() {
				if (myInterval !== undefined) {
					clearInterval(myInterval);
				}

			}

			function gotoNextPage() {
				gotoPage(currentPage + 1);
			}

			$wrapper.after('<span class="prevBtn"><a href="javascript:void(0);" class="png">Previous</a></span>');
			$wrapper.after('<span class="nextBtn"><a href="javascript:void(0);" class="png">Next</a></span>');

			if (custom == "pager") {
				numOfPages = $(".infiniteCarousel li").length - 2;
				for (var p = 0; p < numOfPages; p++) {
					$(".carouselControllerContainer").append('<a href="javascript:void(0);" class="carouselController">&nbsp;</a>');
				}
				$(".carouselController").eq(0).addClass("carouselControllerCurrent");
				cSpeed = 1500;
				triggerTimer();
			}


			// 5. Bind to the forward and back buttons
			$('.prevBtn', this).click(function() {
				clearTimer();
				return gotoPage(currentPage - 1);

			});

			$('.nextBtn', this).click(function() {
				clearTimer();
				return gotoPage(currentPage + 1);
			});

			// bind controlls to paging function
			$('.carouselController', this).click(function() {
				gotoPageNum = $(".carouselController").index(this) + 1;
				clearTimer();
				return gotoPage(gotoPageNum);

			});

			// create a public interface to move to a specific page
			$(this).bind('goto', function(event, page) {
				clearTimer();
				gotoPage(page);
			});
		}
	});
};


/* Infinite Carousell "Dynamic"
* Modefied By Phosworks to take Dynamic width of list objects.
*  Made By JQueryForDesigners.com
*/

$.fn.infiniteCarouselDynamic = function(custom) {


    function repeat(str, num) {
        return new Array(num + 1).join(str);
    }

    return this.each(function() {


        var $wrapper = $('.wrapper', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $single = $items.filter(':first'),
			singleWidth = [],
			startPosLeft = 0,
			innerSliderWidth = 0;

        for (i = 0; i < $items.length; i++) {
            singleWidth[i] = $items.eq(i).outerWidth();
            innerSliderWidth += singleWidth[i];
        }

        var currentPage = 1,
			cSpeed = 700,
            pages = Math.ceil($items.length),
			visible = pages - 1;
        var myInterval;

        // 1. If items is less then the visible items, abort the carousel
        if (innerSliderWidth <= $wrapper.width()) {
            return false
        }


        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
        $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
        $items = $slider.find('> li'); // reselect

        // 3. Set the left position to the first 'real' item
        for (i = 1; i < visible + 1; i++) {
            startPosLeft += singleWidth[i];
        }

        $wrapper.scrollLeft(startPosLeft);


        // 4. paging function
        function gotoPage(page) {

            controllerID = page - 1;
            controllerIDArray = page - 2;


            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = singleWidth[controllerIDArray] * dir * n;



            $wrapper.filter(':not(:animated)').animate({
                scrollLeft: '+=' + left
            }, cSpeed, function() {

                if (page == 0) {
                    $wrapper.scrollLeft(singleWidth[controllerIDArray] * (pages + (visible - 1)));
                    page = pages;
                } else if (page > pages) {

                    $wrapper.scrollLeft(startPosLeft);
                    // reset back to start position
                    page = 1;
                }

                currentPage = page;
            });

            return false;
        }


        function gotoNextPage() {
            gotoPage(currentPage + 1);
        }

        $wrapper.after('<span class="prevBtn"><a href="javascript:void(0);" class="png">Previous</a></span>');
        $wrapper.after('<span class="nextBtn"><a href="javascript:void(0);" class="png">Next</a></span>');


        // 5. Bind to the forward and back buttons
        $('.prevBtn', this).click(function() {
            return gotoPage(currentPage - 1);

        });

        $('.nextBtn', this).click(function() {
            return gotoPage(currentPage + 1);
        });

        // create a public interface to move to a specific page
        $(this).bind('goto', function(event, page) {
            clearTimer();
            gotoPage(page);
        });
    });
};

jQuery.extend(jQuery.easing,
{
	def: 'easeOutCubic',
	swing: function(x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeOutCubic: function(x, t, b, c, d) {
		return c * ((t = t / d - 1) * t * t + 1) + b;
	}
});


var GUI = function () {
    var mediaGalleryIndex = -1;
    var lastMediaFileBtnSelector = "";

    function initGUI() {

        if ($.browser.msie && $.browser.version < 7)
        { MiscGUIFixes(false); }

        HideJavaScriptElements(); //removes elements for JavaScript users
        $("img[src$='.png'], .png").ifixpng(); //Png fixes
        imageGallery();
        infiniteSlider();
        HorizontalTabList();  // tabs with selection links on left
        initBrowserOverflow(); // removes the need for horizontal scroller on decoration items
        tooltip(); //adds tooltip popup
        breadcrumbsBorder(); // adds the border below the breadcrumbs
        selectJs();
        activateButtons();
        preloadImages();
        mediaGallery();
        mediaGallery2();
        window.firstTimeGallery2 = 1;
        window.firstTimeMediaGallery = 1;
    }


    function MiscGUIFixes(partialupdate) {
        HoverClassHelper('#mainNav > li', 'hover');
    }

    function HoverClassHelper(selector, cssclass) {
        $(selector).hover(

			function () { $(this).toggleClass(cssclass); },
			function () { $(this).toggleClass(cssclass); }
		);
    }

    function HideJavaScriptElements() {
        $(".noJS").hide();
    }

    function preloadImages() {

    }

    function activateButtons() {
        var scrollLeft = $("html").scrollLeft();
        var scrollTop = $("html").scrollTop();
        var centerX = $("#container").outerWidth() / 2;

        $('#headerCompare').click(function () {
            $(".modalPopup").hide();
            var overlay = $(".mp_compareProducts");
            overlay.css({ 'display': 'block', 'top': scrollTop + 50, 'left': scrollLeft + centerX - overlay.outerWidth() / 2 });
        });

        $('.email').click(function () {
            $(".modalPopup").hide();
            var overlay = $(".mp_sendToAFriend");
            overlay.css({ 'display': 'block', 'top': scrollTop + 50, 'left': scrollLeft + centerX - overlay.outerWidth() / 2 });
        });

        $('.previewEmail').click(function () {
            $('.mp_sendToAFriend').css({ 'width': '670px' });
            $('.mp_emailprev').css({ 'display': 'block' });
            $('.mp_sendToAFriend').animate({
                left: scrollLeft + centerX - overlay.outerWidth() / 2
            }, 2000);
        });

        $('.share').click(function () {
            $(".modalPopup").hide();
            var overlay = $(".mp_socialBookmarking");
            overlay.css({ 'display': 'block', 'top': scrollTop + 50, 'left': scrollLeft + centerX - overlay.outerWidth() / 2 });
        });

        $('.datepickerInput').focus(function () {
            $(".modalPopup").hide();
            window.currentDatepicker = $(this);
            var overlay = $(".mp_smallCalendar");
            overlay.css({ 'display': 'block', 'top': scrollTop + 50, 'left': scrollLeft + centerX - overlay.outerWidth() / 2 });
        });

        $('.datepickerBtn').click(function () {
            $(".modalPopup").hide();
            window.currentDatepicker = $(this).parent().find("input");
            popPosition = $(this).offset();
            contentPosition = $("#content").offset();
            $('.mp_smallCalendar').css({ 'display': 'block', 'top': (popPosition.top + $(this).outerHeight() - 90), 'left': (popPosition.left - contentPosition.left - $('.mp_socialBookmarking').outerWidth() + $(this).outerWidth()) });
        });

        //Startpage productfider hovereffect
        $('.carouselType6 .DockItem').mouseenter(function () {
            $(this).find(".hoverImg").fadeIn(80);
            $(this).find("a").animate({ top: "-10px" }, 80);
        });
        $('.carouselType6 .DockItem').mouseleave(function () {
            $(this).find(".hoverImg").fadeOut(80);
            $(this).find("a").animate({ top: "0px" }, 80);
        });


    }

    function initBrowserOverflow() {
        setBrowserOverflow();
        $(window).bind("resize", resizeWindow);
    }

    function selectJs() {

        if ($(".selectJs").length > 0) {
            $(".selectJs").selectbox();
        }
    }

    function resizeWindow(e) {
        setBrowserOverflow();
    }

    function setBrowserOverflow() {
        var newWindowWidth = $(window).width();
        if (newWindowWidth <= 1000) { $("html").css({ "overflow-x": "auto", "position": "static" }); }
        else { $("html").css({ "overflow-x": "hidden", "position": "relative" }); }
    }

    function HorizontalTabList() {

        $(".tlhButtonWrapper li").click(function () {
            $(".tlhButtonWrapper li").removeClass("tlhSelectedTrue")
            $(this).addClass("tlhSelectedTrue");

            $(".tlhContentWrapper").hide();
            $(".tlhContentWrapper").eq($(".tlhButtonWrapper li").index(this)).fadeIn(500);
        });

    }

    function infiniteSlider() {

        if (document.images) {
            //ctype1
            pic1 = new Image(62, 119);
            pic1.src = "/Templates/Main/Images/common/carouselType1/nextBtnHover.jpg";
            pic2 = new Image(62, 119);
            pic2.src = "/Templates/Main/Images/common/carouselType1/prevBtnHover.jpg";

            //ctype2
            pic3 = new Image(26, 64);
            pic3.src = "/Templates/Main/Images/common/carouselType2/nextBtnHover.jpg";
            pic4 = new Image(26, 64);
            pic4.src = "/Templates/Main/Images/common/carouselType2/prevBtnHover.jpg";

            //ctype3
            pic3 = new Image(59, 60);
            pic3.src = "/Templates/Main/Images/common/carouselType3/nextBtnHover.png";
            pic4 = new Image(59, 60);
            pic4.src = "/Templates/Main/Images/common/carouselType3/prevBtnHover.png";
        }
        if ($(".infiniteCarousel").length > 0) {
            if ($(".carouselType6").length > 0) {
                $('.carouselType6').infiniteCarouselDynamic();
            }
            if ($('.infiniteCarousel:not(.carouselType6)').length > 0) {
                $('.infiniteCarousel:not(.carouselType6)').infiniteCarousel();
            }
        }

        selectedCt1 = $(".carouselType1 .wrapper ul .selected"); // for the product carousel, selected element
        indexOfselectedCt1 = $(".carouselType1 li").index(selectedCt1); // for the product carousel, index of selected element
        selectedCt4 = $(".carouselType4 .wrapper ul .selected"); // for the series carousel, selected element
        indexOfselectedCt4 = $(".carouselType4 li").index(selectedCt4); // for the series carousel, index of selected element

        $(".carouselType1").trigger("goto", indexOfselectedCt1); // for the product carousel, goto selected item
        $(".carouselType4").trigger("goto", indexOfselectedCt4 + 2); // for the series carousel, goto selected item
    }

    function tooltip() {
        $(".toolTip").bind("mouseenter", function () {
            $(".mp_toolTip .toolTipHeader").text($(this).parent().text());
            $(".mp_toolTip .toolTipText").html($(this).attr("alt"));

            // Prevent alt-text from being displayed in IE
            $(this).attr("alt", "");

            var left = $(this).offset().left - $("#content").offset().left - $(".mp_toolTip").width() - 5;

            if (left < 0) {
                left = $(this).offset().left - $("#content").offset().left + 32;
                $(".mp_toolTip .TooltipArrow").addClass("TooltipArrowLeft");
                $(".mp_toolTip .TooltipArrow").attr("src", "/Templates/Main/Images/common/modalPopupTooltipArrowLeft.gif");
            }
            else {
                $(".mp_toolTip .TooltipArrow").removeClass("TooltipArrowLeft");
                $(".mp_toolTip .TooltipArrow").attr("src", "/Templates/Main/Images/common/modalPopupTooltipArrow.gif");
            }

            $(".mp_toolTip").css({ 'display': 'block', 'top': $(this).offset().top - 43, 'left': left });
            return false;
        }).bind("mouseleave", function () {
            $(".mp_toolTip").css({ 'display': 'none' });

            // Restore cleared alt-text
            $(this).attr("alt", $(".mp_toolTip .toolTipText").html());
        });

        $(".toolTipSpan").bind("mousemove", function (e) {
            $(".mp_toolTip .toolTipText").html($(".toolTipInfo", this).html());
            $(".mp_toolTip").css('display', 'block');
            $(".mp_toolTip").css({ top: $(this).offset().top - 120, left: e.pageX - $("#container").offset().left - ($(".mp_toolTip").width() / 2) });
        }).bind("mouseleave", function () {
            $(".mp_toolTip").css({ 'display': 'none' });
        });
        $(".toolTipImg").bind("mousemove", function (e) {
            $(".mp_toolTip .toolTipText").html($(this).attr("alt"));
            $(".mp_toolTip").css('display', 'block');
            $(".mp_toolTip").css({ top: $(this).offset().top - 6, left: e.pageX - $("#content").offset().left - ($(".mp_toolTip").width() / 2) + 5 });
        }).bind("mouseleave", function () {
            $(".mp_toolTip").css({ 'display': 'none' });
        });

    }

    function breadcrumbsBorder() {
        if ($(".subProducts").length > 0) {
            $('#breadcrumbs').css({ 'border-bottom': '1px solid #eaebe2' })
        }
        if ($(".subIdeas").length > 0) {
            $('#breadcrumbs').css({ 'border-bottom': '1px solid #eaebe2' })
        }
        /*if ($(".subAbout").length > 0) {
        $('#breadcrumbs').css({ 'border-bottom': '1px solid #eaebe2', 'height': '60px' })
        }*/
        if ($(".subCommonArticle").length > 0) {
            $('#breadcrumbs').css({ 'border-bottom': '1px solid #eaebe2' })
        }
    }

    function imageGallery() {

        var picIndex = 0;
        var picContainer = $("#TempValue");
        var borderStyle = "3px solid #ED7921";

        if ($(".customImagesContainer li").length > 0) {
            var nrOfPics = $(".customImagesContainer li").length - 1;
            var picContainer = $(".customImagesContainer li");
            var picWrapper = $(".customImagesContainer");
        }
        else if ($(".productImageGallery li").length > 0) {
            var nrOfPics = $(".productImageGallery li").length - 1;
            var picContainer = $(".productImageGallery li");
            var picWrapper = $(".productImageGallery");
        }

        $(".galleryTotalImg").text(nrOfPics + 1);

        $(".mpPrevBtn,.mpNextBtn").click(function () {
            if ($(this).hasClass("mpPrevBtn")) {
                if (picIndex <= 0) { picIndex = nrOfPics; }
                else { picIndex = picIndex - 1; }
            }
            else {
                if (picIndex >= nrOfPics) { picIndex = 0; }
                else { picIndex = picIndex + 1; }
            }

            currentImg = $(".customImagesContainer li").eq(picIndex);
            imageGalleryDisplay(picIndex, currentImg);
        });

        picContainer.click(function () {
            picIndex = picContainer.index(this)
            $(".mp_imageGallery").show();
            $(".mp_imageGallery").css("top", $("html").scrollTop() + 50);
            $("#overlay").show();
            imageGalleryDisplay(picIndex, this);
        });

        function imageGalleryDisplay(picIndex, currentImg) {
            picWrapper.find("img").css({ 'border-top': 'none' });
            $("img", currentImg).css({ 'border-top': borderStyle });
            $(".galleryCurrentImg").text(picIndex + 1);
            var $singleFlashSrc = $(".singleflashsrc", currentImg);

            if ($singleFlashSrc.length > 0 && $singleFlashSrc.html().length > 1) {
                // Show stand alone swf
                var singleFlashSrc = $singleFlashSrc.html();
                var mediaWidth = $(".mediawidth", currentImg).html();
                var mediaHeight = $(".mediaheight", currentImg).html();
                var bgColor = $(".mediabgcolor", currentImg).html();
                $(".mp_imageGallery #galleryBigPic").html('<div id="galleryMedia">&nbsp;</div>');

                // EmbedSwf and EmbedFlv function is found in common.js
                if (singleFlashSrc.toLowerCase().indexOf(".flv") > 0)
                    EmbedFlv("galleryMedia", singleFlashSrc, mediaWidth, mediaHeight, bgColor);
                else
                    EmbedSwf("galleryMedia", singleFlashSrc, mediaWidth, mediaHeight, bgColor);
            }
            else if ($(".globalconfig", currentImg).length > 0 && $(".globalconfig", currentImg).html().length > 0) {
                // Show media
                var globalConfigPath = $(".globalconfig", currentImg).html();
                var localConfigPath = $(".localconfig", currentImg).html();
                var textXmlUrl = $(".textxml", currentImg).html();
                var mediaWidth = $(".mediawidth", currentImg).html();
                var mediaHeight = $(".mediaheight", currentImg).html();
                var bgColor = $(".mediabgcolor", currentImg).html();
                var locale = $(".locale", currentImg).html();

                $(".mp_imageGallery #galleryBigPic").html('<div id="galleryMedia">&nbsp;</div>');
                // EmbedMediaPlayer-function is found in common.js
                EmbedMediaPlayer("galleryMedia", globalConfigPath, localConfigPath, textXmlUrl, locale, mediaWidth, mediaHeight, bgColor);
            }
            else {
                $(".mp_imageGallery #galleryBigPic").html('<img src="' + $("span", currentImg).text() + '" alt="AEG" />');
            }

            if ($('.heading', currentImg).length > 0)
                $('.mp_imageGallery h3').html($('.heading', currentImg).html());
            else {
                $('.mp_imageGallery h3').html('');
            }

            if ($('.paragraphText', currentImg).length > 0)
                $(".mp_imageGallery p").html($('.paragraphText', currentImg).html());
            else
                $(".mp_imageGallery p").html('&nbsp;');
        }
    }

    // Added by Mattias Logica 2009-12-04
    function mediaGallery() {
        window.MediaFileOverlayConfig = {
            SWFDefaultWidth: 400,
            SWFDefaultHeight: 400
        };

        var mediaFileBtnSelector = ".mediaFileBtn[href!='javascript:void(0)']";
        var mediaFileBtn2Selector = ".mediaFileBtn2[href!='javascript:void(0)']";
        var mediaFileIndex = 0;
        var mediaFileCount = $(mediaFileBtnSelector).length;

        // Move below to a separate js-file later
        $(".mediaFileBtn,.mediaFileBtn2,.mediaFileBtnAdditional,.mediaFileBtn2Additional").click
		(
			function () {
			    var sender;
			    var thumbCssClass = "mediaGlryThumb";
			    var btnSelector = mediaFileBtnSelector;

			    if ($(this).hasClass("mediaFileBtn")) {
			        sender = $(this);
			        mediaFileIndex = $(mediaFileBtnSelector).index(this);
			    }
			    else if ($(this).hasClass("mediaFileBtn2")) {
			        sender = $(this);
			        mediaFileIndex = $(mediaFileBtn2Selector).index(this);
			        thumbCssClass = "mediaGlryThumb2";
			        mediaFileCount = $(mediaFileBtn2Selector).length;
			        btnSelector = mediaFileBtn2Selector;
			    }
			    else if ($(this).hasClass("mediaFileBtnAdditional")) {
			        var thisIndex = $(".mediaFileBtnAdditional").index(this);
			        sender = $(this).parent().siblings(".mediaFileBtn").eq(thisIndex);
			        mediaFileIndex = $(mediaFileBtnSelector).index(sender);
			    }
			    else {
			        var thisIndex = $(".mediaFileBtn2Additional").index(this);
			        sender = $(this).parent().siblings(".mediaFileBtn2").eq(thisIndex);
			        mediaFileIndex = $(mediaFileBtn2Selector).index(sender);
			        thumbCssClass = "mediaGlryThumb2";
			        mediaFileCount = $(mediaFileBtn2Selector).length;
			        btnSelector = mediaFileBtn2Selector;
			    }
			    return mediaFileBtnOnClick(sender, thumbCssClass, btnSelector);
			}
		);

        function mediaFileBtnOnClick(sender, thumbCssClass, btnSelector) {
            var overlay = $(".mp_imageGallery2");
            overlay.css("display", "block");
            var ul = $("ul.horizontalList", overlay);
            var carouselDeactivate = 0;
            var visibleItems = 7;
            var items = $("li", ul);

            if (sender.attr("href") != "javascript:void(0)" && (btnSelector != lastMediaFileBtnSelector || window.firstTimeGallery2 != 0 || window.firstTimeMediaGallery == 0)) {
                if (items.length == 0 || (window.firstTimeMediaGallery == 0 || btnSelector != lastMediaFileBtnSelector)) {
                    var ulHtml = "";

                    // Populate li-tags with thumbnails
                    $(btnSelector).each(
						function () {
						    ulHtml += "<li><a href=\"" + $(this).attr("href") + "\" class=\"" + thumbCssClass + "\"><img class=\"bm12\" src=\"" + $(this).children(".overlayThumb").attr("src") + "\" /><span class=\"heading displayNone\">" + $("span.heading", this).html() + "</span><span class=\"text displayNone\">" + $("span.text", this).html() + "</span></a></li>";
						}
					);
                    ul.html(ulHtml);
                }

                items = $("li", ul);
                realItems = items.length;

                if (visibleItems < realItems) {
                    $(".carouselTypeMp2").infiniteCarousel("none");
                }
                else {
                    innerMp2Width = $(".carouselTypeMp2 ul").children().length * $(".carouselTypeMp2 ul").children().eq(0).outerWidth(); // assume that every element is the same width
                    outerMp2Width = $(".carouselTypeMp2").outerWidth();
                    leftpaddingInnerMp2 = (outerMp2Width - innerMp2Width) / 2;
                    $(".carouselTypeMp2 ul").css("left", leftpaddingInnerMp2 + "px");
                }

                // Register click event after the li-tags have been populated so that jquery finds them.
                $("." + thumbCssClass).click(
					function () {
					    mediaFileIndex = $("." + thumbCssClass).index(this);
					    return mediaGalleryThumbOnClick($(this));
					}
				);

                window.firstTimeGallery2 = 0;
                lastMediaFileBtnSelector = btnSelector;
            }

            items = $("li", ul);
            realItems = items.length;
            items.removeClass("selected");

            if (realItems <= visibleItems) {
                items.eq(mediaFileIndex).addClass("selected");
            }
            else {
                var realPicIndex = mediaFileIndex + visibleItems;
                if (realPicIndex - realItems < 0) {
                    realPicIndexMinusRealItems = -1;
                }
                else {
                    realPicIndexMinusRealItems = realPicIndex - realItems;
                }

                $(".carouselTypeMp2").trigger("goto", { page: mediaFileIndex + 1 });
                items.eq(realPicIndex).addClass("selected");
                items.eq(realPicIndexMinusRealItems).addClass("selected");
                items.eq(realPicIndex + realItems).addClass("selected");
            }

            return displayMediaOverlay(sender, overlay, $("span.heading", sender).html(), $("span.text", sender).html());
        }

        function mediaGalleryThumbOnClick(sender) {
            var overlay = $(".mp_imageGallery2");
            var ul = $(".horizontalList", overlay);
            var heading = $("span.heading", sender).html();
            var txt = $("span.text", sender).html();
            var thisIndex = $("li", ul).index(sender.parent());

            $("li", ul).removeClass("selected");
            $("li", ul).eq(thisIndex).addClass("selected");

            displayMediaOverlay(sender, overlay, heading, txt);
            return false;
        }
    }

    // Media Gallery on Product Page
    function mediaGallery2() {
        $(".mediaGallery").click(
			function () {
			    mediaGalleryIndex = $(".mediaGallery").index(this);
			    var $mediaContainer = $("#mediaGalleryPic");
			    var singleflashsrc = $(".singleflashsrc", this).html();
			    var globalconfig = $(".globalconfig", this).html();
			    var mediawidth = Math.min(parseInt($(".smallmediawidth", this).html() || "457"), 457);
			    var mediaheight = parseInt($(".smallmediaheight", this).html() || "257");
			    var mediabgcolor = $(".mediabgcolor", this).html();
			    var href = $(this).attr("href");
			    var $viewLarger = $("#mediaGalleryViewer #viewLarger");
			    $viewLarger.click(showMediaGalleryOverlay);

			    if (singleflashsrc != null && singleflashsrc.length > 0) {
			        $mediaContainer.html('<div id="mediaGallerySwf"></div>');
			        if (singleflashsrc.toLowerCase().indexOf(".flv") > 0)
			            EmbedFlv("mediaGallerySwf", singleflashsrc, mediawidth, mediaheight, mediabgcolor);
			        else
			            EmbedSwf("mediaGallerySwf", singleflashsrc, mediawidth, mediaheight, mediabgcolor);
			    }
			    else if (globalconfig != null && globalconfig.length > 0) {
			        var localconfig = $(".localconfig", this).html();
			        var textxml = $(".textxml", this).html();
			        var locale = $(".locale", this).html();
			        $mediaContainer.html('<div id="mediaGallerySwf"></div>');
			        EmbedMediaPlayer("mediaGallerySwf", globalconfig, localconfig, textxml, locale, mediawidth, mediaheight, mediabgcolor);
			    }
			    else {
			        var imageUrl = $(".imageUrl", this).html();
			        var imageCss = "cursor: pointer;";
			        $mediaContainer.html('<img src="' + href + '"  style="' + imageCss + '" />');
			    }

			    // Image
			    var $viewLargerImage = $("#mediaGalleryViewer #mediaGalleryPic img");
			    $viewLargerImage.click(showMediaGalleryOverlay);

			    $("#mediaGalleryText").html($(".text", this).html());
			    $(".mediaGallery").removeClass("selected");
			    $(this).addClass("selected");
			    return false;
			}
		);

        function showMediaGalleryOverlay(e) {
            var $sender = $(".mediaGallery").eq(mediaGalleryIndex);
            var $overlay = $(".mp_imageGallery2");
            $overlay.css("display", "block");
            var $ul = $("ul.horizontalList", $overlay);
            var $items = $("li", $ul);
            var visibleItems = 7;
            var realItems;
            var $mediaGalleryLinks = $(".mediaGallery[href!='javascript:void(0)']");

            if (window.firstTimeMediaGallery || window.firstTimeGallery2 == 0) {
                if (window.firstTimeGallery2 == 0 || $items.length == 0) {
                    var ulHtml = "";

                    // Populate li-tags with thumbnails
                    $mediaGalleryLinks.each(
						function () {
						    ulHtml += "<li><a href=\"" + $(".imageUrl", this).html() + "\" class=\"mediaGalleryThumb\"><img class=\"bm12\" src=\"" + $(".overlayThumbUrl", this).html() + "\" /></a></li>";
						}
					);

                    $ul.html(ulHtml);
                }

                $items = $("li", $ul);
                realItems = $items.length;

                if (visibleItems < realItems) {
                    $(".carouselTypeMp2").infiniteCarousel("none");
                }
                else {
                    innerMp2Width = $(".carouselTypeMp2 ul").children().length * $(".carouselTypeMp2 ul").children().eq(0).outerWidth(); // assume that every element is the same width
                    outerMp2Width = $(".carouselTypeMp2").outerWidth();
                    leftpaddingInnerMp2 = (outerMp2Width - innerMp2Width) / 2;
                    $(".carouselTypeMp2 ul").css("left", leftpaddingInnerMp2 + "px");
                }

                $(".mediaGalleryThumb").click(
					function () {
					    mediaGalleryIndex = $(".mediaGalleryThumb").index(this);
					    var $sender = $(".mediaGallery").eq(mediaGalleryIndex);
					    $items.removeClass("selected");
					    $items.eq(mediaGalleryIndex).addClass("selected");
					    return displayMediaOverlay($sender, $overlay, $("span.heading", $sender).html(), $("span.text", $sender).html());
					}
				);

                window.firstTimeMediaGallery = 0;
            }

            realItems = $items.length;
            $items.removeClass("selected");

            if (realItems <= visibleItems) {
                $items.eq(mediaGalleryIndex).addClass("selected");
            }
            else {
                var realPicIndex = mediaGalleryIndex + visibleItems;
                if (realPicIndex - realItems < 0) {
                    realPicIndexMinusRealItems = -1;
                }
                else {
                    realPicIndexMinusRealItems = realPicIndex - realItems;
                }

                $(".carouselTypeMp2").trigger("goto", { page: mediaGalleryIndex + 1 });
                $items.eq(realPicIndex).addClass("selected");
                $items.eq(realPicIndexMinusRealItems).addClass("selected");
                $items.eq(realPicIndex + realItems).addClass("selected");
            }

            return displayMediaOverlay($sender, $overlay, $("span.heading", $sender).html(), $("span.text", $sender).html());
        }
    }

    function displayMediaOverlay(sender, overlay, heading, txt) {
        var mediaFileUrl = sender.attr("href");
        var mediaContainer = $("#gallery2BigPic");
        var $singleFlashSrc = $(".singleflashsrc", sender);
        var $globalConfig = $(".globalconfig", sender);

        if ($singleFlashSrc.length > 0 && $singleFlashSrc.html().length > 1) {
            // Show stand alone swf
            var singleFlashSrc = $singleFlashSrc.html();
            var mediaWidth = $(".mediawidth", sender).html();
            var mediaHeight = $(".mediaheight", sender).html();
            var bgColor = $(".mediabgcolor", sender).html();
            mediaContainer.html('<div id="gallery2Media">&nbsp;</div>');

            // EmbedSwf and EmbedFlv function is found in common.js
            if (singleFlashSrc.toLowerCase().indexOf(".flv") > 0)
                EmbedFlv("gallery2Media", singleFlashSrc, mediaWidth, mediaHeight, bgColor);
            else
                EmbedSwf("gallery2Media", singleFlashSrc, mediaWidth, mediaHeight, bgColor);
        }
        else if ($globalConfig.length > 0 && $globalConfig.html().length > 0) {
            var globalConfigPath = $globalConfig.html();
            var localConfigPath = $(".localconfig", sender).html();
            var textXmlUrl = $(".textxml", sender).html();
            var mediaWidth = $(".mediawidth", sender).html();
            var mediaHeight = $(".mediaheight", sender).html();
            var bgColor = $(".mediabgcolor", sender).html();
            var locale = $(".locale", sender).html();

            mediaContainer.html('<div id="gallery2Media">&nbsp;</div>');
            // EmbedMediaPlayer-function is found in common.js
            EmbedMediaPlayer("gallery2Media", globalConfigPath, localConfigPath, textXmlUrl, locale, mediaWidth, mediaHeight, bgColor);
        }
        else if (mediaFileUrl != "javascript:void(0)" && mediaFileUrl != null && mediaFileUrl.length > 4) {
            var mediaFileExtension = mediaFileUrl.substr(mediaFileUrl.length - 4).toLowerCase();
            var imgFormats = ".jpg, .png, .gif";

            // Display the image or flash
            if (imgFormats.indexOf(mediaFileExtension) > -1 || mediaFileUrl.indexOf("/ImageResize/") > -1) {
                displayImageInMediaOverlay(mediaFileUrl, mediaContainer);
            }
            else {
                switch (mediaFileExtension) {
                    case ".swf":
                        displaySwfInMediaOverlay(mediaFileUrl, mediaContainer, window.MediaFileOverlayConfig.SWFDefaultWidth, window.MediaFileOverlayConfig.SWFDefaultHeight);
                        break;
                    case ".flv":
                        displayFlashVideoInMediaOverlay(mediaFileUrl, mediaContainer, window.MediaFileOverlayConfig.SWFDefaultWidth, window.MediaFileOverlayConfig.SWFDefaultHeight);
                        break;
                    default:
                        // Unsupported format
                        return false;
                }
            }

            mediaContainer.css("display", "block");
        }
        else {
            mediaContainer.css("display", "none");
        }

        // Display heading and text if they exist
        if (heading != null && heading.length > 0) {
            $("h3", overlay).html(heading);
            $("h3", overlay).removeClass("displayNone");
        }
        else {
            $("h3", overlay).addClass("displayNone");
        }

        if (txt != null && txt.length > 0) {
            $("p", overlay).html(txt);
            $("p", overlay).removeClass("displayNone");
        }
        else {
            $("p", overlay).addClass("displayNone");
        }

        // Position and display overlay
        var scrollLeft = $("html").scrollLeft();
        var scrollTop = $("html").scrollTop();
        var centerX = $("#container").outerWidth() / 2;

        overlay.css({ left: scrollLeft + centerX - overlay.outerWidth() / 2, top: scrollTop + 50 });
        overlay.show();
        return false;
    }

    function displayImageInMediaOverlay(mediaFileUrl, mediaContainer) {
        mediaContainer.html("<img src=\"" + mediaFileUrl + "\" />");
        return false;
    }

    function displaySwfInMediaOverlay(mediaFileUrl, mediaContainer, flashWidth, flashHeight) {
        mediaContainer.html('<div id="gallery2Media"></div>');
        EmbedSwf('gallery2Media', mediaFileUrl, flashWidth, flashHeight);
        return false;
    }

    function displayFlashVideoInMediaOverlay(mediaFileUrl, mediaContainer, mediaWidth, mediaHeight) {
        mediaContainer.html('<div id="gallery2Media"></div>');
        EmbedFlv('gallery2Media', mediaFileUrl, mediaWidth, mediaHeight);
        return false;
    }

    return {
        init: initGUI
    }
} ();


function mpPopdown(boxName) {

	boxName = "." + boxName;

	if (boxName == ".mp_imageGallery") {
		$(boxName + " #galleryBigPic").html('');
		$("#pdThoughtful .selectedImg").css({ 'display': 'none' });
	}
	else if (boxName == ".mp_imageGallery2") {
		$(boxName + " #gallery2BigPic").html('');
	}
	
	$(boxName).hide();
}



$(document).ready(function() {

	GUI.init();

});

