function validate_value(field,name,alerttxt,regex) {
	
	with (field){
	
		reg = new RegExp(regex)
		
		if ((!reg.test(field.val()))|| field.val()=="") {
		
			$('.error').each( function() {
				var element = this;
				
				if ($(element).attr("class").indexOf(name) != -1) {
						$(element).removeClass("hide");
						$(element).text(alerttxt);
				}
			});
		
			return false;
		
		} else {
		  
			return true;
		
		}
	  
	}
}

function clearErrorMessages() {
	$(".error").text();
	$(".error").addClass("hide");
	
	$("#errorMsg").text();
	$("#errorMsg").addClass("hide");
	
	var error;
	error = false;	
}

function displayErrors(error) {
	if(error == true) {
		$("#errorMsg").removeClass("hide");
		$("#errorMsg").text("There are some errors with your submission.  Please try again.")
		$( 'html, body' ).animate( { scrollTop: 0 }, 'slow' );
		return true;
		
	}
}


$(document).ready(function(){
						   
	
	$('#bodyContainer #wrapper #body #main #heading .inside').css('padding-top',$('#bodyContainer #wrapper #body ul#nav li.selectedElement .children, #bodyContainer #wrapper #body ul#nav li.selectedElementAncestor .children').height()+10+'px');
	
	
	// Home page
	
	if($('#home').length) {
		var slider = $('#home #bodyContainer #wrapper #body #slides1').bxSlider({
			
			controls: false,
			auto: true, 
			speed: 1000,
			pause: 10000,
			
			onNextSlide: function(currentSlide, totalSlides){			
				$('#home #bodyContainer #wrapper #body .paging a').removeClass('active');
				$("#home #bodyContainer #wrapper #body .page_"+(currentSlide+1)).addClass('active');
			}    
	
		});
	
	
		$('#home #bodyContainer #wrapper #body .page_1').click(function(){
			slider.goToSlide(0);
			return false;
		});
		
		$('#home #bodyContainer #wrapper #body .page_2').click(function(){
			slider.goToSlide(1);
			return false;
		});
		
		$('#home #bodyContainer #wrapper #body .page_3').click(function(){
			slider.goToSlide(2);
			return false;
		});
		
		$('#home #bodyContainer #wrapper #body .page_4').click(function(){
			slider.goToSlide(3);
			return false;
		});
		
		$('#home #bodyContainer #wrapper #body .paging a').click(function(){
			var thumbIndex = $('#home #bodyContainer #wrapper #body .paging a').index(this);
			slider.goToSlide(thumbIndex);
			$('#home #bodyContainer #wrapper #body .paging a').removeClass('active');
			$("#home #bodyContainer #wrapper #body ."+$(this).attr("class")).addClass('active');
			return false;
		});
		
		$('#home #bodyContainer #wrapper #body .paging a.page_1').addClass('active');
		
		$(function () {
			var swimathon = new Date();
			swimathon = new Date(2012, 4 - 1, 27);
			$('#home #bodyContainer #wrapper #body .countdown').countdown({until: swimathon,format: 'dH'});
			$('#home #bodyContainer #wrapper #body .countdown').countdown('pause')
			//$('#home #bodyContainer #wrapper #body .countdown .countdown_section').prepend('<span class="line"></span>');
		});
	 
	}
	
	if($('#gallery').length) {
		$('#gallery #bodyContainer #wrapper #body #main #left .inside a.lightbox').lightBox();
	}

	$("#bodyContainer #wrapper #body #main #left .inside dl dd dl dt:odd, #bodyContainer #wrapper #body #main #left .inside dl dd dl dd:odd").addClass("even");
	$("#bodyContainer #wrapper #body #main #left .inside dl dd dl dt:even, #bodyContainer #wrapper #body #main #left .inside dl dd dl dd:even").addClass("odd");
	
	$("#bodyContainer #wrapper #body #main #left .inside table tr :nth-child(2n)").removeClass("odd").addClass("even");
	$("#bodyContainer #wrapper #body #main #left .inside table tr :not(:nth-child(2n))").removeClass("even").addClass("odd");

	
	$("#bodyContainer #wrapper #body #main #left .inside a.showSwimmerDetails").click(function () {
		//$("#bodyContainer #wrapper #body #main #left .inside div#"+$(this).attr('href')).toggle();
		$("#bodyContainer #wrapper #body #main #left .inside div#"+$(this).attr('id')).toggle();
		//alert($(this).attr('id'));
		if($(this).html() == "Show Swimmer Details \u2192") {
			$(this).html("\u2190 Hide Swimmer Details");
		} else {
			$(this).html("Show Swimmer Details \u2192");
		}
		return false;
	});

	
	
	$('#bodyContainer #wrapper #body #main #left .inside span[title].toolTip').qtip({													  
		style: { 
			width: 450,
			padding: 5,
			background: '#fba71e',
			color: '#ffffff',
			textAlign: 'left',
			border: {
				width: 7,
				radius: 10,
				color: '#fba71e'
			},
			tip: true,
			name: 'dark' // Inherit the rest of the attributes from the preset dark style
		},
				
		position: {
			corner: {
				target: 'rightMiddle',
				tooltip: 'leftMiddle'
			}
		},
		hide: {
            fixed: true // Make it fixed so it can be hovered over
         }

		
	})
	
	/* Limit all text areas to roughly 500 words */
	
	$('#bodyContainer #wrapper #body #main #left .inside form textarea').keyup(function() {
			var len = this.value.length;
			if (len >= 3400) {
				this.value = this.value.substring(0, 3400);
			}
	});
	
	/* Form validation */
	$("#bodyContainer #wrapper #body #main #left .inside form#countyForm").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#county"),"county","Invalid value entered","(^[0-9]{3}$)")==false) {error = true;}
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#townForm").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#town"),"town","Invalid value entered","(^[0-9]{4}$)")==false) {error = true;}
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#postcodeForm").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#postcode"),"postcode","Invalid value entered","(^[a-zA-Z0-9 ]{2,4}$)")==false) {error = true;}
			//if (validate_value($("#distance"),"distance","Invalid value entered","(^[0-9]{1,2}$)")==false) {error = true;}
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	
	$("#bodyContainer #wrapper #body #main #left .inside form#poolLogin").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#username"),"username","Invalid value entered","(^[a-zA-Z0-9 ]{1,40}$)")==false) {error = true;}
			if (validate_value($("#password"),"password","Invalid value entered","(^[a-zA-Z0-9 ]{1,40}$)")==false) {error = true;}
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#lostPassword").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#email"),"email","Invalid value entered","(^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$)")==false) {error = true;}
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#yearForm").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#year"),"year","Invalid value entered","(^[0-9]{4}$)")==false) {error = true;}
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#searchForm").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#term"),"term","Invalid value entered","(^[a-zA-Z0-9 '-]{1,200}$)")==false) {error = true;}
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#tsfRegistration").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#firstname"),"firstname","Invalid value entered","(^[a-zA-Z '-]{1,40}$)")==false) {error = true;}
			if (validate_value($("#surname"),"surname","Invalid value entered","(^[a-zA-Z '-]{1,40}$)")==false) {error = true;}
			if (validate_value($("#email"),"email","Invalid value entered","(^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$)")==false) {error = true;}
			if (validate_value($("#username"),"username","Invalid value entered","(^[a-zA-Z0-9-]{1,40}$)")==false) {error = true;}
			if (validate_value($("#password"),"password","Invalid value entered","(^[a-zA-Z0-9-]{1,40}$)")==false) {error = true;}
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#tsfLogin").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
	
			if (validate_value($("#loginUsername"),"loginUsername","Invalid value entered","(^[a-zA-Z0-9-]{1,40}$)")==false) {error = true;}
			if (validate_value($("#loginPassword"),"loginPassword","Invalid value entered","(^[a-zA-Z0-9-]{1,40}$)")==false) {error = true;}
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	
	$("#bodyContainer #wrapper #body #main #left .inside form#tsfContact").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#name"),"name","Invalid value entered","(^[a-zA-Z '-]{1,40}$)")==false) {error = true;}
			if (validate_value($("#subject"),"subject","Invalid value entered","(^[a-zA-Z '-]{1,40}$)")==false) {error = true;}
			if (validate_value($("#email"),"email","Invalid value entered","(^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$)")==false) {error = true;}
			
	
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#Contact").submit(function () { 
		with ($(this)) {
			
			clearErrorMessages();
			
			if (validate_value($("#name"),"name","Invalid value entered","(^[a-zA-Z '-]{1,40}$)")==false) {error = true;}
			//if (validate_value($("#subject"),"subject","Invalid value entered","(^[a-zA-Z '-]{1,40}$)")==false) {error = true;}
			if (validate_value($("#email"),"email","Invalid value entered","(^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$)")==false) {error = true;}
			if (validate_value($("#query"),"query","Invalid value entered","(^[a-zA-Z 0-9'-,.;:]{1,1000}$)")==false) {error = true;}
			
			if(displayErrors(error)) {
				return false	
			}
			
		}
	});
	
	
	
	$("#bodyContainer #wrapper #body #main #left .inside form#appForm #firstname").blur(function () { 
		if($(this).val()!="" && $("#bodyContainer #wrapper #body #main #left .inside form#appForm #surname").val() != "") {
			$("#bodyContainer #wrapper #body #main #left .inside form#appForm #termsName").html($(this).val() + " " + $("#bodyContainer #wrapper #body #main #left .inside form#appForm #surname").val())	
		} else {
			$("#bodyContainer #wrapper #body #main #left .inside form#appForm #termsName").html('____(name)_________');	
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#appForm #surname").blur(function () { 
		if($(this).val()!="" && $("#bodyContainer #wrapper #body #main #left .inside form#appForm #firstname").val() != "") {
			$("#bodyContainer #wrapper #body #main #left .inside form#appForm #termsName").html($("#bodyContainer #wrapper #body #main #left .inside form#appForm #firstname").val()+ " " +$(this).val()  )	
		} else {
			$("#bodyContainer #wrapper #body #main #left .inside form#appForm #termsName").html('____(name)_________');	
		}
	});
	
	
	$("#bodyContainer #wrapper #body #main #left .inside form#appForm #organisation").blur(function () { 
		if($(this).val()!="") {
			$("#bodyContainer #wrapper #body #main #left .inside form#appForm #termsOrganisation1, #bodyContainer #wrapper #body #main #left .inside form#appForm #termsOrganisation2").html($(this).val())	
		} else {
			$("#bodyContainer #wrapper #body #main #left .inside form#appForm #termsOrganisation1, #bodyContainer #wrapper #body #main #left .inside form#appForm #termsOrganisation2").html('____(organisation)_________');	
		}
	});
	
	$("#bodyContainer #wrapper #body #main #left .inside form#appForm #position").blur(function () { 
		if($(this).val()!="") {
			$("#bodyContainer #wrapper #body #main #left .inside form#appForm #termsPosition").html($(this).val())	
		} else {
			$("#bodyContainer #wrapper #body #main #left .inside form#appForm #termsPosition").html('____(position)_________');	
		}
	});
	
	
	$("#bodyContainer #wrapper #body #main #left .inside form#distanceChallengeReg2Form #referral, #bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #referral").change(function () { 
	
		if($(this).val() == "Other (please specify)") {
			$("#bodyContainer #wrapper #body #main #left .inside form#distanceChallengeReg2Form #other, #bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #other").removeClass("hide");	
		} else {
			$("#bodyContainer #wrapper #body #main #left .inside form#distanceChallengeReg2Form #other, #bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #other").addClass("hide");
			$("#bodyContainer #wrapper #body #main #left .inside form#distanceChallengeReg2Form .other, #bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form .other").addClass("hide");
		}
																
	});
	
	if($('#bodyContainer #wrapper #body #main #left .inside form#distanceChallengeReg2Form #referral, #bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #referral').val() == "Other (please specify)") {
		$("#bodyContainer #wrapper #body #main #left .inside form#distanceChallengeReg2Form #other, #bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #other").removeClass("hide");	
	} else {
		$("#bodyContainer #wrapper #body #main #left .inside form#distanceChallengeReg2Form #other, #bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #other").addClass("hide");
		$("#bodyContainer #wrapper #body #main #left .inside form#distanceChallengeReg2Form .other, #bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form .other").addClass("hide");
	}
	
	
	$("#bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #pool").change(function () { 
	
		if($(this).val() == 9999) {
			$("#bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #otherPool").removeClass("hide");	
		} else {
			$("#bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #otherPool").addClass("hide");
			$("#bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form .otherPool").addClass("hide");
		}
																
	});
	
	if($('#bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #pool').val() == 9999) {
		$("#bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #otherPool").removeClass("hide");	
	} else {
		$("#bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form #otherPool").addClass("hide");
		$("#bodyContainer #wrapper #body #main #left .inside form#simplySwimReg2Form .otherPool").addClass("hide");
	}

	// trying hover fix
	
	$('#nav li[id^=item]').hover(
		function() {
			if(!$(this).hasClass('selectedElementAncestor'))
			{
				$('.selectedElementAncestor').find('.children').css({opacity: 0});
			}
		}
		,
		function() {
			$('.selectedElementAncestor').find('.children').css({opacity: 1});
		}
	);
});

