﻿var MAX_NUM = 10000; //максимальное количество товаров одного наименования в заказе
if ('undefined' == typeof String.prototype.trim){
	String.prototype.trim = function() 	
	{
		return this.replace(/^\s+/, '').replace(/\s+$/, '');
	}
}

function getElemText(node){
    return node.text || node.textContent || (function(node){
        var _result = "";
        if (node == null) 
            return _result;
        
        var childrens = node.childNodes;
        var i = 0;
        while (i < childrens.length){
            var child = childrens.item(i);
            switch (child.nodeType) {
                case 1: // ELEMENT_NODE
                case 5: // ENTITY_REFERENCE_NODE
                    _result += arguments.callee(child);
                    break;
                case 3: // TEXT_NODE
                case 2: // ATTRIBUTE_NODE
                case 4: // CDATA_SECTION_NODE
                    _result += child.nodeValue;
                    break;
                case 6: // ENTITY_NODE
                case 7: // PROCESSING_INSTRUCTION_NODE
                case 8: // COMMENT_NODE
                case 9: // DOCUMENT_NODE
                case 10: // DOCUMENT_TYPE_NODE
                case 11: // DOCUMENT_FRAGMENT_NODE
                case 12: // NOTATION_NODE
                // skip
                break;
            }
            i++;
        }
        return _result;
    }(node));
}

//###########################################
//методы для работы с COOKIES
function setCookie(name, value) {	
	if (!navigator.cookieEnabled)
	{
		alert("Для работы корзины заказов необходимо включить поддержку Cookies в вашем броузере!");
		return false;
	}
	if ((name + "=" + escape(value)).length <= 4000)
		document.cookie = name + "=" + escape(value) + "; path=/; domain=.bestband.ru";
	else return false;
	return true;
}

function getCookie(name) {
	var prefix = name + "=";
	var cookieStartIndex = document.cookie.indexOf(prefix);
	if (cookieStartIndex == -1)
		return null;
	var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
	if (cookieEndIndex == -1)
		cookieEndIndex = document.cookie.length;
	return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

//###########################################
//преобразование массива в строку и строки в массив
function array2String(array) {	
	var output = "";
	if (array) 
		for (var i=0; i<array.length; i++)
			output += array[i].join('#') + "&";				
	return output.replace(/&$/,'');
}

function string2Array(str) {	
	if (!str) return null;
	var result = new Array();
	var array = str.split('&');
	if (array)
		for (var i=0; i<array.length; i++)
			result[i] = array[i].split('#');
	return result;
}

//###########################################
//добавить товар в корзину
function addInBasket(id){ 
	var table = id.parentNode;
	while (table.tagName != "TABLE")
		table = table.parentNode;
	var array = string2Array(getCookie('order')); //массив заказов
	
	var name = getElemText(table.rows[0].cells[0]).trim();
	var cost = getElemText(table.rows[0].cells[1]).trim().replace(/[^0-9]+/,'');
	
	var open_basket = false;
	
	if (!confirm(unescape('Добавить товар "'+name+'" стоимостью '+cost+' руб. в корзину?')))	
		return;
		
	if (array)
	{
		var flag = false;
		var i = 0;
		while (!flag && (i < array.length))
			flag = array[i++][0] == name ;	
		
		if (flag)
		{
			tmp = parseInt(array[i-1][2]) + 1;
			array[i-1][2] = (tmp > MAX_NUM) ? MAX_NUM : tmp;
		}
		else 			
			array[i] = new Array(name, cost, "1");
	}
	else
	{		
		array = new Array();
		array[0] = new Array(name, cost, "1");		
		open_basket = true;
	}		
	setCookie('order',array2String(array));		
	if (open_basket) window.open("http://bestband.ru/your_basket/","your_basket");
			
}