﻿function getCookie(name) {
	var start = document.cookie.indexOf(name + "=");
	var len = start + name.length + 1;
	if ((!start) && (name != document.cookie.substring(0, name.length))) return null;
	if (start == -1) return null;
	var end = document.cookie.indexOf(';', len);
	if (end == -1) end = document.cookie.length;
	return unescape(document.cookie.substring(len, end));
}

function setCookie(name, value, expires, path, domain, secure) {
	var today = new Date();
	today.setTime(today.getTime());
	if (expires) expires = expires * 1000 * 60 * 60 * 24;
	var expires_date = new Date(today.getTime() + (expires));
	document.cookie = name+'='+escape(value) +
		((expires) ? ';expires='+expires_date.toGMTString() : '') +
		((path) ? ';path=' + path : '') +
		((domain) ? ';domain=' + domain : '') +
		((secure) ? ';secure' : '');
}

function deleteCookie(name, path, domain) {
	if (getCookie(name)) document.cookie = name + '=' +
			((path) ? ';path=' + path : '') +
			((domain) ? ';domain=' + domain : '') +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

var Carrinho = function() {
    this.itens = [];
    var _carrinho = getCookie('carrinho');
    if(_carrinho) {
        var _itens = _carrinho.split('e');
        for(var x = 0; x < _itens.length; x++) {
            var _item = _itens[x].split('a');
            if(_item.length == 2) {
                this.itens[this.itens.length] = {
                    id: parseInt(_item[0]),
                    qtde: parseFloat(_item[1])
                };
            }
        }
    }
    
    this.limpar = function() {
        this.itens = [];
        setCookie('carrinho', '', 1, '/', null);
    };
    
    this.adicionar = function(id, qtde) {
        for(var x = 0; x < this.itens.length; x++)
            if(this.itens[x].id == id)
                return this.atualizar(id, qtde);
        this.itens[this.itens.length] = { id: id, qtde: qtde };
        var carrinho = getCookie('carrinho');
        if(!carrinho) carrinho = '';
        else carrinho += 'e';
        carrinho += id + 'a' + qtde;
        setCookie('carrinho', carrinho, 1, '/', null);
    };
    
    this.remover = function(id) {
        for(var x = 0; x < this.itens.length; x++)
            if(this.itens[x].id == id) {
                this.itens.splice(x, 1);
                break;
            }
        var carrinho = getCookie('carrinho');
        if(!carrinho) carrinho = '';
        carrinho = 'e' + carrinho;
        var reg = new RegExp('e'+id+'a\\d+(\\.\\d*)?', 'gi');
        carrinho = carrinho.replace(reg, '').substr(1);
        setCookie('carrinho', carrinho, 1, '/', null);
    };
    
    this.atualizar = function(id, qtde) {
        for(var x = 0; x < this.itens.length; x++)
            if(this.itens[x].id == id) {
                this.itens[x].qtde = qtde;
                break;
            }
        setCookie('carrinho', this.serializar(), 1, '/', null);
    };
    
    this.serializar = function() {
        var carrinho = '';
        for(var x = 0; x < this.itens.length; x++)
            if(this.itens[x])
                carrinho += 'e' + this.itens[x].id + 'a' + this.itens[x].qtde;
        if(carrinho.length > 0)
            carrinho = carrinho.substr(1);
        return carrinho;
    };
}
