
Cufon.replace('#slogan', { textShadow: 'rgba(0, 0, 0, .5) 1px 1px 5px' });

var lang = '';
var i18n = {
	click_pointer: {
		'fi': 'Näet kohteen tiedot klikkaamalla ikonia kartalla.',
		'en': 'Click the pointer on the map to see more info.',
		'se': 'Klicka på markeringen på kartan för att se mer info.'
	},
	close: { 'fi': 'Sulje', 'en': 'Close', 'se': 'Stäng' },
	or_press_esc: { 'fi': ' tai paina ESC', 'en': ' or press ESC', 'se': ' eller trycka på ESC' }
};

$(document).ready(function() {

	lang = $('META[name=language]').attr('content') || 'en';

	$('#content .column-side').height($('#content').height());  // ugly hack

	/* IE6 */
	if ($.browser.msie && parseFloat($.browser.version) < 7) {
	
		/* Main navigation dropdown */
		$('#nav-main > LI').hover(function() {
			$('IMG.hilite', this).show();
			$('UL', this).show();
			$('#content SELECT').css('visibility', 'hidden');
		}, function() {
			$('IMG.hilite', this).hide();
			$('UL', this).hide();
			$('#content SELECT').css('visibility', 'visible');
		});
		
		$('BODY.tourism .news_archive')
			.css('top', $('.column-main').height() + $('.column-main').offset().top + 10)
			.show();
	}

	/* IE7 */
	if ($.browser.msie && parseFloat($.browser.version) < 8) {

		$('LI:first-child').addClass('first-child');
		$('LI:last-child').addClass('last-child');
		$('#banner-bar .section:first-child').addClass('section-first');		
		$('#banner-bar .section:last-child').addClass('section-last');		
		$('TABLE TR:nth-child(odd)').addClass('nth-child-odd');
		$('TABLE TD:first-child').addClass('first-child');
		$('TABLE TH:first-child').addClass('first-child');
		$('.separated-inlines :first-child').addClass('first-child');
		$('.separated-inlines :last-child').addClass('last-child');
	}

	$('.list-on-map').click(function() {
		$(this).removeClass('clickable').addClass('note').text(i18n.click_pointer[lang]);
		var map = new GMap2($('#big-map').show().get(0));
		map.setCenter(new GLatLng(60.2050655, 24.654196), 10);
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		
		$('UL .popup-map').each(function() {
			var item = $(this).parents('LI:first');
			var title = $('H2', item).text();
			var url = $('H2 A', item).attr('href');
			var m_coords = this.className.match(/coords-([^ ]+)/);
			if (m_coords && m_coords.length > 0) {
				var coords = m_coords[1].split('-');
				var point = new GLatLng($.trim(coords[0]), $.trim(coords[1]));
				var marker = new GMarker(point, { title: title } );
				
				GEvent.addListener(marker, 'click', function(e) {
					var info = $('.contact DIV', item).clone()
						.addClass('gmap-info-window')
						.prepend('<strong><a href="' + url + '">' + title + '</a></strong><br/>');
					marker.openInfoWindow(info.get(0));
				});
				
				map.addOverlay(marker);
			}
		
		});
	});

	$('.popup-map').click(function(e) {

		var draw_map = function(point, container) {
			var map = new GMap2(container);
			map.setCenter(point, 15);
			map.addOverlay(new GMarker(point));
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());
		}
				
		if (GBrowserIsCompatible()) {
			
			var popup_id = 'popup-map-' + $(this).parents('LI:first').attr('id');
			var popup = $('#' + popup_id);

			if (popup.length == 0) {
				popup = $(document.createElement('div'))
					.attr('id', popup_id)
					.css('top', $(this).offset().top + 25 + 'px')
					.css('left', $(this).offset().left - 115 + 'px')
					.addClass('popup-map')
					.appendTo('body');
		
				// Use predefined coordinates for map
				var m_coords = this.className.match(/coords-([^ ]+)/);
				if (m_coords && m_coords.length > 0) {
					var coords = m_coords[1].split('-');
					var point = new GLatLng($.trim(coords[0]), $.trim(coords[1]));
					draw_map(point, popup.get(0));
				} else {
					// Query coordinates using address
					var m_addr = $(this).attr('href').match(/q=(.+)/);
					if (m_addr && m_addr.length > 0) {
						var geocoder = new GClientGeocoder();
						geocoder.getLatLng(addr.value, function(point) {
							draw_map(point, popup.get(0));
						});
					} else return true;  // invalid coordinates
				}
			}

			$('.open, .close', this).toggle();
			popup.css('display', $('.close', this).css('display'));
			e.preventDefault();
		}
		
	});	
	
	$('FORM.auto-submit SELECT').change(function() {
		$(this.form).submit();	
	});

	// Don't send empty fields
	$('FORM.skip-empty').submit(function() {
		$(':input', this).each(function() {
			if ($(this).val() == '') $(this).attr('disabled', true);
		});
	});
	
	$('FORM.listing-filter .check-all').click(function() {
		$('INPUT[type=checkbox]', $(this).parents('FIELDSET:first')).attr('checked', true);
	});

	$('FORM.listing-filter .check-none').click(function() {
		$('INPUT[type=checkbox]', $(this).parents('FIELDSET:first')).attr('checked', false);
	});
	
	// Open external links into new window
	$('A[href^=http://], A[href^=https://]').not('A.internal').each(function() {
		$(this).attr('target', '_blank');
	});
	
	// Open print dialog if print=1 GET parameter given
	if (window.location.href.search(/[&\?]print=1/) != -1)
		window.print();

	// De-obfuscate emails
	$('A[href^=mailto:][href$=.example.com]').each(function() {
		var email = $(this).attr('href').substr(7).split('').reverse().join('').substr(12);
		$(this).attr('href', 'mailto:' + email);
		if ($(this).text().indexOf('@') == -1 && ! $(this).hasClass('keep-text'))
			$(this).text(email);
	});
	
	if (window.history.length > 1)
		$('.back').css('visibility', 'visible')
			.click(function() { window.history.go(-1); });

	// Restore selected OPTION from GET parameters
	$('FORM.preselect SELECT').each(function() {
		var re = new RegExp('[&?]' + $(this).attr('name') + '=([^&]*)');
		var m = document.location.href.match(re);
		if (m && m.length > 0)
			$(this).val(m[1]);
	});

	// Restore checkbox values from GET parameters
	$('FORM.preselect INPUT[type=checkbox]').each(function() {
		var re = new RegExp('[&?]' + RegExp.escape($(this).attr('name')) + '=' + RegExp.escape($(this).attr('value')));
		var m = re.exec(decodeURI(window.location.href))
		if (m && m.length > 0)
			$(this).attr('checked', 'checked');
	});
	
	var carousel_head = new Carousel('#header .carousel', 5000, 1000);
	$('.column-side .section-calendar A IMG:last-child').addClass('last-child');  // corner mask
	var carousel_cal = new Carousel('.column-side .section-calendar A', 5000, 1000, 'IMG[src$=.jpg]');

	$('.column-side .section .animated').each(function() {
		var carousel_sidecol = new Carousel('#' + $(this).attr('id'), 5000, 1000, '.photo');
	});

	$('.doc-front .grid A[href=/kilpailu]').attr('target', '_blank');
});

RegExp.escape = function(text) {
	if (!arguments.callee.sRE) {
		var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
		arguments.callee.sRE = new RegExp('(\\' + specials.join('|\\') + ')', 'g');
	}
	return text.replace(arguments.callee.sRE, '\\$1');
}
