﻿var pxDOM = new prDOM();

//Класс-утилита для работы с DOM
function prDOM() {}

prDOM.prototype.byId = function(Id) {
	return document.getElementById(Id);
}

prDOM.prototype.byTag = function(Owner, Tag) {
	return Owner.getElementsByTagName(Tag);
}

prDOM.prototype.newElement = function(Name, className, owner, text) {
	var e = document.createElement(Name);
	if (className) e.className = className;
	if (owner) this.addChild(owner, e);
	if (text) this.setText(e, text);
	return e;
}

prDOM.prototype.setText = function(owner, text) {
	owner.innerHTML = text
}

prDOM.prototype.newText = function(Text) {
	return document.createTextNode(Text);
}

prDOM.prototype.setClass = function(target, className) {
  target.className = className;
}

prDOM.prototype.newTable = function(className) {
	var Result = this.newElement("table");
	Result.className = className;
	return Result;
}

prDOM.prototype.newCaption = function(className) {
    var Result = this.newElement("caption");
	Result.className = className;
	return Result;
}

prDOM.prototype.newTableBody = function() {
    return this.newElement("tbody");
}

prDOM.prototype.newRow = function(className) {
    var Result = this.newElement("tr");
	Result.className = className;
	return Result;
}

prDOM.prototype.newCell = function(className) {
    var Result = this.newElement("td");
	Result.className = className;
	return Result;
}

prDOM.prototype.setRowValue = function(Row, ValueArray) {
  var Count = ValueArray.length;
  var cell = null;
  for (var i = 0; i < Count; i++) {
    if (Row.cells.length < Count) cell = this.newCell("");
    this.addChild(Row, cell);
    this.addChild(cell, ValueArray[i]);
  }
}

prDOM.prototype.attrValue = function(ownerAttr, Index) {
	return ownerAttr.attributes[Index].nodeValue;
}

prDOM.prototype.addChild = function(Owner, Child) {
	Owner.appendChild(Child);
}

prDOM.prototype.insertBefore = function(owner, Before, Child) {
	owner.insertBefore(Child, Before);
}

prDOM.prototype.removeChild = function(Owner, Child) {
	Owner.removeChild(Child);
}

prDOM.prototype.addElement = function(owner, name, className, value) {
  var Element = this.newElement(name);
  this.setClass(Element, className);
  this.addChild(Element, this.newText(value));
  this.addChild(owner, Element);  
  return Element;
}
