﻿/**
	Util Class
	
	@author Diego Neitzel
	@version 11:56 26/3/2010
*/
//{

var changeThumb;
function addThumbColors() {
    jQuery.each($('.lstProducts li ul.submenu'), function(indexUls, itemUls) {
        jQuery.each($(itemUls).children('li'), function(index, item) {
            $(this).hover(function(e) {
                var _intex = index;
                var _tagUid = $(this).parent().parent().attr('id');
                var _arr = window['arr_' + _tagUid];
                var _this = $(this);
                changeThumb = setTimeout(function(){
                	var params = _arr[_intex].split(":");
                	
                    _this.parent('ul').prev('p').children('a').children('img').hide(1).fadeIn('slow').attr('src',params[0]);
                    _this.parent('ul').children('li').removeClass('selected');
                    
                    _this.addClass('selected');
                    /* Change Params */
                    var url = _this.children('a').attr('href');
                    var urlAtual = _this.parent().parent().children('p').children('a').attr('href', url);
            		if (params[1] =='true') {
            			_this.parent().parent().children('p.prodPriceFrom').html("de: <strike>" + params[2] + "</strike>");
            		}else{
            			_this.parent().parent().children('p.prodPriceFrom').html("");
            		}	
            		_this.parent().parent().children('p.prodPriceTo').html("por: " + params[3]);  
            		if (params[4] > 1) {
            			_this.parent().parent().children('p.prodPriceDiv').html(params[4] + "x de <span>" + params[5] + "</span><br/>sem juros");  
            		}else {
            			_this.parent().parent().children('p.prodPriceDiv').html("");  
            		}
                    
                },300);
                
                /* Change Photo */
                
            }, function(){
                clearTimeout(changeThumb)
            });
            
            $(this).click(function(e) {
                var url = $(this).children('a').attr('href');
                document.location.href = url;
            });
        });
    });
}

var util = {
	/*
		usage: util.focusBlur('class')
		Função que no focus, tira a imagem de fundo do input, e no blur, caso esteja sem value, põe devolta.
	*/
	focusBlur: function(cl){
		$('.'+cl+'').focus(function(){
			$('.'+cl+'').addClass('noBg');
		});
		$('.'+cl+'').blur(function(){
			if ($('.'+cl+'').val() == ''){
				$('.'+cl+'').removeClass('noBg');
			}
		});
	},	
	
	/*
		usage: util.focusBlur('class')
		Função que amplia o link da photo para todo <li> do produto. Também executa uma ação no hover (aplica class para estilização).
	*/
	amplifyLinkArea: function(lstCl){
		$('.'+lstCl+' li').hover( function(){
			if ($('.'+lstCl+'').hasClass('productsHome')){
				$(this).addClass('hoverHome');
			} else if($('.'+lstCl+'').hasClass('lstFullPage')) {
				$(this).addClass('hoverFull');
			} else {
				$(this).addClass('hoverProduct');
			}
		},function (){
			if ($('.'+lstCl+'').hasClass('productsHome')){
				$(this).removeClass('hoverHome');
			} else if($('.'+lstCl+'').hasClass('lstFullPage')) {
				$(this).removeClass('hoverFull');
			} else {
				$(this).removeClass('hoverProduct');
			}
		});
		
		$('.'+lstCl+' li:not(.iecb)').click( function(){
			var url = $(this).children('p').children('a').attr('href');
			document.location.href = url;
			return false;
		});
	},
	
	
	/*
		usage: util.popUpShopCart('classLink', 'idPop')
		Função para abrir o pop de carrinho no header
	*/
	popUpShopCart: function(link, pop){
		var initPopUpShopCart;
		$('#'+pop+'').hide();
		
		$('.'+link+'').hover(function(){
			initPopUpShopCart = setTimeout(function(){
				$('#'+pop+'').slideDown('fast');
			},200);
		}, function(){
			clearTimeout(initPopUpShopCart)
		})
		$('#'+pop+'').hover(function(){}, function(){
			$('#'+pop+'').slideUp('fast');
		})
	},
	
	/**
	 * @author: Bruno Moura
	 * @version: null
	 * @method: fieldFocus
	 * @classDescription: Retira o valor do campo passado como parametro.
	 */
	fieldFocus: function(thisClass){
		$(thisClass).focus(function(){ 
		if($(thisClass).val() == "Digite aqui seu e-mail"){
			$(thisClass).val("");
		}
		});
		$(thisClass).blur(function(){		
			if($(thisClass).val() == null || $(this).val() == ""){
				$(thisClass).val("Digite aqui seu e-mail");
			}
		}); 
	},
    
    /**
     * @author: Bruno Moura
     * @method: object exist
     * @classDescription: Verifica se Objeto existe.
     */
    objectExist: function(object){
        if ($(object).length > 0) {
            return true;
        }
        else {
            return false;
        }
    },
    
	/**
	 * @author: Bruno Moura
	 * @version: null
	 * @method: menuOver
	 * @classDescription: Menu Drop-Down
	 */

	menuOver: function(thisClass){
        $(thisClass).hover(function(e){
            $(this).addClass("hover");
            if(util.objectExist($(this).find(".subMenu"))) {    
                var sizeOl = $(this).find(".subMenu ol").length;
                var wOl = $(this).find(".subMenu").width();
                var wou = 0;
                var error = false;
                
                if ($.browser.msie && $.browser.version < 7) {
                    wou = wOl;
                } else {
                    if (util.objectExist($(this).find(".add"))) {
						
					} else {
                        $(this).find(".list").addClass("add");
                        wou = wOl * sizeOl;
                        $(this).find(".list").css({
                            width: wou + "px"
                        });
                    }
                }
                $(this).find(".subMenu").css({
                    display: "block",
                    height: "auto",
                    width: wou + "px"
                });
            }
        },
        function(){
            if(util.objectExist($(this).find(".subMenu"))) {
                $(this).find(".subMenu").css({
                    display: "none"
                });
            }
            $(this).removeClass("hover");
        });
    },
	
	/**
     * @author: Bruno Moura
     * @version: null
     * @method: hoverSelected
     * @classDescription: Add the class "selected" in object hover
     * @param: this, class
     */
	hoverSelected : function(obj, classAdd){
		var ret = false;
		obj.hover(function(){
			if ($(this).attr("class").indexOf(classAdd) > -1) {
				ret = true;
			}
			else {
				$(this).addClass(classAdd);
			}
		},
		function(){
			if(ret == true){
				ret = false;
			} else {
				$(this).removeClass(classAdd);
			}
		});
	}
}

