var selectedColor = null;
var selectedSize = null;
var bAdding = false;

/** Color / Size actually selected */
function provadorSelectedColor() {
   return (selectedColor == null) ? '' : selectedColor.parentNode.getAttribute('cor');
}

function provadorSelectedSize() {
   return (selectedSize == null) ? '' : selectedSize.parentNode.getAttribute('tam');
}

/** Disable selectors */
function provadorDisableSelectors(arr, attr, before, after) {
   var i;
   var img;
   var sKey;
   var esto;
   var sSuffix;
   var sSize;
   var sDir;
   var res;
   var qtd;
//console.warn(arr, attr, before, after);
   qtd = document.getElementById('txtQtd').value;
   if ((new RegExp("^(\\d+)$")).test(qtd)) {
      qtd = parseInt(qtd);
   } else {
      qtd = 30000;
   }
   if (qtd <= 0) {
      qtd = 30000;
   }

   if (arr.length > 0) {
      sDir = calculateFilename(arr[0].getElementsByTagName('IMG')[0].src)[0];
   }
   $(arr).removeClass('semEstoque');
   for (i=0;i<arr.length;i++) {
      sKey = 'spa_Esto' + before + '_' + arr[i].getAttribute(attr) + after;
      res = 0;
      if ((esto=document.getElementById(sKey + '_R'))!=null) {
         res = parseInt(esto.getAttribute('qtd'));
      }
      sSuffix = 'Off';
      if ((esto=document.getElementById(sKey))!=null) {
         if (parseInt(esto.getAttribute('qtd'))>=(qtd-res)) {
            sSuffix = '';
         }
      }
      sSize = arr[i].getAttribute('size'); 
      if (sSize == null) {
         sSize = '1';
      }
	  if(sSuffix == 'Off'){
		$(arr[i]).addClass('semEstoque');
	  }
	//  console.info(arr[i], sSize, sSuffix);
      arr[i].getElementsByTagName('IMG')[0].src = sDir + 'imgSize' + sSize + sSuffix + '.gif';
   }
}

/** Selector click */
function provadorSelect(arr, sel, obj, lbl) {
   var i;
   var img = obj.getElementsByTagName('IMG')[0]; 

   if (sel != null) {
      sel.removeAttribute('over_locked');
   }
   for (i=0;i < arr.length;i++) {
      provadorOut(arr[i].getElementsByTagName('A')[0])      
   }
   obj.setAttribute('over_locked', 'S');   
   img.className = 'provadorIconSelected';
	$(obj).parent().parent().children().removeClass('selected').find('a').removeClass('selected');
	$(obj).addClass('selected').parent().addClass('selected');
   $(lbl).find('span').html(img.alt);
  // lbl.getElementsByTagName('SPAN')[0].innerHTML = img.alt;
   lbl.style.visibility = 'visible';  
}

/** Over / Out */
function provadorOver(obj) {
   var img = obj.getElementsByTagName('IMG')[0];
   
   if (obj.getAttribute('over_locked') == null) {
      img.className = 'provadorIconOver';
   }   
}

function provadorOut(obj) {
   var img = obj.getElementsByTagName('IMG')[0];
   
   if (obj.getAttribute('over_locked') == null) {
      img.className = 'provadorIcon';
   }   
}

/** Selects color,  size or qty */
function provadorSelectColor(obj) {
   var div_Imagem = document.getElementById('div_Imagem');
   var div_Preco = document.getElementById('div_Preco');
   var p;
   var pp;

   provadorSelect(document.getElementById('div_Colors').getElementsByTagName('DIV'), selectedColor, obj, document.getElementById('div_LabelCor'));   
   selectedColor = obj;
   provadorDisableSelectors(document.getElementById('div_Sizes').getElementsByTagName('DIV'), 'tam', '_' + selectedColor.parentNode.getAttribute('cor'), ''); 

   div_Imagem.getElementsByTagName('IMG')[0].src = 'img/loja/produtos/' + div_Imagem.getAttribute('mode') + selectedColor.parentNode.getAttribute('cor') + div_Imagem.getAttribute('size') + '.jpg'; 
   p = 'R$ ' + selectedColor.parentNode.getAttribute('p');
   if ((pp = selectedColor.parentNode.getAttribute('pp'))!= null) {
      p = 'De R$ ' + pp + '&nbsp;&nbsp;<span class="produtoPromo">por ' + p + '</span>'  
   }
   div_Preco.innerHTML = '<B>' + p + '</B>';
   div_Preco.style.visibility = 'visible';

   return false;
}

