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

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

var dragObj = new Object();
var NaviObj, NaviObj3;

function dragStart(event, imgid, id)
{    
	var x, y;  
	
	if (id)
	{
		dragObj.elNode = document.getElementById(id);
		NaviObj = document.getElementById(imgid)	
	}
	else
	{
		dragObj.elNode = window.event.srcElement;

		if (dragObj.elNode.nodeType == 3)
			dragObj.elNode = dragObj.elNode.parentNode;
	}

	x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
	y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;

	dragObj.cursorStartX = x;
	dragObj.cursorStartY = y;
	dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
	dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

	document.attachEvent("onmousemove", dragGo);
	document.attachEvent("onmouseup", dragStop);
	window.event.cancelBubble = false;
	window.event.returnValue = true;
}

function dragGo(event)
{ 
	var x, y;
	var ImgW,ImgH;
	var NaviX,NaviY;

	x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
	y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;

	NaviX = parseInt(NaviObj.style.width);
	NaviY = parseInt(NaviObj.style.height);
	
	x = dragObj.elStartLeft + x - dragObj.cursorStartX;
	y = dragObj.elStartTop  + y - dragObj.cursorStartY;

	ImgW = parseInt(dragObj.elNode.style.width);
	ImgH = parseInt(dragObj.elNode.style.height);
	
	switch(AB.ViewerStatus)
	{
	case 60:
	case 61:
		x = 0;
		break;
	case 600:
	case 610:
		if(0>=x) 
			x = 0;
		else if((x+ImgW)>=NaviX) 
			x = NaviX-ImgW;
		break;
	}
	
	if(0>=y) 
		y = 0;
	else if((y+ImgH)>=NaviY) 
		y = NaviY-ImgH;
	    
	dragObj.elNode.style.left = x;
	dragObj.elNode.style.top  = y;
	
	moveMap(x,y);

	window.event.cancelBubble = true;
	window.event.returnValue = false;
}

function dragStop(event)
{
	document.detachEvent("onmousemove", dragGo);
	document.detachEvent("onmouseup",   dragStop);
  
	window.event.cancelBubble = true;
	window.event.returnValue = false;
}

function moveMap(x,y)
{	
	switch(AB.ViewerStatus)
	{
	case 60:
	case 61:
		var imgMap = getObj('lyZoom');
		var maxH = parseInt(getObj('lyZoom').style.height,10)-parseInt(getObj('lyZoomView').style.height,10);
		var moveP = y*20*0.6;
		
		if(maxH>moveP)
		{
			imgMap.style.top = -moveP;
			if(moveP==0)
			{
				onScrollTop(4);
				onScrollBottom(0);
			}
			else
			{
				onScrollTop(0);
				onScrollBottom(0);			
			}
		}
		else if(maxH<=moveP)
		{
			imgMap.style.top = -maxH;
			onScrollTop(0);
			onScrollBottom(4);			
		}
		break;
	case 600:
	case 610:
		var imgMap = getObj('lyZoom3');
		var maxH = parseInt(getObj('lyZoom3').style.height,10)-parseInt(getObj('lyZoomView3').style.height,10);
		var maxW = parseInt(getObj('lyZoom3').style.width,10)-parseInt(getObj('lyZoomView3').style.width,10);
		var moveX = x*20;
		var moveY = y*20;
		
		if(maxH>moveY)
		{
			imgMap.style.top = -moveY;
			if(moveY==0)
			{
				onScrollTop3(4);
				onScrollBottom3(0);
			}
			else
			{
				onScrollTop3(0);
				onScrollBottom3(0);			
			}		
		}
		else
		{
			imgMap.style.top = -maxH;
			onScrollTop3(0);
			onScrollBottom3(4);
		}
			
		if(maxW>moveX)
		{
			imgMap.style.left = -moveX;
			if(moveX==0)
			{
				onScrollLeft3(4);
				onScrollRight3(0);
			}
			else
			{
				onScrollLeft3(0);
				onScrollRight3(0);			
			}		
		}
		else
		{
			imgMap.style.left = -maxW;	
			onScrollLeft3(0);
			onScrollRight3(4);
		}
		break;
	}
}