/**
	Init
	
	@author Diego Neitzel
	@version 12:00 26/3/2010
*/
//{

$(function(){
	/*focus blur busca*/
	if( $('.fldBusca').val() == ''  ){
		$('.fldBusca').removeClass('noBg');
	}
	util.focusBlur('fldBusca');
	/*1*/ util.focusBlur('fldBuscar');
	/*2*/ util.amplifyLinkArea('lstProducts');
	/*3*/ util.popUpShopCart('lnkShopCart', 'popUpShopCart');
	/*4*/util.popUpShopCart('btShopCart', 'popUpShopCart');
	util.fieldFocus($(".fldEmailNewsletter"));
	util.menuOver($(".menu li"));
	util.hoverSelected($(".sortBy li, .displayPagination li"),"selected");
});

//}



/**
	Function to show more results on side menu
	@author Diego Neitzel
	@version 14:55 20/5/2010
*/
//{
$(function(){
	$('.moreResults').hide();
	
	$('.btViewAll').click(function(){
		var _moreResults = $(this).parent().children('ul.moreResults');
		
		if(_moreResults.css('display') != 'none'){
			_moreResults.slideUp('200');
			$(this).html('[+] <a href="javascript:;">Ver Todos</a>');
		} else {
			_moreResults.slideDown('200');
			$(this).html('[-] <a href="javascript:;">Ocultar</a>');
		}
	});
	
	/*menu*/
	changeMenuTabs();
	
	/*carrossel do submenu*/
	carrosselSubMenu.init('#lstMen')
	carrosselSubMenu.init('#lstWomen')
	carrosselSubMenu.init('#lstChildren')
	carrosselSubMenu.init('#lstShopByBrand')
	carrosselSubMenu.init('#lstShopBySport')
})
//}


