var gsweb = [];
gsweb['wikipedia.org'] = array_lang['714'];
gsweb['google.com'] = array_lang['716'];
if(lang == 'ko') {
	gsweb['naver.com'] = array_lang['718'];
	gsweb['daum.net'] = array_lang['720'];
	gsweb['yahoo.co.kr'] = array_lang['722'];
	gsweb['nate.com'] = array_lang['724'];
	//gsweb['paran.com'] = array_lang['726'];
}
else {
	gsweb['yahoo.com'] = array_lang['722'];
}
//gsweb['live.com'] = 'Live';
//gsweb['travel.yahoo.com'] = 'Yahoo! Travel';
//gsweb['lonelyplanet.com'] = 'Lonely Planet';
var gsimg = [];
gsimg['flickr.com'] = 'Flickr';

var base_icon = null;
var marker_default_icon = '/img/map/gmap/red-dot.png';
var marker_default_icon_width = 32;
var marker_default_icon_height = 32;
var map_icon_array = [];

var icon_option = {width:24,height:22,primaryColor:"#DD1100",label:"A",labelSize:12,labelColor:"#FFFFFF",shape:"roundrect"};
var poly_option = {line_color:'#0000FF',line_width:3,line_opacity:0.7,fill_color:'#0000FF',fill_opacity:0.2};
var poly_connect = {line_color:'#FF0000',line_width:1,line_opacity:1}
var label_option = {color:'#FFFFFF',fill_color:'#6666ff',labelx:1,labely:7};
var label_offset = {markerX:16,markerY:-8,polyX:15,polyY:7};
var symbol_option = {iconx:12,icony:24,fill_color:'#DD1100'};

