function createInstance(){
	var req = null;
	if (window.XMLHttpRequest){
		req = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("XHR not created");
			}
		}
	}
	return req;
}



function saveExpert(expertID, actionType){
	var req = createInstance();
	
	if (actionType == 'add'){
		var data = "action=add&expertID="+expertID;
		
		req.onreadystatechange = function(){ 
			if(req.readyState == 4){
				if(req.status == 200){
					document.getElementById('saveExpertLink'+expertID).innerHTML = "Expert Added - <a href=\"javascript:saveExpert("+expertID+", 'remove');\">Remove</a> - <a href=\"./expertFolder.php\">My Expert Folder</a>";
				}	
				else{
					alert("Error: returned status code " + req.status + " " + req.statusText);
				}	
			} 
		}; 
		
		req.open("POST", "ajax-saveExpert.php?"+data, true); 
		req.send(data); 
	}
	else if (actionType == 'remove'){
		var data = "action=remove&expertID="+expertID;
		
		req.onreadystatechange = function(){ 
			if(req.readyState == 4){
				if(req.status == 200){
					document.getElementById('saveExpertLink'+expertID).innerHTML = "Expert Removed - <a href=\"javascript:saveExpert("+expertID+", 'add');\">Save</a>";
				}	
				else{
					alert("Error: returned status code " + req.status + " " + req.statusText);
				}	
			} 
		}; 
		
		req.open("POST", "ajax-saveExpert.php?"+data, true); 
		req.send(data); 
	}
}



function removeExpert(expertID, actionType){
	var req = createInstance();
	var data = "action=remove&expertID="+expertID;
	
	req.onreadystatechange = function(){ 
		if(req.readyState == 4){
			if(req.status == 200){
				document.location.href = './expertFolder.php';
			}	
			else{
				alert("Error: returned status code " + req.status + " " + req.statusText);
			}	
		} 
	}; 
	
	req.open("POST", "ajax-saveExpert.php?"+data, true); 
	req.send(data);
}



function toggleLayer(whichLayer){
	var elem, vis;
	if( document.getElementById ) // this is the way the standards work
		elem = document.getElementById( whichLayer );
	else if( document.all ) // this is the way old msie versions work
		elem = document.all[whichLayer];
	else if( document.layers ) // this is the way nn4 works
		elem = document.layers[whichLayer];
		vis = elem.style;
	// if the style.display value is blank we try to figure it out here
	if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
		vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
		vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}