function setup_navigation() {
    $('.top_menu .link').mouseenter(function(){
        var menu = $(this).siblings('.menu');
    
        $('.top_menu .link_' + $(this).attr('rel')).removeClass('expanded');
        var css = '.top_menu .menu_list_' + (parseInt($(this).attr('rel'),10) + 1);
        $(css).not(menu).hide();
    
    
        /*menu.mouseleave(function() { menu.hide(); });*/
        menu.show();
        $(this).addClass('expanded');
    });
    $('#content').mouseenter(function() {
        $('.top_menu .expanded').removeClass('expanded');
        $('.top_menu .menu_list_0 .menu').hide();
    });
}

function setup_homepage_banner() {
    var slides = $('.slides .slide');

    //var thumbs = $('<div class="thumbs"></div>');
    var thumbs = $('.thumbs');
    var i = 0;
    slides.each(function() {
        var slide = $(this);
        var rel = slide.attr('rel');
        var thumb_html = "<img class='thumb' src='" + rel + "' rel='" + i + "'/>";
        var slide_link = slide.find('a').first();
        var thumb_href = "#";
        if (slide_link.length > 0) {
            thumb_href = $(slide_link).attr('href');
        }
        thumb_html = "<a href='" + thumb_href + "'>" + thumb_html + "</a>";
        var thumb = $(thumb_html);
        thumb.find('img').mouseenter(function() {
            var el = $(this);
            $('.slides .active').removeClass('active');
            $('.slides .slide').fadeOut('fast');
            $('.slides .slide:nth(' + el.attr('rel') + ')').fadeIn('fast');
            $(this).addClass('active');
        });
        
        if (i % 5 == 0) {
            thumbs.find('.items').append('<div class="page"></div>')
        }
        
        thumbs.find('.items div:last').append(thumb);
        i += 1;
    });
    
    thumbs.find('.scrollable').scrollable({'circular':true});
    slides.slice(1).hide();
}

function setup_homepage_products() {
    var products = $('.product_list .product');

    var wrapped_products = Array();
    for(var i = 0; i < products.length; i += 4) {
        wrapped_products.push(products.slice(i, i+4));
    }
    
    var points = $("<div class='points'></div>");
    
    $.each(wrapped_products, function(index, page_products) {
        $('.product_list').append('<div class="page"></div>');

        
        points.append("<a class='point' href='#' rel='" + index + "'></a>");
        
        var page = $('.product_list').find('.page:last');
        $.each(page_products, function(index, page_product) {
            $(page_product).appendTo(page);
        });
        
    });
    $('#products').append(points);
    $('#products').append('<a href="#" class="prev">prev</a>');
    $('#products').append('<a href="#" class="next">next</a>');
    var scrollable = $('#products .product_container').scrollable({
        circular: true,
        onSeek: function() {
            points.find('.selected').removeClass('selected');
            points.find('a:nth(' + scrollable.data('scrollable').getIndex() + ')').addClass('selected');
        }
    });
    
    points.find('a').click(function() {
        scrollable.data('scrollable').seekTo($(this).attr('rel'));
        points.find('.selected').removeClass('selected');
        $(this).addClass('selected');
    });
    
    points.css('margin-left', -1 * (points.width() / 2));
    points.find('a:first').addClass('selected');
}

function manage_partners_combox() {
    $('#id_country optgroup').removeAttr('disabled');
    
    var region = $("#id_region").find(':selected').text();
    
    if (region == "Any region") {
        $('#id_country optgroup').show();
    }
    else {
        $('#id_country').val('None');
        $('#id_country optgroup[label!="' + region + '"]').attr('disabled','disabled');
        $('#id_country optgroup:first').show();
        $('#id_country optgroup[label="' + region + '"]').removeAttr('disabled');
        $('#id_country optgroup:first').removeAttr('disabled');
    }
}

