// Проверка на JavaScript, cookie и картинки
function botTest() {
	if (document.cookie)
	{
		var n = ExtractCookie('suid');
		if (n)
		{
			var testImage = new Image(1,1);
			testImage.src = '/images/service/' + n + '.gif';
		}
	}
}

//////////////////////////////////////////////////////

// Инициализация корзины
function initCart() {
	// Если куки нет — ничего не делаем
	if (document.cookie && ExtractCookie('suid'))
	{
		// Объявляем глобальные переменные
		countLabel = document.getElementById('shoppingCart');
		listLabel = document.getElementById('cookieVal');
		// Заливаем массив из cookie
		FillCart();
		// Обновляем счётчики
		RefreshCounter();
	}
}

// Заливает массив из cookie
function FillCart() {
	var cookieValue = ExtractCookie('cart')
	if (cookieValue)
		cart = cookieValue.split(',');
	else
		cart = new Array();
}

// Подгружает картинку корзины в шапке
function PreloadPicture() {
	if (document.images)
	{
		inCart = new Image(36,33);
		inCart.src = '/images/inCart.gif';
	}
}

// Подгружает картинку для страницы площади
function PreloadBigPicture() {
	if (document.images)
	{
		inCartBig = new Image(65,65);
		inCartBig.src = '/images/inCartBig.gif';
	}
}

// Добавляет заданный ID в корзину
function AddValue(val) {
	if (!testExistence(val))
	{
		cart.push(val);
		var now = new Date();
		now.setTime(now.getTime() + 30*24*3600000);
		document.cookie = 'cart=' + cart.toString() + '; path=/; expires=' + now.toGMTString();
		RefreshCounter();
	}
}

// Обновляет значение счётчика
function RefreshCounter() {
	var counter = cart.length;
	if (counter == 0)
		countLabel.innerHTML = '<a href="/request/request.htm" title="заявка">Заявка</a>';
	else
		countLabel.innerHTML = '<a href="/request/cart.htm" title="заявка">в заявке ' + cart.length + NumDecline(cart.length,' помещение',' помещения',' помещений') + '</a>';
}

// Проверяет наличие заданного ID в корзине
function testExistence(val) {
	for (var i = 0; i < cart.length; i++)
	{
		if (cart[i] == val)
			return true;
	}
	return false;
}

// Вытаскивает cookie с заданным именем
function ExtractCookie(name) {
	var allCookies = document.cookie;
	var start = allCookies.indexOf(name);
	if (start >= 0)
	{
		start = start + name.length + 1;
		var end = allCookies.indexOf(';', start);
		if (end == -1)
			end = allCookies.length;
		return unescape(allCookies.substring(start, end));
	}
	return false;
}

// Собственно добавление в корзину
function AddToCart() {
	AddValue(this.id);
	SetInCart(this);
	this.onclick = DoNothing;
	return false;
}

// Меняет картинку
function SetInCart(item) {
	var img = item.getElementsByTagName('img')[0];
	img.src = inCart.src;
	img.title = '№ '+ item.id + ' добавлен в корзину';
}

// Собственно добавление в корзину
function AddToCartBig() {
	AddValue(this.id);
	SetInCartBig(this);
	this.onclick = DoNothing;
	return false;
}

// Меняет картинку на странице площади
function SetInCartBig(item) {
	var img = item.getElementsByTagName('img')[0];
	img.src = inCartBig.src;
	img.title = '№ '+ item.id + ' добавлен в корзину';
}

// Возвращает false
function DoNothing() {
	return false;
}

//////////////////////////////////////////////////////

// Инициализация кнопок в результатах поиска
// Пробегает по всем позициям, присваивает onclick и меняет картинку если надо
function InitButtons() {
	if (cart)
	{
		// Подгружаем картинку
		PreloadPicture();
		var results = document.getElementById('searchResults');
		if (results)
		{
			var buttons = results.getElementsByTagName('a');
			if (buttons)
			{
				for (var i = 0; i < buttons.length; i++)
				{
					if (buttons[i].className == 'toCart')
					{
						if (!testExistence(buttons[i].id))
							buttons[i].onclick = AddToCart;
						else
						{
							SetInCart(buttons[i]);
							buttons[i].onclick = DoNothing;
						}
					}
				}
			}
		}
	}
}

//////////////////////////////////////////////////////

// Склоняет существительные после числительных
function NumDecline(num, nom, genS, genP) {
	var number = Number(num);
	if (number)
	{
		if ((number > 10) && ((number % 100) < 20) && ((number % 100) >= 10))
			return genP;
		else
		{
			var rem = (number % 10)
			if (rem == 1)
				return nom;
			else if ((rem == 2) || (rem == 3) || (rem == 4))
				return genS;
			else
				return genP;
		}
	}
	else
		return false;
}

//////////////////////////////////////////////////////

botTest();
window.onload = initCart;