$(document).bind("ariaready", function(){
  $("#firstSlider").slider();

  $("#secondSlider").slider({
    minValue : $("#secondSlider").ariaState("valuemin"),
    maxValue : $("#secondSlider").ariaState("valuemax"),
    change : function(e, ui) {
      //$(ui.slider.element).parent().ariaState("valuenow", ui.slider.curValue);
      ui.instance.element.ariaState("valuenow", ui.value);
    }
  });
  
  $("#thirdSlider").slider({
    minValue : $("#thirdSlider").ariaState("valuemin"),
    maxValue : $("#thirdSlider").ariaState("valuemax"),
    change : function(e, ui) {
      //$(ui.slider.element).parent().ariaState("valuenow", ui.slider.curValue);
      ui.instance.element.ariaState("valuenow", ui.value);
      //var controlee = $("#" + $(ui.slider.element).parent().ariaState("controls"));
      var controlee = $("#" + ui.instance.element.ariaState("controls"));
      //controlee.val(ui.slider.curValue);
      controlee.val(ui.value);
    }
  });
  
  $("#myFirstTextbox").keyup(function(e){
    var element = $(e.target);  
    var controlee = $("#" + element.ariaState("controls"));
    controlee.ariaState("valuenow", element.val());
  });
  
  $("#fourthSlider").slider({
    minValue : $("#fourthSlider").ariaState("valuemin"),
    maxValue : $("#fourthSlider").ariaState("valuemax"),
    change : function(e, ui) {
      //$(ui.slider.element).parent().ariaState({valuenow : ui.slider.curValue, disabled : "false"});
      ui.instance.element.ariaState({valuenow : ui.value, disabled : "false"});
      //var controlee = $("#" + $(ui.slider.element).parent().ariaState("controls"));
      var controlee = $("#" + ui.instance.element.ariaState("controls"));
      //controlee.val(ui.slider.curValue);
      controlee.val(ui.value);
      controlee.keyup();
    }
  });
  
  $("#mySecondTextbox").keyup(function(e){
    var element = $(e.target);  
    var controlee = $("#" + element.ariaState("controls"));
    controlee.ariaState("valuenow", element.val());
    valuemin = parseInt(controlee.ariaState("valuemin"));
    valuemax = parseInt(controlee.ariaState("valuemax"));
    if (isNaN(element.val()) || element.val() < valuemin || element.val() > valuemax) {
      $("#notification").text("The value must be a number between " + valuemin + " and " + 
        valuemax + ", inclusive.");
      element.ariaState("invalid", "true");
      controlee.ariaState("invalid", "true");
    } else {
      $("#notification").empty();
      element.ariaState("invalid", "false");
      controlee.ariaState("invalid", "false");
    }
  });
});
