/*****************
*
*	Javascript functions for Pörssi web site
* 	&copy; Deeper / Pörssi
*	
******************/


$(document).ready(function() {
/*****************
*
*	SETTINGS
*	
******************/
enableShoutbox 			= true;
enableMenuAnimation 	= true;
enableBlockEvenHeight 	= true;
ajaxCalNav				= true;
ajaxEventBrowsing		= true;

/*****************
*
*	ATTEND LINK VIA AJAX
*
******************/
$('.attendLink').click( function(e) {
	e.preventDefault();
	ajaxCallLink($(this).attr('href'),'Haluatko ilmoittautua tapahtumaan?');
});

$('.unattendLink').click( function(e) {
	e.preventDefault();
	ajaxCallLink($(this).attr('href'),'Haluatko poistaa ilmoittautumisesi?');
});

function ajaxCallLink(link,msg) {
	if(confirm(msg)) 
	$.get(link,function(data) {
	   window.location.reload();
	});
}

/*****************
*
*	AJAX-STYLE CALENDAR NAVIGATION
*	
******************/
if(ajaxCalNav){
	//register events

	
	var registerEventsForCalNav = function( item ){
		//alert('registerEvent called');
		$(item).click(function(e) {
			e.preventDefault();
			
			
			
			
			var calId = $(this).closest('.calendar').attr('id');
			$('#'+calId+' .month-title').html('<img class="'+calId+'Loader" src="images/loaders/'+calId+'Loader.gif" alt="ladataan..." />');
			
			var callUrl = $(this).attr('href');
			$.get(callUrl, function(data) {
				var dataitem = $(data);
				var calendar = dataitem.find('#'+calId).html();
				$('#'+calId).html(calendar);
				
				// reg events for new buttons also
				var prevBtn  = $('#'+calId+' .calendar-prev a');
				var nextBtn  = $('#'+calId+' .calendar-next a');
				registerEventsForCalNav(prevBtn);
				registerEventsForCalNav(nextBtn);
				
				if(calId == 'compactCal') registerEventsForCalBrowsing('#'+calId);
				
				
			});
		});
	
	}
	
	registerEventsForCalNav('.calendar .calendar-prev a');
	registerEventsForCalNav('.calendar .calendar-next a');

}


/*****************
*
*	AJAX EVENT BROWSING
*
******************/
if(ajaxEventBrowsing){
	var registerEventsForCalBrowsing = function( item ){
		
	
		$(item).find('td a').click(function(e) {
			e.preventDefault();
			var calId = $(this).closest('.calendar').attr('id');
			var callUrl = $(this).attr('href');

			
			$('#'+calId+'-result').animate({opacity:0},100,function() {
				$('#'+calId+'-result').html('<center><img style="margin:10px 0 0" src="images/loaders/'+calId+'ResultLoader.gif" alt="ladataan..." /></center>');
				$(this).animate({opacity:1});
			
			});
			
			
			
			
			$.get(callUrl, function(data) {
				
				/* Since blank page is used, this is ~useless */
				var dataitem = $(data);
				//var calendar = dataitem.find('#'+calId+'-list').html();
				var calendar = $('#'+calId+'-list',dataitem);
				//calendar = data;
				
				
				//place data
				$('#'+calId+'-result').html(calendar);
				
				// remove some elements
				$('#'+calId+'-result .calendar-prev').remove();
				$('#'+calId+'-result .calendar-next').remove();
				$('#'+calId+'-result .calendar-returnlink').remove();
				
				//Todo: adjust parent block height if needed
				$('#'+calId+'-result').closest('.block').css({height:'auto'});
				
			});
			
			
		});
	
	}
	registerEventsForCalBrowsing('#compactCal');
}

/*****************
*
* EVENTS AS TITLE FOR COMPACTCAL DATES 
*
******************/
$('#compactCal td').each( function() {
	var t = '';
	var i = 1;
	var eventCount = $(this).find('ul li a').size();
    $(this).find('ul li a').each( function() {
		t += $(this).html();
		if(i++ < eventCount) t += ", ";
	});
	if(t)$(this).find('a').not('ul li a').attr('title',t);
});
	


/*****************
*
*	SEARCH SUBMIT
*	- prevent submission with empty value
*
******************/
$('.search-button').click ( function(e) {
	return ($('.search-input').val() != '');
});


/*****************
*
*	SHOUTBOX
*
******************/
/*
if(enableShoutbox){
	//Shoutbox carousel
	if( $('.changeShout .cms-guestbook-entry').size() > 0) {
		//hide shout items except first one
		$('.changeShout .cms-guestbook-entry:first').addClass('currentShout');
		$('.changeShout .cms-guestbook-entry').not('.currentShout').hide().css( {opacity:0});
		//setTimeout(changeShout,3000);
		setInterval(changeShout,3000);
	}
}

	var shoutCount = $('.changeShout .cms-guestbook-entry').size();
	var shoutIdPrefix = 'guestbookEntry_';
	function changeShout() {
		//alert( $(this).height()
		//$('.currentShout').find('.cms-guestbook-entry-text').animate( {top:'-'+$(this).height() +'px'},300);
		$('.currentShout').animate({opacity:0},0, function(){
			$(this).hide();
			var currentId=$('.currentShout').attr('id').replace(shoutIdPrefix,'');
			if(++currentId > shoutCount) currentId = 1;
			$('.currentShout').removeClass('currentShout');
			$("#"+shoutIdPrefix+currentId).addClass('currentShout');
			$('.currentShout').show().animate({opacity:1},0);
		});
	}
*/
// v2 - ajax

var ajaxShoutUrl = '_blankshout?eid=';
var currentShout = 0;

var registerEventsShoutNav= function( item, dir, eids ){
	$(item).click(function(e) {
		e.preventDefault();
		changeShout(dir, eids);
	});
}

function changeShout(dir,eids) {
		//loading animation
		$('.cms-guestbook-entry-header').append('<img id="shoutLoader" src="images/loaders/shoutLoader.gif" alt="ladataan..." >');

		var nextShout;
		if(dir == 'next') { nextShout = currentShout+1; if(nextShout >= eids.length) nextShout = 0; }
		else { nextShout = currentShout-1; if(nextShout < 0) nextShout = (eids.length-1)}
		currentShout = nextShout;
		nextShout = eids[nextShout];
		$.get(ajaxShoutUrl+nextShout,function(data) {
				var dataItems = data.split('|');
				$('.changeShout .cms-guestbook-entry .cms-guestbook-entry-sendername').html(dataItems[0]);
				$('.changeShout .cms-guestbook-entry .cms-guestbook-entry-posted').html(dataItems[1]);
				$('.changeShout .cms-guestbook-entry .guestbookMessage').html(dataItems[2]);
				$('#shoutLoader').remove();		
		});	
	}

// get entry ids
if(enableShoutbox){
	if( $('.changeShout .cms-guestbook-entry').size() > 0) {
		
		var eids = new Array();
		$('.changeShout .eid').each( function() {
			eids.push($(this).html());
		});
		
		
		var prevBtn = $('<a class="shoutNav left prevBtn" href="#" ><< Edellinen</a>');
		var nextBtn = $('<a class="shoutNav right " href="#" >Seuraava >></a>');
		var clr = $('<div class="clr"></div>');
		registerEventsShoutNav(prevBtn,'prev',eids)
		registerEventsShoutNav(nextBtn,'next',eids)
		
		
		var shoutNav = $('<div>');
		shoutNav.append(prevBtn);
		shoutNav.append(nextBtn);
		shoutNav.append(clr);
		
		
		$('.changeShout .cms-guestbook-entry').after(shoutNav);

	}

}


/*****************
*
*	MENU ANIMATION
*
******************/	
if(enableMenuAnimation){
	$('#menu ul li').find('ul').each( function() { $(this).css({opacity:0}) });
	
	
	$('#menu ul li').not('#menu ul ul li').hover( function(e) {
		e.preventDefault();
		$(this).find('ul').stop().animate({opacity:1},200).show();
		
	}, function(e) {
		e.preventDefault();
		// this isn't working...
		$(this).find('ul').stop().animate({opacity:0},200,function() {
			$(this).hide();
		});
	});
	


}

/*****************
*
*	BLOCK HEIGHT ADJUSTMENT 
*	- equal height
*	
******************/
if(enableBlockEvenHeight){

	var evenBlockHeights = function(){
		if($(".block").size() > 0) {
			var curHeight 	= 0;
			var curPos 		= 0;
			$('.block').each(function(index) {
				curHeight = $(this).height();
				curPos = $(this).offset().top;
				$('.block').each(function(index) {
					if($(this).offset().top == curPos && $(this).height() < curHeight) $(this).height(curHeight);
				});
			});
		}
	}
	evenBlockHeights();
}

/*****************
*
*	BLOCK STYLING
*	
******************/
var pre 	= '<span class="beginning"></span>';
var after 	= '<span class="ending"></span>';
var tmp;
$('.third h2').each ( function() {
	tmp = $(this).html();
	$(this).html(pre+tmp+after);
});

/*****************
*
*	SLIDER NAVIGATION
*	
******************/
	var autoLoopInterval = 5000;
	var autoLoop = true;

	var registerListItem = function( item) {
		$(item).click(function (e) {
			e.preventDefault();
			
			if (!$(this).hasClass('current'))
			{
			var pressedId = $(this).html();
			var currentId = $("#sliderNav .current").html();
			
			$("#sliderItemId" + currentId).stop().hide().animate({opacity:0},100, function() {
				$("#sliderItemId"+pressedId).stop().show().animate({opacity:1},400);
			});
			$("#sliderNav .current").removeClass('current');
			$(this).addClass('current');
			
				if(autoLoop){
					clearInterval(itemVaihto);
					itemVaihto = setInterval(vaihdaItem, autoLoopInterval);
				}
			}
			
		});
	}
	
	function vaihdaItem() {
		var itemCount = $('.SliderItem').size();
		var currentNumber = $('#sliderNav .current').html();
		var next = 1+parseInt(currentNumber);
		if(next > itemCount) next = 1;
		$('.current').removeClass('current');
		$('#sliderNav #navItem'+next).addClass('current');
		
		
		
		$("#sliderItemId"+currentNumber).hide().animate({opacity:0},100, function() {
			$("#sliderItemId"+next).show().animate({opacity:1},200);
		});

	}


	
	
	
	
	// header carousel
	if( $(".Slider").size() > 0 && $(".SliderItem").size() > 1 ) 
	{
		var cnav = $('<ul id="sliderNav"></ul>');
	
		var count = $(".SliderItem").size();
		//cnav.append(count);
		var listItem;
		
		for (i=1;i<=count;i++)
		{
			
			listItem = $('<li id="navItem'+i+'">'+i+'</li>');
			if(i==1) listItem.addClass('current');
			registerListItem(listItem);
			cnav.append(listItem);

		}
		
		cnav.css({position:'absolute', bottom:'10px', right:'10px'});
		$(".Slider").append(cnav);
		
		if(autoLoop)
		var itemVaihto = setInterval(vaihdaItem, autoLoopInterval);


		
	}

/*****************
*
*	FORM FILLING FOR EVENT REGISTRATION - LOGGED USERS
*	
******************/

	$('#ilmoittauduNimi').val($("#loginInfo-name").html());
	$('#ilmoittauduEmail').val($("#loginInfo-email").html());
	$('#ilmoittauduPuh').val($("#loginInfo-phone").html());



});
