/*
'Arquivo Versão: V4x_1
'------------------------------------------------------------
'  Desenvolvido Por: luis
'  Data: 24/10/2011 00:00:00
'  Entrega: Replicar pavote de correções.
'  Chamado: 44925
'------------------------------------------------------------
*/
//esse arquivo é a versão de desenvolvimento não minimizada do arquivo
//após alterá-lo mudar ser nome funcoes_product.js e passa-lo pelo www.bananascript.com


// JScript File
//###############################################
// Funções utilizadas na pagina product.asp
// Desenvolvida por: Hélvio Júnior
// Data de Criação: 2007-08-16
// Data da Última alteração: 2007-08-16
//###############################################
//

//===============================================
// Variants
// Neste bloco de código estão todas as funções que se referem as variants
// Obs.: Não é neste bloco de código que estão definido as funções de imagens do produto, somente das variants

//Variaveis
var oListVariants = null;
var oListVariantsAttr1 = new Array();
var oListVariantsAttr2 = new Array();
var showVariantImages = false;
var intIndexAtrr1Sel = null;
var intIndexAtrr2Sel = null;
var blnCarregado = false;
var listVariantIndex = 0;
var hasTwoVariants = false;
var ssku = "";
var defaultAttrValue1 = "";
var defaultAttrValue2 = "";
var cAjax = new Ajax();
var displayDisponibilidade = "";

//para corrigir um problema de implementação do document.getElementById para o IE
if (/msie/i.test (navigator.userAgent)) //only override IE
{
	document.nativeGetElementById = document.getElementById;
	document.getElementById = function(id)
	{
		var elem = document.nativeGetElementById(id);
		if(elem)
		{
			//make sure that it is a valid match on id
			if(elem.id == id)
			{
				return elem;
			}
			else
			{
				//otherwise find the correct element
				for(var i=1;i<document.all[id].length;i++)
				{
					if(document.all[id][i].id == id)
					{
						return document.all[id][i];
					}
				}
			}
		}
		return null;
	};
}


//Função que terá como parametro o texto no padrão JSON, e define o objeto oListImages com este texto.
function setVariantList(jsonList, attrValue1, attrValue2, jsonList2){
    oListVariants = eval('(' + jsonList + ')');
    oAttrImages = jsonList2;
    listVariantIndex;
    
    
    if (oListVariants.length == 1) {
        setVariantDefaultIndex();
        setObjectList();
        montaVariantesComprar();
        
        montaPrecos();
    }
    else 
        if (oListVariants.length > 1) {
            setVariantDefaultIndex();
            setObjectList();
            montaVariantesComprar();
            montaPrecos();
        }
    
    if ((attrValue1 == 'null') || (attrValue1 == '')) {
        attrValue1 = null
    }
    if ((attrValue2 == 'null') || (attrValue2 == '')) {
        attrValue2 = null
    }
}

function verificaDisponibilidade(iIndex)
{
	if(oListVariants[iIndex].MostraMsgDisponibilidade == "S" && oListVariants[iIndex].quantity <= 0 && oListVariants[0].disponibilidade != null && oListVariants[0].ExibeProdForaEstoque == "S")
	{
		document.getElementById("textDisponibilidade").style.display = '';
	}
	else
	{
		document.getElementById("textDisponibilidade").style.display = 'none';
	}
}


//Função que irá disparar todas as funções necessárias no momento da alteração da variant
function changeVariant(){
    setListVariantIndex();
    setImages(oListVariants[listVariantIndex].sku);
    montaVariantesComprar();
    verificaDisponibilidade(listVariantIndex);
    montaPrecos();
    loadParcel('');
}

function setaVarianteCombo(strValorSelecionado, intAtributo, intIndex)
{
    /*
     * Função responsavel por setar na combo de variantes o valor selecionado
     * e acionar a função que altera as variantes.
     * Parâmetros:
     *      strValorSelecionado [String] = Valor da variante selecionada
     *      intAtributo         [Int]    = Número do atributo ex: "1" ou "2"
     *      intIndex            [Int]    = Índice da variante selecionada.
     * Retorno: Nenhum.
     */
     strValorSelecionado = replaceAll(strValorSelecionado, '_||_','	');
     strValorSelecionado = replaceAll(strValorSelecionado, '_|||_',' ');

    if(intAtributo == 1)
    {
        intIndexAtrr1Sel = intIndex;
        if (document.getElementById('cboAttrValue1')) 
        {
            document.getElementById('cboAttrValue1').value = strValorSelecionado;
            changeVariant();
        }
    }
    if(intAtributo == 2)
    {
        intIndexAtrr2Sel = intIndex;
        if (document.getElementById('cboAttrValue2')) 
        {
            document.getElementById('cboAttrValue2').value = strValorSelecionado;
            changeVariant();
        }
    }        
}

function setListVariantIndex(){
    var attr_value1 = "";
    var attr_value2 = "";
    
    if (document.getElementById('cboAttrValue1')){ 
        if (document.getElementById('cboAttrValue1').selectedIndex >= 0){
            attr_value1 = document.getElementById('cboAttrValue1').options[document.getElementById('cboAttrValue1').selectedIndex].value;
        }
    }
    
    if (document.getElementById('cboAttrValue2')){
        if (document.getElementById('cboAttrValue2').selectedIndex >= 0){
            attr_value2 = document.getElementById('cboAttrValue2').options[document.getElementById('cboAttrValue2').selectedIndex].value;
        }
    }
    
    //Caso a combo2 não for selecionada, usa somente a combo 1 para selecionar a variante.
    if(attr_value2=='')
    {
    for (i = 0; i < oListVariants.length; i++) 
        {
            if (oListVariants[i].attr_value1 == attr_value1) {
                listVariantIndex = i;
                break;
            }
        }                        
    }
    //Caso contrário usa as 2 combos para selecionar a variante.
    else
    {
        for (i = 0; i < oListVariants.length; i++)
        {
        if (oListVariants[i].attr_value1 == attr_value1 && oListVariants[i].attr_value2 == attr_value2) {
            listVariantIndex = i;
            break;
        }
}
    }        
}

