

/**
 * reviewTicker
 *
 * Stellt Reviews als Ticker auf der Startseite dar.
 * 
 *
 *
 * @filesource
 * @author Sven Jaschan
 * @version 0.1
 */


var reviewTicker = {
    
	maxentries:15, /* Anzahl der Einträge die dargestellt werden sollen */
	status:true, /* Status, ob der Ticker läuft */
	stopit:false, /* Ticker unterbrechen? */
	delay:3000, /* Abstand in Millisekunden, wann der nächste Eintrag geholt wird */
	duration:1, /* Animationsgeschwindigkeit in Sekunden */
	entries:0, /* interne Variable, Anzahl Tickereinträge */
	
	
	
  /**
    * Start
    * 
    * Startet den reviewTicker
    *
    */
	
    
	Start: function(){
	  reviewTicker.stopit = false;
	  reviewTicker.status = true;
	  reviewTicker.fetchNext();
	},
	
  /**
    * Stop
    * 
    * Stoppt den reviewTicker
    *
    */
	
	Stop: function(){
	  reviewTicker.stopit = false;
	},


  /**
    * isRunning
    * 
    * Prüft, ob der reviewTicker läuft.
    *
    * @return status
    */
	
	isRunning: function(){
	  return reviewTicker.status;
	},
	
	
	
  /**
    * fetchNext
    * 
    * Holt das nächste bzw. aktuellste Review per AJAX
    */
	
	fetchNext:function(){
	  var url = '/ajax.php';
	  var pars = 'page=Ticker&action=show';
	  url+='?'+pars;
	  var myAjax = new Ajax.Request(
	    url,
		{
			method: 'get',
			onComplete: 
			
    	function(ResponseObjekt){
    	  var content = ResponseObjekt.responseText;
    	  $('ticker_frame').insert({ top: content});
    	  reviewTicker.nextreviewTicker();
    	}
			
			
		}
	  )
	},
	 
	 
   /**
    * nextreviewTicker
    * 
    * Nächste Tickerzeile laden.
    */
	
	nextreviewTicker: function(){
		
	  /*
	   * Prüfen, ob der Ticker beendet werden soll
	   */
	  if(reviewTicker.stopit){
      reviewTicker.status=false;
		  reviewTicker.stopit=false;
		  return;
	  }
	
	  /*
	   *  Beim ersten Mal den Eintrag sofort anzeigen
	   *
	   */     	   
    var current_delay=reviewTicker.delay;
    if(reviewTicker.entries!=0){
      current_delay=reviewTicker.delay;
    }
    
	  setTimeout(function() {
		
    		reviewTicker.entries++;
    		var ch = $('ticker_frame').childElements();
    		n=ch.length;
    		
    		/*
    		 * Neuen Tickereintrag hinzu"sliden"
    		 *
    		 */
    		new Effect.SlideDown(ch[0],{duration: reviewTicker.duration,afterFinish: function (obj) { 
    		  if(reviewTicker.entries>1){
    		    var ft=ch[1].childElements()[0].childElements()[2];
    		    new Effect.Appear(ft,{duration: reviewTicker.duration,afterFinish: function (obj2) {
    			    if(reviewTicker.entries>reviewTicker.maxentries){
    			      ch[n-1].remove();
              }
              reviewTicker.fetchNext();
    			 }});
    		  }
    		  else{
    		    if(reviewTicker.entries>reviewTicker.maxentries){
    			    ch[n-1].remove();
    		    }
    		    reviewTicker.fetchNext(); 
    		  }
        }});
    	  
    	  }
    	  ,current_delay
    ); 
	  
	
	}
	

}





