/**
 * ozein_checkgroup
 *  (c) 2007 NEXT CO.,LTD. (http://www.next-group.jp/)
 */
 
 /**
 * CHECKBOXのグルーピングを行う
 *   options.trigger :
 *     親となるチェックボックスのID。このボックスが常にトリガとなる。
 *   node :
 *     子チェックボックスを包含するelement。
 *     これらの子らが、親と連動してチェックされたり外されたりする。
 */
 
Ozein.CheckGroup = new Class.create();

Ozein.CheckGroup.prototype = {
  initialize: function(node, options) {
    this.checkArr = new Array();
    this.setTargetObj(node.childNodes);
    Event.observe(options.trigger, 'click', this.click.bindAsEventListener(this, options.trigger));
  },
  setTargetObj: function(elements) {
      for(var i=0;i<elements.length;i++){
	  //親だったら再帰的にこの関数適用
	  //スカラー変数だったら普通に
		  if (elements[i].hasChildNodes()){
		    this.setTargetObj(elements[i].childNodes);
		  } else {
		    if(elements[i].tagName && elements[i].tagName.eqi('input') && elements[i].type == 'checkbox') {
			this.checkArr.push(elements[i]);
		  }
		}
	}
  },
  check: function(val) {
      for(var i=0; i<this.checkArr.length;i++){
          this.checkArr[i].checked = val;
      }
  },
  click: function (e, node) {
    if (!document.getElementById(node).tagName.eqi('input')) {
      return (true);
    }
    var val = Event.element(e).checked;

    this.check(val);
	return (true);
  },
  eLoad: function (e, node) {
    var ua = navigator.userAgent;
    if (ua.indexOf("Safari") == -1) {
      // ブラウザの戻る時にバッファがクリアされるため、初期値を設定
      var node = document.getElementById (parent_id);
      this.checked = node.checked;
    }
    if (ua.indexOf("Safari") != -1) {
      // Safari用の特別初期化処理
      var pnode = document.getElementById(parent_id);
      this.checked = pnode.checked;
      pnode['onclick'] = function() {homesCtrl._eClick(pnode);};
    }
    if (ua.indexOf("Opera 7") != -1) {
      // Opera 7用の特別初期化処理
      list = document.getElementsByTagName('label');
      for (i=0;i<list.length;++i) {
        trg=list[i].attributes.getNamedItem('for');
        if (trg) {
          if (trg.value==parent_id) {
            var pnode = document.getElementById(parent_id);
            list[i]['onclick'] = function() {homesCtrl._eClick(pnode);};
            return;
          }
        }
      }
    }
  }
}