if (!document.ELEMENT_NODE) {
	document.ELEMENT_NODE = 1
	document.ATTRIBUTE_NODE = 2
	document.TEXT_NODE = 3
	document.CDATA_SECTION_NODE = 4
	document.ENTITY_REFERENCE_NODE = 5
	document.ENTITY_NODE = 6
	document.PROCESSING_INSTRUCTION_NODE = 7
	document.COMMENT_NODE = 8
	document.DOCUMENT_NODE = 9
	document.DOCUMENT_TYPE_NODE = 10
	document.DOCUMENT_FRAGMENT_NODE = 11
	document.NOTATION_NODE = 12
}

document.importNode = function(importedNode, deep) {
	switch (importedNode.nodeType) {
		case document.ELEMENT_NODE:
			var newNode = document.createElement(importedNode.nodeName)
			if (importedNode.attributes && importedNode.attributes.length > 0)
				each(importedNode.attributes, function(el) { newNode.setAttribute(el.nodeName, importedNode.getAttribute(el.nodeName)) })
			if (deep && importedNode.childNodes && importedNode.childNodes.length > 0)
				each(importedNode.childNodes, function(el) { newNode.appendChild(document.importNode(el, deep)) })
			return newNode
			break
		case document.TEXT_NODE:
		case document.CDATA_SECTION_NODE:
		case document.COMMENT_NODE:
			return document.createTextNode(importedNode.nodeValue)
			break
	}
}

// -- Ajax
var XMLHTTPRequest = function() {
  var oXMLHttpRequest
	if (window.XMLHttpRequest)
		oXMLHttpRequest = new XMLHttpRequest() // FF/Safari/Opera7.6+
  else
    try { oXMLHttpRequest = new ActiveXObject("MSXML2.XMLHTTP") } // IE5.5+/MSXML2+
		catch(e) {
      try { oXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP") } // IE5+/MSXML1
			catch(e) { oXMLHttpRequest = null }
    }
	return oXMLHttpRequest
}

function AjaxObject(url, fn) {
  var urlCall = url
  var that = this
  this.updating = false
  this.update = function(passData, postMethod) {
    if (that.updating == true) return false
    that.updating = true
    var Request = new XMLHTTPRequest()
    if (Request == null) return false
		Request.onreadystatechange = function() {
			if (Request.readyState == 4) {
				that.updating = false
				that.callback(Request.status, Request.responseXML, Request.responseText, Request.statusText)
				delete Request
			}
		}
		if (postMethod == 'POST') {
			Request.open("POST", urlCall, true)
			Request.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
			Request.send(passData)
		} else {
			Request.open("GET", urlCall, true)
			Request.send(null)
		}
		return true
  }
  this.callback = fn || function() { }
}

