var yud = YAHOO.util.Dom;
var yue = YAHOO.util.Event;
var yuc = YAHOO.util.Connect;
var yup = YAHOO.widget.Protoload;
YAHOO.namespace("mastop");
YAHOO.mastop.Produto = function() {
	return {
		start : function() {
			yue.on("comprarForm", "submit", this.checaEnvio, null, true);
			var prvRemotes = yud.getElementsByClassName("prvRemote", "select",
					"prvRemote");
			for ( var i = 0, len = prvRemotes.length; i < len; i++) {
				yue.on(prvRemotes[i], "change", this.selectPrv);
			}
		},
		selectPrv : function() {
			if (this.selectedIndex > 0) {
				var prv = this.options[this.selectedIndex].value;
				var prd = yud.get("prd").value;
				var vov = 0;
				var prvSelect = yud.getElementsByClassName("prvSelect", "select",
				"prdBuy");
				for ( var i = 0, len = prvSelect.length; i < len; i++) {
					if (prvSelect[i].selectedIndex > 0) {
						if(vov == 0){
							vov = prvSelect[i].options[prvSelect[i].selectedIndex].value;
						}else{
							vov = vov+','+prvSelect[i].options[prvSelect[i].selectedIndex].value;
						}
					}
					if(prvSelect[i].options[prvSelect[i].selectedIndex].value == prv){
						break;
					}
				}
				var postData = "prd=" + prd + "&vov=" + vov;
				var prdBuy = yud.get("prdBuy");
				var prvRemote = yud.get("prvRemote");
				var prvId = yud.get("prv");
				yup.startWaiting(prdBuy, 'waiting');
				//yud.setStyle(prvRemote, 'visibility', 'hidden');
				var sucesso = function(o) {
                                        var resposta =JSON.parse(o.responseText);
					if(resposta.last){
						var prdValor = yud.get('prdPrice');
						prdValor.innerHTML = resposta.valor;
						if(resposta.valorNew){
							yud.setStyle(prdValor, "background-color", "#FF0");
							var attributes = {
									backgroundColor: { to: '#FFF' } 
							}; 
							var anim = new YAHOO.util.ColorAnim(prdValor, attributes);
							anim.animate();
						}
						var prdRef = yud.get('prdRef');
						if(resposta.cod){
							prdRef.innerHTML = '['+resposta.cod+']';
						}else{
							prdRef.innerHTML = '';
						}
						prvId.value = resposta.prv;
					}else{
						prvId.value = 0;
						var item = yud.get("prv_" + resposta.item);
						item.disabled = false;
						item.options.length=0;
						item.options[0] = new Option("-- Selecione --", "0");
						var loop = 1;
						for ( var i in resposta.valores) {
							if (i > 0) {
								item.options[loop] = new Option(resposta.valores[i], i);
								loop++;
							}
						}
						for ( var i = resposta.item+1, len = prvSelect.length; i < len; i++) {
							if(prvSelect[i].disabled == false){
								var prvLabel = yud.get('prvLabel'+(i-1)).innerHTML;
								prvSelect[i].options.length=0;
								prvSelect[i].options[0] = new Option("-- Selecione "+prvLabel.substr(0, prvLabel.length - 1)+" --", "0");
								prvSelect[i].disabled = true;
							}
						}						
					}
					//yud.setStyle(prvRemote, 'visibility', 'visible');
					yup.stopWaiting(prdBuy);
				};
				var falha = function(o) {
					alert("Erro: " + o.statusText);
					yup.stopWaiting(prdBuy);
				};
				var callback = {
					success : sucesso,
					failure : falha
				};
				var cObj = yuc.asyncRequest('POST',
						siteURL + '/produtos/ajax/getPrvs.php', callback,
						postData);
			}else{
				yud.get("prv").value = 0;
			}
		},
		checaEnvio : function(e) {
			var prv = yud.get("prv");
			var prvSelect = yud.getElementsByClassName("prvSelect", "select",
					"prdBuy");
			for ( var i = 0, len = prvSelect.length; i < len; i++) {
				if (prvSelect[i].selectedIndex == 0) {
					var prvLabel = yud.get('prvLabel' + i).innerHTML;
					alert('Selecione a opção de "' + prvLabel.substr(0,
							prvLabel.length - 1) + '" para comprar.');
					yue.stopEvent(e);
					return false;
				}
			}
			if (prv.value == 0) {
				alert("Selecione as opções para comprar.");
				yue.stopEvent(e);
				return false;
			}
			var forname = yud.get("forname");
			var for_10_id = yud.get("for_10_id");
			var cat_10_id = yud.get("cat_10_id");
			var catRetorno = yud.get("catRetorno");
			var cats = yud.getElementsByClassName("prdCat");
			var prd_35_desc = yud.get("prd_35_desc");
			var prd_18_valor = yud.get("prd_18_valor");
			var prd_18_peso = yud.get("prd_18_peso");
			var error = false;
			var errorMsg = '';
			if (prd_30_nome.value.trim() === "") {
				errorMsg = "» Digite o Nome do Produto";
				error = true;
			}
			if (for_10_id.value.trim() === "0") {
				errorMsg = "» Selecione " + forname.value;
				error = true;
			}
			if (cat_10_id.value.trim() === "") {
				catRetorno.className = "erro";
				catRetorno.innerHTML = "Selecione uma Categoria";
				errorMsg = errorMsg + "\n» Selecione uma Categoria";
				error = true;
			} else {
				catRetorno.innerHTML = "";
				for ( var i = 0, len = cats.length; i < len; i++) {
					if (cats[i].selectedIndex === 0) {
						catRetorno.className = "erro";
						catRetorno.innerHTML = "Selecione uma Sub-Categoria";
						errorMsg = errorMsg + "\n» Selecione uma Sub-Categoria";
						error = true;
						break;
					} else {
						catRetorno.innerHTML = "";
					}
				}
			}
			if (prd_35_desc.value.trim() === "") {
				errorMsg = errorMsg + "\n» Digite a Descrição do Produto";
				error = true;
			}
			if (prd_18_valor.value.trim() === ""
					|| prd_18_valor.value.trim() == "0,00") {
				errorMsg = errorMsg + "\n» Digite o Valor do Produto";
				error = true;
			}
			if (prd_18_peso.value.trim() === ""
					|| prd_18_peso.value.trim() == "0.000") {
				errorMsg = errorMsg + "\n» Digite o Peso do Produto";
				error = true;
			}
			var estvar = yud.get("prd_11_estoque_2");
			var useVar = yud.get("useVar_0");
			var var_10_id = yud.get("var_10_id_1");
			if (estvar.checked
					&& (useVar.checked || var_10_id.selectedIndex === 0)) {
				tabView.set("activeIndex", 2);
				alert("» Você optou por controlar o estoque pelas variações dos produtos, mas não selecionou nenhuma variação.");
				yue.stopEvent(e);
				return false;
			}
			if (error) {
				tabView.set("activeIndex", 0);
				alert("Ocorreram erros ao enviar o formulário. Verifique os itens abaixo e tente novamente:\r\n"
						+ errorMsg);
				yue.stopEvent(e);
			}
		},
		init : function() {
			yue.onDOMReady(this.start, this, true);
		}
	};
}();
YAHOO.mastop.Produto.init();

