function populate_cinema_by_provincia(){
    var provincia = $("#id_provincia").val();
    if (!provincia ){
    	return;
    }
    $.getJSON("/showtimes/ajax/cinema_by_provincia",{pk: provincia}, function(data, textStatus){
        $.each(data, function(){
            // console.log(URLify(this[0], this[0].length));
        	var opt_group = $('<optgroup>').attr('label', this[0]);
        	$.each(this[1], function() {
        		var opt = $('<option/>').attr('value',this[0]).text(this[1]);
                if (this[0] == $("#id_hidden_cinema_selected").val()) {
                	opt.attr('selected','selected');
                }
                opt_group.append(opt);
        	});
        	$("#id_cinema").append(opt_group);
        });
    });
};

function populate_movie_by_provincia(){
    var provincia = $("#id_provincia").val();
    if (!provincia ){
    	return;
    }
    $.getJSON("/showtimes/ajax/movie_by_provincia",{pk: provincia}, function(data, textStatus){
        $.each(data, function(){
        	var opt_group = $('<optgroup>').attr('label', this[0]);
        	name_opt_group = this[0][1];
        	$.each(this[1], function() {
        		var opt = $('<option/>').attr('value',this[0]).text(this[1]);
        		if (this[0] == $("#id_hidden_movie_selected").val() && name_opt_group == $("#id_hidden_movie_selected_group").val()) {
                	opt.attr('selected','selected');
                }
                opt_group.append(opt);
        	});
        	$("#id_movie").append(opt_group);
        });
    });
};

function populate_city_by_movie(){
    var provincia = $("#id_provincia").val();
    if (!provincia ){
    	return;
    }
    $.getJSON("/showtimes/ajax/city_by_movie",{pk: provincia}, function(data, textStatus){
        $.each(data, function(){
        	var opt_group = $('<optgroup>').attr('label', this[0]);
        	name_opt_group = this[0][0];
        	$.each(this[1], function() {
        		var opt = $('<option/>').attr('value',this[0]).text(this[1]);
        		if (this[0] == $("#id_hidden_city_selected").val() && name_opt_group == $("#id_hidden_city_selected_group").val()) {
                	opt.attr('selected','selected');
                }
                opt_group.append(opt);
        	});
        	$("#id_city").append(opt_group);
        });
    });
};

function not_null(value) {
    if (value != null && value != "") {
        return true;
    } else {
        return false;
    }
}

$(document).ready(function(){

    // populate_cinema_by_provincia();
    // $("#id_cinema").unbind('click');
    // populate_movie_by_provincia();
    // $("#id_movie").unbind('click');
    // populate_city_by_movie();
    // $("#id_city").unbind('click');
    
    movie_selected_group = $("#id_hidden_movie_selected_group").val();
    // alert("#id_movie optgroup[label=" + movie_selected_group + "] option");
    options = $("#id_movie optgroup[label=" + movie_selected_group + "] option");
    options.each(function() {
        if ($(this).val() == $("#id_hidden_movie_selected").val()) {
            $(this).attr('selected', 'selected');
        }
    }
    )
    
    city_selected_group = $("#id_hidden_city_selected_group").val();
    // alert("#id_movie optgroup[label=" + movie_selected_group + "] option");
    options = $("#id_city optgroup[label=" + city_selected_group + "] option");
    options.each(function() {
        if ($(this).val() == $("#id_hidden_city_selected").val()) {
            $(this).attr('selected', 'selected');
        }
    }
    )
    
    $("#id_cinema").change(function() {
        // $("#search-cinema").submit();
        // $("#id_movie").empty();
        // $("#id_city").empty();
        // $("<option/>").attr('value','').text('---------').appendTo("#id_movie");
        //      $("<option/>").attr('value','').text('---------').appendTo("#id_city");
        $("#id_movie :selected").removeAttr("selected");
        $("#id_movie option[value='']").attr('selected', 'selected');
        $("#id_city :selected").removeAttr("selected");
        $("#id_city option[value='']").attr('selected', 'selected');
    });
    
    $("#id_movie").change(function(){
		comune = $("#id_movie :selected").parent().attr("label");
		$("#id_comune").val(comune);
        // populate_movie_by_provincia();
	    
	    $("#id_cinema :selected").removeAttr("selected");
        $("#id_cinema option[value='']").attr('selected', 'selected');
        $("#id_city :selected").removeAttr("selected");
        $("#id_city option[value='']").attr('selected', 'selected');
	    
        // $("#id_cinema").empty();
        // $("#id_city").empty();
        // $("<option/>").attr('value','').text('---------').appendTo("#id_cinema");
        //      $("<option/>").attr('value','').text('---------').appendTo("#id_city");
	    
        // $("#search-cinema").submit();
	});
    
    $("#id_city").change(function(){
		comune = $("#id_city :selected").parent().attr("label");
		$("#id_comune").val(comune);
        // populate_city_by_movie();
		$("#id_movie :selected").removeAttr("selected");
        $("#id_movie option[value='']").attr('selected', 'selected');
        $("#id_cinema :selected").removeAttr("selected");
        $("#id_cinema option[value='']").attr('selected', 'selected');
		
        // $("#id_cinema").empty();
        // $("#id_movie").empty();
    	$("<option/>").attr('value','').text('---------').appendTo("#id_cinema");
	    $("<option/>").attr('value','').text('---------').appendTo("#id_movie");
	    
        // $("#search-cinema").submit();
	});

    $("#id_provincia").change(function(){
	    $("#id_cinema").empty();
	    $("#id_movie").empty();
	    $("#id_city").empty();
	    $("<option/>").attr('value','').text('---------').appendTo("#id_cinema");
	    $("<option/>").attr('value','').text('---------').appendTo("#id_movie");
	    $("<option/>").attr('value','').text('---------').appendTo("#id_city");
	    populate_cinema_by_provincia();
	    populate_movie_by_provincia();
	    populate_city_by_movie();
	});
    
    $("#showtimes_submit_button").click(function() {
        // $("#id_cinema").empty();
        //      $("#id_movie").empty();
        //      $("#id_city").empty();
        // $("#search-cinema").submit();
        sigla_provincia = $("#id_provincia").val()
        cinema_slug = $("#id_cinema").val()
        movie_slug = $("#id_movie").val()
        city_slug = $("#id_city").val()
        
        if (not_null(sigla_provincia)) {
            if (not_null(cinema_slug)) {
                // city_slug = $("#id_cinema :selected").parent().attr("id");
                location.href = "/showtimes/by_cinema/" + sigla_provincia + "/" + cinema_slug + "/";
            } else if (not_null(movie_slug)) {
                // city_slug = $("#id_movie :selected").parent().attr("id");
                location.href = "/showtimes/by_movie/" + sigla_provincia + "/" + movie_slug + "/";
            } else if (not_null(city_slug)) {
                // movie_slug = $("#id_city :selected").parent().attr("id");
                location.href = "/showtimes/by_movie/" + sigla_provincia + "/" + city_slug + "/";
            } else {
                location.href = "/showtimes/" + sigla_provincia + "/";
            }
        } else {
            alert("Errore, devi selezionare almeno la provincia");
        }
        
        // console.log(sigla_provincia);
        // if (cinema_slug == "" || cinema_slug == null)
        //     console.log("vuoto");
        // else
        //     console.log(cinema_slug)
        // console.log(movie_slug);
        // console.log(city_slug);
    });
});

