var map;

$(document).ready(function(){
	if (GBrowserIsCompatible() && jQuery('#googleMap').length > 0) {
		map = new GMap2(document.getElementById('googleMap'));
		map.setCenter(new GLatLng(51.588187,4.775829),13);
		map.addControl(new GLargeMapControl3D());
		startGoogleMap();
	}
	
	enableFilterButton();
	
	$('.news-result, #news-items .news-item, .programm-result, .photographer-result, .search-result').hover(function() { 
			$(this).addClass('hover');
		}, function () { 
			$(this).removeClass('hover');
	}).click(entireDivClick);
	
	$("#photo-album a").fancybox();
	
/* SLIDER */	
	var month=new Array(12);
	month[0]="jan"; 
	month[1]="feb";
	month[2]="mrt";
	month[3]="apr";
	month[4]="mei";
	month[5]="jun";
	month[6]="jul";
	month[7]="aug";
	month[8]="sep";
	month[9]="okt";
	month[10]="nov";
	month[11]="dec";

	
	$('#slider').slider({
					range: true,
					min: 0,
					max: 38,
					step: 1,
					values: [parseInt($("#frm_start_offset").val()),parseInt($("#frm_end_offset").val())],
			
					slide:  function(event, ui) {
						startDate = new Date(2010, 8, 16, 12, 00 ,00 );	
						startDate.setDate(startDate.getDate()+ui.values[0]);
						$('.ui-slider-handle:first').text(startDate.getDate() +' ' + month[startDate.getMonth()] );
						
						endDate = new Date(2010, 8, 16, 12, 00 ,00 );	
						endDate.setDate(endDate.getDate()+ui.values[1]);
						$('.ui-slider-handle:last').text(endDate.getDate() +' ' + month[endDate.getMonth()] )					
					},
					stop: function(event, ui) {
						$("#frm_startdate").val(startDate.getFullYear()+"-"+(startDate.getMonth()+1)+"-"+startDate.getDate());
						$("#frm_enddate").val(endDate.getFullYear()+"-"+(endDate.getMonth()+1)+"-"+endDate.getDate());
						
						$("#frm_start_offset").val(ui.values[0]);
						$("#frm_end_offset").val(ui.values[1]);
						
						$.get('/ajax/get_programma_overzicht.ajax.php',  $('#frm_programm_search').serialize(), function(data) {
							  $('#programm-result-container').html(data);
							  enableFilterButton();
							  $('.programm-result').hover(function() { 
										$(this).addClass('hover');
									}, function () { 
										$(this).removeClass('hover');
								}).click(entireDivClick);
						},'text');
					}


				});
	
	vals = $('#slider').slider( "values" );
	
	$('.ui-slider-handle:first').css({background: ' url(/img/slider_handle_2.gif) no-repeat', margin: '0 0 0 -53px'  });
	startDate = new Date(2010, 8, 16, 12, 00 ,00 );	
	startDate.setDate(startDate.getDate()+vals[0]);
	
	$('.ui-slider-handle:first').text(startDate.getDate() +' ' + month[startDate.getMonth()] );						
	endDate = new Date(2010, 8, 16, 12, 00 ,00 );	
	endDate.setDate(endDate.getDate()+vals[1]);
	$('.ui-slider-handle:last').text(endDate.getDate() +' ' + month[endDate.getMonth()] )

	/**
	 * Zet beide data in het formulier
	 */
	$("#frm_startdate").val(startDate.getFullYear()+"-"+(startDate.getMonth()+1)+"-"+startDate.getDate());
	$("#frm_enddate").val(endDate.getFullYear()+"-"+(endDate.getMonth()+1)+"-"+endDate.getDate());
	
	/**
	 * Zet beide offset values in het formulier
	 */
	$("#frm_start_offset").val(vals[0]);
	$("#frm_end_offset").val(vals[1]);
	

	
	$('#openstudioroute-checkbox').change(function() { 
		if($(this).attr('checked')) {
			toggleGroup("small", "show");			
		} else { 
			toggleGroup("small", "hidden");
		}
		$(this).blur();
		return false;
	})

	/**
	 * Filters wissen knop. voeg de onclick toe
	 */
	$('#filters_wissen').click(function(){
		var url = $(this).attr('rel');
		
		location.href = url;
	});

	/**
	 * Flash banner plaatsen
	 */
	var flashvars = {};
	var params = {};
	params.wmode = "transparent";

	swfobject.registerObject("flash-sponsors", "8.0.0", "/swf/expressInstall.swf");
	swfobject.embedSWF("/swf/sponsoren.swf", "flash-sponsors", "235", "110", "9.0.0", "/swf/expressInstall.swf", flashvars, params);
	
	$('#flash-sponsor-innerbox').css({ cursor: 'pointer' }).click(function() { window.location = 'http://www.bredaphoto.nl/over-breda-photo/sponsoren/11'; })

});