function montaPrecos(){

    var prod_price_text1 = "";
    
    if (oListVariants[listVariantIndex].on_sale && oListVariants[listVariantIndex].template_b2b == "B2C") {
        prod_price_text1 = '<span class="font_cinza">de:</span> '
        prod_price_text1 += '<span class="font_cinza2">'
        prod_price_text1 += oListVariants[listVariantIndex].list_price
        prod_price_text1 += '</span>'
    }
    else {
        prod_price_text1 = ""
    }
    
    var titulo = "";
    
    titulo = oListVariants[listVariantIndex].name;
    
    if (oListVariants[listVariantIndex].Display_pf_id == "S") 
        titulo = titulo + '&nbsp;-&nbsp;' + oListVariants[listVariantIndex].pf_id
    
    if (oListVariants[listVariantIndex].attr_value1 != '' && !oListVariants[listVariantIndex].kit && oListVariants[listVariantIndex].attr_value1 != null) 
        titulo += "&nbsp;" + oListVariants[listVariantIndex].attr_value1
    
    if (oListVariants[listVariantIndex].attr_value2 != '' && !oListVariants[listVariantIndex].kit && oListVariants[listVariantIndex].attr_value2 != null) 
        titulo += "&nbsp;" + oListVariants[listVariantIndex].attr_value2
    
    var prod_price_text2 = "";
    var prod_price_text3 = "";
    
    if (oListVariants[listVariantIndex].on_sale && oListVariants[listVariantIndex].template_b2b == "B2C") {
        if (oListVariants[listVariantIndex].parcelamento == "S" && (oListVariants[listVariantIndex].parcela_semjuros >= 1 || oListVariants[listVariantIndex].parcela_comjuros > 1)) {
            prod_price_text2 = '<span class="font_verde">Por:</span><br />'
            if (oListVariants[listVariantIndex].parcela_semjuros > 1 || oListVariants[listVariantIndex].parcela_comjuros > 1) {
            prod_price_text2 += '<span class="font_verde_grande">'
			}
			else{	
				prod_price_text2 += '<span class="produto_preco">'
            }
            prod_price_text2 += oListVariants[listVariantIndex].sale_price
            prod_price_text2 += '</span>&nbsp;'
            prod_price_text2 += '<span class="fontv1">'
            if (oListVariants[listVariantIndex].desconto_avista > 0) 
                prod_price_text2 += '(+ ' + oListVariants[listVariantIndex].desconto_avista + '% de desconto para pagamentos por boleto &agrave; vista)'

            prod_price_text2 += '</span>'
            
            if (oListVariants[listVariantIndex].parcela_semjuros > 1 || oListVariants[listVariantIndex].parcela_comjuros > 1){
            prod_price_text3 = '<span class="font_cinza">';
            prod_price_text3 += '<img class="noborder" src="' + iTemplateFolder + '/bt_parcelamento.gif" onClick="showParcel();" style="cursor: pointer; float: right; margin-top:5px" border="0" alt="clique para visualizar as opções de parcelamento">'
            prod_price_text3 += '<span class="produto_vezes">ou ' + oListVariants[listVariantIndex].parcela_semjuros + 'x</span> '
            prod_price_text3 += '<span class="produto_preco">' + oListVariants[listVariantIndex].valor_venda + ' '
            prod_price_text3 += '<span class="produto_semjuros">(sem juros)</span> '
            prod_price_text3 += '</span>'
            prod_price_text3 += '</span>'
            }
        }
        else {
            prod_price_text2 = '<span class="font_verde">Preço:</span><br />'
            prod_price_text2 += '<span class="font_verde_grande">'
            prod_price_text2 += oListVariants[listVariantIndex].valor_venda
            prod_price_text2 += '</span><br />'
            if (oListVariants[listVariantIndex].desconto_avista > 0) 
                prod_price_text2 += '(+ ' + oListVariants[listVariantIndex].desconto_avista + '% de desconto para pagamentos por boleto &agrave; vista)'
        }
    }
    else {
        if ((oListVariants[listVariantIndex].parcela_semjuros > 1 || oListVariants[listVariantIndex].parcela_comjuros > 1) && oListVariants[listVariantIndex].parcelamento == "S") {
			prod_price_text2 = '<span class="font_verde">Preço:</span><br />'
			prod_price_text2 += '<span class="font_verde_grande">'
            prod_price_text2 += oListVariants[listVariantIndex].sale_price
            prod_price_text2 += '</span> '
            prod_price_text2 += '<span class="fontv1">'
            if (oListVariants[listVariantIndex].desconto_avista > 0) 
                prod_price_text2 += '(+ ' + oListVariants[listVariantIndex].desconto_avista + '% de desconto para pagamentos por boleto à vista)'
            
            if(oListVariants[listVariantIndex].sitefm_b2b == "S" && oListVariants[listVariantIndex].session_b2b > 0){ 
            prod_price_text2 += '</span><br />'
            prod_price_text2 += "Prezado vendedor "
            prod_price_text2 += oListVariants[listVariantIndex].vendedor_nome
            prod_price_text2 += '<br />'
            prod_price_text2 += "Desconto máximo permitido: "
            prod_price_text2 += oListVariants[listVariantIndex].list_price_b2b_desc
            prod_price_text2 += '</span>'
            }
            
            prod_price_text3 = '<span class="font_cinza">';
            prod_price_text3 += '<img class="noborder" src="' + iTemplateFolder + '/bt_parcelamento.gif" onClick="showParcel();" style="cursor: pointer; float: right; margin-top:5px" border="0" alt="clique para visualizar as opções de parcelamento">'          
            prod_price_text3 += '<span class="produto_vezes">ou ' + oListVariants[listVariantIndex].parcela_semjuros + 'x</span> '
            prod_price_text3 += '<span class="produto_preco">' + oListVariants[listVariantIndex].valor_venda + ' '
            prod_price_text3 += '<span class="produto_semjuros">(sem juros)</span> '
            prod_price_text3 += '</span>'
            prod_price_text3 += '</span>'
        }
        else {
            prod_price_text2 = '<span class="font_verde">Preço:</span><br />'
            prod_price_text2 += '<span class="produto_preco">'
            prod_price_text2 += oListVariants[listVariantIndex].valor_venda
            prod_price_text2 += '</span><br />'
            if (oListVariants[listVariantIndex].desconto_avista > 0) 
                prod_price_text2 += '(+ ' + oListVariants[listVariantIndex].desconto_avista + '% de desconto para pagamentos por boleto &agrave; vista)'
            
            if(oListVariants[listVariantIndex].sitefm_b2b == "S" && oListVariants[listVariantIndex].session_b2b > 0){ 
            prod_price_text2 += "Prezado vendedor "
            prod_price_text2 += oListVariants[listVariantIndex].vendedor_nome
            prod_price_text2 += '<br />'
            prod_price_text2 += "Desconto máximo permitido: "
            prod_price_text2 += oListVariants[listVariantIndex].list_price_b2b_desc
            prod_price_text2 += '</span>'
            }
        }
    }
    
    var bonus = '';
    if (oListVariants[listVariantIndex].bonus != 0 && oListVariants[listVariantIndex].displaybonus == "S"){
    bonus = 'Bônus: ' + oListVariants[listVariantIndex].bonus
    bonus += '<A href="javascript:bonus_mostrar();"> <FONT class="linkV1">(O que é?) </FONT></A>';
    }

	document.getElementById('prod_tit').innerHTML = titulo
	if(document.getElementById('price_text1'))
		document.getElementById('price_text1').innerHTML = prod_price_text1;
	if(document.getElementById('price_text2'))
		document.getElementById('price_text2').innerHTML = prod_price_text2;
	if(document.getElementById('price_text3'))
		document.getElementById('price_text3').innerHTML = prod_price_text3;
	if(document.getElementById('bonus'))
		document.getElementById('bonus').innerHTML = bonus;		
	
}

