if (document.observe) document.observe("dom:loaded", function() {
  new HM.NewsScroller("nieuwsScroller", {
    src       : "/nl/ajax-nieuws.lp",
    direction : "horizontal",
    interval  : 7000
  });
   new HM.NewsScroller("nieuwsScrollerVeBON", {
    src       : "/nl/ajax-nieuws.lp?rechten=Leden",
    direction : "horizontal",
    interval  : 7000
  });            
});

function toggleDropDown(element) {
	$(element).down(0).toggle();
}

function toggleFilterDropDown(element) {
	$(element).down(0).toggle();
}

function higlightOptionName(element) {
	$(element).next().toggleClassName("filterButtonActive");
}

function initializeHomePage() {
  var param = arguments[0] || {};
  
  // Initialize loader
  Loader = new HM.Tooltip.Loader('<img src="/images/loading.gif" alt="" width="16" height="16" border="0">', {
    'text'      : 'Gegevens worden opgehaald',
    'separator' : '&nbsp;'
  });
  
  // Main searchform
  formSearchElement = $('frm_search');
  
  if (param.list) {
    observeListContext();
  }else{
    observeMapContext();
  }
  
  // Initialize checkbox
  checkboxValueToText(formSearchElement);
  
  // Initialize google maps 
  if (!param.list) initHomeMap();
  
}

function observeListContext() {
   formSearchElement.observe('value:changed', function(event) {
    doNavigateTo();
  });
} 
function observeMapContext() {
   formSearchElement.observe('value:changed', function(event) {
    updateMap(Event.element(event));
  });
}
function initHomeMap() {
  map = new HM.Googlemaps('map',{
    'hotspotsURI'             : '/handlers/json/hotspots.lp',
    'latlng'                  : '51.97639,5.430321',
    'useClusters'             : true,
    'navigationControlStyle'  : 'SMALL',
    'maptype'                 : 'TERRAIN',
    
    'options' : {
      'scrollwheel'             : false
      //'disableDoubleClickZoom'  : true
    },
    
    'markersLoaded'           : function(event) {
      map.removePolygons();
    },
    'afterMarkersInitialized' : function(event) {
      var extra = event.memo.extra;
      if (extra.polygons.show) {
        var args = extra.polygons.arguments.split("|");
        loadPolygons(args[0],args[1]);
      }
      Loader.hide();
    },
    'onPolygonClick'          : function(polygon) {
      map.fitMapBounds(polygon.get("bounds"));
    },
    
    cluster : {
      'styles'          : {
    		0   : {
  			  image     : "http://www.vebon.nl/images/googlemaps/hs_cluster.png",
  			  textColor : "#1d3600",
  			  width     : 32,
  			  height    : 37,
          lineheight    : 32,
          zIndex    : 1
  		  },
    		10  : {
    			image     : "http://www.vebon.nl/images/googlemaps/hs_cluster.png",
    			textColor : "#1d3600",
    			width     : 32,
    			height    : 37,
          lineheight    : 32,
          zIndex    : 1
    		},
    		20  : {
    			image     : "http://www.vebon.nl/images/googlemaps/hs_cluster.png",
    			textColor : "#1d3600",
    			width     : 32,
    			height    : 37,
          lineheight    : 32,
          zIndex    : 1
    		}
    	}
  	}
  });
  
  updateMap(formSearchElement);
}
function getContent(param) {
  if (!param) param = {};
  
  var element = param.element,
      page    = param.page,
      q       = param.q;
     
  if (!(element = $(element) || $('ajaxContent') )) {
    return;
  }
  
  Loader.show();
  
  new Ajax.Request(getURI(page), {  
  	method          : 'get',   
  	parameters      : $H(q).toQueryString(),
  	onSuccess       : function(request) {     
  		try{
        new Effect.Fade(element, {
          duration: 0.5,
          afterFinish: function() {
            element.update(request.responseText);
            new Effect.Appear(element, {
              duration: 0.5
            });
            Loader.hide();
          }
        });
  		}catch(e){
        console.log(e);
      }
  	}
  }); 
}
function getURI(page) {
  var URI;
  switch(page) {
    case 'activiteiten':
      URI = '/handlers/ajax/activiteiten.lp';
      break;
    default:
      URI = '/handlers/ajax/activiteiten.lp';
  }
  return URI;
}

function higlightOptionName(element) {
	$(element).next().toggleClassName("filterButtonActive");
}
function updateMap(form) {
  Loader.show();
  map.retrieveAndUpdateMarkers(form.serialize(true));
}
function handleCheckboxEvent() {
  var form;
  if (form = checkboxEvent(arguments[0],arguments[1])) {
    fireSearchEvent();
  }
};
function checkboxEvent() {
  var name = arguments[0],
      form;
  
  if(!(form=$(arguments[1]))) return false;
  
  checkboxValueToText(form,name);
  return form;
}

var timeout;
function fireSearchEvent() {
  if (timeout) window.clearTimeout(timeout);
  timeout = _fireSearchEvent.delay(0.5);
};
function _fireSearchEvent() {
  formSearchElement.fire('value:changed');
};
function checkboxValueToText() {
  var form          = $(arguments[0]),
      name          = arguments[1] || null,
      names         = $w('activiteiten'),
      checkboxName,
      element;
  
  names.each(function(n) {
    if (name && name != n) return;
    
    checkboxName = 'search_'+n;
    
    if ((element = $('selected_'+n)) && form[checkboxName] ) {
      var html = form.getInputs('checkbox', checkboxName).findAll(function(el) {
        if (el.checked)  return el;
      }).collect(function(s) {
        return s.title;
      }).join('<br>');
    }
    element.update(html);
  });
}
function setCheckboxValue() {
  var form  = formSearchElement,
      value = arguments[0], 
      name  = arguments[1] || "search_activiteiten";
 
  form.getInputs('checkbox', name).findAll(function(el) {
    el.checked = "";
    if (el.value == value) el.checked = "checked";
  });
  handleCheckboxEvent('activiteiten',formSearchElement);
}
function changeView() {
  var form = $(arguments[0]),
      value = arguments[1] || 0;
  
  form.list.value = value;
  return formAction(form,"/nl/");
}
function doNavigateTo() {  
  var page = arguments[0] || 0,
      form = $(document.frm_search);
      form.current_page.value = page;
  
  getContent({
    element : 'ajaxContent',
    page    : 'activiteiten',
    q       : form.serialize(true)
  });
  //document.frm_search.submit();
}
function formAction() {
  var frm     = arguments[0],
      action  = arguments[1] || "",
      param   = arguments[2] || {};
      
  if (!(frm = $(frm))) return;
  
  $H(param).each(function(pair) {
    if(frm[pair.key]) frm[pair.key].value = pair.value;
  });
  
  frm.action   = action;
  frm.onsubmit = function() {
    return true;
  };
  frm.submit();
  return false;
}
function loadPolygons() {
  var country = arguments[0] || "nl",
      region  = arguments[1] || null,
      borders = HM_Polygons.get(country)[0],
      regions = HM_Polygons.get(country)[1];
  
  borders.each(function(pair) {
    map.initializePolygon(pair.value,{
      name          : pair.key,
      strokeColor   : '#FFFFFF',
      strokeOpacity : 0.7,
      fillColor     : 'transparent',
      fillOpacity   : 0.0
    });
  });

  if (!region) return;
  
  regions.each(function(pair) {
    if (region && pair.key != region) return; 
    map.initializePolygon(pair.value,{
      name          : pair.key,
      strokeColor   : '#323F23',
      strokeOpacity : 0.7,
      fillColor     : '#4C5F35'
    });
  });
  
} 
