function addProductToList(produtoP, cookieObj, domain) {

	var produto = {
                id: produtoP.id,
                url: produtoP.url,
                desc: produtoP.desc,
                productUrl: produtoP.productUrl
	}

	var produtoRecomendado1 = {
		id: produtoP.rec_1_id,
		url: produtoP.rec_1_url,
		desc: produtoP.rec_1_nome,
		img: produtoP.rec_1_img,
		price: produtoP.rec_1_preco,
		origin: produtoP.id
	}

        var produtoRecomendado2 = {
                id: produtoP.rec_2_id,
                url: produtoP.rec_2_url,
                desc: produtoP.rec_2_nome,
                img: produtoP.rec_2_img,
                price: produtoP.rec_2_preco,
		origin: produtoP.id
        }

	addProdutosRecomendados(produtoRecomendado1, produtoRecomendado2, domain);

	for (idx=0; idx<cookieObj.length; idx++) {
		var currentObj = cookieObj[idx];
		if (currentObj.id == produto.id) {
			cookieObj.splice(idx,1);
		}
	}
	
	if (cookieObj.length == 3) {
		cookieObj.shift();
	}

	cookieObj[cookieObj.length] = produto;
}

function addProdutosRecomendados(pRec1, pRec2, domain) {

	//nome do cookie
	var COOKIE_NAME = 'CAT_REC_PRODUCTS';

	//objeto de produtos recomendados que estao na barra
	//caso nao exista, cria um array vazio
	var recProducts = cookieToObject(COOKIE_NAME);
	if (recProducts == null) {
		recProducts = new Array();
	}

	//primeiro item do array se existir vai para a segunda posicao
	//se nao existir, e o primeiro item, nao move o objeto entao
	if (recProducts[0] != null) {
		recProducts[1] = recProducts[0];
	}

	//define qual sera o novo produto recomendado a entrar na primeira posicao do array
	//deve ser o produto mais barato da categoria do ultimo produto visto
	//caso o produto visualizado (origin) seja o produto mais barato da categoria dele
	//mostramos o segundo mais barato da categoria
	
	if(recProducts[0] == recProducts[1] && pRec1.id == pRec1.origin){
		recProducts[0] = pRec2;
		recProducts[1] = '';
	} else {
		recProducts[0] = pRec1;		
		recProducts[1] = pRec2;		
	}

	objectToCookie(COOKIE_NAME, recProducts, domain);
}

function addLevelToList(level, cookieLevel) {

	for (idx=0; idx<cookieLevel.length; idx++) {
		var currentObj = cookieLevel[idx];
		if (level.cat == currentObj.cat && level.catf == currentObj.catf) {
			cookieLevel.splice(idx,1);
		}
	}

	if (cookieLevel.length == 7) {
		cookieLevel.shift();
	}

	cookieLevel[cookieLevel.length] = level;
}



function objectToCookie(nome, objeto, domain) {
	var date = new Date();
	date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000));

	var objetoStr = JSON.stringify(objeto);
	$.cookie(nome, objetoStr, { expires: date, path: '/', domain: domain.cookieDomain});
}



function cookieToObject(nome) {
	return eval(eval($.cookie(nome)));
}

function cookieToObject(nome) {
	return eval(eval($.cookie(nome)));
}

