/*
    // dimaninc general js functions

    // 2006/03/28
        * getHTTPRequestObject() added
        * diXMLRequest.get() and .post() added

    // 2006/02/28
        * standard escape() rewritten

    // 2006/02/20
        * is_ie added

    // 2006/02/11
        * getLeft(), getTop() added
        * _px() improved

    // 2006/02/08
        * addEvent() added
        * _px() added

    // 2006/02/06
        * the first version of this shit
*/

var is_ie = (document.all) ? true : false;

function isEmpty(str)
{
  if (str == null || str == "" || isNaN(str))
    return true;
  else
    return false;
}

function _ge(eid)
{
  return document.getElementById(eid);
}

function addEvent(elem, evname, func)
{
  if (elem.attachEvent)
  {
   //elem.attachEvent("on" + evname, func);
   //alert("elem.on"+evname+"=func;");
   eval("elem.on"+evname+"=func;");
  }
  else
   elem.addEventListener(evname, func, false); //true
}

function _px(px)
{
  var x = parseInt(px, 10);

  if (isNaN(x)) x = 0;

  return x;
}

function getLeft(el)
{
  rezz = el.offsetLeft;
  if (el.offsetParent) rezz += getLeft(el.offsetParent);
  return rezz;
}

function getTop(el)
{
  rezz = el.offsetTop;
  if (el.offsetParent) rezz += getTop(el.offsetParent);
  return rezz;
}

// escape function
var escape_trans = [];
for (var i = 0x410; i <= 0x44F; i++) escape_trans[i] = i - 0x350; // À-ßà-ÿ
escape_trans[0x401] = 0xA8;    // ¨
escape_trans[0x451] = 0xB8;    // ¸

var escapeOrig = window.escape;

window.escape = function(str)
{
  var ret = [];
  var str1 = str.toString();

  for (var i = 0; i < str1.length; i++)
  {
    var n = str1.charCodeAt(i);
    if (typeof escape_trans[n] != 'undefined') n = escape_trans[n];
    if (n <= 0xFF) ret.push(n);
  }
  return escapeOrig(String.fromCharCode.apply(null, ret));
}

function getHTTPRequestObject()
{
  var xmlHttpRequest = false;

  if (typeof ActiveXObject != 'undefined')
  {
    try {
      xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
    } catch(e) {}

    if (!xmlHttpRequest) try {
      xmlHttpRequest = new ActiveXObject('Msxml2.XMLHTTP');
    } catch(e) {}
  }
  else if (typeof XMLHttpRequest != 'undefined')
  {
    xmlHttpRequest = new XMLHttpRequest();
  } else
  {
    xmlHttpRequest = false;
  }

  return xmlHttpRequest;
}

var diXMLRequest =
{
  get : function (url, callback)
  {
    var _getter = getHTTPRequestObject();
    _getter.open("GET", url, true);

    _getter.onreadystatechange = function() {
      if (_getter.readyState == 4)
      {
        callback(_getter.responseXML);
      }
    }

    _getter.send(null)
  },

  post : function (url, form, callback)
  {
    var _poster = getHTTPRequestObject();

    _poster.open("POST", url, true);
    _poster.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    _poster.setRequestHeader('Connection', 'close');
    _poster.send(form);

    _poster.onreadystatechange = function() {
      if (_poster.readyState == 4)
      {
        callback(_poster.responseXML);
      }
    };

    if (is_ie) _poster.send(null);
  }
}
