/* =========================================================
// jquery.panorama.js
// Author: Arnault PACHOT & Frederic Martini
// Copyright (c) 2009 
// licence : GPL

// Modified by Fox for tourism.poltava.ua
// Copyleft (c) 2009 
========================================================= */
(function ($) {
    $.fn.panorama = function (options) {
        this.each(function () {
            var settings = {
                speed: 50000,
                direction: 'left',
                control_display: 'no',
                start_position: 0,
                auto_start: true,
                mode_360: true,
                loop_180: true,
				showReloader: true
            };
            if (options) $.extend(settings, options);
            var elemWidth = parseInt($(this).attr('width'));
            var elemHeight = parseInt($(this).attr('height'));
            var alt = $(this).attr('alt');
            var stop = false;
            if (isNaN(elemWidth) || isNaN(elemHeight)) {
                var img = new Image();
                img.src = $(this).attr('src');
                if (isNaN(elemWidth)) elemWidth = img.width;
                if (isNaN(elemHeight)) elemHeight = img.height
            }
            var currentElement = this;
            $(this).css('position', 'relative').css('margin', '0').css('padding', '0').css('border', 'none').wrap("<div class='panorama-container'></div>");
            if (settings.mode_360) $(this).clone().insertAfter(this);
            panoramaContainer = $(this).parent();
			if (settings.showReloader){
	            panoramaContainer.wrap("<div class='panorama-viewport'></div>").parent().css('width', settings.viewport_width + 'px')
				.append("<div class='panorama-control'><table class='alt'><tr><td valign=bottom><table id=control-container><tr><td class=left><img src=/pic/e.gif height=1 width=11></td><td>"
			    + alt + "</td><td style='padding-left: 5px'><img src=/pic/refresh.gif id=control-button onClick='changePano()'></td>"
				+ "<td class=right><img src=/pic/e.gif height=1 width=11></td></tr></table></td></tr></table></div>");
				}else{
				panoramaContainer.wrap("<div class='panorama-viewport'></div>").parent().css('width', settings.viewport_width + 'px')
				.append("<table class='alt1'><tr><td class=left><img src=/pic/e.gif height=1 width=11></td><td>"
			    + alt + "</td><td style='padding-left: 5px'><img src=/pic/close.gif id=close-button></td>"
				+ "<td class=right><img src=/pic/e.gif height=1 width=11></td></tr></table>");
				}
            panoramaViewport = panoramaContainer.parent();
            panoramaViewport.bind('click', function () {
                if (!stop) {
                    $(panoramaContainer).stop();
                    stop = true
                } else {
                    panorama_animate(panoramaContainer, elemWidth, settings);
                    stop = false
                }
            });
            $(this).parent().css('margin-left', '-' + settings.start_position + 'px');
            if (settings.auto_start) panorama_animate(panoramaContainer, elemWidth, settings)
        });
        function panorama_animate(element, elemWidth, settings) {
            currentPosition = 0 - parseInt($(element).css('margin-left'));
            if (settings.direction == 'right') {
                $(element).animate({
                    marginLeft: 0
                },
                ((settings.speed / elemWidth) * (currentPosition)), 'linear', function () {
                    if (settings.mode_360) {
                        $(element).css('marginLeft', '-' + (parseInt(parseInt(elemWidth)) + 'px'));
                        panorama_animate(element, elemWidth, settings)
                    } else if (settings.loop_180) {
                        settings.direction = 'left';
                        panorama_animate(element, elemWidth, settings)
                    }
                })
            } else {
                var rightlimit;
                if (settings.mode_360) rightlimit = elemWidth;
                else rightlimit = elemWidth - settings.viewport_width;
                $(element).animate({
                    marginLeft: -rightlimit
                },
                ((settings.speed / rightlimit) * (rightlimit - currentPosition)), 'linear', function () {
                    if (settings.mode_360) {
                        $(element).css('margin-left', 0);
                        panorama_animate(element, elemWidth, settings)
                    } else if (settings.loop_180) {
                        settings.direction = 'right';
                        panorama_animate(element, elemWidth, settings)
                    }
                })
            }
        }
    }
})(jQuery);
