YAHOO.util.Dom.cleanWhitespace = function(el) {
	var el = YAHOO.util.Dom.get(el);
	for (var i = 0; i < el.childNodes.length; i++) {
		var node = el.childNodes[i];
		if (node.nodeType === 3 && !/\S/.test(node.nodeValue)) {
			node.parentNode.removeChild(node);
		}
	}
};
    
    function swoop (e) {
      Event.preventDefault(e);
      var elem = Event.getTarget(e);
      var anim, attr;
      if ( Dom.hasClass(elem, 'closed') ) {
      
		var openedelem = Dom.getElementsByClassName('opened');
		if(typeof(openedelem[0]) !== 'undefined'){
			var target = YAHOO.util.Dom.get(openedelem[0].id);
			var link = YAHOO.util.Dom.get(target.id.replace("content", "more"));
	      
			attr = {
			height : {to : 0},
			paddingTop : {to : 0},
			paddingBottom : {to : 0}
			};
	      
			anim = new Anim(target, attr, 1.5, Y.Easing.easeOut);
			anim.onStart.subscribe(start);
			anim.onComplete.subscribe(finish);
			anim.animate();
			
			Dom.addClass(link, 'closed');
			Dom.removeClass(target, 'opened');
		      
		}
      
		var target = YAHOO.util.Dom.get(elem.id.replace("more", "content"));
        attr = {
          height : {to : target.getAttribute('animheight')},
			paddingTop : {to : 0},
			paddingBottom : {to : 0}
        };
        Dom.removeClass(elem, 'closed');
		Dom.addClass(target, 'opened');
      
      anim = new Anim(target, attr, 2, Y.Easing.easeOut);
      anim.onStart.subscribe(start);
      anim.onComplete.subscribe(finish);
      anim.animate();
        /*
        // hide more
        elem.style.position = "absolute";
        elem.style.top = -1000 + "px";
        elem.style.left = -1000 + "px";
        // show less
		var less = YAHOO.util.Dom.get(elem.id.replace("more", "less"));
        less.style.position = "static";
        */
      }else{
        /*
        // hide less
        realelem.style.position = "absolute";
        realelem.style.top = -1000 + "px";
        realelem.style.left = -1000 + "px";
        // show more
		var more = YAHOO.util.Dom.get(realelem.id.replace("less", "more"));
        more.style.position = "static";
        Dom.addClass(more, 'closed');
        */
      }
    }
    
    var start = function() {
      var el = this.getEl();
      el.style.overflow = 'hidden';
      if ( Dom.hasClass(el, 'opened') ) {
		el.style.display = "block";
	  }
    };
    
    var finish = function() {
      var el = this.getEl();
      el.style.overflow = 'auto';
      if ( !Dom.hasClass(el, 'opened') ) {
		el.style.display = "none";
	  }
    };
    
  var Y = YAHOO.util, Event = Y.Event, Dom = Y.Dom, Anim = Y.Anim, Motion = Y.Motion;
  
  var initCodeCollapse = function() {
  
    var showelements = Dom.getElementsByClassName('shower');
    //var hideelements = Dom.getElementsByClassName('hidder');
    var contents = Dom.getElementsByClassName('content_hidden');
    Dom.cleanWhitespace('main');
    if ( showelements.length > 0 ) {
      Event.on(showelements, 'click', swoop);
      //Event.on(hideelements, 'click', swoop);
      Dom.batch(contents, setHeights);
    }
    
    function setHeights(el) {
      el.setAttribute('animheight', el.offsetHeight);
      attr = {
          height : {to : 0},
          paddingTop : {to : 1},
          paddingBottom : {to : 0}
        };
      var more = YAHOO.util.Dom.get(el.id.replace("content", "more"))
      Dom.addClass(more, 'closed');
      anim = new Anim(el, attr, 0, Y.Easing.easeOut);
      anim.onStart.subscribe(start);
      anim.onComplete.subscribe(finish);
      anim.animate();
    }
  };
  
  Event.onDOMReady(initCodeCollapse);
  