var map_height_small,map_height_full;

function keyPressFilter(evt) {
    var keyCode;
    if (evt) {
        keyCode = evt.keyCode;
    } else {
        keyCode = event.keyCode;
    }
    // ↓[Enter]キーが押されたかどうかの判定
    if (keyCode == 10 || keyCode == 13) {
		return true;
    } else {
		return false;
	}
}

function initZoom(nozoom){
	var gb;
	var first = 1;
	for( var index in gmarkers ){
		var marker = gmarkers[index];
		if( first ){
			gb = new GLatLngBounds( marker.getPoint(), marker.getPoint() );
      		first = 0;
		}else{
			var point = marker.getPoint();
			gb.extend( point );
		}
	}
	if (nozoom) {
		map.setCenter(gb.getCenter());
	} else {
		map.setCenter(gb.getCenter(), map.getBoundsZoomLevel(gb));
	}
}

function add_place_search(){
	var address = $("#new_book_place").get(0).value;
	var geocoder = new GClientGeocoder();
	allPos.length = 0;
	
	geocoder.getLocations( address, function (locations) {
		var i;
		var j;
		if(locations && locations.Placemark && locations.Placemark.length) {
			$("#add_place_search_result").empty();
			for(i = 0; i < locations.Placemark.length && i < 25; i++) {
				allPos.push(new GLatLng(locations.Placemark[i].Point.coordinates[1], locations.Placemark[i].Point.coordinates[0]));
				//console.log(locations.Placemark[0].AddressDetails.Country.CountryNameCode + "/" + locations.Placemark.length);
				
				if (locations.Placemark.length > 1) {
					try {
						$("#add_place_search_result").append('<a href="javascript:void(0);" onClick="move_add_place(' + i + ')">' + locations.Placemark[i].AddressDetails.Country.AddressLine[0] + '</a><br>');
					} catch(e) {
						// エラー処理
					}
				}
			}
				
			if(locations.Placemark.length>0) {
				move_add_place(0);
			}
				
			//document.find_indexs.on_list.innerHTML = on_list_work;
		} else {
			alert("発見できません");
		}
	});
}

function move_add_place(i) {
	map.setCenter(allPos[i]);
	new_marker.setLatLng(allPos[i]);

	var book_place = $("#new_book_place").get(0).value;
	var tmp = $("#add_place_search_result").html();
	var aroundHere = $("#add_book_aroundHere").get(0).checked;
	
	html = ' \
	<div id="add_book" style="width:500px;"> \
	<input type="text" id="new_book_place" value="' + book_place + '" style="width:300px"onKeyPress="if(keyPressFilter(event)) add_place_search();"><a href="javascript:void(0);" onClick="add_place_search();">場所を探す</a> <a href="javascript:void(0);" onClick="add_book();">確定</a>\
	<input type="checkbox" id="add_book_aroundHere" checked>この辺 \
	<div id="add_place_search_result">' + tmp + ' \
	</div> \
	</div>';

	disable_new_marker_infowindowclose_event = '1';
	new_marker.openInfoWindowHtml(html);

	$("#add_book_aroundHere").get(0).checked = aroundHere;
}

