var EcotechFormUser = Class.create({
    initialize: function(form) {
      this.dom = {};
      this.dom.form = $(form);

      // Q2: 新築・リフォームのご予定はありますか？
      this.dom.plans = $A(this.dom.form.elements.plan);

      // Q2 で「ある」とお答えいただいた方へ。
      this.dom.yukadan_plans = $A(this.dom.form.elements.yukadan_plan);

      // Q3で「している」とお答えいただいた方へ。
      this.dom.about_ecohaxs = $A(this.dom.form.elements.about_ecohax);

      this.dom.plans.each(function(elem) {
	  $(elem).observe('click', function(ev) {
	      this.init_check();
	    }.bindAsEventListener(this));
	}.bind(this));

      this.dom.yukadan_plans.each(function(elem) {
	  $(elem).observe('click', function(ev) {
	      this.init_check();
	    }.bindAsEventListener(this));
	}.bind(this));

      this.init_check();
    },

    radio_value: function(buttons) {
      var checked = $A(buttons).find(function(button) {
	  return button.checked;
	}.bind(this));
      if (checked) {
	return checked.value;
      } else {
	return null;
      }
    },

    // validation ルールを初期化する
    // 2009-02-12 削除
    init_check: function() {
      if (0) {	
	// 「Q2: 新築・リフォームのご予定はありますか？」が「ある」なら
	// 「Q3: 床暖房は計画されていますか？」を必須にする
	if (this.radio_value(this.dom.plans) == 'ある') {
	  this.add_elem_check(this.dom.yukadan_plans[1]);
	  $$('span.must.if_plan').invoke('show');
	} else {
	  this.remove_elem_check(this.dom.yukadan_plans[1]);
	  $$('span.must.if_plan').invoke('hide');
	}

	// 「Q3: 床暖房は計画されていますか？」が「している」なら
	// 「エコハックスにしたいと思いますか？」を必須にする
	// 2009-02-12 削除
	if (this.radio_value(this.dom.yukadan_plans) == 'している') {
	  this.add_elem_check(this.dom.about_ecohaxs[1]);
	  $$('span.must.if_yukadan_plan').invoke('show');
	} else {
	  this.remove_elem_check(this.dom.about_ecohaxs[1]);
	  $$('span.must.if_yukadan_plan').invoke('hide');
	}
      }
    },

    /// フォーム要素 elem に onblur=Validator.check(this, reg, extra)を追加する
    add_elem_check: function(elem, reg, extra) {
      if (elem) {
	try {
	  delete elem.onblur;	// FF はこちら
	} catch(e) {
	  elem.onblur = null;	// IE はこちら (余計だが)
	}

	elem.onblur = function() { Validator.check(this, reg, extra); }
      }
    },

    /// フォーム要素 elem から onblur を取り除く
    remove_elem_check: function(elem) {
      if (elem) {
	if (elem._validbaloon) {
	  elem._validbaloon.close();
	}
	if ('onblur' in elem) {
	  try {
	    delete elem.onblur;	// FF はこちら
	  } catch(e) {
	    elem.onblur = null;	// IE はこちら
	  }
	}
      }
    },

    dummy: null
  });

Event.observe(window, 'load', function() {
    new EcotechFormUser(document.forms[0]);
  });

