var Behaviour = {

	handle : function (event)
	{
		//IE compability
		if (!event) event = window.event;

		try { 
		      //cancel event if there is behaviour
		      if (Behaviour.trigger(event.srcElement || event.target, event.type)) {
		          Event.stop(event);
		      }
		 
		 } catch (err) { }
	},
	
	trigger : function (node, eventType)
	{
		do { 
				try {
					if (node.getAttribute && (f = node.getAttribute('func'))) {
      			       var hashName = eventType + "_" + f;
						if (this[hashName]) {
							this[hashName](node);
							return true;
						}
					}
				} catch (err) { } 
		} while ( (node = node.parentNode) )
		return false;
	},

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

Event.observe(window, "load", Behaviour.start );

Event.observe(window, "load", function () {
	try {
		var tabToSelect = document.location.href.split("#")[1];
		if(!tabToSelect) tabToSelect = "etusivu";
		var navia = $('navi').getElementsByTagName('a');
		for (var i = 0; i < navia.length; i ++) {
			if (navia[i].href.split("#")[1] == tabToSelect) {
				Behaviour.mousedown_switchTab(navia[i].parentNode);
				break;
			}
		}
	} catch (err) { }

} );

Behaviour.click_showImage = function (n) {
	var imageView = $('imageView');
	if (!imageView) {
		imageView = document.createElement('div');
		imageView.id = 'imageView';
		imageView.style.display = 'none';
		if (document.all) imageView.style.position = 'absolute';
		imageView.img = document.createElement('img');
		imageView.img.title =
		imageView.img.alt = "Click to close / Sulje klikkaamalla";
		imageView.img.setAttribute('func','closeImage');
		document.body.appendChild(imageView);
		imageView.appendChild(imageView.img);
		Event.observe(imageView.img, "load", 
			function() { 
				var el = $('imageView');
				Element.setOpacity(el, 0);
				document.getElementsByTagName('object')[0].style.visibility = 'hidden';
				el.style.display = "block";
				new Effect.Opacity( el, { duration:0.5 , from:0, to:1} );
			}
		);
	}
	if (document.all) imageView.style.top =  document.documentElement.scrollTop + "px";
	imageView.img.src = n.href; 
}

Behaviour.click_closeImage = function (n) {
	new Effect.Opacity( n.parentNode, 
		{ 	duration:0.5,
			from:1,
			to:0, 
			afterFinish:function () {
				n.parentNode.style.display = 'none';
				document.getElementsByTagName('object')[0].style.visibility = '';
			}
		}
	);
}

Behaviour.mousedown_switchTab = function (n) {

	//deactivate similar
	var dea = n.parentNode.getElementsByTagName(n.tagName)
	for (var i = 0; i < dea.length; i++) {
		if (dea[i].getAttribute && dea[i].getAttribute('func') == "switchTab") dea[i].className = "";
	}
	//activate n
	n.className = "active";
	
	//open first
	var tabId = n.getElementsByTagName('a')[0].href.split('#')[1];
	var activeTab = $(tabId);
	Element.setOpacity(activeTab,0);
	activeTab.style.display = "block";
	new Effect.Opacity( activeTab, { duration:0.5 , from:0, to:1} );

	
	//close the rest
	var alld = activeTab.parentNode.getElementsByTagName('div');

	for (var i = 1; i < alld.length; i++) {
		if ( alld[i].className.indexOf('tab') == 0 && alld[i] != activeTab)
			alld[i].style.display = "none";
	}

}
