

var util = new function()
{
    this.getSrcElem = function(e)
    {
	var ret = null;
	if(e.srcElement)
	{
	    ret = e.srcElement;
	}
	else if(e.target)
	{
	    ret = e.target;
	}
	return ret;
    };
}

var switchTab = new function() // is singleton
{
    this.activated = false;
    this.tabId = new Array();
    this.menu = '';

    this.panels = '#switch_panels div.panel';
    //this.panels = '#refresh_panel'; // used for ajax

    var self = this;

    this.setTabs = function(tabs)
    {
	var i = 1;
	for(var j = 0; j < tabs.length; j++)
	{
	    self.tabId[i] = tabs[j];
	    i++;
	}
    };
    
    this.setMenu = function(menu)
    {
	self.menu = menu;
    };

    this.getCurrent = function()
    {
	var current = 1;
	for(var i = 1; i < self.tabId.length; i++)
	{    
	    if(self.tabId[i] == $('body').attr('id'))
	    {
		current = i;
	    }
	}
	return current;
    };

    this.changeTab = function(e, active)
    {	
	if(active == 0)
	{
	    var activeElem = util.getSrcElem(e).parentNode; 
	    var found = false;
	    var i = 1;
	    $(self.menu+' li a').each(function(index){		 	 	 
		if(this.parentNode != activeElem)
		{
		    if(found == false)
		    {
			i++;
		    }
		}
		else
		{
		    found = true;
		}
	    });
	    active = i;
	}
	$('body').attr({'id': self.tabId[active]});	
	switchTab.alterCurrent(active);

	switchTab.alterPanel(active);		
	//$(switchTab.panels).load('./index.php?id='+active+'&refresh=1', null, initButtons);
	//$('#switch_panels').load('tab_'+active+'.inc', null, initButtons);
    };

    this.alterCurrent = function(active)
    {
	var i = 1;
	$(self.menu+' li').each(function(index){
	    var item = $(this);
	    if(i == active)
	    {
		item.addClass('current');		
	    }
	    else
	    {
		item.removeClass('current');			
	    }
	    i++;
	});
    };
    
    this.alterPanel = function(active)
    {
	var i = 1;
	$(self.panels).each(function(index){
	    var item = $(this);
	    if(i == active)
	    {
		item.removeClass('hidden');		
	    }
	    else
	    {
		item.addClass('hidden');		
	    }
	    i++;
	});
    };

    
    this.buttonEvents = function()
    {
	$(self.panels+' p.button > a').bind('click', function(e){
	    var active = self.getCurrent();
	    e.preventDefault();
	    self.changeTab(null, (active + 1));
	});
	$(self.panels+' p.but-sec-action > a, '+self.panels+' p.but-sec-action-last > a').bind('click', function(e){
	    var active = self.getCurrent();
	    e.preventDefault();
	    self.changeTab(null, (active - 1));
	});
    };
    
}

$(document).ready(function(){    
    getSwitchPrefs();            
    if(switchTab.activated == true)
    {
	$(switchTab.menu+' li a').each(function(index){	
	    $(this).bind('click', function(e){	    	
		e.preventDefault();
		switchTab.changeTab(e, 0);	    
	    });
	});

	/*
	$(switchTab.panels+' p.button > a').bind('click', function(e){
	    var active = switchTab.getCurrent();
	    e.preventDefault();
	    switchTab.changeTab(null, (active + 1));
	});
	$(switchTab.panels+' p.but-sec-action > a, '+switchTab.panels+' p.but-sec-action-last > a').bind('click', function(e){
	    var active = switchTab.getCurrent();
	    e.preventDefault();
	    switchTab.changeTab(null, (active - 1));
	});
        */

	switchTab.buttonEvents();	
    }
});

var initButtons = function()
{
    switchTab.buttonEvents();
}