window.addEvent('domready',function(){

	var tbarNavi=$$('#tbar-container ul li');
	var tbarContent=$$('#tbar-content-container .tbar-content');
	
	var tbarCookie=Cookie.read('tbar');
	if(!tbarCookie) {
		if (window.location.search.match('ad=tervefi')==null) {
			var tbarNaviElement='terveys'; //default popup
			var domain=document.domain;
			if(domain.match('helistin.fi')!=null || domain.match('kimallus.fi')!=null || domain.match('huoltamo.com')!=null || domain.match('verkkoklinikka.fi')!=null) {
				tbarNaviElement='ihmissuhteet-ja-jaksaminen';
			} else if(domain.match('mustapippuri.fi')!=null || domain.match('pudottajat.fi')!=null) {
				tbarNaviElement='ravinto-ja-painonhallinta';
			}
			if (tbarNaviElement != '') {
				var popUp=$('tbar-navi-category-'+tbarNaviElement);
				var popUpTarget=$(popUp.getElement('a').get('rel'));
				showTbarContent(popUp);
			}
		}
		Cookie.write('tbar','1',{duration:7});
	}
	
	function hideTbarContent()
	{
		tbarNavi.removeClass('selected');
		tbarContent.setStyle('display','none');
	}

	function showTbarContent(thisObj)
	{

		tbarNavi.removeClass('selected');
		tbarContent.setStyle('display','none');
		thisObj.addClass('selected');

		var targetElement=$(thisObj.getElement('a').get('rel'));
		
		targetElement.setStyle('display','block');
		
		targetElement.addEvent('outerClick',function(e){
			targetElement.setStyle('display','none');
			tbarNavi.removeClass('selected');
		});

		$$('.tbar-close-link').addEvent('click',function(){
			hideTbarContent();
		});

		// ad magick
		var tbarAd1Code='<iframe frameborder="0" height="120" marginheight="0" marginwidth="0" scrolling="no" src="http://www.terve.fi/jscripts/tbarads/'+thisObj.getElement('a').get('rel')+'.html" width="980"></iframe>';
		targetElement.getElement('.tbar-ad1').empty().set('html',tbarAd1Code);

	}

	tbarNavi.addEvent('click',function(){
		if(this.hasClass('selected')) {	
			hideTbarContent();
		} else {
			showTbarContent(this);
		}
		return false;
	});

	$("tbar-select").addEvent('click',function(e){
		if($("tbar-select-content").retrieve('clickState')==1) {
			hideOptions();
		} else {
			showOptions();
		}
	});

	$$(".tbar-tab-content a").addEvent('click',function(e){
		e.stop();
		var href = this.href;
		if (href.match('\\?')!=null) {
			href = href+'&ad=tervefi';
		} else {
			href = href+'?ad=tervefi';
		}
		if (this.hasClass('tbar-ext')) {
			window.open(href);
		} else {
			window.location = href;
		}
	});
	
	var sessionId = Cookie.read('sid');
	$$('#tbar-content-login a[rel=replaceProfileLink]').each(function(link) {
		link.href = link.href+sessionId;
	});
	
	// expand footer
	var footer = $('footer-row3');
	var footerHeight = footer.getSize().y;
	$$('#footer-row3 .spacer').set('styles', {
	    'height': footerHeight-14
	});
});


function updateContent(targetElement) {
	if (targetElement.get('html') == '') {
		var requestUri = '/tbar/'+targetElement.get('id');
		var options = {
			update: targetElement
		}
		var xhrRequest = new Request.HTML(options).get(requestUri);
		xhrRequest.send();
	}
}

function hideOptions () {	
	var content = $("tbar-select-content");
	content.store('clickState',0);
	$("tbar-select").setStyle('background-image','url(\'http://images.coronaria.fi/darwinmedia/terve.fi/layout/tbar-select.gif\')');
	content.fade("out");
	content.setStyle('display','none');
}

function showOptions () {
	var content = $("tbar-select-content");
	content.store('clickState',1);
	$("tbar-select").setStyle('background-image','url(\'http://images.coronaria.fi/darwinmedia/terve.fi/layout/tbar-select-pressed.png\')');
	content.setStyle('opacity','0');
	content.setStyle('display','block');
	content.fade("in");
	
	content.addEvent('outerClick', function(e){
		if (e.target.id != 'tbar-select') {			
			hideOptions();
		}
	});		
}

(function(){
	var events;
	var check = function(e){
		var target = $(e.target);
		var parents = target.getParents();
		events.each(function(item){
			var element = item.element;
			if (element != target && !parents.contains(element))
			item.fn.call(element, e);
		});
	};
	Element.Events.outerClick = {
	onAdd: function(fn){
				if(!events) {
					document.addEvent('click', check);
					events = [];
				}
				events.push({element: this, fn: fn});
			},
	onRemove: function(fn){
				events = events.filter(function(item){
					return item.element != this || item.fn != fn;
				}, this);
				if (!events.length) {
					document.removeEvent('click', check);
					events = null;
				}
			}
		};
})();
