// JavaScript Document
$(function(){
					 
	Academy = new function(){
		
		this.handleEvents = function(){
			$(".desc-click").click(function(){
				var id = $(this).attr('id');
				var currHeight = $('#desc'+id).height();
				$('#desc'+id).height(currHeight+"px");
				$('#more'+id).show();
				var moreHeight = $('#more'+id).height();
				
				if($('#desc'+id).hasClass('open') == true){
					var newHeight = (currHeight*1) - (moreHeight*1);
					$('#desc'+id).removeClass('open');
					$('#'+id).html('Read More')
				} else {
					var newHeight = (moreHeight*1) + (currHeight*1);
					$('#desc'+id).addClass('open');
					$('#'+id).html('Hide')
				}
				
				$('#desc'+id).animate({height: newHeight+"px"}, "slow");
			});
			
			$(".check-available").click(function(){
				var username = $('input[name='+$(this).attr('rel')+']').val();
				Academy.checkUsername(username);
				return false;
			});
			
			$(".calendar-move").click(function(){
				Academy.calendarMove($(this));
				return false;
			});
			
			$(".book-course").click(function(){
				var event_id = $(this).attr('rel');
				Academy.bookCourse(event_id);
				return false;
			});
			
			$(".date-search").focus(function(){
				if($(this).val() == 'dd/mm/yy'){
					$(this).val('');
				}
			});
			
			$(".date-search").blur(function(){
				if($(this).val() == ''){
					$(this).val('dd/mm/yy');
				}
			});
			
			$('input[name=member_preload]').click(function(){
		 		Academy.loadAddress();
		 	});
			
			$(".menu ul li a img").hover(function(){
				Academy.menuHover($(this));
			}, function(e){
				Academy.menuHover($(this));
			});
			
			$("#upload_submit").click(function(){
				$("div.formSuccess").hide('slow', function(){
					$("div.formSuccess").remove();										   
				});						   
				var action = Academy.validateUpload();
				return action;
			});
			
			$("#upload_title").click(function(){
				$("div.formSuccess").hide('slow', function(){
					$("div.formSuccess").remove();										   
				});
			});
			$("#upload_content").click(function(){
				$("div.formSuccess").hide('slow', function(){
					$("div.formSuccess").remove();										   
				});
			});
			$("#upload_category").click(function(){
				$("div.formSuccess").hide('slow', function(){
					$("div.formSuccess").remove();										   
				});
			});
			$("#upload_category_new").click(function(){
				$("div.formSuccess").hide('slow', function(){
					$("div.formSuccess").remove();										   
				});
			})
			$("#upload_file").click(function(){
				$("div.formSuccess").hide('slow', function(){
					$("div.formSuccess").remove();										   
				});
			});
			$("#upload_alternative").click(function(){
				$("div.formSuccess").hide('slow', function(){
					$("div.formSuccess").remove();										   
				});
			});
			
		}
		
		this.bookCourse = function(event_id){
			if(event_id.length > 0){
				$(".selected").addClass("course-day").removeClass("selected");
				$.getJSON('json_queries.php?action=book&event_id='+event_id+'&format=json', function(data){
					$('#event_start').html(data.event_start);
					$('#event_location').html(data.event_location);
					$('#event_price').html(data.event_price);
					$('td[title='+data.calendar_date+'], tr[title='+data.calendar_date+']').addClass('selected');
					$('.booking-info').css('display', 'block');
					$.scrollTo('.booking-info', 300, {easing:'linear'});
				});
			}
		}
		
		this.loadAddress = function(){
			$.getJSON('json_queries.php?action=getMember&format=json', function(data){
				$("input[name=member_address_line_1]").val(data.member_address_line_1);
				$("input[name=member_address_line_2]").val(data.member_address_line_2);
				$("input[name=member_address_city]").val(data.member_address_city);
				$("input[name=member_address_postcode]").val(data.member_address_postcode);
				$("input[name=member_address_county]").val(data.member_address_county);
				$("input[name=member_address_country]").val(data.member_address_country);
			});
		}
		
		this.calendarMove = function(obj){
			var url = obj.attr('href');
			$('.calendar-load').load(url+' #calendar', function(){
				Academy.handleEvents();
			});
			return false;
		}
		
		this.checkUsername = function(value){
			$('#availability-check').html('<img src="/images/ajax-check-small.gif" alt="Checking..." />');
			if(value.length > 0){
				$.get('json_queries.php?action=checkUsername&value='+value, function(data){
					var output = data; 
					$('#availability-check').html('<strong>'+output+'</strong>');
			 	});
			} else var output = 'Please enter a username';
			$('#availability-check').html(output);
		}
		
		this.menuHover = function(e){
			if(!$(e).hasClass("current")){
				var src = $(e).attr("src");
				var newSrc = Academy.changeSrc(src);
				$(e).attr("src", newSrc);
			}			
		}
		
		this.changeSrc = function(img){
			var newSrc = img.replace('-off.jpg', '-on.jpg');
			if(newSrc == img){
				var newSrc = img.replace('-on.jpg', '-off.jpg');
			}
			return newSrc;
		}
		
		this.validateUpload = function(){
			var submitError = false;
			var errorText = '<strong>Errors:</strong>';
			var upload_title = $("#upload_title");
			var upload_content = $("#upload_content");
			var upload_category = $("#upload_category");
			var upload_category_new = $("#upload_category_new");
			var upload_file = $("#upload_file");
			var upload_alternative = $("#upload_alternative");
			
			if(upload_title.val() == ''){
				submitError = true;	
				errorText += "<br />* Please enter a title";
			}
			if(upload_content.val() == ''){
				submitError = true;	
				errorText += "<br />* Please enter a brief description of your file";
			}
			if(upload_category.val() == '' && upload_category_new.val() == ''){
				submitError = true;	
				errorText += "<br />* Please select a category or enter a new category in the box provided";
			}
			if(upload_category.val() != '' && upload_category_new.val() != ''){
				submitError = true;	
				errorText += "<br />* Please select a category or enter a new category in the box provided";
			}
			if(upload_file.val() == '' && upload_alternative.attr("checked") === false){
				submitError = true;	
				errorText += "<br />* Please select a file to upload or check the box if you would just like to use the text in the content box";
			}
			if(upload_file.val() != '' && upload_alternative.attr("checked") === true){
				submitError = true;	
				errorText += "<br />* Please select a file to upload or check the box if you would just like to use the text in the content box";
			}
			if(submitError == true){
				submitError = false;
				Academy.animateError(errorText);
				return false;
			} else {
				return true;	
			}
		}
		
		this.animateError = function(errorText){
			var output = '<p>' + errorText + '</p>';
			if($("div.formError").length){
				$("div.formError").hide('slow', function(){
					$("div.formError").html(output).show('slow');										 
				});
			} else {
				$("div.add-comment").prepend('<div class="formError" style="display:none;">' + output + '</div>');
				$("div.add-comment").children().show('slow');
			}
		};
		
		this.animateSuccess = function(successText){
			var output = '<p>' + successText + '</p>';
			if($("div.formError").length){
				$("div.formError").hide('slow', function(){
					$("div.formError").html(output);
					$("div.formError").removeClass("formError").addClass("formSuccess").show('slow');
				});
			} else {
				$("div.add-comment").prepend('<div class="formSuccess" style="display:none;">' + output + '</div>');
				$("div.add-comment").children().show('slow');
			}
		};
		
	}
	
	Academy.handleEvents();
});