function setVenda(sku, attr_value1, attr_value2, temVariante){
    if (temVariante && (attr_value1 == 'null' || (attr_value2 == 'null' && hasTwoVariants))) {
        var HTMLErro = '<div class="erro_cor">É necessário selecionar '; //guarda o erro pelos atributos
        if (attr_value1 == 'null') 
            HTMLErro += oListVariants[0].attr_label1;
        
        if ((attr_value2 == 'null' && hasTwoVariants)) 
            if (attr_value1 == 'null') 
                HTMLErro += ' e ' + oListVariants[0].attr_label2;
            else 
                HTMLErro += oListVariants[0].attr_label2;
        
        HTMLErro += ' do seu produto</div>';
        
        document.getElementById("erro_cor").innerHTML = HTMLErro;
    }
    else {
        document.frm_produto.sku.value = sku;
        document.frm_produto.attr_value1.value = attr_value1;
        document.frm_produto.attr_value2.value = attr_value2;
        document.frm_produto.submit();
    }
}

function setEncomenda(sku, attr_value1, attr_value2){
    if (sku == '') {
		var HTMLErro = '<div class="erro_cor">É necessário selecionar '; //guarda o erro pelos atributos
		if (attr_value1 == 'null') 
			HTMLErro += oListVariants[0].attr_label1;
		
		if ((attr_value2 == 'null' && hasTwoVariants)) 
			if (attr_value1 == 'null') 
				HTMLErro += ' e ' + oListVariants[0].attr_label2;
			else 
				HTMLErro += oListVariants[0].attr_label2;
		
		HTMLErro += ' do seu produto</div>';
		
		document.getElementById("erro_cor").innerHTML = HTMLErro;
	}
	else {
    document.getElementById('sku1').value = sku;
    document.prod_encomenda.submit();
}
}


//Efetua um loop em todos os registros das variants verificando qual é o default
function setVariantDefaultIndex(){
    for (i = 0; i < oListVariants.length; i++) {
        if (oListVariants[i].default_var) {
            listVariantIndex = i;
            defaultAttrValue1 = oListVariants[i].attr_value1;
            defaultAttrValue2 = oListVariants[i].attr_value2;
			var disp = oListVariants[0].disponibilidade;
			if (disp == '' || disp == null || disp == 'null')
				displayDisponibilidade = "none";
			else{
			//if(disp != '' || disp != 'null' || disp != null){
				if(oListVariants[0].MostraMsgDisponibilidade == "S")
					displayDisponibilidade = "";
				else
					displayDisponibilidade = "none";
			} 
			//alert(disp);
            break;
        }
    }
}

//Função que verifica se o um item existe no objeto
function exists(object, item, valor){
    var retorno = false;
    
    for (io = 0; io < object.length; io++) {
        if (object[io][item] == valor) {
            retorno = true;
            break;
        }
    }
    return retorno;
}

