$(function(){
	
	$('img[data-hover],input[data-hover]').imghover();
	
	if ($.browser.msie && $.browser.version < 7)
		$('img[src$=.png]').pngfix();

	$('input[data-placeholder]').inputPlaceholder();

	/*$('#vindwinkel').hide();
	$('#vindwinkel_close').click(function(){
		toggleVindwinkel(false);	
	});

	$('#button_vindwinkel').show().click(function(){
		toggleVindwinkel(true);
	});

	function toggleVindwinkel (open) {
		if (open) {
			$('#button_vindwinkel').hide();
			$('#vindwinkel').show();
		} else {
			$('#vindwinkel').hide();
			$('#button_vindwinkel').show();
		}
	}*/
	
	$('#button_close').click(function(e){
		parent.Shadowbox.close();
		e.preventDefault();
	});
	
	$('a.link_close').click(function(e) {
		parent.Shadowbox.close();
		e.preventDefault();
	});

	// Google Maps
	var mapcanvas = $('div#mapcanvas').get(0);
	var markers = [];
	var infowindowcontent = [];
	if (mapcanvas) {
		var latlng = new google.maps.LatLng(52.169397, 5.509644);
		var options = {
			zoom: 7,
			center: latlng,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		}

		var map = new google.maps.Map(mapcanvas, options);
		var infowindow = new google.maps.InfoWindow({content: 'test'});

		shopSearch();
	}

	$('#shopsubmit').click(function(e) {
		shopSearch();
		e.preventDefault();
	});

	$("a.shopshow").live('click', function(e) {
		infowindow.close();
		var a = $(this);
		var i = a.attr('data-marker-id');
		var m = markers[i];
		map.panTo(m.getPosition());
		showInfoWindow(i);
		e.preventDefault();
	});

	function shopSearch() {
		var zinput = $('input#zipcode');
		var zipcode = zinput.val();

		if (zipcode && zipcode != zinput.attr('data-placeholder')) {
			$('#shopsubmit').hide();
			$('img#ajaxloader').show();
			zinput.removeClass('error');
			infowindow.close();
			$("ul#winkellist").slideToggle();
			$.ajax({
				url: '/ajax/shop',
				type: 'post',
				cache: false,
				data: {
					zipcode: zipcode
				},
				dataType: 'json',
				success: function(response) {
					showShops(response);
				}
			});
		} else {
			zinput.addClass('error');
		}
	}

	function showShops(shops) {

		$('input#shopsubmit').show();
		$('img#ajaxloader').hide();

		// remove markers
		for (var m = 0; m < markers.length; m++) {
			markers[m].setMap(null);
		}
		markers = [];
		infowindowcontent = [];

		var shoplist = $("ul#winkellist");
		shoplist.html('');

		var bounds = new google.maps.LatLngBounds();

		// add new markers + create list items
		for (var i = 0; i < shops.length; i++) {
			var markerpos = new google.maps.LatLng(shops[i].lat, shops[i].lng);
			var marker = new google.maps.Marker({
				map: map,
				position: markerpos,
				title: shops[i].name
			});
			markers[i] = marker;
			bounds.extend(markerpos);

			// add list item
			$('<li><a href="" class="shopshow" data-marker-id="' + i + '">Toon op kaart</a><div class="plaats">' + shops[i].name + '</div><div class="straat">' + shops[i].address + ', ' + shops[i].city + '</div><div class="telefoon">' + shops[i].phone + '</div></li>').appendTo(shoplist);

			setInfoWindowContent(marker, i, shops[i]);
		}

		map.fitBounds(bounds);
		shoplist.slideToggle();
	}

	function setInfoWindowContent(marker, i, shop) {
		infowindowcontent[i] = '<div class="balloon"><strong>' + shop.name + '</strong><br>' 
				+ shop.address + '<br>'
				+ shop.zipcode + ' ' + shop.city + '<br>'
				+ 'Tel.: ' + shop.phone + '<br><br>'
				+ '<em>Openingstijden</em><br>' + shop.opening_hours
				+ '</div>';
		google.maps.event.addListener(marker, 'click', function() {
			showInfoWindow(i);
			map.panTo(marker.getPosition());
		});
	}

	function showInfoWindow(i) {
		infowindow.setContent(infowindowcontent[i]);
		infowindow.open(map, markers[i]);
	}


	swfobject.embedSWF('flash/videoplayer.swf?v=1.0.1', 'homeflash', '500', '500', '9.0.28', 'flash/expressInstall.swf', {
		url: '/media/video/intro',
		height: 500
	}, {
		allowScriptAccess: 'sameDomain',
		allowFullScreen: 'false',
		bgcolor: '#000000',
		scale: 'noscale',
		quality: 'high',
		wmode: 'transparent',
		menu: 'false'
	});

	swfobject.embedSWF('flash/videoplayer.swf?v=1.0.1', 'resultaatflash', '376', '326', '9.0.28', 'flash/expressInstall.swf', {
		url: '/media/video/' + $('#resultaatflash').attr('data-flash'),
        age: $("#resultaatflash").attr("data-age"),
		height: 326
	}, {
		allowScriptAccess: 'sameDomain',
		allowFullScreen: 'false',
		bgcolor: '#000000',
		scale: 'noscale',
		quality: 'high',
		wmode: 'transparent',
		menu: 'false'
	});

	$('#startfilm').click(function(e){
		$('div#resultaat_html').hide();
		$('div#resultaatflashcontainer').show();
		
		restartVideo();
		e.preventDefault();
	});

});

if (typeof Shadowbox != "undefined") {
	Shadowbox.init({
		displayCounter: false,
		displayNav: false,
		handleOversize: "none",
		troubleElements: ['select','canvas'],
		viewportPadding: 0
	});
}

function restartVideo() {
  	var f = getFlashObject("resultaatflash");
	 if (f != null && typeof f.restartVideo == 'function') {
      f.restartVideo();
    } else {
      setTimeout(restartVideo, 250);
    }
}

function getFlashObject(objectName) {
   if (navigator.appName.indexOf("Microsoft") != -1) {
       return window[objectName];
   } else {
       return document[objectName];
   }
}

function videoComplete() {
	$('div#resultaatflashcontainer').hide();
	$('div#resultaat_html').show();
}