/**
	Function to show more results on side menu
	@author Diego Neitzel
	@version 14:55 20/5/2010
	@usage 
*/
//{
var dhtml = {
	open: function(urlBanner, elmWidth, elmHeight, elmTop, container){
		var _container = null;
		(container == null) ? _container = 'body' : _container = container;
		
		var _center = 0;
		_center = (elmWidth / 2);
		
		$(document.createElement('div'))
			.attr('id', 'bannerDhtmlHolder')
			.css({position: 'absolute', zIndex: '99999', top: elmTop+'px', left: '50%', marginLeft: '-'+_center+'px', display: 'none'})
			.appendTo(_container);
		
		$(document.createElement('div'))
			.attr('id', 'bannerDhtml')
			.appendTo('#bannerDhtmlHolder');
			
		$("#bannerDhtml").html('<script type="text/javascript">swfobject.embedSWF("'+urlBanner+'", "bannerDhtml", "'+elmWidth+'", "'+elmHeight+'", "9.0.0", "/locales/global/swf/expressInstall.swf", {}, {wmode: "transparent"});</script>')
			
			
		this.show();
	},
	close:function(){
		$('#bannerDhtmlHolder').hide();
		setTimeout(function(){
			$('#bannerDhtmlHolder').remove();
		},250);
	},
	show:function(){
		$('#bannerDhtmlHolder').show();
		setTimeout(function(){$('#bannerDhtmlHolder').remove()},12000);
	}
}

/**
	Funtion to change Menu and Submenu Tabs
	
	@author Diego Neitzel
	@version 14:05 21/10/2009
*/
function changeMenuTabs(){
	var t;

	$(".menuCategories li a").hover(function() {
		
		var subCat = $(this).attr("id");
		t = setTimeout(function(){
			$(".menuCategories li a").removeClass("on");
			$(".menuCategories li a[id="+ subCat +"]").addClass("on");
			
			$(".subMenu").hide();
			$(".subMenu[title="+ subCat +"]").show();
		},150);
		
	}, function() {
		clearTimeout(t)
	});
}

/**
	Function carrossel submenu
	@author Diego Neitzel
	@version 10:08 25/2/2010
*/
var carrosselSubMenu = {
	init : function(elm){
		var li = $(elm).find('li')
		var size = 0
		
		li.each(function(i){
			$(this).parents('.subMenu').show()
			size+= $(this).outerWidth()
			$(this).parents('.subMenu:not(.show)').hide()
		})
		size = size + 6;
		if ( size < 845 ) {
			$(elm).parent().parent().parent().children('.arrowLeft').children('.prev').hide()
			$(elm).parent().parent().parent().children('.arrowRight').children('.next').hide()
		} else {
			li.parent().parent().width( size )
		}
		this.move(elm)
	},
	
	move: function(elm){
		var leftArrow = $(elm).parent().parent().parent().children('.arrowLeft').children('.prev');
		var rightArrow = $(elm).parent().parent().parent().children('.arrowRight').children('.next');
		var ul = $(elm);
		var cont = 0;
		var clock = null;
		if (!cont){
			$(leftArrow).parent().removeClass('lftOn')
			$(leftArrow).parent().addClass('lftOff')
		}
		
		$(leftArrow).hover(function(){
			if( !cont ) return 
			clock = setInterval(function(){
				$(rightArrow).parent().addClass('on')
				$(rightArrow).parent().removeClass('off')
				ul.css({
				'margin-left':cont 
				})
				cont+=2
				if( !cont ) {
					$(leftArrow).parent().removeClass('lftOn')
					$(leftArrow).parent().addClass('lftOff')
					clearInterval(clock)
				}
			},10)
		}, function(){
			clearInterval(clock)
		});
		
		$(rightArrow).hover(function(){
			if( -cont >= ul.parent().width() - 845 )
				return false
			clock = setInterval(function(){
				$(leftArrow).parent().removeClass('lftOff')
				$(leftArrow).parent().addClass('lftOn')
				ul.css({
				'margin-left':cont 
				})
				cont-=2
				if( -cont >= ul.parent().width() - 845 ) {
					$(rightArrow).parent().removeClass('on')
					$(rightArrow).parent().addClass('off')
					clearInterval(clock)
				}
			},10)
		}, function(){
			clearInterval(clock)
		});
	}
}