//Função que monta o objeto com os dados que irão para os combos
function setObjectList(){
    var lastImage = '';
    for (i = 0; i < oListVariants.length; i++) {
        if (!exists(oListVariantsAttr1, 'attr_value1', oListVariants[i].attr_value1)) {
            oListVariantsAttr1.push({
                attr_value1: oListVariants[i].attr_value1,
                attr_label1: oListVariants[i].attr_label1,
                pf_id: oListVariants[i].pf_id,
                default_var: oListVariants[i].default_var
            })
        }
        
        if (!exists(oListVariantsAttr2, 'attr_value2', oListVariants[i].attr_value2) && (oListVariants[i].attr_label2 != "" && oListVariants[i].attr_label2 != null)) {
            oListVariantsAttr2.push({
                attr_value2: oListVariants[i].attr_value2,
                attr_label2: oListVariants[i].attr_label2,
                pf_id: oListVariants[i].pf_id,
                default_var: oListVariants[i].default_var
            })
        }
        
        if (oAttrImages.length > 0) {
            showVariantImages = true;
        }
        
        lastImage = oListVariants[i].image_file;
    }
    
    //especifica que há 2 variantes nesse produto
    if (oListVariantsAttr2.length > 0) 
        hasTwoVariants = true;
}


/*
 * Função que monta o html das combos das variantes e o botão comprar
 */
