
// window.onscroll = function() { window.scrollTo(0, 0); return false; } // Scrolling cancel

//
//	Menu Bar Event Handlers
//

$('selectAutoPlayInterval').onchange = function() {
	if($('imgAutoPlay').turned)
		Book.Play(this.value);
}

$('imgAutoPlay').onTurnOn = function() {
	if(soundMode)
	{
		if($('imgPageSound'))
		{
			$('imgPageSound').turn(true);
			Sound.Stop();
			Sound.ClearPagesBGM();
		}
	}
	
	Book.Play($F('selectAutoPlayInterval'));
}

$('imgAutoPlay').onTurnOff = function() {
	Book.Stop();
}

$('imgGoFirst').onclick = function() {
	Book.GoFirst();
	IconClickEffect(this);
}

$('imgGoPre').onclick = function() {
	Book.Prev();
	IconClickEffect(this);
}

$('imgGoNext').onclick = function() {
	Book.Next();
	IconClickEffect(this);
}

$('imgGoLast').onclick = function() {
	Book.GoLast();
	IconClickEffect(this);
}

$('inputGotoTarget').onkeydown = function(event) {
	switch(event.keyCode) {
		case Event.KEY_RETURN:
			$('imgGotoButton').onclick();
			return;

		case Event.KEY_LEFT:
		case Event.KEY_RIGHT:
		case Event.KEY_DELETE:
		case Event.KEY_BACKSPACE:
			return;
	}

	if (event.keyCode < 48 || (event.keyCode > 57 && event.keyCode < 96) ||  (event.keyCode > 105 && event.keyCode < 109) || (event.keyCode > 109 && event.keyCode < 189) || event.keyCode > 189 )  // KzFolio2007-07-20
		return false;
}

$('imgGotoButton').onclick = function() {
	if($F('inputGotoTarget').trim().length < 1) {
		$('inputGotoTarget').focus();
		return false;
	}

	if(!$F('inputGotoTarget').match(/^-?[0-9]+$/))
		return false;

	if($F('inputGotoTarget') < 1 - (spreadPage ? firstPage : 0) - (startRight ? modifiedPage : modifiedPage -1)  || $F('inputGotoTarget') > lastPage - (spreadPage ? firstPage : 0) - (startRight ? modifiedPage : modifiedPage -1)) {	// KzFolio2007-07-24
		//window.alert('The page is out of range: [ ' + (1 - (spreadPage ? firstPage : 0)) + ' ~ ' + (lastPage - (spreadPage ? firstPage : 0) - (startRight ? modifiedPage : modifiedPage -1) ) + ' ]'); // KzFolio2007-07-24
		window.alert('指定できるページの範囲は、' + (1 - (spreadPage ? (startRight ? firstPage : 0) : 0)) + ' 〜 ' + (lastPage - (spreadPage ? firstPage : 0) - (startRight ? modifiedPage : modifiedPage -1) ) + ' ページです。'); // Kz2007-10-03
		return false;
	}

	Book.GoTo(parseInt($F('inputGotoTarget')) + (firstPage - 1) + modifiedPage); // KzFolio2007-07-20
	IconClickEffect(this);
}

$('imgTOCButton').onTurnOn = function() {
	Effect.Appear('olTOC');
}

$('imgTOCButton').onTurnOff = function() {
	Effect.Fade('olTOC');
}

if(usePDF && $('imgPDF')) {
	$('imgPDF').onclick = function() {
		if(Book.spread && typeof PDFName == 'undefined') {
			whichPdf=window.open('modern_pdf.html', 'wysiweb_pdf', 'menubar=no,location=no,resizable=yes=scrollbars=auto,status=no,width=380,height=150'); //Kz2007-09-06
			whichPdf.focus(); //Kz2007-09-06
			IconClickEffect(this);
		}
		else if(!Book.spread) {
			window.open('pdf/' + Book.page + '.pdf', 'wysiweb_pdf');
			IconClickEffect(this);
		}
		else {
			window.open('pdf/' + PDFName, 'wysiweb_pdf');
			IconClickEffect(this);
		}
	}
}

if($('imgEMail')) // Kz2007-08-09
{
	$('imgEMail').onclick = function() {
		location.href = 'mailto:' + mailUrl;
		IconClickEffect(this);
	}
}

$('imgBookMark').onTurnOn = function() {
	Bookmark.ShowButton();
}

$('imgBookMark').onTurnOff = function() {
	Bookmark.HideButton();
}

if(soundMode) {
	$('imgSoundArea').onTurnOn = function() {
		Sound.Stop();
	}

	$('imgSoundArea').onTurnOff = function() {
		Sound.Play();
	}

	if(!isBGM) {
		$('imgPageSound').onTurnOn = function() {
			Sound.ClearPagesBGM();
		}

		$('imgPageSound').onTurnOff = function() {
			Book.Stop();
			Sound.Play();
			//Sound.SetPagesBGM();
		}
	}
}

if($('imgPrint')) {
	$('imgPrint').onclick = function() {
		window.print();
		IconClickEffect(this);
	}
}

// Kz2007-08-09 Start
if (isSkinSelection) {
	if($('imgClose')) { // Kz2007-08-09
		$('imgClose').onclick = function() {  // Kz2007-08-09
			window.close();	
		}
	}
} else {
	if(imgClose) {
		imgClose.onclick = function() {
			window.close();	
		}
	}
}	
// Kz2007-08-09 End

