var sub_nav_items = [];
var sub_nav_image_centers = [];
var sub_nav_image_widths = [];
var subNavHalfWidth;
var sub_nav_headers = [];
var currentHeader;
var navOffset;
var balloon;
var strUserAgent;

$(document).ready(function() {
	
	$.fn.exists = function(){return jQuery(this).length>0;}
	
	setTimeout("init()",400);
	
	
	//Check for faq elements and attach anchorscroll function
	if($(".faq-intro").length>0){

		$(".faq-link").anchorScroll();

	}

});

function init(){
	
	init_user_menu();
	init_main_menu();

	navOffset = Number($("#nav").height());	

	if($("#sub-nav-wrapper").length>0){
		init_sub_menu();
	} 
	
	
	$(window).scroll(checkScroll);

	strUserAgent = navigator.userAgent.toLowerCase();
	
		if($("#nav").length>0){
			
			if (strUserAgent.indexOf("iphone") == -1 && strUserAgent.indexOf("android") == -1 && strUserAgent.indexOf("ipad") == -1){
				
				$("#waves_container").css({"margin":"0px", "position":"absolute", "position":"absolute", "height":"auto"});
				$('div#wave1').IN10Parralax({bottomOffset:15, maxTop:320, scrollTop:$(document).scrollTop()});
				$('div#wave2').IN10Parralax({bottomOffset:40, maxTop:260, animationDelay:100, scrollTop:$(document).scrollTop()});
			}
			
			$("#nav").stickyPanel();
			
			if (strUserAgent.indexOf("msie 7.0") != -1){
				$("#center").css("padding-top", $("#nav").height());
			}
			else
			{
				$("#center").css("margin-top", $("#nav").height());
			}
			
			
		} else {
			
			$("#nav-home").stickyPanel();
			
			if (strUserAgent.indexOf("msie 7.0") != -1){
				$("#center").css("padding-top", $("#nav-home").height() - 7);
			}
			else
			{
				$("#center").css("margin-top", $("#nav-home").height() - 7);
			}
		}
		console.log();
		var slideHeight = $('.slideshow-box').find('.slide').height() + 50;
		
	$('.slideshow-box').find('.slide').css('min-height',slideHeight);
	$('.slideshow-box').find('.previous').parent().find('.slide').css('min-height',slideHeight);
	
	
	$('.slideshow-box').scale9Grid({top:10,bottom:10,left:10,right:10});
	$('.white-container-box').scale9Grid({top:10,bottom:10,left:10,right:10});
	$('.white-container-box-intro').scale9Grid({top:10,bottom:10,left:10,right:10});
	$('.white-container-box-map').scale9Grid({top:10,bottom:10,left:10,right:10});
	
	$(".slideshow").each(function() {
		$(this).IN10Slideshow();
	});
	
	// Loop balloon elements.
	$('.balloon').each(function(index) {		
		// Create object and add to collection.
		balloon = new Balloon($(this));
		_arrBalloons.push(balloon);
		
		// Add window scroll event handler.
		balloon.addScrollEventHandler();
	});
	
}

function console_show(console_content){	
	$("body").append(
		'<div id="console" style="display: block; border:1px dashed #000; position: absolute; z-index: 1000; color:#000; left: 0px; top: 0px; font-size: 9px; line-height: 10px; width: 300px; height: auto; background-color:#fff; opacity: 0.6;">'+console_content+'</div>'
	);
}

function console_log(message) {
	if(window.console){
		//console.log(message);
	}
}

function init_main_menu(){

	$("#main-nav li.nav-item").each(function(index) {
		$(this).hover(menuItemOver,menuItemOut);
	});

}

function menuItemOver()
{
	
	var color = $(this).find("a").attr("class");
	$(this).find("img").show();
	$(this).find("span").addClass(color);
	
	//console_log($("#main-nav .description").length>0);
	
	if($("#main-nav .description").length>0){
		$(this).find('.description').addClass(color);
	}
	
	if (strUserAgent.indexOf("iphone") != -1 || strUserAgent.indexOf("ipad") != -1){
		var url = $(this).find("a").attr("href");
		window.location = url;
	}
	
}

