function document.oncontextmenu() {
  return true;
}

function document.onkeydown1() {
  var oSource = event.srcElement;

  if (event.keyCode == 13) {
    switch (oSource.tagName) {
      case "INPUT":
        switch (oSource.type) {
          case "button":
          case "submit":
          case "reset":
          case "image":
            break;
          case "text":
          case "password":
          case "checkbox":
          case "radio":
            event.keyCode = 9;
            break;
          case "file":
            return false;
            break;
          default:
            break;
        }

        break;
      case "BUTTON":
        break;
      default:
        event.keyCode = 9;

        break;;
    }
  }

  return true;
}

function leftTrim(str) {
  if (str.search(/^ +/ig) != -1) {
    return RegExp.rightContext;
  }
  else {
    return str;
  }
}

function rightTrim(str) {
  if (str.search(/ +$/ig) != -1) {
    return RegExp.leftContext;
  }
  else {
    return str;
  }
}

function trim(str) {
  return rightTrim(leftTrim(str));
}

function left(str, length) {
  return str.substr(0, length);
}

function right(str, length) {
  return str.substr(str.length-length, length);
}

function repeat(str, count) {
  var result = "";

  for (var i = 0; i < count; i++) {
    result = result.concat(str);
  }

  return result;
}

function hextostring(str) {
  var result = "";

  for (i = 0; i < str.length; i+=2) {
    result += String.fromCharCode(parseInt(str.substr(i, 2), 16));
  }

  return result;
}

function validateNumber(keyCode) {
  if (keyCode < 48 || keyCode > 57) {
    return false;
  }

  return true;
}

function validateIp(keyCode) {
  if (keyCode < 48 || keyCode > 57) {
    return false;
  }

  return true;
}

function isLetter(str) {
  if (str.match(/^[A-Za-z0-9]+$/ig) != null) {
    return true;
  }
  else {
    return false;
  }
}

function isNumber(str) {
  if (str.match(/^([0-9]|[1-9][0-9]+)$/ig) != null) {
    return true;
  }
  else {
    return false;
  }
}

function isIp(ip) {
  if (ip.match(/^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/ig) != null) {
    return true;
  }
  else {
    return false;
  }
}

function isEmail(str) {
  if (str.search(/^\w+@\w+(\.\w+)+$/ig) != -1) {
    return true;
  }
  else {
    return false;
  }
}

function isDate(expression) {
  if (typeof(expression) == "string") {
    var str = null;
    var separator = expression.indexOf("-") != -1 ? "-" : "/";

    if (expression.match(/^\d{4}(-|\/)\d{1,2}(-|\/)\d{1,2}$/ig) != null) {
      var index = expression.indexOf(separator);
      str = expression.substr(index + 1).concat(separator, expression.substring(0, index));
    }
    else if (expression.match(/^\d{1,2}(-|\/)\d{1,2}(-|\/)(\d{2}|\d{4})$/ig) != null) {
      str = expression;
    }
    else {
      return false;
    }

    var date = new Date(str);

    if (!isNaN(date)) {
      var firstIndex = str.indexOf(separator);
      var lastIndex = str.lastIndexOf(separator);

      var m1 = str.substring(0, firstIndex);
      var d1 = str.substring(firstIndex + 1, lastIndex);
      var y1 = str.substr(lastIndex + 1);

      var m2 = date.getMonth() + 1;
      var d2 = date.getDate();
      var y2 = y1.length == 4 ? date.getFullYear() : date.getYear();

      if (parseInt(m1) != parseInt(m2) || parseInt(d1) != parseInt(d2) || parseInt(y1) != parseInt(y2)) {
        return false;
      }
    }
    else {
      return false;
    }
  }
  else {
    return false;
  }

  return true;
}

function inputNumber() {
  var oSource = event.srcElement;

  if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 8) {
    return false;
  }

  return true;
}