//
//	Book Event Handlers
//

//Kz2007-10-31 Start
var agent	= navigator.platform;
if (agent == "MacPPC" || agent == "MacIntel") {
	if(Book.spread) {
		$('imgBookLeft').onclick = function(e) {
			if(e.altKey) {
				Book.Prev();
				return;
			}

			Zoom.ZoomIn(Event.pointerX(e) - Book.left - 9, Event.pointerY(e) - 9);
		}

		$('imgBookRight').onclick = function(e) {
			if(e.altKey) {
				Book.Next();
				return;
			}

			Zoom.ZoomIn(Event.pointerX(e) - Book.left - 9, Event.pointerY(e) - 9);
		}
	}
	else {
		$('imgBook').onclick = function(e) {
			if(e.altKey) {
				Book.Next();
				return;
			}
	
			Zoom.ZoomIn(Event.pointerX(e) - Book.left - 9, Event.pointerY(e) - 9);
		}
	}
} else {
	if(Book.spread) {
		$('imgBookLeft').onclick = function(e) {
			Book.Prev();
			return;
		}

		$('imgBookLeft').oncontextmenu = function(e) {
			Zoom.ZoomIn(Event.pointerX(e) - Book.left - 9, Event.pointerY(e) - 9);
			return;
		}

		$('imgBookRight').onclick = function(e) {
			Book.Next();
			return;
		}

		$('imgBookRight').oncontextmenu = function(e) {
			Zoom.ZoomIn(Event.pointerX(e) - Book.left - 9, Event.pointerY(e) - 9);
			return;
		}
	}
	else {
		$('imgBook').onclick = function(e) {
				Book.Next();
				return;
		}

		$('imgBook').oncontextmenu = function(e) {
			Zoom.ZoomIn(Event.pointerX(e) - Book.left - 9, Event.pointerY(e) - 9);			
			return;
		}
	}
}
//Kz2007-10-31 End

$('divBook').onload = function() {
	Zoom.Prepare();
}

$('imgBookmarkButton').onclick = function() {
	Bookmark.Toggle();
}

document.body.onmousedown = function(e) {
	var ignore;
//	ignore = !Zoom.event;
	ignore = false;
	ignore = ignore || skinPosition == 'top' && Event.pointerY(e) < Element.getHeight('divMenu');
	ignore = ignore || skinPosition != 'top' && Event.pointerY(e) > window.innerHeight - Element.getHeight('divMenu');

	if(ignore)
		return;

	if(ignore || !Zoom.zoomed)
		return false; //Kz2007-11-22

	Zoom.isMouseDown = true;
	Zoom.mousePosition = {'x': Event.pointerX(e), 'y': Event.pointerY(e)};
	
	//Kz2007-11-22 Start
	var userinfo = navigator.userAgent;
	if ((userinfo.indexOf('Safari') >= 0 )  && (userinfo.indexOf('Version') >= 0 )) {  //For Safari 3.0
			if(Zoom.zoomed) {
				return false;
			}
	}
	//Kz2007-11-22 End
}

document.body.onmousemove = function(e) {
		if(!Zoom.isMouseDown || !Zoom.zoomed)
			return;

		Zoom.isDrag = true;

		Zoom.Scroll(
			Zoom.offsetX - Event.pointerX(e) + Zoom.mousePosition.x,
			Zoom.offsetY - Event.pointerY(e) + Zoom.mousePosition.y
		);

		Zoom.mousePosition = {'x': Event.pointerX(e), 'y': Event.pointerY(e)};
}

document.body.onmouseup = function(e) {
	var ignore;
//	ignore = !Zoom.event;
	ignore = false;
	ignore = ignore || skinPosition == 'top' && Event.pointerY(e) < Element.getHeight('divMenu');
	ignore = ignore || skinPosition != 'top' && Event.pointerY(e) > window.innerHeight - Element.getHeight('divMenu');

	if(ignore && !Zoom.isMouseDown)
		return;

	if(Zoom.zoomed) {
		if(!Zoom.isDrag)
			Zoom.ZoomOut();

		Zoom.isMouseDown = Zoom.isDrag = false;
	}
}

document.body.onkeydown = function(e) {
	if(Zoom.zoomed) {
		var toX = 0, toY = 0;
		switch(e.keyCode) {
			case Event.KEY_UP:
			case 63232:
				toY = -1;
				break;

			case Event.KEY_DOWN:
			case 63233:
				toY = 1;
				break;
				
			case Event.KEY_LEFT:
			case 63234:
				toX = -1;
				break;
				
			case Event.KEY_RIGHT:
			case 63235:
				toX = 1;
				break;		
		}

		Zoom.ScrollStart(Zoom.scrollXStep + toX, Zoom.scrollYStep + toY);
		return false;
	}
}

document.body.onkeyup = function(e) {
	switch(e.keyCode) {
		case Event.KEY_UP:
		case 63232:
		case Event.KEY_DOWN:
		case 63233:
		case Event.KEY_LEFT:
		case 63234:
		case Event.KEY_RIGHT:
		case 63235:
			Zoom.ScrollStop();
			scroll(0, 0);
	}
}
