var default_de_url  = '#german|galleries';
var default_com_url = '#english|galleries';

$(function() {
      $.History.bind(url_dispatch);

      if (window.location.hash == '') {
          var url = window.location.href;

          if (url.indexOf('.com') > 0)
              window.location.href = default_com_url;
          else
              window.location.href = default_de_url;
      }
  });

var url_suffix = '';

function url_dispatch(state)
{
    state = decodeURI(state);

    match = /^([^|]+)\|gallery\|([^|]+)$/.exec(state);
    if (match != null) {
        url_suffix = '|' + match[2];

        show_language(match[1]);
        show_category('gallery', match[2]);

        $('#back').show();
    }
    else {
        url_suffix = '';

        match = /^([^|]+)\|([^|]+)$/.exec(state);
        if (match == null) {
            window.location.href = default_url;
        }
        else {
            show_language(match[1]);
            show_category(match[2]);
        }
        $('#back').hide();
    }
}

function select_language(language)
{
    window.location.href = '#' + language + '|' + selected_category + url_suffix;

    return false;
}

function select_category(category)
{
    window.location.href = '#' + selected_language + '|' + category;

    return false;
}

var selected_language = 'german';

function show_language(lang)
{
    if (lang != selected_language) {
        $('.' + selected_language).hide();
        $('.' + lang).show();

        selected_language = lang;
    }
    $('.language-select').addClass('inactive');
    $('#language-' + selected_language).removeClass('inactive');

    return false;
}


var selected_category = false;

function show_category(category, data)
{
    if (category == 'galleries') show_galleries();
    else if (category == 'gallery') show_gallery(data);

    $('.category, .content-heading').hide();
    $('.' + category).show();

    selected_category = category;

    return false;
}


function set_navi(suffix)
{
    $('#navi-image').attr('src', 'image/navi' + suffix + '.png');

    $('.navi-text').hide();
    if (suffix != '') $('.navi' + suffix).show();
}


var galleries = false;

function get_galleries()
{
    if (!galleries) galleries = $.evalJSON($.ajax({url: 'data.php', dataType: 'text', async: false}).responseText);
}

function get_gallery(name)
{
    return $.evalJSON($.ajax({url: 'data.php', data: { 'gallery': name }, dataType: 'text', async: false}).responseText);
}

function show_galleries()
{
    get_galleries();

    draw_galleries('german', 0);
    draw_galleries('english', 1);
}

function draw_galleries(lang, index)
{
    var html = '';

    jQuery.each(galleries,
                function(dir, value) {
                    html += ('<a href="#' + selected_language + '|gallery|' + dir + '">' +
                             '<div class="gallery-summary">' +
                             '<img class="thumb" src="thumb/' + value[2] + '" />' +
                             '<div class="name">' + value[index] + '</div>' +
                             '</div></a>');
                });

    $('#body-galleries .' + lang).html(html);
}

function show_gallery(name)
{
    var html = '';

    jQuery.each(get_gallery(name),
                function() {
                    html += ('<a href="' + this + '">' +
                             '<div class="photo-summary">' +
                             '<img class="thumb" src="thumb/' + this + '" />' +
                             '</div></a>');
                });

    get_galleries();

    var entry = galleries[name];

    $('#body-gallery .shared').html(html);
    $('#body-gallery .shared a').lightBox();

    $('#gallery-heading .german').text(entry[0]);
    $('#gallery-heading .english').text(entry[1]);
}






//----
// - cache last photo-list
// - slide-show
// - in gallery-view: back-button



