(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;

        //clon
        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) {

            //mov1
            $('#news_line_text').css('left', left-1 + 'px');

            //mov2
            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');
            }

            //widhscren
            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) {
                        //claer
                        $('#news_line').html('<div id="news_line_text" style="left: 0">' + $('#news_line_text').html() + '</div>');
                    }
                }
            }
            else {
                if(left < text_width*-1) {
                 //clear
                 $('#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(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);
