/*================================
ファイル名：share.js
エンコーディング : utf-8
=================================*/

$(function() {
			  	
	/* body以下の要素のfirstChild(そのクラスにaccessGuideがあれば次の要素)にクラス(first-child)を付加 */
	$("body *:first-child").not("br").each(function(){
		if(this.className.match(/Guide/)){
			$(this).next().addClass("first-child");
		}else{
			$(this).addClass("first-child");
		}
	});
	/* 各要素のlastChildにクラス(last-child)を付加 */
	$("body *:last-child").addClass("last-child");
	
	/* メールアドレス[at]を@に置き換えて暗号化 */
	var mail = {
		encode: function(s){
			for(var i=0,r="";i<s.length;i++) r+=String.fromCharCode(s.charCodeAt(i)+3);
			return r;
		},
		decode: function(s){
			for(var i=0,r="";i<s.length;i++) r+=String.fromCharCode(s.charCodeAt(i)-3);
			return r;
		}
	}
	$("a[href*='mailto:']").each(function(){
		if(!$(this).text().match(/\[at\]/)) return false;
		$("#mailTxt").remove();
		var encoded = mail.encode($(this).text().replace("[at]","@"));
		$(this).attr({"name":"mailto:"+encoded,"href":"#"}).click(function(){
			//window.open("mailto:"+mail.decode(this.name.split("\:")[1]),"","");
			location.href = "mailto:"+mail.decode(this.name.split("\:")[1]);
			return false;
		});
	});
	
	/* ロールオーバー追加分 _off を含む画像に適用 _on に差し替える */
	var rollOverImg = $(".bnrArea img[src*='_off']");
	$(rollOverImg).each(function(){
		var imgSrc = $(this).attr("src");
		var rollOverSrc = imgSrc.replace("_off","_on");
		var preload = new Image();
		preload.src = rollOverSrc;
		$(this).hover(function(){
			$(this).attr("src",rollOverSrc);
		},function(){
			$(this).attr("src",imgSrc);
		});
	});
	
	/* フラッシュを挿入する */
	function insertFlash(path,w,h,target){
		var swf, width, height;
		swf = path;
		width = w;
		height = h;
		var swfObj = " "
		swfObj+="<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab'"
		swfObj+="        width   = " + width
		swfObj+="        height  = " + height + ">"
		swfObj+="<param  name    = movie value=" + swf + ">"
		swfObj+="<param  name    = quality value=high>"
		swfObj+="<param  name    = menu    value=false>"
		swfObj+="<embed  src     = " + swf + " "
		swfObj+="        quality = high  "
		swfObj+="        menu    = no "
		swfObj+="        width   = "+ width
		swfObj+="        height  = " + height
		swfObj+="        type    = 'application/x-shockwave-flash' "
		swfObj+="        pluginspage='http://www.macromedia.com/go/getflashplayer'>"
		swfObj+="</embed>"
		swfObj+="</object>"
		target.html("").append(swfObj);
	}
	
	if($("body").hasClass("top")) insertFlash("swf/top_visual.swf",697,288,$("#flash"));
	if($("body").hasClass("service")) insertFlash("../swf/navi_visual.swf",700,400,$("#navFlash"));
	// 700*400
	
	/* Flow */
	if($("#toggle")) $("#notice").hide();
	$("#toggle").click(function(){
		$("#notice").slideToggle();
		return false;
	});
	
	/* リンクソースを選択状態にする */
	$(".linksource").focus(function(){this.select();});
	
	/* Google Mapを表示する */
	var map, address;
	function load() {
		var displayMap = $("#displayMap");
		if(displayMap.length>0){
			var addressTxt = displayMap.text();
			address = addressTxt;
			if(GBrowserIsCompatible()) {
				var divMap = document.createElement("div");
				$(divMap).attr("id","map");
				$(".branchInfo").append(divMap);
				map = new GMap2(divMap);
				map.addControl(new GMapTypeControl());
				map.addControl(new GLargeMapControl());
				geocoder = new GClientGeocoder();
				moveAddress(address);
				var mapLink = document.createElement("p");
				var mapAnchor = document.createElement("a");
				$(mapAnchor).attr("href","http://maps.google.co.jp/maps?f=q&hl=ja&geocode=&q="+encodeURI(address))
				.text("大きな地図はこちらから");
				$(mapLink).addClass("mapLink").append(mapAnchor);
				$(".branchInfo").append(mapLink);
			}
		}
	}
	function moveAddress(address){
		geocoder.getLatLng(address, showMap);
	}
	function showMap(address){
		if (address){
			map.setCenter(address, 14);
			var marker = new GMarker(address);
			map.addOverlay(marker);
		}else{
			return false;
		}
	}
	load();

	/* プリントアウトボタンを生成する */
	function printOut() {
		if($("#displayMap").length<1) return false;
		var h1 = document.getElementsByTagName("h1")[0];
		var p = document.createElement("p");
		var img = document.createElement("img");
		$(img).attr("src","../../img/about/list/btn_print.gif").attr("alt","このページを印刷する").css("cursor","pointer").click(function(){
			if($("#map").css("display")=="none") {
				$("#map").css("display","");
				$("span","#displayMap").text("[地図を表示しない]");
			}
			window.print();
		});
		$(p).addClass("printBtn").append(img).attr("id","print").insertAfter(h1);
	}
	printOut();
				
	/* スムーズスクロール */
	function getScrollPosition(){
		var obj = new Object();
		obj.x = document.body.scrollLeft || document.documentElement.scrollLeft;
		obj.y = document.body.scrollTop || document.documentElement.scrollTop;
		return obj;
	}
	$("p.pageTop a").click(function(){
		var y = getScrollPosition().y;
		var x = getScrollPosition().x;
		var timer = setInterval(
			function(){
				y = y - Math.ceil(y/5);
				x = x - Math.ceil(x/5);
				window.scroll(x,y);
				if(y<1) clearInterval(timer);
			}
		,10);
		$(this).blur();
		return false;
	});
});

$(window).load(function(){
	/* フラグメント参照fix */
	function flagment(){
		var targetId = $(location.hash);
		if(location.hash && targetId.length>0){
			var offset = targetId.offset();
			window.scroll(0,offset.top);
			return false;
		}
	}
	flagment();								
});