/* =========================================================
// jquery.panorama.js
// Author: OpenStudio (Arnault PACHOT)
// Mail: apachot@openstudio.fr
// Web: http://www.openstudio.fr
// Copyright (c) 2008 Arnault Pachot
// licence : GPL
========================================================= */

(function ($) {
    $.fn.panorama = function (options) {
        this.each(function () {
            var settings = {
                viewport_width: 600,
                speed: 20000,
                direction: 'left',
                control_display: 'auto',
                start_position: 0,
                auto_start: true,
                mode_360: true
            };
            if (options) $.extend(settings, options);

            var elemWidth = parseInt($(this).attr('width'));
            var elemHeight = parseInt($(this).attr('height'));
            var currentElement = this;
            var panoramaViewport, panoramaContainer;
            var bMouseMove = false;
            var mouseMoveStart = 0;
            var mouseMoveMarginStart = 0;

            $(this).attr('unselectable', 'on')
				.css('position', 'relative')
				.css('-moz-user-select', 'none')
				.css('-webkit-user-select', 'none')
				.css('margin', '0')
				.css('padding', '0')
				.css('border', 'none')
				.wrap("<div class='panorama-container'></div>");

                $(this).clone().insertAfter(this);

            panoramaContainer = $(this).parent();
            panoramaContainer.css('height', elemHeight + 'px').css('overflow', 'hidden').wrap("<div class='panorama-viewport'></div>").parent().css('width', settings.viewport_width + 'px');

            panoramaViewport = panoramaContainer.parent();



            $(this).parent().css('margin-left', '-' + settings.start_position + 'px');

             panorama_animate(panoramaContainer, elemWidth, settings);

        });
        function panorama_animate(element, elemWidth, settings) {

            currentPosition = 0 - parseInt($(element).css('margin-left'));

                $(element).animate({ marginLeft: 0 }, ((settings.speed / elemWidth) * (currentPosition)), 'linear', function () {
                        $(element).css('marginLeft', '-' + (parseInt(parseInt(elemWidth)) + 'px'));
                        panorama_animate(element, elemWidth, settings);
                });
        }

    };

})(jQuery);
