// JavaScript Document
// Проверка на занятость камеры другим пользователем

// Переменная для хранения ссылка на объект XMLHttpRequest
var xmlHttpRefresh = createXmlHttpRequestObjectRefresh();

// Создание экземпляра объекта XMLHttpRequest
function createXmlHttpRequestObjectRefresh()
{
	// переменная для хранения ссылки на объект XMLHttpRequest
	var xmlHttpRefresh;
	
	// кроме IE
	try
	{
		xmlHttpRefresh = new XMLHttpRequest();
	}
	catch(e)
	{
		var xmlHttpVersionsRefresh = new Array("MSXML2.XMLHTTP.6.0",
										"MSXML2.XMLHTTP.5.0",
										"MSXML2.XMLHTTP.4.0",
										"MSXML2.XMLHTTP.3.0",
										"MSXML.XMLHTTP",
										"Microsoft.XMLHTTP");
		for ( var i = 0; i < xmlHttpVersionsRefresh.length && !xmlHttpRefresh; i++ )
		{
			try
			{
				xmlHttpRefresh = new ActiveXObject(xmlHttpVersionsRefresh[i]);
			}
			catch(e){}
		}
	}
	
	// Вернуть созданный объект XMLHttpRequest илм вывести сообщение об ошибке
	if (!xmlHttpRefresh)
	{
		alert("Ошибка при создании объекта XMLHttpRequest v3");
	}
	else
	{
		return xmlHttpRefresh;
	}
}

// Вызывается для чтения файла с сервера 
// загрузка фото на сервер
function processRefresh()
{
	if (xmlHttpRefresh)
	{
		//alert("Обновление");
		xmlHttpRefresh.open("GET", "ajax/refresh.php", true);
		xmlHttpRefresh.onreadystatechange = handleServerResponseRefresh;
		xmlHttpRefresh.send(null);
	}
	else
	{
		// Если соединение занято, повторить попытку через 30 секунд
		setTimeout("processRefresh()", 30000);
	}
}

// Функция вызывается при изменении состояния ззапроса HTTP
function handleServerResponseRefresh()
{
	if (xmlHttpRefresh.readyState == 4)
	{
		if ( xmlHttpRefresh.status == 200)
		{
			var xmlResponse = xmlHttpRefresh.responseXML;
	
	        // Перехватить потенциально возможные ошибки в IE и Opera
	        if (!xmlResponse || !xmlResponse.documentElement)
	            throw("Неверная структура документа XML:\n" + xmlHttpRefresh.responseText);
		
	        // Перехватить потенциально возможные ошибки в FireFox
	        var rootNodeName = xmlResponse.documentElement.nodeName;
	        if (rootNodeName == "parsererror")
	            throw("Неверная структура документа XML:\n" + xmlHttpRefresh.responseText);
	
	        // Ссылка на корневой документ
			xmlRoot = xmlResponse.documentElement;
			
			status = xmlRoot.getElementsByTagName("status").item(0).firstChild.data;
			loc = xmlRoot.getElementsByTagName("location").item(0).firstChild.data;
			
			if ( status == 1 )
			{
				alert("В настоящий момент камера \"" + loc + "\" освободилась.\nДля управления Вам необходимо кликнуть на ссылку \"Обновить\"!");
			}
			
			setTimeout("processRefresh()", 30000);
		}
		else
		{
			alert("Возникли проблемы во время получения данных:\n" + xmlHttpRefresh.statusText);
		}
	}
}


	
		
