/*
 * PlaceAdd - all about using map to mark a new place on it and to retrieve it's coordinates 
 */

var PlaceAdd = new Object();

PlaceAdd.showToolbar = function(name,countryId,coords){

	$('.plifr').css({position:'absolute',left:'-9999px',height:'1px'});
	$('.place_add_name').html('<strong>'+name+'</strong>');
	
	if (!coords) {
	
		$('#place_add_toolbar_lat,#place_add_toolbar_lng').val('');
		$('#place_add_default_text').show();
		$('#place_add_flagok_dropped,#place_add_found').hide();
		
		$('#flagok_wrapper').html('<img src="'+gl_addr+'img/flagok.png" id="flagok" style="position:absolute;" />');
		PlaceAdd.makeFlagokDraggable($('#flagok'));
		
	} else {
		
		var Coords = coords.split(',');
		$('#place_add_toolbar_lat').val(Coords[0]);
		$('#place_add_toolbar_lng').val(Coords[1]);
		$('#place_add_found').show();
		$('#place_add_default_text,#place_add_flagok_dropped').hide();
		
		//put flag in Coords
		var icon = new GIcon();
		icon.image = gl_addr+'img/flagok.png';
		icon.iconSize = new GSize(34,48);
		icon.iconAnchor = new GPoint(2,48);
		icon.infoWindowAnchor = new GPoint(14,14);
		
		var coord=new GLatLng(Coords[0],Coords[1]);
		var marker = new GMarker(coord,{icon:icon,draggable:true});
		GEvent.addListener(marker, "dragend", function(latlng) {
		 	PlaceAdd.keepLatLng(latlng);
		});
		
		map.addOverlay(marker);
		
	}
	
	$('#place_add_toolbar').show();
	
	onResize();
	
}

PlaceAdd.hideToolbar = function(){
	
	$('#place_add_toolbar,#place_add_flagok_returned').hide();
	
	$('.plifr').css('position','static');
	
	$('#flagok_wrapper').html('');
	
	try{window.frames[Planetoid.new_ifr].Pl.hideAddPlaceForm()}
	catch(e){alert(e)};
	
}

PlaceAdd.makeFlagokDraggable = function(elem) {

	elem.draggable({
		
		start:function(){
				
		},
		stop:function(){	
			
			$('#place_add_default_text,#place_add_flagok_returned').hide();
			$('#place_add_flagok_dropped').show();
			
			var icon = new GIcon();
			icon.image = gl_addr+'img/flagok.png';
			icon.iconSize = new GSize(34,48);
			icon.iconAnchor = new GPoint(2,48);
			icon.infoWindowAnchor = new GPoint(14,14);
			var top = $(this).position().top+127+$(this).height();
			var left = $(this).position().left+262;
			var pixel = new GPoint(left, top);
			var coord = map.fromContainerPixelToLatLng(pixel);						
			var marker = new GMarker(coord,{icon:icon,draggable:true});
			
			GEvent.addListener(marker, "dragend", function(latlng) {
			 	PlaceAdd.keepLatLng(latlng);
			});
			
			map.addOverlay(marker);
			
			$(this).remove();
			
			PlaceAdd.keepLatLng(coord);				
			
		}
	});
}

PlaceAdd.returnFlagok = function() {
	map.clearOverlays();
	$('#flagok_wrapper').html('<img src="'+gl_addr+'img/flagok.png" id="flagok" style="position:absolute;" />');
	PlaceAdd.makeFlagokDraggable($('#flagok'));
	$('#place_add_flagok_returned').show();
	$('#place_add_flagok_dropped,#place_add_found').hide();
}

PlaceAdd.keepLatLng = function(Coords) {
	$('#place_add_toolbar_lat').val(Coords['y']);
	$('#place_add_toolbar_lng').val(Coords['x']);
}

PlaceAdd.saveNewPlace = function(){
	
	PlaceAdd.hideToolbar();
	
	try{window.frames[Planetoid.new_ifr].Pl.saveNewPlace($('#place_add_toolbar_lat').val(),$('#place_add_toolbar_lng').val())}
	catch(e){};
	
}


/*
 * MapShow - showing points and routes on a map 
 */

var MapShow = new Object();

MapShow.showPlaces = function(Points,title) {
	
	$('.plifr').css({position:'absolute',left:'-9999px'});
	
	if (!title) var title = 'Просмотр карты';
	$('#map_show_title').html(title);
	$('#map_show_toolbar').show();
	
	
	//everything for icon
	var icon = new GIcon();
	icon.image = gl_addr+'img/flagok-small.png';
	icon.iconSize = new GSize(9, 13);
	icon.iconAnchor = new GPoint(0,13);
	icon.infoWindowAnchor = new GPoint(0,13);
	//-------------------	

	var mConditions = new Array(); 
	mConditions['icon']=icon;

	for (x in Points) {
		latlng = new GLatLng(Points[x][0],Points[x][1]);	
		marker = new GMarker(latlng,mConditions);
		map.addOverlay(marker,mConditions);
	}
	
}


MapShow.showRoute = function(RouteMarkers, Roads, Lines, numlines, title) {
	
	$('.plifr').css({position:'absolute',left:'-9999px'});
	
	if (!title) var title = 'Просмотр карты';
	$('#map_show_title').html(title);
	$('#map_show_toolbar').show();
	
	for (x in RouteMarkers) {
		map.addOverlay(RouteMarkers[x]);
	}
	for(var i=1; i<numlines; i++) {
		if (Roads[i]) {
			line=Roads[i].getPolyline();
			if (line) Lines[i]=line;
			Lines[i].opacity=1;
			Lines[i].weight=2;
			Lines[i].color='#229922';
		}
		try {
			Lines[i].show();
			map.addOverlay(Lines[i]);
		} catch(ex) {Planetoid.debug(ex)};
	}
	
}

MapShow.hideMap = function(){
	
	$('#map_show_toolbar').hide();
	$('.plifr').css('position','static');
	map.clearOverlays();
		
}

MapShow.showPhotos = function(Points,Paths,title) {
	$('.plifr').css({position:'absolute',left:'-9999px'});
	
	if (!title) var title = 'Просмотр карты';
	$('#map_show_title').html(title);
	$('#map_show_toolbar').show();
	
	//everything for icon
	var flicon = new GIcon();
	flicon.image = gl_addr+'img/flagok-small.png';
	flicon.iconSize = new GSize(9, 13);
	flicon.iconAnchor = new GPoint(0,13);
	flicon.infoWindowAnchor = new GPoint(0,13);
	//-------------------	
	
	var mConditions = new Array(); 
	
	var numpictures = Paths.length;
	
	for (var i=1; i<=numpictures; i++) {
		//everything for icon
		var icon = new GIcon();
		icon.iconSize = new GSize(50, 50);
		icon.iconAnchor = new GPoint(0,0);
		icon.infoWindowAnchor = new GPoint(0,0);
		//-------------------	
		icon.image = Paths[i];
		mConditions['icon']=icon;
		
		latlng = new GLatLng(Points[i][0],Points[i][1]);	
		marker = new GMarker(latlng,mConditions);
		map.addOverlay(marker,mConditions);
		
		// flicon
		mConditions['icon']=flicon;
		
		latlng = new GLatLng(Points[i][0],Points[i][1]);	
		marker = new GMarker(latlng,mConditions);
		map.addOverlay(marker,mConditions);	
		//---------
	}
	
}