function provadorSelectSize(obj) {
   provadorSelect($('#div_Sizes div').get(), selectedSize, obj, $('#div_LabelTamanho').get(0));   
   selectedSize = obj;
   provadorDisableSelectors(document.getElementById('div_Colors').getElementsByTagName('DIV'), 'cor', '', '_' + selectedSize.parentNode.getAttribute('tam'));
   
   return false;
}

function provadorSelectQuantity() {
   if (selectedColor != null) {
      provadorSelectColor(selectedColor);
   }
}

/** Selects color & changes details */
function provadorSelectColorFull(obj) {
   var i, det;
   var s, img;
   
   if ((selectedColor != null) && (obj == selectedColor)) {
      return false;
   }

   provadorSelectColor(obj);
   det = parseInt(selectedColor.parentNode.getAttribute('dt'));
   img = document.getElementById('div_Imagem').getAttribute('mode') + selectedColor.parentNode.getAttribute('cor') + '061'; 
   
   s = '<a href="#null" onClick="return provadorChangeDetail(\'\');"><img src="img/loja/produtos/' + img + '.jpg" border="0" alt=""></a>'
   for (i=1;i<=det;i++) {
      s = s + '<img src="img/sistema/pixels/pxlNull.gif" width="2" height="2"><a href="#null" onClick="return provadorChangeDetail(\'' + Number(i).toString() + '\');"><img src="img/loja/produtos/' + img + Number(i).toString() + '.jpg" border="0" alt=""></a>';
   }
   document.getElementById('div_Detalhes').innerHTML = s;
   document.getElementById('div_Amplia').style.display = (selectedColor.parentNode.getAttribute('ap')==null)? 'none':'block';
   document.getElementById('div_Look').style.display = (selectedColor.parentNode.getAttribute('lk')==null)? 'none':'block';
   document.getElementById('div_Cata').style.display = (selectedColor.parentNode.getAttribute('ct')==null)? 'none':'block';
   
   return false;
   
}

/** Detail change */
function provadorChangeDetail(det) {
   var div_Imagem = document.getElementById('div_Imagem');
   
   div_Imagem.getElementsByTagName('IMG')[0].src = 'img/loja/produtos/' + div_Imagem.getAttribute('mode') + provadorSelectedColor() + '250' + det + '.jpg';
   return false 
}


/** Zoom & Images */ 
function provadorZoom(obj) {
   return produtoZoom(obj, 'Provador', document.getElementById('div_Imagem').getAttribute('mode'), provadorSelectedColor()); 
} 

function provadorImagem(obj, type) {
   return produtoImagem(obj, 'Provador', document.getElementById('div_Imagem').getAttribute('mode'), provadorSelectedColor(), type);
}

/** Validate product */
function provadorValidate() {
   var cor = provadorSelectedColor();
   var tam = provadorSelectedSize();
   var qtd = document.getElementById('txtQtd');
   var res;   
   var obj;
   
   if (bAdding) {
      return false;
   }
   
   if (cor == '') {
      alert('Por favor, escolha a cor desejada');
      return false;
   } 
   
   if (tam == '') {
      alert('Por favor, escolha o tamanho desejado');
      return false;
   }

   if (!((new RegExp("^(\\d+)$")).test(qtd.value))) {
      alert('Quantidade inválida!');
      qtd.focus();
      return false;
   } 

   if (parseInt(qtd.value)==0) {
      alert('Quantidade deve ser maior que zero!');
      qtd.focus();
      return false;
   }

   res = document.getElementById('spa_Esto_' + cor + '_' + tam + '_R');
   if (res != null) {
      res = parseInt(res.getAttribute('qtd'));
   } else {
      res = 0;
   }


   if ((obj = document.getElementById('spa_Esto_' + cor + '_' + tam))!=null) {
      if (parseInt(obj.getAttribute('qtd'))>=parseInt(qtd.value)-res) {
         return true;
      }
   }
   alert('Não há estoque disponível para a cor e tamanho escolhidos. Por favor, escolha outra cor ou tamanho.');
   return false;

} 

