window.addEvent("domready", function() {
 
 
    var addthis_pub = "";

     //Show hide (To be put in before any MultiBox to prevent a big gap at the bottom.)

     var arrClickers = ["bookcamping", "findaddress", "bookcamping"];
     var arrHiders = ["showhide", "selectaddress", "_showhideWithCampingOptions"];
   
     if (!$("bookcamping")){  
         if ($("_showhideWithCampingOptions")){
            $("_showhideWithCampingOptions").setStyle("display","none");
         } 
     }

     if ($(arrHiders[0])) {
         hideOnStart = 1;
         if ($(arrClickers[0]).getAttribute("checked")) { hideOnStart = 0; }
         showHideDivs(arrHiders[0], arrClickers[0], hideOnStart, 0);
         showHideDivs(arrHiders[2], arrClickers[2], hideOnStart, 0);
     }
     if ($(arrHiders[1])) {
         showHideDivs(arrHiders[1], arrClickers[1], 1, 1);
     }

     new SmoothScroll({ "links": $$(".scroll") });
     new AlphaPng();

     $$(".volatile").each(function(el) {
         $(el).addEvent("focus", function() {
             if (this.value == this.getProperty("title")) {
                 this.value = "";
             }
         });
     });

     $$("a[rel*='external']").each(function(a) {
         $(a).setProperty("target", "_blank");
     });

     $$("#nav li a").each(function(el) {
         if (!el.hasClass("selected")) {
             var oColor = el.getStyle("color");
             var fx = new Fx.Tween(el, { "property": "color", "duration": 300, "wait": false }).set("#ffffff");
             el.addEvents({
                 "mouseover": function() {
                     fx.start(oColor);
                 },
                 "mouseout": function() {
                     fx.start("#ffffff");
                 }
             });
         }
     });

     $$("#leftCol .newAttractions li a").each(function(el) {
         new ListItemSelector($(el), { "fxMin": 1, "fxMax": 0.7 });
     });

     $$("#nav li").each(function(li) {
         li.addEvents({
             "mouseover": function() { this.addClass("sfhover"); },
             "mouseout": function() { this.removeClass("sfhover"); }
         });
     });


     var togglers = $$(".faqs li h2 a, #forgottenPassword, #viewTariffs");
     var elements = $$(".faqs li div, #passwordRequest, #specialTariffs");

     togglers.addEvent("click", function(e) {
         new Event(e).stop();
     });

    if(elements[0])
     new Accordion(togglers, elements, { "alwaysHide": true, "show": -1 });

        if($$(".socialize")[0]){
         $$(".socialize").addEvent("click", function(e) {
             new Event(e).stop();
             addthis_url = location.href;
             addthis_title = document.title;
             addthis_click(this);
         });
     }


     var myCarousel = new Carousel($("galleryList"), {
         autoStyle: true,
         idPrevious: $("previousImage"),
         idNext: $("nextImage"),
         visibleItems: 4, //amount that fits in the container
         scrollAmount: 130, //how wide each item is
         scrollInterval: 500, //how quick it should scroll in ms
         fxTransition: Fx.Transitions.quadOut //http://docs.mootools.net/Effects/Fx-Transitions.js <- pick one
     });



   
     
     if ($('SecpayRedirect')) {
		$('SecpayRedirect').submit();
     }
     
     function showHideDivs(divToHide, clicker, startHidden, stopDefaultEvent) {
         if (startHidden == 1) {
             if ($(divToHide)) {
                 $(divToHide).setStyle("display", "none"); //to start off hidden:
             }
         }
         $(clicker).addEvent("click", function(el) {
             if (stopDefaultEvent == 1) {
                 new Event(el).stop(); // To stop the default action of that element
             }
             if ($(divToHide)){
                 if ($(divToHide).getStyle("display") == "none")
                 { $(divToHide).setStyle("display", "block"); }
                 else { $(divToHide).setStyle("display", "none"); }
             }
         });
     }

     // News letter sdign up mess window

             
     if ($$(".newsletterSignup .formbutton")[0]) {
         var newsletterSU = $$(".newsletterSignup .formbutton")[0];
   
         var rateThanks = new MessageWindow({
             "useViewPort": false,
           //  "containerLeft": 360,
           //  "containerTop": 450,
             "timeout": 8000,
             "containerClass": "overlayContent"
         });
             
         newsletterSU.addEvent('click', function(el) {
             new Event(el).stop();
			 
             var emailAddress = $("newsletteremail").get('value');
             var message = "Thank you for subscribing to our Newsletter.";
             var errormessage = "Please re-enter your email in the correct format: E.G. myemail@hopfarm.com"

            //Check email address format
             var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

             if (!filter.test(emailAddress)) {
                 rateThanks.show("" + errormessage + "");                
             }
             else {
                 rateThanks.show("" + message + "");
                 newsletterSU.value = "Thank you";
                 sendNewsletterEmailAddress(emailAddress);
             }
         });


         function sendNewsletterEmailAddress(emailAddress) {

             var newsLetterUrl = '/ajax-newsletter-sign-up/';

             var req = new Request({
                 method: "get",
                 url: newsLetterUrl,
                 data: { "emailAddress": emailAddress },
                 onComplete: function(response) {                                       
                 }
             }).get();
         }
     }

     
     //Booking form Ajax calls
     
     
     var formJSon = true;
     var startDate;  // used with event dates for the calendar
     var endDate;
     


     if (formJSon) {

        makeCalFancy(false);    

         if ($('submitdate')){
         //  Special features
             initCalCar();
             $('submitdate').setStyle("display", "none");
             $('_getPrices').setStyle("display", "none");
             $('_ticketGroupsContainer').setStyle("display", "none");

             var touringDates = '';
             $$('#calendarList li table tbody tr td input').each(function(el) {
                 el.addEvent('click', function() {
                    getSpecFeatTicketGroups();
                 });
             });
             
             
             getSpecFeatTicketGroups();
         }
         //park
         if ($('submitseason')) {
         
             $('_ticketGroupsContainer').setStyle("display", "none");
             //$('_attractions').setStyle("display", "none");

             $('submitseason').setStyle("display", "none");
             $('_getPrices').setStyle("display", "none");
             $$('fieldset .dateselect')[0].setStyle("display", "none");
             $('_seasondropdowns').setStyle("display", "none");

             $('tickettype').addEvent("change", function(el) {
                showHideTicketTypeOptions();
             });

             if ($('yearofticket')) {
                 $('dayofticket').addEvent("change", function(el) {
                     getTicketGroups();
                     getAttractions();
                 });
                 $('monthofticket').addEvent("change", function(el) {
                     getTicketGroups();
                     getAttractions();
                 });
                 $('yearofticket').addEvent("change", function(el) {
                     getTicketGroups();
                     getAttractions();
                 });
                 $('seasonselect').addEvent("change", function(el) {
                     getTicketGroups();
                     getAttractions();
                 });
                 $('seasonselect').addEvent("change", function(el) {
                     getTicketGroups();
                     getAttractions();
                 });
                 $('tickettype').addEvent("change", function(el) {
                    getTicketGroups();
                 });
             }
             
             
// Park validation refresh.
             
             if($('tickettype').selectedIndex>0){
                showHideTicketTypeOptions();
             }

             if($("seasonselect").selectedIndex>0 || ($("dayofticket").selectedIndex>0 && $("monthofticket").selectedIndex>0 && $("yearofticket").selectedIndex>0)){
                    getTicketGroups();
             }
         }
         //touring
         if ($('campingorcaravan')) {
             $('_getPrices').setStyle("display", "none");
             $('_viewDates').setStyle("display", "none");
             
             if($$('#calendarContainer .nextPrevious')[0]){
                $$('#calendarContainer .nextPrevious')[0].setStyle("display", "none");
             }
             $('campingorcaravan').addEvent('change', function() {
                 showHideTouringOptions();
                 getTotalPrice();
             });

             $('berthsize').addEvent('change', function() {
                 getCampingDates( function() { getTotalPrice(); } );
             });
             
             $('touring-electricity').addEvent('click', function() {
                 getTotalPrice();
             });
   //          $('touring-water').addEvent('click', function() {
   //              getTotalPrice();
  //           });
//             $('touring-mealpacks').addEvent('click', function() {
//                 getTotalPrice();
//             });
             
 //touring validation ressurrect
 
             if($('campingorcaravan').selectedIndex>0){
                 showHideTouringOptions();
             }
              if($('berthsize').selectedIndex>0){
                 getCampingDates(function() { getTotalPrice(); } 
                 );
             }else{ 
                if($("showhide")){
                     $("showhide").setStyle("display", "none");  
                 }
                 $("_campingDates").set("html", "<fieldset></fieldset>");
             }
         }
         
         
         if($("bookcamping")){
            if($("bookcamping").checked){
               $("showhide").setStyle("display", "block");
                showHideTouringOptions();
                getCampingDates();
            }
         }
         
         //Events stuff
         if($("submiteventdate")){
        //    var monthsArr = Array["January","February","March","April","May","June","July","August","September","October","November","December"];
            $("submiteventdate").setStyle("display", "none");
            $("_getPrices").setStyle("display", "none");
            
            if( $('_attractions')) { $('_attractions').setStyle("display", "none"); }
            $("ticketstart").addEvent("change", function() {
                getEventTicketGroups();
                getAttractions();
             });
             
              $('tickettype').addEvent("change", function(el) {
                getEventTicketGroups();
             });
                      
             $('_ticketGroupsContainer').setStyle("display", "none");

  // Events validation ressurect
  
             if($('tickettype').selectedIndex>0){
                getEventTicketGroups();
             }
             if($('tickettype').selectedIndex>0){
                getAttractions();
             }
         }
     }
     
     
     
   //   reMakePage();
     
     
     callMultiboxes();
 });
 
 
 
 
 
 function callMultiboxes(){
 
   if ($$(".sendToAFriend")[0]) {

         var initMultiBox = new multiBox({
             mbClass: ".sendToAFriend",
             container: $(document.body),
             showControls: false,
             useOverlay: true,
             overlayColor: "#ffffff"
         });
     }

     if ($$("a.gallery")[0]) {

         var mbgall = new multiBox({
             mbClass: "a.gallery",
             container: $(document.body),
             showControls: true,
             useOverlay: true,
             overlayColor: "#ffffff",
             openFromLink: true
         });
     }

     if ($$(".popupVideo")[0]) {

         var initMultiBox = new multiBox({
             mbClass: ".popupVideo",
             container: $(document.body),
             showControls: false,
             useOverlay: true,
             overlayColor: "#ffffff"
         });
     }


     if ($$(".popupGallery")[0]) {
         var mbPopGall = new multiBox({
             mbClass: ".popupGallery",
             container: $(document.body),
             showControls: false,
             useOverlay: true,
             overlayColor: "#ffffff"
         });
     }
     
     
     if ($$(".multibox")[0]) {
         var mbterms = new multiBox({
             mbClass: ".multibox",
             container: $(document.body),
             showControls: true,
             useOverlay: true,
             overlayColor: "#ffffff",
			 useKeyboard: false
         });
     }
 
 
 }

