document.observe("dom:loaded", function() {
  if (sitedeel) $$('html')[0].addClassName(sitedeel);
});

function getContent(param) {
  var element;   
  if(!param) param = {};
  if(!(element = $(param.element) || $('content') )) {
    return;
  }
  if(param.fn != "fader") element.update('<center><img src="/images/loading.gif" alt="" width="25" height="25" border="0"></center>');
  
  var URI = "/handlers/#{lng}/#{sitedeel}/#{fn}.lp".interpolate({ 
    lng     : param.lng, 
    sitedeel: param.sitedeel, 
    fn      : param.fn 
  });
  
  console.log(URI);
  
  var initAccordionPages     = $w('verhuur-stacaravans personeel');
  var initFormValidatorPages = $w('contact reserveringsformulier');
  
  new Ajax.Request(URI, {  
  	method          : 'post',   
  	parameters      : param,
  	onSuccess       : function(originalRequest) {     
  		try{
        
        if(param.fn == "fader") {
        
          var divPreloader = new Element('div',{
            'id' : "divPreloader" 
          }).update(originalRequest.responseText);
          
          $$('body')[0].appendChild(divPreloader);
          checkIfComplete.defer(divPreloader);
          
        }else{
        
          new Effect.Fade(element, {
            duration: 0.5,
            afterFinish: function() {
              $(element).update(originalRequest.responseText);
              new Effect.Appear(element, {
                duration: 0.5,
                afterUpdate: function() {
                  initFlashHeaders(param.flashFile || param.sitedeel);
                },
                afterFinish: function() {
                  if(initAccordionPages.indexOf(param.fn) != -1 ) {
                    myInitAccordion();
                  }
                  if(initFormValidatorPages.indexOf(param.fn) != -1 ) {
                    myInitFormValidator();
                  }
                  if(param.fn == 'mailinglijst') {
                    initMailinlistAccodion();
                  }
                }
              });  
            }
          });
        }
  		}catch(e){
        console.log(e);
      }
  	}
  }); 
}
function sendForm() {
  var form;
  if(!(form = $(arguments[0]))) return false;
  if(form.validate()) {
    $('frm_inschrijvenSubmit').update('<img src="/images/loading.gif" alt="" width="15" height="15" border="0">');
    
    form.request({
      onComplete: function() {
        $(form).hide(); 
        $('formResponse').show(); 
      }
    });

    if (window._trackEvent) window._trackEvent("Formulieren", "Verzonden", $F(form['subject']));
  }
  return false;
}
function validateReservationCredentials() {
  var form;
  if(!(form = $(arguments[0]))) return false;
  if(form.username.value == 'domaine' && form.password.value == 'pommier') {
    $('reserveringsheader').show();
    $('frm_reserveren').show();
    $('formCredentials').hide();
    $('telefonischheader').hide();
    initFlashHeaders();
  }else{
   $('errorResponse').show();
  }
  return false;
}
function toggleActiveSubItems(element) {
  var activeClassName = 'isCurrentPage';
  $$('ul.subNavigation li').each(function(el) {
    if(el == element) {
      if(!el.hasClassName(activeClassName)) {
        el.addClassName(activeClassName);
      }
    }else{
      el.removeClassName(activeClassName);
    }
  });  
}
function setNavigation(page) {
  if(!page) return;
  var navigation      = $('navigation'),
      activeClassName = 'isCurrentPage';
      selector        = 'li.'+page;
  console.log(selector);
  $$('li.menuitem').each(function(el){
    if(el.hasClassName(activeClassName)) el.removeClassName(activeClassName);
  });
  
  if(activeItem = $$(selector)[0]) {
    activeItem.addClassName(activeClassName);
  }
}
function imageComplete(img) {
  return img.complete;
}
function setFaderElementsWidth(images) {
  var dimensions  = document.viewport.getDimensions(),
      width       = dimensions.width, 
      height      = dimensions.height;

  images.each(function(el,index) {
    var newwidth = ( height * (el.getWidth() / el.getHeight() )).round();
    el.setStyle({
      width: (width > newwidth ? width+'px' : newwidth+'px') 
    });
  });
  return;
}
function checkIfComplete(divPreloader) {
  var checkAgain = false,
      images     = divPreloader.select("img");
      
  images.each(function(el,index) {
    if(!imageComplete(el)) {
      checkAgain = true;
      return;
    }
  });
  if(checkAgain) return checkIfComplete.delay(1,divPreloader);
  
  setFaderElementsWidth(images);
  
  var element = $('holder');
  
  new Effect.Fade(element, {
    duration: 0.5,
    afterFinish: function() {
      element.update(divPreloader);
      // Reset the id
      divPreloader.id = "notAnIDthatIsUsedBefore";
      new Effect.Appear(element, {
        duration: 0.5,
        afterFinish: function() {
          initFullScreenFader.defer(divPreloader);
        }
      });  
    }
  });
}
function initFullScreenFader(divPreloader) {
  if(this.init) return;
  if(!$(divPreloader)) return;
  var images = divPreloader.select("img");
  
  window.Fader = new HM.FullScreenFader('holder',{
    duration        : 0.7,
    transitionTime  : 12,
    scrollElement   : 'fadeEvents',
    fadeEventsHolder: 'fadeEvents'
  });
  
  // Re-position fotokeuze element after initialisation
  $('fotokeuze').setStyle({
    right: '19px'
  });
  
  Event.observe(window, 'resize', function() {
    setFaderElementsWidth(images);
  }); 
  
  this.init = true;
}
function initFlashHeaders () {
  var sitedeel = arguments[0] || 'camping';
  
  HM.Flash.Text.load("h1", {
		src: "/flash/titel_"+sitedeel+".swf"
	})
	
	HM.Flash.Text.load("h2", {
		src: "/flash/header_"+sitedeel+".swf"
	})
  
}
function myInitAccordion() {
  accordion = new HM.Accordion('divAccordion',{
    handles: "accordion-handle"
  });
}
function myInitFormValidator() {
  HM.Form.Validator.load();
}
function toggleDropDown(element) {
	$(element).down(0).toggle();
}
function initMailinlistAccodion() {
  accordionMaillist = new HM.Accordion('GroupMaillist', {
    duration:  0.5
  });
  accordionMaillistResponse = new HM.Accordion('GroupMaillistResponse', {
    duration:  0.5
  });
}


/* OBSOLETE, but keep just in case  */
function __setNavigation(page) {
  if(!page) return;
  var navigation      = $('navigation'),
      activeClassName = 'isCurrentPage';
      selector        = 'li.'+page,
      activeItem      = navigation.select(selector)[0]; 
  
  navigation.select('li.menuitem').each(function(el){
    if(el.hasClassName(activeClassName)) el.removeClassName(activeClassName);
  });
  activeItem.addClassName(activeClassName);
}
function ___initFullScreenFader() {
  if(this.init) return;
  window.Fader = new HM.FullScreenFader('holder',{
    duration        : 0.7,
    transitionTime  : 12,
    scrollElement   : 'fadeEvents',
    fadeEventsHolder: 'fadeEvents'
  });
  this.init = true;
  var images = window.Fader.images();
  checkIfComplete(images);
}
function ___checkIfComplete(images) {
  var checkAgain = false;
  images.each(function(el,index) {
    if(!imageComplete(el)) {
      checkAgain = true;
      return;
    }
  });
  if(checkAgain) return checkIfComplete.delay(1,images);
  setFaderElementsWidth(images);
  
  // Set onresize handlers
  Event.observe(window, 'resize', function() {
    setFaderElementsWidth(images);
  });
}
