var map_location = null;
var map_program = null;
var map_photo = null;

var filter_form_id = 'filter';
var username_input_id = 'username';
var location_input_id = 'location';
var tags_input_id = 'tags';

var icon_location;
var icon_program;

var ready_locations = false;
var ready_programs = false;
var ready_photos = false;

var attendance_wrapper_id = "attendance_wrapper";
var init_lat = '47.50';
var init_lng = '19.05';
var init_zoom = 12;

var debug = false;

icon_location = new GIcon();
icon_location.image = "/static/img/location.png";
icon_location.iconSize = new GSize(22, 21);
icon_location.iconAnchor = new GPoint(2, 19);
icon_location.infoWindowAnchor = new GPoint(2, 19);


icon_program = new GIcon();
icon_program.image = "/static/img/program.png";
icon_program.iconSize = new GSize(22, 21);
icon_program.iconAnchor = new GPoint(2, 19);
icon_program.infoWindowAnchor = new GPoint(2, 19);



function loadLocationsMap() {
    if (GBrowserIsCompatible()) {
    
        map_location = new GMap2(document.getElementById("map_locations"));
        setMapDefaults(map_location);
    }
}

function loadProgramsMap() {
    if (GBrowserIsCompatible()) {
        map_program = new GMap2(document.getElementById("map_programs"));
        setMapDefaults(map_program);
    }
}


function loadPhotosMap() {
    if (GBrowserIsCompatible()) {
        map_photo = new GMap2(document.getElementById("map_photos"));
        setMapDefaults(map_photo);
    }
}


function initCenter(map)
{
	zoom_level = init_zoom;
	var center = new GLatLng(init_lat, init_lng);
	map.setCenter(center, zoom_level);
}


function setMapDefaults(map){
	initCenter(map);
	map.addControl(new GSmallMapControl());
}






function setPhotoUploader(action, user_id)
{
	var data = null;
	if (action == 'add'){data = "add_photo_uploader_id=" + user_id;}
	else if (action == 'remove'){data = "remove_photo_uploader_id=" + user_id;}
	
	if (data)
	{
		$.ajax({
			type: "POST",
			url: "/ajax_response/talalatok/set_user_filter",
			data: data,
			success: function(response){
				//alert(response);
				loadPhotosPage('1', false);
			}
		});
	}
}

function setProgramUploader(action, user_id)
{
	var data = null;
	if (action == 'add'){data = "add_program_uploader_id=" + user_id;}
	else if (action == 'remove'){data = "remove_program_uploader_id=" + user_id;}
	
	if (data)
	{
		$.ajax({
			type: "POST",
			url: "/ajax_response/talalatok/set_user_filter",
			data: data,
			success: function(response){
				//alert(response);
				loadProgramsPage('1', false);
			}
		});
	}
}

function setLocationUploader(action, user_id)
{
	var data = null;
	if (action == 'add'){data = "add_location_uploader_id=" + user_id;}
	else if (action == 'remove'){data = "remove_location_uploader_id=" + user_id;}
	
	if (data)
	{
		$.ajax({
			type: "POST",
			url: "/ajax_response/talalatok/set_user_filter",
			data: data,
			success: function(response){
				//alert(response);
				loadLocationsPage('1', false);
			}
		});
	}
}

/*
function reloadAttendance()
{
	$('#' + attendance_wrapper_id).load(
		'/ajax_response/talalatok/attendance' 
	);
}

*/


function loadLocationsPage(page, load_users){
    loadPage(
        'locations_results',
        '/ajax_response/talalatok/helyszinek', 
        page,
        load_users
    );
}


function loadProgramsPage(page, load_users){
    loadPage(
        'programs_results',
        '/ajax_response/talalatok/programok', 
        page,
        load_users
    );
}


function loadPhotosPage(page, load_users){
    loadPage(
        'photos_results',
        '/ajax_response/talalatok/fotok', 
        page,
        load_users
    );
}



function loadPage(id, url, page, load_users){
	var v = 500;
	
	//var callback = (load_users) ? function(){reloadAttendance();} : function(){};


	 $.ajax({
	 	async: false,
		type: "POST",
		url: url,
		data: "new_page=" + page+ "&active_tab=" + selected_ttview_tab,
		success: function(response){
		 	//alert(response);
			
		 	response = eval("("+response+")");
	    	
		 	if (id == "photos_results")
	    	{
	    		$("#photos_results").empty().append(response.talalatok);
	    		$("#uploaders_photos_wrapper").empty().append(response.feltoltok);
	    		//$.scrollTo("#photo_tab", v);
	    		$.scrollTo("0px", v);
	    	}	
	    	else if (id == "locations_results") 
	    	{
	    		$("#locations_results").empty().append(response.talalatok);
	    		$("#uploaders_locations_wrapper").empty().append(response.feltoltok);
	    		//$.scrollTo("#location_tab", v);
	    		$.scrollTo("0px", v);
	    	}
	    	else if (id == "programs_results") {
	    		$("#programs_results").empty().append(response.talalatok);
	    		$("#uploaders_programs_wrapper").empty().append(response.feltoltok);
	    		//$.scrollTo("#program_tab", v);
	    		$.scrollTo("0px", v);
	    	}
		 	
			$(".usersbox .users a").tooltip({ 
				track: true, 
				delay: 0, 
				showURL: false, 
				opacity: 1, 
				fixPNG: true, 
				showBody: " ## " 
			});
		 	
		 	
	    	//callback();
		}
	 });

/*

    $('#'+id).load(url, {new_page: page}, function(){
    	if (id == "photos_results") $.scrollTo("#photo_tab", v);
    	else if (id == "locations_results") $.scrollTo("#location_tab", v);
    	else if (id == "programs_results") $.scrollTo("#program_tab", v);
    	
    	callback();
    });
*/
}



