/**
 *
 */
function Inforstripe() {
    this.infostripeFrame = jQ('#infostripeFrame');
    this.idMaximalize = '#infostripeMaximalize';
    this.idMinimalize = '#infostripeMinimalize';    
    this.idNews = '#infostripeNews';
    this.idOpen = '#infostripeOpen';
    this.idClose = '#infostripeClose';    
    this.idStart = '#infostripePlay'; 
    this.setScroll = true;
}

/**
 *
 */
Inforstripe.prototype.setInfostripe = function() {
    
    var thisObject = this;
    
    // Zapina tok textu
    thisObject.run();  
    
    // Upravuje hidden po vygenerovani stranky
    jQ(this.idNews).addClass('show_visible').removeClass('hide_visible');
    
    // Zobrazuje novinky
    jQ(this.infostripeFrame).find(this.idOpen).click(function () {
        jQ(thisObject.infostripeFrame).find(thisObject.idMaximalize).addClass('show').removeClass('hide');
        jQ(thisObject.infostripeFrame).find(thisObject.idMinimalize).addClass('hide').removeClass('show');  
        jQ(thisObject.infostripeFrame).find(thisObject.idStart).trigger('click');
    });    

    // Zkryva novinky    
    jQ(this.infostripeFrame).find(this.idClose).click(function () {
        jQ(thisObject.infostripeFrame).find(thisObject.idMaximalize).addClass('hide').removeClass('show');
        jQ(thisObject.infostripeFrame).find(thisObject.idMinimalize).addClass('show').removeClass('hide');
        jQ(thisObject.infostripeFrame).find(thisObject.idStart).trigger('click');
    });   
    
    jQ(this.infostripeFrame).find(thisObject.idNews).bind('mouseleave', function() {
        jQ(thisObject.infostripeFrame).find(thisObject.idStart).removeClass('play').addClass('pause');                
    });
    
    jQ(this.infostripeFrame).find(thisObject.idNews).bind('mouseenter', function() {
        jQ(thisObject.infostripeFrame).find(thisObject.idStart).removeClass('pause').addClass('play');        
    });
    
    // Zapina/Vypisna scroll
    jQ(this.infostripeFrame).find(this.idStart).click(function () {
    
        var elNews = jQ(thisObject.infostripeFrame).find(thisObject.idNews);
    
        // Zapina bezeni textu
        if (jQ(this).hasClass('play')) {
        
            jQ(this).removeClass('play').addClass('pause');
           
            // Nastavuje bezici text
            if (thisObject.setScroll == false) {      
                thisObject.setScroll = true;
            } else {            
                jQ(elNews).trigger('mouseleave');
            }

            return; // Ukoncuje fci
        }
        // Vypina bezeni textu
        if (jQ(this).hasClass('pause')) {
            jQ(this).removeClass('pause').addClass('play');

            jQ(elNews).trigger('mouseenter');
            jQ(elNews).trigger('mouseenter');
            
            return; // Ukoncuje fci
        }
    }); 
}

/**
 *
 */
Inforstripe.prototype.run = function () {
    jQ(this.infostripeFrame).find(this.idNews).liScroll();
}

/**
 *
 */
jQuery.fn.liScroll = function(settings) {
	settings = jQuery.extend({
	travelocity: 0.07
	}, settings);
	return this.each(function() {
	
    	var $strip = jQuery(this);
    	$strip.addClass("newsticker")
    	var stripWidth = 0;
    	var $mask = $strip.wrap("<div class='mask'></div>");
    	var $tickercontainer = $strip.parent().wrap("<div class='tickercontainer'></div>");								
    	var containerWidth = $strip.parent().parent().width();	//a.k.a. 'mask' width 	
    	
    	$strip.find("li").each(function(i) {
    	    stripWidth += jQuery(this, i).width();
    	});
    	
    	$strip.width(stripWidth);
    	var totalTravel = stripWidth+containerWidth;
    	var defTiming = totalTravel/settings.travelocity;	// thanks to Scott Waye		
    	
    	function scrollnews(spazio, tempo) {
        	$strip.animate({left: '-='+ spazio}, tempo, "linear", function(){$strip.css("left", containerWidth); scrollnews(totalTravel, defTiming);});
    	}
    	
    	scrollnews(totalTravel, defTiming);
    	
    	$strip.hover(
        	function() {
            	jQuery(this).stop();
        	},
        	function() {
            	offset = jQuery(this).offset();
            	var residualSpace = offset.left + stripWidth;
            	residualTime = residualSpace/settings.travelocity;
            //	InfostripeInfo.test1 = residualSpace;
            //	InfostripeInfo.test2 = residualTime;
            	scrollnews(residualSpace, residualTime);
        	});
	    });	
};
