﻿$(document).ready(function(){
	
	$(document).pngFix();
	
	// Custom style for selectbox
	$(".s5selectbox").selectbox();
	
	// All input fields assigned with the class 'default' will
	// get their default values hidden when clicked, and reset again
	// if the user leaves the field empty or hasnt changed anything
	// The searchfields needs an accompanying hidden input with the
	// same id but suffixed "-default" that contains the default value.
	$("input.default").each(function() {
		var defaultVal = $(this).next(".defaultvalue").val();
		if (!$(this).val())
			$(this).val(defaultVal);
		$(this).focus(function() {
			if ($(this).val() == defaultVal)
				$(this).val("");
		});
		$(this).blur(function() {
			if ($(this).val() == "")
				$(this).val(defaultVal);
		});
	});
	
	// Submit to searchpage
	$(".search-area input").keydown(function(e) {
		if (e.keyCode == 13) {
			$(this).parent().find(".search-btn a").click();
			return false;
		}
	});
	$(".search-area .search-btn a").click(function() {
		var area = $(this).closest(".search-area");
		var query = area.find(".searchfield").val();
		var url = $(this).attr("href");

		// Check if the query is the default-value
		var defaultvalue = area.find(".defaultvalue").val();
		if (query == defaultvalue)
			query = "";

		// Add search-query
		var querystring = "query=" + encodeURIComponent(query);

		// Add dropdown-values
		var otherFields = area.find(":input:not(.defaultvalue, .searchfield)[value]");
		if (otherFields.length > 0)
			querystring += "&" + otherFields.serialize();
		else if (query.length == 0)
			// Don't allow empty query if there are no dropdowns
			return false;

		document.location = url + "?" + querystring;
		return false;
	});
	
	// Animate linklists for company presentation
	$(".section .list.expandable h2").click(function() {
		$(this).toggleClass("expanded");
		$(this).next("ul").slideToggle(100);
	});
	
	// Calendar
	var scrollInterval = $("#cal-select ul li").width();
	var animateSpeed = 100;
	var maxScrollPosition = $("#cal-select ul").width() - $("#cal-select").width();
	
	// Scroll dates
	// Scroll left
	$("#cal-later").click(function()
	{
		var startPos = $("#cal-select ul").position().left;
			
		if (startPos * -1 < maxScrollPosition) {
			$("#cal-select ul").animate({ left: startPos - scrollInterval}, { queue: false, duration: animateSpeed });
			$("#cal-earlier").removeClass("inactive");
		}		
		if ( (startPos * -1) + scrollInterval > maxScrollPosition) $("#cal-later").addClass("inactive");
	});
	
	// Scroll right
	$("#cal-earlier").click(function()
	{
		var startPos = $("#cal-select ul").position().left;

		if(startPos < 0) {
			$("#cal-select ul").animate({ left: startPos + scrollInterval }, { queue: false, duration: animateSpeed });
			$("#cal-later").removeClass("inactive");			
		}
		if ( startPos + scrollInterval >= 0) $("#cal-earlier").addClass("inactive");	
	});
	
	// Hook up the list with click function
	// show corresponding year div when clicked
	$("#calendar li").click(function()
	{
		var id = $(this).html();	
		
		$("#cal-content .active").hide().removeClass("active");
		$("#calendar li").removeClass("active");
		$(this).toggleClass("active");
		$("#cal-content-"+id).fadeIn().addClass("active");	
	});
	
	// Search result hover and linking
	$(".search-results li")
	.click(function() {
		gotoURL($(this).find("p.link a").attr("href"));
	})
	.mouseover(function() {
		$(this).addClass("hover");	
	})
	.mouseout(function() {
		$(this).removeClass("hover");	
	});
	
	// Filter dropdown menu
	// show search alternatives on hover and hide them when outside
	$("#sort").hover(function() {
		$(this).addClass("expanded");
		$(this).children("ul").show();
	
	}, function() {
		$(this).removeClass("expanded");
		$(this).children("ul").hide();		
	});
	
	// add some hover stuff for the dropdown select
	$("#sort ul li").hover(function()
	{
		if(!$(this).is(".active")) { $(this).addClass("hover"); }
	}
	,function()
	{
		$(this).removeClass("hover");
	});
	
	// When clicking on an item
	$("#sort ul li").click(function()
	{						 
		if($(this).siblings("li").is(".active")) { $(this).siblings("li").removeClass("active"); }
		$(this).removeClass("hover").addClass("active");
	});
	$("#template.search #sort ul li").click(function() {
		$("#pagesize").val(jQuery.trim($(this).html()));
		$(".search-intro .search-btn a").click();
	});
	$("#template.search-register #sort ul li").click(function() {
		$("#sortby").val(jQuery.trim($(this).html()));
		$(".search-intro .search-btn a").click();
	});
	
});

function gotoURL(url) {
	window.location.href = url;
}
