// JavaScript Document
$(function(){
	$('#captcha-trigger').live('click',function(){
		$.post("/booking-form.php?step=1", $('.booking-enq input').serialize(), function(data){
			$('input').removeClass('error');
			if(data !== 'thanks'){
				var newArr = data.split(",");
				for(i=0;i<newArr.length;i++){
					$('input[name="'+newArr[i]+'"]').addClass('error');
				}
			} else {
				$('#be_part_1').fadeOut(500);
				setTimeout(function(){
					$('#be_part_2').fadeIn(500);		
				},500);																															
			}
		});
		return false;
	});	
	$('#captcha-trigger2').live('click',function(){
		$.post("/booking-form.php?step=1", $('#booking-enquiry input').serialize(), function(data){
			$('input').removeClass('error');
			if(data !== 'thanks'){
				var newArr = data.split(",");
				for(i=0;i<newArr.length;i++){
					$('input[name="'+newArr[i]+'"]').addClass('error');
				}
			} else {
				$('#ge_part_1').fadeOut(500);
				setTimeout(function(){
					$('#ge_part_2').fadeIn(500);		
				},500);																															
			}
		});
		return false;
	});	
	
	Pennard = new function(){
		
		var pageType = 'single';
		var loadPage = false;
		
		this.construct = function(){
			Pennard.prepDivs(); /** hide the website now we know they have javascript **/
			Pennard.bind();
		}
		
		this.bind = function(){
			
			setInterval('Pennard.enquireFlash()', 10000);
			
			$('input[name="actionImg"]').click(function(){
				var postcode = $('input[name="route_from"]').val();
				if(postcode.length <= 0){
					alert('Please enter your postcode');
				} else {
					var googleLink = 'http://maps.google.co.uk/maps?f=d&source=s_d&saddr='+postcode+'&daddr=BA4+6UG&hl=en&geocode=FRLNHwMd6t3n_ymzPQ8KtrRwSDGLiY-krxFyNg%3BFUpdDAMd8lDY_ykZLZCmzzxySDGInxRC8fkIWw&mra=ls&sll=52.415762,-1.58159&sspn=0.007002,0.026157&ie=UTF8&ll=51.876491,-1.082153&spn=1.814299,6.696167&z=8';
					window.open(googleLink);
				}
				return false;
			});
			
			$('.gallery-imgs a, a.fancybox').fancybox({
				frameWidth: 785,
				frameHeight: 427,
				hideOnContentClick: false,
				padding:10
			});
			
			$('.gallery-img a').fancybox({padding:10,hideOnContentClick: false});
			
			$(".menu ul li a, .logo-click, .inline-link").click(function(){
				Pennard.removeActives();
				$(this).addClass('active');
				if($(this).attr('href') == 'the-accommodation/'){
					if($('.sub').css('display') == 'none'){
						$('.sub').slideDown();
						$(this).parent().css('background', 'none');
				  } else {
						$('.sub').slideUp();
					}
				} else {
					var formChanged = false;
					
					if($(this).attr("href") == 'glastonbury-festival-10/'){
						PennardScroller.setCurrent(6);
						Pennard.changeForm('glasto');
						formChanged = true;
					}
					if($(this).attr("href") == 'fine-dining/'){
						Pennard.changeForm('finedining');
						formChanged = true;
					}
					if($(this).attr("href") == 'pampered-at-pennard/'){
						PennardScroller.setCurrent(7);
						Pennard.changeForm('pampered');
						formChanged = true;
					}
					if($(this).attr("href") == 'local-activities/'){
						PennardScroller.setCurrent(8);
					}
					if(!formChanged){
						Pennard.changeForm('default');
					}
					Pennard.setLoadPage($(this).attr("href"));
					Pennard.setPageType($(this).attr("rel"));
					Pennard.closePage();
				}
				return false;
			});
			
			$(".enquire-now").click(function(){
				Pennard.showEnquiryForm();
				return false;																 
			});
			
			$(".show-gallery").live('click', function(){
				$(".glasto-holder").stop().animate({
					top: '-1000px'
				}, 1000, function(){
					$(".glasto-holder").hide();
					$(".glasto-gallery").show();
					$(".glasto-gallery").stop().animate({
						top: '0px'
					}, 1000);
					
				});
				return false;
			});			
			
			Pennard.formData();			
		}
		
		this.nextPrevBind = function(){
			$(".show-content").click(function(){
				var div = $(this).attr('rel');
				Pennard.showContent('.'+div);
				return false;
			});			
		}
		
		this.removeActives = function(){
			$(".menu ul li a").removeClass('active');
		}
		
		this.setPageType = function(type){
			this.pageType = type;
			$('#footer').css('display','none');
		}
		
		this.getPageType = function(){
			return this.pageType;
		}
		
		this.setLoadPage = function(id){
			this.loadPage = id;
		}
		
		this.getLoadPage = function(){
			return this.loadPage;
		}
		
		this.enquireFlash = function(){
			$('.enquire-now img').attr('src', '/images/button-enquire-now-on.gif');
			setTimeout(function(){
				$('.enquire-now img').attr('src', '/images/button-enquire-now.jpg');
			}, 1000);
		}
		
		this.changeForm = function(act){
			if(act.length > 0){
				$.get('data.php?action='+act, function(data){
					$('.booking-enquiry-horiz').html(data);
					/** init forms **/
					Pennard.formData();
					/** init form end **/
				});
			}
		}
		
		this.formData = function(){
			$('.close-enquiry, .close-enquiry-link').click(function(){
				Pennard.showEnquiryForm();
				return false;
			});					
			
			$(".date").datepicker({dateFormat: 'dd-mm-yy'});					
			
			$('.booking-enq').submit(function(){
				var paramz = $(this).serialize();
				/*$('.form-errors').html('<div style="text-align:center;"><img src="/images/loading-white.gif" alt="Loading..." /><br />Loading...</div>');*/
				$.post("/booking-form.php", $(this).serialize(), function(data){
					$('input').removeClass('error');
					if(data !== 'thanks'){
						var newArr = data.split(",");
						for(i=0;i<newArr.length;i++){
							$('input[name="'+newArr[i]+'"]').addClass('error');
						}
					} else {
						$('input[name="booking"]').remove();
						$('.booking-enq').html('<div style="text-align:center;"><h3 class="thanks">Thank you for your enquiry.<br />A member of Pennard Hill Farm will be in touch shortly.</h3><a href="" class="close-enquiry-link" title="Click here to continue browsing our website!" style="color:#FFFFFF;">Click here to continue browsing our website!</a></div>');
						$('.close-enquiry-link').click(function(){
							Pennard.showEnquiryForm();
							return false;
						});																																		
					}
				});
				return false;
			});
		}
		
		this.prepDivs = function(){
			$('.sub').hide();
			$('.container').css('top', '-600px');
			$('.inner-content').css('left','-720px');
			//Pennard.hideEnquireButton();
			//$('#footer').css('display','none');
			setTimeout(function(){Pennard.slideDown('.container');}, 1000);
		}
		
		this.slideDown = function(){
			$(".container").animate({
				top: "20px"
			}, 750, 'linear', function(){
				Pennard.showContent('.inner-content');
			});
		}
		
		this.showContent = function(elem){
			$('.gallery-imgs a, a.fancybox').fancybox({
				frameWidth: 825,
				frameHeight: 427,
				hideOnContentClick: false,
				padding: 10
			});
			
			$('.gallery-img a').fancybox({padding:10,hideOnContentClick: false});
			
			var page = this.getLoadPage();
			if(page=='glastonbury-festival-13/'){
				$('.inner-content').css('background-image','url(/images/glasto-bg.png)');
			}/*else if(page!='glastonbury-festival-11/'){
				$('.inner-content').css('background-image','url(/images/content-bg.png)');
			}*/

			$('#footer').css('display','none');
			if($(elem).css('visibility') == 'hidden'){
				$(elem).css('visibility','visible');
			}
			if(elem !== '.col-2'){
				$(elem).css('left', '-720px');
				$(elem).animate({
					left: "0px"
				}, 1000, 'linear', function(data){
					Pennard.insideLinks();
					if(elem == '.inner-content' || elem == '.col-2'){
						Pennard.showEnquireButton();
						Pennard.showFooter();
					} else {
						$('#footer').css('display','none');
					}
				});
			} else {
				$(elem).css('width','0px');
				$(elem).stop().animate({
					width: "329px"
				}, 1000, function(data){
					Pennard.insideLinks();
					if(elem == '.inner-content' || elem == '.col-2'){
						Pennard.showEnquireButton();
						Pennard.showFooter();
					} else {
						$('#footer').css('display','none');
					}
				});
			}
			
			if($('#map').length > 0){
				gmaps.load();
				var contact = ($("ul#key").length > 0) ? '' : '&type=contact';
				var points = new Array();
				$.getJSON('getmarkers.php?format=json'+contact, function(data){
					$.each(data, function(i,item){
						points[i] = new Array(item[0], item[1],item[2],item[3],item[4]);
          });
					//alert(window.pathname);
					gmaps.addPoints(points);
				});
			}
			if($('.route-planner').length > 0){
				$('input[name="actionImg"]').click(function(){
					var postcode = $('input[name="route_from"]').val();
					if(postcode.length <= 0){
						alert('Plese enter your postcode');
					} else {
						var googleLink = 'http://maps.google.co.uk/maps?f=d&source=s_d&saddr='+postcode+'&daddr=BA4+6UG&hl=en&geocode=FRLNHwMd6t3n_ymzPQ8KtrRwSDGLiY-krxFyNg%3BFUpdDAMd8lDY_ykZLZCmzzxySDGInxRC8fkIWw&mra=ls&sll=52.415762,-1.58159&sspn=0.007002,0.026157&ie=UTF8&ll=51.876491,-1.082153&spn=1.814299,6.696167&z=8';
						window.open(googleLink);
					}
					return false;
				});				
			}
		}
		
		this.showFooter = function(){ 
			var listener = location.hash;
			if(listener == '#drop-form'){
				Pennard.showEnquiryForm();
			}
			$('#footer').css('display','block');
		}
		
		this.showEnquiryForm = function(){
			if($('a.enquire-now').hasClass('fancybox')){
				return false;
			} else {
				if($('.booking-enquiry-horiz').css('display') !== 'block'){
					$('.booking-enquiry-horiz').css('display','block').stop().animate({top: '0px', left: '0px'}, 500);
				} else {
					$('.booking-enquiry-horiz').stop().animate({top: '-186px', left: '0px'}, 500, 'linear', function(){
						$('.booking-enquiry-horiz').css('display','none')
					});
				}
			}
		}
		
		this.showEnquireButton = function(){
			$('.booking-enquiry-vert').css('right','-700px').css('top','0px');
			$('.enquire-now').css('width','0px').css('display','block');
			$('.enquire-now').stop().animate({
				width: "46px"
			}, 750);
		}
		
		this.hideEnquireButton = function(){
			$('.enquire-now').stop().css('display', 'none').css('right','70px');
		}
		
		this.hideEnquiryForm = function(){
			$('.booking-enquiry-vert, .booking-enquiry-horiz').css('display','none');
		}
		
		this.hideContent = function(elem){
			$(elem).stop().animate({
				left: "-720px"
			}, 750, function(data){ 
				var Url = Pennard.getLoadPage();
				var Type = Pennard.getPageType();
				if(Type == 'single'){
					$('.content-loader').load(Url+' .inner-content', function(){
						Pennard.showContent('.inner-content');
					});
				} else {
					$('.content-loader').load(Url+' .two-column-page', function(){
						Pennard.nextPrevBind();
						Pennard.showContent('.col-1');
					});
				}
			});
		}
		
		this.closePage = function(){
			var Type = Pennard.getPageType();
			Pennard.hideEnquireButton();
			Pennard.hideEnquiryForm();
			$('#footer').css('display','none');
			if(Type == 'single'){
				Pennard.hideContent('.inner-content');
				Pennard.hideContent('.col-2');				
				Pennard.hideContent('.col-1');				
			} else {
				Pennard.hideContent('.inner-content');
				Pennard.hideContent('.col-2');				
				Pennard.hideContent('.col-1');				
			}
		}
		
		this.insideLinks = function(){
			$(".inline-link").click(function(){
				Pennard.removeActives();
					var formChanged = false;
				if($(this).attr("href") == 'glastonbury-festival-10/'){
					PennardScroller.setCurrent(6);
					Pennard.changeForm('glasto');
					formChanged = true;
				}
				if($(this).attr("href") == 'fine-dining/'){
					Pennard.changeForm('finedining');
					formChanged = true;
				}
				if($(this).attr("href") == 'pampered-at-pennard/'){
					PennardScroller.setCurrent(7);
					Pennard.changeForm('pampered');
					formChanged = true;
				}
				if($(this).attr("href") == 'local-activities/'){
					PennardScroller.setCurrent(8);
				}
				if(!formChanged){
					Pennard.changeForm('default');
				}
				Pennard.setLoadPage($(this).attr("href"));
				Pennard.setPageType($(this).attr("rel"));
				Pennard.closePage();
				return false;
			});
		}
	}
	
	Pennard.construct();
});
