/**
 * @author Laurynas Karvelis
 * @author "made.By" - www.by.lt
 * @date 2008-02-14
 */
 
// site font size switcher - accessability
(function($) {
	function switchTextSize(size) {
		jQuery('body').removeClass().addClass(size);
		jQuery.cookie('textsize', size, { expires: 365});
	}
	
	$.fn.extend({
		ability: function() {
			return this.each(function(){
				var curtextsize = jQuery.cookie('textsize');
				
				if (curtextsize) {
					jQuery('body').removeClass().addClass(curtextsize);
				}
	
				jQuery('ul#page-controls li a.action').bind('click', function(){
						switchTextSize(jQuery(this).attr('rel'));
						return false;
				});
			});
		}
	});
})(jQuery);

var rotator = 'ul.photoRotator a';

$(document).ready(function() {
	// accessability implementation
	$().ability();
	
	// AJAX rating
	$('form.rating').rating();
	
	// prepare tumblr images for lightbox
	$('li.tumblr_photo_post, li.tumblr_text_post').each(function(i){
		var imgSrc = $(this).find("img").attr("src");
		var imgAlt = $(this).find("img").attr("alt");
		
		if(imgSrc) {		
			$(this).find("img").after('<a href="' + imgSrc + '" class="tumblr_photo_link"><img src=' + imgSrc + ' class="tumblr_photo" alt="' + imgAlt + '" /></a>').remove();
		}
	});
	
	// use LightBox
	$('a[@rel*=lightbox]').lightBox({
		overlayBgColor: '#333',
		overlayOpacity: 0.6,
		imageLoading: 'common/images/lightbox-ico-loading.gif',
		imageBtnClose: 'common/images/lightbox-btn-close.gif',
		imageBtnPrev: 'common//images/lightbox-btn-prev.gif',
		imageBtnNext: 'common/images/lightbox-btn-next.gif',
		imageBlank: 'common/images/lightbox-blank.gif',
		containerResizeSpeed: 350,
		txtImage: 'Paveikslėlis',
		txtOf: 'iš'
   });
   
   	$('a.tumblr_photo_link').lightBox({
		overlayBgColor: '#333',
		overlayOpacity: 0.6,
		imageLoading: 'common/images/lightbox-ico-loading.gif',
		imageBtnClose: 'common/images/lightbox-btn-close.gif',
		imageBtnPrev: 'common//images/lightbox-btn-prev.gif',
		imageBtnNext: 'common/images/lightbox-btn-next.gif',
		imageBlank: 'common/images/lightbox-blank.gif',
		containerResizeSpeed: 350,
		txtImage: 'Paveikslėlis',
		txtOf: 'iš'
   });
   
    $(rotator).click(function() {
    	$(rotator).removeClass('active');
    	$(this).addClass('active');
    	var phId = $(this).attr('rel');
    	
    	var speed = 400;
    	$('div.phBlock.active').removeClass('active').fadeOut(speed - 200, function() {
			$('div#' + phId).fadeIn(speed).addClass('active');
		});
    	
   		return false;
    });

	// AJAX calendar bindings
	var eventForm = 'form#eventForm';
	var leftEventForm = 'form#leftEventForm';
	var archiveForm = 'form#newsArchiveForm';
	
	var eventUrl = $(eventForm).attr('action');
	var leftEventUrl = $(leftEventForm).attr('action');
	var archiveUrl = $(archiveForm).attr('action');
	
	var cData = 'tbody.cData';

	$(eventForm + ' select').change(
		function() {
			if($(this).is("select[name='calendarYear']")) {
				$.post(
					eventUrl, 
					{
						'reloadMonths' : true,
						'year' : $(eventForm + " select[name='calendarYear']").val()
					},
					function(data) {
		    			$(eventForm + " select[name='calendarMonth']").html(data);
					}
				);
			}
			
			$.post(
				eventUrl, 
				{ 
					'year' : $(eventForm + " select[name='calendarYear']").val(),
					'month' : $(eventForm + " select[name='calendarMonth']").val()
				},
				function(data) {
		    		$(eventForm + ' ' + cData).html(data);
		    		// remount new anchors in DOM
		    		mountEventAnchorTriggers(eventForm, eventUrl);
				}
			);
			
			
			$(eventForm + ' ' + cData).html(
				'<tr><td colspan="7" id="loading"></td></tr>'
			);
		}
	);
	
	$(leftEventForm + ' select').change(
		function() {
		
			if($(this).is("select[name='calendarYear']")) {
				$.post(
					leftEventUrl, 
					{
						'reloadMonths' : true,
						'year' : $(leftEventForm + " select[name='calendarYear']").val()
					},
					function(data) {
		    			$(leftEventForm + " select[name='calendarMonth']").html(data);
					}
				);
			}
			
			$.post(
				leftEventUrl, 
				{ 
					'year' : $(leftEventForm + " select[name='calendarYear']").val(),
					'month' : $(leftEventForm + " select[name='calendarMonth']").val()
				},
				function(data) {
		    		$(leftEventForm + ' ' + cData).html(data);
		    		// remount new anchors in DOM
		    		//mountEventAnchorTriggers(eventForm, eventUrl);
				}
			);
			
			
			$(leftEventForm + ' ' + cData).html(
				'<tr><td colspan="7" id="loading"></td></tr>'
			);
		}
	);
	
	$(archiveForm + ' select').change(
		function() {			
			if($(this).is("select[name='calendarYear']")) {
				$.post(
					archiveUrl, 
					{
						'reloadMonths' : true,
						'year' : $(archiveForm + " select[name='calendarYear']").val()
					},
					function(data) {
		    			$(archiveForm + " select[name='calendarMonth']").html(data);
					}
				);
			}
			
			$.post(
				archiveUrl, 
				{ 
					'year' : $(archiveForm + " select[name='calendarYear']").val(),
					'month' : $(archiveForm + " select[name='calendarMonth']").val()
				},
				function(data) {
		    		$(cData).html(data);
				}
			);
			
			
			$(cData).html(
				'<tr><td colspan="7" id="loading"></td></tr>'
			);
		}
	);
	
	// I think this function explains itself :)
	mountEventAnchorTriggers(eventForm, eventUrl);
	
	// AJAX validation bindings
	var dataForm = $('form.ajax');
	var dataValue = '';
	var holderName = '';
	var type = '';
	var validatorURL = $(dataForm).attr('id');
	var params = '';
	var elem = null;
	var prevVal = null;
	
	$('input.text, select, textarea', dataForm).focus(function() {
		prevVal = $(this).val();
	});
		
	$('input.text, select, textarea', dataForm).blur(function() {
		dataValue = $(this).val();
		elem = this;				
		type = $(this).attr('id');
		
		if(!type || dataValue == prevVal) { return; }
		
		holderName = $(this).attr('name');
		params = $(this).attr('alt');
		
		var parent = $(elem).parent().parent().get(0);
		
		if(prevVal && dataValue == '') {
			$(elem).removeClass('error-border');
		    $('div.error-msg', parent).hide();
		    return;
		}
		
		$('h3', parent).addClass('indicator'); 
		
		$.post(
			validatorURL,
			{ 'holder' : holderName, 'value' : dataValue, 'validator' : type, 'params' : params, 'ajaxCall' : true },
			
			function(data) {
				data = jQuery.trim(data);
				$('h3', parent).removeClass();
				
		    	if(data != '__NaN__') {
		    		// value is valid
		    		$(elem).html(data);
					
					$(elem).removeClass('error-border');
		    		$('div.error-msg', parent).hide();
		    	} else {
		    		// value is invalid
		    		$(elem).addClass('error-border');
		    		$('div.error-msg', parent).show();
		    	}
			}
		);
	});
	
	// table row hover bindings
	$('table.ad-list tr.row').hover(
		function() {
			$(this).addClass('hover');
		},
		function() {
			$(this).removeClass('hover');
		}
	)
	
	// for hiding short news
	
	$('li.tumblr_post').each(function(i){
		//if(i < 5)
			//$(this).attr("style", "display:block");

		if(i > 0) {
			var cssObj = {
				'border-top' : '1px dashed #0B6000'
			}
			$(this).css(cssObj);
		}
		
   });
		
});

function mountEventAnchorTriggers(eventForm, eventUrl) {
	$(eventForm + ' a').click(function() {
		var year = $(eventForm + " select[name='calendarYear']").val();
		var month = $(eventForm + " select[name='calendarMonth']").val();
		var day = $(this).attr('rel').substring(3);
		var anchor = $(this);
		
		$.post(
			eventUrl,
			{
				'showList' : true,
				'year' : year,
				'month' : month,
				'day' : day
			},
			function(data) {
		    	$('div#events').html(data);
		    	$('h1#eventHeader').html(year + '-' + month + '-' + day + ' dienos renginiai');
			}
		);
		
		$('div#events').html(
			'<div id="loading"></div>'
		);
		
		
		$(eventForm + ' a').removeClass('active');
		$(this).addClass('active');
		
		return false;
	});
}