function montaVariantesComprar(){
    var objVariants = document.getElementById('buttons');// a div que recebe o html gerado
    var defaultAttr = ""; //para ser consumido no primeiro atributo, contem o atributo padrão na hora da renderização da página
    var HTML = ''; // variável que guarda o html que está dentro da div buttons
    var V1OLD = ''; // variável de controle do loop do primeiro atributo
    var V2OLD = ''; // variável de controle do segundo atributo
    var selectedSku = ""; //guarda o sku selecionado
    var selectedAttrValue1 = null; //guarda o primeiro atributo selecionado
    var selectedAttrValue2 = null; //guarda o segundo atributo selecionado
    var selectedStock = true; //guarda a informação se a variante selecionada está em estoque
    var blnExistEstoque = false;
    var blnVarianteEmEstoque = false; //variavel utilizada para verificar se existe pelo menos uma variante em estoque
    var blnVarianteSemEstoque = false; //variavel utilizada para verificar se existe pelo menos uma variante em estoque
    var selected; //variável que seleciona a combo
    var temVariantes; //variável que guarda se o produto tem variantes ou não
    temVariantes = !((oListVariants[0].attr_label1 == '' || oListVariants[0].attr_label1 == null) && (oListVariants[0].attr_label2 == '' || oListVariants[0].attr_label2 == null));

	/*
	 * limpa a caixa de erros
	 */
	
	document.getElementById("erro_cor").innerHTML = '';

    HTML += '<table class="tab_variantes" id="textDisponibilidade" cellspacing="0" cellpadding="1" style="display:'+displayDisponibilidade+';">';
    HTML += '<tr>';
    HTML += '<td>Prazo de disponibilidade do produto:<br>'+oListVariants[0].disponibilidade+'</td>';
    HTML += '</tr>';
    HTML += '</table>';
     
    /*
     * início da exibição da caixa das variantes
     */
    HTML += '<img src="' + iTemplateFolder + '/var_topo.gif" border="0" alt="Escolha aqui seu modelo"/>';
    HTML += '<table class="tab_variantes" cellspacing="0" cellpadding="3"><tbody>';
    
    if (temVariantes) {    
        var htmlAttr1 = ''; //html do combo do atributo 1
        var htmlAttr2 = ''; //html do combo do atributo 2
        var attr_label1 = ''; //valor do atributo1
        var attr_label2 = ''; //valor do atributo2
        var temAttr1 = !(oListVariants[0].attr_label1 == '' || oListVariants[0].attr_label1 == null); // verifica se tem atributo 1
        var temAttr2 = !(oListVariants[0].attr_label1 == '' || oListVariants[0].attr_label2 == null); // verifica se tem atributo 2
        var temImgAttr1;
        var temImgAttr2;
        
        if (temAttr1) {
            attr_label1 = oListVariants[0].attr_label1;
            temImgAttr1 = existeImagemAtributo(attr_label1)
        
            if (document.getElementById('cboAttrValue1')) {
                if (document.getElementById('cboAttrValue1').selectedIndex >= 0){
                    selectedAttrValue1 = document.getElementById('cboAttrValue1').options[document.getElementById('cboAttrValue1').selectedIndex].value;
				    if(selectedAttrValue1 == "")
					    selectedAttrValue1 = null;
                }
			}
            
            htmlAttr1 += '<tr class="variantes_cor1">';
            htmlAttr1 += '<td align="center"><img src="' + iTemplateFolder + '/var_1.gif" border="0" alt="Passo 1"/></td>';
            htmlAttr1 += '<td>';
            if(temImgAttr1)
            {
                htmlAttr1 += oListVariants[0].attr_label1.toUpperCase();              
                htmlAttr1 += '<select name="cboAttrValue1" id="cboAttrValue1" onChange="changeVariant();" style="display:none;">';
            }                
            else
            {
            htmlAttr1 += '<select name="cboAttrValue1" id="cboAttrValue1" onChange="changeVariant();">';
            }    
            htmlAttr1 += '<option value=""';
            if (selectedAttrValue1 == null) 
                htmlAttr1 += ' SELECTED ';
            htmlAttr1 += '>Escolha '+oListVariants[0].attr_label1.toUpperCase()+'</option>';
                
        }
        
        if (temAttr2) {
            attr_label2 = oListVariants[0].attr_label2;
            temImgAttr2 = existeImagemAtributo(attr_label2)
        
            if (document.getElementById('cboAttrValue2')) {
                if (document.getElementById('cboAttrValue2').selectedIndex >= 0){
                    selectedAttrValue2 = document.getElementById('cboAttrValue2').options[document.getElementById('cboAttrValue2').selectedIndex].value;
				    if (selectedAttrValue2 == "") 
					    selectedAttrValue2 = null;
			    }
			}
            
            htmlAttr2 += '<tr class="variantes_cor2">';
            if (temAttr1) 
                htmlAttr2 += '<td align="center"><img src="' + iTemplateFolder + '/var_2.gif" border="0" alt="Passo 2"/></td>';
            else 
                htmlAttr2 += '<td align="center"><img src="' + iTemplateFolder + '/var_1.gif" border="0" alt="Passo 1"/></td>';
            htmlAttr2 += '<td>';
            if(temImgAttr2)
            {
                htmlAttr2 += oListVariants[0].attr_label2.toUpperCase();
                htmlAttr2 += '<select name="cboAttrValue2" id="cboAttrValue2" onChange="changeVariant();" style="display:none;">';
            }
            else
            {
            htmlAttr2 += '<select name="cboAttrValue2" id="cboAttrValue2" onChange="changeVariant();">';
            }
            htmlAttr2 += '<option value=""';
            if (selectedAttrValue2 == null) 
                htmlAttr2 += ' SELECTED ';
            htmlAttr2 += '>Escolha '+oListVariants[0].attr_label2.toUpperCase()+'</option>';
            
        }
        
        var strExisteAttr1 = ''; //Variavel que contém lista de atributos 1 ja listados
        var strExisteAttr2 = ''; //Variavel que contém lista de atributos 2 ja listados
        var iIndexVar = 0;
		var dispVendeProdForaEstoque = oListVariants[0].VendeProdForaEstoque;
		var dispTipoControleDisp = oListVariants[0].TipoControleDisp;
		var attr1Controle = ''; //variável de controle para a exibição do atributo 1
        var attr2Controle = ''; //variável de controle para a exibição do atributo 2
		     
        for (i = 0; i < oListVariants.length; i++) {	
            if (temAttr1) {
                if ((oListVariants[i].attr_value1 != attr1Controle || attr1Controle == '') && (oListVariants[i].attr_value2 == selectedAttrValue2 || selectedAttrValue2 == null)) {
                    var msgForaEstoque = ""; //variável que guarda a mensagem caso a variante esteja fora de estoque
                    var classForaEstoque = ""; //variável que guarda o estilo caso a variante esteja fora de estoque
                    if (oListVariants[i].quantity <= 0){	
						if (oListVariants[0].attr_label2 == null || oListVariants[i].attr_value2 == selectedAttrValue2) {
						msgForaEstoque = ' (Indisponível, avise-me quando chegar.)';
						classForaEstoque = ' class="indisponivel" ';	
                        }
                    }
                    
                    if ((dispVendeProdForaEstoque == "S" && oListVariants[i].quantity <= 0 && dispTipoControleDisp != "P") || (dispVendeProdForaEstoque == "S" && oListVariants[i].quantity <= 0 && dispTipoControleDisp == "P" && oListVariants[0].disponibilidade != null)) {
						if (oListVariants[0].attr_label2 == null || oListVariants[i].attr_value2 == selectedAttrValue2) {
						msgForaEstoque = ' (Verificar prazo de disponibilidade.)';
						classForaEstoque = ' class="indisponivel" ';	
                        }
                    }

                    if (!temAttr2) {
                        htmlAttr1 += '<option value="' + oListVariants[i].attr_value1 + '"' + classForaEstoque
                        if (selectedAttrValue1 == oListVariants[i].attr_value1) 
                            htmlAttr1 += ' SELECTED ';
                        htmlAttr1 += '>';
                        htmlAttr1 += oListVariants[i].attr_value1 + msgForaEstoque;
                        htmlAttr1 += '</option>';
					    }	
                    else {
                        if (oListVariants[i].attr_value2 == selectedAttrValue2 || selectedAttrValue2 == null) {
                    htmlAttr1 += '<option value="' + oListVariants[i].attr_value1 + '"' + classForaEstoque
                    if (selectedAttrValue1 == oListVariants[i].attr_value1) 
                        htmlAttr1 += ' SELECTED ';
                    htmlAttr1 += '>';
                    htmlAttr1 += oListVariants[i].attr_value1 + msgForaEstoque;
                    htmlAttr1 += '</option>';
                }
            }
                    attr1Controle = oListVariants[i].attr_value1;
                }
            }
            
            if (temAttr2) {
                if ((oListVariants[i].attr_value2 != attr2Controle || attr2Controle == '') && (oListVariants[i].attr_value1 == selectedAttrValue1)) {
                
                    var msgForaEstoque = ""; //variável que guarda a mensagem caso a variante esteja fora de estoque
                    var classForaEstoque = ""; //variável que guarda o estilo caso a variante esteja fora de estoque
                    if (oListVariants[i].quantity <= 0){	
						msgForaEstoque = ' (Indisponível, avise-me quando chegar.)';
						classForaEstoque = ' class="indisponivel" ';	
                    }

		            if (oListVariants[i].quantity > 0)
		                blnExistEstoque = true;
                    
                    if ((dispVendeProdForaEstoque == "S" && oListVariants[i].quantity <= 0 && dispTipoControleDisp != "P") || (dispVendeProdForaEstoque == "S" && oListVariants[i].quantity <= 0 && dispTipoControleDisp == "P" && oListVariants[0].disponibilidade != null)) {
						msgForaEstoque = ' (Verificar prazo de disponibilidade.)';
						classForaEstoque = ' class="indisponivel" ';
					}
                    
                    htmlAttr2 += '<option value="' + oListVariants[i].attr_value2 + '"' + classForaEstoque
                    if (selectedAttrValue2 == oListVariants[i].attr_value2) 
                        htmlAttr2 += ' SELECTED ';
                    htmlAttr2 += '>';
                    htmlAttr2 += oListVariants[i].attr_value2 + msgForaEstoque;
                    htmlAttr2 += '</option>';
                    
                    attr2Controle = oListVariants[i].attr_value2;
                }
            }
            
            if (ifNull(oListVariants[i].attr_value1, "") == ifNull(selectedAttrValue1, "") && ifNull(oListVariants[i].attr_value2, "") == ifNull(selectedAttrValue2, "")) {
                selectedSku = oListVariants[i].sku;
                selectedStock = ((oListVariants[i].quantity > 0) || (dispVendeProdForaEstoque == "S" && dispTipoControleDisp == "P" && oListVariants[0].disponibilidade != null) || (dispVendeProdForaEstoque == "S" && dispTipoControleDisp != "P"));
            }
        }

        for (i = 0; i < oListVariants.length; i++) {
            blnVarianteEmEstoque = oListVariants[i].quantity > 0;
            blnVarianteSemEstoque = oListVariants[i].quantity <= 0;
            if (blnVarianteEmEstoque || blnVarianteSemEstoque)
              {
               break;
              }
        }


       if (document.getElementById('cboAttrValue1')) {
           if (document.getElementById('cboAttrValue1').selectedIndex >= 0) {
               attr_value1 = document.getElementById('cboAttrValue1').options[document.getElementById('cboAttrValue1').selectedIndex].value;
               if (attr_value1 == "") {
                   for (i = 0; i < oListVariants.length; i++) {
                       if (oListVariants[i].quantity > 0)
                           blnExistEstoque = true;
                   }
               } else {
                   for (i = 0; i < oListVariants.length; i++) {
                       if (oListVariants[i].attr_value1 == attr_value1) {
                           if (oListVariants[i].quantity > 0)
                               blnExistEstoque = true;
                       }
                   }
               }
           } else {
               for (i = 0; i < oListVariants.length; i++) {
                   if (oListVariants[i].quantity > 0)
                       blnExistEstoque = true;
               }

           }
       } else {
           for (i = 0; i < oListVariants.length; i++) {
               if (oListVariants[i].quantity > 0)
                   blnExistEstoque = true;
           }
       }


       if (document.getElementById('cboAttrValue2')) {
           if (document.getElementById('cboAttrValue2').selectedIndex >= 0) {
               attr_value2 = document.getElementById('cboAttrValue2').options[document.getElementById('cboAttrValue2').selectedIndex].value;
               if (attr_value2 != "") {
                   for (i = 0; i < oListVariants.length; i++) {
                       if (oListVariants[i].attr_value1 == attr_value1) {
                           if (oListVariants[i].attr_value2 == attr_value2) {
                               if (!(oListVariants[i].quantity > 0))
                                   blnExistEstoque = false;
                           }
                       }
                   }
               }
           }
       }


       if (!(dispVendeProdForaEstoque == "S"))
           selectedStock = blnExistEstoque        


        if (temAttr1) {
            htmlAttr1 += '</select>';
            htmlAttr1 += '	</td>';
            htmlAttr1 += '</tr>';
            htmlAttr1 += montaImagensAtributos(attr_label1, 1, intIndexAtrr1Sel);
        }
        
        if (temAttr2) {
            htmlAttr2 += '</select>';
            htmlAttr2 += '	</td>';
            htmlAttr2 += '</tr>';
            htmlAttr2 += montaImagensAtributos(attr_label2, 2, intIndexAtrr2Sel);
        }
        
        HTML += htmlAttr1;
        HTML += htmlAttr2;
    }
    else {
        /*
         * como só há uma variante no objeto, pode ser pega a variante 0
         */
        selectedSku = oListVariants[0].sku;
        selectedStock = ((oListVariants[0].quantity > 0) || (oListVariants[0].VendeProdForaEstoque == "S" && oListVariants[0].TipoControleDisp == "P" && oListVariants[0].disponibilidade != null) || (oListVariants[0].VendeProdForaEstoque == "S" && oListVariants[0].TipoControleDisp != "P"));	
    }
    
    /*
     * fim área de exibição das variantes
     *
     * início exibição do botão comprar
     */
    HTML += '<tr class="variantes_cor1">';

	if (oListVariants[0].is_giftlist.toLowerCase() == "true") {
		HTML += '<td width="45" align="center"></td>';
		HTML += '   <td><select name="giftlist_quantity" id="giftlist_quantity">';
        HTML += '   <option>Quantidade</option>';
		for(var  i = 1;  i <= 20; i++){
			HTML += '	<option value="' + i + '">' + i + '</option>';
		}
		HTML += '	</select>';
        HTML += '	</td></tr><tr class="variantes_cor2"><td width="45" align="center"></td><td>';
        HTML += '	<a href="javascript:addGiftlist(\'' + selectedSku + '\', \'' + oListVariants[0].idgl + '\');"><img align="center" vspace="3" hspace="5" src="' + iTemplateFolder + '/giftlist_bt_adicionarlista.gif" border="0" alt="Adicionar a lista" hspace="5"/></a>';
		HTML += '</td></tr>';
	}
	else {
	if(temVariantes)
	    if (hasTwoVariants) 
	        HTML += '<td width="45" align="center"><img src="' + iTemplateFolder + '/var_3.gif" border="0" alt="Passo 3"/></td>';
	    else
	        HTML += '<td width="45" align="center"><img src="' + iTemplateFolder + '/var_2.gif" border="0" alt="Passo 2"/></td>';
    else
		HTML += '<td width="45" align="center"></td>';

		HTML += '<td>';

		if ((oListVariants[listVariantIndex].template_b2b == "B2C")||((oListVariants[listVariantIndex].logadob2b == 1)&&(oListVariants[listVariantIndex].template_b2b == "B2B")) || ((oListVariants[listVariantIndex].template_b2b == "B2B")&&(oListVariants[listVariantIndex].exibe_prodb2b == "S")&&(oListVariants[listVariantIndex].exibe_precob2b == "S"))) {
			if (temVariantes)
				if (selectedAttrValue1 == null || (selectedAttrValue2 == null && hasTwoVariants))
					if (blnVarianteEmEstoque || (selectedStock && oListVariants[0].quantity > 0) || (oListVariants[0].VendeProdForaEstoque == "S" && oListVariants[0].TipoControleDisp == "P" && oListVariants[0].disponibilidade != null && oListVariants[0].ExibeProdForaEstoque == "S") || (oListVariants[0].VendeProdForaEstoque == "S" && oListVariants[0].TipoControleDisp != "P"))
						if (oListVariants[0].bloqueado == "P")
							HTML += '	<a href="javascript:setVenda(\'' + selectedSku + '\',\'' + selectedAttrValue1 + '\',\'' + selectedAttrValue2 + '\',' + temVariantes + ');"><img src="' + iTemplateFolder + '/bt_reservar.gif" border="0" alt="Comprar"/></a>';
						else
							HTML += '	<a href="javascript:setVenda(\'' + selectedSku + '\',\'' + selectedAttrValue1 + '\',\'' + selectedAttrValue2 + '\',' + temVariantes + ');"><img src="' + iTemplateFolder + '/bt_comprar.gif" border="0" alt="Comprar"/></a>';
					else
						HTML += '	<a href="javascript:setEncomenda(\'\',\'' + selectedAttrValue1 + '\',\'' + selectedAttrValue2 + '\');"><img src="' + iTemplateFolder + '/bt_encomendar.gif" border="0" alt="clique para solicitar aviso quando o produto estiver disponivel"/></a>';
				else {
					if (oListVariants[listVariantIndex].listadesejosFM == "S" && oListVariants[listVariantIndex].listadesejosGeral == "S" && oListVariants[0].bloqueado == "N")
						HTML += '	<a href="javascript:addLista(\'' + selectedSku + '\');"><img align="right" vspace="3" hspace="5" src="' + iTemplateFolder + '/bt_add_lista.gif" border="0" alt="Adicionar a lista" hspace="5"/></a>';

						if (selectedStock)
							if (oListVariants[0].bloqueado == "P")
								HTML += '	<a href="javascript:setVenda(\'' + selectedSku + '\',\'' + selectedAttrValue1 + '\',\'' + selectedAttrValue2 + '\',' + temVariantes + ');"><img src="' + iTemplateFolder + '/bt_reservar.gif" border="0" alt="Comprar"/></a>';
							else
								HTML += '	<a href="javascript:setVenda(\'' + selectedSku + '\',\'' + selectedAttrValue1 + '\',\'' + selectedAttrValue2 + '\',' + temVariantes + ');"><img src="' + iTemplateFolder + '/bt_comprar.gif" border="0" alt="Comprar"/></a>';
						else
							HTML += '	<a href="javascript:setEncomenda(\'' + selectedSku + '\',\'\',\'\');"><img src="' + iTemplateFolder + '/bt_encomendar.gif" border="0" alt="clique para solicitar aviso quando o produto estiver disponivel"/></a>';
				}
			else {
				if (oListVariants[listVariantIndex].listadesejosFM == "S" && oListVariants[listVariantIndex].listadesejosGeral == "S" && oListVariants[0].bloqueado == "N")
					HTML += '	<a href="javascript:addLista(\'' + selectedSku + '\');"><img align="right" vspace="3" hspace="5" src="' + iTemplateFolder + '/bt_add_lista.gif" border="0" alt="Adicionar a lista" hspace="5"/></a>';

					if (selectedStock)
						if (oListVariants[0].bloqueado == "P")
							HTML += '	<a href="javascript:setVenda(\'' + selectedSku + '\',\'' + selectedAttrValue1 + '\',\'' + selectedAttrValue2 + '\',' + temVariantes + ');"><img src="' + iTemplateFolder + '/bt_reservar.gif" border="0" alt="Comprar"/></a>';
						else
							HTML += '	<a href="javascript:setVenda(\'' + selectedSku + '\',\'' + selectedAttrValue1 + '\',\'' + selectedAttrValue2 + '\',' + temVariantes + ');"><img src="' + iTemplateFolder + '/bt_comprar.gif" border="0" alt="Comprar"/></a>';
					else 
						HTML += '	<a href="javascript:setEncomenda(\'' + selectedSku + '\');"><img src="' + iTemplateFolder + '/bt_encomendar.gif" border="0" alt="clique para solicitar aviso quando o produto estiver disponivel"/></a>';
				
			}
		}
		HTML += '</td>';
	}
    /* 
     * fim da área de exibição do botão comprar
     */
    HTML += '</tbody></table>';
    objVariants.innerHTML = HTML;
}

