var flag=false;
var bg=0;
var current_x=0;
var current_y=0;
var last_y=0;
var last_x=0;
var dragging=0; //Схватили back
var timer=0; //Таймер для случайного скролла

//st --- Быстрый тример ------------
function trim_ (str) {
	var	str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}
//en --- Быстрый тример ------------
function start_drag(e){
//	alert(1);
	dragging=1;

	if(!e) e = window.event;
	flag=true;
	last_x = e.clientX;
	last_y = e.clientY;

	if(e.stopPropagation) e.stopPropagation();
	else e.cancelBubble = true;
	if(e.preventDefault) e.preventDefault();
	else e.returnValue = false;
}

function end_drag(){ flag=false; }

function dragIt(e){
	if(!flag) return;
	if(!e) e = window.event;

	current_x+=(e.clientX-last_x);
	current_y+=(e.clientY-last_y);
	last_x=e.clientX;
	last_y=e.clientY;
//	alert(current_x + "px " + current_y + "px");
	document.getElementById('bg').style.backgroundPosition=current_x + "px " + current_y + "px";

//	alert(5);
	if(e.stopPropagation) e.stopPropagation();
	else e.cancelBubble = true;
	if(e.preventDefault) e.preventDefault();
	else e.returnValue = false;
	dragging=0;
}
function scrollBack() {
	if (!dragging){
		var backPos=document.getElementById('bg').style.backgroundPosition;
		var backPosX=trim_(backPos.substr(0, backPos.search("px")));
		var backPosY=trim_(backPos.substr(backPos.search("px")+3));
		backPosY=trim_(backPosY.substr(0, backPosY.search("px")));

		if (timer<=0) {
//			backDeltaX=Math.floor(Math.random()*2-1);
//			backDeltaY=Math.floor(Math.random()*2-1);
//			if ((backDeltaX+backDeltaY)==0) backDeltaY=1;
			backDeltaX=0;
			backDeltaY=1;
			timer=30;
		}
		timer--;
		backPos=backPosX*1+backDeltaX+"px "
		backPos+=backPosY*1+backDeltaY+"px";
		document.getElementById('bg').style.backgroundPosition=backPos;
//		alert(backPosX+"---"+backPosY+"---"+backPos+"---");
	}
}
function init() {
	bg=document.getElementById('bg'); 
	
    if (bg.attachEvent) { //IE
		bg.attachEvent('onmousedown', start_drag);
		bg.attachEvent('onmouseup', end_drag);
		bg.attachEvent('onmouseout', end_drag);
		bg.attachEvent('onmousemove', dragIt);
    } else if (bg.addEventListener) {
        bg.addEventListener('mousedown', start_drag, false);
        bg.addEventListener('mouseup', end_drag, false);
        bg.addEventListener('mouseout', end_drag, false);
        bg.addEventListener('mousemove', dragIt, false);
    }

	bg.style.backgroundPosition="0px 0px";
	window.setInterval(scrollBack, 100);
}

window.onload=init;
