$(document).ready(function() {

    $('.bookmark').click(function() {
        var url = location.href;
        url = url.replace("#", "");
        var title = document.title;
        if ((navigator.appName == 'Microsoft Internet Explorer') && (parseInt(navigator.appVersion) >= 4)) {
            window.external.AddFavorite(url, title);
        } else if (navigator.appName == 'Netscape') {
            window.sidebar.addPanel(title, url, '');
        } else {
            alert('Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark');
        }
        return false;
    });


    $('.printer').click(function() {
        window.print();
        return false;
    });

    $('.oneclick-dropdown').change(function() {
        window.location.href = $(this).val();
    });

    $('.login-button').hover(function() {
        if (loginopened)
            closelogin();
        else openlogin();
    });

    $('.tab-nav ul li a').click(function() {
        $('.tab-nav ul li a').removeClass('selected');
        $(this).addClass('selected');
        $('.tabs-container div').hide();
        $('#' + $(this).attr('rel')).show();
        return false;
    });

    $('#additional-options').click(function() {
        $('#additional-data').slideToggle(1000, function() {
            var text = $('#text-know').html();
            $('#text-know').html($('#showopt').html());
            $('#showopt').html(text);
            $('#arrow-blue').toggleClass("arrow-blue-up");
        });

        return false;
    });

});

var loginopened = false;
function openlogin() {
    $('.login-button a').addClass("selected");
    $('.login-button ul').show();
    loginopened = true;
}
function closelogin() {
    $('.login-button a').removeClass("selected");
    $('.login-button ul').hide()
    loginopened = false;
}

function updatePaging(page) {
    updatePaging(page, null);
}

function updatePaging(page, id) {

    var str = "";
    if (id != null) {
        str = "-" + id;
    }
    $(".paging" + str).html($("#paging-box" + str).html());
    $(".hits" + str).html($("#numberOfHitsMessage" + str).html());
    $(".page-" + page + str).addClass("selected");
    if (page == 1) {
        $(".paging-prev" + str).addClass("disabled");
        $(".paging-prev" + str).attr("href", "javascript:void(0);");
    } else {
        $(".paging-prev" + str).removeClass("disabled");
        $(".paging-prev" + str).attr("href", "javascript:loadContent('" + (parseInt(page) - 1) + "','" + id + "');");
    }

    var numberOfHits = $("#numberOfHits" + str).html();
    var itemsPerPage = $("#itemsPerPage" + str).html();

    if (numberOfHits / itemsPerPage < page) {
        $(".paging-next" + str).addClass("disabled");
        $(".paging-next" + str).attr("href", "javascript:void(0);");
    } else {
        $(".paging-next" + str).removeClass("disabled");
        $(".paging-next" + str).attr("href", "javascript:loadContent('" + (parseInt(page) + 1) + "','" + id + "');");
    }
}

jQuery.fn.center = function () {
    this.css("position", "absolute");
    this.css("top", $(window).scrollTop() + 20 + "px");
    if ($(window).width() < 666) {
        this.css("left", "0px");
    } else {
        this.css("left", ($(window).width() - 666 ) / 2 + "px");
    }
    return this;
}


var globalId;
var globalGroupId;
function openImage(groupid, id) {
    var url = $("#image-enlarge-link").html();
    globalId = id;
    globalGroupId = groupid;
    $.ajax({
        type: 'POST',
        url:url,
        success: function(value) {
            $('#theshadow').html(value);

            showImage(groupid, id);

            $('#theshadow').css("height", $(document).height());
            $('#theshadow').css("width", $(document).width());
            $('#theshadow').fadeIn(1000, function() {
                $('#shadow-container').show();
                $('#shadow-container').center();
                $('#shadow-container').fadeIn(1300, function() {
                });
            });
        }});
}

function displayNextButton(groupid, id) {
    if (isNaN(id)) {
        $(".arrow-white-big-left").hide();
        $(".arrow-white-big-right").hide();
    } else {
        if (id == 1) {
            $(".arrow-white-big-left").hide();
        } else {
            $(".arrow-white-big-left").show();
        }
        var length = $("#foundItemsPerPage-" + groupid).html();
        if (isNaN(length) || length == id) {
            $(".arrow-white-big-right").hide();
        } else {
            $(".arrow-white-big-right").show();
        }
    }
}

function showImage(groupid, id) {
    displayNextButton(groupid, id);

    var imageUrl = $("#image-preview-no" + groupid + "-" + id).text();
    if (imageUrl != null) {
        $('#image').attr("src", imageUrl);
        $('#image').show();

        var fullSizeImage = $("#image-no" + groupid + "-" + id).text();
        if (fullSizeImage != "") {
            $('#full-download').attr("href", fullSizeImage);
            $('#full-download').show();
        }
    }
}

function closeShadow() {
    $('#theshadow').fadeOut(200, function() {
        $('#shadow-container').hide();
    });
}

function nextImage() {
    globalId++;
    showImage(globalGroupId, globalId);
}

function previousImage() {
    globalId--;
    showImage(globalGroupId, globalId);
}

$.extend({
    getUrlVars: function() {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },
    getUrlVar: function(name) {
        return $.getUrlVars()[name];
    }
});

String.prototype.startsWith = function(str) {
    return (this.match("^" + str) == str)
}

/**
 * Ändert die URL mit den angebenen Parameter
 * @param parameters {key1:value1,key2:value2}
 */
function updateParam(parameters) {
    // Parameter in URL aendern
    var url = window.location.href;
    var base = url.split('?')[0];
    var param = "";

    // Parameter aufbauen
    for (var key in parameters) {
        var value = parameters[key];
        if (key && value) {
            param += '&' + key + '=' + encodeURI(value);
        }
    }

    if (param.startsWith('&')) {
        param = param.substring(1, param.length);
    }

    if (param) {
        url = base + '?' + param;
    } else{
        url = base;
    }

    if ('replaceState' in history) {
        history.replaceState(null, document.title, url);
    }

}


