/*
 * Lazy Load - jQuery plugin for lazy loading images
 *
 * Copyright (c) 2007-2011 Mika Tuupola
 *
 * Licensed under the MIT license:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Project home:
 *   http://www.appelsiini.net/projects/lazyload
 *
 * Version:  1.6.0
 *
 */
(function(a){a.fn.lazyload=function(b){var c={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:window,skip_invisible:!0};b&&(null!==b.failurelimit&&(b.failure_limit=b.failurelimit,delete b.failurelimit),a.extend(c,b));var d=this;return 0==c.event.indexOf("scroll")&&a(c.container).bind(c.event,function(b){var e=0;d.each(function(){if(c.skip_invisible&&!a(this).is(":visible"))return;if(!a.abovethetop(this,c)&&!a.leftofbegin(this,c))if(!a.belowthefold(this,c)&&!a.rightoffold(this,c))a(this).trigger("appear");else if(++e>c.failure_limit)return!1});var f=a.grep(d,function(a){return!a.loaded});d=a(f)}),this.each(function(){var b=this;b.loaded=!1,a(b).one("appear",function(){this.loaded||a("<img />").bind("load",function(){a(b).hide().attr("src",a(b).data("original"))[c.effect](c.effectspeed),b.loaded=!0}).attr("src",a(b).data("original"))}),0!=c.event.indexOf("scroll")&&a(b).bind(c.event,function(c){b.loaded||a(b).trigger("appear")})}),a(c.container).trigger(c.event),this},a.belowthefold=function(b,c){if(c.container===undefined||c.container===window)var d=a(window).height()+a(window).scrollTop();else var d=a(c.container).offset().top+a(c.container).height();return d<=a(b).offset().top-c.threshold},a.rightoffold=function(b,c){if(c.container===undefined||c.container===window)var d=a(window).width()+a(window).scrollLeft();else var d=a(c.container).offset().left+a(c.container).width();return d<=a(b).offset().left-c.threshold},a.abovethetop=function(b,c){if(c.container===undefined||c.container===window)var d=a(window).scrollTop();else var d=a(c.container).offset().top;return d>=a(b).offset().top+c.threshold+a(b).height()},a.leftofbegin=function(b,c){if(c.container===undefined||c.container===window)var d=a(window).scrollLeft();else var d=a(c.container).offset().left;return d>=a(b).offset().left+c.threshold+a(b).width()},a.extend(a.expr[":"],{"below-the-fold":function(b){return a.belowthefold(b,{threshold:0,container:window})},"above-the-fold":function(b){return!a.belowthefold(b,{threshold:0,container:window})},"right-of-fold":function(b){return a.rightoffold(b,{threshold:0,container:window})},"left-of-fold":function(b){return!a.rightoffold(b,{threshold:0,container:window})}})})(jQuery)

var testimonialsWidth;
var testimonialsCount;

