function Hijax() {

	var container,url,canvas,data,loading,callback,request;
	
	this.setContainer = function(value) {
		container = value;
	};
	this.setUrl = function(value) {
		url = value;
	};
	this.setCanvas = function(value) {
		canvas = value;
	};
	this.setLoading = function(value) {
		loading = value;
	};
	this.setCallback = function(value) {
		callback = value;
	};

 	this.captureData = function() {
		if (container.nodeName.toLowerCase() == "form") {
			container.onsubmit = function() {
				var query = "";
				for (var i=0; i<this.elements.length; i++) {
					query+= this.elements[i].name;
					query+= "=";
					query+= escape(this.elements[i].value);
					query+= "&";
				}
				data = query;
				return !start();
			};
		} 
		else {
			var links = container.getElementsByTagName("a");
			for (var i=0; i<links.length; i++) {
				links[i].onclick = function() {
					var query = this.getAttribute("href").split("?")[1];
					url+= "?"+query;
					return !start();
				};
			}
			links = null;
		}
	};

	var start = function() {
		request = getHTTPObject();
		if (!request || !url) {
			return false;
		} 
		else {
			initiateRequest();
			return true;
		}
	};

	var getHTTPObject = function() {
		var xmlhttp = false;
		if (window.XMLHttpRequest) {
			xmlhttp = new XMLHttpRequest();
		} 
		else if(window.ActiveXObject) {
			try {
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} 
			catch (e) {
				try {
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} 
				catch (e) {
					xmlhttp = false;
				}
			}
	}
	return xmlhttp;
	};

	var initiateRequest = function() {
		if (loading) {
			loading();
		}
		request.onreadystatechange = completeRequest;
		if (data) {
			request.open("POST", url, true);
			request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			request.send(data);
		} 
		else {
			request.open("GET", url, true);
			request.send(null);
		}
	};

	var completeRequest = function() {
		if (request.readyState == 4) {
			if (request.status == 200 || request.status == 304) {
				if (canvas) {
					canvas.innerHTML = request.responseText;
				}
				if (callback) {
					callback();
				}
			}
		}
	};

}


/*
create an object to hold functions, and call on page load
=============================================================*/
var ajaxObj = {
	addEvent: function(elm, evType, fn, useCapture) {
	// cross browser event handling
	if (elm.addEventListener) {
	elm.addEventListener(evType, fn, useCapture);
	return true;
	} else if (elm.attachEvent) {
	var r = elm.attachEvent('on' + evType, fn);
	return r;
	} else {
	elm['on' + evType] = fn;
	}
},



lifestream: function() {
	var prepareResults = function(container, canvas) {
		var xhr = new Hijax();
		xhr.setContainer(container);
		xhr.setUrl("/wp-content/themes/fromnowon-oz/lifestream/lifestream.php");
		xhr.setCanvas(canvas);
		xhr.setLoading(function() {
			displayLoading(canvas);
		});
		xhr.setCallback(function() {
			prepareResults(canvas);						 
		});	
		xhr.captureData();
	};
	

	
	var displayLoading = function(element) {
		element.innerHTML = "";
		var image = document.createElement("div");
		//image.setAttribute("class", "loading");
		//image.setAttribute("alt", "loading");
		image.className = "loading";
		element.appendChild(image);
	};
	
	//prepare div.resultsdiv
	//var all_divs = document.getElementsByTagName("div");
	//var form1 = document.getElementById("lifestream_list");
	var lifestream_list = document.getElementById("lifestream_list");
	var lifestream_canvas = document.getElementById("lifestream_canvas");
	prepareResults(lifestream_list, lifestream_canvas);
	/*for(var i=0; i<all_divs.length; i++) {
		if(all_divs[i].className.match("results")) {
				
		}	
	}*/
	//	all_divs = null;//for IE I think
	

},

};
ajaxObj.addEvent(window, 'load', ajaxObj.lifestream, false);
