/*
 * module_tab.js
 * 
 * Vid sidladdning körs ett skript för tabb-hantering. Detta lägger till en klass på tabbmodulen för att stänga av
 * stylingen för icke-JS-klienter. Sedan byggs ett element längst upp i modulen som ska innehålla tabbarna (klass "tabHead"). 
 * Tabbarna ligger ursprungligen som rubriker iuti dess respektive innehåll, och flyttas sen upp till "tabHead" där de 
 * också får klick-event. Här körs även checkar som lägger på olika style beroende på antal tabbar etc.
 * 
 * Ifall modulens aktiva vy innehåller Product Items, och dessa totalt är bredare än modulen, så slås automatiskt 
 * navigationsknappar på som tillåter användaren att bläddra mellan dessa (första resp. sista elementet flyttas 
 * till slutet resp. början av ordningen i HTML:en). 
 */

 function pageload(hash) {
	if (hash)
	{
		var strHash = hash.split('_')
		strHash[1]--;
		$('#'+strHash[0]+' .tabHead h4:eq('+strHash[1]+')').parents('.module_tab').removeClass('tabs_useNavCtrls');
		$('.tabs_content_current',$('.module_tab:eq(0) .tabHead h4:eq('+strHash[1]+')').parent().parent()).removeClass('tabs_content_current');
		
		$('#'+strHash[0]+' .tabHead h4:eq('+strHash[1]+')').parent().children('h4').removeClass('selected');
		$('#'+strHash[0]+' .tabHead h4:eq('+strHash[1]+')').addClass('selected');
		var myIndex = strHash[1];
		$('#'+strHash[0]+' .tabHead h4:eq('+strHash[1]+')').parents('.module_tab').children('.tabContent').hide();
		$('#'+strHash[0]+' .tabHead h4:eq('+strHash[1]+')').parents('.module_tab').children('.tabContent').eq(myIndex).show();
		$('#'+strHash[0]+' .tabHead h4:eq('+strHash[1]+')').parents('.module_tab').children('.tabContent').eq(myIndex).addClass('tabs_content_current');
		
		var currentItems = {};
		currentItems.ref = $('.tabs_content_current .tabContentItem',$('#'+strHash[0]+' .tabHead h4:eq('+strHash[1]+')').parent().parent()).eq(0);
		currentItems.total = $('.tabs_content_current .tabContentItem',$('#'+strHash[0]+' .tabHead h4:eq('+strHash[1]+')').parent().parent()).length;
		currentItems.totalWidth = parseInt(currentItems.ref.width()) + parseInt(currentItems.ref.css('margin-left')) + parseInt(currentItems.ref.css('margin-right'));
		currentItems.totalWidth = currentItems.totalWidth * currentItems.total;
		currentItems.parentWidth = parseInt(currentItems.ref.parents('.module_tab').width()); 

		if ((currentItems.totalWidth - 5) > currentItems.parentWidth) {
			currentItems.ref.parents('.module_tab').addClass('tabs_useNavCtrls');
			$('.tabs_nav a, .tabs_nav div',currentItems.ref.parents('.module_tab')).respectHeight($('.tabContent',currentItems.ref.parents('.module_tab')));
		}
	}
 }	

/** @id module_tab.js
 * 
 * @param {Object} '.module_tab'
 */