function existeNaLista(strList, strValue, strSep)
{
    /*
     * Função que verifica a existencia de um atributo em uma lista de atributos.
     * Parâmetros:
     *      strList [String]   = Lista de Atributos
     *      strValue[String]   = Valor do Atributo a ser consultado
     *      strSep  [String]   = Separador da lista, que separa um atributo do outro. 
     * Retorno      [Boolean]  = true ou false
     */
    var aList = strList.split(strSep)
    for(var x=0; x<aList.length; x++)
    {
        if(aList[x] == strValue)
        {
            return true;
        }
    }
    return false;
}

function existeImagemAtributo(strLabel)
{
    /*
     * Função que verifica a existencia de atributos com imagem
     * Parâmetros:
     *      strLabel [String]   = Valor do Atributo ex: "Cor" ou "Tamanho"
     * Retorno       [Boolean]  = true ou false
     */
    var totalVariantes = oAttrImages.length;
    
    for(var x=0; x<totalVariantes; x++)
    {
        strName        = oAttrImages[x]["mva_name"];
        if (strName == strLabel)
        {
            return true;
        }
    }
    return false;

}

function replaceAll(strValue, strSep, strNewSep)
{
    /*
     * Função responsável por Fazer o REPLACE na string inteira
     * Parâmetros: 
	 *     strValue       [String] = Valor da String onde será feito o REPLACE.
	 *     strSep         [String] = Valor antigo.
	 *     strNewSep      [String] = Valor novo.
     *
     */
    var aString     = strValue.split(strSep);
    var intTam      = aString.length;
    var strRetorno  = strValue;
    for(var i=0;i<intTam;i++)
    {
        strRetorno=strRetorno.replace(strSep,strNewSep);
    }
    return strRetorno;
}

