var _ua = navigator.userAgent.toLowerCase();
var _ie = _ua.indexOf("msie") != -1;
var _o = _ua.indexOf("opera") != -1;
var _ff = _ua.indexOf("gecko/") != -1;

var scroll_Interval=null;
var scroll_load_interval=null;

function scroll_geC(cl,parent) {
	var box;
	if (!parent) box = document;
		else box = parent;	
			
	var ret = Array();	
	
	var nodes = scroll_Cnodes(box,Array());
	for (var i in nodes) {
		if (nodes[i].className && nodes[i].className.indexOf(cl)!=-1) 
			ret.push(nodes[i]);
	}
	return ret;	
}

function scroll_Cnodes(node,ret) {
	for (var i in node.childNodes) {
		if (node.childNodes[i].nodeType==1) {
			ret.push(node.childNodes[i]);
			ret = scroll_Cnodes(node.childNodes[i],ret);
		}
	}
	return ret;
}

function scroll_add_class(node,cl) {
	var cln = node.className;
	if (cln) {
		if (cln.indexOf(cl)==-1) cln = cln + " " + cl;
	}
	else cln = cl;
			
	node.className = cln;
			
	return false;
}
function scroll_delete_class(node,cl) {
	var cln = node.className; 
	if (cln) {
		cln = cln.replace(cl,'').replace('  ',' ');
		node.className = cln;
	}
	
	return false;
}



function scroll_wheel(event,main) {//event
	var delta = 0;
	
    if (_ie) event = window.event;
    if (event.wheelDelta) { /* IE/Opera. */
        delta = event.wheelDelta;
    } else if (_ff) {
        delta = -event.detail;
    }

	if (delta>0) delta=144;
	else delta = -144;
	
	scroll_scroll(delta,main);	
		
	if (event.preventDefault) event.preventDefault();
		event.returnValue = false;
		
	return false;
}

function scroll_scroll(n,main) {//scroll na n
	var holder = scroll_geC('scroll_box',main)[0];
	var box_holder = scroll_geC('scroll_holder',main)[0];
	
	if (!holder) return false;
	
	var x = holder.style.left;
	x = parseInt(x);
	if (!x) x = 0;
	
	x+=n;
		
	
	var _item = scroll_geC('scroll_item',main);
	var _n = _item.length;
	var _width = _holder_width = _box_width = 0;
	var no_left = no_right = false;
	
	if (_ie) {
		for (var i=0;i<_n;i++) _width += parseInt(_item[i].offsetWidth);
		_box_width = box_holder.offsetWidth;
		_holder_width = box_holder.offsetWidth;
		
	}
	else {
		for (var i=0;i<_n;i++) _width += parseInt(window.getComputedStyle(_item[i],null).getPropertyValue("width"));  
		_box_width = window.getComputedStyle(box_holder,null).getPropertyValue("width");   
		_holder_width = window.getComputedStyle(box_holder,null).getPropertyValue("width");   
	}
	
	if (x>=0) {// = dlia levoi strelki
		x=0;
		no_left = true;
	}
	
	var smaller = _width<parseInt(_holder_width);
	
	_width = _width-parseInt(_box_width);
	
	if (x<-_width) {
		x = -_width;
		no_right = true;
	}
	
	if (smaller) {
		x = 0;
		no_left = no_right = true;
	}
	
	if (no_left) scroll_add_class(scroll_geC('scroll_left_arrow',main)[0],'scroll_Harrow');
		else scroll_delete_class(scroll_geC('scroll_left_arrow',main)[0],'scroll_Harrow');	
		
	if (no_right) scroll_add_class(scroll_geC('scroll_right_arrow',main)[0],'scroll_Harrow');
		else scroll_delete_class(scroll_geC('scroll_right_arrow',main)[0],'scroll_Harrow');	
	
	holder.style.left = x+'px';
	
	return false;
}

function scroll_interval(n,main) {

	scroll_scroll(n,main); 

	scroll_clearinterval();
	
	scroll_Interval = setInterval(function(){scroll_scroll(n,main)},144);
	
	return false;
}

function scroll_clearinterval() {
	if (scroll_Interval) clearInterval(scroll_Interval);
	return false;
}

function scroll_bind_arrows(direction) {

	var x = 144;

	if (direction==1) {
		direction = 'right';
		x=-144;
	}
	else direction = 'left';
		
	var l_arrows = scroll_geC('scroll_'+direction+'_arrow', document.getElementById('scroll_main'));
	var n = l_arrows.length;

	for (var i=0;i<n;i++) {
		if (_ie) {
			l_arrows[i].attachEvent('onmousedown',function(){return scroll_interval(x,document.getElementById('scroll_main'));});
			l_arrows[i].attachEvent('onmouseup',function(){return scroll_clearinterval();});
			l_arrows[i].attachEvent('onmouseout',function(){return scroll_clearinterval();});
		}
		else {
			l_arrows[i].addEventListener('mousedown',function(){return scroll_interval(x,this.parentNode);},false);
			l_arrows[i].addEventListener('mouseup',function(){return scroll_clearinterval();},false);
			l_arrows[i].addEventListener('mouseout',function(){return scroll_clearinterval();},false);
		}
	}	
}

function scroll_bind_boxes() {
	var holders = scroll_geC('scroll_holder', document.getElementById('scroll_main'));
	
	var n = holders.length;
	
	for (var i=0;i<n;i++){
		if (_ff) 
			holders[i].addEventListener('DOMMouseScroll',function(e){return scroll_wheel(e,this.parentNode);},false);	
			else if (_ie) holders[i].attachEvent('onmousewheel',function(e){return scroll_wheel(e,this.parentNode);});
				else holders[i].onmousewheel = function(e){return scroll_wheel(e,this.parentNode)};
		
		scroll_scroll(0,holders[i].parentNode);
	}
}

function scroll_loaded() {

	scroll_bind_arrows(1);
	scroll_bind_arrows(0);
	scroll_bind_boxes();
}

function set_up_scroll_load_interval() {
	scroll_load_interval = setInterval(
		function(){
			if (document.getElementsByTagName('body')[0]) {scroll_loaded(); clearInterval(scroll_load_interval)}
			},144);
}

/*var scroll_load_interval = setInterval(
	function(){
		if (document.getElementsByTagName('body')[0]) {scroll_loaded(); clearInterval(scroll_load_interval)}
		},100);	*/	