$(function() {

	$('img.lazy').lazyload();
	
	$('.tooltipsy').tipsy({gravity: 's', html: true, live: true});
	//$('input.datepicker').removeClass('hasDatepicker').datepicker();
	
	h = $('div.main-sidebar').height()-36;
	
	$(window).scroll(function() {
		var y = $(window).scrollTop();
		if(y > h) {
			$('ul.cart').addClass('fixed');
			$('ul.cart').animate({
				top: 20+'px'
			}, 1000);
		} else {
			$('ul.cart').removeClass('fixed');
			$('ul.cart').css('top', '20px');
		}
	});

	$('button.login').click(function() {
		$('div.login').show();
		$(this).animate({
			marginTop: 5+'px'
		}, 200, function() {
			$('div.login').animate({
				width: 320+'px'
			}, 500);
			$('button.login, div.login, form.login input[type="submit"]').css('border-bottom', '0');
			$('form.login').delay(300).fadeIn(500);
			$('button.signup').delay(300).animate({
				right: -63+'px'
			}, 200);
			$(this).delay(300).animate({
				right: 0+'px'
			}, 200, function() {
				$(this).fadeOut(500);
			});
		});
	});
	
	$('form.log').submit(function() {
		var formData = $('form.log:last').serialize();
		var formUrl = $('form.log:last').attr('action');
		var textWidth = $('form.login p').width();
		if($('form.log:last').attr('error')!=undefined)
			var loginError = true;
		else
			var loginError = false;
		if($('form.log:last').attr('refresh')!=undefined)
			var pageRefresh = true;
		else
			var pageRefresh = false;
		
		$('form.login input[type="text"], form.login input[type="password"]').fadeOut(500);
		
		$.ajax({
			method: 'post',
			data: formData,
			url: formUrl,
			success: function(data){
				if(data.indexOf('ERROR')==-1)
				{
					$('form.login input[type="submit"]').val('Log out');
					if(!$('form.login p').is(':visible'))
					{
						$('form.login p').fadeIn(500);
						$('form.login p span strong').html(data);
						$('div.login-top').delay(100).animate({
							width: $('form.login p').width()+31+'px'
						},function(){
							if(pageRefresh==true)
								setTimeout('window.location.reload();', 500);
							else
								setTimeout('window.location.href = "http://www.soccerelitefa.com/parent-profile/";', 500);
						});
						
					} else {
						setTimeout('window.location.reload();', 500);
					}
					$('div.login-error').fadeOut(300);
				}
				else
				{
					$('div.login-error').fadeIn(300);
					$('form.login input[type="text"], form.login input[type="password"]').addClass('error').fadeIn(500);
					if(loginError==true)
						alert('Error logging in. Incorrect username or password.');
				}
			},
			error: function(xhr, ajaxOptions, thrownError){
				//alert(xhr.statusText+' '+thrownError);
			}
		});
		return false;
	});
	
	$('div.login-error form').submit(function() {
		var formData = $('div.login-error form').serialize();
		var formUrl = $('div.login-error form').attr('action');
		
		$.ajax({
			method: 'post',
			data: formData,
			url: formUrl,
			success: function(data){
				alert(data);
				$('div.login-error').fadeOut(300);
				$('form.login input:not(:submit)').val('').blur();
			},
			error: function(xhr, ajaxOptions, thrownError){
				alert(xhr.statusText+' '+thrownError);
			}
		});
		
		return false;
	});
	
	$('div.login-error a.close').click(function() {
		$(this).parent().fadeOut(300);
	});

	var sidebarCount = 0;
	var curSidebar = 0;
	
	$('div.side-widget > ul > li').each(function() {
		sidebarCount++;
	});
	
	var timer = setTimeout("$(function(){ $('div.side-widget ul li:eq(1)').find('h1').click(); });", 5000);
	
	$('div.side-widget ul li h1').click(function() {
		clearTimeout(timer);
		if(!$(this).parent().find('div.content').is(':visible'))
		{
			$('div.side-widget ul li div.content').slideUp(300);
			$('div.side-widget ul li').removeClass('active');
			curSidebar++;
		}
		$(this).parent().find('div.content').slideDown(300);
		$(this).parent().addClass('active');
		
		if(curSidebar>=sidebarCount-1)
		{
			timer = setTimeout("$(function(){ $('div.side-widget ul li:eq(0)').find('h1').click(); });", 5000);
			curSidebar = 0;
		}
		else
		{
			timer = setTimeout("$(function(){ $('div.side-widget ul li.active').next().find('h1').click(); });", 10000);
		}
	});
	
	$('div.side-widget ul').hover(function(){
		clearTimeout(timer);
	});
	
	$('div.venue-list div.button').click(function() {
		if(!$(this).parent().find('ul').is(':animated'))
		{
			$(this).parent().find('ul').slideToggle();
		}
	});
	
	$('div.body').click(function() {
		if(!$('div.venue-list ul').is(':animated'))
		{
			$('div.venue-list ul').slideUp();
		}
	});
	
	$('div.gallery-chosen ul li div.info div.option p, div.gallery-chosen ul li div.info div.option div.button').click(function() {
		if(!$(this).parent().find('ul').is(':animated'))
		{
			$(this).parent().find('ul').slideToggle();
		}
	});
	
	$('.show-cart, .cartMessage, .view-cart').click(function() {
		$('div.lightbox').fadeIn(500);
	});
	
	$('div.lightbox div.background, div.lightbox div.close').click(function() {
		$('div.lightbox').fadeOut(500);
	});
	
	$('div.courses ul li').hover(function() {
		if(!$(this).find('div.controls div.minus, div.controls div.plus, div.price div.delete').is(':animated'))
		{
			$(this).find('div.controls div.minus, div.controls div.plus, div.price div.delete').stop(true, true).fadeTo(100, 1);
			$(this).find('div.controls p').css('margin-left', '6px');
		}
	});
	
	$('#Register_type').change(function(){
		if($(this).val()=='parent')
			$('div.parent-extra').fadeIn(300);
		else
			$('div.parent-extra').fadeOut(300);
	});
	
	$('a.edit-details').click(function() {
		$('form.inline-edit input, form.inline-edit textarea, form.inline-edit select, div.avatar div.edit-button').delay(500).fadeIn(500);
		$('h3:not(".no-edit") strong, div.about div.info').fadeOut(500);
	});
	
	$('a.add-child').click(function() {
		$('div.cart-page div.form').slideToggle(500);
		//$('form.add-child').validate();
		$('#Cart_child').hide();
		$('a.cancel').fadeIn(500);
	});
	
	$('a.cancel').click(function() {
		$('div.cart-page div.form').slideToggle(500);
		$(this).fadeOut(500);
		$('#Cart_child').show();
		$('form.add-child input').not(':button, :submit, :reset, :hidden').val('');
	});
	
	courseChildCount = 0;
	
	$('ul.child li').each(function() {
		courseChildCount++;
		
	});
	
	$('div.show-all').click(function() {
		if(courseChildCount>3)
		{
			$(this).parent().find('ul.child').slideToggle(500);
		}
	});
	
	if(courseChildCount<=3)
	{
		$('div.show-all').hide();
		$('ul.child').show();
	}
	
	$('div.body div.main-content div.coaches-page ul li:nth-child(4n)').css('margin-right', 0);
	
	$('a.cart-submit').click(function(){
		if($(this).attr('onclick')=="$('.select-child').submit();")
		{
			if($('form.select-child select').val()!=undefined && $('form.select-child select').val()!='')
			{
				$('form.select-child').submit();
			}
			else
			{
				return false;
			}
		}
	});
	
	$('#Course_venue').change(function(){
		$('ul.course').hide();
		$('ul.course_'+$(this).val()).show();
	});
	
	$('a.view-report').click(function() {
		$(this).parent().find('div.match-report').slideToggle(300);
	});
	
	$('div.avatar div.edit-button').bind('click', function(){
		$('div.thumbnail-lightbox').fadeIn(300);
	});
	
	$('div.thumbnail-lightbox div.background').bind('click', function(){
		$('div.thumbnail-lightbox').fadeOut(300);
	});
	
	$('div.thumbnail-lightbox div.content div.padding').html($('div.available-thumbnails').html());
	
	$('ul.choose-avatar li img').bind('click', function(){
		var url = $(this).attr('src').replace(/\=(.*)/g, '=');
		$('div.thumbnail-lightbox').fadeOut(300);
		$('img.avatar').attr('src', url+$(this).attr('value'));
		$('#Player_avatar_img').val($(this).attr('value'));
	});
	
	$('select.select-child').change(function(){
		if($(this).val()=='ADD')
			$('div.add-child-lightbox').fadeIn(300);
	});
	
	$('div.add-child-lightbox div.background').bind('click', function(){
		$('div.add-child-lightbox').fadeOut(300);
	});
	
	$('form.add-child.popup').submit(function(){
		$.ajax({
			method: 'post',
			data: $('form.add-child.popup').serialize(),
			url: $('form.add-child.popup').attr('action'),
			success: function(data){
				$('div.add-child-lightbox').fadeOut(300);
				var ids = data.split('\\\\');
				var id = ids[0];
				var name = ids[1];
				$('select.select-child').each(function(){
					$(this).find('option').removeAttr('selected');
					$(this).find('option:last').before('<option value="'+id+'" selected="selected">'+name+'</option>');
				});
			},
			error: function(xhr, ajaxOptions, thrownError){
				alert(xhr.statusText+' '+thrownError);
			}
		});
		return false;
	});
});

