$(document).ready(function() {
    init_js();
});

/* wird beim Seitenwechsel und beim reload aufgerufen */
function init_js() {
    /* Bilder via Fancybox */
    $("a.fancybox").fancybox({
        'titleShow': false
    });

    /* Galerie */
    if ($('a.fancygalerie').length) {
        $('a.fancygalerie').fancybox({
            'hideOnContentClick': false,
            'titleShow'         : false,
            'width'             : 770,
            'height'            : 600
        });
    }

    /* Zeige in Karte */
    $("a[href^='/timm/inc/map.php']").fancybox({
        'type'              : 'iframe',
        'hideOnContentClick': false,
        'titleShow'         : false,
        'width'             : 600,
        'height'            : 530,
        'padding'           : 11
    });

    /* Link auf kompletten Teaser / Highlight */
    $('#home ul li').each(function() {
        if ($('h3 a', this).length) {
            $(this).css('cursor', 'pointer');
            $(this).click(function() {
                window.location.href = $('h3 a', this).attr('href');
            });
        }
    });

    /* Nav anpassen - Ebene 1 mindestens genauso breit wie Ebene 0 */
    $('#navigation ul ul').each(function() {
        $(this).css('min-width', $(this).parent('li').width() + "px");
    });
    $('#navigation li.last ul').css('min-width', ($(this).width() + 1) + "px");

    // Ladebalken ausblenden
    hide_ladebalken();

    /* Warenkorb aktualisieren */
    $('form.cart input').change(function() {
        $('form.cart').submit();
    });

    /* Lieferadresse ein/ausblenden */
    if (!$('input#different_shipping_address').is(':checked')) {
        $('#shippingAddress').hide();
    }
    $('input#different_shipping_address').change(function() {
        // Einblenden
        if ($(this).is(':checked')) {
            $('#shippingAddress').slideDown(600);
        }

        // Ausblenden
        else {
            $('#shippingAddress').slideUp(600);
        }
    });

    /* Terminfeld bei Termineingabe ausblenden, wenn Termin nicht unbedingt nötig */
    $('input.checkAppointment:not(:checked)').parent().next('p.appointment').hide();
    $('input.checkAppointment').click(function() {
        if ($(this).attr("checked")) {
            $(this).parent().next('p.appointment').slideDown(300);
        } else {
            $(this).parent().next('p.appointment').slideUp(300);
        }
    });

    /* Datepicker */
    var day = new Date();
    day.setDate(day.getDate() + 1);
    $('input.date').datepicker({ 
        dateFormat: 'dd.mm.yy',
        minDate: day,
        dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
        monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',
                     'Juli', 'August', 'September', 'Oktober', 'November',
                     'Dezember']
    });

    /* Lageplan */
    $('#plan-items li').hover(function() {
        $('#' + $(this).attr('class')).show();
        $(this).css('font-weight', 'bold');
    }, function() {
        $('#' + $(this).attr('class')).hide();
        $(this).css('font-weight', 'normal');
    });
    $('#areas area').hover(function() {
        $('#' + $(this).attr('class')).show();
        $(this).css('font-weight', 'bold');
    }, function() {
        $('#' + $(this).attr('class')).hide();
        $(this).css('font-weight', 'normal');
    });

    /* Navigation für IE6 funktionfähig machen */
    $('#navigation li').hover(function() {
        $('ul', this).show();
    }, function() {
        $('ul', this).hide();
    });

    /* Promotion einfliegen */
    $('.home #promotion').css('opacity', 0);
    $('.home #promotion').animate({
        right: '35px',
        opacity: 1
    }, 1000);

    /* Header Animation */
    $('#headerAnimation .wrapper').hoverIntent({
        over: function() {
            $('#promotion').css('z-index', 7);
            $('.active', this).show('slow', function() {
                $('#promotion').css('z-index', 7);
            });
        },
        out: function() {
            $('#promotion').css('z-index', 9);
            $('.active', this).hide('slow');
        },
        timeout: 200,
        interval: 50
    });

    /* YouTube Links */
    $('#main p.video a').click(function() {
        var id = $(this).attr('href');
        id = id.split('http://www.youtube.com/watch?v=').join('');
        var html = '<iframe width="500" height="375" frameborder="0" src="http://www.youtube.com/embed/' + id + '?autoplay=1"></iframe>';
        $(this).parent().html(html);
        return false;
    });
    $("#sidebar p.video a").click(function() {
        $.fancybox({
            'padding'         : 0,
            'autoScale'       : false,
            'transitionIn'    : 'none',
            'transitionOut'   : 'none',
            'title'           : this.title,
            'width'           : 680,
            'height'          : 495,
            'href'            : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
            'type'            : 'swf',
            'swf'             : {
            'wmode'           : 'transparent',
            'allowfullscreen' : 'true'
            }
        });

        return false;
    });

    /* Autoausfüllen von Name bei Rechnungsadresse */
    $('#billing_name').focus(function() {
        if ($('#firstname').val() == "" || $('#lastname').val() == "") {
            return;
        }
        $(this).val($('#firstname').val() + " " + $('#lastname').val());
    });

    /* Bankdaten Formular ein-/ausblenden */
    if ($('#directDebit:checked').val()) {
        $('#directDebitData').show();
    }
    $('input[name="paymentMethod"]').change(function() {
        if ($('#directDebit:checked').val()) {
            $('#directDebitData').slideDown();
        } else {
            $('#directDebitData').slideUp();
        }
    });
}

