// DWAccordeon 0.1
// by Leo Gerber, diewebdesigner.com
// using Prototype and Sriptaculous

// DomReady
// Adapted from DOM Ready extension by Dan Webb
// http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype
// which was based on work by Matthias Miller, Dean Edwards and John Resig
//
// Usage:
//
// Event.onReady(callbackFunction);
Object.extend(Event, {
  _domReady : function() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;

    if (Event._timer)  clearInterval(Event._timer);
    
    Event._readyCallbacks.each(function(f) { f() });
    Event._readyCallbacks = null;
    
  },
  onReady : function(f) {
    if (!this._readyCallbacks) {
      var domReady = this._domReady;
      
      if (domReady.done) return f();
      
      if (document.addEventListener)
        document.addEventListener("DOMContentLoaded", domReady, false);
        
        /*@cc_on @*/
        /*@if (@_win32)
            var dummy = location.protocol == "https:" ?  "https://javascript:void(0)" : "javascript:void(0)";
            document.write("<script id=__ie_onload defer src='" + dummy + "'><\/script>");
            document.getElementById("__ie_onload").onreadystatechange = function() {
                if (this.readyState == "complete") { domReady(); }
            };
        /*@end @*/
        
        if (/WebKit/i.test(navigator.userAgent)) { 
          this._timer = setInterval(function() {
            if (/loaded|complete/.test(document.readyState)) domReady(); 
          }, 10);
        }
        
        Event.observe(window, 'load', domReady);
        Event._readyCallbacks =  [];
    }
    Event._readyCallbacks.push(f);
  }
});

Event.onReady(function(){
  // for each toggleNest
	$$('.dwaccord-container').each(function(item){
		var thisSlide = item.down( '.dwaccord-content' );
		var thisToggle = item.down( '.dwaccord-toggle' );
		if (! thisToggle.hasClassName('act')) {
			thisSlide.hide();
		}
		Event.observe(thisToggle, 'click', function(){
			if (thisToggle.hasClassName('act')) {
				thisToggle.removeClassName('act');
				new Effect.SlideUp( thisSlide, { duration:1.5, scaleX:false } );
			} else {
				thisToggle.addClassName('act');
				new Effect.SlideDown( thisSlide, { duration:1.5, scaleX:false } );
			}
		});
	});
});