function setup_search_partners() {
    manage_partners_combox();

    $("#id_region").change(function() {
         manage_partners_combox();
    });

    var partners = $('.partners_search .partner');

    var wrapped_partners = Array();
    for(var i = 0; i < partners.length; i += 3) {
        wrapped_partners.push(partners.slice(i, i+3));
    }
    
    var pages = $("<div class='pagination'></div>");
    
    $.each(wrapped_partners, function(index, page_partners) {
        $('.partners_search').append('<div class="page"></div>');

        
        pages.append("<a class='page' href='#' rel='" + index + "'>" + (index + 1) + "</a>");
        
        var page = $('.partners_search').find('.page:last');
        $.each(page_partners, function(index, page_partner) {
            $(page_partner).appendTo(page);
        });
        
    });
    $('.partners_search').parent().append(pages);
    
    pages.find('a').click(function() {
        //scrollable.data('scrollable').seekTo($(this).attr('rel'));
        pages.find('.selected').removeClass('selected');
        $(this).addClass('selected');
        $('.partners_search').find('.page').hide();
        $('.partners_search').find('.page:nth(' + $(this).attr('rel') + ')').show();
    });
    
    pages.find('a:first').addClass('selected');
    
    $('.partners_search').find('.page:gt(0)').hide();
}

function fix_zindex(elements, zIndexNumber) {
    zIndexNumber = (zIndexNumber === undefined) ? 10000 : zIndexNumber;
    elements.each(function() {
        $(this).css('zIndex', zIndexNumber);
        zIndexNumber -= 10;
    });
}


function handle_tts_player() {
    $('.audioplayer').each(function() {
        var href = $(this).attr('href');
        $(this).wrap('<div class="dewplayer"></div>');
        var player_container = $(this).parent();
        player_container.empty();
        player_container.flashembed({
            src: MEDIA_URL + "swf/dewplayer.swf",
            width: '200px',
            height: '20px'
        }, {
        	mp3: href
        });
    });
}

function handle_tts_player_html5() {
    $('.jp-single-player').show();
    $('.audioplayer').each(function() {
        var href = $(this).attr('href');
        $(this).parent().append('<div class="jplayer" rel="' + href + '"></div>');
        $(this).remove();
    });
    $('.jplayer').each(function() {
        var id = $(this).parents('.tts_language').attr('rel') + "" + $(this).parents('.tts_audio').attr('rel');
        var jpPlayTime = $("#jplayer_play_time_" + id);
        var jpTotalTime = $("#jplayer_total_time_" + id);
        var href= $(this).attr('rel');
        $(this).jPlayer({
            nativeSupport: true, 
            swfPath: MEDIA_URL + "js/jplayer/",
            customCssIds: true,
            ready: function () {
                this.element.jPlayer("setFile", href);
            }
        })        
        .jPlayer("cssId", "pause", "jplayer_pause_" + id)
        .jPlayer("cssId", "play", "jplayer_play_" + id)
        .jPlayer("cssId", "stop", "jplayer_stop_" + id)
        .jPlayer("cssId", "loadBar", "jplayer_load_bar_" + id)
        .jPlayer("cssId", "playBar", "jplayer_play_bar_" + id)
        .jPlayer("cssId", "volumeMin", "jplayer_volume_min_" + id)
        .jPlayer("cssId", "volumeMax", "jplayer_volume_max_" + id)
        .jPlayer("cssId", "volumeBar", "jplayer_volume_bar_" + id)
        .jPlayer("cssId", "volumeBarValue", "jplayer_volume_bar_value_" + id)
        .jPlayer("onProgressChange", function(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {
        	jpPlayTime.text($.jPlayer.convertTime(playedTime));
        	jpTotalTime.text($.jPlayer.convertTime(totalTime));
        });
    });
}

$(document).ready(function(){

    setup_navigation();
    setup_homepage_banner();
    setup_homepage_products();
    setup_search_partners();
    
    /*
    $('.tts_audio').oiplayer({
        flash: MEDIA_URL + 'oiplayer/plugins/flowplayer-3.2.5.swf',
    });
    */
    
    var deviceAgent = navigator.userAgent.toLowerCase();
    var agentID = deviceAgent.match(/(iphone|ipod|ipad)/);
    if (agentID) {
        handle_tts_player_html5();
    } else {
        handle_tts_player();
    }
    
    if ($.browser.msie) {
        fix_zindex($('div'));
        fix_zindex($('.thumbs'), 100000);
        
        var settings = {
          tl: { radius: 5 },
          tr: { radius: 5 },
          bl: { radius: 5 },
          br: { radius: 5 },
          antiAlias: true
        }
        curvyCorners(settings, ".col_700 .box");
        curvyCorners(settings, ".col_520 .box");
        
        // fix banner
        if ($('.banner img').length == 0) {
            $('.banner').height(20);
        }
    }
});
