/*----------------------------------------------------------
ddr2gmap.class.js
THETA NETWORKS Co,.Ltd. (http://www.theta.ne.jp)
Takayuki Miyauchi (info@theta.ne.jp)

ライセンス： PHPライセンス

ver: 0.1

住所からGoogleMapを生成するJavaScriptクラス

例:
var gmap = new addr2gmap();
gmap.display();


使用方法:

1) Google MAP APIを取得する

2) <head>・/head>内等で、Google Ajax Search API及びGoogle MAP APIを読み込む。ｪ

例:
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=aaaa"
		type="text/javascript" charset="UTF-8"></script>
<script src="http://www.google.com/uds/api?file=uds.js&amp;v=1.0&amp;key=aaaa"
		type="text/javascript" charset="UTF-8"></script>

aaaaの部分は１で取得したAPIキーと置き換えること

3) 同じく<head>・/head>等で本スクリプト及びprototype.jsを読み込む。.

例:
<script type="text/javascript" src="js/prototype-1.6.0.2.js" charset="UTF-8"></script>
<script type="text/javascript" src="js/addr2gmap.class.js" charset="UTF-8"></script>

4) 住所が記述してある部分を、任意の要素で囲みid属性にaddrを指定する。

5) Google MAPを配置する要素（DIVなど）を作成し、id属性にgmapを指定する。
   style要素等で幅や高さを指定すること。

6) </body>の直前などに、以下の記述を挿入する

例:
<script type="text/javascript">//<![CDATA[
var gmap = new addr2gmap();
gmap.display();
//]]></script>

以上で、addr内に記述した住所を元に、gmap内にGoogleMapが表示される。
----------------------------------------------------------*/
var addr2gmap = Class.create();

addr2gmap.prototype = {

	addr: 'addr',
	gmap: 'gmap',
	zoom: 14,
	controll: GSmallMapControl,
	maptypeControll: 0,

	initialize: function(){
	},

	display: function(){
		// display google map
		this.gls = new GlocalSearch();
		var _onLocalSearch = this._onLocalSearch.bindAsEventListener(this);
		this.gls.setSearchCompleteCallback(null, _onLocalSearch);
		this.gls.execute( $(this.addr).childNodes[0].nodeValue );
	},

	_onLocalSearch: function(){
		if (this.gls.results.length == 0) return;
		var first = this.gls.results[0];
		this._show_map(first.lat,first.lng);
	},

	_show_map: function(lat, lng){
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById(this.gmap));
			map.setCenter(new GLatLng(lat, lng), this.zoom);
			map.addControl(new this.controll());
			if( this.maptypeControll ){
				map.addControl(new GMapTypeControl());
			}
			var point = new GLatLng(parseFloat(lat),parseFloat(lng));
			map.addOverlay(this._createMarker(point, 0));
		}
	},

	_createMarker: function(point, index){
		var icon = new GIcon();
		var marker = new GMarker(point);
		return marker;
	}

}


