function ajaxRequest(){
	var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
	if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
		for (var i=0; i<activexmodes.length; i++){
			try{
				return new ActiveXObject(activexmodes[i])
			}
			catch(e){
				//suppress error
			}
		}
	}
	else if (window.XMLHttpRequest) {// if Mozilla, Safari etc
		return new XMLHttpRequest()
	}
	else {
		return false
	}
}
function ajaxpost(id, name, company, dir, current, update){
	if (update != "false") {
		var outershell = document.getElementById("my_fav_content");	
		var count = countChildElements(outershell, 'div');
		var noresults;
		if (count == 9 && dir =="remove") {
			noresults = "noresults";
		}
		else {
			noresults = "results";
		}
	}
	var favicon = document.getElementById("favicon_"+id);
	
	var mypostrequest=new ajaxRequest()
	mypostrequest.onreadystatechange=function(){
		if (mypostrequest.readyState==4){
			if (mypostrequest.status==200 || window.location.href.indexOf("http")==-1){
				if (update != "false")
				{
					if (dir == "add") {
					
						var insertid;				
						var elementid = "result"+count;
						
						if (count == 2) {
							insertid = "favnoresultsid";
						}
						else {
							insertid = elementid;
							
							eDIV = document.createElement("div");						
							eDIV.setAttribute("id","result"+count);						
							outershell.appendChild(eDIV);
						}
						document.getElementById(insertid).innerHTML=mypostrequest.responseText;
					}
					else if (dir == "remove") {
						removeNode(current, 3);
						if (noresults == "noresults") {
							document.getElementById("my_fav_content").innerHTML=mypostrequest.responseText;
						}
					}
				}
				
				if (dir == "add") {
					if (favicon) {
						favicon.style.visibility = "hidden";
					}
				}
				else
				{
					if (favicon) {
						favicon.style.visibility = "visible";
					}
				}
			}
			else{
				alert("An error has occured making the request")
			}
		}
	}
	var parameters="id="+id+"&name="+name+"&company="+company+"&direction="+dir+"&noresults="+noresults
	mypostrequest.open("POST", "/content/nostyle/favAjaxHandler.espx", true)
	mypostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
	mypostrequest.send(parameters)
}
function countChildElements(par, child) {
	var childCount = par.getElementsByTagName(child).length;
	return childCount;
}
function removeNode (val, levels) {
	var p = new Array();
	p[0] = val;
	for (var i=1; i<=levels; i++) {
		p[i] = p[i-1].parentNode;
	}
	var c = p.length - 1;
	p[c].parentNode.removeChild(p[c]);
}