function add_book(ean){
	new_marker.disableDragging()
	var aroundHere = $("#add_book_aroundHere").get(0).checked;
	
	html = ' \
	<div id="add_book" style="width:500px;"> \
	<input type="text" id="new_book_title" readonly><a href="javascript:void(0);" onClick="search_book();">本を探す</a> \
	<div id="book_detail" style="display:none;"> \
	<input type="text" id="new_book_ean" readonly> <br />\
	<input type="text" id="new_book_creator" readonly> <br />\
	<input type="text" id="new_book_label" readonly> <br />\
	<input type="text" id="new_book_asin" readonly> <br />\
	<input type="text" id="new_book_PublicationDate" readonly> <br />\
	<input type="text" id="new_book_image" readonly> <br />\
	<input type="text" id="new_book_width" readonly> <br />\
	<input type="text" id="new_book_height" readonly> <br />\
	<input type="text" id="new_book_aroundHere" readonly> <br />\
	</div> \
	<textarea id="new_book_quote">本の舞台を引用</textarea><br /> \
	<input type="text" id="new_book_page">頁 \
	<a href="javascript:void(0);" onClick="write_book();">保存</a> <a href="javascript:void(0);" onClick="add_place_popup(1);">場所を探しなおす</a></div>';


	disable_new_marker_infowindowclose_event = '1';
	new_marker.openInfoWindowHtml(html);

	if (aroundHere == true) {
		$("#new_book_aroundHere").get(0).value = "1";
	} else {
		$("#new_book_aroundHere").get(0).value = "";
	}

	// eanが指定されている場合
	if (ean) {
		var successCallback = function (response)
		{
			var status = response.getElementsByTagName('status')[0].firstChild.nodeValue;
	
			if (status == 'success') {
				itemlist = response.getElementsByTagName('item');
				
				var book_id = itemlist[0].getElementsByTagName('book_id')[0].firstChild.nodeValue;
				var ean = itemlist[0].getElementsByTagName('ean')[0].firstChild.nodeValue;
				var user_id = itemlist[0].getElementsByTagName('user_id')[0].firstChild.nodeValue;
				
				try {
					var title = itemlist[0].getElementsByTagName('title')[0].firstChild.nodeValue;
				} 
				catch (e) {
					var title = "";
				}
				
				try {
					var creator = itemlist[0].getElementsByTagName('creator')[0].firstChild.nodeValue;
				} 
				catch (e) {
					var creator = "";
				}
				
				try {
					var label = itemlist[0].getElementsByTagName('label')[0].firstChild.nodeValue;
				} 
				catch (e) {
					var label = "";
				}

				try {
					var PublicationDate = itemlist[i].getElementsByTagName('PublicationDate')[0].firstChild.nodeValue;
				} catch (e) {
					var PublicationDate = "";
				}
				
				var asin = itemlist[0].getElementsByTagName('asin')[0].firstChild.nodeValue;
				
				try {
					var image = decodeURIComponent(itemlist[0].getElementsByTagName('image')[0].firstChild.nodeValue);
				} 
				catch (e) {
					var image = "";
				}
				
				try {
					var width = itemlist[0].getElementsByTagName('width')[0].firstChild.nodeValue;
				} 
				catch (e) {
					var width = "";
				}
				
				try {
					var height = itemlist[0].getElementsByTagName('height')[0].firstChild.nodeValue;
				} 
				catch (e) {
					var height = "";
				}
				
				document.getElementById("new_book_ean").value = ean;
				document.getElementById("new_book_title").value = title;
				document.getElementById("new_book_creator").value = creator;
				document.getElementById("new_book_label").value = label;
				document.getElementById("new_book_asin").value = asin;
				document.getElementById("new_book_PublicationDate").value = PublicationDate;
				document.getElementById("new_book_image").value = image;
				document.getElementById("new_book_width").value = width;
				document.getElementById("new_book_height").value = height;
			}
			
		};
		var errorCallback = function (xml, status, e)
		{
			//  エラーハンドリングを書く。
			//  xml == XMLHttpRequest
			console.log("本データの読み込みエラー");
		};
		
		//  リクエストを投げる。
		url = "get_book.php";
		$.ajax({
			'type':     "POST",
			'url':      url,
			'data':     {'isbn': ean},
			'success':  successCallback,
			'error':    errorCallback
		});
	}
	
	
	
}

function search_book(){
	var html = ' \
	<div id="search_amazon_header"> \
	<input type="text" id="search_amazon_text" style="width:150px;" onKeyPress="if(keyPressFilter(event)) s_amazon(1);"> <a href="javascript:void(0);" onClick="s_amazon(1);">検索</a> \
	</div> \
	<div id="search_amazon_close"> \
	<a href="javascript:void(0);" onClick="search_amazon_box_close();">close</a> \
	</div> \
	<div id="search_amazon_result"> \
	</div>';

    $("#search_amazon_dialog")
		.append(html)
		.slideDown("slow");	
	$("#dialog-overlay").show();

	
}

