jQuery(function(){
	
	$('#ticker').mouseover(function(){
		tickerstart();
	});

	marquee();
	$('#marquee > ul').hover(function(){ $(this).stop(); }, marqueeresume);
	
	$('#startbox .teasergallery').dhonishow();
	$('.teasergallery .lighty').lightBox();	
	
	//TabNavi für Startseitenkarte
	$('#mapnavi li').click(function(){
		$(this).parent().find('li').removeClass('active');
		$(this).addClass('active');
		$('#map .mapsection').hide();
		$('#'+this.id.substring(4)).show();
	});
	
	//Aufteilen in 4 Listengruppen
	var lists = [];
	var temp = $('#prompt');
	$('#prompt').remove();
	var listnum = Math.floor($('#standorte li').length / 9) + 1;
	for (var i = 0; i < listnum; i++) {
		lists[i] = $('#standorte li:lt(9)');
		$('#standorte li:lt(9)').remove();
	}	
	$('#standorte').empty().append('<div id="pin"></div>');
	for (var i = 0; i < listnum; i++) {
		$('#standorte').append('<ul class="item-'+i+'"></ul>').find('ul:last-child').append(lists[i]);
	}
	$('#standorte ul.item-0').prepend(temp);
	
	
	//Deutschlandkarte: Render spots
	$('#standorte li > a').each(function(i){
		var rels = $(this).attr('rel');
		var myXY = rels.split(',');
		var myX = Math.floor(myXY[0]) -19; var myY = Math.floor(myXY[1]) + 255;
		$(this).parent().append('<a href="#" class="spot">&nbsp;</a>').find('a.spot').css('left', myX).css('top', myY).attr('rel',rels);
	});
		
	//Deutschlandkarte: Interaktive Funktionen
	$('#pin').css('opacity', '0').show();
	$('#standorte li > a').click(function(){
		var myXY = $(this).attr('rel').split(',');
		var myX = Math.floor(myXY[0]) -20; var myY = Math.floor(myXY[1]) + 215;
		$('#pin').animate({opacity: 1, left: myX, top: myY}, 600);
		$('#standorte .active').removeClass('active').find('dl').slideUp(300);
		$(this).parent().addClass('active').find('dl').animate({top: 233}, 300, function(){
			$(this).slideDown(300);
		});
		return false;
	});
	
	// Section zuklappen und wieder auf
	
	$('.blindsection').hide();
	$('h2.sectionhead').click(function(){
		$(this).toggleClass('opened').next().slideToggle(800);
	});
	
	
	// Volltextsuche
	
	$('#fulltextsearch').focus(function(){
		fieldData = this.value
		this.value = "";
	});
	$('#fulltextsearch').blur(function(){
		if (this.value == "") {
			this.value = fieldData;
		}		
	});
	
	// externe Links in neues Fenster (Jaja, das ist lame, ich weiß)
	
	$("a[href^='http://']").attr('target', '_blank');
	$("a[href*='www.exzellenz-ini'], a[href*='exzellenz-ini'], a[href*='www.excellence-ini'], a[href*='excellence-ini'], ").removeAttr('target');
	
	// Embedcode
	
	$('.embedcode a').click(function(){
		$(this).next().slideToggle(300, function(){
			if (this.style.display != "none") {
				var embedText = $(this).prev().text().substring(1);
				$(this).prev().text("×"+embedText);
				$(this).find('input')[0].focus();
			} else {
				var embedText = $(this).prev().text().substring(1);
				$(this).prev().text("+"+embedText);
			}
		});
		return false;
	});
	$('.embedcode input').focus(function(){
		this.select();
	});
	
	// Kommentare
	/*
	
	$('#comments').each(function(){
		if ($(this).find('li').length > 2) {
		$(this).find('li:gt(2)').hide();
		$(this).prev().prepend(' <a href="#" id="morecomments">Alle anzeigen</a>');
		$('#morecomments').click(function(){
			$(this).parent().next().find('li:gt(2)').slideToggle(700);
			if ($(this).text() == "nur 3 anzeigen") {
				$(this).text("Alle anzeigen");
			} else {
				$(this).text("nur 3 anzeigen");
			}
			return false;
		});
	}
	});
	
	*/
	jQuery("#edit-feedback-field-homepage").parents("div.field").hide();
	
});


function tickerback() {
	$('#ticker > p').animate({left: -1000}, 1500, 'linear', function(){
	  $(this).animate({left: 0}, 500, 'linear', function(){
	    $(this).animate({left: 0}, 1000, 'linear', tickerstart);
	  });
	});
}

