﻿/* event_litsen ------------------------------------------------------------- */

//イベントをセットする
function setEvent(obj,type,func,cap){
	if(obj.addEventListener){
		obj.addEventListener(type,func,cap);
	}
	else if(obj.attachEvent){
		obj.attachEvent('on'+type,func);
	}
	else{
		return false;
	}
}

//イベントの起こったオブジェクト要素名を返す
function getEventTagName(e){
	return (e.target) ? e.target.tagName : e.srcElement.tagName;
}

//イベントの起こったオブジェクトのIDを返す
function getEventId(e){
	return (e.target) ? e.target.id : e.srcElement.id;
}

//IDに付与された番号を返す
function getIdSuffix(eid,prefix){
	return eid.substring(prefix.length,eid.length);
}

/* event_litsen ------------------------------------------------------------- */

/* ie_methods --------------------------------------------------------------- */
//   Written by Terry Friesen,  tfriesen@mts.net
//   http://www.mts.net/~tfriesen/dhtml/

//   This script gives Netscape 6 the following IE methods:
//   removeNode(),replaceNode(),swapNode(),applyElement(),contains(),
//   insertAdjacentText(),insertAdjacentHTML(),insertAdjacentElement()


if(self.Node && self.Node.prototype){
	Node.prototype.removeNode = remove_Node;
	Node.prototype.replaceNode = replace_Node;
	Node.prototype.swapNode = swap_Node;
	Element.prototype.applyElement = apply_Element;
	Element.prototype.contains = _contains;
	Element.prototype.insertAdjacentText = insertAdj_Text;
	Element.prototype.insertAdjacentHTML = insertAdj_HTML;
	Element.prototype.insertAdjacentElement = insertAdj_El;
	Element.prototype.insert__Adj = insert__Adj;
}

function remove_Node(a1){
	var p=this.parentNode;
	if(p&&!a1){
		var df = document.createDocumentFragment();
		for(var a=0;a<this.childNodes.length;a++){
			df.appendChild(this.childNodes[a]);
		}
		p.insertBefore(df,this)
	}
	return p ? p.removeChild(this) : this;
}

function replace_Node(a1){
	return this.parentNode.replaceChild(a1,this);
}

function swap_Node(a1){
	var p = a1.parentNode;
	var s = a1.nextSibling;
	this.parentNode.replaceChild(a1,this);
	p.insertBefore(this,s);
	return this;
}

function apply_Element(a1,a2){
	if(!a1.splitText){
		a1.removeNode();
		if(a2 && a2.toLowerCase() == 'inside'){
			for(var a=0;a<this.childNodes.length;a++){
				a1.appendChild(this.childNodes[a])
			}
			this.appendChild(a1);
		}
		else{
			var p=this.parentNode;
			p.insertBefore(a1,this);
			a1.appendChild(this);
		}
		return a1;
	}
}

function _contains(a1){
	var r = document.createRange();
	r.selectNode(this);
	return r.compareNode(a1) == 3;
}

function insertAdj_Text(a1,a2){
	var t = document.createTextNode(a2||'');
	this.insert__Adj(a1,t);
}

function insertAdj_HTML(a1,a2){
	var r = document.createRange();
	r.selectNode(this);
	var t = r.createContextualFragment(a2);
	this.insert__Adj(a1,t);
}

function insertAdj_El(a1,a2){
	this.insert__Adj(a1,a2);
	return a2;
}

function insert__Adj(a1,a2){
	var p = this.parentNode;
	var s = a1.toLowerCase();
	if(s=='beforebegin'){
		p.insertBefore(a2,this);
	}
	if(s=='afterend'){
		p.insertBefore(a2,this.nextSibling);
	}
	if(s=='afterbegin'){
		this.insertBefore(a2,this.childNodes[0]);
	}
	if(s=='beforeend'){
		this.appendChild(a2);
	}
}

/* ie_methods --------------------------------------------------------------- */

/* iepngfix ----------------------------------------------------------------- */

/*
 * IE PNG Fix v1.4
 *
 * Copyright (c) 2006 Takashi Aida http://www.isella.com/aod2/
 *
 */

// IE5.5+ PNG Alpha Fix v1.0RC4
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com

// This is licensed under the CC-GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/

