/*
5digistar株式会社 [ActionBrowserサービス] 
Email： support@5digistar.co.jp 
URL： http://www.5digistar.co.jp/ 

Copyright (C) 2005 5digistar Inc. All Rights Reserved.
*/

var aPages = new Array();
var aLinks = new Array();
var aMedia = new Array();
var aContentList = new Array();
var aToolImg = new Array();
var aToolAlt = new Array();	
var xmlDoc;
                        
function setWindowConfiguration()
{
	screen.bufferDepth = 0;
	window.offscreenBuffering = false;
}

function setToolAlt()
{
	if(initLang=="en_")
	{	
		aToolAlt[0] = "Display On-Line support site";
		aToolAlt[1] = "Add Left-side Bookmark";
		aToolAlt[2] = "Delete All Bookmarks";
		aToolAlt[3] = "Add Right-side Bookmark";
		aToolAlt[4] = "Play/Stop BGM [Hotkey S]";
		aToolAlt[5] = "Show/Hide Link layers [Hotkey L]";
		aToolAlt[6] = "Information Bar";
		aToolAlt[7] = "Print [Hotkey P]";
		aToolAlt[8] = "Index [Hotkey I]";
		aToolAlt[9] = "Autoplay [Hotkey A]";
		aToolAlt[10] = "Turn first page of left side";
		aToolAlt[11] = "Turn left side page [Hotkey <-]";
		aToolAlt[12] = "Turn right side page [Hotkey ->]";
		aToolAlt[13] = "Turn first page of right side";
		aToolAlt[14] = "Enter page number on the left side and click [Hotkey Enter]";
		aToolAlt[15] = "Open a help page [Hotkey H]";
		aToolAlt[16] = "Close the window [Hotkey Q]";
		aToolAlt[17] = "Previous list";
		aToolAlt[18] = "Next list";
		aToolAlt[19] = "Print a left page";
		aToolAlt[20] = "Print a right page";
		aToolAlt[21] = "Please do not press an invalid key.";
		aToolAlt[22] = "Do you want to quit ActionBrowser?";
		aToolAlt[23] = "Total "+AB.PageCount+" Pages";
		aToolAlt[24] = (AB.ZoomRatio==1)?"Page zoom Not supported":("Page zoom x"+AB.ZoomRatio);
		aToolAlt[25] = "This book is not supported of zooming.";
	}
	else
	{
		aToolAlt[0] = "クリックでオンラインサポートページを表示";
		aToolAlt[1] = "左ページをブックマーク";
		aToolAlt[2] = "全ブックマークを消去";
		aToolAlt[3] = "右ページをブックマーク";
		aToolAlt[4] = "クリックでBGMの再生/停止切り替え [ホットキー S]";
		aToolAlt[5] = "クリックでページ上配置リンクの表示/非表示切り替え [ホットキー L]";
		aToolAlt[6] = "インフォメーション";
		aToolAlt[7] = "ページ印刷 [ホットキー P]";
		aToolAlt[8] = "目次 [ホットキー I]";
		aToolAlt[9] = "オートプレイ [ホットキー A]";
		aToolAlt[10] = "左端ページをめくる";
		aToolAlt[11] = "左ページをめくる [ホットキー ← or ↑]";
		aToolAlt[12] = "右ページをめくる [ホットキー → or ↓]";
		aToolAlt[13] = "右端ページをめくる";
		aToolAlt[14] = "左フォームにページ番号入力後クリック [ホットキー Enter]";
		aToolAlt[15] = "ヘルプ [ホットキー H]";
		aToolAlt[16] = "終了 [ホットキー Q]";
		aToolAlt[17] = "前のリスト";
		aToolAlt[18] = "後のリスト";
		aToolAlt[19] = "左ページを印刷";
		aToolAlt[20] = "右ページを印刷";
		aToolAlt[21] = "そのキーはご利用頂けません。";
		aToolAlt[22] = "ActionBrowserを終了しますか?";
		aToolAlt[23] = "全 "+AB.PageCount+" ページ";
		aToolAlt[24] = (AB.ZoomRatio==1)?"ページ拡大 未設定":("ページ拡大 x"+AB.ZoomRatio);
		aToolAlt[25] = "この本には拡大機能が設定されていません。";
	}
}

