/*
Subject : UI Web component of Form RadioBox
Author : ±è¿ë´ë(Yong-dae Kim)
Date : 2006-09-15
*/

var xRadio = Class.create();
var xRadios = new Array();
var xRadiosElements = new Array();
xRadio.prototype = {
  initialize: function(objId) { //  initialize
    this.obj = $(objId);
    if(this.obj.type == 'radio') {
      this.newObjImg = document.createElement('IMG');
      this.newObjImg.setAttribute('align','absmiddle');
      this.newObjImg.setAttribute('id','im'+objId);
      this.turnOn = '/Images/uiComponent/form/radio/checked.png';
      this.turnOff = '/Images/uiComponent/form/radio/default.png';
      this.obj.parentNode.insertBefore(this.newObjImg, this.obj);
      this.obj.style.display='none';
      this.newObjImg.src=(this.obj.checked==true)?this.turnOn:this.turnOff;
      this.newObjImg.style.width='18px';
      this.newObjImg.style.height='18px';
      this.newObjImg.style.padding='1px';
      if(this.obj.disabled) this.newObjImg.className='gray';
      this.setRadioGroups('im'+objId); // set radio obj
      this.newObjImg.onmouseup = this.reBuild.bindAsEventListener(this);
      if(typeof this.obj.getAttribute('onclick') == 'string') { // FF, Opera
        this.evtClick = function(e) { eval(this.obj.getAttribute('onclick')); }
        this.newObjImg.onclick = this.evtClick.bindAsEventListener(this);
      } else if( typeof this.obj.getAttribute('onclick') == 'function') { // IE
        this.evtClick = eval(this.obj.getAttribute('onclick'));
        this.newObjImg.onclick = this.evtClick.bindAsEventListener(this);
      }
    }
  },

  reBuild: function(e) { // Event onmouseup
    if(this.obj.checked == false && this.obj.disabled == false) {
      for(var i=0; rg=document.getElementsByName(this.obj.name)[i]; i++) {
        rg.checked = false;
      }
      var g = xRadios.indexOf(this.obj.name);
      for(i=0; re=$(xRadiosElements[g][i]); i++) {
        re.src = this.turnOff;
      }
      this.newObjImg.src =this.turnOn;
      this.obj.checked = true;
      if(this.obj.disabled) this.newObjImg.className='gray';
    }
  },

  setRadioGroups: function(rId) {
    if(xRadios.indexOf(this.obj.name) < 0) {
      var i = xRadios.length;
      xRadios[i]=this.obj.name;
      xRadiosElements[i] = new Array();
    } else {
      var i = xRadios.length -1;
    }
    xRadiosElements[i][xRadiosElements[i].length] = rId;
    return;
  }
}

document.write('<div style="display:none;"><img src="/Images/uiComponent/form/radio/default.png" /><img src="/Images/uiComponent/form/radio/checked.png" /></div>');
