var commentFront = '<div id="commentArea">';
var commentRear = '</div>';

function mapAdd(opt){
	
	var opt = $.extend({
			file: 'officelist',
			catName: '.local',
			zoom: 12,
			address : '愛知県名古屋市港区入船1丁目7-41',
			/*title : '本社',
			zip : '455-0032',
			tel : '052-653-3111',
			fax : '052-652-7110',
			railway : '地下鉄名港線　名古屋港駅下車　すぐ',
			bus : '名古屋市バス　名古屋港　すぐ',
			car : '名古屋高速大高線　笠寺出口→国道23号線→国道154号線　約15分',*/
			navControl: true,
			sWheel: false
		  }, opt);
	
	//var inherLink = location.href;
	var address = opt.address;
	/*if(field.match(/location\/([^A-Za-z0-9_\/]*)\//)){
		address = RegExp.$1;
	}*/
	
	if(address != null){
		var xmlPath = 'http://www.fujitrans.co.jp/'+opt.file+'.xml';
		/*inherLink = inherLink.replace(/field.*$/,"");
		if(keyword != ''){
			inherLink = inherLink.replace(/keyword.*$/,"");
			inherLinkENC = encodeURI(inherLink+"shoplist.xml/keyword/"+keyword+"/field/"+field+"/");
		}else{
			inherLinkENC = encodeURI(inherLink+"shoplist.xml/field/"+field+"/");
		}*/
		
		$.ajax({
			type: "GET",
			url: xmlPath,
			dataType : "xml",
			error: function(){
				//alert('よめまへん');
			},
			success: function(xml){
				if($(xml).find('office'+opt.catName).size() > 0){
					initialize(xml);
				}else{
					$('#map').hide();
				}
				
			}
		});
	}else{
		$('#map').hide();
	}

		   
	function initialize(xml) {
		var geocoder;
		var subGeocoder;
		var map;
		var marker;
		var offices = new Array();
		var infoWindow;
		var zoom = opt.zoom;
		/*var $officeList = $('table#officeList');
		$officeList.empty();
		$officeList.append('<tr><th class="w18">支店名</th><th class="w40">住所</th><th>TEL</th><th>FAX</th><th class="w5">地図</th></tr>');*/
		
		$(xml).find('office'+opt.catName).each(function(){
			var office = new Array();
			var $self = $(this);
			
			office.id         = $self.attr('id');
			office.title      = $('title',$self).text();
			office.zip        = $('zip',$self).text();
			office.addressLng = $('address',$self).text();
			office.tel        = $('tel',$self).text();
			office.fax        = $('fax',$self).text();
			office.railway    = $('railway',$self).text();
			office.bus        = $('bus',$self).text();
			office.car        = $('car',$self).text();
			office.lat        = $('lat',$self).text();
			office.lng        = $('lng',$self).text();
			office.icon       = $('icon',$self).text();
			
			/*var insertTr = '<tr>';
			insertTr += '<td>'+office.title+'</td>';
			insertTr += '<td>〒'+office.zip+'<br />'+office.addressLng+'</td>';
			insertTr += '<td>'+office.tel+'</td>';
			insertTr += '<td>'+office.fax+'</td>';
			insertTr += '<td class="center"><a href="javascript:sbMaps('+office.id+');" class="option"><img src="/themes/fujitrans/images/mark/map.gif" alt="Map" width="16" height="16" title="Map" /></a></td>';
			insertTr += '</tr>';
			$officeList.append(insertTr);*/
			
			var comment;
			
			office.comment = makeComment(comment,office);
			
			offices.push(office);
			
			
		});
		
		//console.log(offices);
		
		infoWindow = new google.maps.InfoWindow();
		
		geocoder = new google.maps.Geocoder();
		geocoder.geocode( { 'address': address}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				var latlng = results[0].geometry.location;
				var centerlatlng;
				if(opt.catName == '.local'){
					centerlatlng = latlng;
				}else{
					centerlatlng = new google.maps.LatLng(36.491973,136.845703);
				}
				var myOptions = {
					zoom: zoom,
					center: centerlatlng,
					navigationControl: opt.navControl,
					navigationControlOptions: {
						style: google.maps.NavigationControlStyle.ZOOM_PAN
					},
					mapTypeControl: true,
					scaleControl: true,
					mapTypeId: google.maps.MapTypeId.ROADMAP,
					scrollwheel: opt.sWheel
				};
				map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
				//map.setCenter(results[0].geometry.location);
				/*map.setCenter(centerlatlng);
				marker = new google.maps.Marker({
					map: map, 
					position: latlng
				});
				
				var homeComment = commentFront;
				homeComment += '<p>'+opt.title+'</p>';
				homeComment = homeComment+'<p>〒'+opt.zip+'<br />'+opt.address+'<br />TEL:'+opt.tel+' / FAX:'+opt.fax+'</p>';
				homeComment = homeComment+'<p>◇ 鉄道:'+opt.railway+'<br />◇ バス:'+opt.bus+'<br />◇ 自動車:'+opt.car+'</p>';
				homeComment += commentRear;
				var homeOffice = ({'comment':homeComment});
				
				attachMessage(marker,homeOffice);*/
				
				for(var i=0;i < offices.length;i++){
					
					var office = offices[i];
					
					var latlng = new google.maps.LatLng(office.lat,office.lng);
					//var latlng = office.latlng;
					
					var icon;
					
					switch(office.icon)
					{
						case 'local':
							icon = '/themes/fujitrans/images/mark/icon_local.png';
						break;
						case 'global':
							icon = '/themes/fujitrans/images/mark/icon_global.png';
						break;
						case 'overseas':
							icon = '/themes/fujitrans/images/mark/icon_world.png';
						break;
					}
					
					var shadow = new google.maps.MarkerImage(
						'/themes/fujitrans/images/mark/icon_shadow.png',
						new google.maps.Size(24,34),
						new google.maps.Point(0,0),
						new google.maps.Point(3,35)
						//scaledSize?:Size
					);
					
					marker = new google.maps.Marker({
						map: map, 
						position: latlng,
						icon: icon,
						shadow: shadow
					});
					
					attachMessage(marker,office);
					
					
					
				}
				


				
			} else {
				alert("Geocode was not successful for the following reason: " + status);
			}
		});
		
		function attachMessage(marker,office){
			google.maps.event.addListener(marker, 'click', function() {
				infoWindow.setContent(office.comment);
				infoWindow.setPosition(marker.getPosition());
				infoWindow.open(marker.getMap(), marker);
			});
		}
	}
}

