/*
 * NetEdge base javascript
 * version:1.0
 **/
/**
 * Forces the use of the supplied locale where applicable in the library
 */
if (typeof NetEdge == "undefined" || !NetEdge) {
	/**
	 * The NetEdge global namespace object. If NetEdge is already defined, the
	 * existing NetEdge object will not be overwritten so that defined
	 * namespaces are preserved.
	 * 
	 * @class NetEdge
	 * @static
	 */
	var NetEdge = {};
};

NetEdge.namespace = function() {
	var a = arguments, o = null, i, j, d;
	for (i = 0; i < a.length; i = i + 1) {
		d = a[i].split(".");
		o = NetEdge;
		// NetEdge is implied, so it is ignored if it is included
		for (j = (d[0] == "NetEdge") ? 1 : 0; j < d.length; j = j + 1) {
			o[d[j]] = o[d[j]] || {};
			o = o[d[j]];
		}
	}
	return o;
};

NetEdge.URL = "b.xgraph.net/beacon.js.jsp";

NetEdge.browser = {
	isIE : function() {
		var _userAgent = navigator.userAgent.toLowerCase();
		return (/msie/.test(_userAgent) && !/opera/.test(_userAgent));
	}
};

NetEdge.utils = {
	encode : function(str) {
		return str ? encodeURIComponent(str) : str
	},
	toURLParameters : function(obj) {
		if (!obj || !obj.propertyIsEnumerable)
			return "";
		var arr = new Array();
		for ( var property in obj) {
			if (obj[property] && obj[property] != "")
				arr.push(property + "=" + NetEdge.utils.encode(obj[property]));
		}
		if (arr.length > 0)
			return arr.join("&").toString();
		return "";
	}
};

NetEdge.dom = {
	ready : function() {
		if (document && document.getElementsByTagName
				&& document.getElementById && document.body) {
			return true;
		}
		return false;
	}
};

NetEdge.event = {
	bind : function(ele, event, handler) {
		if (!ele)
			return false;
		if (NetEdge.browser.isIE()) {
			ele.attachEvent("on" + event, handler);
		} else {
			ele.addEventListener(event, handler, false);
		}
		return true;
	},
	request : function(url) {
		var img = document.createElement("img");
		img.style.width = "0px";
		img.style.height = "0px";
		img.style.border = '0px';
		img.style.margin = '0px';
		img.style.padding = '0px';
		img.style.overflow = 'hidden';
		img.style.visibility = 'hidden';

		img.src = (("https:" == document.location.protocol) ? "https://"
				: "http://")
				+ NetEdge.URL + "?" + url;

		document.body.appendChild(img);
		return img.src;
	}
};

NetEdge.pageview = {
	tracking : function(ne_uid, ne_pid) {
		return NetEdge.event.request(NetEdge.utils.toURLParameters( {
			puid :ne_uid ? ne_uid : "",
			pid :ne_pid ? ne_pid : "",
			t :"pgv"
		}));
	}
};
NetEdge.conversion = {
	tracking : function(action, ne_uid, ne_pid) {

		return NetEdge.event.request(NetEdge.utils.toURLParameters( {
			at :action ? action : "",
			puid :ne_uid ? ne_uid : "",
			pid :ne_pid ? ne_pid : "",
			t :"con"
		}));
	}
};