$(document).ready(function(){
	if (isActivatingFromURL()){
		$('.containerForAccordionContent').css("display", "block");
	} else {
		$('.containerForAccordionContent').css("display", "block");
		location.href = location.href + "#MostRead_";
	}
	$("#sub_allesdicht_accordion_1").accordion({ collapsible: true, autoHeight: false });
	$('#sub_allesdicht_accordion_1').bind('accordionchangestart', function(event, ui) {
		accordionChangedEvent(ui);
	});
	activateContentItemFromURL();	
}); 

function accordionChangedEvent(ui){
	if (isAccordionClosingEvent(ui)){
		closeAllOpenedBoxes();
	} 
	if (isAccordionOpeningEvent(ui)){
		try {
			pageTracker._trackEvent("Subcategory panel opened", location.pathname, ui.newHeader.attr('id'));
		} catch(err) {}
	}
}

function isAccordionClosingEvent(ui){
	var isClose = false;
	if (ui.oldHeader != null){
		var headerID = ui.oldHeader.attr('id');
		if (headerID != null){
			isClose = true;
		}
	}	
	return isClose;
}

function isAccordionOpeningEvent(ui){
	var isOpen = false;
	if (ui.newHeader != null){
		var headerID = ui.newHeader.attr('id');
		if (headerID != null){
			isOpen = true;
		}
	}	
	return isOpen;
}

function isActivatingFromURL(){
	var url = location.href;
	var startIndexOfAccordionMenuIdentifier = url.indexOf("#") + 1;
	if (startIndexOfAccordionMenuIdentifier > 0){
		var endIndexOfAccordionMenuIdentifier = url.indexOf("_", startIndexOfAccordionMenuIdentifier);
		if (endIndexOfAccordionMenuIdentifier > startIndexOfAccordionMenuIdentifier){
			var accordionMenuIdentifier = url.substring(startIndexOfAccordionMenuIdentifier, endIndexOfAccordionMenuIdentifier);
			if ($("#" + accordionMenuIdentifier) != null){
				return true;
			}
		}
	}
	return false;
}

function activateContentItemFromURL(){
  	var someAccordionItemOpened = false;
	var url = location.href;
	var startIndexOfAccordionMenuIdentifier = url.indexOf("#") + 1;
	if (startIndexOfAccordionMenuIdentifier > 0){
		var endIndexOfAccordionMenuIdentifier = url.indexOf("_", startIndexOfAccordionMenuIdentifier);
		if (endIndexOfAccordionMenuIdentifier > startIndexOfAccordionMenuIdentifier){
			var accordionMenuIdentifier = url.substring(startIndexOfAccordionMenuIdentifier, endIndexOfAccordionMenuIdentifier);
			if ($("#" + accordionMenuIdentifier) != null) {
				var accordionItemName = $("#" + accordionMenuIdentifier).attr("name");
				if (accordionItemName != "accordion_item_0"){
					$("#sub_allesdicht_accordion_1").accordion('activate', '#' + accordionMenuIdentifier);
				}
				someAccordionItemOpened = true;

				// accordion menu opened, now find content item and unroll it
				var contentItemLinkIdentifier = "a_" + url.substring(startIndexOfAccordionMenuIdentifier);
				if ($("#" + contentItemLinkIdentifier) != null) {
					var parentDiv = $("#" + contentItemLinkIdentifier).parent();
					if (parentDiv != null) {
						var contentDivOfContentItem = parentDiv.children(".sub_allesdicht_accordion_1_second_level_introduction");
						var idOfContentDiv = contentDivOfContentItem.attr('id');
						
						var indexOfStartOfParam = url.indexOf("&", endIndexOfAccordionMenuIdentifier);
						var uniqueItemId = null;
						if (indexOfStartOfParam > -1) {
							uniqueItemId = url.substring(endIndexOfAccordionMenuIdentifier + 1, indexOfStartOfParam);
						} else {
							uniqueItemId = url.substring(endIndexOfAccordionMenuIdentifier + 1);				
						}

						if (idOfContentDiv != null){
					 		var changeStateFunctionCall = "changeStateByCallerId('" + idOfContentDiv + "', '" + contentItemLinkIdentifier +"' , '" + uniqueItemId + "')";

					 		// timeout must be called, otherwise accordion will not be opened and height will not be calculated correctly
					 		setTimeout(changeStateFunctionCall, 500); 
						}
					}
				}
			}
		}
	}
	if (!someAccordionItemOpened){
		$("#sub_allesdicht_accordion_1").accordion('activate', '#MostRead');
	}
}

function changeStateByCallerId(idOfContentDiv, contentItemLinkIdentifier, uniqueItemId){
	changeState(idOfContentDiv, document.getElementById(contentItemLinkIdentifier), MORE_INFORMATION_CALLER_TYPE_CONTENT_ITEM, uniqueItemId);
}


var ANIMATION_LENGTH = 500;
var MORE_INFORMATION_CALLER_TYPE_CONTENT_ITEM = 1;
var MORE_INFORMATION_CALLER_TYPE_DOCUMENT = 2;
var MORE_INFORMATION_CALLER_TYPE_PRODUCT = 3;

