/* 書簏 JavaScript */

var	_lh = location.href;
if (location.hostname == "crypto.ne.jp")
	location.replace(_lh.replace("crypto.ne.jp", "www.crypto.ne.jp"));

// preload
var	_bgImg = new Image();
_bgImg.src = _imgD + 'pix/makimono.png';
var	_fd = new Array();
_fd[0] = new Image(16, 16);
_fd[1] = new Image(16, 16);
_fd[0].src = _imgD + 'mini/feed16.png';
_fd[1].src = _imgD + 'mini/rss16.png';

// eMail
var	_MA = 'orthobox' + String.fromCharCode(64) + 'shoroku' + String.fromCharCode(46) + 'jp';
function sendMail()
{
	location.href = String.fromCharCode(109,97,105,108,116,111,58) + _MA;
	return false;
}

function goSearch(w)
{
	var	e = dE('word');
	var	wd = e.value;
	if (!wd.length)
		e.focus();
	else if (wd != w)
		dE('srch').submit();
	return false;
}

// roll over
function imgSwap(id, img)
{
	if (img.complete)
		id.src = img.src;
	return true;
}

// 文字列連結
var	_scatS;
function scat()
{
	_scatS = '';
	for (var i = 0; i < scat.arguments.length; i++) {
		if (scat.arguments[i].length)
			_scatS += scat.arguments[i];
	}
	return _scatS;
}

// 配列削除
function arrayKill(ar, n)
{
	var	i;
	if (typeof(n) == 'number')
		i = n;
	else {
		for (i in ar) {
			if (ar[i] == n)
				break;
		}
	}
	for (i++; i < ar.length; i++)
		ar[i - 1] = ar[i];
	ar.pop();
	return ar;
}

// element object
function dE()
{
	if (!document.getElementById)
		return null;
	if (dE.arguments.length == 1 && typeof(dE.arguments[0]) != 'object')
		return document.getElementById(dE.arguments[0]);
	var	a, e = new Array();
	for (var i = 0; i < dE.arguments.length; i++) {
		a = dE.arguments[i];
		if (typeof(a) != 'object')
			e[a] = document.getElementById(a);
		else {
			for (var n = 0; n < a.length; n++)
				e[a[n]] = document.getElementById(a[n]);
		}
	}
	return e;
}

// pop up window
function display(id, flg)
{
	var	s = dE(id).style;
	if (s) {
		s.visibility = flg ? 'visible' : 'hidden';
		s.display = flg ? 'block' : 'none';
	}
	return false;
}

function getScrollX()
{
	if (document.documentElement && window.scrollX)
		return window.scrollX;
	if(window.pageXOffset)
		return window.pageXOffset; 
	if (document.documentElement && document.documentElement.scrollLeft)
		return document.documentElement.scrollLeft;
	if (document.body && document.body.scrollLeft)
		return document.body.scrollLeft;
	return 0;
}

function getScrollY()
{
	if (document.documentElement && window.scrollY)
		return window.scrollY;
	if(window.pageYOffset)
		return window.pageYOffset;
	if (document.documentElement && document.documentElement.scrollTop)
		return document.documentElement.scrollTop;
	if (document.body && document.body.scrollTop)
		return document.body.scrollTop;
	return 0;
}

function calculateX(el, x)
{
	var	dx;
	var	wx = (window.innerWidth ? window.innerWidth - 20 : document.documentElement.clientWidth) - 10;
	if (wx < x + el.offsetWidth / 2)
		dx = wx - el.offsetWidth;
	else
		dx = x - el.offsetWidth / 2;
	return (dx < 10 ? 10 : dx) + getScrollX();
}

function getDesiredX(id, ev, x)
{
	if (x)
		return x + ev.clientX + getScrollX();
	var	el = dE(id);
	if (el)
		return calculateX(el, ev.clientX);
	return 0;
}

function calculateY(el, y)
{
	var	dy;
	var	wy = (window.innerHeight ? window.innerHeight : document.documentElement.clientHeight) - 5;
	if (wy < y + el.offsetHeight / 2)
		dy = wy - el.offsetHeight;
	else
		dy = y - el.offsetHeight / 2;
	return (dy < 5 ? 5 : dy) + getScrollY();
}

function getDesiredY(id, ev, y)
{
	if (y)
		return y + ev.clientY + getScrollY();
	var	el = dE(id);
	if (el)
		return calculateY(el, ev.clientY);
	return 0;
}

var	_vID = new Array();
function puwHide(id)
{
	var	s;
	if (id) {
		s = dE(id).style;
		if (s) {
			s.visibility = 'hidden';
			s.display = 'none';
		}
		_vID = arrayKill(_vID, id);
		return;
	}
	for (var i in _vID) {
		s = dE(_vID[i]).style;
		if (s) {
			s.visibility = 'hidden';
			s.display = 'none';
		}
	}
	_vID = new Array();
}

function puwVisible(id, hd)
{
	if (hd)
		puwHide();
	var	s = dE(id).style;
	if (s) {
		for (var i in _vID) {
			if (id == _vID[i])
				return;
		}
		s.display = 'block';
		s.visibility = 'visible';
		_vID.push(id);
	}
}

function puwShow(id, ev, mvx, mvy, kp)
{
	var	s = dE(id).style;
	if (s) {
		s.display = 'block';
		s.left = getDesiredX(id, ev, mvx) + "px";
		s.top = getDesiredY(id, ev, mvy) + "px";
		puwVisible(id, !kp);
	}
	return false;
}
