scrl_timeout = Array(); // miliseconds
scrl_speed = Array();  // speed of moving - pixels in one move;
scrl_direction = Array(); // 0 - to down, 1 - to up, 2 - to left, 3 - to right, 4 - changing aplha (only MSIE)
scrl_cycletime = Array(); // miliseconds
scrl_moving = Array();
scrl_container = Array();
scrl_containers = Array();
scrl_can_scroll = Array();
scrl_objs = Array();
function scrl_init_child(scrl_id, object) {
	if (!object || !object.style) return;	
	switch (scrl_direction[scrl_id]) {
		case 0: {
			object.style.left = 0;
			object.style.top = -scrl_container[scrl_id].offsetHeight;
		}break;
		case 1: {				
			object.style.left = 0;
			object.style.top = 75;//scrl_container[scrl_id].offsetHeight;
		}break;
		case 2: {
			object.style.left = scrl_container[scrl_id].offsetWidth;
			object.style.top = 0;
		}break;
		case 3: {
			object.style.left = -object.offsetWidth;
			object.style.top = 0;
		}break;	
		case 4: {
			//object.style.visibility = 'hidden';
		}break;
	}
}
function scrl_set_moving(scrl_id, no1, no2) {		
	scrl_objs[scrl_id][no1].style.display = 'block';
	scrl_objs[scrl_id][no2].style.display = 'block';
	scrl_moving[scrl_id][0] = no1;
	scrl_moving[scrl_id][1] = no2;
}
function scrl_init(container_id, timeout, speed, direction, cycletime, can_scroll) {
	var scrl_id = scrl_container.length;
	if (scrl_container[scrl_id] = document.getElementById(container_id)) {
		scrl_timeout[scrl_id] = timeout; // miliseconds
		scrl_containers[scrl_id] = container_id;
		scrl_speed[scrl_id] = speed;  // speed of moving - pixels in one move;
		scrl_direction[scrl_id] = direction; // 0 - to down, 1 - to up, 2 - to left, 3 - to right, 4 - changing aplha (only MSIE)
		scrl_cycletime[scrl_id] = cycletime; // miliseconds
		scrl_moving[scrl_id] = Array();
		scrl_can_scroll[scrl_id] = can_scroll;
		scrl_objs[scrl_id] = Array();
		var objs = scrl_container[scrl_id].childNodes;
		var maxs = scrl_container[scrl_id].offsetHeight;
		for(i=0; i<objs.length; i++) {
			if ((objs[i].tagName=="DIV") && (objs[i].id=="scrl_item")) {
				scrl_objs[scrl_id][scrl_objs[scrl_id].length] = objs[i];
				scrl_init_child(scrl_id, objs[i]);
				if (i==0) {
					objs[i].style.left = 0;		
					objs[i].style.top = 0;
				}			
			}
		}
		if (scrl_objs[scrl_id].length>1) {
			scrl_set_moving(scrl_id, 0, 1);
			setTimeout("scrl_move("+scrl_id+")", scrl_timeout[scrl_id] );
		}
		//else if (scrl_objs[scrl_id].length==1) scrl_set_moving(scrl_id,0,0);
	}
}
function scrl_move(scrl_id) {	
	if (scrl_moving[scrl_id].length<2) return;
	switch (scrl_direction[scrl_id]) {
		case 0: {
			var tmp0 = parseInt(scrl_objs[scrl_id][scrl_moving[scrl_id][0]].style.top) + scrl_can_scroll[scrl_id]?scrl_speed[scrl_id]:0;
			var tmp1 = parseInt(scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.top) + scrl_can_scroll[scrl_id]?scrl_speed[scrl_id]:0;
			scrl_objs[scrl_id][scrl_moving[scrl_id][0]].style.top = tmp0;
			scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.top = tmp1 ;
			if ((tmp1>=0) && (tmp1<=scrl_speed[scrl_id])) {
				scrl_init_child(scrl_id, scrl_objs[scrl_id][scrl_moving[scrl_id][0]]);
				scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.top = 0;
				scrl_set_moving(scrl_id, scrl_moving[scrl_id][1],(scrl_moving[scrl_id][1]+1) % scrl_objs[scrl_id].length);
				setTimeout("scrl_move("+scrl_id+")", scrl_timeout[scrl_id]);
			}
			else setTimeout("scrl_move("+scrl_id+")", scrl_cycletime[scrl_id]);
		}break;
		case 1: {
			if (scrl_can_scroll[scrl_id]) {
				var tmp0 = parseInt(scrl_objs[scrl_id][scrl_moving[scrl_id][0]].style.top) - (scrl_can_scroll[scrl_id]?scrl_speed[scrl_id]:0);
				var tmp1 = parseInt(scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.top) - (scrl_can_scroll[scrl_id]?scrl_speed[scrl_id]:0);
				scrl_objs[scrl_id][scrl_moving[scrl_id][0]].style.top = tmp0;
				scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.top = tmp1 ;
			}
			if ((tmp1>=0) && (tmp1<=scrl_speed[scrl_id])) {
				scrl_init_child(scrl_id, scrl_objs[scrl_id][scrl_moving[scrl_id][0]]);
				scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.top = 0;
				scrl_set_moving(scrl_id, scrl_moving[scrl_id][1],(scrl_moving[scrl_id][1]+1) % scrl_objs[scrl_id].length);
				scrl_can_scroll[scrl_id] = false;
				setTimeout("scrl_can_scroll["+scrl_id+"]= true", scrl_timeout[scrl_id]);
			}
			setTimeout("scrl_move("+scrl_id+")", scrl_cycletime[scrl_id]);
		}break;
		case 2: {
			var tmp0 = parseInt(scrl_objs[scrl_id][scrl_moving[scrl_id][0]].style.left) - scrl_can_scroll[scrl_id]?scrl_speed[scrl_id]:0;
			var tmp1 = parseInt(scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.left) - scrl_can_scroll[scrl_id]?scrl_speed[scrl_id]:0;
			scrl_objs[scrl_id][scrl_moving[scrl_id][0]].style.left = tmp0;
			scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.left = tmp1 ;
			if ((tmp1>=0) && (tmp1<=scrl_speed[scrl_id])) {
				scrl_init_child(scrl_id, scrl_objs[scrl_id][scrl_moving[scrl_id][0]]);
				scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.left = 0;
				scrl_set_moving(scrl_id, scrl_moving[scrl_id][1],(scrl_moving[scrl_id][1]+1) % scrl_objs[scrl_id].length);
				setTimeout("scrl_move("+scrl_id+")", scrl_timeout[scrl_id]);
			}
			else setTimeout("scrl_move("+scrl_id+")", scrl_cycletime[scrl_id]);
		}break;
		case 3: {
			var tmp0 = parseInt(scrl_objs[scrl_id][scrl_moving[scrl_id][0]].style.left) + scrl_can_scroll[scrl_id]?scrl_speed[scrl_id]:0;
			var tmp1 = parseInt(scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.left) + scrl_can_scroll[scrl_id]?scrl_speed[scrl_id]:0;
			scrl_objs[scrl_id][scrl_moving[scrl_id][0]].style.left = tmp0;
			scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.left = tmp1 ;
			if ((tmp1>=0) && (tmp1<=scrl_speed[scrl_id])) {
				scrl_init_child(scrl_id, scrl_objs[scrl_id][scrl_moving[scrl_id][0]]);
				scrl_objs[scrl_id][scrl_moving[scrl_id][1]].style.left = 0;
				scrl_set_moving(scrl_id, scrl_moving[scrl_id][1],(scrl_moving[scrl_id][1]+1) % scrl_objs[scrl_id].length);
				setTimeout("scrl_move("+scrl_id+")", scrl_timeout[scrl_id]);
			}
			else setTimeout("scrl_move("+scrl_id+")", scrl_cycletime[scrl_id]);
		}break;
	}
}

function scrl_set_property(property, container_id, value) {
	for (i=0;i<scrl_containers.length; i++) {
		if (scrl_containers[i]==container_id) {
			property[i] = value;
			break;
		}
	}
}