function populateLast() {

	var cookieObj = cookieToObject('LAST_PRODUCTS');
	var cookieLevel = cookieToObject('LAST_CATEGORIES');
	var cookieRec = cookieToObject('CAT_REC_PRODUCTS');

	//caso ambos os cookies sejam nulls ele esconde a barra inteira
	if(cookieObj == null && cookieLevel == null) {
		$(".boxFull:last").hide();            
	} else {
		$(".boxFull:last").show();

		// executa apenas caso existam ultimos produtos visualizados
		if (cookieObj != null) {

			var item = 0;
			
			for(var i=cookieObj.length-1; i >= 0; i--) {

				if(i == cookieObj.length){
					$('.lastProductsSlide ul').append('<li class="first"><a class="WAClick WAClick:clic_on_ultimos_produtos_vistos:N" title="' + cookieObj[i].desc + '" href="' + cookieObj[i].productUrl + '"><img alt="' + cookieObj[i].desc + '" src="' + urlImage(cookieObj[i].url) + '"></a><h3><a class="WAClick WAClick:clic_on_ultimos_produtos_vistos:N" title="' + cookieObj[i].desc + '" href="' + cookieObj[i].productUrl + '">' + cookieObj[i].desc + '</a></h3></li>');
				}else{
					$('.lastProductsSlide ul').append('<li><a class="WAClick WAClick:clic_on_ultimos_produtos_vistos:N" title="' + cookieObj[i].desc + '" href="' + cookieObj[i].productUrl + '"><img alt="' + cookieObj[i].desc + '" src="' + urlImage(cookieObj[i].url) + '"></a><h3><a class="WAClick WAClick:clic_on_ultimos_produtos_vistos:N" title="' + cookieObj[i].desc + '" href="' + cookieObj[i].productUrl + '">' + cookieObj[i].desc + '</a></h3></li>');
				}
				item++;
			}
		}
		
		//executa apenas caso existam ultimos levels visitados
		if(cookieLevel != null) {
			for(var level=cookieLevel.length-1; level >= 0; level--) {
				if (cookieLevel[level] != null) {
					if(level == cookieLevel.length-1){
						$('.ultimasCategorias ul').append('<li class="first-child"><a class="WAClick WAClick:clic_on_ultimas_categorias_vistas" href="'+cookieLevel[level].catf_full+'/'+cookieLevel[level].cat+'"><span class="ultimaCat">'+cookieLevel[level].catf+'</span>&nbsp;&#62; <span class="ultimaSubCat">'+cookieLevel[level].cat+'</span></a></li>'); 
					} else{
						$('.ultimasCategorias ul').append('<li><a class="WAClick WAClick:clic_on_ultimas_categorias_vistas" href="'+cookieLevel[level].catf_full+'/'+cookieLevel[level].cat+'"><span class="ultimaCat">'+cookieLevel[level].catf+'</span>&nbsp;&#62; <span class="ultimaSubCat">'+cookieLevel[level].cat+'</span></a></li>'); 
					}
				}
			}  
		}
		
		if (cookieRec != null) {
			//if (cookieRec[0] != null) {
			if (checkRecNull(cookieRec[0])) {
				var recProd = cookieRec[0];
				var priceStr = recProd.desc+' <br />por <strong>'+formatCurrency(recProd.price)+'</strong>';
				$('.produtosRecomendados li:eq(0) a').attr({href: recProd.url});
				$('.produtosRecomendados li:eq(0) a img').attr({src: urlImage(recProd.img)});
				$('.produtosRecomendados li:eq(0) a img').attr({alt: recProd.desc});                
				$('.produtosRecomendados li:eq(0) a span').html(priceStr);
			} 

			// if (cookieRec[1] != null) {
			if (checkRecNull(cookieRec[1])) {
				var recProd = cookieRec[1];
				var priceStr = recProd.desc+' <br />por <strong>'+formatCurrency(recProd.price)+'</strong>';
				$('.produtosRecomendados li:eq(1) a').attr({href: recProd.url});
				$('.produtosRecomendados li:eq(1) a img').attr({src: urlImage(recProd.img)});
				$('.produtosRecomendados li:eq(1) a img').attr({alt: recProd.desc});
				$('.produtosRecomendados li:eq(1) a span').html(priceStr);
			}
		}
	}
}

function checkRecNull(cko) {

	if (cko == null) {
		return false;
	} else {
		if ( isEmpty(cko.id) || isEmpty(cko.desc) ) {
			return false;
		} else {
			return true;
		}
	}
}

function urlImage(imageURL) {
	if (imageURL) {
		var parsedURL = parseURL(imageURL);
		// se pagina nao estiver em https OU se a imagem já estiver em https, entao sai
		if (parent.location.protocol == 'http:' || parsedURL.protocol == "https://") {
			return imageURL;
		}
		var iefix = $.browser.msie ? "/" : "";
		imageURL = 'https://cart.carrefour.com.br/ckout' + iefix + parsedURL.pathname + parsedURL.search;
		return imageURL;
	}
}

function parseURL(url) {
	var a = document.createElement("a");
	a.href = url;
	return a;
}


function isEmpty(inputStr) { 
	if ( null == inputStr || "" == inputStr ) { 
		return true; 
	} 
	return false; 
}

function formatCurrency(num) {
	
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num))
		num = "0";

	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	
	if(cents<10)
		cents = "0" + cents;

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3)) + '.' + num.substring(num.length-(4*i+3));
	
	return (((sign)?'':'-') + 'R$ ' + num + ',' + cents);
}
