/*
 * 	SLIDING TEXT 
 * 	A Javascript jQuery plugin by Urs Beyeler <urs@superspace.ch>
 * 	Version 1.0
 * 	Date: 2010-05-05
 * 
 */
(function($) {
    $.fn.slidingtext = function () {
        
        return this.each(function() {
            obj = $(this);
            $('#full-image-stream').css('position', 'fixed');
            obj.find(".overlay").each(function(i) {
                $(this).css('margin-top', ($(this).height() + 20) * -1);
            });
            obj.bind("mouseenter", function(e) {
                slideInText(this);
                scrollImageStream(this);
            });
            obj.bind("mouseleave", function(e) {
                slideOutText(this);
            });
        });
    }
    
    function scrollImageStream (obj) {
        var objWidth = $(obj).width();
        var objXPosition = $(obj).offset().left;
        var scrollArea = $('#full-image-stream');
        var marginLeft = scrollArea.css('margin-left');  
        if (objWidth + objXPosition > $(document).width()) {
            marginLeft = parseFloat(marginLeft) - objWidth;
            scrollArea.animate({marginLeft: marginLeft + "px"}, 600);
        }
        else if (objXPosition < 0) {
            marginLeft = parseFloat(marginLeft) + objWidth;
            if (marginLeft > 0) {
                marginLeft = 0;
            }
            scrollArea.animate({marginLeft: marginLeft  + "px"}, 600);
        }
    }
    
    function slideInText (obj) {
        $(obj).find(".overlay").each(function(i) {
            $(this).stop().animate({marginTop: "0px"}, 200);
        });
    }

    function slideOutText (obj) {
        $(obj).find(".overlay").each(function(i) {
            var marginTop = ($(this).height() + 20) * -1
            $(this).stop().animate({marginTop: marginTop + "px"}, 200);
        });
    }

})(jQuery);
