var cki = {
		
	slideshow: function(options) {
		//properties
		this.id 	= $(options.id);
		this.slides = this.id.getElementsBySelector('.slide');
		
		//methods (private)
		var control = function(o, i) {
			new Effect.Parallel([
				new Effect.Fade(o, {sync: true}),
				new Effect.Appear(i, {sync: true})
			], {duration: 1});
		}
		
		var createNav = function(slides) {
			var headline, desc;
			
			//create new elements
			var ul 	= new Element('ul', {'class': 'slideshow_nav'});
			var i	= 1;
			
			slides.each(function(e) {
				var li, a, span;
				
				//get content for each nav item
				headline 	= e.getElementsBySelector('h2 a')[0].innerHTML;
				desc		= e.getElementsBySelector('.desc')[0].innerHTML;
				
				//create list item
				if(i == 1) {
					li 	= new Element('li', {'class': 'first'});
				} else if(i == 3) {
					li = new Element('li', {'class': 'last'});
				} else {
					li 	= new Element('li');
				}
				
				a = new Element('a');
				
				//create link element
				if(i == 1) {
					a.addClassName('active');
				}
				
				//create span element
				span	= new Element('span');
				
				a.writeAttribute('href', '#slide' + i);
				span.innerHTML = headline;
				a.innerHTML = desc;
				a.insert({top: span});
				li.insert({bottom: a});
				ul.insert({bottom: li});
				
				i++;
			});
			
			return ul;
		}
		
		var animate = function(nav) {
			nav.each(function(e) {
				
			});
		}
		
		//set height for features element
		this.id.setStyle({height: '24.333em'});

		//create & insert nav
		var nav = createNav(this.slides);
		this.id.insert({bottom: nav});
		
		//add click functionality to nav links
		var links = nav.getElementsBySelector('li a');
		var current_slide, current_link, selected_slide, selected_link;
		links.each(function(e) {
			e.observe('click', function(ev) {
				ev.stop();
				selected_slide = $(e.readAttribute('href').replace('#', ''));
				selected_link = e;
				current_slide = $(nav.getElementsBySelector('.active')[0].readAttribute('href').replace('#', ''));
				current_link = nav.getElementsBySelector('.active')[0];
				if(selected_slide.identify() != current_slide.identify()) {
					current_link.removeClassName('active');
					selected_link.addClassName('active');
					control(current_slide, selected_slide);
				}
			});
		});
		
		if(options.animation) {
			animate(links);
		}
	},	
	equalizer: function(a) {
		var h = 0;
		
		a.each(function(e) {
			h = $(e).getHeight() > h ? $(e).getHeight() : h;
		});
		
		a.each(function(e) {
			$(e).setStyle({'height': h + 'px'});
		});
	},
	externals: function() {
		$$('[rel=external]').each(function(e) {
			e.observe('click', function(ev) {
				ev.stop();
				window.open(e);
			});
		});
	},
	toggleValue: function(input) {
		var input = $(input);
		input.observe('focus', function() {
			if(this.value == 'Enter your email address') {
				this.value = '';
			}
		});
		
		input.observe('blur', function() {
			if(this.value == '') {
				this.value = 'Enter your email address';
			}
		});
	}
}