function changeVenue(lat, lng, postcode, name, address_line_1, address_line_2, address_line_3)
{
	map.clearOverlays();
	var point = new GLatLng(lat, lng);
	map.setCenter(point, 14);
	var marker = new GMarker(point);
	map.addOverlay(marker);
	jQuery('div.venues div.col:first p:eq(0)').html(address_line_1);
	jQuery('div.venues div.col:first p:eq(1)').html(address_line_2);
	jQuery('div.venues div.col:first p:eq(2)').html(address_line_3);
	jQuery('div.venues div.col:first p:eq(3)').html(postcode);
	jQuery('div.venue-list p:first').html(name);
}





var filter = ":not(:submit,:radio,:checkbox)";
var errors = false;
var selected = false;

$(function(){

	$('input' + filter + ', textarea').each(function(){
		if($(this).attr('placeholder-text')!='' && $(this).attr('placeholder-text')!=undefined)
			$(this).after('<span class="placeholder" onclick="$(this).parent().find(\'input,textarea\').focus();">'+$(this).attr('placeholder-text')+'</span>');
		if($(this).val()!='')
			$(this).next().hide();
	});
	
	$('input' + filter + ', textarea').focus(function(){
		if($(this).val()==''){
			$(this).parent().find('span.placeholder').fadeTo(100, 0.5);
		}
	});
	$('input' + filter + ', textarea').blur(function(){
		if($((this)).val()==''){
			$(this).parent().find('span.placeholder').fadeTo(100, 1);
		}
		else
		{
			$(this).parent().find('span.placeholder').hide();
		}
		$('.error-tip').fadeOut('fast', function(){
			$(this).remove();
		});
	});
	
	$('input' + filter + ', textarea').keyup(function(){
		if($((this)).val()==''){
			$(this).parent().find('span.placeholder').fadeTo(100, 1);
		}
		else
		{
			$(this).parent().find('span.placeholder').hide();
		}
	});
	
	$('a.ui-state-default').click(function(){
		$('input' + filter + ', textarea').each(function(){
			if($(this).val()!='')
				$(this).parent().find('span.placeholder').hide();
		});
	});

});
 
