jQuery.cookie = function (key, value, options) {

    // key and at least value given, set cookie...
    if (arguments.length > 1 && String(value) !== "[object Object]") {
        options = jQuery.extend({}, options);

        if (value === null || value === undefined) {
            options.expires = -1;
        }

        if (typeof options.expires === 'number') {
            var days = options.expires, t = options.expires = new Date();
            t.setDate(t.getDate() + days);
        }

        value = String(value);

        return (document.cookie = [
            encodeURIComponent(key), '=',
            options.raw ? value : encodeURIComponent(value),
            options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
            options.path ? '; path=' + options.path : '',
            options.domain ? '; domain=' + options.domain : '',
            options.secure ? '; secure' : ''
        ].join(''));
    }

    // key and possibly options given, get cookie...
    options = value || {};
    var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};


function activateFontsizeSelector() {
    var fontsize = $.cookie('fontsize');
    if (fontsize) {
      $('body').removeClass('normal big medium').addClass(fontsize); 
      $('.fontsize-selection .active').removeClass('active');
      $('.fontsize-selection .' + fontsize).addClass('active');
    }
    $('.fontsize-selection a').live('click',function(){
        $('.fontsize-selection .active').removeClass('active');
        $(this).addClass('active');
        switch ($(this).attr('class').split(' ')[0]) {
            case 'normal' : 
              $('body').removeClass('normal big medium').addClass('normal'); 
              $.cookie('fontsize', 'normal', { expires: null, path: '/'});
            break;
            case 'medium' : 
              $('body').removeClass('normal big medium').addClass('medium'); 
              $.cookie('fontsize', 'medium', { expires: null, path: '/'});
            break;
            case 'big'    : 
              $('body').removeClass('normal big medium').addClass('big'); 
              $.cookie('fontsize', 'big', { expires: null, path: '/'});
            break;
            default       : 
              $('body').removeClass('normal big medium').addClass('normal');
              $.cookie('fontsize', 'normal', { expires: null, path: '/'});
        }
        return false;
    });
}


function undraggableImages() {
    $('img').live( 'mousedown',function(e){ e.preventDefault();return false; });
}

function setBrowserClass() {
 var ua = $.browser;
  if ( ua.msie ) {
    $('body').addClass('msie' + ua.version.slice(0,1));
  }
  if ( ua.msie && ua.version.slice(0,1) <= '9' ) {
    $('body').addClass('msie');
  }

    if ( $.browser.webkit ) $('body').addClass('webkit');
    if ( $.browser.opera ) $('body').addClass('opera');
//    if ( $.browser.msie ) $('body').addClass('msie');
    if ( $.browser.mozilla ) $('body').addClass('mozilla');
}

function insertParam(url, key, value)
{
  key = escape(key); 
  value = escape(value);
  
  var kvp = url.substr(1).split('&');
  var i=kvp.length; 
  var x; 
  while(i--) {
    x = kvp[i].split('=');
    if (x[0]==key) {
      x[1] = value;
      kvp[i] = x.join('=');
      break;
    }
  }
  if(i<0) {kvp[kvp.length] = [key,value].join('=');}
  return kvp.join('&');
}

$(document).ready(function() {
  setBrowserClass();
  activateFontsizeSelector();
  undraggableImages();
  
  $('.no-js').css({display: "none"});
  $('.js').css({display: "block"});

  /* -dg: das ist m.E. nicht nötig und führt auch zu Fehler im IE
  if ($('.result-controls').length){
    $("select").change(function () {    	
      window.location = "http://" + window.location.host + $(this).val();
    });
  }
*/
	if ($('#teaser.teaser-home').length){
		$('#teaser.teaser-home').paginate();
	}
	if ($('.tabbed-teaser').length){
    	$('.tabbed-teaser').tabs();
	}
	if ($('.tabbed-content').length){
    	$('.tabbed-content').tabs();
	}
	if ($('.tabbed-content .tab').length){
//		$('.tab').equalHeights();
	}
	if ($('.accordion-list').length){
    	$('.accordion-list').accordion({ autoHeight: false });
	}
	
	if ($('a.lightbox').length){
		$('a.lightbox').fancybox({
			titlePosition: 'inside',
			overlayOpacity:0.75,
            overlayColor:'#000'
		});
	}
	if ($('.image-carousel').length){
		$('.image-carousel').jcarousel();
		$(".image-carousel a[rel=gallery]").fancybox({
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'titlePosition' 	: 'inside',
		'titleFormat'		: function(title, currentArray, currentIndex, currentOpts) {
			return '<div id="fancybox-title-inside">Bild ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</div>';
			}
		});
		
	}
	
	
	$('#horz-nav > ul').flyOutMenu({listElement:'li.flyout'});
	
	$('#connection-info-list').flyOutMenu({onHover:false, activeClass: 'expanded'});
    $('#connection-info > .collapse-toggler').live( 'click',function(e){
        $(this).parent().find('ul#connection-info-list > li').toggleClass('expanded');
        return false;
    });
    
 /* $('#page-functions.page-functions-default #fahrplanauskunft').children('div').hide();
    $('#page-functions.page-functions-default > #quick-schedule').addClass('collapsed');
    $('<a class="collapse-toggler open" href="#"><span class="visuallyhidden">mehr anzeigen</span></a>').appendTo('#page-functions.page-functions-default > #quick-schedule');
    $('#quick-schedule > .collapse-toggler').live( 'click',function(e){
    	if ($(this).hasClass('open')) {
    		$(this).removeClass('open');
        	$('#quick-schedule').removeClass('collapsed');
			$('#fahrplanauskunft').children('div').show();
    	} else {
    		$(this).addClass('open');
        	$('#quick-schedule').addClass('collapsed');
			$('#fahrplanauskunft').children('div').hide();
       }
        return false;
    }); */

  $('a.tip-a-friend-link').click(function() {
    var link = $(this).attr('href') + '&lightbox=1';
    $.fancybox({
      'href': link,
      'type': 'iframe',
      width : 400,
      height : 500
    });
    return false;
  });
  
	$('select.result-page').change(function(){
	  window.location = "http://" + window.location.host + $(this).val();
  });
	$('select.press-area').change(function(){
	  window.location = "http://" + window.location.host + $(this).val();
  });


});
