';
if( $longitude != '')
addMarker($title, $windowContent, $icon, $latitude, $longitude, key);
});
});
}
/**
* Function : getOperators
* Get all the operators from an ajax call
*/
function getOperators() {
$.getJSON(ajaxUriOperators,
function(json) {
//console.log(json);
$.each(json, function(key, element) {
var $adresse = element.adresse;
var $latitude = element.latitude;
var $longitude = element.longitude;
var $title = element.nom;
var $urlAlias = element.url;
var $icon = picto;
var $windowContent = '
';
if( $longitude != '')
addMarker($title, $windowContent, $icon, $latitude, $longitude, key);
});
});
}
/**
* Function : getSearch
* Get all 3 events and 2 place according to keywors params from an ajax call
*/
function getSearch(keywords) {
$('#search-results-events').html('');
$('#search-results-places').html('');
var URI = ajaxUriAutocomplete+keywords;
$.getJSON(URI,
function(json) {
if( json != '') {
//console.log(json);
$('#view-events-list-search h2').html('Résultats pour "'+keywords+'"');
cpt = 0;
$.each(json, function(key, element) {
var $type = element.type;
var $nodeId = element.nodeId;
var $nom = element.nom;
var $url = element.url;
var $latitude = element.latitude;
var $longitude = element.longitude;
var $adresse = element.adresse;
var $urlImage = element.urlImage;
var $index = element.index;
var $icon = picto;
//console.log($type);
var $windowContent = '
';
var $itemContent = '';
// if( $longitude != '') {
// addMarker($nom, $windowContent, $icon, $latitude, $longitude, $index);
// feedList($itemContent);
// }
if ( $type == 'evenement') {
// Handling event type element
var $nomLieu = element.nomLieu;
var $idType = element.idType;
var imgPath = "/extension/cheminsdelaculture/design/cheminsdelaculture/images/content/event_types/";
imgPath += $idType+'.png';
$windowContent += '
|
'+eventTypes[$idType]+' - ';
if( $nomLieu != '' )
$windowContent += ''+$nomLieu+'
|
';
else
$windowContent += ''+$adresse+'';
$windowContent += '
|
+ d\'infos | ';
$windowContent += '
';
addMarker(( $nomLieu != '' ) ? $nomLieu : $adresse, $windowContent, $icon, $latitude, $longitude, $index);
$itemContent += '
';
if( $urlImage != '' && $urlImage != null)
$itemContent += '';
$itemContent += ''+eventTypes[$idType]+'';
feedListEvent($itemContent);
}
else {
// Handling place type element
var $typeLieu = element.typeLieu;
var $windowContent = '
';
if( $longitude != '')
addMarker($nom, $windowContent, $icon, $latitude, $longitude, key);
$itemContent += '
';
if( $urlImage != '' && $urlImage != null)
$itemContent += '';
$itemContent += ''+$adresse+'';
feedListPlace($itemContent);
}
if(cpt == 0)
getDetail(element.nodeId);
cpt += 1;
});
preloader('end');
$('#view-events-list').hide();
$('#view-events-list-search').fadeIn();
$('#search-filter-input').val('');
}
else {
error('add');
//$('#view-events-list-search h2').html('Aucun résultat pour "'+keywords+'"');
$('#view-events-list h2').html('Aucun résultat pour "'+keywords+'"');
$('#search-results').html('');
preloader('end');
$('#search-filter-input').val('');
}
});
}
/**
* @name: getEvents
* @desc: Get all the events from an ajax call
* @param: [array] $dates
* @param: [array] $themes
*/
function getEvents($dates, $themes) {
$('#search-results').html('');
var URI = ajaxUriEvents;
if( $themes.length > 0 ){
URI += '/liste_filtres/';
$.each($themes, function(i, v){
if(i > 0)
URI += '-'+v;
else
URI += v;
});
}
if( $dates.length > 0 ){
URI += '/liste_dates/';
$.each($dates, function(i, v){
if(i > 0)
URI += '-'+v;
else
URI += v;
});
}
//console.info('URI : '+URI);
$.getJSON(URI,
function(json) {
if( json == '') {
error('add');
}
cpt = 0;
$.each(json, function(key, element) {
var $latitude = element.latitude;
var $longitude = element.longitude;
var $index = element.index;
var $icon = picto;
var $adresse = '';
var $nomLieu = '';
var $windowContent = '
';
var $itemContent = '';
// Il faut construire le contenu de l'infobulle ici
$.each(element.evenements, function(i, event){
$adresse = event.adresse;
$nomLieu = event.nomLieu;
//console.log(event);
var imgPath = "/extension/cheminsdelaculture/design/cheminsdelaculture/images/content/event_types/";
imgPath += event.type+'.png';
$windowContent += '
|
'+eventTypes[event.type]+' - ';
if( event.nomLieu != '' )
$windowContent += ''+event.nomLieu+'
|
';
else
$windowContent += ''+event.adresse+'';
$windowContent += '
|
+ d\'infos | ';
$itemContent += '';
if( event.urlImage != '' && event.urlImage != null)
$itemContent += '';
$itemContent += ''+eventTypes[event.type]+'';
if(cpt == 0)
getDetail(event.nodeId);
cpt += 1;
});
$windowContent += '
';
//$itemContent += '';
if( $longitude != '') {
addMarker(( $nomLieu != '' ) ? $nomLieu : $adresse, $windowContent, $icon, $latitude, $longitude, $index);
feedList($itemContent);
}
});
// Pagination sweetpages
$('#search-results').sweetPages({perPage:5});
if(shapes.length == 0) {
error('add');
}
});
}
/**
* Function : getDetail
* get detail about an event element
*/
function getDetail(nodeID) {
// Clean div
//$('#view-details-block .view-details').fadeOut();
$('#view-details-block .view-details').html('');
preloader2('start');
//console.log(ajaxUriGet+nodeID);
$.getJSON(ajaxUriGet+nodeID,
function(json) {
var content = '';
if( json.image_presentation != '' && json.image_presentation != null ) {
content += '
';
}
content += '
'+json.name+'
'+json.description.substr(0,300)+'...
'+json.date+'
'+json.lieu+'
+ d\'infos';
$('#view-details-block .view-details').html(content);
preloader2('end');
});
}
/**
* Function : getDetailPace
* get detail about a place element
*/
function getDetailPlace(nodeID) {
$('#view-details-block .view-details').html('');
preloader2('start');
var URI = ajaxUriGet+nodeID;
//console.log(URI);
$.getJSON(URI,
function(json) {
var content = '';
if( json.image_presentation != '' && json.image_presentation != null ) {
content += '
';
}
content += '
'+json.name+'
'+json.adresse+'
+ d\'infos';
$('#view-details-block .view-details').html(content);
preloader2('end');
});
}
/**
* Function : loadMap
* Load the map
*/
function loadMap() {
var mapOptions = {
center: new google.maps.LatLng(defaultLatLng[0], defaultLatLng[1]),
zoom: defaultZoom,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
panControl: false,
streetViewControl: false,
scrollwheel: false,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
}
};
map = new google.maps.Map(document.getElementById("map"), mapOptions); // Global var
}
/**
* Function : clearMap
* Clear all the map
*/
function clearMap() {
$.each(shapes, function (i, shape) {
shape.obj.setMap(null);
});
shapes = new Object();
mbounds = new google.maps.LatLngBounds();
}
/**
* Function : resizeMap
* Trigger the resizing of the map
*/
// function resizeMap() {
// google.maps.event.trigger(map, 'resize');
// }
/**
* Function : preloader
* Display a preloader on the map
*/
function preloader(what) {
if ( what == 'start' ) {
$('.carto').append('
');
}
else {
$('.preloader').fadeOut(800).delay(1000).queue(function() {
$(this).remove();
});
};
}
/**
* Function : preloader2
* Display a preloader on the detail block
*/
function preloader2(what) {
if ( what == 'start' ) {
$('.view-details').append('
');
}
else {
$('.preloader2').fadeOut(800).delay(1000).queue(function() {
$(this).remove();
});
};
}
/**
* Function : error
* Display an error message on the map
*/
function error(what) {
if ( what == 'add' ) {
$('.carto').append('
Aucun résultat
');
}
else {
$('.preloader').fadeOut(800).delay(1000).queue(function() {
$(this).remove();
});
};
}
/**
* Function : feedList
* Add elements to the list on the side
*/
function feedList($item) {
$('#search-results').append($item)
}
/**
* Function : feedListEvent
* Add elements to the list on the side
*/
function feedListEvent($item) {
$('#search-results-events').append($item)
}
/**
* Function : feedListPlace
* Add elements to the list on the side
*/
function feedListPlace($item) {
$('#search-results-places').append($item)
}
/**
* Function : addMarker
* Add a marker on the map
*/
function addMarker($title, $windowContent, $icon, $lat, $lng, $index){
var latlng = new google.maps.LatLng($lat, $lng);
mbounds.extend(latlng);
map.fitBounds(mbounds);
var place = new google.maps.Marker({
position: latlng,
title: $title,
flat: true,
icon: $icon
});
place.setMap(map);
var $infoWindow = new google.maps.InfoWindow({content: $windowContent, maxWidth : '200' });
google.maps.event.addListener(place, 'click', function() {
closeAllBubble();
$infoWindow.open(map,this);
});
shapes[$index] = {
id: $index,
type: 'marker',
shown: 'yes',
obj: place,
infoWindow : $infoWindow
};
}
/**
* Function : toggleBubble
* Manage infoWindow (only one infowindow should be opened at once)
*/
function closeAllBubble() {
$.each(shapes, function (i, shape) {
if(shape != undefined)
shape.infoWindow.close();
});
}
/*-----------------------------------------------------------------------
~ General
------------------------------------------------------------------------*/
loadMap();
// By default load next seven days events
var dates = new Array();
var themes = new Array();
getEvents(dates, themes);
/*-----------------------------------------------------------------------
~ Event Trigger
------------------------------------------------------------------------*/
// Trigger hover state
$('li.view-list').live('mouseenter', function(){
var index = $(this).data('index');
var nodeid = $(this).data('id');
var type = $(this).data('type');
closeAllBubble();
shapes[index].infoWindow.open(map,shapes[index].obj );
if ( type == 'place') {
getDetailPlace(nodeid);
}
else {
getDetail(nodeid);
}
});
$('li.view-list').live('mouseleave', function(){
var index = $(this).data('index');
//shapes[index].infoWindow.close();
});
$('a[data-display="operators"]').live('click', function(e){
$('.sub-info-block, .select-dates-container, .search-filter').hide();
$('#search-word').hide();
// Handler icon active state
$('.carto-nav a').removeClass('active');
$(this).addClass('active');
preloader('start');
clearMap();
getOperators();
preloader('end');
e.preventDefault();
});
$('a[data-display="places"]').live('click', function(e){
$('.sub-info-block, .select-dates-container, .search-filter').hide();
$('#search-word').hide();
// Handler icon active state
$('.carto-nav a').removeClass('active');
$(this).addClass('active');
preloader('start');
clearMap();
getPlaces();
preloader('end');
e.preventDefault();
});
$('a[data-display="events"]').live('click', function(e){
$('#search-word, #view-events-list-search').hide();
$('.sub-info-block, .select-dates-container, .search-filter, #view-events-list').show();
// Handler icon active state
$('.carto-nav a').removeClass('active');
$(this).addClass('active');
preloader('start');
clearMap();
getEvents(dates, themes);
preloader('end');
e.preventDefault();
});
$('a[data-display="events"]').mouseenter(function(){
$('.select-type').stop().fadeIn();
});
$('.select-type').hover(function(){
$(this).show();
}, function(){
$(this).fadeOut();
});
$('a[data-role="theme"]').click(function(e){
var $element = $(this);
var typeID = $element.data('type-id');
var state = $element.data('state');
if( state == 0 ) {
$element.data('state', '1');
$element.addClass('selected');
}
else {
$element.data('state', '0');
$element.removeClass('selected');
}
var getThemes = $('a[data-role="theme"]');
themes = new Array();
$.each(getThemes, function(i, theme){
if( $(this).data('state') == '1' ) {
themes.push($(this).data('type-id'));
}
});
// Trigger a new AJAX Call
$('a[data-display="events"]').trigger('click');
e.preventDefault();
});
$('a[data-role="date"]').live('click', function(e){
var $element = $(this);
var datetime = $element.data('datetime');
var state = $element.data('state');
if( state == 0 ) {
$element.data('state', '1');
$element.addClass('selected');
}
else {
$element.data('state', '0');
$element.removeClass('selected');
}
var getDates = $('a[data-role="date"]');
dates = new Array();
$.each(getDates, function(i, date){
if( $(this).data('state') == '1' ) {
dates.push($(this).data('datetime'));
}
});
// Trigger a new AJAX Call
$('a[data-display="events"]').trigger('click');
e.preventDefault();
});
$('#search-form').submit(function(){
var searchText = $('#search-filter-input').val();
$('.select-dates-container').hide();
//console.log(searchText);
$('.search-filter').fadeOut();
$('#search-word').find('p').html(searchText).end().fadeIn();
// Lancer la recherche sur le mot
preloader('start');
clearMap();
getSearch(searchText);
return false;
});
$('#close-word').click(function(e){
$('#view-events-list h2').html('Evènements');
$('#view-events-list-search').fadeOut();
$('#search-word').fadeOut();
$('.select-dates-container').fadeIn();
$('#view-events-list').fadeIn();
$('a[data-display="events"]').trigger('click');
e.preventDefault();
});
var myDays = ["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"];
var myMonths = ["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"];
var myMonthsNumber = ["01","02","03","04","05","06","07","08","09","10","11","12"];
var oneDay = 86400000; // 1000x60x60x24 = 86400000
var currentDate = new Date();
var currentDay = currentDate.getDay();
var currentTimestamp = currentDate.getTime();
//console.log(currentTimestamp);
generateDays(currentTimestamp, currentDay);
$('.prev-week a').click(function(e){
var MondayTS = $('.select-dates li').eq(0).find('a').data('timestamp');
MondayTS -= oneDay*8;
//console.log(MondayTS);
generateDays(MondayTS, 0);
// Trigger a new ajax call
var jour = new Date(MondayTS);
//console.log(MondayTS);
if( jour.getDate()
'+dayNumber+'/'+monthNumber+'');
}
var jour = new Date(firstTS);
if( jour.getDate()
'+dayNumber+'/'+monthNumber+'');
for (i=1;i
'+dayNumber+'/'+monthNumber+'');
}
}
else {
for (i=1;i
'+dayNumber+'/'+monthNumber+'');
}
}
// generate week range
var startDate = $('.select-dates li').eq(0).find('span').html();
var endDate = $('.select-dates li').eq(6).find('span').html();
$('.week-range').html('du '+startDate+' au '+endDate);
$('.select-dates').stop().fadeIn();
$('.tipsy-s').tipsy({gravity: 's'});
}
});
Cette semaine à bourg
Evenements
Lieux