
function ajax_sb_dump(url, element_id, sb_id, tempcontent) {
	
	
	sethtml(element_id, tempcontent) ;
	
	url = url + document.getElementsByName(sb_id)[0].value ;
	
	handler = function() {
		element = document.getElementById(element_id) ;
		element.innerHTML = xmlhttp.responseText ;
	}
	
	fetchpage(url, handler) ;
	
}

// TODO: clean this up
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function zoom_image(url, element_id)
{
	
	mydiv = document.getElementById(element_id);
	mydiv.style.display = "block";
	
	// this is only needed to play nice with the CSS that goes along with this functionality
	// if a way to make IE play nice can be found, this would no longer be needed
	// TODO: find a way to fix the css in IE
	var scrolled = getScrollXY();
	scroll(0, 0);
	document.body.style.overflow = "hidden";
	
	// what to display while the image is loading -- change this to add a loading image or something
	setelhtml(mydiv, "Loading...");
	
	image = new Image;
	
	image.onload = function()
	{
		setelhtml(mydiv, "");
		ml = (image.width / -2);
		mydiv.appendChild(image);
	}
	
	var close = function()
	{
		setelhtml(mydiv, "");
		mydiv.style.display = "none";
		document.body.style.overflow = "auto";
		// also needed because IE doesn't know how to do CSS
		scroll(scrolled[0], scrolled[1]);
	}
	
	image.onclick = close;
	mydiv.onclick = close;

	image.src = url;
	
	/*
	handler = function()
	{
		if (xmlhttp.readyState == 4)
		{
			element = document.getElementById(element_id);
			element.innerHTML = xmlhttp.responseText;
		}
	}
	
	sethtml(element_id, "Loading...");
	
	fetchpage(url, handler);
	*/
}

function ajax_dump(url, element_id)
{
	handler = function()
	{
		if (xmlhttp.readyState == 4)
		{
			element = document.getElementById(element_id);
			element.innerHTML = xmlhttp.responseText;
		}
	}
	
	sethtml(element_id, "Loading...");
	
	fetchpage(url, handler);
}

function setelhtml(el, data)
{
	el.innerHTML = data;
}

// SET INNER HTML OF AN HTML ELEMENT PASSED BY ID
function sethtml(element_id, data) {
	el = document.getElementById(element_id) ;
	setelhtml(el, data);
}

var xmlhttp=false;

function fetchpage(xmlUrl, handler) {
	
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlhttp = false;
			}
		}
	@end @*/
	
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	
	// ENABLE REMOTE PAGE FETCHING IN FIREFOX
	try {
		netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
	} catch (e) {
		//alert("Permission UniversalBrowserRead denied.");
	}
	
	xmlhttp.open("GET", xmlUrl, true);

	// set handler
	if (handler != null)
	{
		xmlhttp.onreadystatechange = handler;
	}
	else
	{
		xmlhttp.onreadystatechange = function()
		{
			if (xmlhttp.readyState == 4)
			{
				fetchpage = xmlhttp.responseText;
			}
		}
	}
	
	
	xmlhttp.send(null);
	
	return xmlhttp ;
}


function getContent(url, callback)
{
	if (window.XMLHttpRequest)
	{
		// IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	}
	else
	{
		// IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}

	xmlhttp.onreadystatechange = callback;

	try
	{
		xmlhttp.open("GET", url, true);
		xmlhttp.send();
	}
	catch (e)
	{}
	
}