function menuItemOut()
{
	var color = $(this).find("a").attr("class");
	$(this).find("img").hide();
	$(this).find("span").removeClass(color);
	
	if($("#main-nav .description").length>0){
		$(this).find('.description').removeClass(color);
	}
}


function init_sub_menu(){
				
	var subNavCount = Number($('#sub-nav li.sub-nav-item').size());	
	
	var i = 0;
	
	$("#sub-nav li.sub-nav-item").each(function(){
		
		var sub_nav_link = $(this).find("a");
		sub_nav_items.push(sub_nav_link);	
		
		var divider = 0;

		if($(".sub-nav-divide").length>0){
			divider = 11;
		} 
		
		var parentWidth = Number(sub_nav_link.parent().width());
				
		if(i==0){

			sub_nav_image_widths.push(parentWidth);	
			sub_nav_image_centers.push(parentWidth/2);

		} else if (i < subNavCount){
			
			sub_nav_image_widths.push(sub_nav_image_widths[i-1] + divider + parentWidth);
			sub_nav_image_centers.push(sub_nav_image_widths[i-1] + divider + (parentWidth / 2));
			
		}

		
		sub_nav_link.click( function(){
			scrollToLocation("link", this);
			return false;
		});
		
		sub_nav_link.hover(subMenuItemOver,subMenuItemOut);
		
		i++;
		
	});
	
	getHeaderPositions();
	
	var hash;
	
	if(hash = window.location.hash){
	
		window.setTimeout("scrollToHash('"+hash+"')",300);
		
	}

	checkScroll();
	
	$(".internal-link").bind("click",gotoInternalLink);
	
}


function gotoInternalLink()
{
	var hash;
	window.setTimeout( function(){
		if(hash = window.location.hash){
			window.setTimeout("scrollToHash('"+hash+"')",300);
		}
	},100);
}


function scrollToHash(hash){
	scrollToLocation('url', hash.substring(1));
}

function getHeaderPositions(){
		
	sub_nav_headers.length = 0;
	
	$("#sub-nav li.sub-nav-item a").each(function(){

		var headerName = $(this).attr("href").replace("#", "");

		if ($(document).find("h2."+headerName).exists()) {

			var secondOffset = 0;
			
			var headerOffset = Number($(document).find("h2."+headerName).offset().top);
			
			var headerOffsetCorrected = (headerOffset - navOffset) - 100;
			
			//console_log(navOffset);
						
			sub_nav_headers.push(headerOffsetCorrected);
			
		}
		
	});
	
}

function subMenuItemOver(){
	if(currentHeader){
		if($(this).attr("href") != currentHeader.attr("href") || !currentHeader){
			$(this).find(".color").fadeIn("fast");
		} 
	} else {
		$(this).find(".color").fadeIn("fast");
	}
	
	if (strUserAgent.indexOf("iphone") != -1 || strUserAgent.indexOf("ipad") != -1){
		//console.log('scroll to target');
		scrollToLocation("link", this);
	}
}

function subMenuItemOut(){
	if(currentHeader){
		if($(this).attr("href") != currentHeader.attr("href")){
			$(this).find(".color").fadeOut("fast");
		} 
	} else {
		$(this).find(".color").fadeOut("fast");
	}

}

