jQuery(document).ready(function($){
	jQuery('.accordion div.accordion_item a.accordion_item_top').each(function(i, accordion_item){
		jQuery(accordion_item).click(accordionOnRowClick);
	});
	handleRightNavSwitch();
});

function fetchRightNavState() {
	url_param = "";
	jQuery(".sidebar_accordion").find(".accordion_item").each(function(index) {
	    url_param += (jQuery(this).hasClass("selected")) ? "1":"0"; 
    });
	return url_param;
}

function handleRightNavSwitch() {
	jQuery(".sidebar_accordion_top").click(function(event){
		var parent = jQuery(this).parent();
		if(parent.hasClass("selected")) {
			parent.removeClass("selected");
			jQuery(this).siblings(".accordion_body").addClass("hidden");
		}
		else {
			jQuery(".sidebar_accordion div.accordion_item.selected").each(function(index, value) {
				jQuery(this).removeClass("selected");
				jQuery(this).children(".accordion_body").addClass("hidden");
			});
			parent.addClass("selected");
			jQuery(this).siblings(".accordion_body").removeClass("hidden");
		}
	});
}

function onGwtReady() {
	jQuery(".accordion_loading").each(function(i, index) {
		jQuery(this).removeClass("accordion_loading");
	});
	jQuery("#loading_layer").remove();
}


/*
Added by MRM Starsky
Author: Arnolds
Date: 2010-12-20
Description: Animates accordion for startpage
*/

//Add accordion click events
/*
jQuery(document).ready(function(){
jQuery('.accordion div.accordion_item').each(function(i, accordion_item){
	jQuery(accordion_item).click(accordionOnRowClick);
});
});
*/
//---

function openAccordionLink($accordion_item){
	var href = $accordion_item.find("a").attr("href");
	var rightNavParam = fetchRightNavState();

	if(href != undefined){
		setTimeout(function() {
			href += "&n=" + rightNavParam;
			window.location.href = href;	
		}, 300);
	}
}
//Accordion on click
function accordionOnRowClick(e){
var $accordion_item = jQuery(e.target).closest('div.accordion_item');
var isOpen = $accordion_item.hasClass('selected');

if(!isOpen){
	openAccordionRow($accordion_item, function(){ openAccordionLink($accordion_item); });	
} else {
	closeAccordionRow($accordion_item, null);
}
return false;
}

//Method to open accordion row
function openAccordionRow($accordion_item, callback){	
var ANIMATION_SPEED = 500;

// Select row
$accordion_item.removeClass("accordion_inactive_item").addClass("accordion_active_item").addClass("selected");
// --

// Method for opening clicked row
var _doOpenAccordionRow = function(){
	var $accordion_item_content = $accordion_item.find('.accordion_item_content');
	// Add div.accordion_item_content if missing
	if($accordion_item_content.length == 0){
		$accordion_item.append('<div class="accordion_item_content"></div>');
		$accordion_item_content = $accordion_item.find('.accordion_item_content');
	}
	// ---
	
	// Animate row
	var opened_height = $accordion_item_content.addClass("accordion_loading").height();
	$accordion_item_content.height(0).animate({height:opened_height}, ANIMATION_SPEED, function(){
		$accordion_item_content.removeAttr('style');
		
		if(callback != undefined)
			callback();
	});
	// ---
};
// -- 

// Close opened row
var $opened_accordion_item = jQuery('.accordion .accordion_item.selected .accordion_item_content').closest('.accordion_item');
if($opened_accordion_item.length > 0){
	closeAccordionRow($opened_accordion_item, _doOpenAccordionRow);
}else
	_doOpenAccordionRow();
// --

}

//Method to close accordion row
function closeAccordionRow($accordion_item, callback){
var ANIMATION_SPEED = 600;

if($accordion_item.hasClass("selected")){
	// Deselect row
	$accordion_item.removeClass("selected").removeClass("accordion_active_item").addClass("accordion_inactive_item");
	// --
	
	// 
	var $accordion_item_content = $accordion_item.find('.accordion_item_content');
	if($accordion_item_content.length){
		$accordion_item_content.css("overflow", "hidden").animate({height:1}, ANIMATION_SPEED, function(){
			$accordion_item_content.remove();
			if(callback != undefined)
				callback();
		});
	}else{
		if(callback != undefined)
			callback();
	}
}else{
	if(callback != undefined)
		callback();
}
}

