// JavaScript Document

/* ==========================================================================


概要

 1. メールアドレスへのリンク生成

(C) 920
 Lastupdate： 2008.11.16    by 920

========================================================================== */


window.onload = function () {
//	newMark();
//	addCaption();
}

/* ----------------------------------------------------------------------
 1. 
---------------------------------------------------------------------- */

// 初期設定
// ----------------------------------------------------------------------



/* ----------------------------------------------------------------------
 1. メールアドレスへのリンク生成
---------------------------------------------------------------------- */

// メールアドレスのリンク（テキストタイプ）

// メールアドレスを設定
mAddress = new Array();	//メールアドレスをエンコード（数値参照）したもの
mAddress[0] = '&#x79;&#x6f;&#121;a&#x6b;u&#x40;yos&#x69;k&#x61;&#x77;aya&#x2E;&#x6E;&#101;t';	//yoyaku


//メールアドレスにリンク（テキストメールアドレス）
function mail(adNo) {
	targetText = mAddress[adNo];
	document.write(targetText.link('&#109;&#97;&#105;&#108;&#116;&#111;&#58;' + mAddress[adNo]));
}


/* ----------------------------------------------------------------------
 2. 新着マークの表示（classを追加）
-------------------------------------------------------------------------

指定のclassが与えられた要素を判定し、新しければ指定のclassを同要素に追加する。

	class="newItem update__2008-01-01"


ブラウザの動作状況

	Windows
		× Internet Explorer 5.0
		× Internet Explorer 5.5
		○ Internet Explorer 6
		○ Internet Explorer 7
		○ Safari 3
		× Opera 9.27 
	Mac
		○ Safari 3
		× Internet Explorer 5.23
		× Opera 9.25 

---------------------------------------------------------------------- */


// 初期設定
// ----------------------------------------------------------------------


// 新着表示する日数
var recent = 7;

// 新着の情報を判断するエレメントに設定されたクラスネーム
var targetDate = "ifNew";

// 日付データに付加する文字列（日付形式: 2008-01-01 例: update__2008-01-01）
var attachedStr = "update__"; 

// 新着の情報に追加するクラスネーム
var addClass = "newItem";

// ----------------------------------------------------------------------

var currentDate = new Date().getTime();

function newMark(scopeId,targetTag) {

	if(document.getElementsByTagName) {
		
		var items = document.getElementById(scopeId).getElementsByTagName(targetTag);
		
		for(var i=0; i < items.length; i++) {

			if(items[i].getAttribute("class")) {
				var itemClasss = items[i].getAttribute("class");
			}
			else {
				var itemClasss = items[i].getAttribute("className");
			}

			if(itemClasss.match(targetDate)) {
				var itemClass = itemClasss.split(" ");
				var updateTime;
				for (j=0; j<itemClass.length; j++) {
					if(itemClass[j].match(attachedStr)) {
						updateStrs = itemClass[j].split("__");
						updateTime = updateStrs[1];
					}
				}
				var times = updateTime.split("-");
				var entryDate = new Date(times[0], times[1]-1, times[2], 0, 0, 0).getTime();
				var passDay = Math.floor((currentDate - entryDate) / (24 * 60 * 60 * 1000));
				if(recent >= passDay) {

					if(items[i].setAttribute("class",itemClasss + " " + addClass)) {
						items[i].setAttribute("class",itemClasss + " " + addClass);
					}
					else {
						items[i].setAttribute("className",itemClasss + " " + addClass);
					}

				}
			}
		}

	}

}

/* ----------------------------------------------------------------------
 3. フォトギャラリー
------------------------------------------------------------------------- */

// 設置方法
// ----------------------------------------------------------------------

/*

全体のボックスの設定
	id： 任意

大きい画像の設定
	id： 任意

キャプション表示ボックスの設定
	id： 任意

サムネール画像の設定
	alt： キャプションを設定
	longdesc： 大きい画像のurlを設定
	class： 任意

関数の呼び出し
	全体のボックスの後ろに記述
	photoGallery(全体のボックスのid','サムネール画像のclass','大きい画像のid','キャプションを表示するボックスのid)


(X)HTML の例

<div id="gallerys">

<div><img src="" alt="" id="viewerImg" /></div>
<p id="galleryCaption">キャプション</p>

<ul id="thumbnails">
<li><img src="サムネール画像のurl" alt="キャプション" longdesc="大きい画像のurl" class="galleryImg" /></li>
<li><img src="サムネール画像のurl" alt="キャプション" longdesc="大きい画像のurl" class="galleryImg" /></li>
</ul>

</div>

<script type="text/javascript">
<!--
photoGallery('gallerys','galleryImg','viewerImg','galleryCaption');
// -->
</script>

*/

// ----------------------------------------------------------------------