function setToolImages()
{
	var TImg = AB.TImageTool;
	var IFunc = AB.TImageFunction;
	
	for(var i=0; i<68; i++)
		aToolImg[i] = new Image();

	aToolImg[0].src = TImg + initLang +"tool_autoplay_down.gif";
	aToolImg[1].src = TImg + initLang + "tool_autoplay_on.gif";
	aToolImg[2].src = TImg + initLang + "tool_autoplay_out.gif";
	aToolImg[3].src = TImg + initLang + "tool_autoplay_over.gif";
	aToolImg[4].src = TImg + "tool_close_down.gif";
	aToolImg[5].src = TImg + "tool_close_out.gif";
	aToolImg[6].src = TImg + "tool_close_over.gif";
	aToolImg[7].src = TImg + "tool_enter_down.gif";
	aToolImg[8].src = TImg + "tool_enter_out.gif";
	aToolImg[9].src = TImg + "tool_enter_over.gif";
	aToolImg[10].src = TImg + "tool_flip_l_down.gif";
	aToolImg[11].src = TImg + "tool_flip_l_out.gif";
	aToolImg[12].src = TImg + "tool_flip_l_over.gif";
	aToolImg[13].src = TImg + "tool_flip_ll_down.gif";
	aToolImg[14].src = TImg + "tool_flip_ll_out.gif";
	aToolImg[15].src = TImg + "tool_flip_ll_over.gif";
	aToolImg[16].src = TImg + "tool_flip_r_down.gif";
	aToolImg[17].src = TImg + "tool_flip_r_out.gif";
	aToolImg[18].src = TImg + "tool_flip_r_over.gif";
	aToolImg[19].src = TImg + "tool_flip_rr_down.gif";
	aToolImg[20].src = TImg + "tool_flip_rr_out.gif";
	aToolImg[21].src = TImg + "tool_flip_rr_over.gif";
	aToolImg[22].src = TImg + "tool_help_down.gif";
	aToolImg[23].src = TImg + "tool_help_out.gif";
	aToolImg[24].src = TImg + "tool_help_over.gif";
	aToolImg[25].src = TImg + "tool_mokuzi_down.gif";
	aToolImg[26].src = TImg + "tool_mokuzi_out.gif";
	aToolImg[27].src = TImg + "tool_mokuzi_over.gif";
	aToolImg[28].src = TImg + "tool_print_down.gif";	
	aToolImg[29].src = TImg + "tool_print_out.gif";
	aToolImg[30].src = TImg + "tool_print_over.gif";
	aToolImg[31].src = IFunc + initLang + "print_l_out.gif";
	aToolImg[32].src = IFunc + initLang + "print_l_over.gif";
	aToolImg[33].src = IFunc + initLang + "print_r_out.gif";
	aToolImg[34].src = IFunc + initLang + "print_r_over.gif";
	aToolImg[35].src = IFunc + initLang + "list_prev_out.gif";
	aToolImg[36].src = IFunc + initLang + "list_prev_over.gif";
	aToolImg[37].src = IFunc + initLang + "list_next_out.gif";
	aToolImg[38].src = IFunc + initLang + "list_next_over.gif";
	aToolImg[39].src = TImg + "tool_sound_on.gif";
	aToolImg[40].src = TImg + "tool_sound_off.gif";
	aToolImg[41].src = TImg + "tool_layer_on.gif";
	aToolImg[42].src = TImg + "tool_layer_off.gif";
	aToolImg[43].src = TImg + "tool_info_on.gif";
	aToolImg[44].src = TImg + "tool_info_off.gif";
	aToolImg[45].src = TImg + "movie_play_down.gif";
	aToolImg[46].src = TImg + "movie_play_out.gif";
	aToolImg[47].src = TImg + "movie_play_over.gif";
	aToolImg[48].src = TImg + "movie_stop_down.gif";
	aToolImg[49].src = TImg + "movie_stop_out.gif";
	aToolImg[50].src = TImg + "movie_stop_over.gif";
	aToolImg[51].src = TImg + "tool_bookmark_l_out.gif";
	aToolImg[52].src = TImg + "tool_bookmark_l_down.gif";
	aToolImg[53].src = TImg + "tool_bookmark_c_out.gif";
	aToolImg[54].src = TImg + "tool_bookmark_c_down.gif";
	aToolImg[55].src = TImg + "tool_bookmark_r_out.gif";
	aToolImg[56].src = TImg + "tool_bookmark_r_down.gif";
	aToolImg[57].src = TImg + "tool_scroll_up_1.gif";
	aToolImg[58].src = TImg + "tool_scroll_up_2.gif";
	aToolImg[59].src = TImg + "tool_scroll_down_1.gif";
	aToolImg[60].src = TImg + "tool_scroll_down_2.gif";
	aToolImg[61].src = TImg + "tool_scroll_left_1.gif";
	aToolImg[62].src = TImg + "tool_scroll_left_2.gif";
	aToolImg[63].src = TImg + "tool_scroll_right_1.gif";
	aToolImg[64].src = TImg + "tool_scroll_right_2.gif";
	aToolImg[65].src = TImg + initLang + "tool_pagejump.gif";
	aToolImg[66].src = IFunc + initLang + "b_mokuzi.gif";
	aToolImg[67].src = IFunc + initLang + "b_print.gif";
}   

