/*
 * module_accordion.js
 * 
 * script has been re-written using standard jquery to avoid collisions with tabs implementation 
 * 
 */

(function($) { 
	
	window.accordionSlideSpeed = window.accordionSlideSpeed || 400;
 			
 	$(document).ready(function(){
 			
 		/* onload hide all acc_content */
 		$('.module_accordion .acc_content').hide(); 				
 		
 		/* onclick slide open and close articles */
		$('.module_accordion .acc_ctrl'
				+', .module_accordion .acc_item h4'
				+', .module_accordion .acc_item .acc_item h5,'
				+' .acc_item .short_desc').click(function(e) {
			
			/* TODO test func */			
			loadAccContentLinkData(this);
			
			var $accContent = $(this).parent().children('.acc_content');
									
			if($accContent.is(':hidden')) {
				$(this).parent().addClass('acc_open');
				
				if(accordionSlideSpeed > 0) {
					$accContent.css({'visibility':'hidden','display':'block'});
					var accContentHeight = $accContent.height();
					$accContent.css({'visibility':'visible','display':'none','height':accContentHeight});
				}
			}		
			
			$accContent.slideToggle(accordionSlideSpeed, function() {	 
				if($(this).is(':visible')) {	
					if(accordionSlideSpeed > 0) {
						$(this).css({'height':'inherit'});
					}
				} else {
					$(this).parent().removeClass('acc_open');
				}			
			});					
		    
			$(this).parent().siblings('.acc_item').children('.acc_content').slideUp(accordionSlideSpeed, function() {
				$(this).parent().removeClass('acc_open');
			});					
			
			return false;
		});		
	
		/* onload show demanded article */
		var hashVal = $(location).attr('hash');			
		if(hashVal) {
			var accItems = $(hashVal).parents('.module_accordion .acc_item').get().reverse();
			$(accItems).each(function(index) {
				var accLink = $(this).children('.acc_ctrl').eq(0);
				setTimeout(function(){$(accLink).trigger('click');},index*accordionSlideSpeed);						
		  	});
		}						
 	});  	 	
 	
 	function loadAccContentLinkData(el) {
 		var ajaxLinkItem = $(el).parent().children('.acc_contentLink');
		var hash = $(el).parent().children('.acc_content').attr("id");
		
		//copy paste of prev script 
		if(ajaxLinkItem.length > 0){
			$.post(ajaxLinkItem[0].href, function(data){
				$('#'+hash).html(data);
				acc_addContentEvents('#'+hash);
				
				$('.tbl_Standard th:last-child, .tbl_Standard td:last-child').css('border','0');
				$('.module_accordion tbody').each(function(){
					$('tr:odd td:not(.empty)',this).addClass('zebra');
				});
			    $('.module_accordion .tbl_Standard tbody tr').each(function(){
			        $('td.zebra:odd', this).addClass('zebraGray');
			    });
				$('.module_accordion .tbl_Standard tbody').each(function(){
					$('th:odd', this).addClass('zebraDarkTh');
				});
			    $('tbody tr').each(function(){
			        $('td:not(.zebra):odd', this).addClass('zLight');
			    });
			});
		}
 	}
 	
 	//copy paste of prev script 
 	function acc_addContentEvents(selector) {
 		$(selector+' .inlineInfoBox').hover(function(){
 			var myOffset = $(this).offset();
 			var parentOffset = $(this).parents('.module_accordion').offset();
 			var parentWidth = parseInt($(this).parents('.module_accordion').width());
 			myOffset = myOffset.left - parentOffset.left;
 			if (myOffset >= (parentWidth / 2)) {
 				$(this).addClass('hover_left');
 			} else {
 				$(this).addClass('hover_right');
 			} 
 		},function(){
 			$(this).removeClass('hover_left').removeClass('hover_right');
 		});
 	}
 	
})(jQuery);

/*
 * module_accordion.js
 * 
 * Denna fil arbetar tillsammans med "History", en plugin till jQuery i en extern fil.
 * 
 * Vid sidladdning lÃ¤ggs en funktion i klick-eventet pÃ¥ accordion-modulens element-rubriker. Denna funktion kÃ¶r villkor
 * som avgÃ¶r om elementet ifrÃ¥ga ska tÃ¤ndas, slÃ¤ckas eller hanteras via pageload()-funktionen. Pageload() Ã¤r det huvudsakliga
 * Ã¤ndamÃ¥let med klick-eventet, undantag Ã¤r t ex nÃ¤r anvÃ¤ndaren vill tÃ¤nda/slÃ¤cka samma element upprepade gÃ¥nger
 * 
 * Pageload() tÃ¤nder/slÃ¤cker elementets innehÃ¥ll, samt anvÃ¤nder History-pluginen fÃ¶r att Ã¤ndra URLens hash-vÃ¤rde. 
 * Funktionen kollar ocksÃ¥ ifall elementet har en AJAX-lÃ¤nk (klass "acc_contentLink"); isÃ¥fall hÃ¤mtas dess innehÃ¥ll och skriver 
 * Ã¶ver befintligt innehÃ¥ll. Sedan kÃ¶rs funktioner som stylar ev tabeller i sidans innehÃ¥ll och lÃ¤gger till events (skÃ¶ts
 * av acc_addContentEvents()).
 * 
 * 
 */


