
$(document).ready(function(){

    /*** Allgemeine Funktionen Start ***/

    $('.imagelink,.button,.button_big,.submit').mouseover(function() {
        var height = $(this).innerHeight();
        $(this).css('backgroundPosition', '0px -' + height + 'px');
    });

    $('.imagelink,.button,.button_big,.submit').mouseout(function() {
        $(this).css('backgroundPosition', '0px 0px');
    });

    /*** Allgemeine Funktionen Ende ***/

    /*** Gallerie-Funktionen Start ***/

    var currentPage = 1;
    var maxPage = null;
    var currentEcards = new Array();
    var sort_by = $('select[name|=sort_by]').val();
    var search_for = $('input[name|=search]').val();

    var default_img_src = "public/gfx/blank.gif";

    var fb_url = $('#fb_url').val();
    var fb_title = $('meta[name=title]').attr('content');
    var fb_share_url = 'http://www.facebook.com/share.php';

    updateScreen();

    $('#NextPage').click(function() {
        currentPage += 1;

        if(currentPage > maxPage)
            currentPage = maxPage;

        updateScreen();
    });

    $('#PrevPage').click(function() {
        currentPage -= 1;

        if(currentPage < 1)
            currentPage = 1;

        updateScreen();
    });

    $('select[name=sort_by]').change(function() {
        sort_by = $(this).val();
        updateScreen();
    });

    $('input[name|=submit]').click(function() {
        search_for = $('input[name=search]').val();
        currentPage = 1;
        updateScreen();
    });

    $('.ecard_tn_panel').click(function () {
        var index = $(this).attr('id').substr(6);
        var currentecard = currentEcards[index];
        changeEcard(currentecard);
        
        // einmal angesehen hochzählen
        var call_file_increase = "index.php?action=increasePopularity"
                      + "&ecard_id=" + currentecard.id;

        $.getJSON(call_file_increase, function(data) {
            if(data.status)
            {
                //if(data.status != 'true')
            }
        });
    });

    function changeEcard(currentecard)
    {
        $('#MainPic').parent().addClass('loading');
        $('#MainPicTitle').html('');
        $('#MainPic').fadeOut('fast', function() {
            checkEcardLoading(currentecard);
        });
    }

    function checkEcardLoading(currentecard) {

        if(currentecard.image.complete) {
            showEcard(currentecard);
            return;
        }

        setTimeout(function(){
            checkEcardLoading(currentecard)
        }, 50);
    }

    function showEcard(currentecard)
    {
        // Ladeanimation
        $('#MainPic').parent().removeClass('loading');

        // Daten der Seite ändern
        $('#MainPicTitle').html('Ecard #' + currentecard.id + ' von ' + currentecard.nickname);

        var curr_src = currentecard.image.src;

        if(currentecard.image.height <= 0 || currentecard.image.width <= 0)
            curr_src = default_img_src;

        $('#MainPic').attr('src', curr_src);
        $('#MainPic').attr('alt', 'E-Card by ' + currentecard.nickname);

        $('#SendAgain').attr('href', '?action=form&ecardfile=' + currentecard.ecard);
        $('#Reuse').attr('href', '?action=index&ecardfile=' + currentecard.ecard);

        var current_fb_url = fb_share_url + "?u=" + escape(fb_url + currentecard.id) + "&t=" + escape(fb_title);

        $('#fb_share').attr('href', current_fb_url);

        // Einblenden
        $('#MainPic').fadeIn('fast');
    }

    function updateScreen()
    {
        $('.no_ecards_found').hide();

        $('.ecard_tn_panel').addClass('loading');

        $('.ecard_tn').fadeOut('fast');

        var call_file = "index.php?action=getEcardsPerPage"
                      + "&page=" + currentPage
                      + "&sort_by=" + escape(sort_by)
                      + "&search_for=" + escape(search_for);

//        alert(call_file);
        $.getJSON(call_file, function(data) {
            if(data.ecards) {
                currentEcards = data.ecards;

                // Preloading the images
                for(var i = 0; i < currentEcards.length; i++)
                {
                    currentEcards[i].image_tn = new Image();
                    currentEcards[i].image_tn.src = 'eCards/thumbNails/' + currentEcards[i].ecard;

                    currentEcards[i].image = new Image();
                    currentEcards[i].image.src = 'eCards/' + currentEcards[i].ecard;
                }

                $('.ecard_tn').each(function(index, elem) {
                    if(currentEcards[index]) {
                        $(elem).parent().show();
                        $(elem).parent().attr('id', 'ecard_' + index);
                    } else {
                        $(elem).parent().hide();
                    }
                });

                checkThumbnailLoading();
                changeEcard(currentEcards[0]);
            } else {
                $('.ecard_tn').parent().hide();
                $('.no_ecards_found').show();
            }

            if(data.pagedata) {
                var pagedata = data.pagedata;

                if(pagedata.currentpage != null)
                    currentPage = parseInt(pagedata.currentpage);

                if(pagedata.maxpage != null)
                    maxPage = parseInt(pagedata.maxpage);
            }

           

            $('.page').html(currentPage + ' / ' + maxPage);

        });
  
    }

    function checkThumbnailLoading()
    {
        var allImagesLoaded = true;
        for(var i = 0; i < currentEcards.length; i++)
        {
            if(!currentEcards[i].image_tn.complete)
                allImagesLoaded = false;
        }

        if(allImagesLoaded) {
            showThumbnails();
            return;
        }
        setTimeout(checkThumbnailLoading, 50);
    }

    function showThumbnails()
    {
        var elems = $('.ecard_tn');
        for(var i = 0; i < currentEcards.length; i++) {
            $(elems[i]).parent().removeClass('loading');
            $(elems[i]).css('backgroundImage', 'url(' + currentEcards[i].image_tn.src + ')');
            $(elems[i]).fadeIn('fast');
        }
    }

    /*** Gallerie-Funktionen Ende ***/

    /*** Formular-Seite-Funktionen Start ***/

    $('#BtnSend').click(function(){

        $('#ok_button').show();

        var form_ok = true;

        if($('input[name=nickname]').val().length <= 0) {
            form_ok = false;
            $('#no_input').show();
        }

        if( $('input[name=email]').val().length <= 0
            || $('input[name=email]').val().indexOf("@") <= 0
            || $('input[name=email]').val().indexOf(".") <= 0 )
        {
            form_ok = false;
            $('#wrong_mail_address').show();
        }

        var receiver_value = $('input[name=receiver]').val();
        var receivers = receiver_value.split(",");
        var wrong_receivers = '';
        $(receivers).each(function(){
            var result = this.match(/.*@.*\..{2,4}/i);
            if(result == null)
            {
                form_ok = false;
                $('#wrong_mail_address').show();
                wrong_receivers += this + ', ';
            }
        });

        if($('#form_message').val().length <= 0) {
            form_ok = false;
            $('#no_input').show();
        }

        if($('#form_newsletter').attr('checked') == true) {

            if($('input[name=age]').val().length <= 0) {
                form_ok = false;
                $('#no_input').show();
            }

            if($('select[name=country]').val().length <= 0) {
                form_ok = false;
                $('#no_input').show();
            }

        }

        if(form_ok) {
            $('form[name=sendform]').submit();
        } else {
            $('#Messages').fadeIn('fast');
        }

    });

    $('#form_newsletter').click(function() {
        if($(this).attr('checked') == true)
        {
            $('.for_newsletter').slideDown();
        } else {
            $('.for_newsletter').slideUp();
        }
    });

    $('#ok_button').click(function() {
        $('#Messages').fadeOut('slow', function(){
            $('#Messages').children().hide();
        });
    });

    /*** Formular-Seite-Funktionen Ende ***/

});



