/**
 * Actions and effects for Snapflow.com
 *
 * @author Michael Gilley
 * @version $Idv2.0$
 * @copyright SnapFlow, 14 November, 2009
 * @link www.180bydesign.com
 * @package SnapFlow Site Project
 **/

jQuery(document).ready(function($) {
	var t;
	// Navigation flow
	$('#nav > li').each(function() {
		$('<span/>').hide().appendTo($(this));
	}).hover(function() {
		if (!$(this).hasClass('currentpage')) {
			$(this).find('span').fadeIn(120);
		}
	}, function() {
		$(this).find('span').fadeOut(250);
	});
	
	// Home Slideshow
	var pos = bgpos = 0;
	var numframes = $('.frame').length-1;
	var rendering = false;
	$('.frame:first').addClass('active');
	
	var $tabs = $('<ul id="slidetabs"/>').insertBefore('.slide');
	
	$('.frame').each(function(i) {
		$(this).addClass('frame-'+i);
		$('<li/>').addClass('tab-'+i).append($('<a href="#"/>')).appendTo($tabs);
	})
	
	$('#slidetabs li:first').addClass('active');
	$('#slidetabs li').hover(function() {
		$(this).addClass('hover');
	}, function() {
		$(this).removeClass('hover');
	}).find('a').click(function() {
		if (!$(this).hasClass('active') && !rendering) {
			clearInterval(t);
			pos = $(this).parent().attr('class').split(' ')[0].split('-')[1];
			slideFrame();
		}
		return false;
	});
	
	$('a.featured-watch').click(function() {
		var f = $(this).attr('rel');
		if (!$('.'+f).hasClass('active') && !rendering) {
			clearInterval(t);
			pos = f.split('-')[1];
			slideFrame(playvid);
		}
		return false;
	});
	
	function playvid() {
		// To fix IE problem.
		var r = $('.frame.active object')[0].CallFunction('<invoke name="api_play" returntype="javascript"></invoke>');
		eval(r);
		$('.playbtn, .playshield').fadeOut('fast');
		return true;
	}
	
	function slideFrame(callback) {
		rendering = true;
		callback = callback || function() {};
		
		var $cf = $('.frame.active');
		bgpos = bgpos-980;
		
		$('#slidetabs').find('li.active').removeClass('active').end().find('li.tab-'+pos).addClass('active');
		$('.frame.frame-'+pos).addClass('active');
		
		$('.home-slideshow').animate({backgroundPosition: '('+bgpos+'px 239px)'}, 2000, 'easeInOutExpo');
		
		setTimeout(function() {
			$('.slide').fadeOut({
				duration: 1000,
				easing: 'easeOutExpo',
				complete: function() {
					$('.slide').css({left: pos*-980}).fadeIn({
						duration: 2000,
						easing: 'easeOutExpo',
						complete: function() {
							rendering = false;
							callback();
						}
					});
				}
			});
		}, 500);
	}
	
	$(window).load(function() {
		t = setInterval(function() {
			if (!rendering && pos < numframes) {
				pos++;
				slideFrame();
			}
		}, 7000);
	});
	
	// videos on homepage
	$('.vidcont').each(function(i) {
		var src = $(this).find('span').html();
		var moogaloop = $(this).find('.mov').flash({
			swf: src,
			id: 'play_'+i,
			width: 622,
			height: 350,
			params: {
				allowScriptAccess: 'always'
			}
		});
		$(this).find('.playshield').css('opacity', .4);
	});
	
	$('.playbtn, .watchvid').click(function() {
		playvid();
		return false;
	});
	
	play = function() {
		if ($('.frame.active object').length > 0) {
			var u = $('.frame.active object')[0].CallFunction('<invoke name="api_play" returntype="javascript"></invoke>');
			var d = $('.frame.active object')[0].CallFunction('<invoke name="api_pause" returntype="javascript"></invoke>');
			eval(u);
			eval(d);
		}
	}
	
	// custom dropdowns for forms
	$("body select").msDropDown({showIcon:false});
	$("#job_title, #country, #primary_occ, #industry_affil").msDropDown({visibleRows:10, rowHeight:35});
	
	// form validation
	var mail = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
	
	$('#freeform').submit(function(event) {
		var $email = $('input[name="email"]'),
			$fname = $('input[name="firstname"]'),
			$lname = $('input[name="lastname"]'),
			$phone = $('input[name="phone1"]'),
			pass = true;
			
		if ($email.length > 0 && !mail.test($email.val())) {
			pass = false;
			alert('Please provide a valid email address. Thank you!');
			$email.focus().select();
		} else if ($fname.length > 0 && !(/^[a-z ]+$/i.test($fname.val()))) {
			pass = false;
			alert('Please provide your first name. Only alphanumeric characters are allowed. Thank you!');
			$fname.focus().select();
		} else if ($lname.length > 0 && !(/^[a-z ]+$/i.test($lname.val()))) {
			pass = false;
			alert('Please provide your last name. Only alphanumeric characters are allowed. Thank you!');
			$lname.focus().select();
		} else if ($phone.length > 0 && !(/^\(?(\d{3})\)?[- .]?(\d{3})[- .]?(\d{4})$/.test($phone.val()))) {
			pass = false;
			alert('Please provide a valid phone number where you can be reached. Thank you!');
			$phone.focus().select();
		}
		
		if (!pass) {
			event.preventDefault();
		}
	});
});
var play = false;
function vimeo_player_loaded() {
	play();
}