function search_amazon_box_close() {
	$("#search_amazon_box").remove();
	$("#search_amazon_result").remove();
	$("#search_amazon_dialog").empty().hide();
	$("#dialog-overlay").hide();
}

function s_amazon(itempage) {
	var search_text = document.getElementById("search_amazon_text").value;

	$("#search_amazon_result").html("検索中・・・");
    //  リクエストを投げる。
	$("#search_amazon_result").load(
		"./amazon.php",{'search_text': search_text, 'itempage': itempage},
		function(responseText, status, response) {
			if (status == 'success') {
				// 成功
			}
		}
	);
}

function amazon_select_book(ean,title,creator,label,asin,PublicationDate,image,width,height) {
	document.getElementById("new_book_ean").value = ean;
	document.getElementById("new_book_title").value = title;
	document.getElementById("new_book_creator").value = creator;
	document.getElementById("new_book_label").value = label;
	document.getElementById("new_book_asin").value = asin;
	document.getElementById("new_book_PublicationDate").value = PublicationDate;
	document.getElementById("new_book_image").value = image;
	document.getElementById("new_book_width").value = width;
	document.getElementById("new_book_height").value = height;

	search_amazon_box_close();
}

function write_book() {
	var successCallback = function (response)
	{
		var staus = response.getElementsByTagName('status')[0].firstChild.nodeValue;
		if (status == "error") {
			alert(response.getElementsByTagName('message')[0].firstChild.nodeValue);
		}
		new_marker.closeInfoWindow();
		plotMarker();

		map.panTo(new_marker.getLatLng());
	};
	var errorCallback = function (xml, status, e)
	{
		//  エラーハンドリングを書く。
		//  xml == XMLHttpRequest
	};

	var url = "./write_book.php";

	var ean = document.getElementById("new_book_ean").value;
	var title = encodeURIComponent(document.getElementById("new_book_title").value);
	var creator = encodeURIComponent(document.getElementById("new_book_creator").value);
	var label = encodeURIComponent(document.getElementById("new_book_label").value);
	var asin = document.getElementById("new_book_asin").value;
	var PublicationDate = document.getElementById("new_book_PublicationDate").value;
	var image = encodeURIComponent(document.getElementById("new_book_image").value);
	var width = document.getElementById("new_book_width").value;
	var height = document.getElementById("new_book_height").value;
	var quote = encodeURIComponent(document.getElementById("new_book_quote").value);
	var page = document.getElementById("new_book_page").value;
	var lat = new_marker.getLatLng().lat();
	var lon = new_marker.getLatLng().lng();
	var around = document.getElementById("new_book_aroundHere").value;
	
	if (!ean || !quote || !page) {
		show_dialog("本が選択されていないか、引用文が入力されていません。");
		return false;
		
	}

	//  リクエストを投げる。
	$.ajax({
		'type':     "POST",
		'url':      url,
		'data':     {'ean': ean, 
					'title': title,
					'creator': creator, 
					'label': label, 
					'asin': asin,
					'PublicationDate': PublicationDate,
					'image': image,
					'width': width,
					'height': height,
					'quote': quote,
					'page': page,
					'lat': lat,
					'lon': lon,
					'around': around},
		'success':  successCallback,
		'error':    errorCallback
	});
}

function show_dialog(msg) {

	dialog_text = ' \
	<div class="dialog-content">' + msg + '</div> \
	<a href="javascript:void(0)" onClick="close_dialog()">close</a> ';

	$("#dialog")
		.append(dialog_text)
		.slideDown("slow")
	$("#dialog-overlay").show();
	
}

function close_dialog() {
	$("#dialog-content").remove();
	$("#dialog").empty().hide();
	$("#dialog-overlay").hide();
	
}
function move_map_page(){
	var address = document.getElementById("search_address").value;

	document.location = "./map.php?address=" + address;

}