// JavaScript Document
// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();

// retrieves the XMLHttpRequest object
function createXmlHttpRequestObject()
{
	// will store the reference to the XMLHttpRequest object
	var xmlHttp;
	// if running Internet Explorer
	if(window.ActiveXObject)
	{
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = false;
		}
	}
	// if running Mozilla or other browsers
	else
	{
		try
		{
			xmlHttp = new XMLHttpRequest();
		}
		catch (e)
		{
			xmlHttp = false;
		}
	}
	// return the created object or display an error message
	if (!xmlHttp)

	alert("Error creating the XMLHttpRequest object.");
	else
	return xmlHttp;
}

// make asynchronous HTTP request using the XMLHttpRequest object
function process()
{

	// proceed only if the xmlHttp object isn't busy
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
	{
		// retrieve the name typed by the user on the form
		text_seach = encodeURIComponent(document.getElementById("textfield").value);
		radio = get_radiobutton();
		// execute the quickstart.php page from the server
		if(text_seach.length > 0) {
			xmlHttp.open("GET", "private/ajax_seach.php?text_seach=" + text_seach + "&radio=" + radio, true);
			// define the method to handle server responses
			xmlHttp.onreadystatechange = handleServerResponse;
			// make the server request
			xmlHttp.send(null);
		}
		// define the method to handle server responses
		//xmlHttp.onreadystatechange = handleServerResponse;
		// make the server request
		//xmlHttp.send(null);
	}
}

// executed automatically when a message is received from the server
function handleServerResponse()
{
	// move forward only if the transaction has completed
	if (xmlHttp.readyState == 4)
	{
		// status of 200 indicates the transaction completed successfully
		if (xmlHttp.status == 200)
		{
			// extract the XML retrieved from the server
			xmlResponse = xmlHttp.responseXML;
			// obtain the document element (the root element) of the XML structure
			xmlRoot = xmlResponse.documentElement;
			// get the text message, which is in the first child of
			// the the document element

			//Формируем массивы данных из тегов XML-документа
			naimenovanieArray = xmlRoot.getElementsByTagName("naimenovanie");
			autorArray = xmlRoot.getElementsByTagName("autor");
			godArray = xmlRoot.getElementsByTagName("god");
			nomerArray = xmlRoot.getElementsByTagName("nomer");
			egodArray = xmlRoot.getElementsByTagName("egod");

			radioArray = xmlRoot.getElementsByTagName("radio");
			seachArray = xmlRoot.getElementsByTagName("seach");

			if (naimenovanieArray.length==0){
				var html = "<tr><td><strong>По вашему запросу ничего не найдено!</strong></td></tr>";
			} else {
				var html = "";
			}

			//Составляем HTML-документ из XML
			for (var i=0; i<naimenovanieArray.length; i++){

				naimenovanie = naimenovanieArray.item(i).firstChild.data;
				autor = autorArray.item(i).firstChild.data;
				god = godArray.item(i).firstChild.data;
				nomer = nomerArray.item(i).firstChild.data;
				egod = egodArray.item(i).firstChild.data;

				radio = radioArray.item(0).firstChild.data;
				seach = seachArray.item(0).firstChild.data;


				//Выделение поиска
				switch (radio){

					case "1" :

					var tmp_seach = sub_str(naimenovanie, seach);
					var str = naimenovanie;
					var result=str.replace(new  RegExp(seach,'gi'), "<span class=\"highlight\">" + tmp_seach + "</span>");
					naimenovanie = result;
					break;

					case "2" :

					var tmp_seach = sub_str(autor, seach);
					var str = autor;
					var result=str.replace(new  RegExp(seach,'gi'), "<span class=\"highlight\">" + tmp_seach + "</span>");
					autor = result;
					break;

					case "3" :

					var tmp_seach = sub_str(god, seach);
					var str = god;
					var result=str.replace(new  RegExp(seach,'gi'), "<span class=\"highlight\">" + tmp_seach + "</span>");
					god = result;
					break;

					case "4" :

					var tmp_seach = sub_str(egod, seach);
					var str = egod;
					var result=str.replace(new  RegExp(seach,'gi'), "<span class=\"highlight\">" + tmp_seach + "</span>");
					egod = result;
					break;


				}


				html += "<tr><td>" + (i+1) + ". " + "<a href='http://i.hi-edu.ru/cdo/vlib/xbook" +
				nomer + "/01/index.html' target='_blank'>" +
				naimenovanie + "</a>" + ", " + autor +
				god + "<br />" + "<strong>Дата выпуска электронного издания:</strong> " + egod +
				"</td></tr>";
			}
			//Выводим на экран
			document.getElementById("divMessage").innerHTML = "<table border='0'>" + html + "</table>";


		}
		// a HTTP status different than 200 signals an error
		else
		{
			alert("There was a problem accessing the server: " + xmlHttp.statusText);
		}
	}
}

// Определяем какой из радио-кнопок выбрана
function  get_radiobutton() {
	var sel = false;
	var vopros = document.getElementById("rads");
	var radios  = vopros.getElementsByTagName("input");
	for(var k = 0; k < radios.length; k++){
		if(radios[k].type == "radio"){
			if(radios[k].checked){
				return (radios[k].value);
			}
		}
	}

}

// Поиск в строке подстроки
function sub_str(str, seach) {

	var str_low = str.toLowerCase();
	var seach_low = seach.toLowerCase();
	var i = str_low.indexOf(seach_low);
	var cnt = seach_low.length;
	var start_str = str.substring(i,i+cnt);

	return start_str;
}


