/*
Класс для работы с ajax технологиями.
существует два вида запросов, post и get.
результат выполнения храниться в 3 переменных, в зависимости от нужного вам формата данных
*/
/*
Пример:
var ajax= new ajax_class(); - создаем объект класса. с этой строки необходимо начинать работы
ajax.post_access("www.php.net","form"); - выполняем post запрос по адресу www.php.net с параметрами login=djon&password=asdfg
ajax.get_access("www.php.net/?par1=news&par2=show"); - выполняем post запрос по адресу www.php.net/?par1=news&par2=show
--------------------
Доступ к рузультатам:
var text=ajax.respText; - ответ в формате строки

в случае работы с json.
Пример:
ОТВЕТ СЕРВЕРА:
	{"user":
		[
		{"name":"djon"}
		{"last_name":"djon"}
		]
	}
КОД ДЛЯ ОБРАБОТКИ:

var name= ajax.respJSON[0]['name']; - получение имени из json ответа
var last_name= ajax.respJSON[0]['last_name']; - получение фамилии из json ответа

в случае работы с xml, необходимо работать с ответом с помощью dom.
Пример:
ОТВЕТ СЕРВЕРА:
	<xml version="1.0" encoding="utf-8"?>
		<user>
			<name>djon</name>
		</user>
КОД ДЛЯ ОБРАБОТКИ:
var name= ajax.respXML.getElementByTegName("name").value; рузультат- djon
*/
var request=null;//объект для работы с асинхронными запросами
//===========================================
var ajax_class = function ()//конструктора класса. создает объект для работы с асинхронными запросами
	{
	try
		{
		request= new XMLHttpRequest();
		}
	catch(trymicrosoft)
		{
		try
			{
			request= new ActiveXObject("Msxml2.XMLHTTP");
			}
		catch(othermicrosoft)
			{
			try
				{
				request= new ActiveXJbject("Microsoft.XMLHTTP");
				}
			catch(failed)
				{
				request= null;
				}
			}
		}
	if (request==null)
	window.alert("Невозможно создать экземпляр класса.\nВозможно ваш браузер не поддерживает работу с ajax.");
	}
//====================================================

var respText;//результат выполения в текстовом формате
var respXML;//результат выполнения в формате XML
var method;//результат выполнения в формате XML
//====================================================
//var ajax_class.prototype.request;
//функция для проверки выполнения запроса
ajax_class.prototype.readStatus=function ()
{
if (request.readyState==4)
	{
		if (request.status==200)
		{
		respText=request.responseText;
		respXML=request.responseXML;
		method();
		return true;
		}
	else
		{
		window.alert(request.status);
		return false;
		}
	}
else
	return false;
}
//==========================
//=================================================================
ajax_class.prototype.getRequestBody = function(oForm) //функция для получения параметров по имени формы
{
var aParams = new Array();
for(var i = 0; i < document.forms[oForm].elements.length; i++)
	{
	//if(document.forms[oForm].elements[i].type=='file');
	//window.alert(document.forms[oForm].elements[i].type);
	var sParam = encodeURIComponent(document.forms[oForm].elements[i].name);
	sParam += "=";
	sParam += escape(encodeURIComponent(document.forms[oForm].elements[i].value));
	aParams.push(sParam);
	}
return aParams.join("&");
}
//====================================================//====================================================
//функция для выполнения post запроса
/*
url- адресная строка с параметрами
oForm- форма post запроса
*/
ajax_class.prototype.post_access= function(url, oForm, method_last)
{
if (request!=null)
	{
	var param=this.getRequestBody(oForm)
	request.open("POST",url, true);
	request.onreadystatechange=this.readStatus;
	method=method_last;
	request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	request.send(param);
	}
}
//====================================================
//====================================================
//функция для выполнения get запроса
/*
url- адресная строка с параметрами
*/
ajax_class.prototype.get_access= function(url, method_last)
{
if (request!=null)
	{
	request.open("GET",url, true);
	request.onreadystatechange=this.readStatus;
	method=method_last;
	request.send("");
	}
}
//====================================================

//====================================================
function get_post()
	{
	resp=respText.split("||");
	if(document.getElementById("num") != null)
		{
		if (!resp[1]) {resp[1] = "0";}
		document.getElementById("num").innerHTML=resp[1];
		}
	if(document.getElementById("jcart-subtotal") != null)
		{
		if (!resp[0]) {resp[0] = "0 руб.";}
		document.getElementById("jcart-subtotal").innerHTML=resp[0];
		}
	}

function get_loader()
	{
	var ajax= new ajax_class();
	ajax.get_access('http://www.trikvetra.ru/cartdemo/acart.php?action=cartinfo',get_post);
	}

//====================================================