// make entire elm clickable
function entireDivClick () {
	if($(this).find("a").attr("target") == '_blank'){
		window.open($(this).find("a").attr("href"));
	}else{
		window.location=$(this).find("a").attr("href");
	}
	return false;
}

function enableFilterButton() {	
	$('.btn_filter').click(function() { 
		if($(this).hasClass('open')) {
			$('.filters').hide();			
			$(this).removeClass('open').addClass('closed');
		} else {
			$('.filters').show();
			$(this).removeClass('closed').addClass('open');
		}
		return false;
	});
}

/* Google map */

var markerGroups = { "large": [], "small": []};

function startGoogleMap() {
	jsonParams = "";
	if($('#googleMapParams').length > 0 ){
		jsonParams = $('#googleMapParams').val();
	};
	
	$.getJSON('/ajax/get_locaties.ajax.php?studio_route=0&'+jsonParams, '', function (data) { 
		for ( i = 0; i < data.pointers.length; i ++ ) {
			var point = new GLatLng(data.pointers[i].lat, data.pointers[i].long);
			map.addOverlay(createPointer(point, data.pointers[i].icon, data.pointers[i].html,'large'));
		}
   	});
   	$.getJSON('/ajax/get_locaties.ajax.php?studio_route=1&'+jsonParams, '', function (data) { 
		for ( i = 0; i < data.pointers.length; i ++ ) {
			var point = new GLatLng(data.pointers[i].lat, data.pointers[i].long);
			map.addOverlay(createPointer(point, data.pointers[i].icon, data.pointers[i].html, 'small'));
				
			if($('#openstudioroute-checkbox').length > 0 ) {
				if($('#openstudioroute-checkbox').attr('checked')) { 
					 markerGroups['small'][markerGroups['small'].length -1].show();
				} else {
					 markerGroups['small'][markerGroups['small'].length -1].hide();
				}
			}
		}
   	});
}

function createPointer(point, icon, html, size) {
	var Icon = new GIcon();
		Icon.image = icon;
		
		if(size == 'large') { 
			Icon.iconSize = new GSize(36, 36);
			Icon.iconAnchor = new GPoint(18, 18);
			Icon.infoWindowAnchor = new GPoint(18, 18);
		} else {
			Icon.iconSize = new GSize(20, 20);
			Icon.iconAnchor = new GPoint(10, 10);
			Icon.infoWindowAnchor = new GPoint(10, 10);
		}
		
		markerOptions = { icon: Icon };
		
		var marker = new GMarker(point, markerOptions);
		markerGroups[size].push(marker);
	
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(html);
		});
	
		
	return marker;
}

function toggleGroup(type, visibility) {
	for (var i = 0; i < markerGroups[type].length; i++) {
		var marker = markerGroups[type][i];
		if (visibility == 'show' ) {
			marker.show();
		} else {
			marker.hide();
		}
	} 
	return false;
}