if (typeof IEPNGFIX == 'undefined') {
//--============================================================================

var IEPNGFIX = {
	blank:  'img/_.gif',
	filter: 'DXImageTransform.Microsoft.AlphaImageLoader',

	fixit: function (elem, src, method) {
		if (elem.filters[this.filter]) {
			var filter = elem.filters[this.filter];
			filter.enabled = true;
			filter.src = src;
			filter.sizingMethod = method;
		}
		else {
			elem.style.filter = 'progid:' + this.filter +
				'(src="' + src + '",sizingMethod="' + method + '")';
		}
	},

	fixwidth: function(elem) {
		if (elem.currentStyle.width == 'auto' && elem.currentStyle.height == 'auto') {
			elem.style.width = elem.offsetWidth + 'px';
		}
	},

	fixchild: function(elem, recursive) {
		if (!/MSIE (5\.5|6\.|7\.)/.test(navigator.userAgent)) return;

		for (var i = 0, n = elem.childNodes.length; i < n; i++) {
			var childNode = elem.childNodes[i];
			if (childNode.style) {
				if (childNode.style.position) {
					childNode.style.position = childNode.style.position;
				}
				else {
					childNode.style.position = 'relative';
				}
			}
			if (recursive && childNode.hasChildNodes()) {
				this.fixchild(childNode, recursive);
			}
		}
	},

	fix: function(elem,method) {
		if (!/MSIE (5\.5|6\.|7\.)/.test(navigator.userAgent)) return;

		var bgImg = elem.currentStyle.backgroundImage || elem.style.backgroundImage;

		if (elem.tagName == 'IMG') {
			if ((/\.png$/i).test(elem.src)) {
				this.fixwidth(elem);
				this.fixit(elem, elem.src, 'scale');
				elem.src = this.blank;
				elem.runtimeStyle.behavior = 'none';
			}
		}
		else if (bgImg && bgImg != 'none') {
			if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i)) {
				var s = RegExp.$1;
				this.fixwidth(elem);
				elem.style.backgroundImage = 'none';
				this.fixit(elem, s, method); // crop | image | scale

				if (elem.tagName == 'A' && elem.style) {
					if (!elem.style.cursor) {
						elem.style.cursor = 'pointer';
					}
				}

				this.fixchild(elem);
				elem.runtimeStyle.behavior = 'none';
			}
		}
	},

	hover: function(elem, hvImg) {
		var bgImg = elem.style.backgroundImage;

		if (!bgImg && elem.currentStyle) bgImg = elem.currentStyle.backgroundImage;

		if (elem.tagName == 'IMG' && hvImg) {
			var image = elem.src;
			elem.onmouseover = function() {
				elem.src = hvImg;
				IEPNGFIX.fix(elem);
			};
			elem.onmouseout = function() {
				elem.src = image;
				IEPNGFIX.fix(elem);
			};
		}
		else if (bgImg && bgImg != 'none' && hvImg) {
			elem.onmouseover = function() {
				elem.style.backgroundImage = 'url(' + hvImg + ')';
				IEPNGFIX.fix(elem);
			};
			elem.onmouseout = function() {
				elem.style.backgroundImage = bgImg;
				IEPNGFIX.fix(elem);
			};
		}

		IEPNGFIX.fix(elem);
	}
};

//--============================================================================
} // end if (typeof IEPNGFIX == 'undefined')

/* iepngfix ----------------------------------------------------------------- */

/* pngfix ------------------------------------------------------------------- */

/*
 
Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.

Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->

*/

if (document.getElementById){
	//ページ読み込み時に実行
	setEvent(window,'load',pngfix,false);
}

function pngfix(){
/*	var arVersion = navigator.appVersion.split("MSIE");
	var version = parseFloat(arVersion[1]);

	if (version>=5.5 && document.body.filters){
		for(var i=0;i<document.images.length;i++){
			var img = document.images[i];
			var imgName = img.src.toUpperCase();
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG"){
				var imgID = (img.id) ? "id='" + img.id + "' " : "";
				var imgClass = (img.className) ? "class='" + img.className + "' " : "";
				var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
				var imgStyle = "display:inline-block;" + img.style.cssText;
				if (img.align == "left") imgStyle = "float:left;" + imgStyle;
				if (img.align == "right") imgStyle = "float:right;" + imgStyle;
				if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
				var strNewHTML = "<span " + imgID + imgClass + imgTitle
				+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
				+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
				+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" ;
				img.outerHTML = strNewHTML;
				i = i-1;
			}
		}
	}*/
}

/* pngfix ------------------------------------------------------------------- */