function Cimage(name,number) 
{
    document.images[name].src = aToolImg[number].src;
}

function importXML()
{
	importMainXML();
}

function importMainXML()
{
	xmlMain = document.all("XMLFile").XMLDocument;
	setViewerValues();
}

function getXML(argNode, argChild, argSort)
{
	var xml = xmlMain.getElementsByTagName(argNode);

	switch(argSort)
	{
		case 0:
			try
			{
				return xml[0].firstChild.nodeValue;
			}
			catch(err)
			{
				return null;
			}		
			break;
		case 1:
			return (xml[0].getAttribute(argChild)==null)?" ":xml[0].getAttribute(argChild);
		case 2:
			return (xml[0].getElementsByTagName(argChild)[0].firstChild.nodeValue==null)?" ":xml[0].getElementsByTagName(argChild)[0].firstChild.nodeValue;
		case 3:
			for(var i=0; i < xml.length; i++)
				aPages[i] = new Array(xml[i].getAttribute('id'), (xml[i].getAttribute('left')=="")?0:xml[i].getAttribute('left'), 
					(xml[i].getAttribute('top')=="")?0:xml[i].getAttribute('top'), (xml[i].getAttribute('right')=="")?0:xml[i].getAttribute('right'), 
					(xml[i].getAttribute('bottom')=="")?0:xml[i].getAttribute('bottom'), xml[i].getAttribute('path'));
			break;
		case 4:
			for(var i=0; i < xml.length; i++)
				aContentList[i] = new Array(xml[i].getAttribute('no'), xml[i].getAttribute('title'));
			break;
		default:
			break;
	}
}

function setViewerValues()
{
	var ImgPath;
	
	AB.Id = getXML('BookCode', '',0);
	AB.Title = getXML('BookInfo', 'title',1);
	AB.URL = getXML('BookInfo', 'url',1);
	AB.Author = getXML('Author', '',0);
	AB.Publisher = getXML('Publisher', '',0);
	AB.IssueDate = getXML('IssueDate', '',0);
	AB.PublishDate = getXML('PublishDate', '',0);
	
	AB.PageCount = parseInt(getXML('ImageInfo', 'count',1),10);
	ImgPath = getXML('ImageInfo', 'path',1);
	AB.ThumbImgPath = ImgPath+"thumb/";
	AB.SmallImgPath = ImgPath+"small/";
	AB.MiddleImgPath = ImgPath+"middle/";
	AB.LargeImgPath = ImgPath+"large/";
	
	AB.FlipDirection = parseInt(getXML('Flipping', 'direction',1),10);
	AB.Flipping = (getXML('Flipping', 'enable',1)=="1")? true:false;
	
	AB.Printing = (getXML('Printing','enable',1)=="1")? true:false;
	AB.ShowPageNum = (getXML('ShowPageNum','enable',1)=="1")? true:false;
	AB.StartPageNum = parseInt(getXML('ShowPageNum','startpage',1),10);
	AB.flagCenterBorder = (getXML('DisplayCenterBorder','enable',1)=="1")? true:false;

	AB.ZoomRatio = parseInt(getXML('Zooming', 'state', 1),10);
	
	AB.Navigation = (getXML('Navigation','enable', 1)=="1")? true:false;
	
	AB.ImageSizeWidth = parseInt(parseInt(getXML('PageSize', 'x', 1),10),10);
	AB.ImageSizeHeight = parseInt(parseInt(getXML('PageSize', 'y', 1),10),10);
	AB.ViewerMainWidth = parseInt(AB.ImageSizeWidth*AB.SmallImage,10);
	AB.ViewerMainHeight = parseInt(AB.ImageSizeHeight*AB.SmallImage,10);
	AB.ViewerLeftMargin = parseInt(AB.WindowSizeWidth/2-(AB.ViewerMainWidth+AB.ViewerLeftBorder),10);
	AB.ViewerTopMargin = ( (AB.WindowSizeHeight-(AB.ViewerMainHeight+AB.ViewerTopBar+AB.ViewerBottomBar))/2 + AB.ViewerTopBar );
	
	if(AB.ImageSizeWidth > AB.WindowSizeWidth)
		AB.ViewerMaxWidth = AB.WindowSizeWidth;
	else
		AB.ViewerMaxWidth = AB.ImageSizeWidth;
	
	AB.ViewerMaxHeight = AB.WindowSizeHeight-(AB.ViewerTopBar+AB.ViewerBottomBar);
	
	AB.ViewerMidWidth = AB.ViewerMainWidth * 2;
	AB.ViewerMidHeight = AB.ViewerMainHeight * 2;
	
	if(AB.ViewerMidHeight > AB.ViewerMaxHeight)
		AB.ViewerMidHeight = AB.ViewerMaxHeight;	
	
	AB.TImageMain = getXML('ToolSkin', 'path0', 1);
	AB.TImageFrame = getXML('ToolSkin', 'path1', 1);
	AB.TImageTool = getXML('ToolSkin', 'path2', 1);
	AB.TImageFunction = getXML('ToolSkin', 'path3', 1);
	AB.TImageLink = getXML('ToolSkin', 'path4', 1);
	
	AB.PageBackgroundImage = (getXML('BookInfo', 'background', 1)=="")?(tmpTImageMain + "blank.gif"):getXML('BookInfo', 'background', 1);
	AB.BGM = getXML('BookInfo', 'BGM',1);
	AB.BookmarkCount = checkBookmarkCount(30,AB.ViewerMainHeight);

	AB.MediaPath = getMediaLocalPath();
	
	AB.DisplayTitle[0] = (getXML('DisplayTitle','enable',1)=="1")? true:false;
	AB.DisplayTitle[1] = getXML('DisplayTitle','left',1);
	AB.DisplayTitle[2] = getXML('DisplayTitle','top',1);
	AB.DisplayTitle[3] = getXML('DisplayTitle','width',1);
	AB.DisplayTitle[4] = getXML('DisplayTitle','height',1);
	AB.DisplayTitle[5] = getXML('DisplayTitle','fontface',1);
	AB.DisplayTitle[6] = getXML('DisplayTitle','fontsize',1);
	AB.DisplayTitle[7] = getXML('DisplayTitle','fontcolor',1);
	
	//getXML('PageInfo', '', 3);
	getXML('MenuInfo', '', 4);
	
	document.title = AB.Title+" :: ActionBrowser";
}

