
var addEvent = (window.addEventListener) ?
   (function(elm, type, event) {
      elm.addEventListener(type, event, false);
   }) : (window.attachEvent) ?
   (function(elm, type, event) {
      elm.attachEvent('on'+type, event);
   }) :
   (function(elm, type, event) {
      elm['on'+type] = event;
   }) ;

var Position = {
   offset: function(elm) {
      var pos = {};
      pos.x = this.getOffset('Left', elm);
      pos.y = this.getOffset('Top', elm);
      return pos;
   },

   getOffset: function(prop, el) {
      if(!el.offsetParent || el.offsetParent.tagName.toLowerCase() == "body")
         return el['offset'+prop];
      else
         return el['offset'+prop]+ this.getOffset(prop, el.offsetParent);
   }
};


function createHttpRequest(){

	if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				return null;
			}
		}
	} else {
		return null;
	}
}

function requestHttp( data, method, fileName, callback, async ) {
	var httpoj = createHttpRequest();
	
	if (method == 'GET') {
		fileName = fileName + '?' + data + ';t=' +(new Date()).getTime();
		data = "";
	}
	httpoj.open( method, fileName, async );

	httpoj.onreadystatechange = function() {
		if (httpoj.readyState==4) {
			callback(httpoj)
		}
	}
    
	httpoj.send( data );
}


