// JavaScript Functions for ACTIVEHEALTHCLUBS.COM.AU
// Written in 2010 by DPHI01 @ AWD.COM.AU

// PAGE INITIALISATION FUNCTIONS
$(document).ready(function(){
	$('#member_login_button a').bind('click',function() { toggleLogin(); return false; });
	$('a.hours_link').fancybox({'scrolling' : 'no'});
	$('a.map_link').fancybox();
	$('a.timetable_link').fancybox({'scrolling' : 'no'});
	$('ul.gf_select li:first a').bind('click',function() { toggleDropListGF(); return false; });
	$('ul.gf_select li:first a').bind('blur',function() { toggleDropListGF(); });
	$("a.video_link").click(function() {
		$.fancybox({
				'padding'		: 0,
				'autoScale'		: false,
				'transitionIn'	: 'none',
				'transitionOut'	: 'none',
				'title'			: this.title,
				'scrolling'     : 'no',
				'width'			: 680,
				'height'		: 495,
				'href'			: this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
				'type'			: 'swf',
				'swf'			: {
					 'wmode'		: 'transparent',
					'allowfullscreen'	: 'true'
				}
			});
	
		return false;
	});
});

// AJAX TICKER
var runTicker;
var tickerStage = 0;
function doTicker(target,message) {
	if (tickerStage == 0) {
		$(target).html(message);
		tickerStage = 1;
	} else if (tickerStage == 1) {
		$(target).html(message+'.');
		tickerStage = 2;
	} else if (tickerStage == 2) {
		$(target).html(message+'..');
		tickerStage = 3;
	} else if (tickerStage == 3) {
		$(target).html(message+'...');
		tickerStage = 0;
	}
}

// EMAIL OBFUSCATOR
function obfuscateEmail(user,domain) {
	document.write('<a href="mailto:'+user+'@'+domain+'">'+user+'@'+domain+'</a>');
}

// EMAIL VALIDATOR
function isValidEmail(str) {

	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	
	if (str.indexOf(at)==-1){
		return false;
	}
	
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false;
	}
	
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}
	
	if (str.indexOf(at,(lat+1))!=-1){
		return false;
	}
	
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	}
	
	if (str.indexOf(dot,(lat+2))==-1){
		return false;
	}
	
	if (str.indexOf(" ")!=-1){
		return false;
	}
	
	return true;
}

// TIMETABLE DROP DOWN LIST ANIMATION
function showTimetableList() {
	$('#hr_timetable_list').slideDown(100);
}
function hideTimetableList() {
	setTimeout(function(){$('#hr_timetable_list').slideUp(100);},100);
}

// MEMBER LOGIN ANIMATION
function toggleLogin() {
	if ($('#member_login').css('top') == '57px') {
		$('#member_login').animate({'top':'11'},300);
	} else {
		$('#member_login').animate({'top':'57'},300);
	}
}

// GROUP FITNESS HOME PAGE ANIMATION
function switchProgram(programName){
	$('ul#gf_class_info > li:visible').fadeOut(350,function(){
		$('div.inner_info_container').css('display','none');
		$('li#info_'+programName).fadeIn(350,function(){
			$('li#info_'+programName+' div.inner_info_container').fadeIn(150);
		});
	});
}

// GROUP FITNESS DROP DOWN LIST ANIMATION
function toggleDropListGF() {
	if($('ul.gf_select').height() > 30) {
		$('ul.gf_select').animate({height: 30});
	} else {
		$('ul.gf_select').animate({height: ($("ul.gf_select > li").size()*31)},300);
	}
}

// CONTACT PAGE EMAIL SENDER
function submitContactForm() {

	// Load variables from form
	var fromName = $('#from_name').val();
	var from = $('#from_email').val();
	var fromMember = $('input[@name="from_member"]:checked').val();
	var fromMemberNo = $('#from_member_id').val();
	var to = $('#to_dept').val();
	var message = $('#send_message').html();
	var addList = false;
	
	// Hide validation messages if visible
	$('.validation_message:visible').slideUp(100);
	
	// See if the subscribe box has been checked
	if ($('#list_add').is(':checked'))
	{
		addList = true;
	}
	
	if (fromName == ''){
		// Didn't provide their name
		$('#from_name_required').slideDown();
		$('#from_name').focus();
		return false;
	} else if (!isValidEmail(from)) {
		// Didn't provide a valid email address
		$('#from_email_required').slideDown();
		$('#from_email').focus();
		return false;
	} else if (fromMember == '1' && fromMemberNo == '') {
		// Said they're a member, but didn't provide any barcode or member number
		$('#from_member_id_required').slideDown();
		$('#from_member_id').focus();
		return false;
	} else if (message == '') {
		// No message provided
		$('#send_message_required').slideDown();
		$('#send_message').focus();
		return false;
	} else {
		
		// Animate messages
		$('#message_status').slideDown(200);
		$('#contact_form').slideUp(200);
		runTicker = setInterval(function() {doTicker('#status','Please wait while your message is being sent');},500);
		
		// Submit form
		$.post('/contact/send_email.php',{ 'fn': fromName, 'f': from, 'fm': fromMember, 'fmn': fromMemberNo, 'to': to, 'm': message, 'ml': addList }, function(data){
			if(data.status == 'success') {
				// Successfully sent
				clearInterval(runTicker);
				$('#status').html('Thank you! Your message has been sent.');
			} else {
				// Error, display message
				clearInterval(runTicker);
				$('#message_status').slideUp(200);
				$('#contact_form').slideDown(200);
				alert('There was an error while sending your message. Please try again in a few moments.\n\nThe server returned:\n'+data.status);
			}
		},'json');
		
	}
	
}
