 
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);
        });
    });
    
    // Don't send "autoclear" inputs with default value
    $('FORM').submit(function() {
    	$('.autoclear-default', 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');
    });

	// Text input "placeholder" functionality for old browsers
    $('INPUT.autoclear, TEXTAREA.autoclear').each(function() {
        $(this).attr('title', $(this).val()).addClass('autoclear-default');
    }).focus(function() {
        if ($(this).val() == $(this).attr('title')) $(this).val('').removeClass('autoclear-default');
    }).blur(function() {
        if ($(this).val() == '') $(this).val($(this).attr('title')).addClass('autoclear-default');
    });
    
    // Text input autosuggest
    
    $('#results').hide();
    
    $('INPUT.autosuggest').keyup(function() {
    	if ($(this).val().length > 0) {
    		var form = this.form;
	    	var url = $(this).data('autosuggest-url');
	    	var select = $('select', form);
	    	if (select.val() == "") select.attr('disabled', true);
	    	var query = $(form).serialize();
	    	select.attr('disabled', false);
	    	$.get(url, query, function(response) {
	    		$('#results').show();
	    		$('#results').html(response);
	    	});
		}
    });
    $('#results').hover(
    	function(){
    	
    	},
    	function(){
    	$(this).fadeOut();
   	});

    
    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');
}