/** Update provador **/
function provadorUpdate(esto) { 
   var cor = document.getElementById('hid_ProvadorCore').value;
   var tam = document.getElementById('hid_ProvadorPos').value; 

   document.getElementById('spa_Esto_' + cor + '_' + tam).setAttribute('qtd', esto);

   if (provadorSelectedColor() == cor) {

   provadorDisableSelectors(document.getElementById('div_Sizes').getElementsByTagName('DIV'), 'tam', '_' + cor, '');
   }
}

/** Add product */
function provadorAdd() {
   if (provadorValidate()) {
         bAdding = true;
         document.getElementById('hid_ProvadorCore').value = provadorSelectedColor();
         document.getElementById('hid_ProvadorPos').value = provadorSelectedSize();
         document.getElementById('frm_Provador').action = 'sal_sacolaAdd.asp';
         document.getElementById('frm_Provador').target = 'fra_Submit';
         document.getElementById('frm_Provador').submit();
   }
   return false;
}

function provadorAdded(obj, esto, items, tot) {
   var cor = document.getElementById('hid_ProvadorCore').value
   var tam = document.getElementById('hid_ProvadorPos').value
   var path = document.getElementById('spa_StylePath').getAttribute('path');
   var td = document.getElementById('td_MenuSacola'); 
   
 //  console.log(obj);
   provadorUpdate(esto);
   
   document.getElementById('spa_MenuCarrinho').innerHTML = tot;
  // td.getElementsByTagName('IMG')[0].src = path + 'menu_t/' + td.getAttribute('baseimage') + ((tot == 0) ? '':'Cheia') + '.gif';
   $('#td_MenuSacola').addClass('sacolaCheia');

   if (obj!=null) {
      document.getElementById('div_Sacola').style.visibilty = 'hidden';
      document.getElementById('div_SacolaContents').innerHTML = obj.innerHTML;
      slideWindow('div_SacolaContents');
   } else {
      alert('Não há estoque disponível para a cor e tamanho escolhidos. Por favor, escolha outra cor ou tamanho.');
   }
   bAdding = false;
}

/** Change product */
function provadorChange() {
   if (provadorValidate()) {
      bAdding = true;
      document.getElementById('hid_ProvadorCore').value = provadorSelectedColor();
      document.getElementById('hid_ProvadorPos').value = provadorSelectedSize();
      document.getElementById('hid_ProvadorQtd').value = document.getElementById('txtQtd').value;
      document.getElementById('frm_Provador').action = 'sal_sacolaChange.asp';
      document.getElementById('frm_Provador').target = 'fra_Submit';
      document.getElementById('frm_Provador').submit();
   }
   return false;
}

function provadorChanged(qtd, esto) {
   
   provadorUpdate(esto);

   if (qtd == 0) {
      alert('Não há estoque disponível para a cor e tamanho escolhidos. Por favor, escolha outra cor ou tamanho.');
   } else {
      window.location.reload(true);
   }
   bAdding = false
}

/** Startup */
function provadorStartColor(cor) {
   var arr = document.getElementById('div_Colors').getElementsByTagName('DIV');
   var i;
   
   for (i=0;i<arr.length;i++) {
      if (arr[i].getAttribute('cor')==cor) {
         return provadorSelectColor(arr[i].getElementsByTagName('A')[0]);
      }
   }
   return false;
} 

function provadorStartSize(tam) {
   var arr = document.getElementById('div_Sizes').getElementsByTagName('DIV');
   var i;
   
   for (i=0;i<arr.length;i++) {
      if (arr[i].getAttribute('tam')==tam) {
         return provadorSelectSize(arr[i].getElementsByTagName('A')[0]);
      }
   }
   return false;
} 

function provadorInit(cor, tam) {
   selectedColor=null;
   selectedSize=null;
   
   if (cor != '') {
      provadorStartColor(cor);
   }
   if (tam != '') {
      provadorStartSize(tam);
   }
}


/**** NOT IN USE ANYMORE. DEPRECATED. ****/

/* show selector */
function provadorShow(obj, cor) {
   var selector = document.getElementById('div_Selector');

   if (obj == null) {
      alert ('Este produto está temporariamente indisponível para compra');
      return false;
   }
 
   selectedColor=null;
   selectedSize=null;
   
   selector.innerHTML = obj.innerHTML;
   provadorStartColor(cor);
   selector.style.display = 'block'
   
   return false;
}

