(function($) {

    $(function () {

		// Function for active on menu
        var uri = document.location+'';
        var uri_first_level = false;
        uri = uri.substr(uri.indexOf('/', 8)).replace(document.location.hash, '');

        if (uri.substr(1).indexOf('/') !== -1) { // if we are deeper in the hierarchy
            uri_first_level = '/' + uri.substr(1, uri.indexOf('/', 1) - 1); // extract uri of the first level
        } else {
            uri_first_level = uri;
            console.log(uri_first_level);
        }
        
        if (uri_first_level == "/artikelen") {
        	uri_first_level = "/artikelen/cat/nieuws";	
        }

        var matched = false;

        $('#nav a').each(function (item) {
           if (matched) return;
           if ($(this).attr('href') === uri_first_level) {
               $(this).parent().addClass('active');
               matched = true;
           }
        });

        function round_image($t) {

            var img = new Image();

            $t.data('src', $t.attr('src'));

            $(img).load(function () {

               $t.css({
                    'background': 'url(' + img.src + ') no-repeat left top'
               }).attr({
                    'width': img.width,
                    'height': img.height
               });
               $t.attr('src', '/skin/frontend/enterprise-fontein-tirion/default/images/spacer.gif');

            });

            img.src = $t.attr('src');

        }

        if (!$.browser.msie) {
            $("img.rounded, img.rounded-right").each(function () {

                round_image($(this));
               
            });
        }

        if ($("#collateral-tabs").length > 0) {

            var $tabs = $("#collateral-tabs");
            var $wrap_tabs = $("#collateral-tabs .wrap-tabs");

            $tabs.find('.tab').click(function () {

                var $t = $(this);

                if ($t.is('.act')) return false;

                $t.parent().find('.act').removeClass('act');
                $t.addClass('act');

                var index = $t.prevAll().length;

                var current_height = $wrap_tabs.height();
                $wrap_tabs.css('height', current_height);

                $wrap_tabs.find('.tab-content:visible').fadeOut('fast', function () {

                   $new_tab = $wrap_tabs.find('.tab-content:eq(' + index + ')');
                   $wrap_tabs.animate( { height: $new_tab.height() + 16 }, 400, function () {
                       $new_tab.fadeIn('fast');
                   });

                });

            });

        }

  var preferences = {
    divSlide: 500,
    fadeTime: 1000,
    between: 3000
  };
  
  $('.carousel-container').each(function(index, elm) {
    elm = $(elm);
    
    elm.find('img').removeAttr('width').removeAttr('height');
    
    elm.find('.carousel-frame').each(function(index, frame) {
      frame = $(frame);
      
      if (frame.children().length == 0) {
        frame.remove();
      }
    })
    
    var timer = null,
        animating = false;
    
    function go(direction) {
      if (animating) return;
      
      animating = true;
      
      clearTimeout(timer);
      
      var current = elm.find('.carousel-frame-act'),
          next;
      
      if (direction == 'next' && current.is(':last-child'))
        next = elm.find('.carousel-frame:first-child');
      else if (direction == 'previous' && current.is(':first-child'))
        next = elm.find('.carousel-frame:last-child');
      else if (direction == 'next')
        next = current.next();
      else
        next = current.prev();
      
      current.find('div').animate({bottom: '-66px'}, preferences.divSlide, null, function() {
        current.fadeOut(preferences.fadeTime);
        next.fadeIn(preferences.fadeTime, function() {
          next.find('div').animate({bottom:'0px'}, preferences.divSlide, null, function() {
            current.removeClass('carousel-frame-act');
            next.addClass('carousel-frame-act');
      
            timer = setTimeout(function(){go('next')}, preferences.between);
            animating = false;
          });
        });
      });
    }
    
    elm.find('.btn-left').click(function() {
      go('previous');
    });
    
    elm.find('.btn-right').click(function() {
      go('next');
    });
    
    timer = setTimeout(function(){go('next')}, preferences.between);
  });

$('.std-carousel .btn-left, .std-carousel .btn-right').click(function() {

            var $t = $(this);
            var $slider = $t.closest('.std-carousel').find('.carousel-products');

            if ($slider.is(':animated')) return false;

            var step = $slider.children(':first');
            step = parseInt(step.css('width')) + parseInt(step.css('margin-right'));

            var direction = $t.is('.btn-left') ? 1 : -1;
            var visible_on_mask = 3;
            
            // let's find out if there's still something not visible on that direction
            if (direction == 1) {

                $t.closest('.std-carousel').find('.btn-right').show();

                if ((-1 * $slider.position().left) < 15 + step) {
                    $t.hide();
                }

            } else {

                $t.closest('.std-carousel').find('.btn-left').show();

                if ((-1 * $slider.position().left) + (visible_on_mask * step) + 15 + step >= $slider.children().length * step) {
                    //return false;
                    $t.hide();
                }
                
            }

            var animate_to = {
                left: (direction == 1 ? '+=' : '-=') + step + 'px'
            };

            $slider.animate(animate_to, { duration: 1000, easing: 'easeOutCirc' } );

        });


        $("#header-tabs .tab").hover(
            function () {

                var $t = $(this);
                if ($t.is('.tab-active')) return false;

                //if ($t.queue("fx").length > 2) return false;

                if ($t.data('default-padding') == undefined) {
                    $t.data('default-padding', $t.css('padding-top'));
                }

                $t.animate( {
                    'padding-top': '+=5px'
                }, 200 );

            }, function () {

                var $t = $(this);
                if ($t.is('.tab-active')) return false;

                //if ($t.queue("fx").length > 2) return false;

                $t.animate( {
                    'padding-top': $t.data('default-padding')
                }, 200 );

            }
        );

        if ($('#wrap-holes').length > 0) {

             var $images = $('#splash-images');
             
             $images.find('img').fadeOut(1);
             
             var $images_preview = $('#images-preview').fadeIn(1);

            $('#wrap-holes a').hover(function () {

                var $t = $(this);
                var $img = $t.children('img');

                var index = $t.prevAll().length+1;
                
                $images.find('img').removeClass('current');
                $images.find('img').addClass('fadeout');
                $images.find('img:eq('+index+')').addClass('current');
                $images.find('img:eq('+index+')').removeClass('fadeout');
				
				 $images.find('img.fadeout').fadeOut('fast', function() {
			        $images.find('img.current').fadeIn('slow');
			      });                
                
                if ($t.data('defaults') == undefined) {
                    $t.data('defaults', { width: $img.css('width'),
                                          height: $img.css('height'),
                                          left: $img.css('left'),
                                          top: $img.css('top') } );
                }

                $img.animate({
                    width: '81px',
                    height: '81px',
                    left: '-=9px',
                    top: '-=9px'
                });

            }, function () {

                var $t = $(this);
                $t.find('img').animate($t.data('defaults'));

            });

        }

    });

}(jQuery));

jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	},
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});

jQuery.fn.extend({
	fadeOver: function (speed, callback, css, attr) {
            var $t = this;
            //setTimeout(function () {
		c = $t.clone();
		c.css( { position: 'absolute',
                         width: $t.width(),
                         height: $t.height(),
                         display: 'none',
			 zIndex: 2 } );
                if (css != undefined) {
                    c.css(css);
                }
                if (attr != undefined) {
                    c.attr(attr);
                }
                $tp = $t.parent(); // container
		$tp.css( { width: $tp.width(),
                           height: $tp.height()} );

		c.insertBefore($t).fadeIn(speed, function () {
			c.next().remove();
			c.css( {position: 'relative', zIndex: 1} );
			if (typeof(callback) == 'function') callback();
		});
            //}, 10);
            return $t;
	}
});

