/**
 * UTB Site Javascript
 * Stand: 2011-10-10 15:04:48
 */
jQuery.noConflict();

jQuery(document).ready(function($) {
    // Höhe des Blätter-Elementes anpassen
    jQuery("#pfsize").height(jQuery("div#contentframe").height() + 9);

    // Seite aufblättern
    jQuery("#pfopen").click(function(e) {
        jQuery("#pageflip").css({opacity: 0, display: "block"}).animate({
            "width": "272",
            "opacity": 1,
            "left": "-=272"
        }, 700 );
        e.preventDefault(); return false;
    });


    // Seite zurückblättern
    jQuery("#pfclose").click(function(e) {
        jQuery("div#pageflip").animate({
            "width": "1",
            "opacity": 0,
            "left": "+=272"
        }, 700 );
        e.preventDefault(); return false;
    });

    if (jQuery('.stage .stageelements').size() > 0) {
        // Bühnenanimation für große Bühne
        jQuery('.stage .stageelements').cycle({
            fx:         'fade',
            timeout:    6000,
            speed:      2500,
            pause:      1,
            pager:      '.stage .pager'
        });
    }

    if (jQuery('.bigstage .stageelements').size() > 0) {
        // Bühnenanimation für kleine Bühne
        jQuery('.bigstage .stageelements').cycle({
            fx:         'fade',
            timeout:    6000,
            speed:      2500,
            pause:      1,
            pager:      '.bigstage .pager'
        })
        .find('img')
            .bind('click', function(e) {
                document.location = jQuery(this).siblings('a').attr('href');
            })
            .bind('mouseover', function(e) {
                jQuery(this).css('cursor', 'pointer');
            });
    }

    // Twitter-Nachrichten holen
    var utb_twitter = {
        relative_time: function(time_value) {
            var values = time_value.split(" ");
            time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
            var parsed_date = Date.parse(time_value);
            var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
            var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
            delta = delta + (relative_to.getTimezoneOffset() * 60);
            if (delta < 60) {
                return 'vor weniger als einer Minute';
            } else if (delta < 120) {
                return 'vor einer Minute';
            } else if (delta < (60 * 60)) {
                return 'vor ' + (parseInt(delta / 60)).toString() + ' Minuten';
            } else if (delta < (120 * 60)) {
                return 'vor einer Stunde';
            } else if (delta < (24 * 60 * 60)) {
                return 'vor ' + (parseInt(delta / 3600)).toString() + ' Stunden';
            } else if (delta < (48 * 60 * 60)) {
                return 'vor einem Tag';
            } else {
                return 'vor ' + (parseInt(delta / 86400)).toString() + ' Tagen';
            }
        },
        init: function() {
            var self = this;
            jQuery('#platzhalter').html('<p class="loading"><img src="fileadmin/templates/default/gfx/loading_grey.gif" width="32" height="12" /><br />Lade Daten...</p>');
            jQuery.jTwitter('utb_stuttgart', 6, function(posts) {
                for (var i = 0; i < posts.length; i++) {
                    var status = posts[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
                        return '<a href="' + url + '" target="_blank">' + url + '</a>';
                    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
                        return reply.charAt(0) + '<a href="http://twitter.com/' + reply.substring(1) + '">' + reply.substring(1) + '</a>';
                    });
                    var created_at = self.relative_time(posts[i].created_at) + ':';
                    var description = posts[i].user.description;
                    jQuery('#tweet_' + i).html('<span class="headline"><a href="http://twitter.com/utb_stuttgart" title="' + description + '">' + created_at + '</a><p class="tweet">' + status + '</p></div>');
                }
            });
            jQuery('#platzhalter').remove();
            jQuery('#twitterbox').cycle({
                fx:         'scrollDown',
                timeout:    10000,
                pause:      1,
                slideExpr:  'div'
            });
        }
    };

    if (jQuery('#twitterbox').size() > 0) {
        utb_twitter.init();
    }

    // Facebook-Button aktualisieren
    if(jQuery('#facebookbox').length > 0) {
        var curFBUrl = jQuery('#facebookbox a').attr('href');
        var newParamsObj = { u:document.location.href, t:document.title };
        var newFBUrl = jQuery.param.querystring( curFBUrl, newParamsObj );
        jQuery('#facebookbox a').attr('href', newFBUrl);
    }

    // SpreadIt Tooltip
    jQuery('a.spreadit').tooltip({
        position: "bottom center",
        relative: 1,
        offset: [24, 43],
        effect: 'slide',
        slideOffset: 30,
        delay: 500,
        events: {
            def: "click, mouseout"
        }
    });

    jQuery('a.spreadit').click(function(e){
        e.preventDefault(); return false;
    });
});

