
/* Inizializzazione GUI */
$(document).ready(function() {

        $('#search_form').tabs();
        $('#start_search').button();
	
	//$('#progressbar').progressbar();
	$('#progressbar').hide();
	
	$('#results').hide();
	
	$('#tragitto_res').hide();
	$('#tragitto').hide();
	$('#mostra_ind').button();
	$('#mostra_ind').click(function() {
		$('#tragitto_res').slideToggle();
	});
	
        $('input:submit').button();

	$('#mostra_opz').button();
        $('#dialog').hide();
        $('#mostra_opz').click(function(){
           $('#dialog').dialog("destroy");
           riempi_dialog();
           $("#dialog").dialog({
		modal: true,
		buttons: {
			Ok: function() {
                                if ($('#overview').attr('checked')) {
                                    if (mapoverview == null) {
                                        mapoverview = new GOverviewMapControl();
                                        map.addControl(mapoverview);
                                    }
                                } else {
                                    map.removeControl(mapoverview);
                                    mapoverview = null;
                                }
                                if ($('#zoom_rotella').attr('checked'))
                                    map.enableScrollWheelZoom();
                                else map.disableScrollWheelZoom();

                                if ($('#zoom_dblclick').attr('checked'))
                                    map.enableDoubleClickZoom();
                                else map.disableDoubleClickZoom();

                                if ($('#dragging').attr('checked'))
                                    map.enableDragging();
                                else map.disableDragging();

				$(this).dialog('close');
			}
		}
	   });
        });
	
	/* FUNZIONE RICERCA */
	$('#start_search').click(function() {
		$('#tragitto').fadeOut();
		$('#tragitto_res').slideUp();
		// E' una ricerca su tragitto auto?
		if ($('#search_type_traffic').attr('checked')) {
			// calcolo tragitto
			$('#tragitto_res').empty();			
			//$('#extras').append('<div id="dialog"></div>');
			clearMap();
			computeDirections($('#luogo_partenza').val(), $('#luogo_arrivo').val());
			$('#tragitto').fadeIn();
		} else {
			search_function();
		}
	});
        
        /* RICERCA IN BASE A PAROLE CHIAVE */
        $('#keys_enable').attr('checked', false);
        $('#search_keys_dis').hide();
        $('#search_keys_types').buttonset();
        $('input[type=radio][name=keys_type][value=tag]').attr('checked', 'true');
        $('#keys_enable').click(function() {
            if ($('#keys_enable').attr('checked')) {
                $('#search_keys_dis').fadeIn();
            } else {
                $('#search_keys_dis').fadeOut();
            }
        });
        $('input[type=radio][name=keys_type]').click(function() {
            if ($(this).val() == 'tag') {
                $('#search_keys_desc1').text('Tag da includere (separati da virgole):  ');
                $('#search_keys_desc2').text('Tag da escludere (separati da virgole):  ');
                $('#keys_text').attr('size', 50);
                $('#search_keys_desc2').fadeIn();
                $('#keys_text2').fadeIn();
                $('#tag_type').fadeIn();
                $('#search_keys_desc3').fadeIn();
                $('#search_keys_desc4').fadeIn();
            } else {
                $('#search_keys_desc1').text('Testo:  ');
                $('#keys_text').attr('size', 70);
                $('#search_keys_desc2').fadeOut();
                $('#keys_text2').fadeOut();
                $('#tag_type').fadeOut();
                $('#search_keys_desc3').fadeOut();
                $('#search_keys_desc4').fadeOut();
            }
        });
        
        /* RICERCA IN BASE ALLA DATA DI SCATTO */
        $('#takendate_enable').attr('checked', false);
        $('#search_takendate_dis').hide();
        $('#taken_date_from').datepicker({
			numberOfMonths: 3,
			showButtonPanel: true,
                        dateFormat: 'dd/mm/yy'
	});
        $('#taken_date_to').datepicker({
			numberOfMonths: 3,
			showButtonPanel: true,
                        dateFormat: 'dd/mm/yy'
	});
        $('#takendate_enable').click(function() {
            if ($('#takendate_enable').attr('checked')) {
                $('#search_takendate_dis').fadeIn();
            } else {
                $('#search_takendate_dis').fadeOut();
            }
        });
        
        /* RICERCA IN BASE ALLA DATA DI UPLOAD */
        $('#uploaddate_enable').attr('checked', false);
        $('#search_uploaddate_dis').hide();
        $('#upload_date_from').datepicker({
			numberOfMonths: 3,
			showButtonPanel: true,
                        dateFormat: 'dd/mm/yy'
	});
        $('#upload_date_to').datepicker({
			numberOfMonths: 3,
			showButtonPanel: true,
                        dateFormat: 'dd/mm/yy'
	});
        $('#uploaddate_enable').click(function() {
            if ($('#uploaddate_enable').attr('checked')) {
                $('#search_uploaddate_dis').fadeIn();
            } else {
                $('#search_uploaddate_dis').fadeOut();
            }
        });
        
        /* TIPO RICERCA */
        $('#search_type_choice').buttonset();
	$('#search_type_dis').hide();
	$('#search_type_dis2').hide();
	$('#search_type_dis3').hide();
	$('#radius_slider').slider({
		range: "min",
		value: 5,
		min: 1,
		max: 31,
		step: 1,
		slide: function(event, ui) {
			$('#radius_value').text(ui.value + ' km');
		}
	});
	$('#radius_value').text('5 km');
	$('#radius_slider').css('width', '200px');
	$('#search_type_radial').click(function() {
		$('#search_type_dis').fadeIn();
		$('#search_type_dis2').fadeOut();
		$('#search_type_dis3').fadeOut();
                clearMap();
		radial();
	});
	$('#search_type_bbox').click(function() {
		$('#search_type_dis').fadeOut();
		$('#search_type_dis3').fadeOut();
		$('#search_type_dis2').fadeIn();
                clearMap();
		bounding_box();
	});
	$('#search_type_nogeo').click(function() {
		$('#search_type_dis2').fadeOut();
		$('#search_type_dis').fadeOut();
		$('#search_type_dis3').fadeOut();
		clearMap();
		clearListeners();
	});
	$('#search_type_traffic').click(function() {
		$('#search_type_dis').fadeOut();
		$('#search_type_dis2').fadeOut();
		$('#search_type_dis3').fadeIn();
		clearMap();
		clearListeners();
	});
	
});


