$.fn.infiniteCarousel = function () {

    function repeat(str, num) {
        return new Array( num + 1 ).join( str );
    }
  
    return this.each(function () {
        var $wrapper = $('> div', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $single = $items.filter(':first'),
            
            singleWidth = $single.outerWidth(), 
            visible = Math.ceil($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
            currentPage = 1,
            pages = Math.ceil($items.length / visible);            


        // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
        if (($items.length % visible) != 0) {
            $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
            $items = $slider.find('> li');
        }

        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
        $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
        $items = $slider.find('> li'); // reselect
        
        // 3. Set the left position to the first 'real' item
        $wrapper.scrollLeft(singleWidth * visible);
        
        // 4. paging function
        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = singleWidth * dir * visible * n;
            
            $wrapper.filter(':not(:animated)').animate({
                scrollLeft : '+=' + left
            }, 500, function () {
                if (page == 0) {
                    $wrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    $wrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                } 

                currentPage = page;
            });                
            
            return false;
        }
        
        $wrapper.after('<a class="arrow back"></a><a class="arrow forward"></a>');
        
        // 5. Bind to the forward and back buttons
        $('a.back', this).click(function () {
        	
            return gotoPage(currentPage - 1);                
        });
        
        $('a.forward', this).click(function () {
            return gotoPage(currentPage + 1);
        });
        
        // create a public interface to move to a specific page
        $(this).bind('goto', function (event, page) {
            gotoPage(page);
        });
    });  
};

$(function() { 
	$('#see-more-feedback').click(function(){
    	$('#more-feedback').fadeIn("slow");
    	$('#see-more-feedback').css("display", "none");
    });   
	$('.top-1').mouseover(function(){
		$('.top-rated-1').show();		
	});
	
	$('.top-1').mouseleave(function(){
		$('.top-rated-1').hide();		
	});
	
	$('.top-2').mouseover(function(){
		$('.top-rated-2').show();		
	});
	
	$('.top-2').mouseleave(function(){
		$('.top-rated-2').hide();		
	});
	$('.top-3').mouseover(function(){
		$('.top-rated-3').show();		
	});
	
	$('.top-3').mouseleave(function(){
		$('.top-rated-3').hide();		
	});
	
	$('.top-1').mouseover(function(){
		$('.top-rated-1').show();		
	});
	
	$('.top-1').mouseleave(function(){
		$('.top-rated-1').hide();		
	});
	
	$('.top-4').mouseover(function(){
		$('.top-rated-4').show();		
	});
	
	$('.top-4').mouseleave(function(){
		$('.top-rated-4').hide();		
	});
});

function booking_validate() {
	if (!$('#booking-time').val()){
		alert('Please select date/time for booking a lesson.');
		return false;
	}
	else {
		var myDate = new Date();
		var currentTime = myDate.getFullYear()+'-'+(myDate.getMonth()+1) + '-' + (myDate.getDate()) + ' ' + myDate.getHours() + ':'+ myDate.getMinutes() + ':00';

	}
	return true;
}
$(function(){
   $("#search-for").Watermark("Search","#000");
});

function theRotator() {
	//Set the opacity of all images to 0
	$('.rotator ul li').css({opacity: 0.0});
	
	//Get the first image and display it (gets set to full opacity)
	$('.rotator ul li:first').css({opacity: 1.0});
		
	//Call the rotator function to run the slideshow, 6000 = change to next image after 6 seconds
	
	setInterval('rotate()',5000);
	
}

function rotate() {	
	//Get the first image
	var current = ($('.rotator ul li.show')?  $('.rotator ul li.show') : $('.rotator ul li:first'));

    if ( current.length == 0 ) current = $('.rotator ul li:first');

	//Get next image, when it reaches the end, rotate it back to the first image
	var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('.rotator ul li:first') :current.next()) : $('.rotator ul li:first'));
	
	//Un-comment the 3 lines below to get the images in random order
	
	//var sibs = current.siblings();
    //var rndNum = Math.floor(Math.random() * sibs.length );
    //var next = $( sibs[ rndNum ] );
			

	//Set the fade in effect for the next image, the show class has higher z-index
	next.css({opacity: 0.0})
	.addClass('show')
	.animate({opacity: 1.0}, 1000);

	//Hide the current image
	current.animate({opacity: 0.0}, 1000)
	.removeClass('show');
	
};



$(document).ready(function() {		
	//Load the slideshow
	theRotator();
	$('.rotator').fadeIn(1000);
    $('.rotator ul li').fadeIn(1000); // tweek for IE
});
