/*!
 * rheinschafe.de - mathias schopmans
 */

Modernizr.addTest('ipad', function () { return !!navigator.userAgent.match(/iPad/i); });
Modernizr.addTest('iphone', function () { return !!navigator.userAgent.match(/iPhone/i); });
Modernizr.addTest('ipod', function () { return !!navigator.userAgent.match(/iPod/i); });
Modernizr.addTest('ios', function () { return (Modernizr.ipad || Modernizr.ipod || Modernizr.iphone); });

var _gaq = [['_setAccount', 'UA-6810086-1'], ['_gat._anonymizeIp'], ['_trackPageview']];
var scripts = ['www.google-analytics.com/ga.js', 'connect.facebook.net/de_DE/all.js#xfbml=1'];

window.log=function(){log.history=log.history||[];log.history.push(arguments);if(this.console){console.log(Array.prototype.slice.call(arguments))}};
window.extractUrl = function(input){ return input.replace(/"/g,"").replace(/url\(|\)$/ig, "")};

// replace content with inner-content
function getContent(url, content_id) {
  var el = $(content_id).fadeTo(200, 0, function(){
    $.ajax({
    	url: url+'&type=101',
    	dataType: 'html',
    	success: function(html) {
    		el.html(html).fadeTo(200, 1);
    	}
    });
  });
}

function replaceContentBySelector(url, selector){ 
  var el = $(selector).fadeTo(200, 0, function(){
    $.get(url, function(html) {
    		el.html($(selector, html).html()).fadeTo(200, 1);
    });
  });
}

// reformat query-string
function qs(q) {
	var query_string = q.split("?");
	q = query_string[1]
	return decodeURI(q);
	var x = q.split('&'), i, name, t;
	
	for (q={}, i=0; i<x.length; i++) {
		t = x[i].split('=', 2);
		name = decodeURI(t[0]);
		if (t.length > 1) {
			q[name] = t[1];
		} else {
			q[name] = true;
		}
	}
	return q;
}




jQuery(function($){
  
  // add .ie class
  if($.browser.msie) {
    $('body').addClass('ie');
  }
  
  // ajax setup
  $.ajaxSetup({ cache: true });
  $.each(scripts, function(i, s){
    $.getScript('http://'+s);
  });
  
  // rsajaxed
  $.fn.rsajaxed = function(options){
    var opt = $.extend( {
      container: null,
      links: '.pagenaviFreunde a, .pagenavi a',
      offset: -130,
      speed: 200,
      content: null,
    }, options);
    
    return this.each(function(){
      var root = $(this), current_link = null;
      
      root.undelegate(opt.links, 'click').delegate(opt.links, 'click', function(ev){
        ev.preventDefault();
        var link = $(this).attr('href');
        var status = $(this).parent().parent().parent().find('.middle')
        if(current_link != link){
          
          status.text('Bitte warten ...');
          $.scrollTo(root, opt.speed, {offset:opt.offset});
          
          var content = (opt.content == null) ? root :  $(opt.content);
          
          content.addClass('rsajaxed-loading').fadeTo(200, 0, function(){
            $.get(link, function(html) {
                content.removeClass('rsajaxed-loading')
            		root.html($(opt.container, html).html()).fadeTo(200, 1);
            });
          });
          
          current_link = link;
        }
      });
    });
  }
  
  // ajaxed
  $('#ajax_content').rsajaxed({container: '#ajax_content'});
  
  // blog
  $('.tx-t3blog-pi2 #ajax_content').rsajaxed({container: '#ajax_content', content: '.blogList'});
  
  // ajaxed calendar startpage
  $('#kal_teaser_latest').rsajaxed({container: '#kal_teaser_latest', links: '.pagenavi a'});

  // ajaxed calendar overview
  $('.tx-extendcalendar-pi1 #ajax_box').rsajaxed({container: '.tx-extendcalendar-pi1 #ajax_box', content: '.content'});
  
  // ajaxed calendar overview
  //$('.tx-cwtcommunity-pi1 #ajax_content').rsajaxed({container: '.tx-cwtcommunity-pi1 #ajax_content', content: '.content'});
  
  
  // mainmenu
  $('#nav-main').each(function(){
    var root = $(this), children = root.children(), logo = $('#logo'), loaded_item = children.filter('.menu-cur'), last_item = null;
    
    //log('Loaded', loaded_item);
    
    var show_item = function(item){
      log('Show item', item);
      if(last_item != null) last_item.removeClass('menu-cur');
      loaded_item.removeClass('menu-cur');
      last_item = item.addClass('menu-cur');
    };
    
    var hide_item = function(item){
      if(last_item != null) last_item.removeClass('menu-cur');
      item.removeClass('menu-cur');
      loaded_item.addClass('menu-cur');
    };
    
    // main items
    children.hoverIntent({
      timeout: 500,
      over: function(){show_item($(this))},
      out: $.noop
    });
    
    root.hoverIntent({
      timeout: 500,
      over: $.noop,
      out: function(){hide_item($(this))}
    });
    
    // musikland-section
    logo.hoverIntent({
      timeout: 500,
      over: function(){show_item(children.eq(0))},
      out: $.noop
    });
    
  });
  
  
  var cur_i = null;
  
  // special transition for keyvisual-tabs
  $.tools.tabs.addEffect('ml-slide', function(i, done) {
    
    var panes = this.getPanes();
    var cur = panes.eq(cur_i);
    var next = panes.eq(i);
        
    var cur_tab = this.getCurrentTab().parent(),
        cur_tabtext = cur.find('.tabtext'),
        next_tabtext = next.find('.tabtext');
    
    if(players[cur_i]){
      flowplayer(players[cur_i][0]).stop();
      players[cur_i].hide();
    }
    
    if(mp3_players[cur_i]){
      flowplayer(mp3_players[cur_i][0]).stop();
    }
    
    next.css('z-index', 3);
    cur.css('z-index', 5);
    
    if(cur.length) {
     next_tabtext.hide(); 
    }
    
    cur_tab.fadeTo(100, 0);
    cur_tabtext.fadeOut(300, function(){
      
      cur.stop(true, true).animate({'width': 0, easing:'easeInCirc'}, 800, function(){
        cur.css('z-index', 1);
        next.css('z-index', 5);
        next_tabtext.fadeIn(500);
        cur.animate({'width': '100%', easing:'easeOutCirc'}, 250, function(){
          cur_tab.fadeTo(100, 1);
          done.call(); 
        });
      });
      
    });
    
    cur_i = i;
  	
  });
  
  //###############
  var players = [];
  var mp3_players = [];
  
  var tabslider = $('.mod-tabslider').each(function(){
    
    var slider = $(this).addClass('mod-tablslider-loading'),
        pane = slider.find('.panes'),
        // t3 4.4
        //panes = pane.children('a').remove().end().children().children().unwrap(),
        panes = pane.children('a').remove().end().children(),
        tabs = $('<ul>', {'class':'tabs'}).prependTo(slider),
        tab_str = '',
        intv;

  	panes.each(function(i){
  	  var pane = $(this),
  	      classname = 'tab-' + i,
  	      tabname = pane.find('.tabname').text(),
  	      player = pane.find('.flowplayer').flowplayer('typo3conf/ext/flvplayer2/pi1/flowplayer-3.2.5.swf').stop(),
  	      loader = pane.find('.sound-preloader'),
  	      mp3_player = pane.find('.mod-clickmap-player').flowplayer('typo3conf/ext/flvplayer2/pi1/flowplayer-3.2.5.swf', {
  	        plugins: {
              audio: {
            	  url: 'typo3conf/ext/flvplayer2/pi1/flowplayer.audio-3.2.1.swf'
            	}
            }
  	      }).stop();

  	  classes = pane.attr('class').match(/skin-[\w]+/g);
  	  if(classes){
  	    classname += ' ' + classes.join(' '); 
  	  }
  	      
  	  if(player.length){
  	    players[i] = player.hide();
  	    $('<a>', {'class':'flowplayer-play', 'text':'Play', 'title':'Video abspielen'}).click(function(){
  	      player.show();
  	      flowplayer(player[0]).play();
  	    }).appendTo(pane.find('.pi'));
  	  }
  	  
  	  if(mp3_player.length){
  	    mp3_players[i] = mp3_player;
  	    
  	    pane.find('.links-mp3').delegate('a', 'click', function(e){
  	      e.preventDefault();
  	      clearInterval(intv);
  	      loader.stop(true).fadeIn(200);
  	      var api = mp3_player.flowplayer(0);
  	      /* volume auf 100 setzen */
  	      
  	      api.setVolume(100);
  	      api.play($(this).data('mp3')).onBufferFull(function(){
  	        loader.delay(800).fadeOut();
  	      });
  	      
  	      /* nach 7 sekunden ausfaden */
  	      api.onCuepoint(
          	[7000],
          	function(clip, cuepoint) {
          		$('<a>').animate(
          		  { opacity: 0 },
          		  {
          		    easing: 'linear',
          		    duration: 1500,
          		    step :  function(e){
          		      api.setVolume(Math.round(e*100));
          		    },
          		    complete : function(){
          		      api.stop().stopBuffering();
          		    }
          		  }
          		);
          	}
          );
          
          /* end - nach 7 sekunden... */
          
  	    });
  	  }
  	      
  	  tab_str += '<li class="'+classname+'"><a href=""><span>'+tabname+'</span></a></li>';
  	});
  	
  	tabs.html(tab_str);
  	
	  var api = tabs.tabs('.pane', {effect: 'ml-slide', rotate: true, api: true});
	  
  	if(api) {
  	  
  	  tabs.add(pane).hide();
    	panes.preload_background(function(){
    	  slider.removeClass('mod-tabslider-loading');
    	  tabs.add(pane).delay(100).fadeIn(400);
    	  
    	  intv = setInterval(api.next, 5000);
    	  
    	  tabs.click(function(){
      	  clearInterval(intv);
      	});
      	
    	});
    	
  	}

  });

});

