// jogsim.js  2006/04/18
// jogsim110.js 2006/05/15
// jogsim120.js 2006/06/04
// jogsim121.js 2006/06/11
// jogsim122.js 2006/07/24
// jogsim123.js 2006/08/09
// jogsim130.js 2006/12/08
// jogsim140.js 2006/12/14
// jogsim141.js 2007/01/13
// jogsim142.js 2007/02/03
// jogsim150.js 2007/03/25
// jogsim151.js 2007/04/14
// jogsim160.js 2007/05/12
// jogsim161.js 2007/05/13
// jogsim170.js 2007/08/15
// jogsim180.js 2007/11/25
// jogsim181.js 2007/12/23
// jogsim182.js 2008/04/04
// jogsim183.js 2008/04/29
// jogsim190.js 2008/05/11
// jogsim1901.js 2008/05/19
// jogsim200.js 2008/08/10
// jogsim210.js 2008/11/02
// jogsim2101.js 2008/11/14
// jogsim211.js 2009/02/27
// jogsim220.js 2009/04/15
// jogsim221.js 2009/05/18
// jogsim230.js 2009/11/11
// jogsim240.js 2010/01/08
// jogsim241.js 2010/01/18
// jogsim2411.js 2010/01/19
// v3beta1.js 2010/06/13
// v3beta2.js 2010/06/22
// v3beta3.js 2010/07/08
// jogsim300.js 2010/07/16
// jogsim300_1.js 2010/07/**


