function populate_provincia_by_regione(){
    var regione = $("#id_regione").val();    
    if (!regione ){
    	return;
    }
    $("#id_provincia").empty();
    $("<option/>").attr('value','').text('---------').appendTo("#id_provincia");
    $.getJSON("/it/ajax/province_by_regione",{pk: regione}, function(data, textStatus){
        $.each(data, function(){         
            var opt = $('<option/>').attr('value',this[0]).text(this[1]);
            if ($(document).getUrlParam != undefined && this[0]==$(document).getUrlParam("provincia")){
                opt.attr('selected','selected');
            }
            $("#id_provincia").append(opt);
        });
    });
};

function populate_comune_by_provincia(){
    var provincia = $("#id_provincia").val();
    if (!provincia ){
    	return;
    }
    $("#id_comune").empty();
    $("<option/>").attr('value','').text('---------').appendTo("#id_comune");
    $.getJSON("/it/ajax/comuni_by_provincia",{pk: provincia}, function(data, textStatus){
        $.each(data, function(){         
            var opt = $('<option/>').attr('value',this[0]).text(this[1]);
            if ($(document).getUrlParam != undefined && this[0]==$(document).getUrlParam("comune")){
                opt.attr('selected','selected');
            }

            $("#id_comune").append(opt);
        });
    });
};

$(document).ready(function(){

    $("#id_provincia").click(function(){
	    populate_provincia_by_regione();
	    $("#id_provincia").unbind('click');
	});

    $("#id_comune").click(function(){
	    populate_comune_by_provincia();
	    $("#id_comune").unbind('click');
	});

    $("#id_regione").change(function(){
	    populate_provincia_by_regione();
	    $("#id_provincia").trigger('change');
	});

    $("#id_provincia").change(function(){
	    populate_comune_by_provincia();
	});
});