Shadowbox.init({
    language: 'en',
    players:  ['img', 'html', 'iframe', 'qt', 'wmp', 'swf', 'flv']
});

function sbMaps(id,opt){
	
	var opt = $.extend({
			file    : 'officelist',
			zoom : 15
		  }, opt);
	
	var xmlPath = 'http://www.fujitrans.co.jp/company/'+opt.file+'.xml';
	var XML;
	var YML;
	var url;
	var comment;
	var icon;
	var addressLng;
	
	$.ajax({
		type: "GET",
		url: xmlPath,
		dataType : "xml",
		error: function(){
			alert('よめまへん');
		},
		success: function(xml){
			var $target = $(xml).find('office[id='+id+']');
			
			if($target.size() > 0){
				
				var office = new Array();
				
				office.title      = $('title',$target).text();
				office.zip        = $('zip',$target).text();
				office.addressLng = $('address',$target).text();
				office.tel        = $('tel',$target).text();
				office.fax        = $('fax',$target).text();
				office.railway    = $('railway',$target).text();
				office.bus        = $('bus',$target).text();
				office.car        = $('car',$target).text();
				url               = $('url',$target).text();
				icon              = $('icon',$target).text();
				XML               = $('lat',$target).text();
				YML               = $('lng',$target).text();
				
				comment = makeComment(comment,office);
				
			}


			Shadowbox.open({
				player:     'html',
				content:    '<div id="printBtn" style="position:absolute;bottom:20px;right:5px;z-index:100;background:#000;color:#f00;padding:2px;"><a href="'+url+'" target="_blank">印刷する</a></div><div id="sbMap_wrap"><div id="sbMap" style="width:700px;height:500px;"></div></div>',
				height:     500,
				width:      700,
				options:    {
					onFinish: function(item){
						//sbGeocoder = new google.maps.Geocoder();
						//sbGeocoder.geocode( { 'address': addressLng}, function(sbResults, sbStatus) {
						//	if (sbStatus == google.maps.GeocoderStatus.OK) {
								//var latlng = sbResults[0].geometry.location;
								var body = document.getElementById('sbMap'/*Shadowbox.contentId()*/);
								var latlng = new google.maps.LatLng(XML,YML);
								
								var myOptions = {
									zoom: opt.zoom,
									center: latlng,
									navigationControl: true,
									navigationControlOptions: {
										style: google.maps.NavigationControlStyle.ZOOM_PAN,
										position: google.maps.ControlPosition.LEFT
									},
									mapTypeControl: true,
									scaleControl: true,
									mapTypeId: google.maps.MapTypeId.ROADMAP
								}
								var map = new google.maps.Map(body,myOptions);
								var marker = new google.maps.Marker({
									map: map, 
									position: latlng
								});
								
								var infoWindow = new google.maps.InfoWindow();
								google.maps.event.addListener(marker, 'click', function() {
									infoWindow.setContent(comment);
									infoWindow.setPosition(marker.getPosition());
									infoWindow.open(marker.getMap(), marker);
								});
								
								/*makeImg(map.getCenter(),latlng,map.getZoom());
								
								$('#sbMap').bind('mousemove',function(){
									makeImg(map.getCenter(),latlng,map.getZoom());
								});
								
								$('#printBtn a').click(function(e){
									$('#sb-overlay').click();
									makeImg(map.getCenter(),latlng,map.getZoom());
									printFrame();
									e.preventDefault();
								});*/
						//	}
						//});
		
					}
				}
			});
			
		}
	});
	
}


function makeComment(comment,office){
	comment = commentFront;
	comment += '<div class="commentL"><dl><dt>'+office.title+'</dt>';
	comment += (office.zip)?'<dd>〒'+office.zip+'</dd>':'';
	comment += (office.addressLng)?'<dd class="add">'+office.addressLng+'</dd>':'';
	comment += (office.tel)?'<dd>TEL：'+office.tel:'';
	comment += (office.fax)?' / FAX：'+office.fax:'';
	comment += (office.tel)?'</dd>':'';
	comment += (office.railway||office.railway||office.car)?'<dd><strong>アクセス方法</strong></dd><dd>':'';
	comment += (office.railway)?'鉄道：'+office.railway+'<br />':'';
	comment += (office.bus)?'バス：'+office.bus+'<br />':'';
	comment += (office.car)?'自動車：'+office.car:'';
	comment += (office.railway||office.railway||office.car)?'</dd>':'';
	comment += '</dl></div>';
	comment += '<!--<div class="commentR"><div class="photoLine"><img src="/themes/fujitrans/images/dummy/mapPhoto.gif" alt="" width="98" height="73" title="" /></div></div>-->';
	comment += commentRear;
	return comment;
}
