/*
	Effects and interactions for Kim Ronemus Design
	kimronemusdesign.com
	author: Rich Testani
*/

//Main navigation lift animation
$$('.menuitem').each(function(s){

	if($(s).down(4).tagName == 'SPAN' && $(s).down(4).className == 'lift') {
		var lift = $(s).down(4);
		$(s).observe('mouseenter', function(event) {
			$(lift).show();
			new Effect.Scale(lift, 30, {
				scaleX: false,
				scaleY: true,
				scaleContent: false,
				scaleMode: { originalHeight: 100 },
				scaleFrom: 1,
				transition: Effect.Transitions.spring,
				mode: 'absolute',
				duration: 3.0
			});
			Event.stop(event);
		});
		
		$(s).observe('mouseleave', function() {
			
			new Effect.BlindUp(lift);
			
		});
	}
	

});

if($('client_work')) {
	
	//get links in paragraphs
	var first_p = $$('#client_work p a');
	
	//get first link
	var client_link = first_p[0];

	if(client_link) {
		$(client_link).observe('click', function() {

			var mylink = window.open(client_link.href, 'new_window', '_self, toolbar=1,resizable=0, scrollbars=1');
			Event.stop(event)	

		})
	}
	

}

//work page springing box
$$('.box').each(function(s) {
	
	var more = $(s).down(2);
	$(s).observe('mouseenter', function(e) {
		
		
		//$(more).show();
		/*
		new Effect.Scale(more, 100, {
			scaleX: false,
			scaleY: true,
			scaleContent: false,
			scaleFrom: 1,
			mode: 'absolute',
			duration: 0.5
		});
		*/
		
		new Effect.Appear(more, {
			duration: 0.3
		})
		
		
	});
	
	$(s).observe('mouseleave', function(e) {
		

		new Effect.Fade(more, {
			duration: 0.2
		})

	});
	
	
});



//Handle client list clicks
if($('client_list')) {
	$('client_list').observe('click', function(e) {
		
		if(!$('client_list').hasClassName('active')) {
			
			$('client_list').addClassName('active');
			
		} else {
			
			$('client_list').removeClassName('active');
			
		}
		
		new Effect.toggle('clients', 'blind', {
			duration: 0.5
		});


	});
}


//Contact Form validator
var Contact = Class.create({
	
	initialize: function(form, action) {
		
		this.form = $(form);
		this.fields = $(form).getElements();
		this.defaults = this.get_defaults(this.fields);
		this.status = 0;
		this.action = action;
		this.error;
		
		
		for(i=0; i<this.fields.length; i++) {

			if($(this.fields[i]).readAttribute('type') != 'image' || $(this.fields[i]).readAttribute('type') != 'submit') {

				$(this.fields[i]).insert({
					
					after: '<div class="error"></div>'
					
				})
				
			}
			
			$(this.fields[i]).observe('focus', this.empty.bind(this, i));
			
		}
		
		$(form).observe('submit', this.send.bind(this));
	},
	
	empty: function(i, e) {
		
		if($(this.fields[i]).value == this.defaults[i]) {
			
			$(this.fields[i]).value = '';
			
		}
		
	},

	
	get_defaults: function(fields) {
		
		var defaults = new Array();
		for(i=0; i<fields.length; i++) {

			defaults[i] = fields[i].value;
			
		}

		return defaults;
	},
	
	validate_email: function(text) {
		var pattern = /^[^@]+@[^@]+.[a-z]{2,}$/i;
		var test 	= text.search(pattern);
		if(test == -1) {
			return false;
		} else {
			return true;
		}
	},
	
	presence: function(field) {

		if( $(field).present() ) {
			return true
		} else {
			return false;
		}
		
	},
	
	send: function() {
		var params = new $H();
		for(i=0; i<this.fields.length; i++) {
			
			if($(this.fields[i]).getValue() == this.defaults[i] || !this.presence($(this.fields[i]))) {

				if($(this.fields[i]).readAttribute('type') != 'submit') {
					
					this.error = 'The field '+this.fields[i].name + ' is required';
					$(this.fields[i]).next().update(this.error);
					this.status = 0;
					break;
					
				}
				
				
			} else {
				params.set(this.fields[i].name, $(this.fields[i]).getValue());
				$(this.fields[i]).next().update();
				
			}
			
			if($(this.fields[i]).name == 'email') {

				if(!$(this.validate_email($(this.fields[i]).value))) {
					
					this.error = 'The field '+this.fields[i].name + ' is invalid';
					$(this.fields[i]).next().update(this.error);
					this.status = 0;
					break;

				} else {
					
					params.set(this.fields[i].name, $(this.fields[i]).getValue());
					this.status = 1;
					
				}
				
			}
			
		}
		


		if(this.status == 1) {
			
			new Ajax.Request(this.action, {
				method:'post',
				parameters:params,
				onComplete: function(r) {
					var done = r.responseText;
					if(done == 1) {
						$('form_holder').update('<img src="/images/interface/contact_done" id="done" />');
					}
				}
				
			})
			
		}


	}
	
	
});

if($('contact_form')) {
	var my_form = new Contact('contact_form', '/files/contact_process.php');
}

if($('default')) {
	
	new Carousel('carousel-wrapper', $$('#carousel-content .featured'), $$('a.carousel-control'), {duration: 0.6, effect: 'scroll', wheel: false, circular: false});
	
}