function montaImagensAtributos(strLabel, intAtributo, intIndexVarSel)
{
    /*
	 * Função responsável por gerar imagens dos atributos, quando elas existem
	 * Parâmetros: 
	 *      strLabel       [String] = Valor do Atributo ex: "Cor" ou "Tamanho"
	 *      intAtributo    [Int]    = Número do Atributo ex: "1" ou "2" 
	 *      intIndexVarSel [Int]    = Índice da variante selecionada.
	 * Retorno [String]: HTML contendo imagens dos atributos.
	 */
	var strHtmlAttr = ''; 
	var strStyle = '';
    var intTotalVariantes = oAttrImages.length;
    var strImage_file;
    var strValue;
    var strName;
    var blnRetorna = false;
    
    strHtmlAttr += '<tr><td></td><td>';
    for(var x=0; x<intTotalVariantes; x++)
    {
        strImage_file  = oAttrImages[x]["mva_image_file"];
        strValue       = oAttrImages[x]["mva_value"];
        strName        = oAttrImages[x]["mva_name"];
        strValue       = replaceAll(strValue,' ', '_|||_');
        strValue       = replaceAll(strValue,'	', '_||_');
        if (strName == strLabel)
        {
            blnRetorna = true;
            if(intIndexVarSel == x)
                strHtmlAttr += '<a href=javascript:onclick=setaVarianteCombo("'+strValue+'",'+intAtributo+','+x+');><img id="attrImg.'+x+'" src="'+iRootFolder+'/assets/attribute_images/mini/'+strImage_file +'" style="border-color:#666666;" border="1" vspace="3" /></a>';
            else
                strHtmlAttr += '<a href=javascript:onclick=setaVarianteCombo("'+strValue+'",'+intAtributo+','+x+');><img id="attrImg.'+x+'" src="'+iRootFolder+'/assets/attribute_images/mini/'+strImage_file +'" border="0" vspace="3" /></a>';
        }
        if (((x+1) % 6) == 0){
            strHtmlAttr += '<br />';
        }
    }
    strHtmlAttr += '</td></tr>';
    
    if(!blnRetorna)
        strHtmlAttr = '';
        
    return strHtmlAttr;
}