function validateForm(formClass){
	
	$('form.'+formClass).submit(function(){
		
		$('.error-tip').remove();
		
		errors = false;
		selected = false;
		
		$('form.'+formClass + ' input' + filter + ', form.'+formClass + ' textarea').each(function(){
			
			if($(this).attr('required-field')=="required" && $(this).val()==''){
				errors = true;
				
				if($(this).attr('error-message')!=undefined)
					$(this).after('<span class="error-tip" style="display:none;">'+$(this).attr('error-message')+'</span>');
				else
					$(this).after('<span class="error-tip" style="display:none;">This field is required</span>');
				$('.error-tip').fadeIn('fast');
				
				if(selected == false){
					$(this).focus();
					selected = true;
					return false
				}
			}
			
		});
		
		if(errors==false && selected == false){
			
			/*$('form.'+formClass + ' input' + filter + ', form.'+formClass + ' textarea').each(function(){
				if($(this).val()==$(this).attr('placeholder-text')){
					$(this).val('');
				}
			});*/
			
			$('form.'+formClass).submit();
		}
		
		return false;
		
	});
	
	return false;
	
}

function validateFormAjax(formClass){
	
	//$('form.'+formClass).submit(function(){
		
		$('.error-tip').remove();
		
		errors = false;
		selected = false;
		
		$('form.'+formClass + ' input' + filter + ', form.'+formClass + ' textarea').each(function(){
			
			if($(this).attr('required-field')=="required" && $(this).val()==''){
				errors = true;
				
				$(this).after('<span class="error-tip" style="display:none;">This field is required</span>');
				$('.error-tip').fadeIn('fast');
				
				if(selected == false){
					$(this).focus();
					selected = true;
					return false
				}
			}
			
		});
		
		if(errors==false && selected == false){
			
			/*$('form.'+formClass + ' input' + filter + ', form.'+formClass + ' textarea').each(function(){
				if($(this).val()==$(this).attr('placeholder-text')){
					$(this).val('');
				}
			});*/
			
			$('form.'+formClass).submit();
		}
		
		return false;
		
	//});
	
	//return false;
	
}