function search_function() {
	var par = new Object();
	// Filtrare secondo le parole chiave??
	if ($('#keys_enable').attr('checked')) {
		// Tag o Testo?
		if ($('#keys_type_tag').attr('checked')) {
			par.tag_mode = $('#tag_type').val();
			par.tags = $('#keys_text').val();
			// Tag da escludere
			var escl_tags = $("#keys_text2").val();
                        if (escl_tags != "") {
                            var escl_tags_array = escl_tags.split(",");
                            var escl_tags_string = "";
                            for (var i = 0; i < escl_tags_array.length; ++i) {
                                if (i != (escl_tags_array.length-1))
                                    escl_tags_string += "-" + escl_tags_array[i] + ",";
                                else
                                    escl_tags_string += "-" + escl_tags_array[i];
                            }
                            par.tags += "," + escl_tags_string;
                        }
		} else {
			par.text = $('#keys_text').val();
		}
	}
	// Filtrare secondo la data di scatto??
	// La data di scatto deve essere espressa nel formato MySQL date time
	// YYYY-MM-DD HH:MM:SS
	if ($('#takendate_enable').attr('checked')) {
		var min_year = $('#taken_date_from').val().substring(6, 10);
		var min_month = $('#taken_date_from').val().substring(3, 5);
		var min_day = $('#taken_date_from').val().substring(0, 2);
		var max_year = $('#taken_date_to').val().substring(6, 10);
		var max_month = $('#taken_date_to').val().substring(3, 5);
		var max_day = $('#taken_date_to').val().substring(0, 2);
		var min_date = new Date(parseInt(min_year), parseInt(min_month)-1, parseInt(min_day));
		var max_date = new Date(parseInt(max_year), parseInt(max_month)-1, parseInt(max_day));
		if (min_date <= max_date) {
			/*var a = new Date(Date.UTC(min_year, min_month-1, min_day, 0, 0, 0, 0));
			var min_date_unix = a.getTime()/1000.0;
			var b = new Date(Date.UTC(max_year, max_month-1, max_day, 0, 0, 0, 0));
			var max_date_unix = b.getTime()/1000.0;*/
			par.min_taken_date = min_year+'-'+min_month+'-'+min_day+' 00:00:00';
			par.max_taken_date = max_year+'-'+max_month+'-'+max_day+' 00:00:00';
		} else {
                    alert("Intervallo Data di Scatto Errato!");
                    return false;
                }
	}
	// Filtrare secondo la data di upload??
	if ($('#uploaddate_enable').attr('checked')) {
		min_year = parseInt($('#upload_date_from').val().substring(6, 10));
		min_month = parseInt($('#upload_date_from').val().substring(3, 5));
		min_day = parseInt($('#upload_date_from').val().substring(0, 2));
		max_year = parseInt($('#upload_date_to').val().substring(6, 10));
		max_month = parseInt($('#upload_date_to').val().substring(3, 5));
		max_day = parseInt($('#upload_date_to').val().substring(0, 2));
		min_date = new Date(min_year, min_month-1, min_day);
		max_date = new Date(max_year, max_month-1, max_day);
		if (min_date <= max_date) {
			var a = new Date(Date.UTC(min_year, min_month-1, min_day, 0, 0, 0, 0));
			var min_date_unix = a.getTime()/1000.0;
			var b = new Date(Date.UTC(max_year, max_month-1, max_day, 0, 0, 0, 0));
			var max_date_unix = b.getTime()/1000.0;
			par.min_upload_date = min_date_unix;
			par.max_upload_date = max_date_unix;
		} else {
                    alert("Intervallo Data di Upload Errato!");
                    return false;
                }
	}
	// Tipo di ricerca (radiale / boundingbox / tragitto)
	if ($('#search_type_radial').attr('checked')) {
		par.radius = $('#radius_slider').slider('value');
		par.lat = $('#radial_lat').text();
		par.lon = $('#radial_lng').text();
                //current_search_type = 1;
	} else if ($('#search_type_bbox').attr('checked')) {
		par.bbox = $('#min_lng').text() + "," +
			$('#min_lat').text() + "," +
			$('#max_lng').text() + "," +
			$('#max_lat').text();
                //current_search_type = 2;
	} else if ($('#search_type_traffic').attr('checked')) {
                //current_search_type = 3;
		// ottenimento bounding box
		//var code = gdirections.getStatus().code;
		if (gdirections.getStatus().code == 200) {
			var bbox = gdirections.getBounds();
			var p1_lat = bbox.getSouthWest().lat();
			var p1_lng = bbox.getSouthWest().lng();
			var p2_lat = bbox.getNorthEast().lat();
			var p2_lng = bbox.getNorthEast().lng();
			// inserimento parametri nell'array
			par.bbox = p1_lng + "," + p1_lat + "," + p2_lng + "," + p2_lat;
		} else {
		}
	}
	
	par.extras = 'url_t,url_s,url_m,geo';
	par.t = 'photosSearch';
	par.has_geo = '1';
	par.per_page = '30'; /* prevent application from crying */
			       

	$.getJSON("apiaccess.php", par, function(data){
	   if (data.stat == 'ok') {

		$('#result_gallery').html('<ul id="gallery"></ul>');
		
		var marker;
		var tot_photo = data.photos.photo.length;
		var point;
		
		$('#result_data').html('Totale foto trovate: <b>'+tot_photo+'</b>');
		
		for (var i=0; i<tot_photo; ++i) {
		    $('#gallery').append(
			'<li>'+
				'<div>'+
				'<img src="'+data.photos.photo[i].url_t+'" style="margin-right: 10px" width="75px" height="75px" /><br />'+
				'<a target="_blank" href="view_photo.php?photo_id='+data.photos.photo[i].id+'&url_m='+data.photos.photo[i].url_m+'" style="font-size: 8pt; color: #888888; padding-top: 0px; margin-top: 0px">apri</a>'+
				'</div>'+
			'</li>');

		    // Aggiungo i marker sulla mappa
		    point = new GLatLng(data.photos.photo[i].latitude, data.photos.photo[i].longitude);
		    marker = new GMarker(point);
		    
		    map.addOverlay(marker);
		    
		    // Aggiungo all'oggetto marker i dati che mi serviranno dopo
		    marker.photo_link_m = "view_photo.php?photo_id="+data.photos.photo[i].id+"&url_m="+data.photos.photo[i].url_m;
		    marker.photo_width = data.photos.photo[i].width_t;
		    marker.photo_height = data.photos.photo[i].height_t;
		    marker.photo_link = data.photos.photo[i].url_t;
		    
		    GEvent.addListener(marker, "click", function() {
			this.openInfoWindowHtml('<div align="center"><a target="_blank" href="'+
						this.photo_link_m+'">'+
						'<img src="'+this.photo_link+
						'" width="'+this.photo_width+
						'" height="'+this.photo_height+'" />'+
						'</a></div>');
		    });
		    
		}
		if ($('#search_type_nogeo').attr('checked')) {
			map.setCenter(point, 13);
		}
		$('#results').slideDown();
		$('#gallery').jdragger();
	  } else {
		alert("E' accaduto un errore durante la richeta!\nRicontrolla di dati inseriti, per favore");
                return false;
	  }
	});
}

function open_photo(photo_id, photo_ulr_m) {
	alert("sono in open_photo");
	alert(photo_id);
	alert(photo_url_m);
}

function riempi_dialog() {
    if (map.draggingEnabled())
        $('#dragging').attr('checked', 'true');
    else
        $('#dragging').removeAttr('checked');

    if (map.doubleClickZoomEnabled())
        $('#zoom_dblclick').attr('checked', 'true');
    else
        $('#zoom_dblclick').removeAttr('checked');

    if (mapoverview != null)
        $('#overview').attr('checked', 'true');
    else
        $('#overview').removeAttr('checked');

    if (map.scrollWheelZoomEnabled())
        $('#zoom_rotella').attr('checked', 'true');
    else
        $('#zoom_rotella').removeAttr('checked');
}