function inputDate() {
  var oSource = event.srcElement;

  if (event.keyCode < 48 || event.keyCode > 57) {
    return false;
  }

  if (oSource.value.length == 4) {
    oSource.value += "-";
  }
  else if (oSource.value.length == 7) {
    oSource.value += "-";
  }
  else if (oSource.value.length == 10) {
    return false;
  }

  return true;
}

function makeShadowRect(element, color, size) {
  var rect = null;
  var rectStyle = null;
  var opacity = 0;

  for (var i = 1; i <= size; i++) {
    rect = document.createElement("DIV");
    rectStyle = rect.style;
    opacity = 1 - i / (i + 1);
    //opacity = (size - i + 1) / size;

    rectStyle.position = "absolute";
    rectStyle.pixelLeft = getClientX(element) + i;
    rectStyle.pixelTop = getClientY(element) + i;
    rectStyle.pixelWidth = element.offsetWidth;
    rectStyle.pixelHeight = element.offsetHeight;
    rectStyle.zIndex = element.style.zIndex - i;
    rectStyle.backgroundColor = color;
    rectStyle.filter = 'alpha(opacity=' + (100 * opacity) + ')';

    element.insertAdjacentElement('afterEnd', rect);
  }
}

function getClientX(Element) {
  var offsetSrc = Element;
  var x = 0;

  do
  {
    x += offsetSrc.offsetLeft;
    offsetSrc = offsetSrc.offsetParent;
  } while (offsetSrc.tagName != "BODY")

  return x;
}

function getClientY(Element) {
  var offsetSrc = Element;
  var y = 0;

  do
  {
    y += offsetSrc.offsetTop;
    offsetSrc = offsetSrc.offsetParent;
  } while (offsetSrc.tagName != "BODY")

  return y;
}

function testElement(element) {
  var message = "";

  for (attribute in element) {
    message += attribute + ": " + element[attribute] + "\r\n";
  }

  alert(message);
}

function tr_onmouseover(obj) {
  obj.style.backgroundColor = "#DEDFDE";
}

function tr_onmouseout(obj) {
  obj.style.backgroundColor = "#EFEFEF";
}

function minWindow(obj) {
  var oSource = event.srcElement;

  obj.style.display = "none";
  obj.status = "min";

  oSource.disabled = true;
  oSource.parentElement.children[1].disabled = false;
  oSource.parentElement.children[2].disabled = false;
}

function maxWindow(obj) {
  var oSource = event.srcElement;
  var mainTable = window.document.getElementsByTagName("TABLE")[0];
  var rows = mainTable.rows;

  for (var i = 2; i < rows.length; i++ ) {
    rows[i].style.display = "none";
  }

  obj.status = "max";
  obj.oldHeight = obj.cells[0].children[1].style.pixelHeight;
  obj.cells[0].children[1].style.pixelHeight = 400;
  obj.style.display = "block";
  rows[obj.rowIndex-1].style.display = "block";

  oSource.disabled = true;
  oSource.parentElement.children[0].disabled = false;
  oSource.parentElement.children[2].disabled = false;
}

function restoreWindow(obj) {
  var oSource = event.srcElement;

  switch (obj.status) {
    case "min":
      obj.style.display = "block";
      break;
    case "max":
      var mainTable = window.document.getElementsByTagName("TABLE")[0];
      var rows = mainTable.rows;

      for (var i = 2; i < rows.length; i++ ) {
        rows[i].style.display = "block";
      }

      obj.cells[0].children[1].style.pixelHeight = obj.oldHeight;
      break;
    case "float":
      break;
  }

  oSource.disabled = true;
  oSource.parentElement.children[0].disabled = false;
  oSource.parentElement.children[1].disabled = false;
}

function testNode(Node)
{
	alert(Node.dataType);
  alert(Node.nodeName);
  alert(Node.nodeType);
  alert(Node.nodeTypedValue);
  alert(Node.nodeTypeString);
  alert(Node.nodeValue);
  alert(Node.text);
  alert(Node.xml);
}