function drawMarkers(map, markers, type, clear)
{
	if (!only_content && map && map.isLoaded())
	{
	    if (clear) map.clearOverlays();
	    if (markers.length > 0)
	    {
		    jQuery.each(markers, function()
		    {
	   			var m = null;
	   			var point = new GLatLng(this.wgs_lat, this.wgs_lng);
	   			
	    		if (type=='locations')
	    		{ 
					var options = {
						//"alias": this.alias,
						"tooltip": getLocationTooltip({"location_name":this.name_hu}),
						"location_suggest":this.suggest
					};
					var m = getLocationMarker(point, options);

	    		}
	    		else if (type=='programs')
	    		{
					var options = {
						//"alias": this.program.alias,
						"tooltip": getProgramTooltip({"program_name":this.program.name_hu, "location_name":this.location.name_hu}),
						"location_suggest":this.location.suggest
					};
					var m = getProgramMarker(point, options);
	    		}

	        	map.addOverlay(m);
		    });
		}
	}
}

function drawLocations(markers)
{
	drawMarkers(map_location, markers, 'locations', true);
}

function drawPrograms(markers)
{
	drawMarkers(map_program, markers, 'programs', true);
}


function drawPhotos(markers)
{
	drawMarkers(map_photo, markers.locations, 'locations', true);
	drawMarkers(map_photo, markers.programs, 'programs', false);
}

function showLocationMap()
{
	if (!only_content){
		$('#map_locations_wrapper').show();
		map_location.checkResize();
		initCenter(map_location);
		var view = location_map_params.view;
		
	
		if (map_location && view)
		{
			var center = new GLatLng(view.center.wgs_lat, view.center.wgs_lng);
			map_location.setCenter(center);
			
			var bounds = new GLatLngBounds(
				new GLatLng(view.southWest.wgs_lat, view.southWest.wgs_lng), 
				new GLatLng(view.northEast.wgs_lat, view.northEast.wgs_lng)
			);
			
			//alert(bounds);
			var zoomlevel = map_location.getBoundsZoomLevel(bounds);
			zoomlevel = (zoomlevel > 1) ? zoomlevel - 1 : zoomlevel;
			//alert(zoomlevel);
			map_location.setZoom(zoomlevel);
		}
	}
}

function showProgramMap()
{
	if (!only_content){
		$('#map_programs_wrapper').show();
		map_program.checkResize();
		initCenter(map_program);
		var view = program_map_params.view;
		
	
		if (map_program && view)
		{
			var center = new GLatLng(view.center.wgs_lat, view.center.wgs_lng);
			map_program.setCenter(center);
			
			var bounds = new GLatLngBounds(
				new GLatLng(view.southWest.wgs_lat, view.southWest.wgs_lng), 
				new GLatLng(view.northEast.wgs_lat, view.northEast.wgs_lng)
			);
			
			//alert(bounds);
			var zoomlevel = map_program.getBoundsZoomLevel(bounds);
			zoomlevel = (zoomlevel > 1) ? zoomlevel - 1 : zoomlevel;
			//alert(zoomlevel);
			map_program.setZoom(zoomlevel);
		}
	}
}



function showPhotoMap()
{
	if (!only_content){
		$('#map_photos_wrapper').show();
		map_photo.checkResize();
		initCenter(map_photo);
		var view = photo_map_params.view;
		
	
		if (map_photo && view)
		{
			var center = new GLatLng(view.center.wgs_lat, view.center.wgs_lng);
			map_photo.setCenter(center);
			
			var bounds = new GLatLngBounds(
				new GLatLng(view.southWest.wgs_lat, view.southWest.wgs_lng), 
				new GLatLng(view.northEast.wgs_lat, view.northEast.wgs_lng)
			);
			
			//alert(bounds);
			var zoomlevel = map_photo.getBoundsZoomLevel(bounds);
			zoomlevel = (zoomlevel > 1) ? zoomlevel - 1 : zoomlevel;
			//alert(zoomlevel);
			map_photo.setZoom(zoomlevel);
		}
	}
}


function hideLocationMap()
{
	$('#map_locations_wrapper').hide();
}

function hideProgramMap()
{
	$('#map_programs_wrapper').hide();
}

function hidePhotoMap()
{
	$('#map_photos_wrapper').hide();
}



