var Carrinho = Class.create();

Carrinho.prototype = {
	
	initialize: function() {
	},
	abrirForm : function( _id ){
				$('carrinhoForm').show();
	},
	marcarComparacao : function(pid){
		
		new Ajax.Updater($('productCompListUl'),'http://www.polysports.com.br/_Request/marcarComparacao&id='+pid, {
			insertion: Insertion.Bottom,
			onComplete: function() {
				var notice = $('marker_'+pid);
				notice.setStyle({ background: 'url(http://www.polysports.com.br/_shared/images/star_on.gif) no-repeat left' });
				$('productCompListDiv').show();
			}
		
		});
	},
	adicionar : function( _id ,_qtd, _noiva ){
		new Ajax.Request('http://www.polysports.com.br/_Request/adicionarCarrinho/'+_id+'/'+_qtd+','+_noiva, {
			onComplete: function(resposta) {
				if(resposta.responseText.isJSON()){
					var res = resposta.responseText.evalJSON();
					if(res.status == 'ok'){
						pageTracker._trackEvent('Carrinho','Adicionar',_id,_qtd);
						this.carrega();
					}else{
						alert(res.mensagem)
						pageTracker._trackEvent('Carrinho','Tentativa de Adição',_id,_qtd);
					}
				}else{
					alert(resposta.responseText)
					pageTracker._trackEvent('Carrinho','Tentativa de Adição',_id,_qtd);
				}
			}.bind(this)
		});
	},
	adicionarLista : function( _id ,_qtd ){
		new Ajax.Request('http://www.polysports.com.br/_Request/adicionarLista/'+_id+'/1', {
			onComplete: function(resposta) {
				if(resposta.responseText.isJSON()){
					var res = resposta.responseText.evalJSON();
					if(res.status == 'ok'){
						$$('#carrinhoAddForm').invoke('fade')
						this.carregaLista();
						pageTracker._trackEvent('Lista','Adicionar à lista de Casamento',_id,_qtd);
					}else{
						alert(res.mensagem)
						pageTracker._trackEvent('Lista','Tentativa de Adição à lista de Casamento',_id,_qtd);
					}
				}else{
					alert(resposta.responseText)
					pageTracker._trackEvent('Lista','Tentativa de Adição à lista de Casamento',_id,_qtd);
				}
			}.bind(this)
		});
	},
	acrescentarLista : function( _id ,_qtd ){
		new Ajax.Request('http://www.polysports.com.br/_Request/acrescentarLista/'+_id+'/'+_qtd, {
			onComplete: function(resposta) {
				if(resposta.responseText.isJSON()){
					var res = resposta.responseText.evalJSON();
					if(res.status == 'ok'){
						$('produtosNoivasQtd_'+_id).update(res.mensagem);
						pageTracker._trackEvent('Lista','Acrescentar',_id,_qtd);
					}else{
						alert(res.mensagem)
						pageTracker._trackEvent('Lista','Tentativa de Acrescentar',_id,_qtd);
					}
				}else{
					alert(resposta.responseText)
					pageTracker._trackEvent('Lista','Tentativa de Acrescentar',_id,_qtd);
				}
			}.bind(this)
		});
	},
	atualizarQuantidade : function( _id ,_qtd ){
		new Ajax.Request('http://www.polysports.com.br/_Request/atualizarQuantidade/'+_id+'/'+_qtd, {
			onComplete: function(resposta) {
				if(resposta.responseText.isJSON()){
					var res = resposta.responseText.evalJSON();
					if(res.status == 'ok'){
						$$('#carrinhoAddForm').invoke('fade')
						this.carregaCarrinhoFull();
						this.atualizaFrete ( $('cep').value,$('pesoTotal').value );
						pageTracker._trackEvent('Carrinho','Atualizar Quantidade',_id,_qtd);
					}else{
						alert(res.mensagem)
						pageTracker._trackEvent('Carrinho','Tentativa de Atualizar Quantidade',res.mensagem,1);
					}
				}else{
					alert(resposta.responseText)
					pageTracker._trackEvent('Carrinho','Tentativa de Atualizar Quantidade',resposta.responseText,1);
				}
			}.bind(this)
		});
	},
	consultaFrete : function( _cep ,_peso ){
		$('botaoConsulta').update('Aguarde, consultando...');
		new Ajax.Request('http://www.polysports.com.br/_Request/consultaFrete/'+_cep+'/'+_peso, {
			onComplete: function(resposta) {
				if(resposta.responseText.isJSON()){
					var res = resposta.responseText.evalJSON();
					if(res.status == 'ok'){
							$('resultFrete').update(res.mensagem);
							$('totalGeral').update((parseFloat(res.pac_valor) + parseFloat($('subTotal').value)).toFixed(2).replace('.',','));
							$('botaoConsulta').update('Consultar novamente');
							pageTracker._trackEvent('Carrinho','Consulta de frete',_cep,_peso);
					}else{
						$('resultFrete').update('Indisponível para o CEP informado');
						$('totalGeral').update((parseFloat(res.pac_valor)).toFixed(2).replace('.',','));
						$('botaoConsulta').update('Consultar novamente');
						//pageTracker._trackEvent('Carrinho','Consulta de frete',_cep,_peso);
						//alert(res.mensagem)
						pageTracker._trackEvent('Carrinho','Tentativa de Consulta de frete',res.mensagem,1);
					}
				}else{
					alert(resposta.responseText)
					pageTracker._trackEvent('Carrinho','Tentativa de Consulta de frete',resposta.responseText,1);
				}
			}.bind(this)
		});
	},
	atualizaFrete : function (){
		new Ajax.Request('http://www.polysports.com.br/_Request/atualizaFrete/', {
			onComplete: function(resposta) {
				if(resposta.responseText.isJSON()){
					var res = resposta.responseText.evalJSON();
					if(res.status == 'ok'){
							$('formatoFrete').update(res.mensagem);
							this.atualizaParcelamento ( );
					}else{
						alert(res.mensagem)
					}
				}else{
					alert(resposta.responseText)
				}
			}.bind(this)
		});
	},
	recuperarCupom : function ( _cupom ){
		new Ajax.Request('http://www.polysports.com.br/_Request/recuperarCupom/'+_cupom, {
			onComplete: function(resposta) {
				if(resposta.responseText.isJSON()){
					var res = resposta.responseText.evalJSON();
					if(res.status == 'ok'){
							$('resultCupom').update(res.mensagem);
							this.carregaCarrinhoFull();
							this.atualizaParcelamento ( );
							pageTracker._trackEvent('Carrinho','Consulta de cupom',_cupom);
					}else{
						alert(res.mensagem)
						pageTracker._trackEvent('Carrinho','Tentativa de Consulta de frete',res.mensagem,1);
					}
				}else{
					alert(resposta.responseText)
					pageTracker._trackEvent('Carrinho','Tentativa de Consulta de frete',resposta.responseText,1);
				}
			}.bind(this)
		});
	},
	atualizaParcelamento : function ( ){
		new Ajax.Request('http://www.polysports.com.br/_Request/atualizaParcelamento/', {
			onComplete: function(resposta) {
				if(resposta.responseText.isJSON()){
					var res = resposta.responseText.evalJSON();
					if(res.status == 'ok'){
							$('parcelamento').update(res.mensagem);
					}
				}
			}.bind(this)
		});
	},
	mudaFormatoFrete : function( _formato ){
		if( _formato.getAttribute('format') == 'EN'){
			$('tipo_frete').value= "PAC";
			$('parc_pac').show();
			$('parc_sedex').hide();
		}
		if( _formato.getAttribute('format') == 'SEDEX'){
			$('tipo_frete').value= "Sedex";
			$('parc_sedex').show();
			$('parc_pac').hide();
		}
		$('total').value = parseInt(_formato.value) + parseInt($F('pretotal'));
		
	},//
//	mudaFormatoFrete : function( _formato ){
//		if( _formato.getAttribute('format') == 'EN'){
//			$('tipo_frete').value= "PAC";
//		}
//		if( _formato.getAttribute('format') == 'SEDEX'){
//			$('tipo_frete').value= "Sedex";
//		}
//		$('total').value = parseInt(_formato.value) + parseInt($F('pretotal'));
//		
//			v=$('total').value.replace(/\D/g,"")                //Remove tudo o que não é dígito
//			v=v.replace(/(\d)(\d{2})$/,"$1,$2") //Esse é tão fácil que não merece explicações
//		//$('totalGeral').update(v);
//		new Ajax.Request('http://www.polysports.com.br/_Request/mudaFormatoFrete/'+_formato.value,{
//			onComplete: function(resposta) {
//				if(resposta.responseText.isJSON()){
//					var res = resposta.responseText.evalJSON();
//					if(res.status == 'ok'){
//						this.atualizaParcelamento();
//					}else{
//						alert(res.mensagem)
//					}
//				}else{
//					alert(resposta.responseText)
//				}
//			}.bind(this)
//		});
//	},
	marcarPresente : function(_id){
		new Ajax.Request('http://www.polysports.com.br/_Request/marcarPresente/'+_id );
	},
	removerItem : function( _id ) {
		
		new Ajax.Request('http://www.polysports.com.br/_Request/removerItemCarrinho/'+_id, {
			onComplete: function() {
				//$('itemCarrinho_' + _id).blindUp();
				this.carregaCarrinhoFull();
				pageTracker._trackEvent('Carrinho','Remover Item',_id,1);
			}.bind(this)
		});
	},
	removerItemLista : function( _id ) {
		if(parseInt($('produtosNoivasQtd_'+_id).innerHTML) > parseInt($('produtosNoivasGnd_'+_id).innerHTML)){
			if(parseInt($('produtosNoivasQtd_'+_id).innerHTML) > 1){
				this.acrescentarLista(_id , -1);
			}else{
				new Ajax.Request('http://www.polysports.com.br/_Request/removerItemLista/'+_id, {
					onComplete: function() {
						$('produtosNoivas_' + _id).blindUp();
						pageTracker._trackEvent('Lista','Remover Item',_id,1);
					}
				});
			}
		}
	},
	toggle : function( ){
				$('carrinho').toggle();
	},
	carrega : function() {
		new Ajax.Updater('carrinhoLista','http://www.polysports.com.br/_Request/carregaCarrinhoMini',{
			onComplete: function() {
				if($('carrinho').visible()){
					$('carrinho').pulsate();
				}else{
					$('carrinho').blindDown();
				}
				//$('carrinhoForm').blindUp();
			}
		});
	},
	carregaLista : function() {
		new Ajax.Updater('listaLista','http://www.polysports.com.br/_Request/carregaListaMini',{
			onComplete: function() {
				if($('lista').visible()){
					$('lista').pulsate();
				}else{
					$('lista').blindDown();
				}
				//$('carrinhoForm').blindUp();
			}
		});
	},
	carregaCarrinhoFull : function() {
		new Ajax.Updater('carrinhoLista','http://www.polysports.com.br/_Request/carregaCarrinhoFull',{
			onComplete: function() {
				this.atualizaFrete();
			}.bind(this)
		});
	},
	passo : function( _div ){
		$$(".carrinhoDiv").each(function(_ele){
			if(_ele.id != _div)
				_ele.blindUp();
			else
				_ele.blindDown();
		});
	},
	
	processaCarrinho : function( _form ){
		new Ajax.Request('http://www.polysports.com.br/_Request/processaCarrinho/', {
			parameters: $(_form).serialize(),
			onComplete: function(resposta) {
					var res = resposta.responseText.evalJSON();
					if(res.status == 'ok'){
							pageTracker._trackPageview('Carrinho/Submeter');
						pageTracker._trackEvent('Carrinho','Fechar Compra');
						pageTracker._addTrans(res.trans[0],res.trans[1],res.trans[2],res.trans[3],res.trans[4],res.trans[5],res.trans[6],res.trans[7]);
						_dados = res.itens;
						_dados.each(function(_i){
											 pageTracker._addItem(_i[0],_i[1],_i[2],_i[3],_i[4],_i[5]);
											 });
						pageTracker._trackTrans();
						}
			}
		});
	}
}

carrinho = new Carrinho;