var MORE_INFORMATION_TEXT_CONTENT_ITEM = "Verder lezen";
var LESS_INFORMATION_TEXT_CONTENT_ITEM = "Sluit box";
var MORE_INFORMATION_TEXT_DOCUMENT = "Download document";
var LESS_INFORMATION_TEXT_DOCUMENT = "Sluit box";
var MORE_INFORMATION_TEXT_PRODUCT = "Ga naar product";
var LESS_INFORMATION_TEXT_PRODUCT = "Sluit box Product";

function changeState(divId, caller, callerType, itemUniqueId) {
	var heightToBe = 0;
	var currentHeight = $("#" + divId).height();
	if (currentHeight == 0){ // currently is closed, open it
		closeAllOpenedBoxes();

		heightToBe = $("#" + divId)[0].scrollHeight;
		
		// change style and "more information" text (depends on content type)
		if (callerType == MORE_INFORMATION_CALLER_TYPE_CONTENT_ITEM){
			caller.innerHTML = LESS_INFORMATION_TEXT_CONTENT_ITEM;			
			caller.className = 'sub_allesdicht_less_information sub_allesdicht_more_information_content_item';
		}else if (callerType == MORE_INFORMATION_CALLER_TYPE_DOCUMENT){
			caller.innerHTML = LESS_INFORMATION_TEXT_DOCUMENT;			
			caller.className = 'sub_allesdicht_less_information sub_allesdicht_more_information_document';
		}else if (callerType == MORE_INFORMATION_CALLER_TYPE_PRODUCT){
			caller.innerHTML = LESS_INFORMATION_TEXT_PRODUCT;			
			caller.className = 'sub_allesdicht_less_information sub_allesdicht_more_information_product';
		}
		$("#" + divId).animate({height: heightToBe + "px"}, ANIMATION_LENGTH);			
		
		// change parent class, since it must become gray
		caller.parentNode.className = "sub_allesdicht_accordion_1_second_level_item_container2_Selected";
		
		if (callerType == MORE_INFORMATION_CALLER_TYPE_CONTENT_ITEM){
			increaseVisitCounter(itemUniqueId);	
		}
	}else{ // content item is currently opened, close it
		closeAllOpenedCallToActionBlocks();
		closeAllOpenedEMailBoxes();
		
		if (callerType == MORE_INFORMATION_CALLER_TYPE_CONTENT_ITEM){
			caller.innerHTML = MORE_INFORMATION_TEXT_CONTENT_ITEM;			
			caller.className = 'sub_allesdicht_more_information sub_allesdicht_more_information_content_item';
		}else if (callerType == MORE_INFORMATION_CALLER_TYPE_DOCUMENT){
			caller.innerHTML = MORE_INFORMATION_TEXT_DOCUMENT;			
			caller.className = 'sub_allesdicht_more_information sub_allesdicht_more_information_document';
		}else if (callerType == MORE_INFORMATION_CALLER_TYPE_PRODUCT){
			caller.innerHTML = MORE_INFORMATION_TEXT_PRODUCT;			
			caller.className = 'sub_allesdicht_more_information sub_allesdicht_more_information_product';
		}
		$("#" + divId).animate({height: heightToBe + "px"}, ANIMATION_LENGTH);
		
		caller.parentNode.className = "sub_allesdicht_accordion_1_second_level_item_container2";
	}	
}

function closeAllOpenedBoxes(){	
	closeAllOpenedCallToActionBlocks();
	closeAllOpenedEMailBoxes();

	var introductionDivs = $(".sub_allesdicht_accordion_1_second_level_introduction");
	for (var i=0; i<introductionDivs.length; i++){
		if ($("#"+introductionDivs[i].id).height() > 0){
			$("#"+introductionDivs[i].id).animate({height: "0px"}, ANIMATION_LENGTH);
		}
	}
	$(".sub_allesdicht_more_information_content_item").attr("innerHTML", MORE_INFORMATION_TEXT_CONTENT_ITEM);
	$(".sub_allesdicht_more_information_document").attr("innerHTML", MORE_INFORMATION_TEXT_DOCUMENT);
	$(".sub_allesdicht_more_information_product").attr("innerHTML", MORE_INFORMATION_TEXT_PRODUCT);
	
	$(".sub_allesdicht_less_information").parent().removeClass('sub_allesdicht_accordion_1_second_level_item_container2_Selected');
	$(".sub_allesdicht_less_information").parent().addClass('sub_allesdicht_accordion_1_second_level_item_container2');
    $(".sub_allesdicht_less_information").addClass('sub_allesdicht_more_information');
    $(".sub_allesdicht_less_information").removeClass('sub_allesdicht_less_information');
}
	
function closeAllOpenedCallToActionBlocks(){
	$(".search_result_detail_dynamic.opened").click();
}

function closeAllOpenedEMailBoxes(){
	$(".sub_allesdicht_e_mail_link_selected").click();
}