function photoGallery(thumbnails,lightboxLink,viewerImg,galleryCaption,galleryImg) {

if(document.getElementsByTagName) {
		
		var images = document.getElementById(thumbnails).getElementsByTagName("img");
		
		for(var i=0; i < images.length; i++) {

			if(images[i].getAttribute("class")) {
				var thumbnailClass = images[i].getAttribute("class");
			}
			else {
				var thumbnailClass = images[i].getAttribute("className");
			}


			if(thumbnailClass == "galleryImg") {
				
				(new Image()).src = images[i].getAttribute("longdesc");

				try{
					images[i].style.cursor = "pointer";
				}
				catch(e){
					// style.cursor 未対応ブラウザでは、未処理
				}

				images[i].onclick = function() {
					document.getElementById(viewerImg).src = this.getAttribute("longdesc");
					document.getElementById(lightboxLink).href = this.getAttribute("alt");
					document.getElementById(lightboxLink).title = this.getAttribute("title");
					document.getElementById(galleryCaption).innerHTML = this.getAttribute("title");
				}

			}
		}
	}

}


/* ----------------------------------------------------------------------
 4. ロールオーバー
------------------------------------------------------------------------- */

function rollover(idName) {
	if(document.getElementsByTagName) {
		var images = document.getElementById(idName).getElementsByTagName("img");

		for(var i=0; i < images.length; i++) {

			if(images[i].getAttribute("class")) {
				var targetClass = images[i].getAttribute("class");
			}
			else {
				var targetClass = images[i].getAttribute("className");
			}

			if(targetClass == "rollover") {
				if(images[i].getAttribute("src").match(/\.gif/)) {
					var preImgSrc = images[i].getAttribute("src").replace(/\.gif/, "__rollover.gif");
				}
				if(images[i].getAttribute("src").match(/\.jpg/)) {
					var preImgSrc = images[i].getAttribute("src").replace(/\.jpg/, "__rollover.jpg");
				}
				if(images[i].getAttribute("src").match(/\.png/)) {
					var preImgSrc = images[i].getAttribute("src").replace(/\.png/, "__rollover.png");
				}
				
				(new Image()).src = preImgSrc;
				
				images[i].onmouseover = function() {
					if(this.getAttribute("src").match(/\.gif/)) {
						this.setAttribute("src", this.getAttribute("src").replace(/\.gif/, "__rollover.gif"));
					}
					if(this.getAttribute("src").match(/\.jpg/)) {
						this.setAttribute("src", this.getAttribute("src").replace(/\.jpg/, "__rollover.jpg"));
					}
					if(this.getAttribute("src").match(/\.png/)) {
						this.setAttribute("src", this.getAttribute("src").replace(/\.png/, "__rollover.png"));
					}
				}
				images[i].onmouseout = function() {
					if(this.getAttribute("src").match(/\.gif/)) {
						this.setAttribute("src", this.getAttribute("src").replace(/__rollover\.gif/, ".gif"));
					}
					if(this.getAttribute("src").match(/\.jpg/)) {
						this.setAttribute("src", this.getAttribute("src").replace(/__rollover\.jpg/, ".jpg"));
					}
					if(this.getAttribute("src").match(/\.png/)) {
						this.setAttribute("src", this.getAttribute("src").replace(/__rollover\.png/, ".png"));
					}
				}
			}

		}
	}
}



// 初期設定
// ----------------------------------------------------------------------

var imgFile = "/images/magnifier.gif";	// 拡大鏡のイメージファイル
var altText = "ZOOM IN";				// 拡大鏡イメージの代替文字
var wSize = "22";						// 拡大鏡イメージの幅
var hSize = "22";						// 拡大鏡イメージの高さ
var topPosition = "8px";				// 拡大鏡イメージの上端からの位置
var leftPosition = "8px";				// 拡大鏡イメージの左端からの位置
var magplus = "/images/magplus.cur";		// カーソルイメージファイル

// ----------------------------------------------------------------------

function addMagnifier(scopeId) {

	if(document.getElementsByTagName) {

		if(scopeId) {
			var items = document.getElementById(scopeId).getElementsByTagName('a')
		}
		else {
			var items = document.getElementsByTagName('a')
		}

		for(var i=0; i<items.length; i++) {
			var itemRel = items[i].getAttribute("rel");
			if(itemRel) {
				if(itemRel.match("lightbox")) {

					items[i].style.position = "relative";
					try{
						items[i].style.display = "inline-block";
					}
					catch(e){
						// style.display 未対応ブラウザでは、未処理
					}

					try{
						items[i].style.cursor = "url(" + magplus + "), pointer";
					}
					catch(e){
						// style.cursor 未対応ブラウザでは、未処理
					}

					var imgTag = document.createElement("img");

					imgTag.setAttribute("src",imgFile);
					imgTag.setAttribute("alt",altText);
					imgTag.setAttribute("width",wSize);
					imgTag.setAttribute("height",hSize);
					items[i].insertBefore(imgTag,items[i].firstChild);
					imgTag.style.position = "absolute";
					imgTag.style.top = topPosition;
					imgTag.style.left = leftPosition;

				}
			}
		}

	}

}
