/*global $, Ext */

var DivToggler = {
  on_btn:    "img/btn_continue.png",
  off_btn:   "img/btn_continue_off.png",
  off_class: "off",
  div_ids:   ["request_estimate", "track_shipment", "file_claim"],
  form_id:   "request_form",
  current:   "request_estimate",

  init: function() {
    this.bind_div_events("mouseover", this.overlay_mouseover_event);
    this.bind_div_events("click", this.overlay_mouseover_event);
    this.init_form_events();
    this.turn_off_all_but_current();
  },
  init_form_events: function() {
    $("#" + this.form_id + " :input").keyup(DivToggler.disable_mouseover_events);
  },
  bind_div_events: function(e, f) {
    for (var i=0; i<DivToggler.div_ids.length; i++) {
      var olid = DivToggler.div_ids[i];
      $("#" + olid).bind(e, f);
    }
  },
  disable_mouseover_events: function() {
    for (var i=0; i<DivToggler.div_ids.length; i++) {
      var olid = DivToggler.div_ids[i];
      $("#" + olid).unbind("mouseover");
    }
  },
  turn_off_all_but_current: function() {
    for (var i=0; i<DivToggler.div_ids.length; i++) {
      var olid = DivToggler.div_ids[i];
      if (olid == DivToggler.current) { continue; }
      $("#" + olid).addClass(DivToggler.off_class);
      // $("#" + olid + " .toggle_btn").attr("src", DivToggler.off_btn);
      $("#" + olid + " .toggle_btn").each(function() {
        var src = $(this).attr("src");
        if (!src.match(/_off/)) { 
          $(this).attr("src", src.replace(/(.+)(\..{3})/, "$1_off$2"));
        }
      });
    }
  },
  turn_on: function(did) {
    DivToggler.current = did;
    $("#" + did).removeClass(DivToggler.off_class);
    // $("#" + did + " .toggle_btn").attr("src", DivToggler.on_btn);
    $("#" + did + " .toggle_btn").each(function() {
      var src = $(this).attr("src");
      if (src.match(/_off/)) { 
        $(this).attr("src", src.replace(/(.+)_off(\..{3})/, "$1$2"));
      }
    });
  },

  // Event Handler
  overlay_mouseover_event: function() {
    DivToggler.turn_on(this.id);
    DivToggler.turn_off_all_but_current();
  }
};

$(function() {
  DivToggler.init();
});
