$(function(){
	var animateHeadings = function(selector)
	{
		var headings = $(selector).addClass('action').before('<div style="height:0"/>');
		var sections = headings.next().hide();
		$('.article').delegate(selector, 'click', function(){
			var section = $(this).next();
			sections.not(section).slideUp('slow');
			section.slideToggle('slow');			
		});
	}

	var isCorrect = function(el){
		el = $(el);
		if ($.trim(el.val()) == '')
		{
			el.css('background-color', '#FFE1E1').focus();
			el.one('keydown', function(){ el.css('background-color', 'inherit'); });
			setTimeout(function(){ el.css('background-color','inherit'); }, 3000);
			return false;
		}
		return true;
	}

	switch ($('html').attr('id')){	
		case 'p-home':
		{
			var el = $('.didyouknow');
			var bag = Array();
			el.find('.database li').each(function(i){
				bag.push(Array($(this).data('importance')+1).join(i));
				// Putting n indexes i into the bag
			});
			bag = bag.join('');
			// Take a random index
			el.prepend(
				el.find('.database li').eq(bag[Math.floor(Math.random()*bag.length)]).html()
			);
		}
		case 'p-kodel':
		{
			animateHeadings('h2');
			break;
		}
		case 'p-oakley-technologijos':
		{
			var sections = $('h1+section');
			sections.each(function(){
				var me = $(this);
				me.data('height', me.height()).css('height', 0);
			});
			$('.article').delegate('h1', 'click', function(){
				var me = $(this);
				var content = me.next();
				if (me.hasClass('active'))
				{
					me.removeClass('active');
					content.css('height', 0);
				}
				else
				{
					sections.css('height', 0);
					content.css('height', content.data('height'));
					me.addClass('active');
				}
			});
			$('h1').addClass('action');
			break;
		}
		case 'p-paslaugos':
		{
			$('li.onlyGedimino').attr('title', 'Ši paslauga teikiama tik Vilniuje, Gedimino prospekte.');
			animateHeadings('h1');
			animateHeadings('h2');
			$('nav.first li:not(:has(a))').addClass('action').click(function(e){
				$('.article section').slideUp();
			});
			break;
		}
		case 'p-rasykite':
		{
			var el = $('.email');
			var anon = $('<a href="#anonimiskai" class=action tabindex=2>Siųsti anonimiškai</a>');
			el.find('small').append(' ').append(anon).append('.');
			el.append('<p class=sendIdentified>Siunčiama anonimiškai. <a href="#su-adresu" class=action tabindex=2>Nurodyti pašto adresą</a>.</p>');
			el.find('label .action').click(function(e){
				el.addClass('anonymous');
				el.parent().find('input[type="submit"]').focus();
				e.preventDefault();
			});
			el.find('.sendIdentified .action').click(function(e){
				el.removeClass('anonymous');
				el.find('[name="email"]').focus();
				e.preventDefault();
			});
			
			$(':input').css('-webkit-transition','background-color 1s');
			
			$('form').attr('novalidate', '1').submit(function(e){
				if (!isCorrect('[name="email"]')) e.preventDefault();
				if (!isCorrect('[name="msg"]')) e.preventDefault();
			});
			break;
		}
		case 'p-specialistai':
		{
			// Restructure
			$('<style>#p-specialistai dd { position: static }</style>').appendTo('head');
			$('.article dt').each(function(){
				var me = $(this);
				var id = me.attr('id');
				me.next().addClass('sp-' + id);
				me.attr('id', 'sp-' + id);
			});
			$('.article dd').appendTo('.article');


			var wip = false;

			var activate = function(id)
			{
				if (id.length < 3)
					return;
				$('dd.current').removeClass('current');
				wip = true;
				location.hash = id;
				setTimeout(function(){ wip = false; }, 100);
				$('dd.sp-' + id).addClass('current');
			}

			// Events
			// Initial
			activate(location.hash.substr(1));

			$('.article').delegate('dt', 'hover', function(){
				var id = $(this).attr('id');
				activate(id.substr(3));
			});
			$(window).bind('hashchange', function(){
				if (wip)
					return;
				activate(location.hash.substr(1));
			});
			break;
		}
	}
	
	// Photos 
	$('.photo').attr('rel', 'photo-group').fancybox({
		'overlayOpacity': 0.2
	});
	$('.photos:not(.nofancy)').each(function(i){
		$('a', this).attr('rel', 'photo-group').fancybox({
			'overlayOpacity': 0.2
		});
	});
	
	// Phones
	var data = $('#address').html();
	var link = $('<span class=action>Telefonai</span>');
	$('#address').html('').append(link);
	link.click(function(){
		$.fancybox('<h1>Telefonai</h1>'+data, {
			overlayOpacity: 0.3,
			padding: 30,
			width: 400,
			height: 300,
			autoDimensions: false
		});
	});
	$('#address').show();
});

