(function ($){
	/* Carousel */	
	var c = $('ul#carousel'), m = $('div#maps'), f = $('form');
	if(c.get(0)){
		c.find('li').each(function(){
			/* Preload hover images */
			var src = $(this).find('img').attr('src'), img = new Image;
			img.src = src.replace('-off','-on');
		}).hover(
			function(){
				var src = $(this).addClass('hover').find('img').attr('src');
				$(this).find('img').attr('src', src.replace('-off','-on'));
			},
			function(){
				var src = $(this).removeClass('hover').find('img').attr('src');
				$(this).find('img').attr('src', src.replace('-on','-off'));		
			}
		).click(function(){
			window.location = $(this).find('a').attr('href');
		});
	}
	

	if (document.all){ // document.all targets both ie6 & ie7 typeof document.body.style.maxHeight == "undefined" for IE6 only! 
		if($('body').hasClass('visie') || $('body').hasClass('mensen')){
			$('a#logo').appendTo('#container');
		}
	}

		
		
	var Map = {
		curPostal: null,
		icon: null,
		instance: null,
		showAddress: function(){
			var map = Map.instance, kbdq = new GLatLng(52.270408, 4.974720);
			map.clearOverlays();
			map.setCenter(kbdq, 15);
			map.setMapType(G_NORMAL_MAP);
			m = new GMarker(kbdq, Map.getIcon());
			map.addOverlay(m);
			GEvent.addListener(m, 'click', function(){
				m.openInfoWindow('Hoogstraat 23<br/>1319 AA Abcoude<br/>');
			});
		},
		catchError: function(el){			
		},
		getIcon: function(){
			if(!Map.icon){
				var icon = new GIcon();
					icon.image = '/images/kbdq/icons/marker.png';
					icon.shadow = '/images/kbdq/icons/marker-shadow.png';
					icon.iconSize = new GSize(38, 54);
					icon.shadowSize = new GSize(77, 69);
					icon.iconAnchor = new GPoint(19, 54);
					icon.infoWindowAnchor = new GPoint(38, 2);
				Map.icon = icon;
			}
			return Map.icon;
		},
		initMap: function(){
			var m = $('#maps').get(0);
			if (m && GBrowserIsCompatible()){
				var map = new GMap2(m);
				map.addMapType(G_PHYSICAL_MAP);
				map.addControl(new GMapTypeControl());
				map.addControl(new GSmallMapControl());
				Map.instance = map;
				Map.showAddress();
				$(window).unload(GUnload);
			}
		}
	}
	Map.initMap();
	
	$.extend($.validator.messages, {
			required: "Dit is een verplicht veld.",
			remote: "Controleer dit veld.",
			email: "Vul hier een geldig email adres in.",
			url: "Vul hier een geldige URL in.",
			date: "Vul hier een geldige datum in.",
			number: "Vul hier een geldig nummer in.",
			digits: "Vul hier alleen nummers in.",
			maxlength: $.format("Vul hier maximaal {0} tekens in."),
			minlength: $.format("Vul hier minimaal {0} tekens in."),
			rangelength: $.format("Vul een waarde in van minimaal {0} en maximaal {1} tekens."),
			range: $.format("Vul een waarde in tussen {0} en {1}."),
			max: $.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),
			min: $.format("Vul hier een waarde in groter dan of gelijk aan {0}.")
		});
		
		/* Set validation defaults and classes */
		$.validator.addMethod("postal", function(value, element) {return this.optional(element) || /^[0-9]{4}\s?([a-zA-Z]{2})?$/.test(value);}, "Geef een geldige postcode op");
			
		d = new Date();		
		/* Validate the form */
		if(f.get(0)){
			f.validate({
				errorPlacement: function(er,el){
					var a = el.attr('name') === 'aiBirthdate[iDay]'?$('input[name=aiBirthdate[iYear]]'):el;
					er.insertAfter(a);
				}
			});
			f.find('.postal').rules('add',{postal:true});
		}
} (jQuery));