/*******************************************************************************************/
// jquery.event.wheel.js - rev 1
// Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
// Liscensed under the MIT License (MIT-LICENSE.txt)
// http://www.opensource.org/licenses/mit-license.php
// Created: 2008-07-01 | Updated: 2008-07-14
// $(body).bind('wheel',function(event,delta){    alert( delta>0 ? "up" : "down" );    });
/*******************************************************************************************/

//modification by sweetemmure qpe@ukr.net


;(function($){$.fn.wheel=function(a){return this[a?"bind":"trigger"]("wheel",a)};$.event.special.wheel={setup:function(){$.event.add(this,b,wheelHandler,{})},teardown:function(){$.event.remove(this,b,wheelHandler)}};var b=!$.browser.mozilla?"mousewheel":"DOMMouseScroll"+($.browser.version<"1.9"?" mousemove":"");function wheelHandler(a){switch(a.type){case"mousemove":return $.extend(a.data,{clientX:a.clientX,clientY:a.clientY,pageX:a.pageX,pageY:a.pageY});case"DOMMouseScroll":$.extend(a,a.data);a.delta=-a.detail/3;break;case"mousewheel":a.delta=a.wheelDelta/120;if($.browser.opera)a.delta*=-1;break}a.type="wheel";return $.event.handle.call(this,a,a.delta)}})(jQuery);

/*
 * jQuery crawlLine v1.2.0
 * Copyright (c) 2008 Taranets Aleksey
 * email: aleks_tar@ukr.net
 * www: markup-javascript.com
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 */

jQuery.fn.crawlLine = function(_options){
	// defaults options
	var _options = jQuery.extend({
		speed:2,
		crawElement:'div',
		textElement:'ul',
		hoverClass:'viewText',
		/*sweetemmure mod*/
		leftBut: '#left',
		rightBut: '#right'
		/*sweetemmure mod*/
	},_options);
	
	return this.each(function(){
		var _THIS = jQuery(this);
		var _el = $(_options.crawElement, _THIS).css('position','relative');
		var _text = $(_options.textElement, _THIS);
		var _clone = _text.css('whiteSpace','nowrap').clone();
		var _elWidth = 0;
		var _k = 1;
		/*sweetemmure mod*/
		var _leftBut = $(_options.leftBut);
		var _rightBut = $(_options.rightBut);
		
		var _goFast = 0;
		var _kk=1;
		var _goBack = 0;
		var _kkk=1;
		/*sweetemmure mod*/
		// set parametrs *******************************************************
		var _textWidth = 0;
		_text.each(function(){
			_textWidth += $(this).outerWidth(true);
		});
		var _duration = _textWidth*50 / _options.speed;
		_el.append(_clone);
		_el.css('width',_textWidth*2);
		_el.css('left','0');
		var animate = function() {
			_el.animate({left:-_textWidth}, {queue:false, duration:_duration*_k, easing:'linear', complete:function(){
				_el.css('left','0');
				_k=1;
				animate();
			}})
	    }
	    animate();
		
		
		
		
		/*sweetemmure mod*/
		
			_text.each(function(){_goFast += $(this).outerWidth(true);});
			var _dd = _goFast*5 / _options.speed;
			_el.append(_clone);
			function runFast(){
				_el.animate({left:-_goFast}, {queue:false, duration:_dd*_kk, easing:'linear', complete:function(){
				_el.css('left','0');
				_kk=1;
				runFast();
			}});}
			
			function runBack(){
				if(parseInt(_el.css('left')) > 0) {_el.css('left','0' - _textWidth + parseInt(_el.css('left')));}
				_back = parseInt(_el.css('left')) + 40;
				_el.animate({left:_back}, {queue:false, duration:100, easing:'linear', complete:function(){
				_kkk = (_goBack + parseInt(_el.css('left')))/_goBack;	
				runBack();
			}});}
			
			/*
			_text.each(function(){_goBack += $(this).outerWidth(true);});
			var _dd = _goBack*3 / _options.speed;
			_el.append(_clone);
			
			var runBack = function(){
				if(parseInt(_el.css('left')) > 0) {_el.css('left','0' - _textWidth);}
				_el.animate({left:+_goBack}, {queue:false, duration:_dd*_kkk, easing:'linear', complete:function(){
				_kkk=1;
				runBack();
			}});}
			
					*/
			
			_leftBut.hover(function(){
				_el.stop();
				runFast();
				}, function(){
					_el.stop();
					_kk = (_goFast + parseInt(_el.css('left')))/_goFast;
					_k = (_textWidth + parseInt(_el.css('left')))/_textWidth;
					animate();});
					
			_rightBut.hover(function(){
				_el.stop();
				runBack();
				}, function(){
					_el.stop();
					_kkk = (_goBack + parseInt(_el.css('left')))/_goBack;	
					_k = (_textWidth + parseInt(_el.css('left')))/_textWidth;
					animate();});
					
		/*sweetemmure mod*/
		
		
		
		
		
	    _THIS.hover(function() {
			_el.stop();
			_THIS.addClass(_options.hoverClass);
	    }, function(){
			_THIS.removeClass(_options.hoverClass);
			_k = (_textWidth + parseInt(_el.css('left')))/_textWidth;
			animate();
	    })
		_THIS.bind('wheel',function(event,delta){
		  
			var _marginScroll;
			if (delta<0) {
			     
				_marginScroll = parseInt(_el.css('left')) - 50;
                
				_el.animate({left:_marginScroll}, {queue:false, duration:100, easing:'linear', complete:function(){
				_k = (_textWidth + parseInt(_el.css('left')))/_textWidth;
				}});
			} else {
			     
				_marginScroll = parseInt(_el.css('left')) + 50;
				if (_marginScroll > 0) _marginScroll = 0;
				_el.animate({left:_marginScroll}, {queue:false, duration:100, easing:'linear', complete:function(){
					_k = (_textWidth + parseInt(_el.css('left')))/_textWidth;
				}});
			}
			return false;
		});
	});
}