function ifNull(value1, value2){
	return (value1 == null ? value2: value1);
}


function selectComboItem(value2){
    var cboAttrValue1 = document.getElementById('cboAttrValue1')
    var cboAttrValue2 = document.getElementById('cboAttrValue2')
    
    if ((value2 != null) && (value2 != undefined) && (cboAttrValue2)) {
        for (i = 0; i < cboAttrValue2.options.length; i++) {
            if (cboAttrValue2.options[i].value == value2) {
                cboAttrValue2.options[i].selected = "selected";
                for (var i = 0; i < oListVariants.length; i++) {
                    if (oListVariants[i].attr_value2 == value2) 
                        if (document.getElementById(value2)) 
                            document.getElementById(value2).className = "prod_descr_img_mini_sel";
                        else 
                            if (document.getElementById(oListVariants[i].attr_value2)) 
                                document.getElementById(oListVariants[i].attr_value2).className = "prod_descr_img_mini";
                }
            }
        }
    }
    if ((value1) || (value2)) {
        if (cboAttrValue2) {
            comboClick('2', false);
        }
        else {
            comboClick('1', false);
        }
    }
}


function imgVarClick(sku){
    var iItem = getVariantIDByItem('sku', sku);
    if (iItem != -1) {
        selectComboItem(oListVariants[iItem].attr_value1, oListVariants[iItem].attr_value2);
    }
}

function comboClick(sku, nome){

    var iItem = getVariantIDByItem('sku', sku);
    listVariantIndex = iItem;
    changeVariant();
    montaPrecos();
}
  
function showAvaliacao(){
	
	var avaliacao = document.getElementById('avaliacao_produto')
	
	if (isIE()) {
		avaliacao.style.top = (iMouse.y - 115) + 'px';
		avaliacao.style.left = (iMouse.x - 580) + 'px';
	}else {
		avaliacao.style.top = (iMouse.y) + 'px';
		avaliacao.style.left = (iMouse.x - 430) + 'px';
	}

	avaliacao.style.display = (avaliacao.style.display == "block" ? "none" : "block") ;
	avaliacao.style.visibility = (avaliacao.style.visibility == "visible" ? "" : "visible");
	

}

function addGiftlist(sku, idgl){
	quantity = document.getElementById('giftlist_quantity').options[document.getElementById('giftlist_quantity').selectedIndex].value;
	
	var cAjax = new Ajax();
	
	cAjax.onStateChange = function(classState,httpState,retornoHTML,retornoXML){
		if (httpState == 200) {
		    
			document.getElementById('g_mini_basket').innerHTML = retornoHTML.toString();
			alert('Produto adicionado na lista com sucesso!');
		}
			
	}
	cAjax.load('add_product_giftlist.asp','sku=' + sku + '&idgl=' + idgl + '&quantity=' + quantity, 'GET');
}
// Fim Variants
//===============================================



