httpRequest = new Array();


function AjaxDataObject(){
	
	/* vars */
	this._arData = new Array();
	
	/* methods */
	this.addVar = addVar;
	this.getVar = getVar;
	this.setValue = setValue;
	this.getData = getData;

	
	// добавить занчение в ракурсе key=>val
	function addVar(index,val)
	{
		this._arData[index] = val;
	}
	
	// получение по ключу
	function getVar(index)
	{
		try {
			if (this._arData[index])
				{
					return this._arData[index];
				}
		}catch(e){
			alert('Не могу найти элемент массива с индексом'+index+' !');
			return false;
		}
	}
	
	// поменятья значение
	function setValue(index,val){
		if (this.getVar(index))
		{
			this._arData[index] = val;
		}
	}
	
	// вернуть весь массив данных
	function getData()
	{
		return this._arData;
	}
}

/* носитель данных AJAX */
var internalData = new AjaxDataObject();

function HandleRequest (){
	
	/* vars */
	this.http_request = new Object();
	this.objExecution = new Object();

	
	/* init methods */
	this.makeHandler = makeHandler;
	this.makeRequest = makeRequest;
	this.checkReady = checkReady;
	this.setObjExecution = setObjExecution;
	
	
	
	function makeHandler()
	{
		if ( window.XMLHttpRequest ) { // Mozilla, Safari,...
			
			this.http_request = new XMLHttpRequest();
			if (this.http_request.overrideMimeType) {
				this.http_request.overrideMimeType('text/xml');
			}
			internalData.addVar("http_request",this.http_request);
		} else if (window.ActiveXObject) { // IE
			try {
				this.http_request = new ActiveXObject("Msxml2.XMLHTTP");
				internalData.addVar("http_request",this.http_request);
			} catch (e) {
				try {
					this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
					internalData.addVar("http_request",this.http_request);
				} catch (e) {}
			}
		} else {
			this.http_request = false;
		}
		
		if (!this.http_request) {
			alert('Giving up :( Cannot create an XMLHTTP instance');
			return false;
		}
	}
	// проверка готовности передачи запроса
	function checkReady(){

		var http_request = internalData.getVar('http_request');
		var objExecution = internalData.getVar('objExecution');
		
		if (http_request.readyState == 4) {	// COMPLETED
			if (http_request.status == 200) {	// HTTP STATUS
				// выполнить какие либо действия
				objExecution.performed(http_request);
				
				return true;
			} else {
				alert('There was a problem with the request.');
				return false;
			}
		} else {
			return false;
		}
		
		
	}
	

	// выполнение запроса
	function makeRequest()
	{
		this.http_request.open('POST', this.objExecution.getUrl(), true);
		//this.http_request.setRequestHeader("Content-Type: text/html; charset=utf8;");
		this.http_request.send('5');
		internalData.setValue("http_request",this.http_request);
		this.http_request.onreadystatechange = this.checkReady;
	}
	

	
	// инициируем объект исполнения
	function setObjExecution(objExec)
	{
		this.objExecution = objExec;
	}
}


function Basket()
{
	/* vars */
	this.basketRequest = '';
	/* init methods */
	this.getUrl = getUrl;
	this.performed = performed;
	this.setRequest = setRequest;
	this.remove = remove;
	this.refreshCarts = refreshCarts;
	this.refreshCartsList = refreshCartsList;
	this.refr = refr;
	this.slideList = slideList;
	
	function getUrl()
	{
		return this.basketRequest;
	}
	
	function setRequest(rec)
	{
		this.basketRequest = rec; 
	}
	
	function slideList(){
		window.open("http://www.teplotehnic.ru/carts_new/","samsWindow","width=640, height=500, directories=no,menubar=0,toolbar=no,scrollbars=yes");
		
		var cont = document.getElementById('contact_info');
		cont.style.visibility = 'visible';
		cont.style.filter="alpha(opacity:90)";
		cont.style.KHTMLOpacity="0.90";
		cont.style.MozOpacity="0.90";
		cont.style.opacity="0.90";
		
	}
	
	function performed(request)
	{

		slideList();
		
		refreshTopCarts(); 
	}
	
	function remove()
	{
		alert('Товар удалён из корзины !');
		refreshCartList();
	}
	
	function refreshCarts(request)
	{
			var workArea = document.getElementById('cart');
			workArea.innerHTML = request.responseText;
	}
	
	function refreshCartsList(request)
	{
		var workArea = document.getElementById('cart2');
		workArea.innerHTML = request.responseText;
		refreshTopCarts();
	}
	
	function refr()
	{
		refreshCartList();
	}

}