function setNaviPosition()
{	
	if(!AB.Navigation) return;

	switch(AB.ViewerStatus)
	{
	case 60:
	case 61:
		var cHeight = parseInt(getObj('lyNavigation').style.height,10) 
			* (parseInt(getObj('lyZoomView').style.height,10)/parseInt(getObj('lyZoom').style.height,10));
		var oNavi = getObj('lyNaviRect').style;

		oNavi.height = cHeight;
		oNavi.width = parseInt(getObj('lyNavigation').style.width,10)-2;
		oNavi.left = 0;
		if(parseInt(getObj('lyZoomView').style.height,10)==parseInt(getObj('lyZoom').style.height,10))
			oNavi.top = 0;
		else
			oNavi.top = arguments[0][1]/(20*0.6);
		break;
	case 600:
	case 610:
		var cHeight = parseInt(getObj('lyNavigation').style.height,10) 
			* (parseInt(getObj('lyZoomView3').style.height,10)/parseInt(getObj('lyZoom3').style.height,10));
		var cWidth = parseInt(getObj('lyNavigation').style.width,10) 
			* (parseInt(getObj('lyZoomView3').style.width,10)/parseInt(getObj('lyZoom3').style.width,10));
		
		var oNavi = getObj('lyNaviRect').style;

		oNavi.height = cHeight;
		oNavi.width = cWidth;
		oNavi.left = -parseInt(getObj('lyZoom3').style.left,10)/20;
		oNavi.top = -parseInt(getObj('lyZoom3').style.top,10)/20;
		break;
	}
}

function setNaviImg()
{
	if(!AB.Navigation) return;
	
	var iNavi = getObj('lyNaviImg').style;
	var oNavi = getObj('lyNavi').style;
	var CurPage = AB.IndexCurrentPage;
	var strHTML;
	
	switch(AB.FlipDirection)
	{
	case 0:
		switch(AB.ViewerStatus)
		{
		case 60:
			AB.lyNaviImg[0][0] = iNavi.left = 0;
			AB.lyNaviImg[0][1] = iNavi.top = 0;
			AB.lyNaviImg[0][2] = iNavi.width = parseInt(oNavi.width,10);
			AB.lyNaviImg[0][3] = iNavi.height = parseInt(oNavi.height,10);
			getObj('lyNaviImg').innerHTML = getObj('lyLeftImage').innerHTML;
			break;
		case 61:
			AB.lyNaviImg[0][0] = iNavi.left = 0;
			AB.lyNaviImg[0][1] = iNavi.top = 0;
			AB.lyNaviImg[0][2] = iNavi.width = parseInt(oNavi.width,10);
			AB.lyNaviImg[0][3] = iNavi.height = parseInt(oNavi.height,10);
			getObj('lyNaviImg').innerHTML = getObj('lyRightImage').innerHTML;			
			break;
		}
		break;
	case 1:
		switch(AB.ViewerStatus)
		{
		case 60:
			AB.lyNaviImg[0][0] = iNavi.left = 0;
			AB.lyNaviImg[0][1] = iNavi.top = 0;
			AB.lyNaviImg[0][2] = iNavi.width = parseInt(oNavi.width,10);
			AB.lyNaviImg[0][3] = iNavi.height = parseInt(oNavi.height,10);
			getObj('lyNaviImg').innerHTML = getObj('lyLeftImage').innerHTML;
			break;
		case 61:			
			AB.lyNaviImg[0][0] = iNavi.left = 0;
			AB.lyNaviImg[0][1] = iNavi.top = 0;
			AB.lyNaviImg[0][2] = iNavi.width = parseInt(oNavi.width,10);
			AB.lyNaviImg[0][3] = iNavi.height = parseInt(oNavi.height,10);
			getObj('lyNaviImg').innerHTML = getObj('lyRightImage').innerHTML;
			break;
		}
		break;
	}
}

function NavidragStart(event, id) 
{
	var el;
	var x, y;

	if (id)
		dragObj.elNode = document.getElementById(id);
	else 
	{
		dragObj.elNode = window.event.srcElement;

		if (dragObj.elNode.nodeType == 3)
			dragObj.elNode = dragObj.elNode.parentNode;
	}

	x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
	y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;

	dragObj.cursorStartX = x;
	dragObj.cursorStartY = y;
	dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
	dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

	if (isNaN(dragObj.elStartLeft)) 
		dragObj.elStartLeft = 0;
	if (isNaN(dragObj.elStartTop))  
		dragObj.elStartTop  = 0;

	document.attachEvent("onmousemove", NavidragGo);
	document.attachEvent("onmouseup",   NavidragStop);
	window.event.cancelBubble = true;
	window.event.returnValue = false;
}

function NavidragGo(event) 
{
	var x, y;

	x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
	y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;

	dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX);
	dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY);

	window.event.cancelBubble = true;
	window.event.returnValue = false;
}

function NavidragStop(event) 
{  
	document.detachEvent("onmousemove", NavidragGo);
	document.detachEvent("onmouseup",   NavidragStop);
}
