function administerTabsMainBox( mainframeId, firstTabShow, controlerTop, boxFramesHeight ) {

var tabAmountOfPages = 0;
var curNumbOfFrame   = 0;
var curNumbOfTab     = 0;
var timer 			 = null;
var timerId          = "timerId";
var change_time 	 = 0;
var idPostFix		 = "_" + mainframeId;
var idButContToFrameIdOb = new Object;

$(document).ready(function() {
	
	//kontroler zakładek 
	$( '#tabs' + idPostFix + ' div.box_tab' ).hide();
	$( '#tabs' + idPostFix + ' #tab' + idPostFix + '_' + firstTabShow ).show(); 
	$( '#tabs' + idPostFix + ' .tab_headings #tab_head' + idPostFix + '_' + firstTabShow ).removeClass('unselected'); 
	$( '#tabs' + idPostFix + ' .tab_headings #tab_head' + idPostFix + '_' + firstTabShow ).addClass('selected');

	
	$('#tabs' + idPostFix + ' .tab_headings .tab_head').click(function(){
		if (!$(this).hasClass('selected')) {
			$('#tabs' + idPostFix + ' .tab_headings .tab_head').removeClass('selected'); 
			$('#tabs' + idPostFix + ' .tab_headings .tab_head').removeClass('mouseEnter'); 
			$('#tabs' + idPostFix + ' .tab_headings .tab_head').addClass('unselected');
			$(this).removeClass('unselected');
			$(this).addClass('selected'); 
			var currentHeadId = $(this).attr('id');
			var tab = currentHeadId.split("_")[3];
			var currentTab = '#tab_' + mainframeId + '_' + tab;
			
			$('#tabs' + idPostFix + ' div.box_tab').hide();
			$('#tabs' + idPostFix + ' div.box_tab div.box_frame').hide();
			$(currentTab).show(); 
			
			$('#frame' + idPostFix + '_'+ tab + '_0').fadeIn( 400 );
			
			$('#tabs' + idPostFix + ' div.box_tab .frame_controler .displace_center div').removeClass('selected'); 
			$('#tabs' + idPostFix + ' div.box_tab .frame_controler .displace_center div').addClass('unselected');
			$('#frame' + idPostFix + '_'+ tab + '_0_center_link').removeClass('unselected');
			$('#frame' + idPostFix + '_'+ tab + '_0_center_link').addClass('selected');
		
			tabAmountOfPages = parseInt($('#tabAmountOfPages' + idPostFix + '_' + tab).attr('value'));
			
			if (timer != null) $(timer).stopTime(timerId);
			
			if (tabAmountOfPages > 0) {
				curNumbOfFrame = 0;
				curNumbOfTab   = parseInt( tab );
				
				idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_right' + idPostFix + '_'+ tab ).attr( 'id' )] = '#frame' + idPostFix + '_' + tab + '_' + (curNumbOfFrame+1);
				idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_left' + idPostFix + '_' + tab ).attr( 'id' )] = '#frame' + idPostFix + '_' + tab + '_' + (curNumbOfFrame-1);
					
				if (curNumbOfFrame == tabAmountOfPages-1) {
					idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_right' + idPostFix + '_'+ tab ).attr('id')] = '#frame' + idPostFix + '_' + tab + '_' + (0);
				}
				if (curNumbOfFrame == 0) {
					idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_left' + idPostFix + '_' + tab ).attr('id')] = '#frame' + idPostFix + '_' + tab + '_' + (tabAmountOfPages-1);
				}
				
				change_time = $('#frame_change_time' + idPostFix + '_' + tab).attr('value');
				
			}
			//obliczanie wysokości ramki
			setFrameHieght( tab, idPostFix, controlerTop, boxFramesHeight );
		}
		return false;
	});
	
	onMouseEnterControler( idPostFix );
	
	$('#tabs' + idPostFix + ' .tab_headings div').mouseenter(function(){ 
		if ($(this).hasClass('unselected')) {
			$(this).removeClass('unselected'); 
			$(this).addClass('mouseEnter');
		}
		
		return false;
	});
	
	$('#tabs' + idPostFix + ' .tab_headings div').mouseleave(function(){ 
		if ($(this).hasClass('mouseEnter')) {
			$(this).removeClass('mouseEnter'); 
			$(this).addClass('unselected');
		}
		
		return false;
	});
	
/***************************************************************************************************************
 * RAMKI
 **************************************************************************************************************/
	$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #frame' + idPostFix + '_' + firstTabShow + '_0_center_link').removeClass('unselected'); 
	$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #frame' + idPostFix + '_' + firstTabShow + '_0_center_link').addClass('selected'); 
	
	$('#tabs' + idPostFix + ' div.box_tab div.box_frame').hide(); 
	$('#tabs' + idPostFix + ' div.box_tab #frame' + idPostFix + '_' + firstTabShow + '_0').fadeIn( 400 );
	
	tabAmountOfPages = parseInt($('#tabAmountOfPages' + idPostFix + '_' + firstTabShow).attr('value'));
	
	if (tabAmountOfPages > 0) {
		curNumbOfFrame = 0;
		curNumbOfTab   = firstTabShow;
		
		idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_right' + idPostFix + '_'+ firstTabShow ).attr( 'id' )] = '#frame' + idPostFix + '_' + curNumbOfTab + '_' + (curNumbOfFrame+1);
		idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_left' + idPostFix + '_' + firstTabShow ).attr( 'id' )] = '#frame' + idPostFix + '_' + curNumbOfTab + '_' + (curNumbOfFrame-1);
			
		if (curNumbOfFrame == tabAmountOfPages-1) {
			idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_right' + idPostFix + '_'+ firstTabShow ).attr('id')] = '#frame' + idPostFix + '_' + curNumbOfTab + '_' + (0);
		}
		if (curNumbOfFrame == 0) {
			idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_left' + idPostFix + '_' + firstTabShow ).attr('id')] = '#frame' + idPostFix + '_' + curNumbOfTab + '_' + (tabAmountOfPages-1);
		}

		if (timer != null) timer.stopTime();
		change_time = $('#frame_change_time' + idPostFix + '_' + curNumbOfTab).attr('value');
		
		timer=$('#tabs' + idPostFix + ' #tab' + idPostFix + '_'+curNumbOfTab).everyTime(change_time + 's', timerId, function(i) {
			var currentLink = changeFrame ( '#displace_right' + idPostFix + '_' + curNumbOfTab, idButContToFrameIdOb, idPostFix, false ) + '_center_link';
			
			$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').removeClass('selected'); 
			$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').addClass('unselected');
			$(currentLink).removeClass('unselected');
			$(currentLink).addClass('selected');
		});
	}
	
	/***************************************************************************************************************
	 * automatyczne przełączanie ramek po zadanym czasie
	 **************************************************************************************************************/

	$('#tabs' + idPostFix + ' .box_tab').mouseenter(function(){ 
		$(timer).stopTime(timerId);
	
		return false;
	});
	
	$('#tabs' + idPostFix + ' .box_tab').mouseleave(function(){ 
		$(timer).stopTime(timerId);
		if( tabAmountOfPages > 0) {
			timer = $('#tabs' + idPostFix + ' #tab' + idPostFix + '_'+curNumbOfTab).everyTime(change_time + 's', timerId, function(i) {	
				var currentLink = changeFrame ( '#displace_right' + idPostFix + '_' + curNumbOfTab, idButContToFrameIdOb, idPostFix, false ) + '_center_link';
							
				$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').removeClass('selected'); 
				$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').addClass('unselected');					
				$(currentLink).removeClass('unselected');
				$(currentLink).addClass('selected');
			});
		}
		return false;
	});
	
	
	$( '#tabs' + idPostFix + ' .tab_head').mouseenter(function(){ 
		$(timer).stopTime(timerId);
	
		return false;
	});
	
	$( '#tabs' + idPostFix + ' .tab_head').mouseleave(function(){ 
		$(timer).stopTime( timerId );
		if( tabAmountOfPages > 0) {
			timer = $('#tabs' + idPostFix + ' #tab_head' + idPostFix + '_' + curNumbOfTab).everyTime(change_time + 's', timerId, function(i) {	
				var currentLink = changeFrame ( '#displace_right' + idPostFix + '_' + curNumbOfTab, idButContToFrameIdOb, idPostFix, false ) + '_center_link';
					
				$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').removeClass('selected'); 
				$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').addClass('unselected');					
				$(currentLink).removeClass('unselected');
				$(currentLink).addClass('selected');
			});
		}
		return false;
	});
	/***************************************************************************************************************
	 * kontroler ramek - obsługa kliknięcia na guziki z numerami poszczególnych ramek
	 **************************************************************************************************************/
	
	$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').click(function(){ controllerCenterClick( this ); });
	
	function controllerCenterClick(clickedOb) {
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').removeClass('selected'); 
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').addClass('unselected');
		$(clickedOb).removeClass('unselected');
		$(clickedOb).addClass('selected');
		if ($(clickedOb).hasClass('mouse_enter')) {
			$(clickedOb).removeClass('mouse_enter'); 
		}
		
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').unbind('click');
		
		changeFrame ( clickedOb, idButContToFrameIdOb, idPostFix, true);
		
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').oneTime( "800ms", function() {
			$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').bind('click', function() { controllerCenterClick( this ); });
		});
		
		return false;
	}
	
	
	/***************************************************************************************************************
	 * kontroler ramek - obsługa kliknięcia na guzik przesówający w prawo ramki
	 **************************************************************************************************************/
	
	$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_right').click( function() { controllerRightClick( this ); } );
	
	function controllerRightClick(clickedOb) {
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').removeClass('selected'); 
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').addClass('unselected');
		
		var currentLink = idButContToFrameIdOb[$(clickedOb).attr('id')] + '_center_link';
		$(currentLink).removeClass('unselected');
		$(currentLink).addClass('selected');
		
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_right').unbind('click');
		
		changeFrame ( clickedOb, idButContToFrameIdOb, idPostFix, false );
		
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_right').oneTime( "800ms", function() {
			$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_right').bind('click', function() { controllerRightClick( this ); });
		});
		
		return false;
	}
	
	/***************************************************************************************************************
	 * kontroler ramek - obsługa kliknięcia na guzik przesówający w lewo ramki
	 **************************************************************************************************************/
	
	$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_left').click( function(){ controllerLeftClick( this ); });
	
	function controllerLeftClick(clickedOb) {
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').removeClass('selected'); 
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_center div').addClass('unselected');
		
		var currentLink = idButContToFrameIdOb[$(clickedOb).attr('id')] + '_center_link';
		$(currentLink).removeClass('unselected');
		$(currentLink).addClass('selected');
		
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_left').unbind('click');
		
		changeFrame ( clickedOb, idButContToFrameIdOb, idPostFix, false );
		
		$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_left').oneTime( "800ms", function() {
			$('#tabs' + idPostFix + ' div.box_tab div.frame_controler div.displace_left').bind('click', function() { controllerLeftClick( this); });
		});
		
		return false;
	}
	
});

