var Behaviour = 
{

	handle : function (event)
	{
		try { 
		      //cancel event if there is behaviour
		      if (Behaviour.trigger(Event.element(event), event)) {
		          Event.stop(event);
		      }
		 
		 } catch (err) { }
	},
	
	trigger : function (node, event)
	{
		do { 
				try {
					if (node.getAttribute && (f = node.getAttribute('func'))) {
						if (this[f]) {
							this[f](node, event);
							return true;
						}
					}
				} catch (err) { } 
		} while ( (node = node.parentNode) )
		return false;
	},

	start : function ()
	{
		// start handlers
    	Event.observe(document.body, 'mousedown', Behaviour.handle);
	}
}

document.observe("dom:loaded", Behaviour.start );

document.observe("dom:loaded", function ()
{
	try {
		var tabToSelect = document.location.href.split("#")[1] 

		$$('#navi li a').each( function (a)	{ if ( a.href.split("#")[1] == tabToSelect ) Behaviour[a.parentNode.getAttribute('func')](a.parentNode); });
	} catch (err) {}

	Shadowbox.init(
    	{        	resizeLgImages:     true,        	handleUnsupported:  'remove',        	keysClose:          ['c', 27] // c or esc    	}
    );
    
} );


Behaviour.loadTab = function (n)
{
	this.switchTab(n);
	
	var q = n.getElementsByTagName('a')[0].href.split('#');
	
	var t = Math.random();
	
	new Ajax.Updater( q[1], 'jx/'+q[2]+'.xml?'+t, { method :'get'	} );
}

Behaviour.switchTab = function (n) {

	$$('#navi li').each( function (li) { li.className = (li == n) ? "active" : "" } );
	
	var activeTab = $ ( n.getElementsByTagName('a')[0].href.split('#')[1] );
	
	$$('#content .tab').each(
	
		function (tab)
		{
			tab.style.display = ( tab == activeTab ) ? "block" : "none";
		}
	
	);

}
