/* Datalinks Fader Widget */
var fader = Class.create();
fader.prototype = {
	initialize: function(title1,summary1,image1,title2,summary2,image2,title3,summary3,image3,title4,summary4,image4,title5,summary5,image5,title6,summary6,image6,title7,summary7,image7) {
		this.title=new Array;
		this.summary=new Array;
		this.images=new Array;
		// Excuse this...
		// Dirty but it works...
		if(title1) {
			this.title[0]=title1;
			this.summary[0]=summary1;
			this.images[0]=image1;
		}
		if(title2) {
			this.title[1]=title2;
			this.summary[1]=summary2;
			this.images[1]=image2;
		}
		if(title3) {
			this.title[2]=title3;
			this.summary[2]=summary3;
			this.images[2]=image3;
		}
		if(title4) {
			this.title[3]=title4;
			this.summary[3]=summary4;
			this.images[3]=image4;
		}
		if(title5) {
			this.title[4]=title5;
			this.summary[4]=summary5;
			this.images[4]=image5;
		}
		if(title6) {
			this.title[5]=title6;
			this.summary[5]=summary6;
			this.images[5]=image6;
		}
		if(title7) {
			this.title[6]=title7;
			this.summary[6]=summary7;
			this.images[6]=image7;
		}
		this.currentArticleId=0;
		// And this...
		this.titleId=$("fd_title");
		this.imageId=$("fd_image");
		this.summaryId=$("fd_summary");

	   title=this.title[this.currentArticleId];
      summary=this.summary[this.currentArticleId];
      image=this.images[this.currentArticleId];
		// Populate
      Element.update(this.titleId,title); 
	   Element.update(this.summaryId,summary);
		if(image == "") {
			Element.hide(this.imageId);
		}
		else {
			Element.show(this.imageId);
      	Element.update(this.imageId,image);
		}
      this.currentArticleId++;
      if (this.currentArticleId>=this.summary.length) {
		  this.currentArticleId=0;
	  }

	},
	animate: function() {
	    // Step 1
	    // Start the animate out, update, animate in process...
	    
		// dont want to fade if there is only one article
		if(this.title.length > 1) {
			this.animateOut();
		}
	},
	animateOut: function() {
	    // Step 2
	    // Fade out and then call updateOutputs
		 new Effect.Opacity(this.titleId,{duration:1,from:1.0,to:0.0,fps:60});
	    new Effect.Opacity(this.summaryId,{duration:1,from:1.0,to:0.0,fps:60});
	    new Effect.Opacity(this.imageId,{duration:1,from:1.0,to:0.0,afterFinish:this.updateOutputs.bind(this),fps:60});
	},
	updateOutputs: function() {
	    // Step 3
	   title=this.title[this.currentArticleId];
      summary=this.summary[this.currentArticleId];
      image=this.images[this.currentArticleId];
		// Populate
      Element.update(this.titleId,title); 
	   Element.update(this.summaryId,summary);
		if(image == "") {
			Element.hide(this.imageId);
		}
		else {
			Element.show(this.imageId);
      	Element.update(this.imageId,image);
		}
      this.currentArticleId++;
      if (this.currentArticleId>=this.summary.length) {
		  this.currentArticleId=0;
	  }
		// Finally, animate it back in
		this.animateIn();
	},
	animateIn: function() {
	    // Step 4
		 new Effect.Opacity(this.titleId,{duration:1,from:0.0,to:1.0,fps:60});
	    new Effect.Opacity(this.summaryId,{duration:1,from:0.0,to:1.0,fps:60});
		 if(image != "") {
	    	new Effect.Opacity(this.imageId,{duration:1,from:0.0,to:1.0,fps:60});
		 }
	}
};
