/* Leaflet2 - EBERL ONLINE Merkzettelscript * Merkzettel zum Sammeln von Daten auf einer Webseite * * Author: Alexander Ließmann * Copyright: EBERL ONLINE 2011 */ (function($){ var settings; $.fn.leaflet = function(options) { // Default Config settings = { leafletCookieName: 'leaflet2', leafletCookieExpires: 7, defaultHTML: '
Momentan befinden sich keine Einträge auf dem Merkzettel.
', leafletCookiePath: '/' } $.extend(true, settings, options); this.data('leaflet2', settings); this.displayLeaflet(); return options; } $.fn.addToLeaflet = function(item) { var settings = this.data('leaflet2'); var obj = $(item).data('leaflet2'); if ( typeof obj != 'object' ) { if ( typeof console != 'undefined' ) console.log('Leaflet Data is not an Object. I try to fix.'); obj = obj.replace(/[\n\r\t]/g, ''); obj = obj.replace(/<[^>]*>?/g, ''); obj = $.parseJSON(obj); if ( typeof obj != 'object' && typeof console != 'undefined') { console.log('Hm. Not good. Couldn´t convert string to Object. Exiting...'); return; } } var leafletObj = []; var leafletStr = $.cookie(settings.leafletCookieName); if ( leafletStr && leafletStr != '' ) { leafletObj = $.parseJSON(leafletStr); if ( this.inLeaflet(leafletObj, obj) != -1 ) return; } leafletObj.push(obj); var newLeafletStr = JSON.stringify(leafletObj); $.cookie(settings.leafletCookieName, newLeafletStr, {expires: settings.leafletCookieExpires, path: settings.leafletCookiePath}); this.displayLeaflet(); if ( typeof settings.onAddToLeaflet == 'function' ) settings.onAddToLeaflet(item, obj, leafletObj); } /* * Funktion prüft (anhand der URL), ob ein Element bereits im Merkzettel vorhanden ist * @param {object} leafletObj JSON * @param {object} obj JSON Object */ $.fn.inLeaflet = function(leafletObj, obj) { var ll = leafletObj.length; var indicator = obj.url; while ( ll-- ) if ( leafletObj[ll].url == indicator ) return ll; return -1; } /* * Daten aus Leaflet holen */ $.fn.getLeafletData = function() { var target = this; var settings = target.data('leaflet2'); var leafletStr = $.cookie(settings.leafletCookieName); if ( leafletStr && leafletStr != '' ) { return $.parseJSON(leafletStr); } else { return []; } } /* * Darstellung des Merkzettels */ $.fn.displayLeaflet = function() { var target = this; var settings = target.data('leaflet2'); target.empty(); var leafletStr = $.cookie(settings.leafletCookieName); var list = $('