jQuery.noConflict();
jQuery(document).ready(function(){
    jQuery('#member_selected_city').change(function() {
      changeStreetsByCity(jQuery("#member_selected_city").val());
    });
    jQuery('#member_selected_street').change(function(){
      changeHouseNumbersByStreet(jQuery("#member_selected_street").val())
    })
});

function changeStreetsByCity(city_id){
      jQuery.ajax({
            type: "GET",
            url: "/filter_streets?city_id="+city_id,
                beforeSend: function(data, status, xmlhttp){
                  if(jQuery('.street_info').length > 0){
                    jQuery('.street_info').addClass('loading');
                    jQuery('.street_info').html('');
                  }else{
                    jQuery('#member_selected_city').parent('td').append("<div class='street_info loading'></div>");
                  }
                  jQuery('#member_selected_street').attr('disabled','disabled');
                  jQuery('#member_selected_city').attr('disabled','disabled');
                  jQuery('#member_selected_house_number').attr('disabled', 'disabled')
                },
                success: function(data, status, xmlhttp){
                  var streets = new Array();
                  jQuery(data).find("streets > street").each(function(){
                    streets.push(
                      new Array(
                        jQuery(this).children('id').text(),
                        jQuery(this).children('street').text()
                      ));
                  });
                  if(streets.length == 0){
                    jQuery('.street_info').removeClass('loading');
                    jQuery('.street_info').html("Pro toto město neexistuje v databázi žádná ulice");
                    jQuery("#member_selected_street").html("&nbsp;");
                    jQuery("#member_selected_house_number").html("&nbsp;")
                  }else{
                    var options = '';
                    for (var i = 0; i < streets.length; i++) {
                      var currentStreet = streets[i];
          						options += '<option value="' + currentStreet[0] + '">' + currentStreet[1] + '</option>';
                    }
                    jQuery("#member_selected_street").html(options);
                    jQuery('#member_selected_street option:first').attr('selected', 'selected');
                    jQuery('.street_info').html("&nbsp;");
                    jQuery('.street_info').removeClass('loading');
                    jQuery('#member_selected_street').removeAttr('disabled');
                  }
                  jQuery('#member_selected_city').removeAttr('disabled');
                  if (streets.length != 0) {
                    changeHouseNumbersByStreet(jQuery("#member_selected_street").val());
                  };
                },
                error: function(xmlhttp, status, error){
                    jQuery('.street_loading').html("Omlováme se, ale došlo k chybě při načítání ulic.");
                    jQuery('#member_selected_city').removeAttr('disabled');
                }
    });
}

function changeHouseNumbersByStreet(street_id){
      jQuery.ajax({
            type: "GET",
            url: "/filter_house_numbers?street_id="+street_id,
                beforeSend: function(data, status, xmlhttp){
                  if(jQuery('.house_number_info').length > 0){
                    jQuery('.house_number_info').addClass('loading');
                    jQuery('.house_number_info').html('');
                  }else{
                    jQuery('#member_selected_city').parent('td').append("<div class='house_number_info loading'></div>");
                  }
                  jQuery('#member_selected_house_number').attr('disabled', 'disabled')
                  jQuery('#member_selected_street').attr('disabled','disabled');
                  jQuery('#member_selected_city').attr('disabled','disabled');
                },
                success: function(data, status, xmlhttp){
                  var streets = new Array();
                  jQuery(data).find("house-numbers > house-number").each(function(){
                    streets.push(
                      new Array(
                        jQuery(this).children('id').text(),
                        jQuery(this).children('number').text()
                      ));
                  });
                  if(streets.length == 0){
                    jQuery('.house_number_info').removeClass('loading');
                    jQuery('.house_number_info').html("Pro tuto ulici neexistuje v databázi žádné číslo popisné.");
                    jQuery("#member_selected_house_number").html("&nbsp;");
                  }else{
                    var options = '';
                    for (var i = 0; i < streets.length; i++) {
                      var currentStreet = streets[i];
          						options += '<option value="' + currentStreet[0] + '">' + currentStreet[1] + '</option>';
                    }
                    jQuery("#member_selected_house_number").html(options);
                    jQuery('#member_selected_house_number option:first').attr('selected', 'selected');
                    jQuery('.house_number_info').html("&nbsp;");
                    jQuery('.house_number_info').removeClass('loading');
                    jQuery('#member_selected_house_number').removeAttr('disabled');
                  }
                  jQuery('#member_selected_street').removeAttr('disabled');
                  jQuery('#member_selected_city').removeAttr('disabled');
                },
                error: function(xmlhttp, status, error){
                    jQuery('.house_number_loading').html("Omlováme se, ale došlo k chybě při načítání čísel popisných.");
                    jQuery('#member_selected_street').removeAttr('disabled');
                    jQuery('#member_selected_city').removeAttr('disabled');
                }
    });
}