function hint_popup(){
    if (!document.getElementById("hintshow").checked){
	if (hint_num < 2){
		setCookie("hint_num", 2);
		openWindow('jogsim_hint_1.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num == 2){
		setCookie("hint_num", 3);
		openWindow('jogsim_hint_2.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num == 3){
		setCookie("hint_num", 4);
		openWindow('jogsim_hint_3.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num == 4){
		setCookie("hint_num", 5);
		openWindow('jogsim_hint_4.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num == 5){
		setCookie("hint_num", 6);
		openWindow('jogsim_hint_5.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num == 6){
		setCookie("hint_num", 7);
		openWindow('jogsim_hint_6.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num == 7){
		setCookie("hint_num", 8);
		openWindow('jogsim_hint_7.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num == 8){
		setCookie("hint_num", 9);
		openWindow('jogsim_hint_8.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num == 9){
		setCookie("hint_num", 10);
		openWindow('jogsim_hint_9.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num == 10){
		setCookie("hint_num", 11);
		openWindow('jogsim_hint_10.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}
	if (hint_num > 10){
		setCookie("hint_num", 1);
		openWindow('jogsim_hint_11.htm', '_blank', 'width=440,height=300,scrollbars=yes,location=0,resize=0,menubar=0,status=0');
		}

	}

}

function openWindow( url, name, option ) {
    if ( !window.open( url, name, option ) ) {
	        document.getElementById("winblock").innerHTML ="ジョギングシミュレータのヒントがブラウザのポップアップブロックによってブロックされました。よければ当サイトのブロックを解除ください。";
    }
}
function sytle_change(){

    var road_vis;
    var transit_line_vis;
    var transit_stationl_vis;
    var poibuss_vis;
    var adnei_vis;

    if (document.getElementById("style_road").checked){
	road_vis = 'off';
	}else{
	road_vis = 'on';
	}
    if (document.getElementById("style_transit_line").checked){
	transit_line_vis = 'off';
	}else{
	transit_line_vis = 'on';
	}
    if (document.getElementById("style_transit_station").checked){
	transit_station_vis = 'off';
	}else{
	transit_station_vis = 'on';
	}
    if (document.getElementById("style_poibuss").checked){
	poibuss_vis = 'off';
	}else{
	poibuss_vis = 'on';
	}
    if (document.getElementById("style_adnei").checked){
	adnei_vis = 'off';
	}else{
	adnei_vis = 'on';
	}


    var style_on_off = [
    
    {
	featureType: "administrative.neighbourhood",
      	elementType: "labels",
      	stylers: [{
        	visibility: adnei_vis
      	},]
    },
    {
	featureType: "road",
      	elementType: "all",
      	stylers: [{
        	visibility: road_vis
      	},]
    },
    {
	featureType: "transit.line",
      	elementType: "all",
      	stylers: [{
        	visibility: transit_line_vis
      	},]
    },
    {
	featureType: "transit.station",
      	elementType: "all",
      	stylers: [{
        	visibility: transit_station_vis
      	},]
    },
    {
	featureType: "poi.business",
      	elementType: "all",
      	stylers: [{
        	visibility: poibuss_vis
      	},]
    }

    ];

    var s_road_offMapType =  new google.maps.StyledMapType(style_on_off);
    map.mapTypes.set('roadshow_off', s_road_offMapType);
    map.setMapTypeId('roadshow_off');

}
function bitly(imageurl){
		
	BitlyCB.myShortenCallback = function(data) {
		// this is how to get a result of shortening a single url
		var result;
		for (var r in data.results) {
			result = data.results[r];
			result['longUrl'] = r;
			break;
		}
		bitlyurl=result['shortUrl'];

	　　　　var answer=confirm('走行マップをtwitしていいですか？');
	　　　　if((answer==true)&&(bitlyurl!="")){
			twitter_credit=" 走行地図→ "+bitlyurl+" #jogsim";
　　　　	}else{
			twitter_credit=" http://42.195km.net/ #jogsim";
　　　　	}

		twitter_com = twitter_com + twitter_credit;
		TwitterAPI.statuses.update(twitter_com);
		twitter_com = "";

	}
	BitlyClient.shorten(imageurl, 'BitlyCB.myShortenCallback');

}
function bitly_map(image_url,imageurl2,output_width,output_height){
		
	BitlyCB.myShortenCallback = function(data) {
		// this is how to get a result of shortening a single url
		var result;
		for (var r in data.results) {
			result = data.results[r];
			result['longUrl'] = r;
			break;
		}
		bitlyurl=result['shortUrl'];	

		var phpurl="<img src=" + image_url +" width="+output_width+" height=" + output_height +" alt=\"jogsim_image\">";

		var w1=window.open("","hoge2","titlebar=no,status=no,menubar=no,resizable=no,location=no,width=520,height=520,scrollbars=yes");
		w1.document.open();
		w1.document.write("<html><head>\n<title>マップイメージ ");
		w1.document.write(output_width);
		w1.document.write("x");
		w1.document.write(output_height);
		w1.document.write("</title>\n");
		w1.document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"./jogsim.css\" />\n");
		w1.document.write("</head>\n");
		w1.document.write("<body><center>\n");
		w1.document.write(phpurl);
		w1.document.write("\n<br /><br />");
		w1.document.write("<div class=\"init_waku\"><br/>画像保存は地図を「右クリック-画像保存」です。<br />\n");
		w1.document.write("（Windowsの場合）<br /><br /></div><br />\n");
		w1.document.write("<a href=\"yyy.htm\" onclick=\"window.open('mapimage_hint.htm', '_blank', 'width=440,height=320,scrollbars=yes'); return false;\"><span class=\"caution_mid\"><img src=\"./gif/hint.gif\" border=0 width=19 height=19 alt=\"制限事項\">マップイメージの制限事項</a></span>");
		w1.document.write("\n<br /><br /><br /><br />\n");
		w1.document.write("<span class=\"caution_mid\">リンク用URLはこちら</span><br />\n");
		w1.document.write("<textarea rows=3 cols=50 onfocus=\"this.select()\">");
		w1.document.write(image_url);
		w1.document.write("</textarea><br />\n");
		w1.document.write("<span class=\"caution_mid\">またははこちら</span><br />\n");
		w1.document.write("<textarea rows=1 cols=50 onfocus=\"this.select()\">");
		w1.document.write(bitlyurl);
		w1.document.write("</textarea><br /><br />\n");

		w1.document.write("<a href=\"javascript:void(0)\" onclick=\"window.close()\"><img src=\"./gif/jg_close.gif\" alt=\"閉じる\" width=\"20\" height=\"20\" border=\"0\">閉じる</a><br /><br />\n");

		w1.document.write("</center>\n");
		w1.document.write("</body>\n");
		w1.document.write("</html>");
		w1.document.close();

	}
	BitlyClient.shorten(imageurl2, 'BitlyCB.myShortenCallback');

}

function readOut(){

	if (document.getElementById("hour").value==0){
		twitter_hour = "";
		}else{
		twitter_hour = document.getElementById("hour").value+"時間";
		}
	if (document.getElementById("min").value==0){
		twitter_min = "";
		}else{
		twitter_min = document.getElementById("min").value+"分";
		}

	if (init_speakmansave == 0){vds.setCast("KeikoJPf");}
		else{vds.setCast("TakashiJPm");}

	var headarray = new Array("お疲れ様でした。", "ナイス、ラン！", "ご苦労様。", "がんばったね。", "すごーぃ、すごーぃ。", "グッドジョブ。");
	var randnum = Math.floor( Math.random() * headarray.length ); 
	var tailarray = new Array("明日もがんばろう", "マイペースでいきましょう。", "お仕事もがんばってください。", "めざせっ、自己ベストっ！");
	var randnum2 = Math.floor( Math.random() * tailarray.length ); 

	speak_head=headarray[randnum];
	speak_tail=tailarray[randnum2];

	var midarray= new Array();; 

	midarray[0]="今日はごはんを"+document.f.rice.value+"杯分もしくは生ビール"+document.f.beer.value+"杯分、余計に飲めそうです。";
	midarray[1]="平均速度は時速"+document.f.y.value+"キロ。エネルギー換算で"+document.f.kw.value+"キロワット　アワーです。";
	midarray[2]="ウィンドウショッピングだと"+document.f.shop.value+"分相当。ぞうきんがけだと"+document.f.clean.value+"分に値します。";

	var randnum3=Math.floor( Math.random()*3 );
	speak_mid=midarray[randnum3];

	if (document.f.cal.value==0){
		speak_cal = "体重や時間を入力するとカロリーとかも計算します。";
		}else{
		speak_cal = "これは"+document.f.cal.value+"キロカロリーの消費。脂肪は"+document.f.fat.value+"グラムを燃焼しました。" + speak_mid + speak_tail ;
		}

	speak_word=speak_head+document.f.d.value+"キロメートルを"+twitter_hour+twitter_min+"走りました。"+speak_cal;

	vds.setRate(1);
	vds.setString(speak_word);

	vds.speak();

}

function twitterpost() {
    if(twitter_com ==""){
	window.alert("【　計算　】をクリックしてからtwitterに投稿してください。");
	}else{
	bitlyurl="";
	ImagePage_make();
	}
}

function ImagePage_L(){
	var output_width=450;
	var output_height=450;

	ImagePage(output_width,output_height);
}
function ImagePage_M(){
	var output_width=300;
	var output_height=300;

	ImagePage(output_width,output_height);
}
function ImagePage_S(){
	var output_width=150;
	var output_height=150;

	ImagePage(output_width,output_height);
}

function ImagePage(output_width,output_height){

	var max_number_image = 70 ;
	var map_path_data="";
	map_marker_mark="&markers=";

	lines = xy0.split(" ");
	var datalen=lines.length ;
	var check_dist=parseFloat(document.getElementById("distance").value);
	marker_count=check_dist;

//	if (check_dist > 15){keta=1000;}else{keta=10000;}//1000...60mくらい誤差(30km超時）
//	if (datalen > 50){keta_p=1000;}else{keta_p=10000;}//1000...60mくらい誤差(30km超時）
//桁を10000にしちゃったけど大丈夫？
	if (check_dist > 15){keta=10000;}else{keta=10000;}//1000...60mくらい誤差(30km超時）
	if (datalen > 50){keta_p=10000;}else{keta_p=10000;}//1000...60mくらい誤差(30km超時）

	mabi_path=datalen/max_number_image;

	var points3 = new Array();
	p = 0;
	var dist = 0;
	var ii=0;

	if (lines.length > 2){
		lines.length = lines.length - 1 ;
		if (mabi_path>1){
			for (var i=0; i<lines.length; i++) {
				if (lines[i].length > 1) {
					parts = lines[i].split(",");
					var lat = parseFloat(parts[0]);
					var lng = parseFloat(parts[1]);
					points3.push(new google.maps.LatLng(lng,lat));

					if ((Math.floor(i*mabi_path))<datalen){
						ii=Math.floor(i*mabi_path);

						partsii = lines[ii].split(",");
						var latii = parseInt(partsii[0]*keta_p)/keta_p;
						var lngii = parseInt(partsii[1]*keta_p)/keta_p;

						map_path_data = map_path_data+"|"+lngii+","+latii;
					}
				}
			}
			parts = lines[lines.length-1].split(",");
			var lat = parseInt(parts[0]*keta_p)/keta_p;
			var lng = parseInt(parts[1]*keta_p)/keta_p;
			map_path_data = map_path_data+"|"+lng+","+lat;

		}else{     //dataがmax以下

			for (var i=0; i<lines.length; i++) {
				if (lines[i].length > 1) {
					parts = lines[i].split(",");
					var lat = parseInt(parts[0]*keta_p)/keta_p;
					var lng = parseInt(parts[1]*keta_p)/keta_p;
//					points3.push(new GLatLng(lng,lat) );
					points3.push(new google.maps.LatLng(lng,lat));

					map_path_data = map_path_data+"|"+lng+","+lat;
				}
			}
		}

		k_count = 1;
		zan1=0;distx1=0;mae_total1=0;
		while( p != (points3.length -1)) {
			distx1 = Gdistance2(points3[p], points3[p+1]);
			dist += Gdistance2(points3[p], points3[++p]);
			if ((document.getElementById("1k").checked)||(document.getElementById("5k").checked)){
				if ((mae_total1+distx1) < 1000){
					mae_total1 = mae_total1 + distx1;
					zan1 = 1000 - mae_total1;
				}
				else{
					zan1 = actFlag_image(distx1,points3[p-1],points3[p],zan1);
					mae_total1 = 1000 - zan1;
				}
			}
       		}
	}

	var map_path_line="path=rgb:0xff0000,weight:3";

	if (map_path_data != ""){
		var map_path = map_path_line+map_path_data;
	}else{
		var mapimage = map.getCenter();
		var mapimage_zoom = map.getZoom();
		var map_path = "center="+mapimage.y+","+mapimage.x+"&zoom="+mapimage_zoom;
	}
	var image_url="http://maps.google.com/staticmap?"+map_path+map_marker_mark+"&size="+output_width+"x"+output_height+"&maptype=roadmap&key=ABQIAAAAkilhmkmatuDAqukaIZIjARSnSeM8Ks8WN-lvuOD87B_63jhr8BRDcROUNon7nc3ZdN_j65mc3zMIUA&sensor=false";

	var dist4_5=Math.round(document.getElementById("distance").value*10)/10;;
	var image_url2="http://42.195km.net/jogsim/showmap.htm?"+dist4_5+"??http://maps.google.com/staticmap?"+map_path+map_marker_mark+"&size="+output_width+"x"+output_height+"&maptype=roadmap&key=ABQIAAAAkilhmkmatuDAqukaIZIjARSnSeM8Ks8WN-lvuOD87B_63jhr8BRDcROUNon7nc3ZdN_j65mc3zMIUA&sensor=false";

	bitly_map(image_url,image_url2,output_width,output_height)

}
function ImagePage_make(){

	output_width=450;
	output_height=450;

	var max_number_image = 70 ;

	var map_path_data="";
	map_marker_mark="&markers=";

	lines = xy0.split(" ");
	var datalen=lines.length ;
	var check_dist=parseFloat(document.getElementById("distance").value);
	marker_count=check_dist;

	if (check_dist > 15){keta=1000;}else{keta=10000;}//1000...60mくらい誤差(30km超時）
	if (datalen > 50){keta_p=1000;}else{keta_p=10000;}//1000...60mくらい誤差(30km超時）

	mabi_path=datalen/max_number_image;

	var points3 = new Array();
	p = 0;
	var dist = 0;
	var ii=0;

	if (lines.length > 2){
		lines.length = lines.length - 1 ;
		if (mabi_path>1){
			for (var i=0; i<lines.length; i++) {
				if (lines[i].length > 1) {
					parts = lines[i].split(",");
					var lat = parseFloat(parts[0]);
					var lng = parseFloat(parts[1]);
					points3.push(new google.maps.LatLng(lng,lat));

					if ((Math.floor(i*mabi_path))<datalen){
						ii=Math.floor(i*mabi_path);

						partsii = lines[ii].split(",");
						var latii = parseInt(partsii[0]*keta_p)/keta_p;
						var lngii = parseInt(partsii[1]*keta_p)/keta_p;

						map_path_data = map_path_data+"|"+lngii+","+latii;
					}
				}
			}
			parts = lines[lines.length-1].split(",");
			var lat = parseInt(parts[0]*keta_p)/keta_p;
			var lng = parseInt(parts[1]*keta_p)/keta_p;
			map_path_data = map_path_data+"|"+lng+","+lat;

		}else{     //dataがmax以下

			for (var i=0; i<lines.length; i++) {
				if (lines[i].length > 1) {
					parts = lines[i].split(",");
					var lat = parseInt(parts[0]*keta_p)/keta_p;
					var lng = parseInt(parts[1]*keta_p)/keta_p;
					points3.push(new google.maps.LatLng(lng,lat));

					map_path_data = map_path_data+"|"+lng+","+lat;
				}
			}
		}

		k_count = 1;
		zan1=0;distx1=0;mae_total1=0;
		while( p != (points3.length -1)) {
			distx1 = Gdistance2(points3[p], points3[p+1]);
			dist += Gdistance2(points3[p], points3[++p]);
			if ((document.getElementById("1k").checked)||(document.getElementById("5k").checked)){
				if ((mae_total1+distx1) < 1000){
					mae_total1 = mae_total1 + distx1;
					zan1 = 1000 - mae_total1;
				}
				else{
					zan1 = actFlag_image(distx1,points3[p-1],points3[p],zan1);
					mae_total1 = 1000 - zan1;
				}
			}
       		}
	}

	var map_path_line="path=rgb:0xff0000,weight:3";

	if (map_path_data != ""){
		var map_path = map_path_line+map_path_data;
	}else{
		var mapimage = map.getCenter();
		var mapimage_zoom = map.getZoom();
		var map_path = "center="+mapimage.y+","+mapimage.x+"&zoom="+mapimage_zoom;
	}

	var dist4_5=Math.round(document.getElementById("distance").value*10)/10;;
	var image_url="http://42.195km.net/jogsim/showmap.htm?"+dist4_5+"??http://maps.google.com/staticmap?"+map_path+map_marker_mark+"&size="+output_width+"x"+output_height+"&maptype=roadmap&key=ABQIAAAAkilhmkmatuDAqukaIZIjARSnSeM8Ks8WN-lvuOD87B_63jhr8BRDcROUNon7nc3ZdN_j65mc3zMIUA&sensor=false";

	bitly(image_url)
}

function optionsave(){

	if (document.getElementById("center").checked){
		init_center=1;
		}else{
		init_center=0;
		}
	if (document.getElementById("weightsave").checked){
		init_weight = document.getElementById("weight").value;
		}else{
		init_weight=0;
		}
	if (document.getElementById("heightsave").checked){
		init_height=1;
		document.getElementById("elevop").checked=1;
		}else{
		init_height=0;
//		document.getElementById("elevop").checked=0;
		}
	if (document.getElementById("citysave").checked){
		init_city=1;
		document.getElementById("citytown").checked=1;
		}else{
		init_city=0;
		}
	if (document.getElementById("fitsave").checked){
		init_fit = 1;
		}else{
		init_fit = 0;
		}
	if (document.getElementById("speaksave").checked){
		init_speak = 0;
		document.getElementById("speak").checked=0;
		}else{
		init_speak = 1;
		document.getElementById("speak").checked=1;
		}
	if (document.getElementById("speakmansave").checked){
		init_speakmansave = 1;
		}else{
		init_speakmansave = 0;
		}

	if (document.getElementById("hintshow").checked){
		init_hint = 1;
		}else{
		init_hint = 0;
		}

	setCookie("init_center", init_center);
	setCookie("init_weight", init_weight);
	setCookie("init_height", init_height);
	setCookie("init_city", init_city);
	setCookie("init_fit", init_fit);
	setCookie("init_speak", init_speak);
	setCookie("init_speakmansave", init_speakmansave);
	setCookie("init_hint", init_hint);

	window.alert("オプション設定を保存しました"); 
	closeDataWin();
	fat_show();

}

function remainder(){
    lines = xy0.split(" ");
    datacount = lines.length;

    if (datacount > 2){

	var path = poly.getPath();
	var p = path.getLength();

    	calc_check_jogsim();
    	var pppoints = new Array(2); 
    	var guide = new Array(3);
    	var sum_dist ;
    	var longest_dist=0;
    	var longest_point=0;

    	var endpoint =p-1;
    	for (var i = 0; i <= endpoint; i++) {pppoints[i] = ['',''];}

    	var distance_end=Gdistance2(path.getAt(p-1),path.getAt(0));

	for (var i = 0; i <= endpoint; i++) { 
		if (i == 0){
	    		pppoints[i][0]=0;//一番最初はゼロ
	    	}else{
	    		pppoints[i][0] = pppoints[i-1][0]+Gdistance2(path.getAt(i-1),path.getAt(i));
	    	}
        	if (i == endpoint){
	   		pppoints[i][1]=0;
	   	}else{
	   		pppoints[i][1]=Gdistance2(path.getAt(i),path.getAt(endpoint));
	   		if (longest_dist<pppoints[i][1]){
				longest_dist=pppoints[i][1];
				longest_point=pppoints[i][0];
			}
	   	}
        	sum_dist=pppoints[i][0];
	}

    	guide[0]=[0,distance_end];
    	if(0.1 > distance_end/sum_dist){
		guide[1]=[longest_point,longest_dist];//roop
	}else{
		guide[1]=[sum_dist/2,distance_end/2];//one way
	}
    	guide[2]=[sum_dist,0];

    	var chart = new EJSC.Chart(

	       "FourthChart", 
       		{
		axis_bottom: {
			caption: "走行距離　m"
		},
		axis_left: {
			caption: ""
//			visible: false
		},
        	show_legend: false,
 		show_hints: true,
        	title: "",
		grid: {
			color: "rgb(230,230,230)" 
		}
       		}

     	);

	var myChartSeries =  new EJSC.AreaSeries(

		new EJSC.ArrayDataHandler(pppoints),
		{ title: "直線距離" }
	);
     	var my2ChartSeries =  new EJSC.LineSeries(
		new EJSC.ArrayDataHandler(guide),
		{ title: "ガイドライン" }
      	);

	myChartSeries.lineWidth = 5;
	myChartSeries.color = 'rgb(255,203,101)';
	chart.addSeries(myChartSeries);

	chart.addSeries(my2ChartSeries);
	document.getElementById("FourthChartYaxis").innerHTML ="<img src=\"./gif/s_direct.gif\" width=\"46\" height=\"200\">";

    }else{
	document.getElementById("FourthChart").innerHTML ="<center><span class=\"head\">測定データがありません。</span></center>";
	document.getElementById("FourthChartYaxis").innerHTML ="";
    }

}

function keisan(ido,keido,ido2,keido2){
	var a,b,x,y ;
	var dx1,dy1,dx2,dy2 ;
	var work ,lng,lat;
	var deg,dist,dist_km ;
	
	L_ido = ido ; L_keido = keido ;
	M_ido = ido2 ; M_keido = keido2 ;
	
	dx1 = ido * Math.PI / 180 ;
	dy1 = keido * Math.PI / 180 ;
	dx2= ido2 * Math.PI / 180 ;
	dy2 = keido2 * Math.PI / 180 ;
	
	deg = Math.sin(dy1) * Math.sin(dy2) + Math.cos(dy1) * Math.cos(dy2) * Math.cos( dx2 - dx1) ;
	
	ido = Math.PI * ido / 180 ;
	keido = Math.PI * keido / 180 ;
	ido2 = Math.PI * ido2 / 180 ;
	keido2 = Math.PI * keido2/ 180 ;
	
	
	a = keido2 -keido ;
	y = Math.cos(ido2)*Math.sin(a) ;
	x =( Math.cos(ido)*Math.sin(ido2) ) - ( Math.sin(ido) * Math.cos(ido2)* Math.cos(a) );
	
	b = Math.atan2(y,x) * 180 / Math.PI ;
	
	if (b < 0 ) b =  b + 360 ;
	return(b);  
}

function vector(){
    lines = xy0.split(" ");
    datacount = lines.length;

    if (datacount > 2){

	calc_check_jogsim();
    	var x1,x2,x3,y1,y2,y3,kosu ;
    	var vec1,vec2,vec3;
    	var houi = new Array("北","北北東","北東","東北東","東","東南東","南東","南南東","南","南南西","南西","西南西","西","西北西","北西","北北西");
    	var bunkatu16=360/32;
    	var houi_com;
    	var direct_time;
    	var real_time;

    	kosu = lines.length-2;

	parts = lines[0].split(",");
	y1 = parseFloat(parts[1]);
	x1 = parseFloat(parts[0]);

	parts = lines[kosu].split(",");
    	y2 = parseFloat(parts[1]);
    	x2 = parseFloat(parts[0]);

    	if(y1<y2){y3=y2+(y2-y1);}else{y3=y2-(y1-y2);}
    	if(x1<x2){x3=x2+(x2-x1);}else{x3=x2-(x1-x2);}

	setLoading_town();

	var geocoder;
	geocoder = new google.maps.Geocoder();
	var latlng = new google.maps.LatLng(y3,x3);

	if (geocoder) {
		geocoder.geocode({'latLng': latlng}, function(results, status) {
      			if (status == google.maps.GeocoderStatus.OK) {
      				if (results[1]) {

					for (var i=0; i<results.length; i++) {

						var vstr=String(results[i].types);
						if (vstr.indexOf("sublocality,political") != -1){
							citytownname=results[i].formatted_address;
							var citytownname_lines = citytownname.split(",");
							citytownname=citytownname_lines[citytownname_lines.length-1];
							i=999;
							}
					}

				} else {
				citytowns = "error";
				citytownname = "<font color=red>情報が取れませんでした</font>";
				}
			} else {
				alert("Geocoder failed due to: " + status);
       			}

		document.getElementById("pretown").innerHTML =citytownname;
		unsetLoading_town();
		});
	}

	var path = poly.getPath();
	var p = path.getLength();

    	var distance_end=Gdistance2(path.getAt(p-1),path.getAt(0));
    	var vector_end=keisan(y1,x1,y2,x2);	

	var vec ;
    	vec = Math.floor(vector_end/bunkatu16/2+0.5);
    	if (vec==16){vec=0;}
	houi_com=houi[vec];

	real_time=parseFloat(document.getElementById("hour").value)*3600+parseFloat(document.getElementById("min").value)*60+parseFloat(document.getElementById("sec").value);
    	var dist_rate = distance_end/parseFloat(document.getElementById("distance").value)/1000

    	real_time = real_time * dist_rate;

    	var d_hour=Math.floor(real_time/3600);
    	var d_min =Math.floor((real_time-d_hour*3600)/60);
    	var d_sec =Math.floor(real_time-d_hour*3600-d_min*60);

    	if (d_hour==0){d_hour="";}else{d_hour = d_hour+" 時間 ";}
    	if ((d_hour==0)&&(d_min==0)){d_min="";}else{d_min  = d_min +" 分 ";}
    	d_sec  = d_sec +" 秒 ";

    	document.getElementById("vector").innerHTML =houi_com;
    	document.getElementById("vector_dist").innerHTML =distance_end;
    	document.getElementById("directtime").innerHTML =d_hour+d_min+d_sec;

    	vec3=360-vector_end-5;
    	vec2=10;
    	vec1=vector_end-5;

    	if (lines.length > 2){
		var third_data =[ [vec1,"white"],[vec2,"red"],[vec3,"white"] ];
		var chart = new EJSC.Chart("ThirdChart", 
   		{
      		title: "", 
      		show_legend: false,
      		show_hints: false
 		}
  		); 

		mySeries= new EJSC.PieSeries( 
    		new EJSC.ArrayDataHandler(third_data) ,
    		{
     			defaultColors: [ 
          		'rgb(255,255,255)', 
          		'rgb(255,51,51)', 
          		'rgb(255,255,255)' 
      			] 
     		}
  		);

		chart.addSeries(mySeries);
	        document.getElementById("ThirdChartSample").innerHTML ="<img src=\"./gif/houi.gif\">";
	}

    }else{
	document.getElementById("ThirdChart").innerHTML ="<center><span class=\"head\">測定データがありません。</span></center>";
        document.getElementById("ThirdChartSample").innerHTML ="";
	document.getElementById("vector").innerHTML ="-----";
    	document.getElementById("vector_dist").innerHTML ="-----";
    	document.getElementById("directtime").innerHTML ="-----";
    	document.getElementById("pretown").innerHTML ="-----";
    }

}

function turn_num(){

    lines = xy0.split(" ");
    datacount = lines.length;

    if (datacount > 2){
	calc_check_jogsim();
    	var angle60l = 0;
    	var angle120l = 0;
    	var angle150l = 0;
    	var angle60r = 0;
    	var angle120r = 0;
    	var angle150r = 0;

    	parts = lines[0].split(",");

       	for (var i=1; i<(lines.length-1); i++) {

		parts = lines[i-1].split(",");
		var lat0 = parseFloat(parts[1]);
		var lng0 = parseFloat(parts[0]);
		parts = lines[i].split(",");
		var lat1 = parseFloat(parts[1]);
		var lng1 = parseFloat(parts[0]);
		parts = lines[i+1].split(",");
		var lat2 = parseFloat(parts[1]);
		var lng2 = parseFloat(parts[0]);

		var lata = lat0-lat1;
		var lnga = lng0-lng1;
		var latb = lat2-lat1;
		var lngb = lng2-lng1;

		yy = lata * lngb - lnga * latb;
		xx = lata * latb + lnga * lngb;
		var theta = Math.atan2(yy, xx) *180 / Math.PI;

		if ((theta> 0 )&&(theta<= 60)){angle60l = angle60l + 1;}
		if ((theta> 60)&&(theta<=120)){angle120l =angle120l + 1;}
		if ((theta>120)&&(theta<=150)){angle150l =angle150l + 1;}
		if ((theta< 0 )&&(theta>= -60)){angle60r = angle60r + 1;}
		if ((theta< -60)&&(theta>=-120)){angle120r =angle120r + 1;}
		if ((theta<-120)&&(theta>=-150)){angle150r =angle150r + 1;}
	}

	var second_data =[ [angle60r,"右廻り 0ﾟ- 60ﾟ"],
	   [angle120r,"右廻り 60ﾟ-120ﾟ"],
	   [angle150r,"右廻り120ﾟ-150ﾟ"],
	   [angle150l,"左廻り120ﾟ-150ﾟ"],
	   [angle120l,"左廻り 60ﾟ-120ﾟ"],
	   [angle60l,"左廻り 0ﾟ- 60ﾟ"] ];

	var turn_r = angle60r+angle120r+angle150r;
	var turn_l = angle60l+angle120l+angle150l;

	if (turn_r == turn_l){document.getElementById("turn").innerHTML ="右折も左折も同じ回数";}
	if (turn_r < turn_l){document.getElementById("turn").innerHTML ="左折が多い";}
	if (turn_r > turn_l){document.getElementById("turn").innerHTML ="右折が多い";}
	var chart = new EJSC.Chart("SecondChart", 
	    {
 		title: "", 
    		show_legend: false,

		onShowHint: function(point, series, chart, hint, hoverOrSelect) { 
    			return "[label]<br/>([percent]%)"; 
		} 
　　	    }
	);


	mySeries= new EJSC.PieSeries( 
	    new EJSC.ArrayDataHandler(second_data) ,
	    {
	     defaultColors: [ 
      		'rgb(255,51,51)', 
       		'rgb(255,101,101)',
       		'rgb(255,152,152)',//Red 
       		'rgb(152,152,255)',
       		'rgb(101,101,255)',
       		'rgb(51,51,255)'  //Blue 
		]
	    }
	);

	chart.addSeries(mySeries);
        document.getElementById("SecondChartSample").innerHTML ="<img src=\"./gif/left-right.gif\" width=\"225\" height=\"115\">";

    }else{
	document.getElementById("SecondChart").innerHTML ="<center><span class=\"head\">測定データがありません。</span></center>";
	document.getElementById("turn").innerHTML ="-----";
	document.getElementById("SecondChartSample").innerHTML ="";
    }

}

function height_g() {

    var ave_angle=0;
    var sum_r=0;
    var max_y = -1000;
    var min_y =  1000;
    var x1= new Array();
    var y1= new Array();
    var angle1 = 0;

    var max_angle = 0;
    var min_angle = 0;
    var sum_up = 0;


    linecut = xy0.split(" ");
    datacount = linecut.length;

    if ((document.getElementById("elevop").checked == 1)&&(datacount > 2)){

    calc_check_jogsim();

    lines_ev = linecut;

    if (lines_ev.length > 2){

    var pppoints = new Array(2); 
    for (var i = 0; i < lines_ev.length-1; i++) {pppoints[i] = ['',''];}
	distsum = 0;
        for (var i=0; i<lines_ev.length-1; i++) {
		parts_ev = lines_ev[i].split(",");
		if (i==0){
			pppoints[i][0] = 0;
			angle1 = 0;
			var start_height=lines_ev[i].split(",");
			}else{
			parts_ev_before = lines_ev[i-1].split(",");
			var point00 = new google.maps.LatLng(parts_ev_before[1],parts_ev_before[0]) ;
			var point100 = new google.maps.LatLng(parts_ev[1],parts_ev[0]) ;
			var distxxx=Gdistance2(point00,point100);
		    	distsum = distsum+ distxxx;
			pppoints[i][0] = distsum; 
			angle1 = (parts_ev[2]-parts_ev_before[2])*100/distxxx;
			if (angle1 > 0){sum_up += (parts_ev[2]-parts_ev_before[2]);}
			} 
		pppoints[i][1] = parseFloat(parts_ev[2]) ; 

		sum_r = distsum;
		if (parts_ev[2] > max_y){ max_y = parseFloat(parts_ev[2]);}
		if (parts_ev[2] < min_y){ min_y = parseFloat(parts_ev[2]);}
		if (angle1 > max_angle){ max_angle = angle1;}
		if (angle1 < min_angle){ min_angle = angle1;}
		


	}
    }

    max_elev = max_y - min_y;
    if (sum_r == 0){ave_angle = 0;max_elev=0;}
    else{ave_angle = parseFloat( (parts_ev[2]-start_height[2]) /sum_r)*100;}
    var chart = new EJSC.Chart(

    "FirstChart", 
 	{
	axis_bottom: {
		caption: "走行距離　m"
	},
	axis_left: {
//		caption: "標　高　m",
		caption: ""
//		visible: false
	},
        show_legend: false,
 	show_hints: true,
        title: "",
	grid: {
		color: "rgb(230,230,230)" 
	}
       }
     );

    var myChartSeries =  new EJSC.AreaSeries(

	new EJSC.ArrayDataHandler(pppoints),
	{ title: "標高データ" }
      );

    myChartSeries.lineWidth = 5;
    myChartSeries.color = 'rgb(255,203,101)';
    chart.addSeries(myChartSeries);
    document.getElementById("FirstChartYaxis").innerHTML ="<img src=\"./gif/s_height.gif\" width=\"46\" height=\"200\">";

    document.f.max_elev.value=Math.round(parseFloat(max_elev)*10)/10;
    document.f.ave_angle.value=Math.round(parseFloat(ave_angle)*100)/100;
    document.f.max_angle_u.value=Math.round(parseFloat(max_angle)*100)/100;
    document.f.max_angle_d.value=Math.round(parseFloat(min_angle)*100)/100;
    document.f.sum_elev.value=Math.round(parseFloat(sum_up)*parseFloat(document.getElementById("kai").value)*10)/10;

    }else{
    document.getElementById("FirstChart").innerHTML ="<center><span class=\"head\">高低差オプションがチェックされていません。<br />もしくはデータがありません。</span></center>";
    document.getElementById("FirstChartYaxis").innerHTML ="";

    document.f.max_elev.value="--- ";
    document.f.ave_angle.value="--- ";
    document.f.max_angle_u.value="--- ";
    document.f.max_angle_d.value="--- ";
    document.f.sum_elev.value="--- ";
    }

}

function j_earth(){

    var j_earth_yesno = 'yes';
    pathCoordinates = new google.maps.MVCArray();  
    triaCoordinates = new google.maps.MVCArray();  
    var newpoint;

    if ((document.getElementById("citytown").checked)||(document.getElementById("elevop").checked)){
	if(window.confirm('この機能を使うと高低データや市町村データは破棄します。\nよろしいですか？')){
	    j_earth_yesno='yes';
	    document.getElementById("citytown").checked=0;
	    document.getElementById("elevop").checked=0;
	    }
	    else{
	    j_earth_yesno='no';
	    }
	}
    if(document.getElementById("world_location").value == "x"){j_earth_yesno='no';}

    if(j_earth_yesno=='yes'){
	
	world_location=document.getElementById("world_location").value;
	location0=world_location.split(",");

	def_lat = parseFloat(location0[0]);
    	def_lng = parseFloat(location0[1]);
    	def_maptype = parseFloat(location0[2]); //0..normal 1..satelite image

	map.setCenter(new google.maps.LatLng(parseFloat(def_lat),parseFloat(def_lng) ) );

        if (def_maptype == 1 ){
	    window.alert("この地区は強制的に航空写真モードにチェンジします");
	    map.setMapTypeId(google.maps.MapTypeId.SATELLITE);
	    }

        lines = xy0.split(" ");
    	start_parts=lines[0].split(",");
    	org_lng = parseFloat(start_parts[0]);//start地点の座標
    	org_lat = parseFloat(start_parts[1]);
    	sabun_lat = def_lat - org_lat;
    	sabun_lng = def_lng - org_lng;

	var hosei_lat=0;
    	var hosei_lng=0;
    	var plus_alpha=0;

//	lines_ev = ev0.split("\n");//?

	if (lines.length > 2){
	    clearScreen();
	    poly = new google.maps.Polyline(polyOptions);
    	poly.setMap(map);
    	var path = poly.getPath();
    	Triangle = new google.maps.Polygon(TriangleOptions);
    	if (document.getElementById("pg").checked){
		Triangle.setMap(map);
		}else{
		Triangle.setMap(null);
		}
    	var tria = Triangle.getPath();
	    xy0 = "";
//	    ev0 = "";
	    ct0 = "";
var	    dist = 0;
	    p = 0;

	    lines.length = lines.length - 1 ;
	    for (var i=0; i<lines.length; i++) {
		if (lines[i].length > 1) {
		    parts = lines[i].split(",");
//		    parts_ev = lines_ev[i].split(",");
		    var lat = parseFloat(parts[1]);
		    var lng = parseFloat(parts[0]);
//		    var distsum = parseFloat(parts_ev[0]);
//		    var elev0 = '';

		    if(i == 0){
			plus_alpha = 0;
			old_lat=lat;
			old_lng=lng;
			old_plus_alpha=0;
			}else{
			plus_alpha = (lng - old_lng)*(  (Math.cos( (180-lat) * Math.PI / 180)) / (Math.cos( (180-(lat+sabun_lat)) * Math.PI / 180))  -1)+old_plus_alpha;
			old_lat=lat;
			old_lng=lng;
			old_plus_alpha=plus_alpha;
			}
					
		    hosei_lat=lat+sabun_lat;
		    hosei_lng=lng+sabun_lng+plus_alpha;

  		    newpoint=new google.maps.LatLng(hosei_lat,hosei_lng);

		    path.insertAt(pathCoordinates.length, newpoint);
		    tria.insertAt(triaCoordinates.length, newpoint);

		    xy0 += String(hosei_lng)+","+String(hosei_lat) +",0"+" ";
//		    ev0 += String(distsum) + "," + String(elev0) + "\n";
		    }
		}

		k_count = 1;

		if (document.getElementById("pg").checked){
		    var xys = new Array;
xys=[];

		    for( var i = 0; i < path.getLength(); i++){
			xys.push( getXY1(path.getAt(0).lat(),path.getAt(0).lng(),path.getAt(i).lat(),path.getAt(i).lng() ) );
		    }
		    document.getElementById("pgarea").value =  addZero3(String(getSquareKilo( xys )));
		    }else{
 			document.getElementById("pgarea").value =  "--- ";
		    }

		var point99 = new google.maps.LatLng(parseFloat( path.getAt(path.getLength() -1).lat()   ),parseFloat(  path.getAt(path.getLength() -1).lng()   )  ) ;

		whiteMarker = new google.maps.Marker({
        		map: map,
			position: point99 ,
        		icon: icon3image,
        		shadow: shadow,
			draggable:true    });
    		whiteMarker.setMap(map);

		google.maps.event.addListener(whiteMarker, 'dragend', function(){move_start_point()}); 

      		zan1=0;distx1=0;mae_total1=0;
     		for (var p=(path.getLength() -1); p>0; p--) {
			distx1 = Gdistance2(path.getAt(p), path.getAt(p-1));
			dist +=  distx1;

         		if ((document.getElementById("1k").checked)||(document.getElementById("5k").checked)){
       		     		if ((mae_total1+distx1) < 1000){
   	      				mae_total1 = mae_total1 + distx1;
	      				zan1 = 1000 - mae_total1;
	      			}
	      			else{
					zan1 = actFlag(distx1,path.getAt(p),path.getAt(p-1),zan1);
	      				mae_total1 = 1000 - zan1;
	      			}
   	     		}
          	}
          	document.getElementById("distance").value = addZero3(String(dist/1000));
     	}

	    header_kml();
	    document.getElementById("out").value =kml_top+xy0.slice(0,xy0.length-1)+"\n"+kml_bottom;
	}
}

function move_start_point(){

    pathCoordinates = new google.maps.MVCArray();  
    triaCoordinates = new google.maps.MVCArray();  

    lines = xy0.split(" ");
//    lines_ev = ev0.split("\n");
    parts = lines[0].split(",");
    var new_lat = parseFloat(parts[1]);
    var new_lng = parseFloat(parts[0]);
    var remove = whiteMarker.getPosition();

    remove_lat=remove.lat();
    remove_lng=remove.lng();

    sabun_re_lat = remove.lat() - new_lat;
    sabun_re_lng = remove.lng() - new_lng;

    var poly2= null;

    if (lines.length > 2){
	clearScreen();
	whiteMarker.setMap(null);

    poly = new google.maps.Polyline(polyOptions);
    poly.setMap(map);
    var path = poly.getPath();
    Triangle = new google.maps.Polygon(TriangleOptions);
    if (document.getElementById("pg").checked){
	Triangle.setMap(map);
	}else{
	Triangle.setMap(null);
	}
    var tria = Triangle.getPath();

	xy0 = "";
//	ev0 = "";
	ct0 = "";
var	dist = 0;
	p = 0;

	lines.length = lines.length - 1 ;
            for (var i=0; i<lines.length; i++) {
		if (lines[i].length > 1) {
			parts = lines[i].split(",");
//			parts_ev = lines_ev[i].split(",");
			var lat = parseFloat(parts[1]);
			var lng = parseFloat(parts[0]);
//			var distsum = parseFloat(parts_ev[0]);
//	   		var elev0 = '';

			if(i == 0){
				plus_alpha = 0;
				old_lat=lat;
				old_lng=lng;
				old_plus_alpha=0;
				}else{
				plus_alpha = (lng - old_lng)*(  (Math.cos( (180-lat) * Math.PI / 180)) / (Math.cos( (180-(lat+sabun_re_lat)) * Math.PI / 180))  -1)+old_plus_alpha;
				old_lat=lat;
				old_lng=lng;
				old_plus_alpha=plus_alpha;
				}
					
			hosei_lat=lat+sabun_re_lat;
			hosei_lng=lng+sabun_re_lng+plus_alpha;

			newpoint=new google.maps.LatLng(hosei_lat,hosei_lng);
			path.insertAt(pathCoordinates.length, newpoint);
			tria.insertAt(triaCoordinates.length, newpoint);
			xy0 += String(hosei_lng)+","+String(hosei_lat) +",0"+" ";
//			ev0 += String(distsum) + "," + String(elev0) + "\n";
			}
		}

		k_count = 1;

		if (document.getElementById("pg").checked){
			var xys = new Array;
			for( var i = 0; i < path.getLength(); i++){
				xys.push( getXY1(path.getAt(0).lat(),path.getAt(0).lng(),path.getAt(i).lat(),path.getAt(i).lng() ) );
			}
			document.getElementById("pgarea").value =  addZero3(String(getSquareKilo( xys )));
		}else{
 			document.getElementById("pgarea").value =  "--- ";
		}

		whiteMarker = new google.maps.Marker({
        		map: map,
			position:(new google.maps.LatLng(parseFloat( path.getAt(lines.length - 1).lat()   ),parseFloat(  path.getAt(lines.length - 1).lng()   )  ) ) ,
        		icon: icon3image,
        		shadow: shadow,
			draggable:true    });
    		whiteMarker.setMap(map);

		google.maps.event.addListener(whiteMarker, 'dragend', function(){move_start_point()}); 

		zan1=0;distx1=0;mae_total1=0;
     		for (var p=(path.getLength() -1); p>0; p--) {
			distx1 = Gdistance2(path.getAt(p), path.getAt(p-1));
			dist +=  distx1;

			if ((document.getElementById("1k").checked)||(document.getElementById("5k").checked)){

				if ((mae_total1+distx1) < 1000){
					mae_total1 = mae_total1 + distx1;
					zan1 = 1000 - mae_total1;
					}
				else{
					zan1 = actFlag(distx1,path.getAt(p),path.getAt(p-1),zan1);
					mae_total1 = 1000 - zan1;
				}
			}
		}
		document.getElementById("distance").value = addZero3(String(dist/1000));
	}

	header_kml();
	document.getElementById("out").value =kml_top+xy0.slice(0,xy0.length-1)+"\n"+kml_bottom;

}

function zoomToPoly() {
    var path = poly.getPath();
    if (path.getLength() > 0) {
	map.setCenter(latlngbounds.getCenter());
	map.fitBounds(latlngbounds); 
	}
}

String.prototype.trim = function() {
    return this.replace(/^[\s　]+|[\s　]+$/g, '');
}

function redline_change(){
    document.getElementById("distance").value = addZero3(String(total_dist/1000));
    document.getElementById("pg").disabled=false;
    document.select_line.src = "./gif/line_red.gif";
}

function blueline_change(){
    document.getElementById("distance").value = addZero3(String(total_dist_blue/1000));
    document.getElementById("pg").disabled=true;
    document.select_line.src = "./gif/line_blue.gif";
}

function eh_click2(event) {

if(event.latLng){

    var routename;
    var citytownname="";
    var pos=[];

    if (document.getElementById("redline").checked){  	//red line
	var path = poly.getPath();
	path.insertAt(pathCoordinates.length, event.latLng);
	latlngbounds.extend(event.latLng);
	var tria= Triangle.getPath();
    	tria.insertAt(triaCoordinates.length, event.latLng);

	xandy = String(event.latLng.lng())+","+String(event.latLng.lat());

	distxx = 0 ;
	p = path.getLength();
	if (p > 1){
		distxx = Gdistance2(path.getAt(0), path.getAt(1));
		}
	}else{			    			//blue line
	var path = bluepoly.getPath();
    	path.insertAt(bluepathCoordinates.length, event.latLng);

	xandy_blue = String(event.latLng.lng())+","+String(event.latLng.lat());

	distxx_blue = 0 ;
	p = path.getLength();
	if (p > 1){
		distxx_blue = Gdistance2(path.getAt(0), path.getAt(1));
		}
	}						//----end of blue line

    if ((document.getElementById("elevop").checked)&&(document.getElementById("redline").checked)){ //標高測定はメインラインのみ
	if(!flag_&&event.latLng!=null){
		setLoading();

		var elevator;
		elevator = new google.maps.ElevationService(); 
		var locations = []; 
		var clickedLocation = event.latLng; 
		locations.push(clickedLocation); 

		var positionalRequest = { 
    		'locations': locations 
  		} ;

		if (elevator) { 
    			elevator.getElevationForLocations(positionalRequest, function(results, status) { 
      				if (status == google.maps.ElevationStatus.OK) { 
 
        			// Retrieve the first result 
        				if (results[0]) { 
 						elevx = parseInt(results[0].elevation*100)/100;

						if (document.getElementById("redline").checked){  //red line
							xy0 += xandy +","+String(elevx)+" ";
							}else{
							xy0_blue += xandy_blue+" ";
							}

						elev_a = document.getElementById("elev_b").value; //elev_b;
						elev_b = document.getElementById("elev").value;

				        	document.getElementById("elev").value =  addZero2(String(elevx));
        					document.getElementById("elev_a").value =  addZero2(String(elev_a));
        					document.getElementById("elev_b").value =  addZero2(String(elev_b));

						show_elev_image(distxx,elevx,elev_b);

						unsetLoading();

				        } else { 
        				alert("No results found"); 
					if (document.getElementById("redline").checked){  //red line
						xy0 += xandy +",0 ";
						}else{
						xy0_blue += xandy_blue+" ";
						}
					unsetLoading();
			        	} 
      				} else { 
        			alert("Elevation service failed due to: " + status); 
				if (document.getElementById("redline").checked){  //red line
					xy0 += xandy +",0 ";
					}else{
					xy0_blue += xandy_blue+" ";
					}
				unsetLoading();
      				} 
    			}); 
  		} 
	}
    }else{
	if (document.getElementById("redline").checked){  //red line
		xy0 += xandy +",0"+" ";
//		ev0 += String(distxx)+",0,"+"\n";
		}else{
			xy0_blue += xandy_blue +",0"+" ";
		}
    }

	if (document.getElementById("citytown").checked){
		if(!flag_town&&event.latLng!=null){
			setLoading_town();

			var geocoder;
			geocoder = new google.maps.Geocoder();
			var latlng = new google.maps.LatLng(event.latLng.lat(),event.latLng.lng());

			if (geocoder) {
				geocoder.geocode({'latLng': latlng}, function(results, status) {
        			if (status == google.maps.GeocoderStatus.OK) {
          				if (results[1]) {//resultsの回数をチェックするべし
						for (var i=0; i<results.length; i++) {
							if (results[i].types=="route"){
								routename=results[i].formatted_address;
								var routename_lines = routename.split(" ");
								routename=routename_lines[routename_lines.length-1];
								i=999;
								}else{
								routename="------------------";
								}
						}
						for (var i=0; i<results.length; i++) {
							var vstr=String(results[i].types);
							if (vstr.indexOf("sublocality,political") != -1){
								citytownname=results[i].formatted_address;
								var citytownname_lines = citytownname.split(",");
								citytownname=citytownname_lines[citytownname_lines.length-1];

								var reg=new RegExp("[0-9０-９].*$")
								var citytownname_str=citytownname.replace(reg,"");
								citytownname_str = citytownname_str.trim(); 

								var TODOFUKEN_ex = citytownname_str.match(/(?:東京都|北海道|(?:大阪|京都)府|(?:神奈川|和歌山|鹿児島|.{2})県)(?![\d０-９])/i);
								var SHICHOSON_ex1=citytownname_str.replace(TODOFUKEN_ex, ""); 

								pos[0]=SHICHOSON_ex1.indexOf("郡");if (pos[0]==-1){pos[0]=999;}
								pos[1]=SHICHOSON_ex1.indexOf("市");if (pos[1]==-1){pos[1]=999;}
								pos[2]=SHICHOSON_ex1.indexOf("区");if (pos[2]==-1){pos[2]=999;}

								var min_pos= pos.indexOf(Math.min.apply(null,pos)) ; //null 999 check　すること！
								if ((min_pos != 999)&&(min_pos != null)){
									var SHICHOSON_ex2=SHICHOSON_ex1.slice(0, pos[min_pos]+1);    
									var SHICHOSON_ex3=SHICHOSON_ex1.replace(SHICHOSON_ex2, ""); 

									citytowns=TODOFUKEN_ex+","+SHICHOSON_ex2+","+SHICHOSON_ex3;
									}else{
									citytowns = "error";
									citytownname = "<font color=red>情報が取れませんでした</font>";
									}

								if (document.getElementById("redline").checked){ct0 += citytowns+"\n";}//only red line
								i=999;
								}else{
								citytownname="------------------";
								}
						}
						document.getElementById("town").innerHTML =citytownname;
						document.getElementById("routename").innerHTML =routename;

					} else {
						citytowns = "error";
						citytownname = "<font color=red>情報が取れませんでした</font>";
						document.getElementById("town").innerHTML =citytownname;
          				}
        			} else {
					alert("Geocoder failed due to: " + status);
        			}
				if (document.getElementById("redline").checked){  //red line
	    				header_kml();
					document.getElementById("out").value =kml_top+xy0.slice(0,xy0.length-1)+"\n"+kml_bottom;
					}
				unsetLoading_town();
				});
			}
		}
	}else{
	        document.getElementById("town").innerHTML ="------------------";
		document.getElementById("routename").innerHTML ="------------------";

//		citytowns=",,";
//  	        ct0 += citytowns+"\n";
		citytowns=",,";
  	        ct0 += citytowns+"\n";
		if (document.getElementById("redline").checked){  //red line
			header_kml();
			document.getElementById("out").value =kml_top+xy0.slice(0,xy0.length-1)+"\n"+kml_bottom;
			}	
        }

	if (document.getElementById("center").checked){map.setCenter(event.latLng);}

	if( path.getLength() > 1 ) {

		if ((document.getElementById("pg").checked) && (document.getElementById("redline").checked) ){
			startpoint=path.getAt(p-1);
			beforepoint=path.getAt(1);
			nowpoint=path.getAt(0);


			Triangle_list.push(Triangle);

			var xys = new Array;
			for( var i = 0; i < p; i++)
			{
			xys.push( getXY1(nowpoint.lat(),nowpoint.lng(),path.getAt(i).lat(),path.getAt(i).lng() ) );
			}
 	     		document.getElementById("pgarea").value =  addZero3(String(getSquareKilo( xys )));
		}else{
   			if (!document.getElementById("pg").checked){document.getElementById("pgarea").value =  "--- ";}
		}

	if (document.getElementById("redline").checked){  //red line

		distxx = Gdistance2(path.getAt(0), path.getAt(1));

		total_dist += distxx;

			if ((mae_total+distxx) < 1000){
				mae_total = mae_total + distxx;
				zan = 1000 - mae_total;
			}
			else{
			zan = actFlag(distxx,path.getAt(1),path.getAt(0),zan);

			mae_total = 1000 - zan;
	     		}


		document.getElementById("distance").value = addZero3(String(total_dist/1000));
	}else{
		distxx_blue = Gdistance2(path.getAt(0), path.getAt(1));

		total_dist_blue += distxx_blue;

			if ((mae_total_blue+distxx_blue) < 1000){
				mae_total_blue = mae_total_blue + distxx_blue;
				zan_blue = 1000 - mae_total_blue;
			}
			else{
			zan_blue = actFlag(distxx_blue,path.getAt(1),path.getAt(0),zan_blue);

			mae_total_blue = 1000 - zan_blue;
	     		}
		document.getElementById("distance").value = addZero3(String(total_dist_blue/1000));
	}

	}
 }
}
function red_change(){
	if (document.getElementById("1k").checked){
		if (document.getElementById("redline").checked){  //red line
			red_on();
			}else{
			red_on_blueline();
			}
	}else{
		if (document.getElementById("redline").checked){  //red line
			red_off();
			}else{
			red_off_blueline();
			}
	}
}

function blue_change(){
	if (document.getElementById("5k").checked){
		if (document.getElementById("redline").checked){  //red line
			blue_on();
			}else{
			blue_on_blueline();
			}
	}else{
		if (document.getElementById("redline").checked){  //red line
			blue_off();
			}else{
			blue_off_blueline();
			}
	}
}
function traichange(){
	if (document.getElementById("pg").checked){
		Triangle.setMap(map);
	}else{
		Triangle.setMap(null);
	}
}

function showAddress(address) {
	var  geocoder = new google.maps.Geocoder();
	if (geocoder) {
		geocoder.geocode( { 'address': address}, function(results, status) {
        	if (status == google.maps.GeocoderStatus.OK) {
        		map.setCenter(results[0].geometry.location);
        		} else {
          		alert("Geocode was not successful for the following reason: " + status);
        		}
      		});
	}
}

function resize(){ 
	var map_div=document.getElementById("map");
	var chart1_div=document.getElementById("FirstChart");
	var chart4_div=document.getElementById("FourthChart");

	var disp=getDispSize();

	var h1=disp.height-100-20+50;	//地図のサイズ
	var h2=disp.height-120-200-40;	//パネルのサイズ

	if(h1<h2+200){h1=h2+200;}

	map_div.style.width=(disp.width-200)+"px";
	map_div.style.height=h1+"px";
	chart1_div.style.height=h1*.4+"px";
	chart1_div.style.width=(disp.width-200)+"px";
	chart4_div.style.height=h1*.4+"px";
	chart4_div.style.width=(disp.width-200)+"px";
	return {width:(disp.width-200)+"px",height:h1+"px"};

}

function getDispSize(){
	if(document.all){ 
		if(window.opera){
			return {width:document.body.clientWidth,height:document.body.clientHeight}; 
		}else{
			return {width:document.documentElement.clientWidth,height:document.documentElement.clientHeight}; 
		}
	}

	// NN 
	else if(document.layers || document.getElementById){ 
		return {width:window.innerWidth,height:window.innerHeight}; 
	} 

}

function dd(id1,id2)
{
	if(document.all) {
		OBJ = document.all(id1).style;
		OBJ2 = document.all(id2).style;
		} 
		else if(document.getElementById){
			OBJ = document.getElementById(id1).style;
			OBJ2 = document.getElementById(id2).style;
		}

	if(OBJ) {
		if(OBJ.display=='none'){   //none hide
			OBJ.display='';
			if(OBJ2.display==''){OBJ2.display='none';}
		}else{
			OBJ.display='none';
//			if(OBJ2.display=='none'){OBJ2.display='';}
		}
	}
} 
function dd3(id1,id2,id3)
{
	if(document.all) {
		OBJ = document.all(id1).style;
		OBJ2 = document.all(id2).style;
		OBJ3 = document.all(id3).style;
		} 
		else if(document.getElementById){
			OBJ = document.getElementById(id1).style;
			OBJ2 = document.getElementById(id2).style;
			OBJ3 = document.getElementById(id3).style;
		}

	if(OBJ) {
		if(OBJ.display=='none'){   //none hide
			OBJ.display='';
			if(OBJ2.display==''){OBJ2.display='none';}
			if(OBJ3.display==''){OBJ3.display='none';}
		}else{
			OBJ.display='none';
		}
	}

}

function dd1(id){
	if(document.all)OBJ = document.all(id).style;
		 else if(document.getElementById)OBJ = document.getElementById(id).style;
	if(OBJ) OBJ.display=='none'?OBJ.display='':OBJ.display='none';
}

function kmlshow()
{
	header_kml();
	document.getElementById("out").value =kml_top+xy0.slice(0,xy0.length-1)+"\n"+kml_bottom;
}

function draw(){
    document.getElementById("redline").checked=true;

    dummy = document.getElementById("in").value ;

    var pointa1=dummy.indexOf("<jogsiminfo>");
    var pointb1=dummy.indexOf("</jogsiminfo>");
    var jogsiminfo=dummy.slice(pointa1+12,pointb1);

    partcut = jogsiminfo.split(",");
    apri_ver  = parseFloat(partcut[7]);

    if( apri_ver == "1.4" )
	{
	blue_flag = 0;
	draw_kml();
	}
	else
	{
	blue_flag = 0;
	draw_newkml();
	}
}
function draw_blue(){
    dummy = document.getElementById("in").value ;

    var pointa1=dummy.indexOf("<jogsiminfo>");
    var pointb1=dummy.indexOf("</jogsiminfo>");
    var jogsiminfo=dummy.slice(pointa1+12,pointb1);

    partcut = jogsiminfo.split(",");
    apri_ver  = parseFloat(partcut[7]);

    if( apri_ver == "1.4" )
	{
	blue_flag = 1;
	draw_kml();
	}
	else
	{
	blue_flag = 1;
	draw_newkml();
	}
    blue_flag=0;
}

function draw_kml(){   //旧データは高低データを破棄して読み込みます
    pathCoordinates = new google.maps.MVCArray();  
    triaCoordinates = new google.maps.MVCArray();  
    bluepathCoordinates = new google.maps.MVCArray();  

    var newpoint;
    latlngbounds=new google.maps.LatLngBounds();

    var xy100 = "";

    var poly3= null;
    var point3 = new Array();
    var elev002 ="";
    var elev001 ="";
    var elev000 ="";

    xy0=""; 
    ev0=""; 
    ct0=""; 

    dummy = document.getElementById("in").value ;
    linecut = dummy.split("\n");
    partcut = linecut[5].split(",");
    apri_name = "Jogsim";
    partcut = linecut[linecut.length-3].split(",");

    zoom0     = partcut[0];
    LatLngx   = partcut[1];
    LatLngy   = partcut[2];
    f1k       = partcut[3];
    f5k       = partcut[4]; 
    f1m       = partcut[5];
    f5m       = partcut[6]; 
    apri_ver  = parseFloat(partcut[7]);
    fpg       = parseFloat(partcut[8]); 
    fev       = parseFloat(partcut[9]); 
    fcitytown = parseFloat(partcut[10]);

    if ((apri_name != "Jogsim")||(apri_ver != 1.4)){
		window.alert("データ形式が違います！");
		}
        else{
	ev_check=0;xy_check=0;

        for (var i=4; i<(linecut.length-5); i++) {

      		if (linecut[i].indexOf("<dist_elev>") != -1){

			i ++ ;
			while (linecut[i].indexOf("</dist_elev>") == -1){
				ev0 += linecut[i]+"\n";
			        parts_ev = linecut[i].split(",");
			        elev0 = parseFloat(parts_ev[1]);
				distcheck= parseFloat(parts_ev[0]);
	  			elev002 = elev001;
	  			elev001 = elev000;
	  			elev000 = elev0;
				i ++;
			}
		}
      		if (linecut[i].indexOf("<visited_place>") != -1){

			i ++ ;
			while (linecut[i].indexOf("</visited_place>") == -1){
				ct0 += linecut[i]+"\n";
				i ++;
			}

		}
      		if (linecut[i].indexOf("<coordinates>") != -1){

			i ++ ;
			while (linecut[i].indexOf("</coordinates>") == -1){

				xy0 += linecut[i]+"\n";//これはとりあえず旧フォーマット読込

				i ++;
			}
		}
	}

	if (f1k == "1"){
		document.getElementById("1k").checked=1;
		}else{
		document.getElementById("1k").checked=0;
		}
	if (f5k == "1"){
		document.getElementById("5k").checked=1;
		}else{
		document.getElementById("5k").checked=0;
		}
	if (fpg == "1"){
		document.getElementById("pg").checked=1;
		}else{
		document.getElementById("pg").checked=0;
		}
	if (fev == "1"){
		document.getElementById("elevop").checked=1;
		}else{
		document.getElementById("elevop").checked=0;
		}
	if (fcitytown == "1"){
		document.getElementById("citytown").checked=1;
		}else{
		document.getElementById("citytown").checked=0;
		}

	document.getElementById("elev").value =  "";
	lines = xy0.split("\n");//これはとりあえず旧フォーマット読込


	if (lines.length > 2){
	    if(blue_flag == 0){
		clearScreen();
		poly = new google.maps.Polyline(polyOptions);
    		poly.setMap(map);
    		var path = poly.getPath();
    		Triangle = new google.maps.Polygon(TriangleOptions);
    		if (document.getElementById("pg").checked){
			Triangle.setMap(map);
			}else{
			Triangle.setMap(null);
			}
    		var tria = Triangle.getPath();
		}else{
		clearScreen_blue();
		bluepoly = new google.maps.Polyline(bluepolyOptions);
    		bluepoly.setMap(map);
		var path = bluepoly.getPath();
		}

      	    xy0 ="";
var    	    dist = 0;
      	    p = 0;

      	    lines.length = lines.length - 1 ;
      	    for (var i=0; i<lines.length; i++) {// Undo x
        	if (lines[i].length > 1) {
          		parts = lines[i].split(",");

    		        var lat = parseFloat(parts[0]);
          		var lng = parseFloat(parts[1]);

			newpoint=new google.maps.LatLng(lng,lat);
			latlngbounds.extend(newpoint);
			if(blue_flag == 0){
				path.insertAt(pathCoordinates.length, newpoint);
				tria.insertAt(triaCoordinates.length, newpoint);
				xy0 += String(parseFloat(parts[0]))+","+String(parseFloat(parts[1])) +",0"+" ";//旧バージョンからの標高データはここでゼロになります
				}else{
    				path.insertAt(bluepathCoordinates.length, newpoint);
				xy0_blue += String(parseFloat(parts[0]))+","+String(parseFloat(parts[1])) +",0"+" ";//旧バージョンからの標高データはここでゼロになります
				}
         		}
      		}
      		k_count = 1;

		if ((document.getElementById("pg").checked)&&(blue_flag == 0)){
	           var xys = new Array;
xys=[];

     		   for( var i = 0; i < path.getLength(); i++)
		   {
			xys.push( getXY1(path.getAt(0).lat(),path.getAt(0).lng(),path.getAt(i).lat(),path.getAt(i).lng() ) );
		   }
  		   document.getElementById("pgarea").value =  addZero3(String(getSquareKilo( xys )));
		 }else{
 		   document.getElementById("pgarea").value =  "--- ";
		 }


      		zan1=0;distx1=0;mae_total1=0;
     		for (var p=(path.getLength() -1); p>0; p--) {
			distx1 = Gdistance2(path.getAt(p), path.getAt(p-1));
			dist +=  distx1;

         		if ((document.getElementById("1k").checked)||(document.getElementById("5k").checked)){
       		     		if ((mae_total1+distx1) < 1000){
   	      				mae_total1 = mae_total1 + distx1;
	      				zan1 = 1000 - mae_total1;
	      			}
	      			else{
					zan1 = actFlag(distx1,path.getAt(p),path.getAt(p-1),zan1);
	      				mae_total1 = 1000 - zan1;
	      			}
   	     		}
          	}
          	document.getElementById("distance").value = addZero3(String(dist/1000));
     	}

    if(blue_flag == 0){
    	total_dist=dist;
    	mae_total=mae_total1;
    	zan=zan1;
	}else{
    	total_dist_blue=dist;
    	mae_total_blue=mae_total1;
    	zan_blue=zan1;
	}


      if (document.getElementById("elevop").checked){
        	document.getElementById("elev").value =  addZero2(String(elev000));
        	document.getElementById("elev_a").value =  addZero2(String(elev002));
        	document.getElementById("elev_b").value =  addZero2(String(elev001));
		show_elev_image(distcheck,elev000,elev001);
      }
	map.setCenter(new google.maps.LatLng(parseFloat(LatLngy),parseFloat(LatLngx) ) );
	map.setZoom(parseInt(zoom0));

	document.getElementById('ori2').style.display='none';
    }

}

function draw_newkml(){
    pathCoordinates = new google.maps.MVCArray();  
    triaCoordinates = new google.maps.MVCArray();  
    bluepathCoordinates = new google.maps.MVCArray();  

    var newpoint;
    latlngbounds=new google.maps.LatLngBounds();
    var xy100 = "";

    var poly3= null;
    var point3 = new Array();
    var elev002 ="";
    var elev001 ="";
    var elev000 ="";

    xy0=""; 
//  ev0=""; 
    ct0=""; 

    dummy = document.getElementById("in").value ;

    var pointa=dummy.indexOf("<LineString>");
    var pointb=dummy.indexOf("</LineString>");
    var coordinates=dummy.slice(pointa,pointb);
    var pointc=coordinates.indexOf("<coordinates>");
    var pointd=coordinates.indexOf("</coordinates>");
    coordinates=coordinates.slice(pointc+13,pointd);
    coordinates = coordinates.replace(/\r\n/g, "\n");
    if (coordinates.charAt(0) == "\n"){coordinates =coordinates.slice(1);}
    if (coordinates.charAt(coordinates.length-1) == " "){coordinates =coordinates.slice(0,coordinates.length-2);}
    if (coordinates.charAt(coordinates.length-1) == "\n"){coordinates =coordinates.slice(0,coordinates.length-2);}
if (coordinates ==""){
    alert("データがありません");
    }else{

    var pointa1=dummy.indexOf("<jogsiminfo>");
    var pointb1=dummy.indexOf("</jogsiminfo>");
    if (pointa1 == -1){
	var jogsiminfo="";
	}else{
	var jogsiminfo=dummy.slice(pointa1+12,pointb1);
	}

    var pointa2=dummy.indexOf("<visited_place>");
    var pointb2=dummy.indexOf("</visited_place>");
    if (pointa2 == -1){
	visited_place="";
	}else{
	var visited_place=dummy.slice(pointa2+15,pointb2);
	}

    ct0 = visited_place;
coordinates=coordinates.trim();		//ver3.001 add

    linecut2= coordinates.split(" ");
    if(linecut2[linecut2.length-1].trim() ==""){
	linecut2= coordinates.split("\n");
	}else{
    	if(linecut2.length<2){linecut2= coordinates.split("\n");}
	}
    if(linecut2.length<2){alert("Error Format");}

    for (var i=0; i<(linecut2.length); i++) {
	linecut2[i] = linecut2[i].trim();
	if(linecut2[i] !=""){
		cutting=linecut2[i].split(",");
		xy0 += cutting[0]+","+cutting[1]+","+cutting[2]+" ";
		elevation = cutting[2];
	}
    }

    if (jogsiminfo != ""){
    	partcut = jogsiminfo.split(",");

    	zoom0     = partcut[0];
   	LatLngx   = partcut[1];
    	LatLngy   = partcut[2];
    	f1k       = partcut[3];
    	f5k       = partcut[4]; 
    	f1m       = partcut[5];
    	f5m       = partcut[6]; 
    	apri_ver  = parseFloat(partcut[7]);
    	fpg       = parseFloat(partcut[8]); 
    	fev       = parseFloat(partcut[9]); 
    	fcitytown = parseFloat(partcut[10]);
    	}else{
    	var dummy_xy=linecut2[0].split(",");

    	zoom0     = 16;
    	LatLngx   = dummy_xy[0];
    	LatLngy   = dummy_xy[1];
    	f1k       = 0;
    	f5k       = 0; 
    	f1m       = 0;
    	f5m       = 0; 
    	apri_ver  = 0;
    	fpg       = 0; 
    	if(dummy_xy[2] > 0){fev = 1;}else{fev = 0;}
//    fev       = 0;       /////////////////// 
    	fcitytown = 0;
    	}
    if (f1k == "1"){
	document.getElementById("1k").checked=1;
	}else{
	document.getElementById("1k").checked=0;
	}
    if (f5k == "1"){
	document.getElementById("5k").checked=1;
	}else{
	document.getElementById("5k").checked=0;
	}
    if (fpg == "1"){
	document.getElementById("pg").checked=1;
	}else{
	document.getElementById("pg").checked=0;
	}
    if (fev == "1"){
	document.getElementById("elevop").checked=1;
	}else{
	document.getElementById("elevop").checked=0;
	}
    if (fcitytown == "1"){
	document.getElementById("citytown").checked=1;
	}else{
	document.getElementById("citytown").checked=0;
	}

    document.getElementById("elev").value =  "";
    lines = xy0.split(" ");

    if (linecut2.length > 2){
 
	if(blue_flag == 0){
	clearScreen();
	poly = new google.maps.Polyline(polyOptions);
    	poly.setMap(map);
		var path = poly.getPath();
    		Triangle = new google.maps.Polygon(TriangleOptions);
    		if (document.getElementById("pg").checked){
			Triangle.setMap(map);
			}else{
			Triangle.setMap(null);
			}
    		var tria = Triangle.getPath();
		}else{
	clearScreen_blue();
	bluepoly = new google.maps.Polyline(bluepolyOptions);
    	bluepoly.setMap(map);
		var path = bluepoly.getPath();
		}

	xy0 ="";
var    	dist = 0;
      	p = 0;

      	lines.length = lines.length - 1 ;
	for (var i=0; i<(linecut2.length); i++) {
		if(linecut2[i] !=""){
			cutting=linecut2[i].split(",");
			if(blue_flag == 0){
				xy0 += cutting[0]+","+cutting[1]+","+cutting[2]+" ";
				}else{
				xy0_blue += cutting[0]+","+cutting[1]+","+cutting[2]+" ";
				}
			elevation = cutting[2];
		
    		        var lat = cutting[0];
          		var lng = cutting[1];

			newpoint=new google.maps.LatLng(lng,lat);
			latlngbounds.extend(newpoint);
			if(blue_flag == 0){
				path.insertAt(pathCoordinates.length, newpoint);
				tria.insertAt(triaCoordinates.length, newpoint);
				}else{
    				path.insertAt(bluepathCoordinates.length, newpoint);
				}
			if (i==0){var distxx1 = 0;}else{var distxx1 = Gdistance2(path.getAt(1), path.getAt(0));}
//			ev0 += distxx1+","+elevation+"\n";

		        elev0 = elevation;
			distcheck= distxx1;
  			elev002 = elev001;
  			elev001 = elev000;
  			elev000 = elev0;

		        }
      		}
      	k_count = 1;
	if ((document.getElementById("pg").checked)&&(blue_flag == 0)){
		var xys = new Array;
xys=[];

     		for( var i = 0; i < path.getLength(); i++)
			{
			xys.push( getXY1(path.getAt(0).lat(),path.getAt(0).lng(),path.getAt(i).lat(),path.getAt(i).lng() ) );
		   	}
  		document.getElementById("pgarea").value =  addZero3(String(getSquareKilo( xys )));
		}else{
 		document.getElementById("pgarea").value =  "--- ";
		}


      	zan1=0;distx1=0;mae_total1=0;
     	for (var p=(path.getLength() -1); p>0; p--) {
		distx1 = Gdistance2(path.getAt(p), path.getAt(p-1));
		dist +=  distx1;

        	if ((document.getElementById("1k").checked)||(document.getElementById("5k").checked)){
       	     		if ((mae_total1+distx1) < 1000){
   				mae_total1 = mae_total1 + distx1;
				zan1 = 1000 - mae_total1;
	      			}
	      			else{
				zan1 = actFlag(distx1,path.getAt(p),path.getAt(p-1),zan1);
				mae_total1 = 1000 - zan1;
	      			}
   	     		}
          	}
        document.getElementById("distance").value = addZero3(String(dist/1000));
     }

    if(blue_flag == 0){
    	total_dist=dist;
    	mae_total=mae_total1;
    	zan=zan1;
	}else{
    	total_dist_blue=dist;
    	mae_total_blue=mae_total1;
    	zan_blue=zan1;
	}


	
    if (document.getElementById("elevop").checked){
	document.getElementById("elev").value =  addZero2(String(elev000));
        document.getElementById("elev_a").value =  addZero2(String(elev002));
        document.getElementById("elev_b").value =  addZero2(String(elev001));
	show_elev_image(distcheck,elev000,elev001);
        }
    map.setCenter(new google.maps.LatLng(parseFloat(LatLngy),parseFloat(LatLngx) ) );
    map.setZoom(parseInt(zoom0));
    document.getElementById('ori2').style.display='none';
    }
}

function header_kml()
{
	kml_header1 ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<kml xmlns=\"http://earth.google.com/kml/2.1\"><Document><name>Jogging Simulator</name><open>1</open><Style id=\"linestylered\"><LineStyle><color>7f0000ff</color><width>4</width></LineStyle></Style><Placemark>\n<name>";
	kml_header2 ="</name>\n<styleUrl>#linestylered</styleUrl><LineString><extrude>1</extrude><tessellate>1</tessellate>\n<coordinates>\n";

	kml_footer1 = "</coordinates></LineString></Placemark>\n<visited_place>\n";
	kml_footer2 = "</visited_place>\n<jogsiminfo>\n";
	kml_footer3 = "\n</jogsiminfo>\n</Document></kml>";

  	to_day();
	kml_date =runday;
	version_kml = "3.0";
	LatLngObj0 = map.getCenter();
	init0_zoom = map.getZoom();
	if (document.getElementById("1k").checked){flag_1k="1";}else{flag_1k="0";}
	if (document.getElementById("5k").checked){flag_5k="1";}else{flag_5k="0";}
	if (document.getElementById("pg").checked){flag_pg="1";}else{flag_pg="0";}
	if (document.getElementById("elevop").checked){flag_ev="1";}else{flag_ev="0";}
	if (document.getElementById("citytown").checked){flag_citytown="1";}else{flag_citytown="0";}
	flag_1m="0";//Japanese Version
	flag_5m="0";//Japanese Version

	kml_jogsiminfo=String(init0_zoom)+","+String(LatLngObj0.lng()) +","+String(LatLngObj0.lat())+","+flag_1k+","+flag_5k+","+flag_1m+","+flag_5m+","+version_kml+","+flag_pg+","+flag_ev+","+flag_citytown;

	kml_top= kml_header1+kml_date+kml_header2;
	kml_bottom = kml_footer1+ct0+kml_footer2+kml_jogsiminfo+kml_footer3;
}

function undoMapXY()
{
if (document.getElementById("redline").checked){  //red line
    lines = xy0.split(" ");
    }else{
    lines = xy0_blue.split(" ");
    }
if (lines.length > 2){
    var newpoint;
    var poly2= null;
    var point2 = new Array();
    var elev000="";
    var elev001="";
    var elev002="";
    if (document.getElementById("redline").checked){  //red line
	clearScreen();
	pathCoordinates = new google.maps.MVCArray();  
	triaCoordinates = new google.maps.MVCArray();  
	lines = xy0.split(" ");
//	lines_ev = ev0.split("\n");
	lines_ct = ct0.split("\n");
    	poly = new google.maps.Polyline(polyOptions);
    	poly.setMap(map);
    	var path = poly.getPath();

    	Triangle = new google.maps.Polygon(TriangleOptions);
    	if (document.getElementById("pg").checked){
		Triangle.setMap(map);
		}else{
		Triangle.setMap(null);
		}
    	var tria = Triangle.getPath();

	xy0 = "";
	if ((document.getElementById("citytown").checked)&&(lines_ct !="")){
		lines_ct.length = lines_ct.length - 2 ;
		for (var i=0; i<lines_ct.length; i++) {// Undo
			if (lines_ct[i].length > 1) {
				ct0 += lines_ct[i] +"\n";
			}
		}
	}
	if (document.getElementById("pg").checked){//ここ手をつけてないよ
		var xys = new Array;
		xys=[];
		for( var i = 0; i < (path.getLength() ); i++){
			xys.push( getXY1(path.getAt(0).lat(),path.getAt(0).lng(),path.getAt(i).lat(),path.getAt(i).lng() ) );
		}
		document.getElementById("pgarea").value =  addZero3(String(getSquareKilo( xys )));
		}else{
 			document.getElementById("pgarea").value =  "--- ";
		}

    }else{	//blue line
	clearScreen_blue();
	bluepathCoordinates = new google.maps.MVCArray();  
	lines = xy0_blue.split(" ");
    	bluepoly = new google.maps.Polyline(bluepolyOptions);
    	bluepoly.setMap(map);
    	var path = bluepoly.getPath();

	xy0_blue = "";
    }
    var  dist = 0;
    var  dist_blue = 0;
    p = 0;

    lines.length = lines.length - 2 ;
    for (var i=0; i<lines.length; i++) {// Undo

	if (lines[i].length > 1) {

		parts = lines[i].split(",");
		var lat = parseFloat(parts[0]);
		var lng = parseFloat(parts[1]);

		newpoint=new google.maps.LatLng(lng,lat);
		path.insertAt(pathCoordinates.length, newpoint);
		if (document.getElementById("redline").checked){  //red line
			tria.insertAt(triaCoordinates.length, newpoint);
			xy0 += String(parseFloat(parts[0]))+","+String(parseFloat(parts[1])) +","+String(parseFloat(parts[2])) +" ";
//			parts_ev = lines_ev[i].split(",");
//			var distsum = parseFloat(parts_ev[0]);
			var elev0 = parseFloat(parts[2]);
			elev002 = elev001;
			elev001 = elev000;
			elev000 = elev0;

//			ev0 += String(distsum) + "," + String(elev0) + "\n";
			}else{
			xy0_blue += String(parseFloat(parts[0]))+","+String(parseFloat(parts[1])) +" ";
			}
		}
	}
	if (i<2){var distxx1 = 0;}else{var distxx1 = Gdistance2(path.getAt(1), path.getAt(0));}


//??
    k_count = 1;
//??
    if (document.getElementById("elevop").checked){
	document.getElementById("elev").value =  addZero2(String(elev000));
	document.getElementById("elev_a").value =  addZero2(String(elev002));
	document.getElementById("elev_b").value =  addZero2(String(elev001));
	show_elev_image(distxx1,elev000,elev001);
	}



    if (document.getElementById("redline").checked){  //red line

	zan1=0;distx1=0;mae_total1=0;

     	for (var p=(path.getLength() -1); p>0; p--) {
		distx1 = Gdistance2(path.getAt(p), path.getAt(p-1));
		dist +=  distx1;
		if ((document.getElementById("1k").checked)||(document.getElementById("5k").checked)){

			if ((mae_total1+distx1) < 1000){
				mae_total1 = mae_total1 + distx1;
				zan1 = 1000 - mae_total1;
				}
				else{
				zan1 = actFlag(distx1,path.getAt(p),path.getAt(p-1),zan1);
				mae_total1 = 1000 - zan1;
				}
			}
		}
	total_dist=dist;
	mae_total=mae_total1;
	zan=zan1;
	document.getElementById("distance").value = addZero3(String(total_dist/1000));

	}else{

		zan1_blue=0;distx1_blue=0;mae_total1_blue=0;

     		for (var p=(path.getLength() -1); p>0; p--) {
			distx1_blue = Gdistance2(path.getAt(p), path.getAt(p-1));
			dist_blue +=  distx1_blue;
			if ((document.getElementById("1k").checked)||(document.getElementById("5k").checked)){
				if ((mae_total1_blue+distx1_blue) < 1000){
					mae_total1_blue = mae_total1_blue + distx1_blue;
					zan1_blue = 1000 - mae_total1_blue;
					}
				else{
					zan1_blue = actFlag(distx1_blue,path.getAt(p),path.getAt(p-1),zan1_blue);
					mae_total1_blue = 1000 - zan1_blue;
				}
			}
		}
		total_dist_blue=dist_blue;
		mae_total_blue=mae_total1_blue;
		zan_blue=zan1_blue;
		document.getElementById("distance").value = addZero3(String(total_dist_blue/1000));

	}

    }
}

function actFlag_image(dist00,from_points,to_points,zan0) 
{
	var xxx=from_points.lat();
	var yyy=from_points.lng();
	var marker_flag = 0;

	if (zan0 > 0){mae= 1000-zan0;}else{mae = 0;}
	var num = parseInt((dist00+mae)/1000);

	if(marker_count >=20){marker_flag = 1;}


	while(( num > 0 ) ){
		if (zan0 == 0){
			var x=parseFloat(xxx)+(parseFloat(to_points.lat())-parseFloat(xxx))/dist00*1000;
			var y=parseFloat(yyy)+(parseFloat(to_points.lng())-parseFloat(yyy))/dist00*1000;
			dist00 = dist00 - 1000;
                 	}
		else{
			var x=parseFloat(xxx)+(parseFloat(to_points.lat())-parseFloat(xxx))*zan0/dist00;
			var y=parseFloat(yyy)+(parseFloat(to_points.lng())-parseFloat(yyy))*zan0/dist00;
			dist00 = dist00 - zan0;
			zan0 = 0;
		}
	x=parseInt(x*keta)/keta;  //1000...60mくらい誤差
	y=parseInt(y*keta)/keta;

		if ((k_count % 5) == 0){
			if(document.getElementById("5k").checked){
				map_marker_mark = map_marker_mark + x + "," + y + ",smallblue|";
			}else{
			if(marker_flag == 0){
				map_marker_mark = map_marker_mark + x + "," + y + ",smallred|";
 	    			}
			}
		}else{
        	if((document.getElementById("1k").checked)&&(marker_flag == 0)){
			map_marker_mark = map_marker_mark + x + "," + y + ",smallred|";
            		}
		}

        	if((document.getElementById("1k").checked)&&(marker_flag == 1)){
			if ((k_count % 5) == 0){
				map_marker_mark = map_marker_mark + x + "," + y + ",smallblue|";
				}
			}

	k_count ++ ;
	xxx=x;
	yyy=y;

	num -- ;
	}
	return (1000-dist00);
}

function actFlag(dist00,from_points,to_points,zan0) 
{
	var xxx=from_points.lat();
	var yyy=from_points.lng();
	if (zan0 > 0){mae= 1000-zan0;}else{mae = 0;}
	var num = parseInt((dist00+mae)/1000);

	while( num > 0 ) {
		if (zan0 == 0){
			xxx=parseFloat(xxx)+(parseFloat(to_points.lat())-parseFloat(xxx))/dist00*1000;
			yyy=parseFloat(yyy)+(parseFloat(to_points.lng())-parseFloat(yyy))/dist00*1000;
			dist00 = dist00 - 1000;
                 	}
		else{
			xxx=parseFloat(xxx)+(parseFloat(to_points.lat())-parseFloat(xxx))*zan0/dist00;
			yyy=parseFloat(yyy)+(parseFloat(to_points.lng())-parseFloat(yyy))*zan0/dist00;
			dist00 = dist00 - zan0;
			zan0 = 0;
		}
		var point99 = new google.maps.LatLng(xxx,yyy);    //new GLatLng(yyy,xxx);


if ((document.getElementById("redline").checked)&&( blue_flag == 0)){  //red line
		redMarker = new google.maps.Marker({
       			position: point99,
       			map: map,
       			icon: icon1image,
       			shadow: shadow    });
		redMarke_list.push(redMarker);
		if(!document.getElementById("1k").checked){redMarker.setMap(null);}
}else{
		redMarker_blueline = new google.maps.Marker({
       			position: point99,
       			map: map,
       			icon: icon1image,
       			shadow: shadow    });
		redMarke_list_blueline.push(redMarker_blueline);
		if(!document.getElementById("1k").checked){redMarker_blueline.setMap(null);}
}

		if (((k_count % 5) == 0)&&(document.getElementById("redline").checked)&&( blue_flag == 0)){
			blueMarker = new google.maps.Marker({
        			position: point99,
        			map: map,
        			icon: icon2image,
        			shadow: shadow    });
    			blueMarke_list.push(blueMarker);
    			if(!document.getElementById("5k").checked){blueMarker.setMap(null);}
			}

		if (((k_count_blue % 5) == 0)&&(!document.getElementById("redline").checked)){
			blueMarker_blueline = new google.maps.Marker({
        			position: point99,
        			map: map,
        			icon: icon2image,
        			shadow: shadow    });
    			blueMarke_list_blueline.push(blueMarker_blueline);
    			if(!document.getElementById("5k").checked){blueMarker_blueline.setMap(null);}
			}

		if (((k_count_blue % 5) == 0)&&(blue_flag == 1)){
			blueMarker_blueline = new google.maps.Marker({
        			position: point99,
        			map: map,
        			icon: icon2image,
        			shadow: shadow    });
    			blueMarke_list_blueline.push(blueMarker_blueline);
    			if(!document.getElementById("5k").checked){blueMarker_blueline.setMap(null);}
			}


if ((document.getElementById("redline").checked)&&(blue_flag ==0)){  //red line
	k_count ++ ;
	}else{
	k_count_blue ++ ;
}


	num -- ;
	}

	return (1000-dist00);

}
function calc_check_jogsim()
{
	check = true;
	m = document.getElementById("weight").value;  //m...weight(kg)
	d = total_dist/1000; //d...Km
	d =d * parseFloat(document.getElementById("kai").value);

        str=m; 
        if (str.match(/[^0-9\.]/g)){
            alert ("体重に数値以外が含まれています\n（数値は半角で入力してください）");
            check=false;
        }
        str=document.getElementById("kai").value; 
        if (str.match(/[^0-9]/g)){
            alert ("周回回数に数値以外が含まれています\n（数値は半角で入力してください）");
            check=false;
        }
        str=document.getElementById("hour").value; 
        if (str.match(/[^0-9]/g)){
            alert ("ランニング時間「時間」に数値以外が含まれています\n（数値は半角で入力してください）");
            check=false;
        }
        str=document.getElementById("min").value; 
        if (str.match(/[^0-9]/g)){
            alert ("ランニング時間「分」に数値以外が含まれています\n（数値は半角で入力してください）");
            check=false;
        }
        str=document.getElementById("sec").value; 
        if (str.match(/[^0-9\.]/g)){
            alert ("ランニング時間「秒」に数値以外が含まれています\n（数値は半角で入力してください）");
            check=false;
        }

	sq=document.getElementById("pgarea").value;
	sq =sq * parseFloat(document.getElementById("kai").value);

	if (document.getElementById("hour").value  == ""){document.getElementById("hour").value=0;}
	if (document.getElementById("min").value  == ""){document.getElementById("min").value=0;}
	if (document.getElementById("sec").value  == ""){document.getElementById("sec").value=0;}
	z = parseFloat(document.getElementById("hour").value*60) + parseFloat(document.getElementById("min").value) + parseFloat(document.getElementById("sec").value)/60 ; //z..time(min)

	if (d == "") { d = 0; } 
	if (m == "") { m = 0; } 
	if (z == "") { z = 0; } 

	if(d<0){
		alert("走行距離が０ｋｍ以上じゃないと計算できません。");
        	check=false;
	}
	if(m<0){
		alert("体重は０ｋｇ以上を入力しましょう。");
        	check=false;
	}
	if(z<0){
		alert("走行時間はゼロ以上を入れてください。");
        	check=false;
	}
	if (total_dist_blue>0){
		if(window.confirm("青い線の距離は計算には含まれません")){check=true;}else{check=false;}
	}

	if (check==true) { calc(); }

}

function calc_town(){
	calc_check_jogsim();

	if (document.getElementById("citytown").checked){
		citytown_calc();
	        document.getElementById("towninfo").innerHTML ="";
	}else{
		document.f.prefcount.value ="--- ";
		document.f.citycount.value ="--- ";
		document.f.towncount.value ="--- ";
	        document.getElementById("towninfo").innerHTML ="<span class=\"head\">通過地区データがありません。<br />今どこ？の前のチェックマークをチェックすると計算されます</span><br>";
	}


}
function calc()
{
	y=0 ;
	ave_angle=0;

	if (z != 0){
	y=d/z*60;          //y...v(km/h)
	}

	y0=y+y*parseFloat(ave_angle)*9/200;	//y0...角度を考慮した時速(平均斜度を勘案。下り時も計算）

	if (document.getElementById("byc").checked){
		if (y0 <= 11){mets = 3;}
		else if (y0 < 14.5){mets = 4;}
		else if (y0 < 17.5){mets = 5;}
		else if (y0 < 19.5){mets = 6;}
		else if (y0 < 22.5){mets = 7;}
		else if (y0 < 25.5){mets = 8;}
		else if (y0 < 28.5){mets = 9;}
		else{mets = 10;}
		cal=mets*m*z/60 ;
	}
	else{
		cal=(y0*1000/60+17.5)*z*m/1000 ;
		if ((m != 0)&&(z != 0)){mets=cal/m/z*60;}else{mets=0;}
	}

	fat=cal/7/2;
	kj=4.184*cal;
	kw=kj/3600;
	stb=60*kw;
	dnk=kw*10;
	rice=cal/252;
	beer=cal/203;
	shop=cal/2.5;
	clean=cal/3.8;

	if(y == 0){
		s100=0;
		m1k=0;
		s1k=0;
		m10k=0;
		s10k=0;
		m21k=0;
		m42k=0;
	}else{
		s100=360/y;  		//100m for sec
		m1k=Math.floor(s100*10/60);
		s1k=((s100*10)-m1k*60);    //1K for min
		m10k=Math.floor(600/y);
		s10k=((600/y)-m10k)*60; //10K for min
		m21k=21.095*60/y;	//Half for min
		m42k=42.195*60/y;	//Full for min
	}

	m42k_sec=42.195*60*60/y;
	arakawaload();
	nycload();
	nycload2009();

	m21kh=Math.floor(m21k/60);
	m21km=Math.floor(m21k-m21kh*60);
	m21ks=((m21k-m21kh*60)-m21km)*60;

	m42kh=Math.floor(m42k/60);
	m42km=Math.floor(m42k-m42kh*60);
	m42ks=((m42k-m42kh*60)-m42km)*60;

	co2=d*165;//(g)
	co2_l=co2/1000*255;

	taxi1=0;
	if (d<=2){taxi1=710;}
		else{taxi1=710+Math.floor((d-2)/0.288)*90;}
	taxi2=Math.floor(taxi1*1.2/10+0.5)*10;

	if (document.getElementById("pg").checked){
		document.f.sq.value=Math.round(parseFloat(sq)*10)/10;
		document.f.sq1.value=Math.round(parseFloat(sq)*1000/670.33)/1000;
		document.f.sq2.value=Math.round(parseFloat(sq)*100/1.42)/100;
	}else{
		document.f.sq.value="--- ";
		document.f.sq1.value="--- ";
		document.f.sq2.value="--- ";
	}

	document.f.d.value=Math.round(d*10)/10;
	document.f.d1.value=Math.round(d*100/8.84)/100;
	document.f.d2.value=Math.round(d*10/0.34)/10;

	document.f.y.value=Math.round(y*10)/10;
	document.f.cal.value=Math.round(cal*10)/10;
	document.f.fat.value=Math.round(fat*10)/10;
	document.f.mets.value=Math.round(mets*10)/10;
	document.f.kw.value=Math.round(kw*10)/10;
	document.f.stb.value=Math.round(stb*10)/10;
	document.f.dnk.value=Math.round(dnk*10)/10;
	document.f.rice.value=Math.round(rice*10)/10;
	document.f.beer.value=Math.round(beer*10)/10;
	document.f.shop.value=Math.round(shop*10)/10;
	document.f.clean.value=Math.round(clean*10)/10;

	document.f.co2.value=Math.round(co2*10)/10;
	document.f.co2_l.value=Math.round(co2_l*10)/10;
	document.f.taxi1.value=Math.round(taxi1*10)/10;
	document.f.taxi2.value=Math.round(taxi2*10)/10;

	document.f.s100.value=Math.round(s100*10)/10;
	document.f.m1k.value=m1k;
	document.f.s1k.value=Math.round(s1k*10)/10;
	document.f.m10k.value=m10k;
	document.f.s10k.value=Math.round(s10k*10)/10;
	document.f.m21kh.value=m21kh;
	document.f.m21km.value=m21km;
	document.f.m21ks.value=Math.round(m21ks*10)/10;
	document.f.m42kh.value=m42kh;
	document.f.m42km.value=m42km;
	document.f.m42ks.value=Math.round(m42ks*10)/10;

	document.f.ara2006x.value=rank;
	document.f.ara2006n.value=lastrunner;
	document.f.nyc2006x.value=rank_nyc;
	document.f.nyc2006n.value=lastrunner_nyc;
	document.f.nyc2009x.value=rank_nyc2009;
	document.f.nyc2009n.value=lastrunner_nyc2009;
	

	if((m>0)&&(document.getElementById("byc").checked==false)){
		document.f.chari_min.value=Math.round(60*cal/4/m);// mets=4 16.1km/h
		document.f.chari_dist.value=Math.round(document.f.chari_min.value*16.1/60*10)/10;
		}else{
		document.f.chari_min.value="--- ";
		document.f.chari_dist.value="--- ";
		}


	if (document.getElementById("weightsave").checked){
		init_weight = document.getElementById("weight").value;
		setCookie("init_weight", init_weight);
		}

	speed = y;
	speed_show();
	fat_show();

	var twitter_hour,twitter_cal,twitter_tail,twitter_credit;
	var tailarray = new Array("です。", "だす。", "なのだ。", "で候。", "ってことで。");
	var randnum = Math.floor( Math.random() * tailarray.length ); 

	if (document.getElementById("hour").value==0){
		twitter_hour = "";
		}else{
		twitter_hour = document.getElementById("hour").value+"時間";
		}

	if (document.f.cal.value==0){
		twitter_cal = "おつかれｗ";
		}else{
		twitter_cal = document.f.cal.value+"カロリー消費。それってご飯"+document.f.rice.value+"分。中ナマ"+document.f.beer.value+"杯分ｗ";
		}

	twitter_tail=tailarray[randnum];
//	twitter_credit=" #jogsim http://42.195km.net/";

	twitter_com="今日もランコース開拓！"+document.f.d.value+"kmを"+twitter_hour+document.getElementById("min").value+"分で！"+twitter_cal+twitter_tail;


//speaker check//
	if(document.getElementById("speak").checked){readOut();}

}

function fat_show()
{
  if (init_fit =="1"){fit_max=200;}else{fit_max=100;}
  var chart = new EJSC.Chart(
    "fatChart" ,
    {
      show_titlebar: false ,
      axis_bottom: { visible: false },
      axis_left: { visible: false },
      show_legend: false,
      show_messages: false
    }
  );
  
  chart.addSeries(
    new EJSC.AnalogGaugeSeries(
      new EJSC.ArrayDataHandler(
        [ [fat,''] ]
      ) ,
      {
        axis: {
          color          : 'rgb(180,190,255)' ,
          innerBorderColor    : 'rgb(0,0,0)' ,
          innerBorderOpacity    : 0 ,
          innerBorderWidth    : 1 ,
          innerBorderVisible    : false ,
          opacity          : 100 ,
          outerBorderColor    : 'rgb(0,0,150)' ,
          outerBorderOpacity    : 100 ,
          outerBorderWidth    : 2 ,
          outerBorderVisible    : true ,
          thickness        : 10
        },
	min:0,
	max:fit_max,
        tickCount: 5 ,
        label: {
          className        : 'blueLabel' ,
          textAlign        : 'center' ,
          position        : 'centerLeft' ,
          lines          : 1
        }
      }
    )
  );

}
function speed_show()
{
  var chart = new EJSC.Chart(
    "speedChart" ,
    {
      show_titlebar: false ,
      axis_bottom: { visible: false },
      axis_left: { visible: false },
      show_legend: false,
      show_messages: false
    }
  );
  
  chart.addSeries(
    new EJSC.AnalogGaugeSeries(
      new EJSC.ArrayDataHandler(
        [ [speed,''] ]
      ) ,
      {
            range: {
        borderColor : 'rgb(0,0,0)',
        borderOpacity : 50,
        borderWidth : 1,
        offset : 0,
        opacity : 50,
        style : 'pie',
        thickness: 1
      } ,      
      ranges: [ 
        [ 16 , 18 , 'rgb(255,255,0)' ] ,
        [ 18 , 20 , 'rgb(255,0,0)' ] 
      ],
        axis: {
          color          : 'rgb(180,190,255)' ,
          innerBorderColor    : 'rgb(0,0,0)' ,
          innerBorderOpacity    : 0 ,
          innerBorderWidth    : 1 ,
          innerBorderVisible    : false ,
          opacity          : 100 ,
          outerBorderColor    : 'rgb(0,0,150)' ,
          outerBorderOpacity    : 100 ,
          outerBorderWidth    : 2 ,
          outerBorderVisible    : true ,
          thickness        : 5
        },
	min:0,
	max:20,
        tickCount: 5 ,
        label: {
          className        : 'blueLabel' ,
          textAlign        : 'center' ,
          position        : 'centerLeft' ,
          lines          : 1
        }
      }
    )
  );

}
function setCoo()
{
	LatLngObj = map.getCenter();
	init_zoom = map.getZoom();
	if (document.getElementById("center").checked){init_center=1;}else{init_center=0;}
	if(window.confirm('ここを座標１のデータとして保存します。\nよろしいですか？')){
	setCookie("init_x", LatLngObj.lng());
	setCookie("init_y", LatLngObj.lat());
	setCookie("init_zoom", init_zoom);
	setCookie("init_center", init_center);
	window.alert("座標１に保存しました\n（この座標は本サイトを開いた時の中心になります）"); 
	}

}
function setCoo2()
{
	LatLngObj = map.getCenter();
	init_zoom = map.getZoom();
	if (document.getElementById("center").checked){init_center=1;}else{init_center=0;}
	if(window.confirm('ここを座標２のデータとして保存します。\nよろしいですか？')){
	setCookie("init_x2", LatLngObj.lng());
	setCookie("init_y2", LatLngObj.lat());
	setCookie("init_zoom2", init_zoom);
	setCookie("init_center", init_center);
	window.alert("座標２に保存しました"); 
	}
}
function goto_a()
{
	init_a_load();
	map.setCenter(new google.maps.LatLng(init_y, init_x));
	map.setZoom(parseInt(init_zoom));
}
function goto_b()
{
	init_b_load();
	map.setCenter(new google.maps.LatLng(init_y, init_x));
	map.setZoom(parseInt(init_zoom));

}
function init_load()
{
	init_weight = getCookie("init_weight");
	if ((init_weight == 0)||(init_weight == "")){document.getElementById("weight").value="";}
		else{document.getElementById("weight").value=init_weight;
		document.getElementById("weightsave").checked=1;
		}
	init_center = getCookie("init_center");
	if (init_center == 1){document.getElementById("center").checked=1;}
		else{document.getElementById("center").checked=0;}
	init_height = getCookie("init_height");
	if (init_height == 1){
		document.getElementById("elevop").checked=1;
		document.getElementById("heightsave").checked=1;
		}else{
		document.getElementById("elevop").checked=0;
		document.getElementById("heightsave").checked=0;
		}
	init_city = getCookie("init_city");
	if (init_city == 1){
		document.getElementById("citytown").checked=1;
		document.getElementById("citysave").checked=1;
		}else{
		document.getElementById("citytown").checked=0;
		document.getElementById("citysave").checked=0;
		}
	init_fit = getCookie("init_fit");
	if (init_fit == 1){
		document.getElementById("fitsave").checked=1;
		}else{
		document.getElementById("fitsave").checked=0;
		}
	init_speak = getCookie("init_speak");
	if (init_speak == "0"){
		document.getElementById("speak").checked=0;
		}else{
		document.getElementById("speak").checked=1;
		}
	init_speakmansave = getCookie("init_speakmansave");
	if (init_speakmansave == 0){
		document.getElementById("speakmansave").checked=0;
		}else{
		document.getElementById("speakmansave").checked=1;
		}
	init_hint = getCookie("init_hint");
	if (init_hint == 1){
		document.getElementById("hintshow").checked=1;
		}else{
		document.getElementById("hintshow").checked=0;
		}
	hint_num = getCookie("hint_num");

}
function init_a_load()
{
	init_x = getCookie("init_x");
	if (init_x == "") {init_x= 139.74536418914795;}
	init_y = getCookie("init_y");
	if (init_y == "") {init_y= 35.65844693328663;}
	init_zoom = getCookie("init_zoom");
	if (init_zoom == "") {init_zoom= 15;}
	init_center = getCookie("init_center");
}
function init_b_load()
{
	init_x = getCookie("init_x2");
	if (init_x == "") {init_x= 139.74536418914795;}
	init_y = getCookie("init_y2");
	if (init_y == "") {init_y= 35.65844693328663;}
	init_zoom = getCookie("init_zoom2");
	if (init_zoom == "") {init_zoom= 15;}
	init_center = getCookie("init_center");

}
function Gdistance( from , to ) 
{
	var from_x = from.x * Math.PI / 180;
	var from_y = from.y * Math.PI / 180;
	var to_x   = to.x * Math.PI / 180;
	var to_y   = to.y * Math.PI / 180;
	var deg = Math.sin(from_y) * Math.sin(to_y) + Math.cos(from_y) * Math.cos(to_y) * Math.cos(to_x-from_x);
	var dist0 = 6378140 * (Math.atan( -deg / Math.sqrt(-deg * deg + 1)) + Math.PI / 2);

	document.getElementById("elevop").disabled = true;
	return Math.round(dist0);
}
function Gdistance2( from , to ) //v3
{
	var from_x = from.lng() * Math.PI / 180;
	var from_y = from.lat() * Math.PI / 180;
	var to_x   = to.lng() * Math.PI / 180;
	var to_y   = to.lat() * Math.PI / 180;    //lat..y lng..x

	var deg = Math.sin(from_y) * Math.sin(to_y) + Math.cos(from_y) * Math.cos(to_y) * Math.cos(to_x-from_x);
	var dist0 = 6378140 * (Math.atan( -deg / Math.sqrt(-deg * deg + 1)) + Math.PI / 2);

	document.getElementById("elevop").disabled = true;
	return Math.round(dist0);
}

function arakawaload()
{ //2006 Arakawa shimin marathon DATA

	arakawax = new Array(1,3,20,68,174,386,726,1098,1693,2429,3156,3871,4648,5364,6015,6790,7371,7861,8336,8805,9232,9626,9982,10276,10518,10735,10907,11084);
	arakaway = new Array(9368,9615,10208,10812,11415,12001,12600,13201,13800,14401,15003,15600,16200,16800,17400,18000,18600,19200,19800,20400,21000,21600,22206,22800,23408,24008,24601,25204);
	arakawadata=28;

	lastrunner=arakawax[(arakawadata-1)];
	flag_a = 0;

	for (i=0;i<arakawadata;i++){
		if (i != 0){dummy= arakaway[i-1];}
		if (m42k_sec < arakaway[i]){
			rank1 = arakawax[i];
			arakaway = arakaway[i];
			if ((i-1) < 0){
				rank0=0;
				arakaway0 = 0;
				}else{
				rank0     = arakawax[i-1];
				arakaway0=dummy;
			}
			flag_a = 1;
			i=arakawadata+2;
		}
	}

	if (flag_a == 1){
		rank = rank0 + parseFloat( (rank1 - rank0 )*(m42k_sec - arakaway0) / (arakaway - arakaway0 ) );
		rank = Math.ceil(rank);
		}else{
		rank = lastrunner;
	}

}
function nycload()
{ //2006 NYC marathon DATA
	nycx = new Array(1,12,19,31,57,129,218,372,557,890,1150,1351,2022,2602,3257,4201,5169,6211,7353,8732,10276,12169,13584,15142,16652,18209,19806,21454,22909,24390,25789,27173,28423,29591,31210,32608,33839,34750,35480,36023,36736,36678,36953,37148,37347,37486,37613,37717,37792,37825,37846,37854,37859,37866);
	nycy = new Array(7798,8094,8393,8699,9001,9600,9895,10198,10498,10800,11099,11400,11700,12000,12300,12600,12900,13200,13500,13800,14100,14400,14700,15000,15300,15600,15900,16200,16500,16800,17100,17400,17700,18000,18600,19200,19800,20400,21000,21601,22201,22800,23399,24000,24599,25201,26100,27015,27915,28818,29790,30832,32400,35998);
	nycdata=54;

	lastrunner_nyc=nycx[(nycdata-1)];
	flag_a = 0;

	for (i=0;i<nycdata;i++){
		if (i != 0){dummy= nycy[i-1];}
		if (m42k_sec < nycy[i]){
			rank1 = nycx[i];
			nycy = nycy[i];
			if ((i-1) < 0){
				rank0=0;
				nycy0 = 0;
				}else{
				rank0     = nycx[i-1];
				nycy0=dummy;
				}
			flag_a = 1;
			i=nycdata+2;
		}
	}

	if (flag_a == 1){
		rank_nyc = rank0 + parseFloat( (rank1 - rank0 )*(m42k_sec - nycy0) / (nycy - nycy0 ) );
		rank_nyc = Math.ceil(rank_nyc);
		}else{
		rank_nyc = lastrunner_nyc;
		}

}
function nycload2009()
{
//2009 NYC marathon DATA
	nycx = new Array(1,2,3,11,21,33,62,98,152,228,379,615,1012,1379,1860,2429,3222,4123,5265,6523,8017,9316,10127,11722,13724,15324,17232,19315,20220,22212,25012,27504,29611,31415,33213,34703,36807,38419,39613,40818,41620,42712,43019,43207,43411,43511,43555,43570,43586);
	nycy = new Array(7755,7796,7825,8110,8443,8705,9014,9302,9600,9905,10202,10500,10800,11100,11400,11700,12005,12318,12600,12914,13240,13505,13661,13927,14208,14415,14769,15124,15276,15611,16064,16506,16914,17291,17674,18025,18767,19482,20155,21045,21860,23841,24645,25261,26438,27726,28931,29526,32359);
	nycdata=49;

	lastrunner_nyc2009=nycx[(nycdata-1)];
	flag_a = 0;

	for (i=0;i<nycdata;i++){
		if (i != 0){dummy= nycy[i-1];}
		if (m42k_sec < nycy[i]){
			rank1 = nycx[i];
			nycy = nycy[i];
			if ((i-1) < 0){
				rank0=0;
				nycy0 = 0;
				}else{
				rank0     = nycx[i-1];
				nycy0=dummy;
				}
			flag_a = 1;
			i=nycdata+2;
		}
	}

	if (flag_a == 1){
		rank_nyc2009 = rank0 + parseFloat( (rank1 - rank0 )*(m42k_sec - nycy0) / (nycy - nycy0 ) );
		rank_nyc2009 = Math.ceil(rank_nyc2009);
		}else{
		rank_nyc2009 = lastrunner_nyc2009;
		}

}
function red_on()
{
    redMarke_list.forEach(function(redMarker, idx) {
	   redMarker.setMap(map);
    });
}
function red_off()
{
    redMarke_list.forEach(function(redMarker, idx) {
	   redMarker.setMap(null);
//redMarke_list=[];は必要ない？

    });
}
function red_on_blueline()
{
    redMarke_list_blueline.forEach(function(redMarker_blueline, idx) {
	   redMarker_blueline.setMap(map);
    });
}
function red_off_blueline()
{
    redMarke_list_blueline.forEach(function(redMarker_blueline, idx) {
	   redMarker_blueline.setMap(null);
//redMarke_list=[];は必要ない？

    });
}
function blue_on()
{
    blueMarke_list.forEach(function(blueMarker, idx) {
	   blueMarker.setMap(map);
    });
}
function blue_off()
{
    blueMarke_list.forEach(function(blueMarker, idx) {
	   blueMarker.setMap(null);
    });
}
function blue_on_blueline()
{
    blueMarke_list_blueline.forEach(function(blueMarker_blueline, idx) {
	   blueMarker_blueline.setMap(map);
    });
}
function blue_off_blueline()
{
    blueMarke_list_blueline.forEach(function(blueMarker_blueline, idx) {
	   blueMarker_blueline.setMap(null);
    });
}
function Triangle_off()
{
    Triangle_list.forEach(function(Triangle, idx) {
	  Triangle.setMap(null);
    });
}

function clearPoints() 
{
	if(window.confirm('測定データをすべてクリアします。\nよろしいですか？')){ 

//		↓これは？
		points = new Array();

    poly.setMap(null);

    blue_off();
    red_off();

    clearScreen_blue();

latlngbounds=new google.maps.LatLngBounds();

//    whiteMarker.setMap(null);
//beta3で消しましたが・・

pathCoordinates = new google.maps.MVCArray();  
triaCoordinates = new google.maps.MVCArray();  

blueMarke_list = new google.maps.MVCArray(); 
redMarke_list = new google.maps.MVCArray();  
Triangle_list = new google.maps.MVCArray();  


    Triangle.setMap(null);

    poly = new google.maps.Polyline(polyOptions);
    poly.setMap(map);
    bluepoly = new google.maps.Polyline(bluepolyOptions);
    bluepoly.setMap(map);
    Triangle = new google.maps.Polygon(TriangleOptions);
	if (document.getElementById("pg").checked){
		Triangle.setMap(map);
	}else{
		Triangle.setMap(null);
	}

    total_dist=0;
    total_dist_blue=0;
	zan = 0;
	zan_blue = 0 ;
	mae_total = 0;
	mae_total_blue = 0;

		document.getElementById("distance").value = "";
		document.getElementById("out").value = "";
		document.getElementById("in").value = "";
		document.getElementById("elev").value = "";
		document.getElementById("elev_a").value = "";
		document.getElementById("elev_b").value = "";
		document.getElementById("pgarea").value ="";
		document.getElementById("elev_img").src ="./gif/elev00.gif";
		document.getElementById("out_pref").value ="";
		document.getElementById("out_city").value ="";
		document.getElementById("out_town").value ="";
	        document.getElementById("town").innerHTML ="------------------";

		elev_a = "";
		elev_b = "";
		xy0="";
		xy0_blue="";
//		ev0="";
		ct0="";
var 		dist = 0 ;
var 		dist_blue = 0 ;
		k_count = 1;
		k_count_blue = 1;
		xyelev = 0;
		document.getElementById('ori').style.display='none';
		document.getElementById('ori2').style.display='none';
		document.getElementById("elevop").disabled = false;

	}
}

function closeDataWin()
{
	document.getElementById('ori').style.display='none';
	document.getElementById('ori2').style.display='none';
	document.getElementById('oriinit').style.display='none';
}

function getCookie(key,  tmp1, tmp2, xx1, xx2, xx3) 
{
	tmp1 = " " + document.cookie + ";";
	xx1 = xx2 = 0;
	len = tmp1.length;
	while (xx1 < len) {
        	xx2 = tmp1.indexOf(";", xx1);
        	tmp2 = tmp1.substring(xx1 + 1, xx2);
        	xx3 = tmp2.indexOf("=");
        	if (tmp2.substring(0, xx3) == key) {
            		return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
        	}
        	xx1 = xx2 + 1;
	}
	return("");
}

function setCookie(key, val, tmp) 
{
	tmp = key + "=" + escape(val) + "; ";
	tmp += "expires=Tue, 31-Dec-2030 23:59:59; ";
	document.cookie = tmp;
}

function clearCookie(key) {
	document.cookie = key + "=" + "xx; expires=Tue, 1-Jan-1980 00:00:00;";
}
function to_day()
{
	dd1 = new Date();
    	year1 = dd1.getYear();
    	if (year1 < 2000) year1 += 1900;
    	mon1 = dd1.getMonth() + 1;
    	date1 = dd1.getDate();
    	runday=year1+"/"+mon1+"/"+date1;
}

function getXY( a, b )
{
	var pi = Math.PI
	var A = 6378137
	var coo = new Object
	coo.phi = ( b.x - a.x ) / 180 * pi
	coo.lambda = ( b.y - a.y ) / 180 * pi

	coo.y = A * coo.phi
	coo.x = A * coo.lambda * Math.cos( a.y / 180 * pi )

	return coo
}
function getXY1( ay, ax , by,bx )
{
	var pi = Math.PI
	var A = 6378137
	var coo = new Object
	coo.phi = ( bx - ax ) / 180 * pi
	coo.lambda = ( by - ay ) / 180 * pi

	coo.y = A * coo.phi
	coo.x = A * coo.lambda * Math.cos( ay / 180 * pi )
	return coo
}

function getSquareKilo( coo )
{
	var max = coo.length - 1
	var s = 0

	for( var i = 0; i <= max; i++)
		{
			var max = coo.length - 1
			var im = ( i == 0 )
				? max
				: i - 1
			var ip = ( i == max )
				? 0
				: i + 1
			
			s += ( coo[im].x - coo[ip].x ) * coo[i].y
		}
	s = Math.abs( s / 2 ) /1000000;
	s= (Math.round(s*1000))/1000;	
	return s
}

function addZero2( x123 )
{
	n = x123;
	if (n.indexOf(".") == -1){n = n + ".00" ;}
	n = n.split(".")[0]+"."+(n.split(".")[1]+"00").substring(0,2);
	return n;
}
function addZero3( x123 )
{
	n = x123;
	if (n.indexOf(".") == -1){n = n + ".000" ;}
	n = n.split(".")[0]+"."+(n.split(".")[1]+"000").substring(0,3);
	return n;
}
function show_elev_image(dist000,elev000,elev001)
{
	if (dist000 != 0){angle = (elev000-elev001)*100/dist000;}
		else{angle = 0;}

	if (angle < -8){document.getElementById("elev_img").src ="./gif/elev4d.gif";}
	else if (angle < -4){document.getElementById("elev_img").src ="./gif/elev3d.gif";}
	else if (angle < -2){document.getElementById("elev_img").src ="./gif/elev2d.gif";}
	else if (angle < -1){document.getElementById("elev_img").src ="./gif/elev1d.gif";}
	else if (angle <  1){document.getElementById("elev_img").src ="./gif/elev00.gif";}
	else if (angle <  2){document.getElementById("elev_img").src ="./gif/elev1u.gif";}
	else if (angle <  4){document.getElementById("elev_img").src ="./gif/elev2u.gif";}
	else if (angle <  8){document.getElementById("elev_img").src ="./gif/elev3u.gif";}
	else {document.getElementById("elev_img").src ="./gif/elev4u.gif";}

}
function setLoading()
{
	flag_ = true;
	loading_.style.display = "block";
}
function unsetLoading(){
	loading_.style.display = "none";
	flag_ = false;
}
function setLoading_town(){
	flag_town = true;
	loading2_.style.display = "block";
}
function unsetLoading_town(){
	loading2_.style.display = "none";
	flag_town = false;
}
function citytown_calc(){
	var preflist="";
	var citylist="";
	var townlist="";

	lines_ct = ct0.split("\n");

	for (var i=0; i<lines_ct.length-1; i++) {
		if((lines_ct[i].match(/\S/g))){ //空白じゃなかったら
			parts_ct = lines_ct[i].split(",");

			if (preflist.indexOf(parts_ct[0]) == -1){preflist += parts_ct[0]+"\n";}
			if ((citylist.indexOf(parts_ct[1]) == -1)&&(parts_ct[1] != "")){citylist += parts_ct[1]+"\n";}
			var serch = parts_ct[1]+parts_ct[2];
			if (townlist.indexOf(serch) == -1){townlist += serch+"\n";}
		}

         }

	prefcount = preflist.split("\n");
	citycount = citylist.split("\n");
	towncount = townlist.split("\n");

	document.f.prefcount.value =prefcount.length-1;
	document.f.citycount.value =citycount.length-1;
	document.f.towncount.value =towncount.length-1;

	document.getElementById("out_pref").value =preflist;
	document.getElementById("out_city").value =citylist;
	document.getElementById("out_town").value =townlist;

}

function transit(){

	lines = xy0.split(" ");

	if (lines.length > 2){
		parts=lines[0].split(",");
		var lat0 = parseFloat(parts[0]);
		var lng0 = parseFloat(parts[1]);
		parts=lines[lines.length-2].split(",");
		var lat1 = parseFloat(parts[0]);
		var lng1 = parseFloat(parts[1]);

		var url="http://www.google.co.jp/transit?saddr=" + lng1 + "%2C" + lat1 + "&daddr=" + lng0 + "%2C" + lat0;
		window.open(url);

	}else{
		window.alert("データが足りません");
	}

}
function clearScreen(){
    poly.setMap(null);
    blue_off();
    red_off();
    Triangle.setMap(null);

pathCoordinates = new google.maps.MVCArray();  
triaCoordinates = new google.maps.MVCArray();  

blueMarke_list = new google.maps.MVCArray(); 
redMarke_list = new google.maps.MVCArray();  
Triangle_list = new google.maps.MVCArray();  

}
function clearPoints_red(){

if(window.confirm('メインデータ（赤）をすべてクリアします。\nよろしいですか？')){ 


    clearScreen();
    poly = new google.maps.Polyline(polyOptions);
    poly.setMap(map);
    Triangle = new google.maps.Polygon(TriangleOptions);
	if (document.getElementById("pg").checked){
		Triangle.setMap(map);
	}else{
		Triangle.setMap(null);
	}
    total_dist=0;
	zan = 0;
	mae_total = 0;
		document.getElementById("distance").value = "";
		document.getElementById("out").value = "";
		document.getElementById("in").value = "";
		document.getElementById("elev").value = "";
		document.getElementById("elev_a").value = "";
		document.getElementById("elev_b").value = "";
		document.getElementById("pgarea").value ="";
		document.getElementById("elev_img").src ="./gif/elev00.gif";
		document.getElementById("out_pref").value ="";
		document.getElementById("out_city").value ="";
		document.getElementById("out_town").value ="";
	        document.getElementById("town").innerHTML ="------------------";

		elev_a = "";
		elev_b = "";
		xy0="";
//		ev0="";
		ct0="";
var		dist = 0 ;
		k_count = 1;
		xyelev = 0;
		document.getElementById('ori').style.display='none';
		document.getElementById('ori2').style.display='none';
		document.getElementById("elevop").disabled = false;
}

}
function clearPoints_blue(){
    if(window.confirm('サブデータ（青）をすべてクリアします。\nよろしいですか？')){ 
	clearScreen_blue();
    	bluepoly = new google.maps.Polyline(bluepolyOptions);
    	bluepoly.setMap(map);
    	total_dist_blue=0;
	zan_blue = 0 ;
	mae_total_blue = 0;
	xy0_blue="";
	dist_blue = 0 ;
	k_count_blue = 1;
    }
}
function clearScreen_blue(){
    bluepoly.setMap(null);
    blue_off_blueline();
    red_off_blueline();

    bluepathCoordinates = new google.maps.MVCArray();  

    blueMarke_list_blueline = new google.maps.MVCArray(); 
    redMarke_list_blueline = new google.maps.MVCArray();  
}

function masa(count) {//上上下下左右左右BA
    switch (count) {
        case 0 : alert('\n\nIf you want to win something, run 100 meters.\nIf you want to experience something, run a marathon.\n\n- Emil Zatopek\n\n\nもし、誰かに勝ちたいだけなら、100ｍを走ればいい。でも何かを経験したいのならば、マラソンを走ること。\n\n－　エミール・ザトペック\n\n\n'); 
        case 1 : alert('\n\nIf you feel bad at 10 miles, you\'re in trouble.\nIf you feel bad at 20 miles, you\'re normal.\nIf you don\'t feel bad at 26 miles, you\'re abnormal.\n\n- Robert de Castella\n\n\nもし10マイル（約16km）地点で気分が悪くなったとしたら、それは問題だ。\n20マイル（約32km）地点で気分が悪くなるのは、普通のこと。\nでも、26マイル（約42km）で気分が悪くないとしたら、それは異常だね。\n\n－　ロバート・デ・キャステラ\n\n\n'); 
        case 2 : alert('\n\nIf you want to become the best runner you can be, start now. Don\'t spend the rest of your life wondering if you can do it.\n\n- Priscilla Welch\n\n\nできる限り素晴らしいランナーになりたいのなら、今すぐに始めること。出来るかどうかと悩むことに、残りの人生を費やさないように。\n\n－　プリシラ・ウェルチ\n\n\n'); 
        case 3 : alert('\n\nそして君は偉い。僕も偉い。\n\n－　まさ\n\n\n'); 
    }
}

function first_initial(){
    document.getElementById("redline").checked=true;
    document.getElementById("style_road").checked=false;
    document.getElementById("style_transit_line").checked=false;
    document.getElementById("style_transit_station").checked=false;
    document.getElementById("style_poibuss").checked=false;
    document.getElementById("style_adnei").checked=false;
    document.getElementById("elev").value = "";
    document.getElementById("elev_a").value = "";
    document.getElementById("elev_b").value = "";

}

//window.alert("check!");