function getMediaLocalPath()
{
	var mPath = "/data/media/";
	var tPath = location.href;
	
	tPath = tPath.substring(0,tPath.lastIndexOf('/dhtml'));
	mPath = tPath + mPath;
	
	return mPath;
}

function getObj()
{
	return document.getElementById(arguments[0]);
}

function setPageImages()
{
	setFirstVisibility();
}

function setFirstVisibility()
{
	switch(AB.FlipDirection)
	{
		case 0:
			showLayer('lyBorderRightMiddle', 'lyBorderRightBottom', 'lyBorderRightTop', 'lyRightCanvas', 
					'lyRightImage', 'lyRightGradation');
			setInitCover('lyRightImage');
			break;
		case 1:
			showLayer('lyBorderLeftMiddle', 'lyBorderLeftBottom', 'lyBorderLeftTop', 'lyLeftCanvas', 
					'lyLeftImage', 'lyLeftGradation');			
			setInitCover('lyLeftImage');
			break;
	}
}

function setInitCover(Obj)
{
	setPosition(getPosition(),Obj);	
	//getObj(Obj).innerHTML = "<img src='" + AB.SmallImgPath + aPages[0][5]+ "' width='100%' height='100%' border='0'>";
	getObj(Obj).innerHTML = "<img src='" + AB.SmallImgPath + GetImgName(0)+ "' width='100%' height='100%' border='0'>";
}

function hideLayer()
{
	for(var i=0; i < arguments.length; i++)
		getObj(arguments[i]).style.visibility = "hidden";
}

function showLayer()
{
	for(var i=0; i < arguments.length; i++)
	{	
		switch(arguments[i])
		{
		case 'lyLeftGradation':
		case 'lyRightGradation':
			if(AB.flagCenterBorder) getObj(arguments[i]).style.visibility = "visible";
			break;
		default:
			getObj(arguments[i]).style.visibility = "visible";
			break;
		}		
	}
}

function createNavigation()
{
	if(!AB.Navigation) return;
	
	var NavigationDiv = document.createElement("Div");
	
	AB.oViewer.appendChild(NavigationDiv);
	NavigationDiv.innerHTML = " <div id='NavigationDiv'> </div> ";
	this.NavigationDiv = NavigationDiv;
	with(this.Navigation.style) 
	{
		position = "absolute";
		right = 0+"px";
		top = (docuemnt.body.clientHeight - 24) + "px";
		zIndex = 10;		
	}
}

function checkBookmarkCount(pBMH, pPH)
{
	for(var i=1; i <= 20; i++)
	{
		if( (pBMH * i) >= pPH)
			return (i-1);		
	}
	return 20;
}