/**
 * funkcja zmienia ramki
 * @param frame - ramka na którą chcemy przejść
 * @return
 */
function changeFrame ( frame, idButContToFrameIdOb, idPostFix, isCentralBtn ) {
	
	var currentFra = '';
	if( isCentralBtn )
		currentFra = $(frame).attr('id');
	else
		currentFra = idButContToFrameIdOb[$(frame).attr('id')];
	
	curNumbOfTab   = parseInt( currentFra.split( "_" )[2] );
	curNumbOfFrame = parseInt( currentFra.split( "_" )[3] );
	
	currentFra = '#frame' + idPostFix + '_' + curNumbOfTab + '_' + curNumbOfFrame;
	
	tabAmountOfPages = parseInt($('#tabAmountOfPages' + idPostFix + '_' + curNumbOfTab).attr('value'));

	$( '#tabs' + idPostFix + ' #tab' + idPostFix + '_' + curNumbOfTab ).stop();

	$( '#tabs' + idPostFix + ' div.box_tab div.box_frame' ).fadeOut( 400 ); 

	$( currentFra ).oneTime( "400ms", function() {
		setFrameHieght( curNumbOfTab, idPostFix, controlerTop, boxFramesHeight, curNumbOfFrame );
		$( currentFra ).fadeIn( 400 );
	});
	
	idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_right' + idPostFix + '_'+ curNumbOfTab ).attr( 'id' )] = '#frame' + idPostFix + '_' + curNumbOfTab + '_' + (curNumbOfFrame+1);
	idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_left' + idPostFix + '_' + curNumbOfTab ).attr( 'id' )] = '#frame' + idPostFix + '_' + curNumbOfTab + '_' + (curNumbOfFrame-1);
		
	if (curNumbOfFrame == tabAmountOfPages-1) {
		idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_right' + idPostFix + '_'+ curNumbOfTab ).attr('id')] = '#frame' + idPostFix + '_' + curNumbOfTab + '_' + (0);
	}
	if (curNumbOfFrame == 0) {
		idButContToFrameIdOb[$('#tabs' + idPostFix + ' div.box_tab div.frame_controler #displace_left' + idPostFix + '_' + curNumbOfTab ).attr('id')] = '#frame' + idPostFix + '_' + curNumbOfTab + '_' + (tabAmountOfPages-1);
	}
	
	return currentFra;
}

