/*
 * jcommon.js 1.14
 * Copyright (c) 2007 C.M.A. Co.,Ltd.
 *
 * Last Added: 2008-09-09
 *
 */



var ary = location.pathname.split('/');


var l=0;var isLinkAry=new Array;for(i=0;i<=ary.length-1;i++){isLinkAry[i]=ary.slice(i,i+1);isLinkAry[i]=isLinkAry[i].join('/');isLinkAry[i]=isLinkAry[i].replace(/index.*$/,"")}for(k=i+1;k<=i+ary.length;k++){isLinkAry[k]=ary.slice(0,ary.length-l);isLinkAry[k]=isLinkAry[k].join('/');isLinkAry[k]=isLinkAry[k].replace(/^\//,"");isLinkAry[k]=isLinkAry[k].replace(/index.*$/,"");l++}isLinkAry[0]=isLinkAry[0].replace(/\#.*$/,"");var jcommon={preloader:{loadedImages:[],load:function(url){var img=this.loadedImages;var l=img.length;img[l]=new Image();img[l].src=url}},URI:function(path){path=path.replace(/^https[^a-z]*/,"");path=path.replace(/^http[^a-z]*/,"");path=path.replace(document.domain,"");path=path.replace(/^[^a-z]*/,"");path=path.replace(/index.*$/,"");path=path.replace(/\/$/,"");this.absolutePath=path;this.len=isLinkAry.length;this.isSelfLink=false;while(this.len--){this.isSelfLink=this.isSelfLink||(this.absolutePath==isLinkAry[this.len])}}};

/*ロールオーバー*/
$.fn.addRollOver=function(add){$(this).filter('img').each(function(){$(this).runRollOver(add,$(this));}).end().not('img').each(function(){$(this).runRollOver(add,$(this).find('img'));});};
$.fn.runRollOver=function(add,target){$(this).each(function(num){this.originalSrc=String(target.attr('src'));this.rolloverSrc=this.originalSrc.replace(/(\.gif|\.jpg|\.png)/,add+"$1");}).hover(function(){target.attr('src',this.rolloverSrc);},function(){target.attr('src',this.originalSrc);});};
/*現在のページへのリンク*/
$.fn.addCurrentImages=function(add){$(this).each(function(){var href=new jcommon.URI($(this).attr('href'));if(href.isSelfLink){$(this).addClass('current');$(this).unbind('mouseenter');$(this).unbind('mouseleave');$(this).find('img').each(function(){$(this).unbind('mouseenter');$(this).unbind('mouseleave');this.currentSrc=this.getAttribute('src').replace(/(\.gif|\.jpg|\.png)/,add+"$1");$(this).attr('src',this.currentSrc)});}});};
/* ツールチッププラグイン*/
$.fn.easyToolTip = function(options){var toolTip = $('<div class="toolTip"></div>').hide();$('body').append(toolTip);$(this).filter(function(){return this.title || this.alt;}).each(function(){var self = $(this);var target = this.title ? 'title' : 'alt';var tipText = self.attr(target);self.hover(function(e){self.attr(target,'');toolTip.stop(true,true).fadeIn('fast').text(tipText).css({position: 'absolute',top: e.pageY - 20,left: e.pageX + 20})},function(){self.attr(target,tipText);toolTip.fadeOut('fast');}).mousemove(function(e){toolTip.css({top: e.pageY - 20,left: e.pageX + 20});});});};

$(function(){


	//ロールオーバー
	$('.btn').addRollOver('_on');

	//現在のページへのリンク
	$('#globalNav li a,#localNav li a').addCurrentImages('_cr');

	//外部リンクは別ウインドウを設定
	$('a[href^="http://"]:not([href^="http://www.entetsukensetsu.co.jp/"])').click(function(){
		window.open(this.href, '_blank');
		return false;
	}).addClass('externalLink');

	//別ウィンドウを設定
	$('a[href$=".pdf"],a[href$=".asx"]').click(function(){
		window.open(this.href, '_blank');
		return false;
	});

	//連番nxxxをクラスとして追加
	$('#main li').each(function(num){
		$(this).addClass('n'+(++num));
	});


	//lightboxのパスの設定
	var lbOption = {
		imageLoading:	'/shared/img/lightbox/lightbox-ico-loading.gif',
		imageBtnPrev:	'/shared/img/lightbox/lightbox-btn-prev.gif',
		imageBtnNext:	'/shared/img/lightbox/lightbox-btn-next.gif',
		imageBtnClose:	'/shared/img/lightbox/lightbox-btn-close.gif',
		imageBlank: 	'/shared/img/lightbox/lightbox-blank.gif'
	}
	
	//ページ毎処理
	if($('#home').length){
		$('#hCase').load('case/module/top.html',function(){
														 $('#hCase a[title]').easyToolTip();
/*			$('#hCase a[title]').hover(function(){
				bldgn=$(this).attr('title');				
				$(this).append('<div class="tooltip">'+bldgn+'</div>');
				$(this).attr('title','');
			},function(){
				$('.tooltip').remove();
				$(this).attr('title',bldgn);
			});*/
		});
		$('#hNews').load('news/module/top.html',function(){
			$('#hcLatest').each(function(){
				var h = $(this).find('img').attr('height');
				if(h==0){
					document.getElementById('hcLatest').firstElementChild.firstElementChild.firstElementChild.onload = function(){
						h = this.height;
						$('#hcLatest').height(h);
					}
				}else if(h>$(this).height()&&h!=0){
					$(this).height(h);
				};
			});
		});
	}
	if($('#navSample').length){
		$('a.enlarge').lightBox(lbOption);
		$('a.enlarge img').after('<span class="button">拡大</span>');
	}
	if($('body.case').length){
		$('a[href$=".jpg"]').lightBox(lbOption);
	}
	if($('#casIndex').length){
		$('#main').prepend('<div class="map"><div id="gmap"></div></div>');
		$.ajax({
			type:'GET',
			url:'data/map.json',
			dataType:'json',
			success: function(obj) {
				data = obj;
				gmapLoad('gmapIndexRun');
			}
		});
	}
	if($('#casIndividual').length){
		gmapLoad('gmapIndividualRun');
	}

});

var data;

function gmapLoad(fn){
	//Google Map API ver3
	var script = document.createElement("script");
	script.src = "http://maps.google.com/maps/api/js?sensor=true&callback="+fn;
	script.type = "text/javascript";
	document.getElementsByTagName("body")[0].appendChild(script);		
}
//CASE INDEX
function gmapIndexRun(){
	var	$g = google.maps,
		gmap = new Object;
	// MAP
	gmap.category = data[0].category[0];
	gmap.latlng = new $g.LatLng(data[0].latlng[0],data[0].latlng[1]);	
	gmap.bounds = new $g.LatLngBounds(gmap.latlng,gmap.latlng);
	gmap.div = document.getElementById('gmap');
	gmap.param = {
		zoom:13,
		center:gmap.latlng,
		mapTypeId: $g.MapTypeId.TERRAIN,
		disableDoubleClickZoom:false,
		keyboardShortcuts:true,
		navigationControl:true,
		mapTypeControl:false,
		scaleControl:true,
		scrollwheel:false
	};
	gmap.go = new $g.Map(gmap.div, gmap.param);
	// MARKER
	gmap.marker = new Object;
	gmap.marker.go = new Array;
	gmap.marker.shadow = new $g.MarkerImage(
		'img/ico_marker_shadow.png',
		new $g.Size(36,17),
		new $g.Point(0,0),
		new $g.Point(8,17)
	);
	var i = 0;
	while(data[i]){
		gmap.marker.image = new $g.MarkerImage(
			'img/ico_marker_'+data[i].category[0]+'.png',
			new $g.Size(28,36),
			new $g.Point(0,0),
			new $g.Point(11,36)
		);
		gmap.marker.param = {
			icon:gmap.marker.image,
			shadow:gmap.marker.shadow,
			map:gmap.go,
			position:new $g.LatLng(data[i].latlng[0],data[i].latlng[1])
		}
		gmap.marker.go.push(new $g.Marker(gmap.marker.param));
		gmap.marker.go[i].infowin = new google.maps.InfoWindow({
			content:'<p class="infowin" style="height:3em"><span>'+data[i].categoryName[0]+'</span><a href="'+data[i].url+'">'+data[i].title+'</a></p>'
		});
		gmap.bounds.extend( gmap.marker.param.position );
		$g.event.addListener(gmap.marker.go[i], 'click', function() {
			this.infowin.open(gmap.go,this);
			this.infowin.setZIndex(data.length)
		});
		i++;
	}
	gmap.go.fitBounds(gmap.bounds);
}
// CASE INDIVISUAL
function gmapIndividualRun(){
	var	$g = google.maps,
		gmap = new Object;
	// MAP
	gmap.category = $('#casIndividual').attr('class').substr(5);
	gmap.latlng = $('#gmap').text().split(',');
	gmap.latlng = new $g.LatLng(gmap.latlng[0],gmap.latlng[1]);	
	gmap.div = document.getElementById('gmap');
	gmap.param = {
		zoom:13,
		center:gmap.latlng,
		mapTypeId: $g.MapTypeId.ROADMAP,
		disableDoubleClickZoom:true,
		keyboardShortcuts:false,
		navigationControl:false,
		mapTypeControl:false,
		scaleControl: false,
		scrollwheel:false
	};
	gmap.go = new $g.Map(gmap.div, gmap.param);
	// MARKER
	gmap.marker = new Object;
	gmap.marker.image = new $g.MarkerImage(
		'/case/img/ico_marker_'+gmap.category+'.png',
		new $g.Size(28,36),
		new $g.Point(0,0),
		new $g.Point(11,36)
	);
	gmap.marker.shadow = new $g.MarkerImage(
		'/case/img/ico_marker_shadow.png',
		new $g.Size(36,17),
		new $g.Point(0,0),
		new $g.Point(8,17)
	);
	gmap.marker.param = {
		clickable:false,
		icon:gmap.marker.image,
		shadow:gmap.marker.shadow,
		map:gmap.go,
		position:gmap.latlng
	}
	gmap.marker.go = new $g.Marker(gmap.marker.param);
}