/***** Slider *****/

var slideCount = 0;
var slideWidth;
var slideHeight;
var slideCountNum;
var timeout;

//Change the below values to suit you

var slideContainer = 'li.first div.content';
var slideInterval = 8000;
var easing = 'easeInOutCubic';
var prevButton = 'div.prev';
var nextButton = 'div.next';

$(function() {

	var slider = $(slideContainer);
	
	//Gets width and height of slider div
	
	slideWidth = slider.width();
	slideHeight = slider.height();
	
	//Counts children and positions them
	
	slider.find('ul li').each(function() {
		slideCount++;
		$(this).css('left', slideWidth*(slideCount-2));
		if($(this).css('left')==0+'px')
			$(this).addClass('current');
		else
			$(this).removeClass('current');
	});
	
	slider.find('ul').height(slider.find('ul').find('li.current').height());
	
	slideCountNum = slideCount-slideCount+1;
	
	//Show controls if there's more than one slide
	
	if(slideCount>1)
		slider.find('div.prev, div.next').show();
		
	//Set the variable timeout to start the sliding
	
	timeout = setTimeout('slideGallery()', slideInterval);
	
	//Clear timeout on hover on slider div
	
	slider.hover(function() {
		clearTimeout(timeout);
	}, function() {
		timeout = setTimeout('slideGallery()', slideInterval);
	});
	
	//Call the previous/next functions on click of controls
	
	slider.find(prevButton).click(function() {
		slideGalleryPrev();
	});
	
	slider.find(nextButton).click(function() {
		slideGalleryNext();
	});
	
});

//Automatic sliding

function slideGallery() {

	var slider = $(slideContainer);
	
	if(slideCount>1)
	{
		slider.find('ul li').each(function() {
			$(this).animate({ left: '-='+slideWidth }, 500, easing, function() {
				if($(this).css('left')==-slideWidth*(slideCount-1)+'px')
					$(this).css('left', slideWidth*(slideCountNum)+'px');
				else if($(this).css('left')==0+'px')
					$(this).addClass('current');
				else
					$(this).removeClass('current');
			});
		});
		
		if(slider.find('li.current').next().length!=0)
			slider.find('li.current').parent().animate({ height: slider.find('li.current').next().height() }, 500, easing);
		else
			slider.find('li.current').parent().animate({ height: slider.find('li:first').height() }, 500, easing);
	}
	
	timeout = setTimeout('slideGallery()', slideInterval);
	
}

//Previous button function

function slideGalleryPrev() {

	var slider = $(slideContainer);
	
	if(slideCount>1)
	{
		slider.find('ul li').each(function() {
			if(!$(this).is(':animated'))
			{
				$(this).animate({ left: '+='+slideWidth }, 500, easing, function() {
					if($(this).css('left')==slideWidth*(slideCount-1)+'px')
						$(this).css('left', -slideWidth*(slideCountNum)+'px');
					else if($(this).css('left')==0+'px')
						$(this).addClass('current');
					else
						$(this).removeClass('current');
				});
			}
		});
		
		if(slider.find('li.current').prev().length!=0)
			slider.find('li.current').parent().animate({ height: slider.find('li.current').prev().height() }, 500, easing);
		else
			slider.find('li.current').parent().animate({ height: slider.find('li:last').height() }, 500, easing);
	}
	
}

//Next button function

function slideGalleryNext() {

	var slider = $(slideContainer);
	
	if(slideCount>1)
	{
		slider.find('ul li').each(function() {
			if(!$(this).is(':animated'))
			{
				$(this).animate({ left: '-='+slideWidth }, 500, easing, function() {
					
					if($(this).css('left')==-slideWidth*(slideCount-1)+'px')
						$(this).css('left', slideWidth*(slideCountNum)+'px');
					else if($(this).css('left')==0+'px')
						$(this).addClass('current');
					else
						$(this).removeClass('current');
				});
			}
		});
		
		if(slider.find('li.current').next().length!=0)
			slider.find('li.current').parent().animate({ height: slider.find('li.current').next().height() }, 500, easing);
		else
			slider.find('li.current').parent().animate({ height: slider.find('li:first').height() }, 500, easing);
	}
	
}