function setFrameHieght( tab, idPostFix, controlerTop, boxFramesHeight, curNumbOfFrame ) 
{	
		var maxHeight = 0;
		
		$navigatorDiv = $( '#tabs' + idPostFix + ' #frame' + idPostFix + '_'+ tab +'_navigation' );
		$controler = 	$( '#tabs' + idPostFix + ' #frame' + idPostFix + '_'+ tab +'_controler' );
		$button = 		$( '#tabs' + idPostFix + ' #tabs_box_button' + idPostFix + '_'+ tab );
			
		if( $controler.length == 1 || $button.length == 1 )
		{
			$boxFrame = $( '#tabs' + idPostFix + ' #box_frames' + idPostFix + '_' + tab )
			if( !$boxFrame.hasClass( 'no_auto_height' ) )
			{
				$kids = $('#tabs' + idPostFix + ' #box_frames' + idPostFix + '_' + tab).children();
				$kids.each( function() {
					if( $(this).hasClass( "box_frame" ) ) {
						if( maxHeight < $(this).height() ) maxHeight = $(this).height();
					}
				});
			}
			else
			{
				if( curNumbOfFrame != null )
					maxHeight = $( '#frame' + idPostFix + '_' + tab + '_' + curNumbOfFrame ).height();
				else
					maxHeight = $( '#frame' + idPostFix + '_' + tab + '_' + '0' ).height();
					
			}
			$boxFrame.css( 'height', maxHeight + boxFramesHeight + 'px' );
		}
		
		if( $navigatorDiv.length == 0 )
		{
			$controler.css( 'top', maxHeight + controlerTop + 'px' );
			$button.css( 'position', 'absolute' ).css( 'top', maxHeight + controlerTop + 'px' );
		}
		else
		{
			$navigatorDiv.css( 'position', 'absolute' ).css( 'top', maxHeight + controlerTop + 'px' );
			if( $controler.length == 0 && $button.length == 0 )
			{
				$navigatorDiv.css( 'display', 'none' );
			}
		}
}

