/**
 *	THIS CODE WAS GENERATED BY JS PACKER VER.0.0.1 @ 13:54:20 July 28, 2011
 *	
 *	1 : lib.js
 *	2 : jquery.url.js
 *	
 */
/*----- lib.js -----*/
/**
 *	@filename		lib.js
 *	@charset		utf-8
 *	@modified		September 14, 2010
 *	@description	共通js
 */
 
  
(function(){



//
//	高速化用エイリアス
//
var win = this,
	doc = win.document,
	hd  = doc.getElementsByTagName("head")[0],
	bdy = doc.body,
	$   = win.$;



//
//	専用名前空間
//
//var ns = win.xxxxx = win.xxxxx || {};



//
//	ルート（トップページのindex.htmlがある場所）のパスを取得
//
var root = (function(hd, doc){
	var s = doc.createElement("script");
	hd.appendChild(s);
	s.parentNode.removeChild(s);//IE6 <base>バグ対応
	s = doc.getElementsByTagName("script");
	return s[s.length - 1].src.replace(/\/js\/common\/lib\.js$/, "");
})(hd, doc);



//
//	フォントサイズ変化検知
//
var FSC = function () {
	this.id = "_FSC_";
	this.fl = {};
	this.fl.change = [];
	this.fl.smaller = [];
	this.fl.larger = [];
	this.init();
	this.ir = true;
	var ms = 100,
		os = this.gcs(),
		ocs = this.gccs(),
		me = this;
	this.timer = setInterval(function () {
		if (me.ir) {
			var cs = me.gcs(),
				ccs = me.gccs();
			if (os != cs) {
				me.cf("change");
				if (os > cs) {
					me.cf("smaller");
				} else if (os < cs) {
					me.cf("larger");
				}
			} else if (ocs != ccs) {
				me.cf("change");
				if (ocs > ccs) {
					me.cf("smaller");
				} else if (ocs < ccs) {
					me.cf("larger");
				}
			}
			os = cs;
			ocs = ccs;
		}
	}, ms);
};
FSC.prototype.init = function () {
	var _de = doc.getElementById(this.id);
	if (_de) {
		this.de = _de;
	} else {
		this.de = doc.createElement("span");
		this.de.style.display = "block";
		this.de.style.visibility = "hidden";
		this.de.style.position = "absolute";
		this.de.style.zIndex = "-9999";
		this.de.style.left = "-9999px";
		this.de.style.top = "-9999px";
		this.de.style.margin = "0";
		this.de.style.padding = "0";
		this.de.style.minWidth = "1px";
		this.de.style.minHeight = "1px";
		if (doc.all && !win.opera && !win.XMLHttpRequest) {
			this.de.style.height = "1px";
		}
		this.de.style.lineHeight = "1em";
		this.de.style.overflow = "visible";
		this.de.style.fontSize = "1000%";
		this.de.style.textIndent = "0";
		this.de.innerHTML = "B";
		this.de.setAttribute("id", this.id);
		var body = doc.getElementsByTagName("body").item(0);
		body.appendChild(this.de);
	}
};
FSC.prototype.addListener = function (en, f) {
	if (en == "change" || en == "smaller" || en == "larger") {
		if (typeof f != "function") {
			return;
		} else {
			this.fl[en].push(f);
		}
	}
};
FSC.prototype.cf = function (en) {
	this.ir = false;
	for (var i = 0; i < this.fl[en].length; i++) {
		if (typeof this.fl[en][i] == "function") {
			(this.fl[en][i])();
		}
	}
	this.ir = true;
};
FSC.prototype.gcs = function () {
	return this.de.clientHeight;
};
FSC.prototype.gccs = function () {
	if (doc.defaultView) {
		return doc.defaultView.getComputedStyle(this.de, null).getPropertyValue("font-size");
	} else {
		return 0;
	}
};
FSC.prototype.removeListener = function (en) {
	if (en == "change" || en == "smaller" || en == "larger") {
		this.fl[en] = null;
	}
};



//
//	HeightController[ver. October 16, 2009]
//
var HeightController = function(){var self=this;this.isIE=doc.all&&!win.opera;this.isFX=navigator.userAgent.indexOf("Firefox")>-1;this.head=doc.getElementsByTagName("head")[0];this.count=0;this.elementSet=[];if(this.isIE){this.styleSheet=doc.createStyleSheet();}else{this.styleSheet=doc.createElement("style");this.head.appendChild(this.styleSheet);}(new FSC()).addListener("change",function(){self.setHeight();});};HeightController.CLASS_NAME_PREFIX="height_controller_";HeightController.prototype.addElements=function(elements){var className=HeightController.CLASS_NAME_PREFIX+this.count;this.count++;this.elementSet.push({elements:elements,className:className});var i=0,len=elements.length;while(i<len){elements[i].className+=(" "+className);i++;}this.setHeight();};HeightController.prototype.setHeight=function(){this.resetHeight();var rules=[];var maxHeight,_h;var i=0,len=this.elementSet.length;while(i<len){maxHeight=_h=0;var j=0,len2=this.elementSet[i].elements.length;while(j<len2){_h=this.calcHeight(this.elementSet[i].elements[j]);maxHeight=maxHeight<_h?_h:maxHeight;j++;}rules.push("."+this.elementSet[i].className+"{height:"+maxHeight+"px!important;}");i++;}if(this.isIE){this.styleSheet.cssText=rules.join("");}else if(this.isFX){this.styleSheet.innerHTML=rules.join("");}else{var k=0;var len3=rules.length;while(k<len3){this.styleSheet.sheet.insertRule(rules[k],k);k++;}}};HeightController.prototype.calcHeight=function(obj){var height=0,padding=0,style;if(this.isIE){style=obj.currentStyle;if(typeof XMLHttpRequest!=="undefined"){padding=parseInt(style.getAttribute("paddingTop"),10)+parseInt(style.getAttribute("paddingBottom"),10);}}else{style=doc.defaultView.getComputedStyle(obj,null);padding=parseInt(style.getPropertyValue("padding-top"),10)+parseInt(style.getPropertyValue("padding-bottom"),10);}height=obj.offsetHeight;return height-padding;};HeightController.prototype.resetHeight=function(){if(this.isIE){this.styleSheet.cssText="";}else if(this.isFX){this.styleSheet.innerHTML="";}else{this.head.removeChild(this.styleSheet);this.styleSheet=doc.createElement("style");this.head.appendChild(this.styleSheet);}};



//
//	外部JavaScript読み込み用1
//
var load1 = function(src){
	src = /^https?:\/\//.test(src) ? src : (root + src);
	doc.write('<scr' + 'ipt type="text/javascript", src="' + src + '" charset="utf-8"></script>');
};



//
//	外部JavaScript読み込み用2
//
var load2 = function(src, fnc){
	var s = doc.createElement("script"),
		done = false;
	s.src = /^https?:\/\//.test(src) ? src : (root + src);
	s.charset = "utf-8";
	s.onload = function(){
		if(!done){
			done = true;
			fnc && fnc();
		}
	};
	s.onreadystatechange = function(){
		if( !done && /^(complete|loaded)$/.test(s.readyState) ){
			done = true;
			fnc && fnc();
		}
	};
	hd.appendChild(s);
};



//////////////////////////////////////// START OF DOM READY ////////////////////////////////////////

$(function(){



//
//	エイリアス
//
var doc = win.document,
	bdy = doc.body,
	de  = doc.documentElement,
	sct = win.scrollTo,
	sto = win.setTimeout,
	$   = win.$;



//
//	OS・ブラウザ判別
//
var ua = win.navigator.userAgent;
$(bdy).addClass(
	/windows/i.test( ua ) ? "windows" :
	/mac/i.    test( ua ) ? "mac" :
	"unkwnOs"
).addClass(
	/firefox/i.test( ua ) ? "firefox" :
	/safari/i. test( ua ) ? "safari webkit" : 
	/chrome/i. test( ua ) ? "chrome webkit" : 
	/opara/i.  test( ua ) ? "opera" :
	/msie/i.   test( ua ) ? "ie" :
	"unkwnBrowser"
);



//
//	IE判別用
//
var isIE  = doc.all && !win.opera,
	isIE6 = isIE && typeof XMLHttpRequest === "undefined",
	isIE7 = isIE && !doc.querySelector;



//
//	このページの先頭へボタン動作
//
var scroller = (function(){
	var START = "start",
		END   = "end",
		doc   = document,
		bdy   = doc.body,
		de    = doc.documentElement,
		sto   = setTimeout,
		sct   = scrollTo,
		scrollee,
		handlers = {},
		dispatchEvent = function(typ){
			var arr = handlers[typ] || [];
			for(var i=0, fnc, len=arr.length; i<len; i++){
				(fnc = arr[i]) && fnc.call(utils, { type : typ });
			}
		},
		scroll = function(){
			var y = scrollee.scrollTop;
			sct(0, y = (y << 3) - y >> 3);
			y ? sto(scroll, 16) : dispatchEvent(END);
		},
		utils;
	
	handlers[START] = [];
	handlers[ END ] = [];
	
	return (utils = {
		START : START,
		END : END,
		scroll : function(){
			if( ( scrollee = bdy.scrollTop ? bdy : de ).scrollTop ){
				dispatchEvent(START);
				scroll();
			}
			return false;
		},
		addEventListener : function(typ, fnc){
			var arr = handlers[typ];
			arr && arr.push(fnc);
			return this;
		},
		removeEventListener : function(typ, fnc){
			var arr = handlers[typ] || [],
				i = arr.length;
			while(i--){
				arr[i] === fnc && arr.splice(i, 1);
			}
			return this;
		}
	});
})();
//$(".anchorTop a, #anchorTop a").click(scroller.scroll);
$(".anchorTop a, #anchorTop a").click(function scroll(){
	var y = bdy.scrollTop || de.scrollTop;
	sct(0, y = (y << 3) - y >> 3);
	y && sto(scroll, 16);
	return false;
});



//
//	閉じるボタン
//
$("#buttonClose, .buttonClose").click(function(){
	win.close();
	return false;
});



//
//	IE用objectタグ関係
//
doc.all && !win.opera && $("object").each(function(){
	this.removeAttribute("data");
	this.outerHTML = this.outerHTML;
});



//
//	ポップアップリンク用
//
$(".popup").click(function(){
	var hrf = this.href,
		prm = hrf.replace(/^[^\?]*(\?.*)?$/, "$1"),
		opt = [];
	prm.replace(/(\w+)=([\d\w]+)/g, function(a, key, val){
		opt.push(key + "=" + val);
	});
	win.open(hrf, "", opt.join(",")).focus();
	return false;
});



//
//	input@type=image & a img マウスオーバー
//
//	マウスオーバー画像（と推測される）画像が存在する場合、マウスオーバー時にsrcを切り替えます。
//
var REGEX_SWAP_SRC = /^(.*)(\..*)$/,
	Image = win.Image;
$("input:image, a img").each(function(){
	var self = this,
		src = this.src,
		src_ov = src.replace(REGEX_SWAP_SRC, "$1_ov$2"),
		loader = new Image();
	loader.onload = function(){
		$(self).hover(function(){
			this.src = src_ov;
		},function(){
			this.src = src;
		});
		self = loader = loader.onload = null;
	};
	loader.src = src_ov;
});



//
//	リンクの点線を消す
//
$(doc.links).focus(function(){
	this.blur();
});






});

///////////////////////////////////////// END OF DOM READY /////////////////////////////////////////

})();




/*----- フッターの吹き出し部分 -----*/

$(function(){

	$(".menu a").hover(function() {
		$(this).next("em").animate({opacity: "show", top: "-30"}, "slow");
	}, function() {
		$(this).next("em").animate({opacity: "hide", top: "-30"}, "fast");
	});


});

