//  JavaScript Document

//  addNewIssueLineHidding (2010-03-25)

//  typical using of this component
//  window.addNewIssueLineHidding = new addNewIssueLineHidding();
//  window.addNewIssueLineHidding.applyTo('question-1-5');

//

function addNewIssueLineHidding() {
  var self = this;
  //
  this.containerID = '';
  this.containerElem = null;
  //
  this.buttonValue = 'Add a new issue';
  this.buttonClassName = 'button button-gray button_over-green';
  this.mainQuery = 'table.edittable-type1';
  //
  this.init = function() {
    return true;
  };
  //
  this.applyTo = function(containerID) {
    self.containerID = containerID;
    self.containerElem = dojo.byId(self.containerID);
    if (!self.containerElem) return false;
    dojo.query(self.mainQuery,self.containerElem).forEach(self.transform);
    return true;
  };
  //
  this.transform = function(node,index) {
    var buttonContainerElem = dojo.query('.'+node.className+'-buttoncontainer',self.containerElem)[index];
    var newButton = dojo.create('input', { type: 'button', className: self.buttonClassName, value: self.buttonValue}, buttonContainerElem);
    newButton.addNewIssueLineHidding = new Object();
    newButton.addNewIssueLineHidding.table = node;
    newButton.addNewIssueLineHidding.position = 0;
    dojo.connect(newButton,'onclick',self.onClick);
    dojo.query('tbody tr',node).forEach(self.hideLine);
    return true;
  };
  //
  this.hideLine = function(node,index) {
    if (index!=0) {
      node.style.display = 'none';
    }
    return true;
  };
  //
  this.onClick = function (e,thisElem) {
    if (!thisElem) thisElem = this;
    thisElem.addNewIssueLineHidding.position++;
    var lines = dojo.query('tbody tr',thisElem.addNewIssueLineHidding.table);
    lines[thisElem.addNewIssueLineHidding.position].style.display = '';
    if (thisElem.addNewIssueLineHidding.position>=9) {
      thisElem.style.display = 'none';
    }
    return true;
  };
  //
  return self.init();
}

//  end of document