var map = null, geocoder = null;
var maptimeout = new Array(), marker = null;
var maxWidth = 200;

var AddrsList = new Array();
var AddrsHtmlList = new Array();
var AddrsPlainList = new Array();
var CoordsList = new Array();


function ShowHtmlByClick(idx){
	var cur_addr = '';
    for ( var i = 1; i < AddrsList.length; i++ ){
    	if ( typeof(AddrsList[i]) == 'undefined' ){
    		continue;
    	}
        if ( i == idx ){
            map.setCenter(AddrsList[i].getPoint(), 7);
            AddrsList[i].setImage('/img/google_marker_yellow.png');
            AddrsList[i].openInfoWindowHtml('<div style="font-size:12px">'+AddrsHtmlList[i]+'</div>', {maxWidth:maxWidth});
        } else{
            AddrsList[i].setImage('/img/google_marker_red.png');
        }
    }
}

function initializeMap() {
	if (google.maps.BrowserIsCompatible()) {
		map = new google.maps.Map2(document.getElementById("map"));
		map.setMapType(G_HYBRID_MAP);
		map.addControl(new google.maps.SmallMapControl());
		map.addControl(new google.maps.MapTypeControl());
	}
}

function ShowAddress(k, addr){
	if ( !map ){
		if (!maptimeout[k]){
			maptimeout[k] = setTimeout("ShowAddress("+k+",'"+addr+"');",1000);
		} else{
			clearTimeout(maptimeout[k]);
			maptimeout[k] = setTimeout("ShowAddress("+k+",'"+addr+"');",1000);
		}
		return;
	}
	
	var point = null;
	if ( CoordsList[k][0] !== 'none' && CoordsList[k][1] !== 'none' ){
		point = new google.maps.LatLng(Number(CoordsList[k][0])/*lat*/, Number(CoordsList[k][1])/*lng*/); 
	}
	
	if ( !point ){
		if ( !geocoder ){
			geocoder = new google.maps.ClientGeocoder();
		} 
		geocoder.getLatLng(
	    	  addr,
	          function(point) {
	            if (!point) {
	           		return;
	            } else {
					var icon_img = new google.maps.Icon();
				
					icon_img.image = '/img/google_marker_red.png';
	
					icon_img.iconAnchor       = new google.maps.Point(6, 20);
					icon_img.infoWindowAnchor = new google.maps.Point(5, 1);
					
					for ( var k = 1; k < AddrsPlainList.length; k++ ){
						if ( AddrsPlainList[k] != addr ){
							continue;
						}
						AddrsList[k] = new google.maps.Marker(point, {icon:icon_img});
						map.setCenter(AddrsList[k].getPoint(), 5);
						map.addOverlay(AddrsList[k]);
						break;
					}
	            }
	          }
	        );
	} else{
		var icon_img = new google.maps.Icon();
		icon_img.image = '/img/google_marker_red.png';
		icon_img.iconAnchor       = new google.maps.Point(6, 20);
		icon_img.infoWindowAnchor = new google.maps.Point(5, 1);
		
		AddrsList[k] = new google.maps.Marker(point, {icon:icon_img});
		map.setCenter(AddrsList[k].getPoint(), 7);
		map.addOverlay(AddrsList[k]);
	}
	
} 		