$(document).ready(function(){
	$.history.init(pageload); // Initialize history plugin.
	
		
	$('.module_tab').each(function(i){
		$('.module_tab:eq('+i+')').addClass('tabs_JS');
		$('.module_tab:eq('+i+')').prepend('<div class="tabHead"></div>');
		
		var itemLength = $('.module_tab:eq('+i+') .tabContent').length;
		
		if (itemLength == 1) {
			$('.module_tab:eq('+i+')').addClass('tabs_single');
		} else if($(this).parents('.content_fullTotal').length > 0) {
			if (itemLength > 1 && itemLength < 5) {
				$('.module_tab:eq('+i+')').addClass('tabs_lessThanFive');
			} else if (itemLength == 5) {
				$('.module_tab:eq('+i+')').addClass('tabs_five');
				$('.module_tab:eq('+i+') h4:eq(4)').addClass('last-child');
			} else if (itemLength > 5) {
				$('.module_tab:eq('+i+')').addClass('tabs_moreThanFive');
			} 
		} else {
			$('.module_tab:eq('+i+')').addClass('tabs_moreThanFive');
		} 

		$('.module_tab:eq('+i+') .tabContent h4').appendTo('.module_tab:eq('+i+') .tabHead');
		//$('.module_tab:eq('+i+') .tabHead').append('<div class="tabHead_sI1">&nbsp;</div><div class="tabHead_decoration">&nbsp;</div>');
		$('.module_tab:eq('+i+') .tabHead').append('<div class="tabHead_sI1">&#160;</div><div class="tabHead_decoration">&#160;</div>');		
		$('.module_tab:eq('+i+') .tabContent').hide();
		//$('.module_tab:eq('+i+') .tabContent').eq(0).show();
		//$('.module_tab:eq('+i+') .tabContent').eq(0).addClass('tabs_content_current');
		
		
		//$('.module_tab:eq('+i+') .tabHead').wrapInner('<div class="tabHead_sI1"></div>');
			
		$('.module_tab:eq(' + i + ') .tabHead h4').click(function(){
			var myIndex = $('h4',$(this).parent()).index(this);
			$.history.load($(this).parents(".module_tab").attr("id")+'_'+(myIndex+1));
		});
		
		
		var curHash = $.history._curHash.replace(/^#/, '');
		if(curHash=='')
		{
			$('.module_tab:eq(' + i + ') .tabHead h4:eq(0)').each(function() {
				$(this).parents('.module_tab').removeClass('tabs_useNavCtrls');
				$('.tabs_content_current',$(this).parent().parent()).removeClass('tabs_content_current');
				
				$(this).parent().children('h4').removeClass('selected');
				$(this).addClass('selected');
				var myIndex = $('h4',$(this).parent()).index(this);
				
				$(this).parents('.module_tab').children('.tabContent').hide();
				$(this).parents('.module_tab').children('.tabContent').eq(myIndex).show();
				$(this).parents('.module_tab').children('.tabContent').eq(myIndex).addClass('tabs_content_current');
				
				var currentItems = {};
				currentItems.ref = $('.tabs_content_current .tabContentItem',$(this).parent().parent()).eq(0);
				currentItems.total = $('.tabs_content_current .tabContentItem',$(this).parent().parent()).length;
				currentItems.totalWidth = parseInt(currentItems.ref.width()) + parseInt(currentItems.ref.css('margin-left')) + parseInt(currentItems.ref.css('margin-right'));
				currentItems.totalWidth = currentItems.totalWidth * currentItems.total;
				currentItems.parentWidth = parseInt(currentItems.ref.parents('.module_tab').width()); 

				if ((currentItems.totalWidth - 5) > currentItems.parentWidth) {
					currentItems.ref.parents('.module_tab').addClass('tabs_useNavCtrls');
					$('.tabs_nav a, .tabs_nav div',currentItems.ref.parents('.module_tab')).respectHeight($('.tabContent',currentItems.ref.parents('.module_tab')));
				}
			});
		}
		else {
			var strHash = curHash .split('_');
			if(strHash[0] == $(this).attr("id"))
				$('#'+strHash[0]+' .tabHead h4:eq('+(strHash[1]-1)+')').click();
			else
			{
				$('.module_tab:eq(' + i + ') .tabHead h4:eq(0)').each(function() {
					$(this).parents('.module_tab').removeClass('tabs_useNavCtrls');
					$('.tabs_content_current',$(this).parent().parent()).removeClass('tabs_content_current');
					
					$(this).parent().children('h4').removeClass('selected');
					$(this).addClass('selected');
					var myIndex = $('h4',$(this).parent()).index(this);
					
					$(this).parents('.module_tab').children('.tabContent').hide();
					$(this).parents('.module_tab').children('.tabContent').eq(myIndex).show();
					$(this).parents('.module_tab').children('.tabContent').eq(myIndex).addClass('tabs_content_current');
					
					var currentItems = {};
					currentItems.ref = $('.tabs_content_current .tabContentItem',$(this).parent().parent()).eq(0);
					currentItems.total = $('.tabs_content_current .tabContentItem',$(this).parent().parent()).length;
					currentItems.totalWidth = parseInt(currentItems.ref.width()) + parseInt(currentItems.ref.css('margin-left')) + parseInt(currentItems.ref.css('margin-right'));
					currentItems.totalWidth = currentItems.totalWidth * currentItems.total;
					currentItems.parentWidth = parseInt(currentItems.ref.parents('.module_tab').width()); 
	
					if ((currentItems.totalWidth - 5) > currentItems.parentWidth) {
						currentItems.ref.parents('.module_tab').addClass('tabs_useNavCtrls');
						$('.tabs_nav a, .tabs_nav div',currentItems.ref.parents('.module_tab')).respectHeight($('.tabContent',currentItems.ref.parents('.module_tab')));
					}
				});
			}
		}
		
		
		
		
		if (itemLength == 1) {
			$('.module_tab:eq(' + i + ') .tabHead h4:eq(0)').unbind("click").removeClass('selected');
		}
	});

	$('.module_tab .nav_prev').click(function(){
		$('.tabs_content_current .tabContentItem',$(this)
			.parents('.module_tab')).eq($('.tabs_content_current .tabContentItem',$(this)
			.parents('.module_tab')).length - 1)
			.prependTo($('.tabs_content_current .tabContent_sI2',$(this).parents('.module_tab')));
		if (telenor.ie6) { // fix for alpha element
			var sys_SLAP = setTimeout(function(){
				$('.module_tab .num').addClass('sys_SLAP').removeClass('sys_SLAP');
			}, 5);
		}
		return false;
	});
	
	$('.module_tab .nav_next').click(function(){
		$('.tabs_content_current .tabContentItem',$(this)
			.parents('.module_tab')).eq(0)
			.appendTo($('.tabs_content_current .tabContent_sI2',$(this).parents('.module_tab')));
		if (telenor.ie6) { // fix for alpha element
			var sys_SLAP = setTimeout(function(){
				$('.module_tab .num').addClass('sys_SLAP').removeClass('sys_SLAP');
			}, 5);
		}
		return false;
	});
	
});
