// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults




var ToggleContainer = Class.create({
  initialize: function(element) {
    var defaults = {
      slideDuration: 0.3,
			container_css_class: "content_article",
			teaser_text_css_class: "teaser_text",
			long_text_css_class: "long_text",
			link_css_class: "read_article"
    };
    var options = Object.extend(defaults, arguments[1] || { });
    this.options = options;
    this.element = $(element);
		this.container_css_class = '.'+this.options.container_css_class;
		this.teaser_text_css_class = '.'+this.options.teaser_text_css_class;
		this.long_text_css_class = '.'+this.options.long_text_css_class;
		this.link_css_class = '.'+this.options.link_css_class;
		this.containers = $$('#' + this.element.id + ' '+this.container_css_class);
		this._attachEvents();
  },
  
	_attachEvents: function() {
	  if (this.containers.length > 0) {
			this.containers.each(function(container) {
				if(container.down(this.link_css_class)) {
					handle = container.down(this.link_css_class);
					handle.observe("click", function(e) {
	      		this.currentSlideEvent = e;
	      		var element = e.findElement();
	      		this.currentSlideEvent.stop();
						this.SlideContainer(container);
	  		  }.bind(this));
				}
  		}.bind(this));
		}
	},
	
	SlideContainer: function(container) {
		new Effect.toggle(container, 'Slide', {
			duration: this.options.slideDuration,
			afterFinish: function() {
				new Effect.toggle(container.down(this.long_text_css_class), 'Appear', {
					duration: 0,
					afterFinish: function() {
						if(container.down(this.long_text_css_class).style.display == 'none') {
							$(container.down(this.link_css_class)).innerHTML = 'Lesen &raquo;';
						}
						else {
							$(container.down(this.link_css_class)).innerHTML = '&laquo; Schlie&szlig;en';
						}
						new Effect.toggle(container.down(this.teaser_text_css_class), 'Appear', {
							duration: 0,
							afterFinish: function() {
								new Effect.toggle(container, 'Slide', {
									duration: this.options.slideDuration
								});
							}.bind(this)
						});
					}.bind(this)
				});
			}.bind(this)
		});
		
		
	}
	
});