/* Bildwechsel */
function change_galerie_img(galerie_id, img_pos) {
    cur_img = img_pos;

    // Thumbnail-Overview aktualisieren
    if (!$('#img_pos_' + img_pos).length) {
        change_page('box_galerie_thumbnails_'+galerie_id, 0, 'galerie_id='+galerie_id+'&img_pos='+img_pos, '');
    }

    // Bild laden
    $.ajax({
        url: '/include/ajax/change_galerie_img.php?galerie_id='+galerie_id+'&img_pos='+img_pos,
        success: function(data) {
            $('#content').fadeOut(200, function(){
                $('#content').empty().html(data).fadeIn(200);
            });
            $('.thumbnails a').removeClass('active');
            $('#img_pos_'+img_pos).addClass('active');
        }
    });
}

/* Seitenwechsel mit fadeIn und fadeOut */
function change_page(box, page, query_str, uri) {
    if (box) {
        if (document.getElementById('loader_'+box)) {
            show_ladebalken('loader_'+box, 0, -20);
        }
        $('#'+box).load('/include/ajax/change_page.php?box='+box+'&page='+page+'&'+query_str, {}, init_js);
    }
}

/* Ladebalken einblenden */
function show_ladebalken(box, top_offset, left_offset) {
    left_offset = -20;

    var pos  = $('body').offset().left;
    var left = $('#'+box).offset().left;
    var top  = $('#'+box).offset().top;

    var padding_top = parseInt($('#'+box).css('padding-top'));
    top_offset += padding_top;

    if (left - pos < 400) { // mitte
        $('#ajax-loader').removeClass('ajax-loader-gray');
    } else {
        $('#ajax-loader').addClass('ajax-loader-gray');
    }

    $('#ajax-loader').css('left', left + left_offset + $('#'+box).width() + 'px');
    $('#ajax-loader').css('top',  top  + top_offset  + 'px');
    $('#ajax-loader').fadeIn(100);
}

/* Ladebalken ausblenden */
function hide_ladebalken() {
    $('#ajax-loader').fadeOut(100);
}

function clear_session_submit(formular) 
{
    document.cookie = 'lgrad=0; expires=Thu, 01-Jan-70 00:00:01 GMT;';
    document.cookie = 'bgrad=0; expires=Thu, 01-Jan-70 00:00:01 GMT;';
    document.cookie = 'zoom=0; expires=Thu, 01-Jan-70 00:00:01 GMT;';

    var s = document.createElement('script');
    s.src = '/include/ajax/clear_session_page.php?formular=' + formular;
    document.getElementsByTagName('head')[0].appendChild(s);
}

function addLoadEvent(func) 
{
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