function onMouseEnterControler( idPostFix ) {
	$('#tabs' + idPostFix + ' .box_tab .frame_controler .displace_center div').mouseenter(function(){ 
		if ($(this).hasClass('unselected')) {
			$(this).removeClass('unselected'); 
			$(this).addClass('mouse_enter');
		}
		
		return false;
	});
	
	$('#tabs' + idPostFix + ' .box_tab .frame_controler .displace_center div').mouseleave(function(){ 
		if ($(this).hasClass('mouse_enter')) {
			$(this).removeClass('mouse_enter'); 
			$(this).addClass('unselected');
		}
		
		return false;
	});
	$('#tabs' + idPostFix + ' .box_tab .frame_controler .displace_right').mouseenter(function(){ 
		$(this).addClass('displace_right_mouse_enter');
		return false;
	});
	
	$('#tabs' + idPostFix + ' .box_tab .frame_controler .displace_right').mouseleave(function(){ 
		if ($(this).hasClass('displace_right_mouse_enter')) {
			$(this).removeClass('displace_right_mouse_enter'); 
		}
		
		return false;
	});
	$('#tabs' + idPostFix + ' .box_tab .frame_controler .displace_left').mouseenter(function(){ 
			$(this).addClass('displace_left_mouse_enter');
		return false;
	});
	
	$('#tabs' + idPostFix + ' .box_tab .frame_controler .displace_left').mouseleave(function(){ 
		if ($(this).hasClass('displace_left_mouse_enter')) {
			$(this).removeClass('displace_left_mouse_enter');
		}
		
		return false;
	});
}


$(window).load( function() {
	setFrameHieght( firstTabShow, idPostFix, controlerTop, boxFramesHeight );
});

}//koniec funkcji geneującej ramkę głowną

