var MYMAP = {
  	map: null,
	bounds: null
}
var geocoder;
var dealersArray=[];
var infoWindow;
//
$(document).ready(function () {
	$("form[name=dealerformulier] input[name=zoek]").hide();
	$("body[id=home] form[name=dealerformulier] select[name=land]").change(function() {
		var val = $(this).find('option:selected').val();
		var url = $('form[name=dealerformulier]').attr('action');
		window.location.href=url+"?land="+val;
	});
	$("body[id=home] form[name=dealerformulier] select[name=type]").change(function() {
		var val = $(this).find('option:selected').val();
		var url = $('form[name=dealerformulier]').attr('action');
		window.location.href=url+"?type="+val;
	});
	if($("body[class=infopage] form[name=dealerformulier]").length>0){
		$('img.fullwidth').replaceWith('<div id="map" class="fullwidth" style="width:678px; height:229px"></div>');
		$("select[name=land]").change(function() {
			$("select[name=type] option:first").attr('selected','selected');
			getDealers();
		});
		$("select[name=type]").change(function() {
			$("select[name=land] option:first").attr('selected','selected');		
			getDealers();
		});
		init();
		getDealers();
	}
	
});
function init(){
    geocoder = new google.maps.Geocoder();			
	var myLatLng = new google.maps.LatLng(50.8,4.3);
	MYMAP.init('#map', myLatLng, 7);
	infoWindow = new google.maps.InfoWindow();
}
MYMAP.init = function(selector, latLng, zoom) {
	var myOptions = {
	    zoom:zoom,		
	    center: latLng,
	    mapTypeId: google.maps.MapTypeId.ROADMAP
	}
  	this.map = new google.maps.Map($(selector)[0], myOptions);
	this.bounds = new google.maps.LatLngBounds();
}
function getDealers(){
	deleteOverlays();
	var form = $("form[name=dealerformulier]"),
	formURL = form.attr('action')+"?js=test",
	formMethod = form.attr('method'),
	formData = form.serialize();
	$.ajax({
		url: formURL,
		type: formMethod,
		data: formData,
		success: function(data){
			var result_arr = jQuery.parseJSON(data);
			if(result_arr.length == 0){
				// GEEN RESULTATEN			
			}else{			
				$("div#resultaten").append("<ul id=\"resultatenlijst\"></ul>");
				for(i=0;i<result_arr.length;i++) {
					//
					var point = new google.maps.LatLng(parseFloat(result_arr[i]['lat']),parseFloat(result_arr[i]['lng']));
					var icon = "http://maps.google.com/mapfiles/marker.png";
					if(result_arr[i]['foto']){
						icon = "../"+result_arr[i]['foto'];
					}
					MYMAP.bounds.extend(point);
					// INFOWINDOW CONTENT
					var windowString = "<b>"+result_arr[i]['bedrijf']+"</b><br />";
					if(result_arr[i]['adres']){
						windowString += result_arr[i]['adres']+"<br />";
					}
					if(result_arr[i]['telnr']){
						windowString += result_arr[i]['telnr']+"<br />";
					}					
					if(result_arr[i]['email']){
						windowString += "<a href=\"mailto:"+result_arr[i]['email']+"\">"+result_arr[i]['email']+"</a><br />";
					}
					if(result_arr[i]['website']){
						windowString += "<a href=\""+result_arr[i]['website']+"\" target=\"_blank\">"+result_arr[i]['website']+"</a><br />";
					}
					if(result_arr[i]['btw']){
						windowString += result_arr[i]['btw']+"<br />";
					}				
										
					// MARKER
					var marker = new google.maps.Marker({position: point, map: MYMAP.map, title: result_arr[i]['bedrijf'], icon: icon, windowContent: windowString});
					dealersArray.push(marker);
					// INFO WINDOW
					google.maps.event.addListener(marker, 'click', function() {				
						infoWindow.setContent(this.windowContent);
						infoWindow.open(MYMAP.map, this);
					});
					// HTML CONTENT
					var htmlString = "<li id=\""+i+"\">";
					htmlString += "<h3>"+result_arr[i]['bedrijf']+"</h3>";
					htmlString += "<p>";
					if(result_arr[i]['adres']){
						htmlString += result_arr[i]['adres']+"<br />";
					}
					if(result_arr[i]['verdeler']=="ja"){
						htmlString += "&bull; Verdeler<br />";
					}
					if(result_arr[i]['winkel']=="ja"){
						htmlString += "&bull; Winkel<br />";
					}
					if(result_arr[i]['cursusleidster']=="ja"){
						htmlString += "&bull; Cursusleidster<br />";
					}
					if(result_arr[i]['telnr']){
						htmlString += result_arr[i]['telnr']+"<br />";
					}					
					if(result_arr[i]['email']){
						htmlString += "<a href=\"mailto:"+result_arr[i]['email']+"\">"+result_arr[i]['email']+"</a><br />";
					}
					if(result_arr[i]['website']){
						htmlString += "<a href=\""+result_arr[i]['website']+"\" target=\"_blank\">"+result_arr[i]['website']+"</a><br />";
					}
					if(result_arr[i]['btw']){
						htmlString += result_arr[i]['btw']+"<br />";
					}										
					htmlString += "</p>";
					htmlString += "</li>";				
					// SIDEBAR
					$('ul#resultatenlijst').append(htmlString);
					$("ul#resultatenlijst li#"+i).click(function(event){
						google.maps.event.trigger(dealersArray[$(this).attr('id')], 'click');
					});			
					MYMAP.map.fitBounds(MYMAP.bounds);
			  	}			
			}
		}
	});
	return false;
}
function deleteOverlays() {
	infoWindow.close();
	if(dealersArray){
		for(i in dealersArray){
			dealersArray[i].setMap(null);
		}
		dealersArray.length = 0;
	}
	dealersArray=[];
	$("div#resultaten").empty();
}
//
$(document).ready(function(){
	$('.mailme').mailme();
	if($('#branding ul li').size()>1){
		$('#branding ul li:gt(0)').hide();
			setInterval(function(){
				$('#branding ul li:first').fadeOut('slow')
					.next('li').fadeIn('fast')
					.end().appendTo('#branding ul');}, 
			6000); 
	}
	$("#header label").hide();
	$("#header input[type=text]").labelify({
		text: "label"
	});
	$("#footer .c2 label").hide();
	$("#footer .c2 input[type=text]").labelify({
		text: "label"
	});		
	$('form[name=nieuwsbriefformulier]').submit(function(){
		if($(this).data('formstatus') !== 'submitting'){
			var email = $('input[name=email]',this).val();
			var form = $(this),
			formURL = form.attr('action')+"&js=test",	
			formMethod = form.attr('method'),
			formData = form.serialize();
			form.data('formstatus','submitting');
			responseMsg = $('#boodschap');
			responseMsg.hide().addClass('response-waiting').fadeIn(200);
			$.ajax({
				url: formURL,
				type: formMethod,
				data: formData,
				success:function(data){
					var responseData = jQuery.parseJSON(data);
					responseMsg.fadeOut(200,function(){
						$(this).removeClass('response-waiting')
							   .addClass(responseData.klass)
							   .fadeIn(200,function(){
								   if(responseData.status=="success"){
									   $('input[name=email]').val('your@email.com');
								   }
								   setTimeout(function(){
									   responseMsg.fadeOut(200,function(){
									       $(this).removeClass(responseData.klass);
										   form.data('formstatus','idle');
									   });
								   },3000)
								});
					});
				}
			});
		}
		return false;
	});	
	$("a[rel=fancybox]").fancybox({
		'transitionIn'	: 'elastic',
		'transitionOut'	: 'elastic'	
	});
	$(".video").click(function() {
		$.fancybox({
			'padding'		: 0,
			'autoScale'		: false,
			'transitionIn'	: 'elastic',
			'transitionOut'	: 'elastic',
			'width'			: 640,
			'height'		: 385,
			'href'			: this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
			'type'			: 'swf',
			'swf'			: {
			'wmode'				: 'transparent',
			'allowfullscreen'	: 'true'
			}
		});
		return false;
	});	
});

