(function($){
	$(document).ready(function() {
	
		// Tabs
		///-------------------------------------------------------------
		// vars for both
		var allTabs = $(".tabs article");
		var vTabs = $(".vertical article");
		var hTabs = $(".horizontal article");
		var allLinks = $(".tabs > ul li a");
		var vLinks = $(".vertical > ul li a");
		var hLinks = $(".horizontal > ul li a");
		var currentClass = "current";
		// give attr to each panel
		var counter = 1;
		$(allTabs).each(function(){
			$(this).attr("link", "tab-"+ counter +"");
			counter++;
		});
		// give attr to each link
		var counter = 1;
		$(allLinks).each(function(){
			$(this).attr("link", "tab-"+ counter +"");
			counter++;
		});
		// vertical functions
		vLinks.filter(':first').addClass(currentClass);
		vTabs.hide().filter(':first').show();
		$(vLinks).hover(function(){
			vLinks.removeClass(currentClass);
			allTabs.hide()
			link = $(this).attr("link");
			allTabs.filter('[link='+ link +']').show();
			$(this).addClass(currentClass);
		});
		// horizontal vars
		hLinks.filter(':first').addClass(currentClass);
		var tabWidth = 688;
		var tabsNum = allTabs.length;
		var reel = $("#reel");
		var reelWidth = parseInt(tabsNum*tabWidth);
		var reelWidthPx = reelWidth+"px";
		reel.css("width",reelWidthPx);
		// animation					   
		var time = 600;
		var effect = '';
		// horizontal functions
		$(hLinks).click(function(){
			hLinks.removeClass(currentClass);
			$(this).addClass(currentClass);
			link = $(this).attr("link"); 
			linkNum = parseInt(/tab-(\d+)/.exec(link)[1], 10);
			tabPosition = parseInt(-((linkNum-1)*tabWidth));
			tabPositionPx = tabPosition+"px";
			// animate
			$(reel).animate({"left": tabPositionPx},
			  {queue:false, duration:time, easing:effect});
			return false;
		});	
		///-------------------------------------------------------------
		// YouTube gallery
		$('.video-gallery article a').lightboxVideoGallery();
		// HTML5 placeholder support
		$('input, textarea').placeholder();
		// Slider
		$('#slider .slides')
	    //.after('<div id="controls"><div>')
	    .cycle({
		    fx:     'fade', 
		    speed:   1000,
		    timeout:  10000, 
		    pager:  '#controls',
		    cleartype: true,
		    cleartypeNoBg: true
		});
		// Validate Forms
		///-------------------------------------------------------------
		$("#contact").submit(function() {
			$(this).addClass("loading");
			result = validmate_forms();
			$(this).find("button").blur();
			return result;
		});
		// Fade Optin Checkbox
		$(function(){
			$("#contact input[type=email]").focus(function(){
				$("#contact .optin").fadeIn("slow");
			});
			if ($("#contact input[type=email]").val()!='Required') {
				//$("#contact .optin").css({ display: block });
			}
		});
		// Redirect on success
		function redirect_url(url) {
			window.location = url;
		}
	});
	///-------------------------------------------------------------
	// fade in page on load to combat FOUT
	$(window).load(function() {
  		$("#wrapper").fadeIn();
	});
})(this.jQuery);
