(function($) { 
var Class = {
    create: function() {
        return function() {
            this.initialize.apply(this, arguments);
        }
    }
}

GetWidth = function(elem) {
    function _Convert(val) {
        if (!val) {return;}
        val = val.replace("px","");
        if (isNaN(val)) {return 0;}
        return parseInt(val);
    }
    var currentStyle;
    if (elem.currentStyle) { currentStyle = elem.currentStyle; }
    else if (window.getComputedStyle) { currentStyle = document.defaultView.getComputedStyle(elem, null); }
    else { currentStyle = elem.style; }
    return (elem.offsetWidth -
        _Convert(currentStyle.marginLeft) -
        _Convert(currentStyle.marginRight) -
        _Convert(currentStyle.borderLeftWidth) -
        _Convert(currentStyle.borderRightWidth));
}

var NewsLine= Class.create();
NewsLine.prototype = {   
    animate: true,
    old_text_width: null,
    
    initialize: function () {},
    
    moveNewsText: function() {
        var text_width = parseInt(GetWidth(document.getElementById('news_line_text')));
        var left = parseInt($('#news_line_text').css('left'));
        var start_clone_width = (text_width*-1) + document.documentElement.clientWidth;

        //jezeli nadeszla pora klonowania i nie mamy jeszcze klona to go robimy
        if(left <= start_clone_width && document.getElementById('news_line_text2') == null && this.old_text_width == text_width) {
            var oldObject = $('#news_line_text').html();
            
            var padding = document.documentElement.clientWidth + 0;
            
            var newObject = '<div id="news_line_text" style="left: ' + left + 'px">' + $('#news_line_text').html() + '</div>' + 
            '<div id="news_line_text2" style="left: ' + padding +'px">' + $('#news_line_text').html() + '</div>';
            $('#news_line').html(newObject);  
        }
    
        if(this.animate) {
        
            //Przesuwany oryginal
            $('#news_line_text').css('left', left-1 + 'px');
            
            //Jeżeli mamy duplikat to tez go przesuwamy
            if(document.getElementById('news_line_text2') != null){
                var clone_left = parseInt($('#news_line_text2').css('left'));
                $('#news_line_text2').css('left', clone_left-1 + 'px');
            }
            
            //Jeśli text jest krótszy niz ekran
            if(text_width < document.documentElement.clientWidth) {
                if(document.getElementById('news_line_text2') != null) {
                    var clone_left = parseInt($('#news_line_text2').css('left'));
                    if(clone_left == 1) {
                        //Usuwamy wszystko i lecimy od zera
                        $('#news_line').html('<div id="news_line_text" style="left: 0">' + $('#news_line_text').html() + '</div>');
                    }
                }
            }
            else {
                if(left < text_width*-1) {
                 //Usuwamy wszystko i lecimy od zera
                 $('#news_line').html('<div id="news_line_text" style="left: 0">' + $('#news_line_text').html() + '</div>');
                }
            }
        }
        this.old_text_width = text_width;
        setTimeout(function() {
            newsLineObject.moveNewsText();            
        },20);
    }
};

var newsLineObject = new NewsLine;

$(document).ready( function(){
    
    //If news_line exist
    if(document.getElementById('news_line') != null)  {
        //handling mouseover event

        $('#news_line').mouseover(function(){
            newsLineObject.animate = false;
        })

        $('#news_line').mouseout(function(){
            newsLineObject.animate = true;
        })

        //Start animate after 1 sek.
        setTimeout(function() {
            newsLineObject.moveNewsText();            
        },1000);

    }

}) 
})(jQuery);