function showLocationUploaders(){$("#uploaders_locations_box").show();}
function showProgramUploaders(){$("#uploaders_programs_box").show();}
function showPhotoUploaders(){$("#uploaders_photos_box").show();}
function hideLocationUploaders(){$("#uploaders_locations_box").hide();}
function hideProgramUploaders(){$("#uploaders_programs_box").hide();}
function hidePhotoUploaders(){$("#uploaders_photos_box").hide();}

function showLocationTags(){$("#tags_locations_wrapper").show();}
function showProgramTags(){$("#tags_programs_wrapper").show();}
function showPhotoTags(){$("#tags_photos_wrapper").show();}
function hideLocationTags(){$("#tags_locations_wrapper").hide();}
function hideProgramTags(){$("#tags_programs_wrapper").hide();}
function hidePhotoTags(){$("#tags_photos_wrapper").hide();}


var ttview_tabs = {
	location_tab:	'locations_wrapper',
	photo_tab:		'photos_wrapper',
	blog_tab:		'blogs_wrapper',
	program_tab:	'programs_wrapper'
};



function showTabContent(selected_tab_id, selected_wrapper_id)
{
	$("#program_tab").attr("class", "tab num1 multitab");
	$("#photo_tab").attr("class", "tab num2 multitab");
	$("#location_tab").attr("class", "tab num3 multitab");
	
	$("#" + selected_tab_id).attr("class", $("#" + selected_tab_id).attr("class") + " selected");



    jQuery.each(ttview_tabs, function(tab_id, wrapper_id) {
        $('#' + wrapper_id).hide();
    });
    
    $('#' + selected_wrapper_id).show();




    if (selected_wrapper_id == 'locations_wrapper')
    {
    	selected_ttview_tab = 'helyszinek';

		$("#order_by_attendance_num").show();

		hideProgramMap();    	
		hidePhotoMap();
		hideProgramUploaders();
		hidePhotoUploaders();
		hideProgramTags();
		hidePhotoTags();
		
    	showLocationMap();
    	showLocationUploaders();
    	showLocationTags();
    }
    
    
    if (selected_wrapper_id == 'photos_wrapper')
    {
        selected_ttview_tab = 'fotok';
        
        $("#order_by_attendance_num").hide();
        
		hideProgramMap();
		hideLocationMap();
		hideLocationUploaders();
		hideProgramUploaders();
		hideLocationTags();
		hideProgramTags();
		
    	showPhotoMap();
    	showPhotoUploaders();
    	showPhotoTags();
    }
    

    if (selected_wrapper_id == 'blogs_wrapper')
    {
        selected_ttview_tab = 'blogok';
        
		hideProgramMap();
		hidePhotoMap();
		hideLocationMap();
		hideLocationUploaders();
		hidePhotoUploaders();
		hideProgramUploaders();
		hideLocationTags();
		hideProgramTags();
		hidePhotoTags();
    }

    
    if (selected_wrapper_id == 'programs_wrapper')
    {
    	selected_ttview_tab = 'programok';
    	
    	$("#order_by_attendance_num").show();
    	
    	
    	hideLocationMap();
		hidePhotoMap();
		hideLocationUploaders();
		hidePhotoUploaders();
		hideLocationTags();
		hidePhotoTags();
		
    	showProgramMap();
    	showProgramUploaders();
    	showProgramTags();
    }

}


function userfilter(username)
{
	$('#' + username_input_id).val(username);
	postFilter('filter');
}

function tagfilter(tag)
{
	$('#' + tags_input_id).val( jQuery.trim( $('#' + tags_input_id).val() + ' ' + tag));
	postFilter('filter');
}


function back_tags()
{
	$('#' + tags_input_id).val('');
	postFilter('filter');
}

function back_users()
{
	$('#' + username_input_id).val('');
	postFilter('filter');
}


function open_slideshow()
{
	slideshow_window = window.open ("/slideshow/?next=0", "slideshow", "location=0,status=1,scrollbars=1,width=800, height=600");
	return false;
}


jQuery(document).ready(function() {
    jQuery.each(ttview_tabs, function(tab_id, wrapper_id) {
        $('#' + tab_id).click(function(){
        	showTabContent(tab_id, wrapper_id);
        });
    });
    
    
    $('#locs_has_picture').click(function(){
    	var src = $('#locs_has_picture').attr('src');
    	if (src.indexOf('piros') == -1) 
    	{
    		$('#locs_has_picture').attr('src', src.replace('szurke', 'piros'));
    		$('#locs_has_picture_input').val('1');
    	}
    	else 
    	{
    		$('#locs_has_picture').attr('src', src.replace('piros', 'szurke'));
    		$('#locs_has_picture_input').val('0');
    	}
    });
    
    $('#progs_has_picture').click(function(){
    	var src = $('#progs_has_picture').attr('src');
    	if (src.indexOf('piros') == -1) 
    	{
    		$('#progs_has_picture').attr('src', src.replace('szurke', 'piros'));
    		$('#progs_has_picture_input').val('1');
    	}
    	else 
    	{
    		$('#progs_has_picture').attr('src', src.replace('piros', 'szurke'));
    		$('#progs_has_picture_input').val('0');
    	}
    });
});