function testPos(element)
{
	var strPos = "";

	strPos += "left: " + element.left + " ";
	strPos += "top: " + element.top + " ";
	strPos += "right: " + element.right + " ";
	strPos += "bottom: " + element.bottom + " ";
	strPos += "width: " + element.width + " ";
	strPos += "height: " + element.height + " ";
	strPos += "\r\n";
	strPos += "pixelLeft: " + element.pixelLeft + " ";
	strPos += "pixelTop: " + element.pixelTop + " ";
	strPos += "pixelRight: " + element.pixelRight + " ";
	strPos += "pixelBottom: " + element.pixelBottom + " ";
	strPos += "pixelWidth: " + element.pixelWidth + " ";
	strPos += "pixelHeight: " + element.pixelHeight + " ";
	strPos += "\r\n";
	strPos += "posLeft: " + element.posLeft + " ";
	strPos += "posTop: " + element.posTop + " ";
	strPos += "posRight: " + element.posRight + " ";
	strPos += "posBottom: " + element.posBottom + " ";
	strPos += "posWidth: " + element.posWidth + " ";
	strPos += "posHeight: " + element.posHeight + " ";
	strPos += "\r\n";
	strPos += "offsetLeft: " + element.offsetLeft + " ";
	strPos += "offsetTop: " + element.offsetTop + " ";
	strPos += "offsetWidth: " + element.offsetWidth + " ";
	strPos += "offsetHeight: " + element.offsetHeight + " ";
	strPos += "\r\n";
	strPos += "clientLeft: " + element.clientLeft + " ";
	strPos += "clientTop: " + element.clientTop + " ";
	strPos += "clientWidth: " + element.clientWidth + " ";
	strPos += "clientHeight: " + element.clientHeight + " ";

	alert(strPos);
}

function testElement(Element)
{
  var strElement = "";

  for (Attribute in Element) {
	strElement += Attribute + ": " + Element[Attribute] + "\r\n";
  }

  alert(strElement);
}

function openDialog(page, arguments, modal) {
  var modal = modal ? modal : true;

  if (modal) {
    return window.showModalDialog(page, arguments, "dialogWidth: 400px; dialogHeight: 350px; help: no; status: no;");
  }
  else {
    return window.showModelessDialog(page, arguments, "dialogWidth: 400px; dialogHeight: 350px; help: no; status: no;");
  }
}

function openWindow(page) {
  return window.open(page);
}

function copyForm(src, dest) {
  var srcElements = null;
  var destElements = null;
  var srcItem = null;
  var destItem = null;

  if (src.tagName != "FORM" && dest.tagName != "FORM") {
    return false;
  }
  else {
    srcElements = src.elements;
    destElements = dest.elements;
  }

  for (var i = 0; i < srcElements.length; i++) {
    srcItem = srcElements.item(i);
    if (srcItem.name == "") continue;
    destItem = destElements.namedItem(srcItem.name);
    if (destItem) {
      destItem.value = srcItem.value;
    }
  }

  return true;
}

function menuOver() {
  var element = event.srcElement;
  var tagName = element.tagName;

  switch (tagName) {
    case "A":
    element.parentElement.className = "menuOver";
    break;
  }
}

function menuOut() {
  var element = event.srcElement;
  var tagName = element.tagName;

  switch (tagName) {
    case "A":
    element.parentElement.className = "menu";
    break;
  }
}

function enableForm(form) {
  for (var i = 0; i < form.elements.length; i++) {
    form.elements.item(i).disabled = false;
  }
}

function save(element) {
  var form = element.form;
}

function cancel() {
  var from = document.getElementById("from");

  if (from && from.value != "") {
    location.href = from.value;
  } else {
    history.back();
  }
}

function checkAll(name, checked) {
  var checkboxs = document.getElementsByName(name);
  
  for (i = 0; i < checkboxs.length; i++) {
    checkboxs[i].checked = checked;
  }
}

function check(element) {
  if (element.tagName == "input" && element.type == "checkbox") {
  	element.checked = !element.checked;
  }
}