/**
	Size Table
	@author Diego Neitzel
*/
var sizeTable = {
	populate: function(selBrand, selGender, getInfoTable, imgBrand, urlXml){
		var imgSrc = '/template-resources/img/';
		
		var brandSel;
		
		if( $('#'+selBrand+'').val() != 0 ){
			brandSel = $('#'+selBrand+'').val() //pega o value com o nome da marca
			$('#'+getInfoTable+' tr').remove() //reseta a tabela
			
			$('#'+selGender+' option').remove();
			$('#'+selGender+'').append('<option value="0">G&eacute;nero</option>'); //reseta o select de generos
			
			$.ajax({  
				type: 'GET',
				dataType: 'xml',
				url: urlXml,
				success: function(xml){
					var select = $('marca[id='+brandSel+']', xml).attr('id'); //pega no xml a tag da marca selecionada
					
					/* preenche o select de "generos" com as opcoes disponiveis */
					$('marca[id='+brandSel+'] generos', xml).each(function(i){
						var brandGenders = $(this).attr('rel')
						var options = '<option value="'+brandGenders+'">'+brandGenders+'</option>'
						$('#'+selGender+'').append(options)
					});
					
					/* troca imagem da marca */
					var brandSelLower = brandSel.toLowerCase();
					$('.'+imgBrand+' img')
						.attr('src', imgSrc + 'ico_tbl_tamanho_' + brandSelLower + '.jpg')
						.attr('alt', brandSel)
						.attr('title', brandSel)
				}
			});
		}
		
		$('#'+selBrand+'').change(function(){
			brandSel = $(this).val(); //pega o value com o nome da marca
			$('#'+getInfoTable+' tr').remove() //reseta a tabela
			
			if(brandSel == 0) {
				$('#'+selGender+' option').remove();
				$('#'+selGender+'').append('<option value="0">G&eacute;nero</option>'); //reseta o select de generos
			} else {
				$('#'+selGender+' option').remove();
				$('#'+selGender+'').append('<option value="0">G&eacute;nero</option>'); //reseta o select de generos
				
				$.ajax({  
					type: 'GET',
					dataType: 'xml',
					url: urlXml,
					success: function(xml){
						var select = $('marca[id='+brandSel+']', xml).attr('id'); //pega no xml a tag da marca selecionada
						
						/* preenche o select de "generos" com as opcoes disponiveis */
						$('marca[id='+brandSel+'] generos', xml).each(function(i){
							var brandGenders = $(this).attr('rel')
							var options = '<option value="'+brandGenders+'">'+brandGenders+'</option>'
							$('#'+selGender+'').append(options)
						});
						
						/* troca imagem da marca */
						var brandSelLower = brandSel.toLowerCase();
						$('.'+imgBrand+' img')
							.attr('src', imgSrc + 'ico_tbl_tamanho_' + brandSelLower + '.jpg')
							.attr('alt', brandSel)
							.attr('title', brandSel)
					}
				});
				
			}
		})
		
		$('#'+selGender+'').change(function(){
			var selected2 = $(this).val();
			$('#'+getInfoTable+' tr').remove()
			
			$.ajax({  
				type: 'GET',
				dataType: 'xml',
				url: urlXml,
				success: function(xml){
					var _titulos = $('marca[id='+brandSel+'] generos[rel='+selected2+'] tipoTamanho', xml)
					
					var _tamanhoLen = $('marca[id='+brandSel+'] generos[rel='+selected2+'] tipoTamanho:eq(0) tamanho', xml).length;
					
					var _tamanhoTd = parseInt(100 / _titulos.length);
					
					/* insere os titulos na tabela */
					$('#'+getInfoTable+' thead').append('<tr></tr>')
					var _tit;
					$('marca[id='+brandSel+'] generos[rel='+selected2+'] tipoTamanho', xml).each(function(i){
						_tit = $(this).attr('rel');
						
						var tituloTbl = '<td width="'+_tamanhoTd+'%">'+_tit+'</td>';
						
						$('#'+getInfoTable+' thead tr').append(tituloTbl);
					});
					
					/* cria estrutura da tabela */
					for(var i=0; i<_tamanhoLen; i++){
						$('#'+getInfoTable+' tbody').append('<tr></tr>');
						for(var z=0; z<_titulos.length; z++){
							$('#'+getInfoTable+' tbody tr').eq(i).append('<td></td>');
						}
					}
					
					/* insere os dados na tabela */
					for(var y=0; y<_titulos.length; y++){
						var _tipoTamanho = $('marca[id='+brandSel+'] generos[rel='+selected2+'] tipoTamanho', xml).eq(y)
						
						for(var i=0; i<_tamanhoLen; i++){
							var _tamanho = _tipoTamanho.children('tamanho').eq(i).text();
							$('#'+getInfoTable+' tbody tr').eq(i).children('td').eq(y).append(_tamanho);
						}
					}
					
					/* insere a class com a linha divisoria */
					var _tr = $('#'+getInfoTable+' tr');
					var _trLen = $('#'+getInfoTable+' tr').length;
					for(var i=0; i<_trLen; i++){
						_tr.eq(i).children('td').eq(0).addClass('first');
					}
				}
			});
		})
	}
};

//}