// Umschalten der Stichwortsuche im Kopfbereich
jQuery(function($) {

  quicksearchinput = jQuery('#quicksearchform .quicksearchinput');

  if(quicksearchinput.length > 0)
  {
  /* Searchbox Standardwert (Variablen aus dem Header der Seite) */
  jQuery("#quicksearchform").attr("action",searchlinkkeyword);
  quicksearchinput.attr("name","tx_indexedsearch[sword]");

  /* Searchbox Typ-Auswahl */
  jQuery("#searchtype-product").click(
      function(){
          jQuery("#quicksearchform").attr("action", searchlinkproduct);
          //quicksearchinput.
          quicksearchinput.attr("name", "keywords").focus();
          clearTimeout(timer);
          var timer = setTimeout(function(){ jQuery('.searchtype').fadeOut(); }, 1000);
      }
  );
  jQuery("#searchtype-keyword").click(
      function(){
          jQuery("#quicksearchform").attr("action", searchlinkkeyword);
          quicksearchinput.attr("name", "tx_indexedsearch[sword]").focus();
          clearTimeout(timer);
          var timer = setTimeout(function(){ jQuery('.searchtype').fadeOut(); }, 1000);
      }
  );

  quicksearchinput
    .focus(function() {
      jQuery('.searchtype').fadeIn();
    })
    .blur(function() {
      //jQuery(this).val('');
      setTimeout(function(){ jQuery('.searchtype').fadeOut(); }, 1000);
    })
  }
});


// Bookteaser laden
jQuery(function($) {
    /* Schritt, rück, rück, Platz, Aufstellung einnehmen */
    $('.scrollable').bind('ajax:success', function() {
        if($('.scrollable div[class="item"]').length >= 1 && $('.bookteaser.queued').length === 0) {
            /* Alle items bitte in Zweierreihen aufstellen und an den Händen fassen */
            $('.scrollable .item:odd').each(function() {
                var el = jQuery(this);
                el.prev().append(el.html());
                el.remove();
            });

            /* Bookteaser Tooltip */
            $('.bookteaser', $('.scrollable')).tooltip({
                position: "bottom center",
                onBeforeShow: function(e, pos) {
                    this.getTip().html(this.getTrigger().next().html());
                },
                relative: false,
                tip: '#bookteaserTooltip',
                offset: [-101, 40],
                effect: 'slide',
                lideOffset: 30,
                events: {
                    tooltip: ""
                }
            });

            $('.navigation .left').addClass('disabled');
            $('.scrollable').scrollable({
                circular: false,
                onSeek: function(e, index) {
                    $('.scrollable').animate({'height': $('.scrollable div[class="item"]').eq(index).outerHeight()});
                }
            });
            /* Verzögern der Ausgabe-Skalierung bis die Browser den Inhalt sauber gerendert haben */
            window.setTimeout(function() {
                jQuery('.scrollable').css('height', jQuery('.scrollable .items').first().outerHeight());
                if(jQuery('.scrollable div[class="item"]').length > 1) {
                    jQuery('.navigation').show();
                }
                jQuery('div.box .loading').hide();
            }, 500);
        }
    });

    $('.booklist').bind('ajax:success', function() {
        if($('.booklist div[class="bookteaser"]').length >= 1 && $('.bookteaser.queued').length === 0) {
            $('.loading', $(this)).hide();
        }
    });

    /* Bitte vom Bahnsteig zurücktreten, der Datenzug fährt gleich ein */
    $('.bookteaser').addClass('queued').each(function() {
        var el = $(this);
        var pid = el.attr('data-pid');

        if (pid > 0) {
            jQuery.ajax({
                url: window.location.protocol + '//' + window.location.hostname + '/metaXML/getInfo.php',
                data: { pid: pid },
                dataType: 'xml',
                error: function(xhr, status, error) {
                    el.remove();
                },
                success: function(data, status, xhr) {
                    data = $(data);
                    if ($('title', data).text()) {
                        $('.cover > a:first', el).attr('href', $('shop_detail_print', data).text());
                        $('.cover img', el).attr('src', $('cover_small', data).text());
                        $('.author', el).html($('author', data).text());
                        $('.booktitle > a', el).html($('title', data).text()).attr('href', $('shop_detail_print', data).text());

                        if (el.parents('div.booklist').length == 0) {
                            var tooltip = el.next();
                        } else {
                            var tooltip = el;
                        }
                        $('.description:first', tooltip).html($('shorttext', data).text().substring(0,400) + '...');
                        $('.prices > strong:first', tooltip).html($('price_print', data).text().replace(/(\d+)\.(\d+)/, '$1,$2') + ' €');
                        if($('price_ebook', data).text() !== '') {
                            $('.prices > strong:last', tooltip).html($('price_ebook', data).text().replace(/(\d+)\.(\d+)/, '$1,$2') + ' €');
                        } else {
                            var prices = $('.prices', tooltip).html().replace(/<br\/?>/,'').replace(/(,\s+)?eBook-Ausgabe:.*/,'');
                            $('.prices', tooltip).html(prices);
                        }
                        el.removeClass('queued')
                        el.show();
                    } else {
                        if(el.parent().children().length == 2) {
                            el.parent().remove();
                        } else {
                            el.next().remove();
                            el.remove();
                        }
                   }
                   $('.scrollable').trigger('ajax:success');
                   $('.booklist').trigger('ajax:success');
                }
            });
        }
    });

});