function closeSlideList()
{
	var cont = document.getElementById('contact_info');
	cont.style.visibility = 'hidden';
}

/*
 * 
 * вызываем метод обрабатывающий запрос и возвращающий результат
 * Example: iframe.php?model=basket&do=addToBasket&param=serialize(obj);
 * Где model - обработчик события, do - метод , param - аргумент для вызываемого метода
 * 
 */

function putToBasket(url)
{
	
	
	// создаём объект корзина
	
	var basket = new Basket();
	basket.setRequest(url);
	
	
	
	
	this.objExc = basket;
	this.objExc.getUrl = basket.getUrl;
	this.objExc.performed = basket.performed;
	
	var request = new HandleRequest();
	// задаём объект для работы
	internalData.addVar("objExecution",this.objExc);
	request.setObjExecution(this.objExc);
	// если http_request работает выполняем собственно запрос
	request.makeHandler();
	request.makeRequest();
	
	
}

function refreshTopCarts()
{
	var basket = new Basket();
	basket.setRequest('http://www.teplotehnic.ru/ajaxcarts/');
	
	this.objExc = basket;
	this.objExc.getUrl = basket.getUrl;
	this.objExc.performed = basket.refreshCarts;
	
	var request = new HandleRequest();
	// задаём объект для работы
	internalData.addVar("objExecution",this.objExc);
	request.setObjExecution(this.objExc);
	// если http_request работает выполняем собственно запрос
	request.makeHandler();
	request.makeRequest();
}

function refreshCartList()
{
	var basket = new Basket();
	basket.setRequest('http://www.teplotehnic.ru/ajaxcartsform/');
	
	this.objExc = basket;
	this.objExc.getUrl = basket.getUrl;
	this.objExc.performed = basket.refreshCartsList;
	
	var request = new HandleRequest();
	// задаём объект для работы
	internalData.addVar("objExecution",this.objExc);
	request.setObjExecution(this.objExc);
	// если http_request работает выполняем собственно запрос
	request.makeHandler();
	request.makeRequest();
}

function removeFromBasket(url)
{
	// создаём объект корзина
	
	var basket = new Basket();
	basket.setRequest(url);
	
	this.objExc = basket;
	this.objExc.getUrl = basket.getUrl;
	this.objExc.performed = basket.remove;
	
	var request = new HandleRequest();
	// задаём объект для работы
	internalData.addVar("objExecution",this.objExc);
	request.setObjExecution(this.objExc);
	// если http_request работает выполняем собственно запрос
	request.makeHandler();
	request.makeRequest();
	
	
}

function chengeCountItems(count,value)
{
	var cont = parseInt(value);
	var check = false;
	
	if (cont>10)
	{
		alert('Если вы хатите заказать больше 10 товаров Обратитесь к менеджеру по телефону :\n (495) 789 2646 !');	
	}
	else if(cont == 0 || cont<0 )
	{
		if(confirm("При указании количества товаров 0 товар автоматически будет удалён из карзины, Вы уверенны что хотите продолжить ?"))
		{ 
			
		}
		else
		{
			return false;	
		}
	}
	
	udpateBasketSetItemCount(count,cont);	
}

function udpateBasketSetItemCount(id,cont,pid)
{
	var basket = new Basket();

	basket.setRequest('http://www.teplotehnic.ru/basket/update/'+id+'/'+cont+'/'+pid+'/');
	
	this.objExc = basket;
	this.objExc.getUrl = basket.getUrl;
	this.objExc.performed = basket.refr;
	
	var request = new HandleRequest();
	// задаём объект для работы
	internalData.addVar("objExecution",this.objExc);
	request.setObjExecution(this.objExc);
	// если http_request работает выполняем собственно запрос
	request.makeHandler();
	request.makeRequest();
	
}

 function openMap(href, w, h,target){
    another=open(href, target, 'scrollbars=yes, status=no, titlebar=yes, toolbar=no, location=no, menubar=no, resizable=yes, width='+(w*1+20)+', height='+(h*1+20),false); }
	
	function getPrint(){
    var a = document.getElementById("info");
    var b = opener.document.getElementById("info");
    a.innerHTML=b.innerHTML;
var c = document.getElementById("picture");
    var d = opener.document.getElementById("picture");
    c.innerHTML=d.innerHTML;}