var tmp_p = 1;
var init_y_offset = 0;

function init () {
	
	init_y_offset = $('page').offsetTop;
	scrollcheck();
	window.onresize = function (evt) {
		scrollcheck();
	}
	
	if (window.addEventListener)
		window.addEventListener('DOMMouseScroll', wheel, false);
	window.onmousewheel = document.onmousewheel = wheel;
	if (window.location.hash) {
		gohash = window.location.hash.replace("#", "");
		if (gohash > 0) goto(gohash);
	}
}

function goto(p) {
	if (tmp_p != p ||goto.arguments[1] == 1) {
		if (goto.arguments[1] == 1) duration = 0;
		else duration = 1;
		fact = tmp_p-p;
		p_move = fact*document.body.offsetWidth;
		//p_move = fact*$('content').offsetWidth;
		s_move = fact*-90; 
		
		diff = (init_y_offset-$('page').offsetTop);
				
		new Effect.Move('page', { x: p_move, y: diff, mode: 'relative', duration: duration, queue: { position: 'end', scope: 'pagescope', limit: 1 }, beforeSetup: function() {
				if(($('page').style.left.replace("%", "")/$('page').style.left.replace("%", ""))==1) {
					px = ($('page').style.left.replace("%", "")/100)*document.body.offsetWidth;
					$('page').style.left = px+'px';
				}
				window.location.href = window.location.pathname+'#'+p;
			},afterFinish: function() {
				tmp_p = p;
				pro = ($('page').style.left.replace("px", "")/document.body.offsetWidth)*100;
				$('page').style.left = pro+'%';
				scrollcheck();
			}, afterSetup: function() {
				new Effect.Move('slider', { x: s_move, y: 0, mode: 'relative' });
			}
			
		});
		
	}
}

function wheel(event){
	var delta = 0;
	if (!event) event = window.event;
	if (event.wheelDelta) {
		delta = event.wheelDelta/120; 
		if (window.opera) delta = -delta;
	} else if (event.detail) {
		delta = -event.detail/3;
	}
	if (delta) {
		if (delta < 0)
		scrollpage('down');
	else
		scrollpage('up');
	//document.getElementById('delta').innerHTML = s;
	}
}

function scrollcheck () {
	$('frame').style.height = document.documentElement.clientHeight+'px';
		eval("tmpheight = $('cnt_"+tmp_p+"').offsetHeight;");
		delta = document.documentElement.clientHeight-$('page').offsetTop-tmpheight;
		if (delta < 0 && $('scroll').style.display == 'none') {
			Effect.Appear('scroll', {duration: .4, to: 0.7, queue: { position: 'end', scope: 'scroll', limit: 1 }});
		} else if(delta >= 0 && $('scroll').style.display != 'none' && (init_y_offset-$('page').offsetTop) == 0) {
			Effect.Fade('scroll', {duration: .4, queue: { position: 'end', scope: 'scroll', limit: 1 }});
		} else if ($('scroll').style.display != 'none' && (document.documentElement.clientHeight-init_y_offset-tmpheight) > 0) {
			goto(tmp_p, 1);
		}
}

function scrollpage(direction) {
	if ($('scroll').style.display != 'none') {
		eval("tmpheight = $('cnt_"+tmp_p+"').offsetHeight;");
		var space = document.documentElement.clientHeight-init_y_offset;
		var scrollval = space-200;
		if (scrollval < 0 || scrollval > space) scrollval = space; 
		var contentleft = $('page').offsetTop-init_y_offset+tmpheight;
		if (direction == "up" && init_y_offset > $('page').offsetTop) {
			fact = 1;
		} else if (direction == "down" && contentleft > scrollval) {
			fact = -1;
		}	else {
			fact = 0;
		}
		
		var speed = ((scrollval/120).round()+1)/10;
		
		scrollby = scrollval*fact;
		if (fact == 1) {
			correct = ($('page').offsetTop+scrollby-init_y_offset)*(-1);
			if (correct < 0) scrollby = scrollby + correct;
		}
		new Effect.Move('page', { x: 0, y: scrollby, mode: 'relative', duration: speed, beforeSetup: function() {
				if(($('page').style.left.replace("%", "")/$('page').style.left.replace("%", ""))==1) {
					px = ($('page').style.left.replace("%", "")/100)*document.body.offsetWidth;
					$('page').style.left = px+'px';
				}
			}, afterFinish: function() {
				pro = ($('page').style.left.replace("px", "")/document.body.offsetWidth)*100;
				$('page').style.left = pro+'%';
			}, queue: { position: 'end', scope: 'pagescope', limit: 1 } });
	}
}