function set_base_icon() {
	base_icon = new GIcon();
	base_icon.image = marker_default_icon;
	base_icon.iconSize=new GSize(marker_default_icon_width,marker_default_icon_height);
	base_icon.shadowSize=new GSize(56,32);
	base_icon.iconAnchor=new GPoint(16,32);
	base_icon.infoWindowAnchor=new GPoint(16,0);
}
function glatlng(lat,lng) {
	if(lng) {
		return new GLatLng(parseFloat(lat),parseFloat(lng));
	}
	else {
		if(lat.indexOf('|') > -1) {
			var a1 = lat.split('|');
			var a2 = [];
			for(var i=0,len=a1.length; i<len; i++) {
				var p = a1[i].split(',');
				var q = new GLatLng(parseFloat(p[0]),parseFloat(p[1]));
				a2.push(q);
			}
			return a2;
		}
		else {
			return [];
		}
	}
}
/*
function get_map_icon(r) {
	var id = r.icon.replace(/\/\-\.\_/g,'');
	if(map_icon_array[id]) {
		return map_icon_array[id];
	}
	else {
		if(!base_icon) set_base_icon();
		var icon = new GIcon(base_icon,r.icon);
		icon.iconSize = new GSize(r.icon_width,r.icon_height);
		map_icon_array[id] = icon;
		return icon;
	}
}
*/
function get_marker_icon(opt) {
	icon_option.width = opt.width ? opt.width : ((opt.label.length == 1) ? 28 : (opt.label.length*10)+10);
	if(opt.height) icon_option.height = opt.height;
	if(opt.fill_color) icon_option.primaryColor = opt.fill_color;
	if(opt.label) icon_option.label = opt.label;

	if(opt.label_size) {
		icon_option.labelSize = opt.label_size;
	}
	else {
		if(opt.shape == 'circle') {
			if(icon_option.width == '24') icon_option.labelSize = 12;
			if(icon_option.width == '32') icon_option.labelSize = 13;
			if(icon_option.width == '48') icon_option.labelSize = 14;
			if(icon_option.width == '64') icon_option.labelSize = 15;
		}
	}
	if(opt.color) icon_option.labelColor = opt.color;
	if(opt.shape) icon_option.shape = opt.shape;
	var icon = MapIconMaker.createFlatIcon(icon_option);
	icon.iconAnchor = new GPoint(14,32);
	base_icon.infoWindowAnchor=new GPoint(0,57);
	return icon;
}
function get_icon_html(r) {
	var icon = '';
	if(r.type == 'marker' || r.type == 'popupmarker' || r.type == 'labelmarker' || r.type == 'symbol') {
		var img = (r.type == 'symbol') ? overlay_array[r.overlay_id].getIcon().image : r.icon;
		icon = '<img src="'+img+'" width="'+r.icon_width+'" height="'+r.icon_height+'" border="0" alt=""/>';
	}
	else if(r.type == 'polyline' || r.type == 'roadline') {
		icon = '<div id="poly_icon_'+r.overlay_id+'" class="overlay_icon_polyline" style="background-color:'+r.bgc+';"></div>';
	}
	else if(r.type == 'polygon') {
		icon = '<div id="poly_icon_'+r.overlay_id+'" class="overlay_icon_polygon" style="border:1px solid '+r.bgc+';background-color:'+r.bgc+';"></div>';
	}
	else if(r.type == 'circle') {
		var icon_url = "http://chart.apis.google.com/chart?cht=it&chs=24x24&chco="+r.bgc.replace("#", "");
		icon = '<img src="'+icon_url+'" width="24" height="24" border="0" alt="" />';
	}
	else if(r.type == 'rectangle') {
		icon = '<div id="poly_icon_'+r.overlay_id+'" class="overlay_icon_rectangle" style="border:1px solid '+r.bgc+';background-color:#fff;"></div>';
	}
	return icon;
}
function get_marker_offset(r) {
	var fw = parseInt(r.icon_width,10);
	var fh = parseInt(r.icon_height,10);
	var hw = parseInt(fw/2,10);
	var hh = parseInt(fh/2,10);
	var iconx = hw;
	var icony = fh;
	var labelx = hw+2;
	var labely = -((fh-16)/2);
	return {iconx:iconx,icony:icony,labelx:labelx,labely:labely};
}
function get_marker_light_offset(r) {
	var fw = parseInt(r.icon_width,10);
	var fh = parseInt(r.icon_height,10);
	var hw = parseInt(fw/2,10);
	var hh = parseInt(fh/2,10);
	var iconx = -hw;
	var icony = 0;
	var labelx = hw+2;
	var labely = -((fh-16)/2);

	return {iconx:iconx,icony:icony,labelx:labelx,labely:labely};
}
function draw_range_circle(center, radius, km_mile, opt) {
	var circle = null;
	var label = null;
	km_mile = km_mile ? km_mile : 'km';
	opt = opt ? opt : {}
	var label_color = opt.color ? opt.color : '#FFFFFF';
	var line_color = opt.line_color ? opt.line_color : "#CC0000";
	var line_width = opt.line_width ? opt.line_width : 1;
	var line_opacity = opt.line_opacity ? opt.line_opacity : 0.7;
	var fill_color = opt.fill_color ? opt.fill_color : "#CC0000";
	var fill_opacity = opt.fill_opacity ? opt.fill_opacity : 0;

	if(km_mile == 'mile') {
		var d2r = Math.PI/180;
		var r2d = 180/Math.PI;
		var Clat = radius * 0.014483;  // Convert statute miles into degrees latitude
		var Clng = Clat/Math.cos(center.lat()*d2r);
		var Cpoints = [];
		for (var i=0; i < 33; i++) {
			var theta = Math.PI * (i/16);
			Cy = center.lat() + (Clat * Math.sin(theta));
			Cx = center.lng() + (Clng * Math.cos(theta));
			var P = new GLatLng(Cy, Cx);
			Cpoints.push(P);
		}
		//var ll = Cpoints[0]; // North
		var ll = Cpoints[5]; // North East
		//var ll = Cpoints[9]; // East
		label = new ELabel(ll,'<nobr style="font-size:11px;">'+radius+'mile</nobr>',{color:label_color,fill_color:fill_color,line_color:line_color});
	}
	else {
		// http://koti.mbnet.fi/ojalesa/googlepages/circle.htm
		//calculating km/degree
		var latConv = center.distanceFrom(new GLatLng(center.lat()+0.1, center.lng()))/100;
		var lngConv = center.distanceFrom(new GLatLng(center.lat(), center.lng()+0.1))/100;

		//Loop
		var Cpoints = [];
		var step = 10; //parseInt(360/nodes)||10;
		for(var i=0; i<=360; i+=step) {
			var pint = new GLatLng(center.lat() + (radius/latConv * Math.cos(i * Math.PI/180)), center.lng() + (radius/lngConv * Math.sin(i * Math.PI/180)));
			Cpoints.push(pint);
		}
		Cpoints.push(Cpoints[0]); // Closes the circle, thanks Martin
		//var ll = Cpoints[0]; // North
		var ll = Cpoints[5]; // North East
		//var ll = Cpoints[9]; // East
		label = new ELabel(ll,'<nobr style="font-size:11px;">'+radius+'Km</nobr>',{color:label_color,fill_color:fill_color,line_color:line_color});
	}
	//circle = new GPolygon(Cpoints,line_color,line_width,line_opacity,fill_color,fill_opacity);
	circle = new GPolyline(Cpoints,line_color,line_width,line_opacity);
	map.addOverlay(circle);
	map.addOverlay(label);
	GEvent.addListener(circle,'remove',function() {
		map.removeOverlay(label);
	});
	return circle;
}
function elevation2word(meter,feet) {
	var m = (meter && meter != '' && meter != '0.00') ? meter : '';
	var f = (feet && feet != '' && feet != '0.00') ? feet : '';
	m = number_format(m);
	f = float_format(f,2);
	return (m != '' && f != '') ? array_lang['845']+' '+m.replace('.00','')+' meter ('+f.replace('.00','')+' feet)' : '';
}
function poly2length(poly) {
	var km = (poly.getLength() / 1000).toFixed(3);
	var mile = (km * 0.621371192).toFixed(3);

	if(km > 1000.0) km = float_format(km,3);
	if(mile > 1000.0) mile = float_format(mile,3);

	km = km+' Km';
	mile = mile+' mile';

	//return (lang == 'en') ? mile : km;
	return km+' ('+mile+')';
}
function poly2area(poly) {
	var km2 = poly.getArea() / (1000*1000);
	km2 = km2.toFixed(3);

	if(km2 > 1000.0) km2 = float_format(km2,3);
	km2 = km2+' Km<sup>2</sup>';

	return km2;
}
//------------------------------------
// Street View Layer Toggle Checkbox
//------------------------------------
function StreetViewLayerControl(opt) {
	this.opt = opt ? opt : {};
}
StreetViewLayerControl.prototype = new GControl();
StreetViewLayerControl.prototype.initialize = function(map) {
	var me = this;
	me.map = map;
	me.streetviewoverlay = null;

	var container = document.createElement("div");
	var input = document.createElement('input');
	input.type = 'checkbox';
	var label = document.createTextNode(array_lang['962']); // Display Street View Layer

	container.appendChild(input);
	container.appendChild(label);

	GEvent.addDomListener(input, "click", function() {
		if(me.streetviewoverlay) me.map.removeOverlay(me.streetviewoverlay);
		if(this.checked) {
			me.streetviewoverlay = new GStreetviewOverlay();
			me.map.addOverlay(me.streetviewoverlay);
		}
	});
	map.getContainer().appendChild(container);
	return container;
}
StreetViewLayerControl.prototype.getDefaultPosition = function() {
	var x = this.opt.x ? this.opt.x : 10;
	var y = this.opt.y ? this.opt.y : 30;
	return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(x,y));
}