var submit_form = true;

var Rules = {
  ".decimal:keypress": function(element,event) {
    var key = event.keyCode || event.which;
    if ([8,9,35,36,37,38,39,40,97,98,99,100,101,102,103,104,105,110,190].indexOf(key) == -1 && !String.fromCharCode(key).match(/^(\d+|\.)$/))
      Event.stop(event);
  },
  ".email:loaded": function(element) {
    element.innerHTML = element.className.split("email ")[1].split(" ")[0] + "@" + "cachelimo" + "." + "com";
  },
  ".integer:keypress": function(element,event) {
    var key = event.keyCode || event.which;
    if ([8,9,35,36,37,38,39,40,96,97,98,99,100,101,102,103,104,105].indexOf(key) == -1 && !String.fromCharCode(key).match(/^\d+$/))
      Event.stop(event);
  },
  "input.text.step:focus, input.radio.step:change, select.step:focus, textarea.step:focus": function(element) {
    Controller.Step.Go(element.className.split("step ")[1].split(" ")[0]);
  },
  "legend.step:click": function(element,event) {
    element = Event.findElement(event,"legend");
    Controller.Step.Go(element.className.split("step ")[1].split(" ")[0],true);
  },
  "#id_payment_method_1:change, #id_payment_method_1:click": function(element) {
    if (element.checked == true)
      Element.show("cc_form");
  },
  "#id_payment_method_0:change, #id_payment_method_0:click": function(element) {
    if (element.checked == true)
      Element.hide("cc_form");
  }
}

var Controller = {
  Step: {
    Go: function(step,focus) {
      $$(".step_container").each(function(element) {
        var legend = $(element.id + "_legend");
        if (element.id == "step" + step && legend.className.indexOf("folded") > -1) {
          legend.className = legend.className.replace(" folded","");
          if (focus) {
            focus = Element.down(element,"input.text");
            if (typeof(focus) != "undefined")
              focus.focus();
          }
        } else if (element.id != "step" + step && legend.className.indexOf("folded") == -1) {
          legend.className += " folded";
        }
      });
    }
  }
}