;(function($){
	
	window.dsg = { fn: {} };
	
	
	dsg.fn.initHeader = function(){
		
		var jHeaderTop = $('#header-top'),
			jServices = jHeaderTop.find('.box-service .box-content'),
			jServicesAnchors = jServices.prev('.box-header'),
			jNav = $('#navigation'),
			jAlphaSearch = jNav.find('.alpha-prd-search'),
			jAlphaListCt,
			jTabNavs = jNav.find('> li').not(jAlphaSearch),
			jTabNavCts = jNav.find('.nav-content'),
			sHeaderHeight = $('#header').outerHeight(),
			tTabTimer;
		
		jTabNavs.each(function(){
			var jTabNav = $(this),
				sTabNavPos = jTabNav.position(),
				sTabNavWidth = jTabNav.outerWidth(),
				jRelCt = jTabNav.find('.nav-content'),
				sRelCtWidth = jRelCt.width(),
				sFeaturePos = jRelCt.find('.features').position(),
				sCtHeight = jRelCt.height();

			
			if ( $.browser.msie && $.browser.version < 7 ){
				var jSection = jRelCt.find('.section'),
					sSectionLength = jSection.length,
					sSectionWidth = jSection.outerWidth();
				sRelCtWidth = sSectionLength*sSectionWidth
				jRelCt.css({width:sRelCtWidth+'px'});
			}
			
			if (sFeaturePos){
				var sPosDiff = sFeaturePos.left - (sTabNavPos.left + sTabNavWidth);
				if ( sPosDiff < 60 || sPosDiff < -60 ) jRelCt.css({ left: (50 - sPosDiff) + 'px'});
				var sNewPos = jRelCt.position();
				if ( (sNewPos.left + sRelCtWidth) > 980 ) jRelCt.css({left:'auto', right: '10px'});
			}
			
			jTabNav.bind({
				expand : function(){
					if ($('#header .box-alpha-search').length) $('.box-alpha-search').hide(); jAlphaSearch.removeClass('alpha-active');
					jTabNav.addClass('active');
					jRelCt.show().stop().animate({opacity:1}, 150);
				}, 
				collapse : function(){
					jTabNavs.removeClass('active');
					jTabNavCts.stop().hide().css({opacity:0});
				}, 
				mouseenter : function(){ 
					window.clearTimeout(tTabTimer);
					tTabTimer = window.setTimeout(function(){ 
						jTabNavCts.not(jTabNav).trigger('collapse');
						jTabNav.trigger('expand');  
					},300);
				},
				mouseleave : function(){ 
					window.clearTimeout(tTabTimer);
					tTabTimer = window.setTimeout(function(){ jTabNav.trigger('collapse');  },300);
				}
			})
			.find('a')
				.focus(function(){ jTabNav.trigger('expand'); });
				
			jTabNav.find('a:last').blur(function(){ jTabNav.trigger('collapse'); });
		//	if ( !($.browser.msie && $.browser.version < 7) ) jRelCt.find('.section').css({height: sCtHeight - 25 + 'px'});
		});
		
		jTabNavCts.hide();
	}
	
	dsg.fn.initCartSummary = function(){
		var jCartSummary = $('#cart-summary').addClass('collapsed'),
			jCartHeader = jCartSummary.find('.box-header'),
			sCartHeaderHeight = jCartHeader.outerHeight(),
			jCartContent = jCartSummary.find('.box-content').hide(),
			jCartCtl = $('<a href="#cart-summary" class="collapsed" role="button">Expand</a>').appendTo(jCartHeader.find('.left-message'));
		
		jCartContent.bind({
			expand : function(){
				jCartSummary.removeClass('collapsed').addClass('expanded');
				jCartContent.slideDown(300);
				jCartCtl.text('Close').removeClass("collapsed").addClass("expanded");
			},
			collapse : function(){
				jCartContent.slideUp(300, function(){
					jCartSummary.removeClass('expanded').addClass('collapsed');
				});
				jCartCtl.text('Expand').removeClass("expanded").addClass("collapsed");
			}
		});
		
		jCartCtl.click(function(e){
			e.preventDefault();
			if (jCartContent.not(':animated')) {
				if ( jCartContent.is(':hidden') ) jCartContent.trigger('expand'); else jCartContent.trigger('collapse');
			}
		});
		
	}
	
	dsg.fn.initBoxAccount = function(){
		var jAccount = $('#box-account'),
			jAccountContent = jAccount.find(".box-account-content").css({position:"absolute"}),
			jAccountCtl = jAccount.find(".my-account"),			
			accountTimer,
			jAccountBox;
		
		$('#box-account').click(function(e){ e.stopPropagation(); })
		
		jAccountContent.bind({
			close : function(){
				$('#'+jAccountBox+'').fadeOut(300);
				jAccountCtl.removeClass("active");
			},
			open : function(){
				
				$('#'+jAccountBox+'').show().css({position:"absolute"});
				jAccountCtl.addClass("active");
			}
		});
		
		jAccountCtl.click( function(e){
			e.preventDefault();
			jThis = $(this);
			jAccountLink = jThis.attr('href').split('#');
			jAccountBox = jAccountLink[1];
			jAccountContent.trigger('open');
			/*
			if(jAccountContent.is(":visible")){ jAccountContent.trigger('close');
				} else { jAccountContent.trigger('open'); }
			*/	
		});
		jAccount.bind({
			mouseenter : function(){ window.clearTimeout(accountTimer); },
			mouseleave : function(){ accountTimer = window.setTimeout(function(){ jAccountContent.trigger('close'); }, 1500); }
		});
		$('html').click(function(){ jAccountContent.trigger('close'); });
		
		if( ((jAccountContent.find('.error').length)>0) || ((jAccountContent.find('.notice').length)>0) ){
			jAccountCtl.click();
		} else {
			jAccountContent.hide();
		}
	}
	
	dsg.fn.initSuperbox = function(){
		$(function() { $.superbox(); });
	}
	
	dsg.fn.initSuperboxCarousel = function(){
	
		var jGallery = $(".box-get-closer .superbox-carousel"),
			jBoxPrd = $(".box-get-closer a.prd-infos"),
			jGalleryItems = jGallery.find("li"),
			jGalleryItemsLength = jGalleryItems.length;
			
		if(jGalleryItemsLength > 4){
			jGallery.carousel( { direction: "vertical", dispItems: 4 } );
		}
		
		jGalleryItems.find('a').each(function($i){
			var jItem = $(this),
				sUrl = jItem.attr('href'),
				jRelImage = $('<img class="prd-image prd-image-'+ $i + '" src="'+ sUrl +'" width="550" height="488" alt="" />');
				
			jItem.click(function(e){
				e.preventDefault();
				var $i = $(this).parents('li').index(),
					jRelImgs = jBoxPrd.find('.prd-image');
				
				jRelImgs.not(jRelImage).hide();
				
				if ( !jBoxPrd.find('.prd-image-'+$i).length ) jRelImage.hide().appendTo(jBoxPrd);
				
				jRelImage.fadeIn(300, function(){
					jGalleryItems.removeClass('active');
					jItem.parent("li").addClass('active');
				});

			});
			
		})
		
		jGallery.find("li:first a").click();
	
	}
	
	dsg.fn.initGetCloser = function(prd,getCloserUrl,getCloserTxt){
	
		if (!getCloserTxt) sGetCloserTxt = 'Get closer'; else sGetCloserTxt = getCloserTxt;
	
		$(prd).each(function(){
			var jPrd = $(this),
				sPrdRef = jPrd.attr('data-ajax'),
				jQLCtl = $('<a class="get-closer" href="' + getCloserUrl + '&ref=' + sPrdRef + '">' + sGetCloserTxt + '</a>').hide().appendTo(jPrd),
				sUrl = jQLCtl.attr('href'),
				jQLCtls = $('a.get-closer'),
				jQLCt;
			
			jPrd
				.bind('mouseenter', function(){
					$('a.get-closer').not(jQLCtl).hide().css({opacity:'0'});
					jQLCtl.show().stop().animate({opacity:'1'},300);
				})
				.bind('mouseleave', function(){
					$('a.get-closer').hide().css({opacity:'0'});
					jQLCtl.hide().css({opacity:'0'});
				});
				
			jQLCtl.click(function(e){
				e.preventDefault();
				$.superbox.wait(function(){
					$.get(sUrl, function(data){
						jQLCt = $(data);
						$.superbox.open(jQLCt,{
							boxWidth:'848',
							boxHeight:'auto',
							overlayOpacity:'.8',
							boxClasses: "superbox-get-closer"
						});
					});
				});
			})
		});
	}
	
	dsg.fn.simpleTooltips = function(){
		$('a.tooltip-controler').add('a.ms-tooltip')
			.click(function(e){ 
				e.preventDefault(); 
				e.stopPropagation(); 
			})
			.simpletooltip({
				floatingTooltip : true,
				showEffect: "fadeIn", hideEffect: "fadeOut",
				showCallback : function(target, tooltip){
					$(tooltip).click(function(e){ e.stopPropagation(); });
					$(document).click(function(){ $(tooltip).trigger('hide'); });
				},
				hideCallback : function(){ $(document).unbind('click'); }, 
				hideDelay: 1
			});
	};
	
	dsg.fn.initPrdCarousel = function(prdList,sItems){
		if (!sItems) sItems = 2;
		$(prdList).each(function(){ 
			if ($(this).find('li').length > sItems ) {
				$(this).carousel({ 
					loop : true, 
					dispItems : sItems, 
					pagination : true, 
					animSpeed: 1000, 
					slideEasing: "easeInOutQuint" 
				}); 
			}
		});
	}
	
	$(function(){
		var jPrint = $('a[rel=print]');
		jPrint.click(function(e){
			e.preventDefault();
			window.print();
		});
	});
	
})(jQuery);
