/*######################################
Last Update 2010/5/29
・2010/05/29
URL直打ちでアンカーが指定された場合に、
対応する拠点を初期で表示するように変更。
各関数にコメントを追加。
※記憶を便りに追加したため、あまり信用しないこと。
######################################*/

 var iconObj= new GIcon();
iconObj.image = "./img/icon.gif";
iconObj.iconSize = new GSize(33,33);
iconObj.iconAnchor = new GPoint(16,33);
iconObj.infoWindowAnchor = new GPoint(10,10);

var map;
var obj=Array();
var listHtml="";

var defaultGLatLng=new GLatLng(36.5, 135.5);
var defaultZoom=5;
var gaFlag=true; //google analyticsによる計測を行うかどうか。trueで計測実施。
var officeArray=["sendai","tokyo","tokyoWeb","nagoya","honsya","osaka","osakaWeb","hiroshima","fukuoka","marketing","kogyo","seihan"];//初期表示時のアンカー判定用

/*######################################
マップ内の吹き出しHTML生成
■引数
name：拠点名
p1：印刷用Mapへのリンク入りpタグ（HTMLテキスト)
p2：簡易版Mapへのリンク入りpタグ（HTMLテキスト）
#######################################*/
function makeTagdata(name,p1,p2){
	var tag='<div id="markerWindow">';
	tag+='<h2>■'+name+'</h2>';
	tag+='<ul>';
	if(p1!=null && p1!=""){
		tag+='<li>'+p1+'</li>';
	}
	if(p2!=null && p2!=""){
		tag+='<li>'+p2+'</li>';
	}
	tag+='</ul>';
	tag+='</div>';
	return tag;
}


/*###################################
マーカーオブジェクト生成
■引数
x：緯度
y：経度
icon：アイコンオブジェクト
id：各ポイント識別id
z：ズームレベル
html：ポップアップウィンドウ内のHTML文字列
###################################*/
function markobj(y,x,icon,id,z,html){
	var gpobj=new GLatLng(x,y);
	obj[id]=new GMarker(gpobj,icon);
	map.addOverlay(obj[id]);
	GEvent.addListener(obj[id],"click",function (){
		map.setCenter(gpobj,eval(z));
		if(gaFlag){
			pageTracker._trackPageview('/js/office/googlemaps/'+id+'_.html');
		}
		gaFlag=true;
		obj[id].openInfoWindowHtml(html);
		$('#markerWindow ul li a').click(function(){
			window.open(this.href, this.target, 'width=630, height=700, menubar=yes, toolbar=yes, scrollbars=yes');
			return false;
		});
		move(id);
	}); 
}


/*################
オンロード時に実行
################*/
$(function(){
	if (GBrowserIsCompatible()){
		map = new GMap2(document.getElementById("map"));
		map.setCenter(defaultGLatLng,defaultZoom);	//初期ズームレベルセット
		map.addControl(new GLargeMapControl());	//マップコントロールをセット
		map.addControl(new GMapTypeControl());	//マップタイプコントロールをセット
		map.addControl(new GOverviewMapControl(new GSize(192,128)));	//マップオーバービューコントロールをセット
		var obj=new Array();
		$('#officeAll div.section').each(function (i){
			var id=this.id;
			var latitude = parseFloat($('.latitude',this).html());
			var longitude = parseFloat($('.longitude',this).html());
			var name=$('.name',this).html();
			var print=$('.print',this).html();
			var printSub=$('.printSub',this).html();
			var zoom=$('.zoom',this).html();
			var icon=iconObj;
			var html=makeTagdata(name,print,printSub);
			var obj=new markobj(longitude,latitude,icon,id,zoom,html);
		});
		$('#officeAll').addClass('off');
		infoHtml=$('#officeInfo').html();
		var anchor=location.hash.replace("#","");
		if(jQuery.inArray(anchor,officeArray)!=-1){
			move(anchor);
			$("body").ScrollTo(0);
		}
	}
});

/*########################################
・#officeInfoに指定された拠点の情報を表示、
・#officeInfo内の印刷用地図を表示、簡易版地図を表示ボタンクリック時に、
ポップアップ処理を付加。
・エッフェクト
■引数
n：各拠点の識別id（アンカー）
########################################*/
function move(n){
	$('#officeInfo').html('<div class="section">'+$("#"+n).html()+'</div>');
	$('#officeInfo .action li a').click(function(){
		window.open(this.href, this.target, 'width=630, height=700, menubar=yes, toolbar=yes, scrollbars=yes');
	 	return false;
	});
	$('#officeInfo').slideDown(1000);
}

/*########################################
イメージマップクリック時の処理
Google Analyticsでイメージマップからのクリックと、
Google Mapからのクリックとを別々に集計しているための処理。

■引数
n：各拠点の識別id（アンカー）
########################################*/

function move2(n){
	pageTracker._trackPageview('/js/office/imagemap/'+n+'_.html');
	gaFlag=false;
	GEvent.trigger(obj[n],"click");
	return false;
}

/*########################################
初期表示位置へ戻る処理。（未使用）
########################################*/
function defaultMove(){
	$('#officeInfo').html(infoHtml);
	map.setCenter(defaultGLatLng,defaultZoom);	
	map.closeInfoWindow();
}