function Json(data) { this.parent = portfolio; this.init(data); }
Json.prototype = {
	init: function(data) {
		this.target = document.createElement('div');
	},
	addEventListener: function(event, funct, capture) {
		if (this.target.addEventListener) {this.target.addEventListener(event, funct, capture);}
		else if (this.target.attachEvent) {this.target.attachEvent('on'+event, funct);}
		return false;
	},
	load: function(data) {
		var instance = this;
		if (typeof data == 'string') {
			try {var ajax = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {}
			ajax.onreadystatechange = function() { instance.output(this);};
			ajax.open('GET', data, true);
			ajax.send();
		}
		else {this.complete(data);}
	},
	output: function(e) {
		if (e.readyState == 4 && e.status == 200 && e.responseText) {
			this.data = eval('('+e.responseText+')') || e.responseText;
			this.complete();
		}
	},
	complete: function() {
		this.fireEvent(this.target, 'complete');
	},
	fireEvent: function(object, event) {
		if (document.createEvent) {
			var e = document.createEvent('Event');
			e.initEvent(event, false, false);
			e.parent = this;
			object.dispatchEvent(e);
		}
		else if (document.createEventObject) {
			var e = document.createEventObject();
			e.parent = this;
			//object.fireEvent('on'+event, e);
			portfolio.output(e);
		}
	}
}