function tickerstart() {
	$('#ticker > p').animate({left: -1000}, 9000, 'linear', tickerback);
}

function marquee() {
	$('#marquee > ul li').each(function(i){
		$(this).clone().appendTo($(this).parent());
		if (i < 6) {
			$(this).empty();
		}
	});
	marqueenext();
}

function marqueenext() {
	$('#marquee > ul').css('left', '-2010px').animate({left: -2510}, 35000, "linear", marqueenext);
}

function marqueeresume() {
	var factor = 35000 / 1500;	
	var pos = $('#marquee > ul').css('left');
	pos = pos.substring(0, pos.indexOf('p'));
	var diff = (-2510 - pos) * (-1);
	var speed = diff * factor;
	$('#marquee > ul').animate({left: -2510}, speed, "linear", marqueenext);
}



jQuery.fn.overviewTable = function(obj){      
  return this.each(function() {
    
    var table = this;
    var tableRows = jQuery(this).find("tbody > tr");
    var disciplines = jQuery("#disciplines input");
    var supportlines = jQuery("#supportlines input");
      
        
    var toShowElements = {
      "filter-state": obj["filter-state"],
      disciplines: obj.disciplines,
      supportlines: obj.supportlines,
      sites: obj.sites
    };

    var filterStateHandle = function(value) {
      if(value == "0" || value == "-1") {
        tableRows.each(function(){
          if(!toShowElements["filter-state"]) toShowElements["filter-state"] = {};
          toShowElements["filter-state"][this.id] = true;
        });
      } else {
        toShowElements["filter-state"] = obj["filter-state"][value];
      }
    }
    
    var filterSiteHandle = function(value) {
      if(value == "0" || value == "-1") {
        tableRows.each(function(){
          if(!toShowElements.sites) toShowElements.sites = {};
          toShowElements.sites[this.id] = true;
        });
      } else {
        toShowElements.sites = obj.sites[value];
      }
    }

    var disciplinesHandle = function(){
      var rows = {};
      
      disciplines.each(function(){
        if(this.checked) { rows = jQuery.extend(rows, obj.disciplines[this.value]); }
      });

      toShowElements.disciplines = rows;
    };
    
    var supportlinesHandle = function(){
      var rows = {};
      
      supportlines.each(function(){
        if(this.checked) { rows = jQuery.extend(rows, obj.supportlines[this.value]); }
      });

      toShowElements.supportlines = rows;

    };
    
    var change = function(){
      var finalRows = [];
      
      var states = toShowElements["filter-state"];
      var disciplines = toShowElements["disciplines"];
      var supportlines = toShowElements["supportlines"];
      var sites = toShowElements.sites;
      
      
      for(var state in states) {
        if(state in sites && 
           state in disciplines && 
           state in supportlines) finalRows.push(state);
      };
      
      tableRows.hide();

      for (var i=0; i < finalRows.length; i++) {
        document.getElementById(finalRows[i]).style.display = "";
      };
      jQuery("#loading").fadeOut();
    };

    var fs = jQuery("#filter-state").bind("change", function(){
      jQuery("#loading").fadeIn();
      filterStateHandle(jQuery(this).val());
      change();
    });

    var fc = jQuery("#filter-city").bind("change", function(){
      jQuery("#loading").fadeIn();
      filterSiteHandle(jQuery(this).val());
      change();
    });
    
    disciplines.bind("click", function(){
      jQuery("#loading").fadeIn();
      disciplinesHandle();
      change();
    });
    
    supportlines.bind("click", function(){
      jQuery("#loading").fadeIn();
      supportlinesHandle();
      change();
    });


    filterStateHandle(fs.val());
    filterSiteHandle(fc.val());
    disciplinesHandle();
    supportlinesHandle();
    change();
  });
};

/* -------------------------- Player Listener ------ */

var currentState = "NONE"; 
var previousState = "NONE"; 
var player = null;

function playerReady(thePlayer) {
	setTimeout("player = document.getElementById('unique_id')", 100);
	addListeners();
}

function addListeners() {
	if (player) { 
		player.addModelListener("STATE", "stateListener");
	} else {
		setTimeout("addListeners()",100);
	}
}

function stateListener(obj) { //IDLE, BUFFERING, PLAYING, PAUSED, COMPLETED
	currentState = obj.newstate; 
	previousState = obj.oldstate; 
	if ((currentState == "COMPLETED")&&(previousState == "PLAYING")) {
		// console.log('fertig!');
	}
}


