function dcam_init_stream(name, interval)
{
	window.dcam_last_id = 0;
	window.dcam_last_frame = 0;
	setInterval('dcam_push_stream(\'' + name + '\')',
		interval);
}

function dcam_xmlhttp_request(url, async)
{
	var request;

	if (window.XMLHttpRequest) {
		request = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
   		// Try ActiveX
		try { 
			request = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e1) { 
			// first method failed 
			try {
				request = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e2) {
				// both methods failed
				return false;
			} 
		}
	}

	request.open('GET', url, async);
	request.setRequestHeader('Content-Type',
		'application/x-www-form-urlencoded');
	return request;
}

function dcam_push_stream(name)
{
	var stream = dcam_get_stream_object(name);
	if (!stream) document.location.reload();
	var total = stream.TGetProperty("/", 5);
	var loaded = stream.TGetProperty("/", 12);
	if (!loaded) {
		stream.LoadMovie(0, url);
		return;
	}
	var url = stream.TGetProperty("/", 15);
	if (loaded == total) {
		stream.LoadMovie(0, url);
		loaded = stream.TGetProperty("/", 12);
	}

	stream.TGotoFrame("/", loaded);
	stream.TPlay("/");

	window.dcam_status_request = dcam_xmlhttp_request('index.php?status=' + name, true);
	if (!window.dcam_status_request) return;
	window.dcam_status_request.onreadystatechange = dcam_status_response;
	window.dcam_status_request.send(null);
}

function dcam_get_stream_object(name)
{
	if (window.document[name])
		return window.document[name];
	if (navigator.appName.indexOf("Microsoft Internet") == -1) {
		if (document.embeds && document.embeds[name])
			return document.embeds[name]; 
	}
	return document.getElementById(name);
}

function dcam_status_response()
{
	var id = 0;

	if (!window.dcam_status_request) return;
	if (window.dcam_status_request.readyState != 4) return;
	if (window.dcam_status_request.status == 200) {
		var response = window.dcam_status_request.responseXML;
		if (response) {
			var status_node = response.getElementsByTagName('status')[0];
			if (status_node) {
				var id_node = status_node.getElementsByTagName('id')[0];
				if (id_node) id = id_node.firstChild.nodeValue;
			}
		}
	}

	if (id == 0 || (window.dcam_last_id != 0 && window.dcam_last_id != id))
		document.location.reload();
	else window.dcam_last_id = id;
}

// vi: ts=4