/* ========================  ======================== */
/* ------------------------  ------------------------ */
/* ........................  ........................ */
/*
function acc_addContentEvents(selector) {
	$(selector+' .inlineInfoBox').hover(function(){
		var myOffset = $(this).offset();
		var parentOffset = $(this).parents('.module_accordion').offset();
		var parentWidth = parseInt($(this).parents('.module_accordion').width());
		myOffset = myOffset.left - parentOffset.left;
		if (myOffset >= (parentWidth / 2)) {
			$(this).addClass('hover_left');
		} else {
			$(this).addClass('hover_right');
		} 
	},function(){
		$(this).removeClass('hover_left').removeClass('hover_right');
	});
}


function pageload(hash) {
	if (hash) {
		var hasOpenChild = false;
		if ($('[href=#' + hash + ']').parent(':has(.acc_open)').length > 0) { // check if nested content is open
			hasOpenChild = true;
		}

		$('.acc_selected').removeClass('acc_selected'); // unmark last active element, if any.
		$('.acc_open').removeClass('acc_open'); // close any open content.

		$('[href=#' + hash + ']').addClass('acc_selected'); // set current element as active
		if (!hasOpenChild) { // if there is no open elements in child-levels...
			$('[href=#' + hash + ']').parent().addClass('acc_open'); // open current content

			var ajaxLinkItem = $('#'+hash).siblings('.acc_contentLink');
			if(ajaxLinkItem.length > 0){
				$.post(ajaxLinkItem[0].href, function(data){
					$('#'+hash).html(data);
					acc_addContentEvents('#'+hash);
					
					$('.tbl_Standard th:last-child, .tbl_Standard td:last-child').css('border','0');
					$('.module_accordion tbody').each(function(){
						$('tr:odd td:not(.empty)',this).addClass('zebra');
					});
				    $('.module_accordion .tbl_Standard tbody tr').each(function(){
				        $('td.zebra:odd', this).addClass('zebraGray');
				    });
					$('.module_accordion .tbl_Standard tbody').each(function(){
						$('th:odd', this).addClass('zebraDarkTh');
					});
				    $('tbody tr').each(function(){
				        $('td:not(.zebra):odd', this).addClass('zLight');
				    });
				});
			}
		}

		$('[href=#' + hash + ']').parent().parents('.acc_item').addClass('acc_open'); // open the content of any parent
	}
}

function updateSubLinks()
{
	$('div.replace_sublinks a').click(function(){
		var hash = this.href;
		if(hash.indexOf("#") > -1)
		{
			hash = hash.replace(/^.*#/, '');
			$.history.load(hash);
		}
	});
}

$(document).ready(function(){
	$.history.init(pageload); // Initialize history plugin.

	$('.acc_item > h4, .acc_item > h5, .acc_item .short_desc').click(function(){
		$('a[rel=history]:eq(0)',$(this).parent()).click();
	});

	$('a[rel=history]').click(function(){
		var hash = this.href;
		hash = hash.replace(/^.*#/, '');

		if (!$(this).hasClass('acc_selected') && $(this).parent().hasClass('acc_open')) {
			//alert('not active - has open content w/ kids');
			//chrome opens the parent again if the hash aint changed
			if(/chrome/.test(navigator.userAgent.toLowerCase())) {
				hash="";
			}
			$.history.load(hash);
			$(this).parent().removeClass('acc_open');
		} else if (!$(this).hasClass('acc_selected')) { //  && !$(this).parent().hasClass('acc_open')
			//alert('not active - go and open...');
			$.history.load(hash);	
		} else if (!$(this).parent().hasClass('acc_open')) {
			//alert('active - closed content');
			$(this).parent().addClass('acc_open');
			$.history.load(hash);
		} else {
			//alert('active - open content');
			$(this).parent().removeClass('acc_open');
			if(!$(this).parent().parents('.acc_item').hasClass("acc_item"))
				hash = "";
			else
			{
				hash = $(this).parent().parent().parent().find("a.acc_ctrl").attr("href");
				hash = hash.replace(/^.*#/, '');
			}
				
			$.history.load(hash);
		}

		return false;
	});

	if($('.module_accordion').prev().hasClass('module_flaps')){
		$('.module_accordion b.nW:eq(0), .module_accordion b.nE:eq(0)').remove();
	}
	$('.module_accordion .acc_item .acc_item:last-child').css('border-bottom','0');

});
*/