function checkScroll(){
	
	var scrollTop = Number($(document).scrollTop());
	
	//console_log(scrollTop);
	
	
	for(var i = 0; i < sub_nav_headers.length; i++){
		
		if(i == 0){
			if(scrollTop < sub_nav_headers[i]){
				
				$(".arrow").hide();
					
				currentHeader = false;
				
			} else {
				
				$(".arrow").show();	
					
			}
		}
		
		if(sub_nav_headers[i+1]){				
			if(scrollTop > sub_nav_headers[i] && scrollTop < sub_nav_headers[i+1]){
				
				//console_log("showing: "+sub_nav_items[i].attr("href"));
				
				sub_nav_items[i].find(".color").fadeIn();
				
				animateArrow(sub_nav_image_centers[i]);
				
				currentHeader = sub_nav_items[i];
				
			} else {
				
				sub_nav_items[i].find(".color").fadeOut();
				
			}
			
		} else if (scrollTop > sub_nav_headers[i]){
			
			//console_log("showing: "+sub_nav_items[i].attr("href"));
			
			sub_nav_items[i].find(".color").fadeIn();
			
			animateArrow(sub_nav_image_centers[i]);
			
			currentHeader = sub_nav_items[i];
			
		} else {
			
			sub_nav_items[i].find(".color").fadeOut();
			
		}
	}
}


function scrollToLocation(type, input){
	
	var headerName;
	
	if(type == "link"){
		headerName = $(input).attr("href").replace("#", "");
	} else {
		headerName = input.replace("#", "");
	}
	
	var headerOffset = Number($(document).find("h2."+headerName).offset().top);
	
	var correctHeight = 45;
	
	if($("#intro.assortiment").length>0){
		correctHeight = -80;
	}
	
	var headerOffsetCorrected = (headerOffset - navOffset) + correctHeight;

	$("body,html").stop().animate({
		scrollTop:headerOffsetCorrected
	}, {
		duration: 1500,
		specialEasing: {
			scrollTop:'easeInOutCubic'
		}
	});
	
}

function animateArrow(arrowPosition){
		
	var subOffset = Number($("#sub-nav-center").offset().left);

	arrowPosition = arrowPosition + subOffset;
	
	$(".arrow").stop().animate({
		"left":(arrowPosition - 10)
	}, {
		duration: 400,
		specialEasing: {
			"left":'easeOutBack'
		}
	});
	
}


function init_user_menu(){
	$("#user-info").hover(userInfoOver,userInfoOut);
	
	var navHeight;
	
	$('form#search .search').click(function(){
		
		if($(this).val() == "zoeken"){
			
			$(this).val("");
			
		}

		return false;
	});
	
	if($("#nav-home").length>0){
		navHeight = Number($("#nav-home").height()) + 50;
	} else {
		navHeight = Number($("#nav").height()) + 55;
	}
	
	
	$("#user-info #user-menu").css("height", navHeight);
	
	$('a.nieuwsbrief').click(function(){

		$("body,html").stop().animate({
			scrollTop: ($(document).height() - $(window).height())
		}, {
			duration: 1500,
			specialEasing: {
				scrollTop:'easeInOutCubic'
			},
			complete: function() {
				$('.newsletter-input').focus();
				$('.newsletter-input').val("");
			}
		});
	});
	
}

function userInfoOver(){
	$(this).find("#user-menu").show();
}

function userInfoOut(){
	$(this).find("#user-menu").hide();
}

var _arrBalloons = new Array();

function Balloon(obj) {
	
	var _context = this;
	var _obj = obj;

	this.addScrollEventHandler = function() {
	
		$(window).bind('scroll', _context.showIfInViewport);
	}
	this.removeScrollEventHandler = function() {
	
		$(window).unbind('scroll', _context.showIfInViewport);
	}
	this.showIfInViewport = function() {

		var intBalloonTop = _obj.position().top;
		var intBalloonBottom = intBalloonTop + _obj.height();
		var intViewportTop = $(window).scrollTop();
		var intViewportBottom = intViewportTop + $(window).height();

		// Show balloon depending if the balloon is in the viewport.
		if (intBalloonTop > intViewportTop && intBalloonBottom  < intViewportBottom - 200 && _obj.css("opacity") != 1) {
			// Remove event handler.
			_context.removeScrollEventHandler();
			// Show.
			_context.show();
		}
	}
	this.show = function() {
		//console.log(_obj);

		jQuery(_obj).animate({
			opacity: 1,
			top: '-=25'
		}, 2000, "swing");
	}
}

