$(function(){
	$('.three_dd').corner('10px');
	
	$('#news-and-updates .content').corner('10px bottom');
	$('#news-and-updates .header').corner('10px top');	
	
	$('#news-and-updates .post-date').corner('5px');
	
	$('#page.about #section-header .section-nav-items li a').corner('5px top');	
	
	$('#page.about #content .about-image-outer-container').corner('10px');
	
	$('.expandable-image-container').mouseover(function(){
		var href = ($(this).children('.three_dd-image').children('a').attr('href'));
		if(href != "#") $(this).children('.enlarge-image-inner').show();
	});
	
	$('.expandable-image-container').mouseout(function(){
		$(this).children('.enlarge-image-inner').hide();
	});	

	if($('#page').attr('class') != 'gallery') {
		$('.fancybox').fancybox();
	}	
	
	$('.no-fancybox').click(function(){
		return false;
	});
	

	
	$('form#contact-form').ajaxForm({
		beforeSubmit: validateContactForm,
		success: contactFormSubmissionComplete
	});	
	
	$('form#book_release-form').ajaxForm({
		beforeSubmit: validateEmailForm,
		success: emailFormSubmissionComplete,
		dataType: 'json'
	});
	
/*
	$('form#three_dd-day-signup').ajaxForm({
		beforeSubmit: validateEmailForm,
		success: emailFormSubmissionComplete,
		dataType: 'json'
	});	
*/

	
	$('form#three_dd-day-signup').submit(function(){
		return validate3DDDayForm();
	});
	
	var navWidth = 0;

	$('#nav ul li').each(function(i){
		var m = $('#nav ul li').css('margin-right');
		m = Number(m.substr(0, m.length-2));
		var p = null;
		var px = 0;
		var l = 0;
		var w = 0;
				
		if(i-1 >= 0){	
			p = $('#nav ul li').eq(i-1);
			px = p.css('left');
			px = Number(px.substr(0, px.length-2));
			l = px + Number(p.find('a').width()) + m;
			
			if(i == ($('#nav ul li').length-1)){
				navWidth = Number(l + $(this).find('a').width());
			}
		}
		
		$(this).css({
			'position':'absolute',
			'left':l+'px'
		});
	});
	$('#nav ul li').eq(2).find('.description').css('top', '-2px');
	$('#nav').css('width', navWidth + 'px');
	
});





function validateEmail(elementValue){
	var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	return emailPattern.test(elementValue);
}



function validate3DDDayForm(){
	var valid = true;
	var email = $('form#three_dd-day-signup .email-container').children('#email');
	var output = $('form#three_dd-day-signup .output');
	
	if(!validateEmail(email.val())){
		valid = false;
		email.addClass('error');
	}else{
		email.removeClass('error');
	}
	
	if(!valid){
		output.addClass('error');
		output.text('Invalid Email.');
	}else{
		output.removeClass('error');
		output.text('');
		
		valid = confirm("By clicking OK, you are confirming that you are at least 18 years of age.");
	}
	
	if(valid) _gaq.push(['_trackEvent', 'Email Validated', '3DD/Day']);	
	
	return valid;
}

function validateEmailForm(formData, jqForm, options){
		
	var valid = true;
	var email = $(jqForm).children('.email-container').children('#email');
	var output = $(jqForm).children('.output');
	
	if(!validateEmail(email.val())){
		valid = false;
		email.addClass('error');
	}else{
		email.removeClass('error');
	}
	
	if(!valid){
		output.addClass('error');
		output.text('Invalid Email.');
	}else{
		output.removeClass('error');
		output.text('');
		
		valid = confirm("By clicking OK, you are confirming that you are at least 18 years of age.");
	}
	
	return valid;

}

function emailFormSubmissionComplete(responseText, statusText, xhr, $form){

	var formId = ($form.attr('id'));
	
	var email = $form.children('.email-container').children('#email');
	var output = $form.children('.output');
	
	if(responseText.success){
		email.removeClass('error');
	    email.val('');
	    
	    output.removeClass('error');
		output.text('Your email has been added.');	
		
		 _gaq.push(['_trackEvent', 'Email Capture', formId]);	
		 
	}else{
		email.removeClass('error');
	    email.val('');
	    
	    output.addClass('error');
		output.text(responseText.error);	
	}
}









function validateContactForm(formData, jqForm, options){
	var valid = true;
	var email = $('form#contact-form #email').val();

	if($('form#contact-form #name').val().length < 3){
		valid = false;
		$('form#contact-form #name').addClass('error');
	}else{
		$('form#contact-form #name').removeClass('error');
	}
	
	if(!validateEmail(email)){
		valid = false;
		$('form#contact-form #email').addClass('error');
	}else{
		$('form#contact-form #email').removeClass('error');
	}
	
	if($('form#contact-form #message').val().length < 5){
		valid = false;
		$('form#contact-form #message').addClass('error');
	}else{
		$('form#contact-form #message').removeClass('error');
	}
	
	if(!valid){
		$('form#contact-form .output').addClass('error');
		$('form#contact-form .output').text('There were errors in your form.');
	}else{
		$('form#contact-form .output').removeClass('error');
		$('form#contact-form .output').text('');
	}
	
	return valid;
}

function contactFormSubmissionComplete(responseText, statusText, xhr, $form)  { 
    // for normal html responses, the first argument to the success callback 
    // is the XMLHttpRequest object's responseText property 
 
    // if the ajaxForm method was passed an Options Object with the dataType 
    // property set to 'xml' then the first argument to the success callback 
    // is the XMLHttpRequest object's responseXML property 
 
    // if the ajaxForm method was passed an Options Object with the dataType 
    // property set to 'json' then the first argument to the success callback 
    // is the json data object returned by the server 
 
    //alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
    //    '\n\nThe output div should have already been updated with the responseText.'); 
    
    $('form#contact-form #name').removeClass('error');
    $('form#contact-form #name').val('');
    
    $('form#contact-form #email').removeClass('error');
    $('form#contact-form #email').val('');
     
    $('form#contact-form #message').removeClass('error');
    $('form#contact-form #message').val('');
    
    $('form#contact-form .output').removeClass('error');
	$('form#contact-form .output').text('Your message was sent.');
    
} 

