function add_error_message(m) {
	var e = $('#contact-form-error');
	if( m === '' ) {
		e.remove();
	} else {
		if( e.length > 0 ) {
			e.text(m);
		} else {
			var p = $('<p></p>');
			p.text(m);
			p.attr( 'id', 'contact-form-error' );
			p.addClass('error');
			$('#contact-form').before(p);
		}
	}
}

function validate_form() {
	var e = [];
	var c = $('#contact-form .text-input');
	c.each( function() {
		if( $(this).hasClass('required') && $(this).val() === '' ) {
			e.push( $(this).siblings('input[type="hidden"].validation').first().val() );
		} else if( $(this).hasClass('email') ) {
			var f = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
			var a = /[\(\)<\>\,\;\:\\\"\[\]]/;
			if( (!f.test( $(this).val() )) || $(this).val().match(a) ) {
				e.push( 'a valid email address' );
			}
		}
	});
	if( e.length > 0 ) {
		var m = 'Please enter ';
		m += e[0];
		if( e.length > 1 ) {
			if( e.length > 2 ) {
				for( var i = 1; i < ( e.length - 1 ); i++ ) {
					m += ', ';
					m += e[i];
				}
			}
			m += ' and ';
			m += e[e.length-1];
		}
		m += '.';
		add_error_message(m);
		return false;
	}
}

function add_validation() {
	var f = $('#contact-form');
	if ( f.length > 0 ) {
		f.submit( function() {
			return validate_form();
		});
		f.bind('reset', function() {
			add_error_message('');
		});
	}
}

function add_banner_rotation() {
	var c = $('#home-banner-text-container');
	if( c.length > 0 ) {
		c.cycle({
			cleartypeNoBg: 1,
			timeout: 8000
		});
	}
}

function add_twitter_rotation() {
	var c = $('#twitter ol');
	if( c.length > 0 ) {
		c.cycle({
			timeout: 8000
		});
	}
}

function roadmap_callback(c, n, o) {
	var i = o.currSlide;
	switch(i) {
		case 0:
			$('.prev').fadeTo( 200, 0.2 );
			$('.next').fadeTo( 200, 1 );
			break;
		case o.slideCount - 1:
			$('.next').fadeTo( 200, 0.2 );
			$('.prev').fadeTo( 200, 1 );
			break;
		default:
			$('.next, .prev').fadeTo( 200, 1 );
			break;
	}
}

function add_roadmap_rotation() {
	var c = $('#roadmap-container');
	var b = $('.roadmap-block');
	if( c.length > 0 ) {
		$('.roadmap-header').css({
			'text-align': 'center'
		});
		b.css({
			'height': '450px',
			'overflow': 'hidden'
		});
		b.prepend(
			'<a href="#" title="Previous" class="prev">' +
			'<img src="/assets/images/block-arrow-left.png" alt="Previous" />' +
			'</a>' +
			'<a href="#" title="Next" class="next">' +
			'<img src="/assets/images/block-arrow-right.png" alt="Next" />' +
			'</a>'
		);
		c.cycle({
			fx: 'scrollHorz',
			height: '500px',
			nowrap: 1,
			next: '.next',
			prev: '.prev',
			after: roadmap_callback,
			timeout: 0
		});
	}
}

function add_show_hide() {
	var b = $('.about-block');
	b.each( function(i) {
		var c = $(this).find('.about-block-content');
		var h = $(this).find('.about-block-heading');
		c.hide();
		h.addClass('block-closed');
		h.click( function() {
			c.slideToggle();
			h.toggleClass('block-closed block-open');
		});
	});
}

function add_map() {
	var p = $('#contact-details');
	if( p.length > 0 ) {
		var c = $('<div id="map"></div>');
		var l = new google.maps.LatLng(53.659314, -1.76794);
		var o = {
			zoom: 14,
			center: l,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		var m = new google.maps.Map( c.get(0), o );
		var k = new google.maps.Marker({
			position: l,
			title: 'Intelligent Formulation',
			icon: '/assets/images/icon.png'
		});
		p.prepend(c);
		k.setMap(m);
	}
}

$(document).ready( function() {
	add_validation();
	add_banner_rotation();
	add_twitter_rotation();
	add_roadmap_rotation();
	add_show_hide();
	add_map();
});

