var URL = getURL();
function getURL() {
    var metas = document.getElementsByTagName('meta');
    for (var i = 0; i < metas.length; i++) if (metas[i].getAttribute('name') == 'url') break;
    return metas[i].getAttribute('content');
}


Cufon.replace('.page .lnk, #pageSplash h1', {fontFamily: 'HeliosLight'});


$(function(){
    initMap();
    initCarousel('.images', 1);
    initGallery('.awards a');
    initSubmit('.submit input');
    initFeedback('.feedback form');
    initAuthModal();
    initDateSelect('.date-select');
});


// initMap
function initMap() {
    var lang = $('#mapFlash').attr('class');
    swfobject.embedSWF(URL+'swf/map.swf', 'mapFlash', '596', '400', '9.0.0', URL+'swf/expressInstall.swf', {data: URL+'swf/flash_data/data_'+lang+'.xml', callback: 'mapCitySelect'}, {wmode: 'opaque'});
    $('#cities a').click(function(){
        var id = $.url.setUrl(this.href).attr('anchor');
        mapCitySelect(id);
    });
}


// mapCitySelect
function mapCitySelect(id) {
    $('#cities a').removeClass();
    if(id >= 0) {
        $('#city'+id).addClass('a');
        document.mapFlash.select(id);
        window.location = '#'+id;
    }
}


// initCarousel
function initCarousel(selector, visibleNum) {
    var obj = $(selector);
    var items = $('.carousel li', obj);
    var itemsTotal = items.length;
    if (itemsTotal > visibleNum) {
        $('.nav', obj).show();
        var carousel = $('.carousel', obj);
        var status = $('.nav span', obj);
        carousel.jCarouselLite({
            btnPrev: selector + ' .prev',
            btnNext: selector + ' .next',
            visible: visibleNum,
            circular: true,
            mouseWheel: true,
            afterEnd: function(a) {
                status.text(a.attr('class').substr(3) + ' / ' + itemsTotal);
            }
        }).bind('mousewheel', function(){
            return false;
        });
        timedNext($(selector + ' .next'));
    }
}
function timedNext(obj) {
    var t = setTimeout(function(){obj.trigger('click'); timedNext(obj)}, 5000);
}


// initGallery
function initGallery(selector) {
    $(selector).fancybox({
        padding: 0,
        hideOnContentClick: false
    });
}


// initSubmit
function initSubmit(selector) {
    $(selector).hover(
        function(){
            $(this).prev().addClass('hover');
        },
        function(){
            $(this).prev().removeClass('hover');
        }
    );
}


// initFeedback
function initFeedback(selector) {
    var form = $(selector);
    form.submit(function(){
        var field = $('[name="data[Msg]"]');
        if (field.val() == '') {
            var label = $('label[for="'+field.attr('id')+'"]');
            label.addClass('error');
            field.addClass('error').keyup(function(event){
                if (field.val() != '') {
                    label.removeClass('error');
                    field.removeClass('error');
                }
            });
            return false;
        }
    });
}


// initAuthModal
function initAuthModal() {
    var a = $('#authModalTrigger');
    a.attr('href', a.attr('href')+'#authModal').fancybox({
        padding: 0,
        frameWidth: 400,
        frameHeight: 150,
        hideOnContentClick: false,
        callbackOnShow: function(){
            $('#fancy_wrap input[name="login"]').focus();
        }
    });
}


// initDateSelect
function initDateSelect(selector) {
    var form = $(selector);
    $('select', form).change(function(){
        var dateUrl = $('input[name="Date_Url"]', form).val();
        var dateYear = $('select[name="Date_Year"] option:selected', form).val();
        var dateMonth = $('select[name="Date_Month"] option:selected', form).val();
        dateUrl += dateYear;
        if ($(this).attr('name') == 'Date_Month' && dateMonth) {
            dateUrl += '-' + dateMonth;
        }
        dateUrl += dateYear ? '/' : '';
        document.location = dateUrl;
    });
}

//Init Google analytic
var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-20171970-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
