/*************************************
 * Imagescroller for stephan-kaluza.de
 * @author Dimitri Lavrenuek
 *************************************/

var mx = 0;
var my = 0;
var mxs = 0;
var drag = false;
var advice = true;
var moveadvice = false;
var speed = 0;
var t=0;
var intr;
var disableScroll  = false;
var page = 1;
var pages = 1;
var images = new Array();

function getMouseXY(e) {
	if (document.all) {
		mx = event.clientX; + document.body.scrollLeft;
		my = event.clientY; + document.body.scrollTop;
	} else {
		mx = e.pageX;
		my = e.pageY;
	}
}

function moveCursor(e) {
	if (disableScroll) return false;
	getMouseXY(e);
	if (drag) {
		speed = (mx-mxs) / 5;
	}
}

function startDrag() {
	drag = true;
	mxs = mx;
	speed = 0;
}

function stopDrag () {
	drag = false;
	//document.getElementById('imgblurer').focus();
}

function addPic (url) {
	images[images.length] = url;
}

function dragImage() {
	if (disableScroll) return false;
	if (speed!=0) {
		var img = document.getElementById('pic1');
		var sc = document.getElementById('scroller-control');
		if (speed > 0 && img.offsetLeft >= -speed) {
			img.style.left = '0px';
			speed = 0;
		} else if (speed < 0 && img.offsetLeft<-(img.clientWidth-sc.clientWidth+speed)) {
			img.style.left = '-' + (img.clientWidth-sc.clientWidth) + 'px';
			speed = 0;
		} else if (speed!=0) {
			img.style.left = (img.offsetLeft + speed ) + 'px';
		}
	}
}

function scrollImage(d) {
	// d=1 for right scroll ; d=0 for left scroll
	window.clearInterval(intr);
	var img = document.getElementById('pic1');
	var sc = document.getElementById('scroller');
	var pos = 0;
	var pg = document.getElementById('img_pager');
	if (d == 1) {
		if (img.clientWidth + img.offsetLeft < 2 * sc.clientWidth) {
			pos = sc.clientWidth - img.clientWidth;
		} else {
			pos = img.offsetLeft - sc.clientWidth;
		}
	} else {
		if (img.offsetLeft + sc.clientWidth > 0) {
			pos = 0;
		} else {
			pos = img.offsetLeft + sc.clientWidth;
		}
	}
	page = Math.ceil( -(pos/sc.clientWidth))+1;
	var html = '';
	for (var i = 1; i <= pages; i++) {
		if (i==page) html += '<b class="tbiger">';
		html += i;
		if (i==page) html += '</b>';
		html += '&nbsp;';
	}
	pg.innerHTML = html;
	
	
	intr=window.setInterval('_scrollImage(' + pos + ');',40);
}

function _scrollImage (pos) {
	var img = document.getElementById('pic1');
	var sc = document.getElementById('scroller');
	if (Math.ceil((pos - img.offsetLeft)/6) == 0 ) {
		window.clearInterval(intr);
		return true;	
	}
	img.style.left = (img.offsetLeft + Math.ceil((pos - img.offsetLeft)/6)) + 'px';
}

function getAdvice() {
	if (disableScroll) return false;
	window.clearTimeout(t);
	if (advice) {
		advice = false;
		$('sarrow-left').style.display='block';
		$('sarrow-right').style.display='block';
		//$('img_pager').style.display='block';
		new Effect.Opacity('sarrow-left', { from: 0.0, to: 0.8, duration: 0 });
		new Effect.Opacity('sarrow-right', { from: 0.0, to: 0.8, duration: 0 });
	}
	//t = window.setTimeout('hideAdvice()',3000);
}

function hideAdvice() {
	if (!advice) t = window.setTimeout('_hideAdvice()',0);
}
function _hideAdvice() {
	advice = true;
	Effect.Fade('sarrow-left', { duration: 0 });
	Effect.Fade('sarrow-right', { duration: 0 });
}

function startLoad(i) {
	var img = document.createElement('img');
	img.src = images[i];
	img.id = 'scrollpic_' + i;
	$('pic1').appendChild(img);
	intr = window.setInterval('monitorPicload (' + i + ')',50);
}

function monitorPicload (iii) {
	var img = $('scrollpic_' + iii);
	var scroller = $('pic1');
	var sc = $('scroller');
	var pg = document.getElementById('img_pager');
	if (img.complete) {
		pages = Math.floor(scroller.clientWidth / sc.offsetWidth)+1;
		var html = '';
		for (var i = 1; i <= pages; i++) {
			if (i==page) html += '<b class="tbiger">';
			html += i;
			if (i==page) html += '</b>';
			html += '&nbsp;';
		}
		pg.innerHTML = html;
		window.clearInterval(intr);
		if (window.innerWidth >= img.clientWidth) {
			scroller.style.position = 'static';
			disableScroll = true;
		}
		if (iii == 0) new Effect.Fade('picloader', { from: 1.0, to: 0.0, duration: 1.0 });
		if ((iii+1)<images.length) startLoad (iii+1);

	}
}
function checkWindowSize() {
	var scroller = $('pic1');
	var sc = $('scroller');
	var pg = $('img_pager');
	if (scroller.clientWidth < sc.clientWidth) {
		scroller.style.position = static;
	} else if (scroller.offsetLeft+scroller.clientWidth < sc.clientWidth) {
		scroller.style.left = -(scroller.clientWidth - sc.clientWidth) + 'px';
	}
	pages = Math.floor(scroller.clientWidth / sc.offsetWidth)+1;
	var html = '';
	for (var i = 1; i <= pages; i++) {
		if (i==page) html += '<b class="tbiger">';
		html += i;
		if (i==page) html += '</b>';
		html += '&nbsp;';
	}
	pg.innerHTML = html;
}

window.onresize = checkWindowSize;
