jQuery(document).ready(function(){
	if (jQuery("#map_canvas").get(0)){
		initializeMAP();
		jQuery("#points_gps").css("display", 'none');
		jQuery("#show_gps").click(function (){
			if (jQuery("#points_gps").css('display') == 'block' ){
				jQuery("#points_gps").slideUp(200);
				jQuery("#show_gps").text('Показать координаты GPS');		
			} else {
				jQuery("#points_gps").slideDown(200);
				jQuery("#show_gps").text('Скрыть координаты GPS');		
			
			}
		});
	}	
	
	$('#map_expand').click(function() {
		var canvas	= $('#fullscreen');
		var size	= {
			width:	$(window).width() * 0.80,
			height:	$(window).height() * 0.80
		};
		var pos		= {
			top:	($(window).height() * 0.10) + $(document).scrollTop(),
			left:	$(window).width() * 0.10
		};
		
		$('#overlay').css({
			width:	$(document).width(),
			height:	$(document).height()
		}).fadeIn('normal', function() {
			if ($.browser.msie && $.browser.version < 9)
				$(this).css({ filter: 'alpha(opacity=70)' });
		});
		
		canvas.css({
			width:		size.width,
			height:		size.height,
			top:		pos.top,
			left:		pos.left
		}).fadeIn('fast', function() {
			initializeMAP('fullscreen', 3);
		
			$('#close').show().css({
				top:	$('#fullscreen').offset().top - 20,
				left:	$('#fullscreen').offset().left + $('#fullscreen').width() - $('#close').width()
			});
		});
		
		$('#close, #overlay').click(function() {
			$('#fullscreen, #overlay').fadeOut();
			$('#close').hide();
		});
	});
	
});


function createIcon(){
	var icon = new GIcon();
	icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	return icon;
}
var map;
var allPoints = [];
var gpsOverlays = [];
function initializeMAP(canvas, zoom) {
	if (GBrowserIsCompatible()) {
		map = new GMap(document.getElementById(canvas || "map_canvas") );
	    var mapTypeControl = new GMapTypeControl();
	    var bottomLeft = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(10,10));
	//    map.addControl(mapTypeControl, bottomLeft);

		map.setCenter(new GLatLng(CONFIG.c_lat, CONFIG.c_lng), zoom || CONFIG.c_zoom);
		map.setMapType(CONFIG.settings.map_type);
//		map.removeMapType(G_HYBRID_MAP);
		//map.removeMapType(G_NORMAL_MAP);

		map.addControl(new GLargeMapControl());
		//map.addControl(new GMapTypeControl());
		//map.addControl(new GOverviewMapControl());
		if (CONFIG.settings.show_rule)
			map.addControl(new GScaleControl());
		
		map.enableDoubleClickZoom();
		map.enableScrollWheelZoom();

		/*-----PARSE------*/
		if (CONFIG.settings.show_gps){
			jQuery("#points_gps").append(jQuery(document.createElement('h3')).text('Маркеры:'));
		}
		
		var fist_marker;
		 
		for (var i=0; i<CONFIG.markers.length; i++ ){
			var opts = CONFIG.markers[i];
			var	m_point = new GLatLng(opts.lat, opts.lng);
			var marker = new GMarker(m_point/*, {icon:createIcon()}*/);
			 
			var html = '<div style="text-align: center; font-size: 17px; font-family: Tahoma;">'+opts.descr+'</div>';
			marker.html = html;
			map.addOverlay(marker);
//			 marker.openInfoWindow(document.createTextNode("here is what i want to style"), { maxWidth: 500 });

			//marker.openInfoWindow(document.createTextNode("here is what i want to style"));
		    GEvent.addListener(marker, "click", function() {
		    	//alert (this.html);	
		         
		         //alert(html);
		         this.openInfoWindowHtml(this.html, { width: 200, height: 20 });
		    });
		    if (i==0) first_marker =marker;
		    if (CONFIG.settings.show_gps){
		    	jQuery("#points_gps").append(create_link(opts.lat, opts.lng));
		    }	
		    CONFIG.markers[i].mapInstance = marker;	
						
		}
		if (CONFIG.markers.length){
			//first_marker.openInfoWindowHtml(first_marker.html, { width: 200, height: 20 });
		}
		if (CONFIG.settings.show_gps){
			jQuery("#points_gps").append(jQuery(document.createElement('h3')).text('Границы:'));
		}	
		for (var i=0; i<CONFIG.poly.length; i++ ){
			var cur_poly = CONFIG.poly[i];
			var points = [];
			for (var j=0; j<cur_poly.length; j++ ){
				var point = cur_poly[j];
				points.push(new GLatLng(point.lat, point.lng));
				allPoints.push({lat:point.lat, lng: point.lng});
				if (CONFIG.settings.show_gps){
					jQuery("#points_gps").append(create_link(point.lat, point.lng));
				}	
			}
			if (points.length>0){
				var polygon = new GPolygon(points, "#0000FF", 2, 0.6 , CONFIG.settings.poly_fillcolor, 0.2);
				map.addOverlay(polygon);
			}
		}	
		
		/*for (var i=0; i<allPoints.length; i++ ){
			var point =  allPoints[i];
			map.openInfoWindowHtml(new GLatLng(point.lat, point.lng), 'lat: '+point.lat+'<br />lng: '+point.lng);
		}*/
		
	}
}	
function convertToGPS(deg){
	var gpsdeg = parseInt(deg);
	var remainder = deg - (gpsdeg * 1.0);
	var gpsmin_c = remainder * 60.0;
	var gpsmin = parseInt(gpsmin_c);
	var remainder2 = gpsmin_c - (gpsmin*1.0);
	var gpssec = parseInt(remainder2*60.0); 

	var res = gpsdeg+" "+gpsmin+"' "+gpssec+"''";
	return res;
}

function create_link(lat, lng){
	var point_link = jQuery(document.createElement('a'))
	   .attr('href','javascript:show_gps('+lat+','+lng+')')
	   .text(convertToGPS(lat)+' , '+convertToGPS(lng))
	   .css('display','block');
	return point_link;
}

function show_gps(lat, lng){
	//alert (lat+' '+lng);
	map.openInfoWindowHtml(new GLatLng(lat, lng), 'Широта: '+convertToGPS(lat)+'<br />Долгота: '+convertToGPS(lng));
}
