﻿
// Pillars - initializes dropdown for Pillars

var Pillars = {
	init: function(){
		this.handles = $$('#pillars h5');
		this.contents = $$('#pillars .inner');
		
		var truncate = new iSmart($$('#pillars h5 span'),{
			'length': 38
		});

		this.handles.each(function(el,i){
			var drop = new Dropdown(this.contents[i]);
			el.addEvent('click', function(e){
				e = new Event(e).stop();
				if(!this.contents[i].hasClass('on')) this.closeAll();
				drop.chain(function(){ 
					el.toggleClass('on');
				})
				drop.toggle();
			}.bind(this));
		}.bind(this));
	},
	
	closeAll: function(){
		this.contents.each(function(el,i){
			if (el.hasClass('on')) {
				var drop = new Dropdown(el);
				this.handles[i].removeClass('on');
				drop.close();
			}
		}.bind(this));
	}
};

/* Dropdown */

var Dropdown = new Class({
	Implements: [Chain, Options],
	options: {
		speed:  300
	},
	
	initialize: function(element,options){
		this.setOptions(options);
		this.element = element;
		this.height = this.element.getScrollSize().y;

		if (!this.options.open && this.element.get('height') != '0') {
			this.element.setStyles({
				visibility: 'hidden', //set this in the css also
		    	height: 0,
				overflow: 'hidden'
			});
		}
		this.fx = new Fx.Morph(this.element, {duration: this.options.speed, link: 'ignore'});
	},
	
	toggle: function(){
		(this.element.hasClass('on')) ? this.close() : this.open();
	},
	
	open: function(){
		this.element.setStyle('visibility', 'visible');
		this.callChain();
		this.fx.start({
			'height': this.height
		});
		this.element.addClass('on');
	},
	
	close: function(){
		this.fx.start({
			'height': 0
		}).chain(function(){
			this.element.setStyle('visibility', 'hidden');
			this.callChain();
		}.bind(this));
		this.element.removeClass('on');
	}
});

iSmart = new Class({
	//Todo: add format = words and more/less options
	Implements: Options,
	options: {
		format: 'characters', 
		length: 100,
		showMore: false,
		truncEnd: '...',
		moreText: {
			more: '+more',
			less: '-less'
		}
	},

	
});




window.addEvent('domready', function() {		
	
	if ($('pillars') && typeof(Isamrt) == 'undefined') Pillars.init();
	if ($$('.view-changer') != "") {viewChanger();}
});

