(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;
        }
        
        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');
                   });

                });

            });

        }

        $('.carousel img').each(function () {
            if (!$(this).is('.rounded')) {
                round_image($(this));
            }
        });

        var lock_carousel = false;


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

            if (lock_carousel) {
                return false;
            }

            lock_carousel = true;
            
            var $t = $(this);
            var $act = $t.parent().find('.carousel-frame-act');
            var $img = $act.find('img');

            if ($act.data('current') == undefined) {
                
                $act.data('current', 1);
                var $copy = $act.clone();
                $copy.find('img').data('src', $act.find('img').data('src'));
                $copy.removeClass('carousel-frame-act');
                $copy.insertAfter($act);
            }

            var current_index = $act.data('current');
            var new_index = $t.is('.btn-right') ? current_index + 1 : current_index - 1;
            var $act_new = $act.parent().children(':eq(' + (new_index) + ')');
            var $new_img = $act_new.find('img');

            $act.data('current', new_index);

            if ($t.is('.btn-right')) {
                $t.parent().find('.btn-left').show();
                if ($act_new.next().length == 0) {
                    $t.fadeOut(400);
                }
            } else {
                $t.parent().find('.btn-right').show();
                if ($act_new.prev().prev().length == 0) {
                    $t.fadeOut(400);
                }
            }


            var $subtitle = $act.find('div');

            $subtitle.animate({

                bottom: -230
                
            }, 600, function () {

                $subtitle.html($act_new.find('div').html());

                var new_src = ($new_img.data('src') != undefined) ? $new_img.data('src') : $new_img.attr('src');

                if (!$.browser.msie) {
                    $img.fadeOver(800, function () {

                        $subtitle.animate({
                            bottom: 0
                        }, 600, function () {
                            lock_carousel = false;
                        });

                    }, { backgroundImage: 'url(' + new_src + ')' } );
                } else {
                    $img.fadeOver(800, function () {

                        $subtitle.animate({
                            bottom: 0
                        }, 600, function () {
                            lock_carousel = false;
                        });

                    }, { }, { src: new_src } );
                }


            });

        });

        $('.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');
             var $images_preview = ('#images-preview');

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

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

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

                $images_preview.fadeOver(400,
                    function () {
                    }, { }, {
                        src: $images.find('img:eq('+index+')').attr('src')
                    }
                );

                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;
	}
});





jQuery.fn.carrousel = function(options) {
  var defaults = {
    captionSpeed: 500,
    transitionSpeed: 500,
    interval: 3000
  };
  
  jQuery.extend(defaults, options);
  
  var container = this;
  var active = container.find('li:first-child');
  container.find('li:not(:first-child)').hide();
  
  var timer = null,
      lock = false;
  
  function showNext() {
    if (lock)
      return false;
    
    lock = true;
    
    clearTimeout(timer);
    
    arg = arguments[0];
    
    active.find('.caption').animate({
      height: '0px'
    }, defaults.captionSpeed, null, function() {
      active.fadeOut(defaults.transitionSpeed);
      
      // If showPrevious is clicked
      if (arg === true) {
        if (active.is(':first-child'))
          var next = container.find('li:last-child');
        else
          var next = active.prev();
      }
      // Show next
      else {
        if (active.is(':last-child'))
          var next = container.find('li:first-child');
        else
          var next = active.next();
      }
      
      next.find('.caption').css('height', '0px');
        
      next.fadeIn(defaults.transitionSpeed, function() {
        next.find('.caption').animate({
          height: '90px'
        }, defaults.captionSpeed, null, function() {
          active = next;
          timer = setTimeout(showNext, defaults.interval);
          lock = false;
        });
      });
    });
  }
  
  function showPrevious() {
    showNext(true);
  }
  
  container.append(jQuery('<a href="javascript:void(0)" class="previous">Vorige</a><a href="javascript:void(0)" class="next">Volgende</a>'));
  container.find('.previous').click(showPrevious);
  container.find('.next').click(showNext);
  
  timer = setTimeout(showNext, defaults.interval);
}


jQuery(function() {
  jQuery('#homepagecarrousel').carrousel();
});
