﻿// --------------------------------------------------
// Functions for CrossBrowser
// --------------------------------------------------

// DOM: 1=NN4, 2=IE4, 3=IE5+, 4=NN6+, 0=Others
// --------------------------------------------------
DOM = document.all?(document.getElementById?3:2)
			:(document.getElementById?4
			:(document.layers?1:0));

function getDivFromName(idName){
	if(DOM>=3) return document.getElementById(idName);
	if(DOM==2) return document.all(idName);
	if(DOM==1){
		var s = '';
		for(var i=1; i<arguments.length; i++)
		s += 'document.layers.'+arguments[i]+'.';
		return eval(s+'document.layers.'+idName);
	}
	return null;
}
function getDivLeft(div){
	if(DOM>=3) return div.offsetLeft;
	if(DOM==2) return div.style.pixelLeft;
	if(DOM==1) return div.left;
	return 0;
}
function getDivTop(div){
	if(DOM>=3) return div.offsetTop;
	if(DOM==2) return div.style.pixelTop;
	if(DOM==1) return div.top;
	return 0;
}
function getPageX(e){
	if(window.opera) return e.clientX;
	if(DOM==4) return e.clientX+window.scrollX;
	if(DOM==3 || DOM==2) return document.body.scrollLeft+window.event.clientX;
	if(DOM==1) return e.pageX;
	return 0;
}
function getPageY(e){
	if(window.opera) return e.clientY;
	if(DOM==4) return e.clientY+window.scrollY;
	if(DOM==3 || DOM==2) return document.body.scrollTop+window.event.clientY;
	if(DOM==1) return e.pageY;
	return 0;
}

// Main Script
// --------------------------------------------------
var selected = null;
var offsetX = 0;
var offsetY = 0;

function pickup(layerID,e){
	selected = getDivFromName(layerID);
	offsetX = getPageX(e) - getDivLeft(selected);
	offsetY = getPageY(e) - getDivTop(selected);
	if(DOM==4) document.onmousemove = dragMZ;
	if(DOM==3 || DOM==2) document.onmousemove = dragIE;
	if(DOM==1) document.onmousemove = dragNN;
	if(window.opera) document.onmousemove = dragOP;
}
function dragMZ(e){ // for Mozilla,NN6,etc
	var movetoX = e.clientX+window.scrollX-offsetX;
	var movetoY = e.clientY+window.scrollY-offsetY;
	selected.style.left = movetoX +'px';
	selected.style.top  = movetoY +'px';
	return false;
}
function dragIE(){ // for IE4+
	var movetoX = event.clientX+document.body.scrollLeft-offsetX;
	var movetoY = event.clientY+document.body.scrollTop -offsetY;
	selected.style.pixelLeft = movetoX;
	selected.style.pixelTop  = movetoY;
	return false;
}
function dragOP(e){ // for Opera
	var movetoX = e.clientX-offsetX;
	var movetoY = e.clientY-offsetY;
	selected.style.left = movetoX +'px';
	selected.style.top  = movetoY +'px';
	return false;
}
function dragNN(e){ // for NN4
	var movetoX = e.pageX-offsetX;
	var movetoY = e.pageY-offsetY;
	selected.moveTo(movetoX, movetoY);
	return false;
}
function clearAll() {
	document.onmousemove = "";
	selected = null;
	offsetX = 0;
	offsetY = 0;
}

// EventCapture
// --------------------------------------------------
if(document.layers){
	document.captureEvents(Event.MOUSEMOVE);
	document.captureEvents(Event.MOUSEUP);
}
document.onmouseup = clearAll;


// --------------------------------------------------
// Map Changer
// --------------------------------------------------
function switchView1(){

	var guidemapfield = '';
	guidemapfield += '<div id="guidemap" style="position: absolute; top: -720px; left: -420px;">';
	guidemapfield += '<img src="../img/access/guidemap_wide.gif" onmousedown="pickup(\'guidemap\', event); return false" galleryimg="no">';
	guidemapfield += '</div>';

	// HTML書き出し
	document.getElementById("guidemapfield").innerHTML = guidemapfield;

}

function switchView2(){

	var guidemapfield = '';
	guidemapfield += '<div id="guidemap" style="position: absolute; top: -640px; left: -10px;">';
	guidemapfield += '<img src="../img/access/guidemap_local.gif" onmousedown="pickup(\'guidemap\', event); return false" galleryimg="no">';
	guidemapfield += '</div>';

	// HTML書き出し
	document.getElementById("guidemapfield").innerHTML = guidemapfield;

}
