var DEVICES = { DESKTOP: 1, TABLET: 2, SMARTPHONE: 3 }; var device = DEVICES.DESKTOP; var postVerfassenPressed = false; $(document).ready( function() { enquire.register("only screen and (max-width: 667px)", { match: function() { device = DEVICES.SMARTPHONE; } }); enquire.register("only screen and (min-width: 1024px)", { match: function() { device = DEVICES.DESKTOP; } }); enquire.register("only screen and (min-width: 768px) and (max-width: 1023px)", { match: function() { device = DEVICES.TABLET; } }); // Search form $('#search_bubble_form.opened input[type=submit]').click( function(event) { $('#search_bubble_form').submit(); }); $('#search_bubble_form a, #search_bubble_form input[type=submit]').click( function(event) { if($(this).parent().hasClass('opened')) { $(this).parent().submit(); } else { event.preventDefault(); $(this).parent().addClass('opened'); $('#search_bubble_form input[name=searchValue]').focus(); } }); // Adjust font-size $('#adjustSize a').click( function(event) { event.preventDefault(); $('#adjustSize a').removeClass('active'); $(this).addClass('active'); var newFontSize = $(this).attr('data-fontSize'); $.ajax({ url: '/index.html?cmd=adjustFontSize&fontSize=' + newFontSize, type: 'post' }).done(function(jsonResponse) { $('html').removeClass('smallFontSize'); $('html').removeClass('mediumFontSize'); $('html').removeClass('largeFontSize'); $('html').addClass(newFontSize+'FontSize'); fitAll(); }); }); $('#mobileMenuButton').click(function(event) { event.preventDefault(); $('#smartphoneMainMenu').fadeIn(); }); $('#smartphoneMainMenu .close').click(function(event) { event.preventDefault(); $('#smartphoneMainMenu').fadeOut(); }); // Styled Form $(':radio, select, input[type=checkbox]').styledInput({styleOptions: true}); $('.form_field.color :radio').each( function() { $(this).parent().attr('style',$(this).attr('style')); }); $('.postVerfassen .form_field.color :radio').each( function() { var style = $(this).attr('style'); var label = ''+$(this).attr('data-label')+''; $(this).parent().append(label); }); // Login Form $('form#login_bubble_form').submit(function(event) { event.preventDefault(); formHandler($(this), 'loginForm', true, false); }); // Logout $('a.logout, #logoutMenuButton').click(function(event) { event.preventDefault(); $.ajax({ url: '/index.html?cmd=logout' }).done(function(jsonResponse) { location.reload(); }); }); // Registration Forn $('form#register_form').submit(function(event) { event.preventDefault(); formHandler($(this), 'registerForm', false, false); }); // Passwort vergessen Forn $('form#password_forgotten_form').submit(function(event) { event.preventDefault(); formHandler($(this), 'passwordForgotten', false, false); }); // Footer Form $('form#contact_form .contentboxlink').click(function(event) { event.preventDefault(); $('#register_form #email').val($('form#contact_form #email').val()); $('#register_form #benutzername').val($('form#contact_form #benutzername').val()); //formHandler($(this), 'contactForm', false, false); }); // Freundschaftsanfrage senden/annehmen | Member blockieren $(document).on('click', 'a.freundschaftsstatusAendern', function(event) { event.preventDefault(); statusHandler('freundschaftsstatusAendern', $(this)); }); // Member entsperren $('a.sperrstatusAendern').click(function(event) { event.preventDefault(); statusHandler('sperrstatusAendern', $(this)); }); // Profil bearbeiten $('form#profil_bearbeiten_form').submit(function(event) { event.preventDefault(); formHandler($(this), 'profilBearbeiten', false, false); }); // Nachricht senden var files; $('input[type=file]').on('change', prepareUpload); function prepareUpload(event) { files = event.target.files; } $('form#nachricht_verfassen_form').submit(function(event) { event.preventDefault(); filesformHandler($(this), 'nachrichtVerfassen', true, files) }); $('.opener').click( function(event) { //static //$(document).on('click', '.opener', function(){ //live event.preventDefault(); var clickedLink = $(this); if(clickedLink.attr('data-id')) { $('.toBeOpenedData[data-id='+clickedLink.attr('data-id')+']').slideDown(); } else { $('.toBeOpened').slideDown(400,function() { uploaderPostbild.refresh(); }); } $('.opener.nachrichten').slideUp(); }); $('.reply').click(function(event) { event.preventDefault(); var userid = $(this).closest(".konversation").attr("data-userid"); $("#empfaengerid").val(userid).trigger('change');; $(".nachrichtVerfassen.toBeOpened").slideDown(400,function() { uploaderPostbild.refresh(); }); $("a.nachrichten").slideUp(); }); $('form#profilbild_aktualisieren').submit(function(event) { event.preventDefault(); filesformHandler($(this), 'profilePicture', true, files) }); // Nachricht als gelesen speichern $('.nachricht.ungelesen').click( function() { var nid = $(this).attr('data-id'); var nachricht = $(this); $.ajax({ url: '/index.html?cmd=markAsRead&nid='+nid, success: function(data, textStatus, jqXHR) { nachricht.removeClass('ungelesen'); nachricht.removeAttr('style'); } }); }) // Post verfassen $('.video_hinzufuegen').click( function(event) { event.preventDefault(); if($('#video').hasClass('opened')) { $('#video').removeClass('opened'); } else { $('#video').addClass('opened'); } }); $('#post_verfassen_form .color .si-radio').click( function() { var color = $(this).css('background-color'); $('#titel').css('color',color); $('.border.adjustColor').css('background-color',color); }); $('#titel').keypress( function() { var placeholder = $(this).attr('data-placeholder'); if($(this).val() == placeholder) { $(this).val(''); } }); if(isMobile()) { $(document).on('click touched', '.form_field.color .styledInput', function() { }); } $('#titel').focusin( function() { var placeholder = $(this).attr('data-placeholder'); if($(this).val() == placeholder) { $(this).caretToStart(); } }); $('#titel').focusout( function() { var placeholder = $(this).attr('data-placeholder'); if($(this).val() == '') { $(this).val(placeholder); } }); // Post verfassen $('form#post_verfassen_form').submit(function(event) { event.preventDefault(); if(!postVerfassenPressed){ postVerfassenPressed = true; //console.log($(this), 'postVerfassen', true, files); filesformHandler($(this), 'postVerfassen', true, files); } }); // Profilsuche $('#search_profiles_form input[type=submit]').click( function(event) { event.preventDefault(); $('#search_profiles_form').addClass('opened'); $(this).val(''); if($('.inputWrapper').hasClass('opened')) { $('#search_profiles_form').submit(); } else { $('.inputWrapper').addClass('opened'); } }); $('#search_profiles_form .erweiterte_suche').click( function(event) { event.preventDefault(); $(this).addClass('active'); $('.extended').slideDown(); }); $('#search_profiles_form .filterZuruecksetzen').click( function(event) { event.preventDefault(); resetSelection('von'); resetSelection('bis'); resetSelection('kanton'); $('#search_profiles_form').submit(); }); $('#search_profiles_form .extended select').on('change', function() { $('#search_profiles_form').submit(); }); // Post löschen $(document).on('click','.postLoeschen', function(event) { event.preventDefault(); event.stopPropagation(); var r = confirm("Post wirklich löschen?"); if(r == true){ var link = $(this); $.ajax({ url: '/index.html?cmd=postLoeschen&bid='+link.attr('data-id')+'&sig='+link.attr('data-sig') }).done(function(jsonResponse) { location.reload(); }); } }); // Post auf Startseite setzen $(document).on('click','.aufStartseite', function() { var link = $(this); $.ajax({ url: '/index.html?cmd=showOnHome&bid='+link.parent().attr('data-id')+'&status='+link.attr('data-status') }).done(function(jsonResponse) { var response = $.parseJSON(jsonResponse); link.html(response.text); link.attr('data-status',response.newStatus); }); }); // Post im Kalender eintragen // Datum setzen $(document).on('click','.aufKalender.aufKalenderOn', function() { $('#kalender_form #bid').val($(this).parent().attr('data-id')); }); $('form#kalender_form').submit(function(event) { event.preventDefault(); formHandler($(this), 'setCalendarDate', true, true); }); // Datum entfernen $(document).on('click','.aufKalender.aufKalenderOff', function(event) { event.preventDefault(); var link = $(this); $.ajax({ url: '/index.html?cmd=resetCalendarDate&bid='+link.parent().attr('data-id') }).done(function() { link.addClass('aufKalenderOn contentboxlink'); link.removeClass('aufKalenderOff'); link.attr('href', '#kalender_form_box'); link.children('span').html('Im Kalender eintragen'); location.reload(); }); }); //Page slider $(window).bind('resize scroll', function(){ if($('html body, html, body').scrollTop() > 100){ $('a#pageslider').show(); if ($('footer').offset().top < $(window).scrollTop() + $(window).height()) { //footer is visible var diff = $(window).scrollTop() + $(window).height() - $('footer').offset().top; $('a#pageslider').css('bottom',diff + 'px'); } else{ //footer is not visible $('a#pageslider').css('bottom','0px'); } } else{ $('a#pageslider').hide(); } }); $('a#pageslider').click(function() { $('html, body').stop().animate({ scrollTop: 0}, 'slow', 'swing'); return false; }); //load content via ajax /* $(document).on('click', '#memberMenu a', function(event) { event.preventDefault(); console.log(); //inhalte holen var url = $(event.target).attr('href'); $.ajax({ method: 'POST', url: url }).done(function(response){ //inhalte anzeigen //console.log(response) $('#memberMenu').fadeOut(function(){ $('#memberMenu').html($(response).find('#memberMenu').html()).fadeIn(); }); $('article').fadeOut(function(){ $('article').html($(response).find('article').html()).fadeIn(); }); //history punkt setzen history.pushState(state, '', url); }) });*/ }); /* var state; window.onpopstate = function(event) { location.reload(); };*/ $.fn.removeToFitLines = function(maxHeight){ var $this = $(this); //reset content $this.html($this.attr('data-content')); //console.log($this); lineHeight = Math.round(parseFloat($this.css('line-height'))); nLines = Math.floor(maxHeight/lineHeight); split = $this.html().split(" "); //console.log(lineHeight, nLines, maxHeight); currentHeight = $this.height(); if(currentHeight <= lineHeight * nLines){ //fits //console.log("fits " + $this.html()); } else{ //crop newContent = ''; for (iEl = 0; iEl < split.length; iEl++) { newContent = split.slice(0,iEl+1).join(" "); $this.html(newContent); currentHeight = $this.height(); if(currentHeight > lineHeight*nLines){ //exceeds criteria //add ellipsis and go back words until fit for(iMl = 0; iMl 0){ //mit Bild $(title).removeToFitLines(line_height); if(height > (2 * $('.grid-sizer').first().height())){ //doppelte Texteinträge $(text).removeToFitLines(line_height * 14); }else if(height / $this.find('img,.img').height() > 2){ //einfache Texteinträge $(text).removeToFitLines(line_height * 11); } else{ //kein Text $(text).html(''); } } else{ //ohne Bild $(title).removeToFitLines(line_height); if(height > (2 * $('.grid-sizer').first().height())){ //dreifache Texteinträge $(text).removeToFitLines(line_height * 18); }else if(height > $('.grid-sizer').first().height()){ //doppelte Texteinträge $(text).removeToFitLines(line_height * 17); }else{ //einfache Texteinträge $(text).removeToFitLines(line_height * 7); } } if($('html').hasClass('largeFontSize')){ //kleine Schrift und default if($this.find('img,.img').length > 0){ //mit Bild $(title).removeToFitLines(line_height); if(height > (2 * $('.grid-sizer').first().height())){ //doppelte Texteinträge $(text).removeToFitLines(line_height * 14); }else if(height / $this.find('img,.img').height() > 2){ //einfache Texteinträge $(text).removeToFitLines(line_height * 9); } else{ //kein Text $(text).html(''); } } else{ //ohne Bild $(title).removeToFitLines(line_height); if(height > (2 * $('.grid-sizer').first().height())){ //dreifache Texteinträge $(text).removeToFitLines(line_height * 18); }else if(height > $('.grid-sizer').first().height()){ //doppelte Texteinträge $(text).removeToFitLines(line_height * 14); }else{ //einfache Texteinträge $(text).removeToFitLines(line_height * 6); } } } } } function showAll(item){ $title = $(item).find('.title'); $text = $(item).find('.text'); $(item).find('.kommentarhinzufuegen').show(); //console.log('gefunden',$(item).find('.kommentarhinzufuegen')); //console.log('gefunden',$(item)); //kommentareAnzeigen($(item).attr('id'),'',false); //$(item).css('height',''); $title.html($title.attr('data-content')); $text.html($text.attr('data-content') + $text.attr('data-autor')); } function fitAll(){ //$.each(childrenDims, function(index, value){ $.each($('.container .item'), function(index, value){ if(!$(value).hasClass('gigante')){ $(value).cropToFit(); } }); } /////////////////////////// //KOMMENTARE HANDLING START /////////////////////////// function kommentarHinzufuegen(postid){ $item = $('#'+postid).first(); $thisContainer = $item.parents().closest('.container'); $thisTextArea = $item.find('.kommentarfeldcontainer').find('textarea'); $kommentare = $item.find('.kommentare'); text = $thisTextArea.val(); $.ajax({ method: 'POST', url: '/index.html?cmd=addComment', data: { id: $item.attr('id').replace(/post_/g,''), kommentartext: text}, }).done(function(jsonResponse) { var obj = jQuery.parseJSON(jsonResponse); if(obj.error != ''){ $item.find('.kommentarfehler').html(obj.error.kommentartext); } else{ $item.find('.kommentarfehler').html(''); $item.find('.kommentarfeldcontainer textarea').val(''); //$kommentare.append(obj.neuerkommentar); kommentareAnzeigen(postid,'alle'); } $item.css('height',''); $thisContainer.packery(); }); } function kommentareAnzeigen(postid, anzahl, render){ if (anzahl === undefined || anzahl == '') {anzahl = "5";} if (render === undefined) {render = true;} $item = $('#'+postid).first(); $kommentare = $item.find('.kommentare'); $thisContainer = $item.parents().closest('.container'); lastID = ''; if($item.find('.kommentar').length != 0){ lastID = $item.find('.kommentar').last().attr('id').replace(/kommentar_/g,''); } if ($item.find('.mehranzeigen').length != 0){ $item.find('.mehranzeigen').remove(); } $.ajax({ method: 'POST', url: '/index.html?cmd=getComments', data: { id: $item.attr('id').replace(/post_/g,''), lastID: lastID, anzahl: anzahl}, }).done(function(jsonResponse) { var obj = jQuery.parseJSON(jsonResponse); //console.log(jsonResponse); //console.log(obj); if(obj.kommentare != ''){ if(anzahl == 'alle'){ $kommentare.find('.kommentar').remove(); $kommentare.append(obj.kommentare); //nummer updaten $item.find('.kommentareanzeigen').html(obj.kommentareanzeigen); } else{ $kommentare.append(obj.kommentare); if($kommentare.children('.kommentar').length == obj.total){ //alle Kommentare wurden abgerufen //console.log('alle'); } else{ $kommentare.append(obj.mehranzeigen); } } if(render){ $item.css('height',''); $thisContainer.packery(); } } }); } /////////////////////////// //KOMMENTARE HANDLING ENDE /////////////////////////// function resetSelection(field) { $('#'+field+' option:first-child').attr("selected", "selected"); var newSelected = $('#si-'+field+' .si-options > a:first-child') newSelected.addClass('si-selected'); $('#si-'+field+' span').html(newSelected.html()); } function filesformHandler(form, cmd, reload, files) { // Create a formdata object and add the files var inputData = form.serializeArray(); //var data = new FormData(); var data = {}; var url = '/index.html?cmd='+cmd; if(cmd!='postVerfassen' && cmd!='nachrichtVerfassen'){ if($('.imageupload .preview:has(img)').length > 0 || cmd=='profilePicture') { $.each(files, function(key, value) { //data.append(key, value); data[key] = value; }); } }else{ //data.append('bilddatei', $(form).find('#bilddatei').val()); //data['bilddatei'] = $(form).find('#bilddatei').val(); $.each($(form).find('input'), function(key, value){ data[$(value).attr('name')] = $(value).val(); }); } if(cmd=='nachrichtVerfassen') { url = url+'&empfaengerid='+inputData[0]['value']+'&text='+inputData[1]['value']+'&bilddatei='+$(form).find('#bilddatei').val(); } console.log(url); if(cmd=='postVerfassen') { var len = inputData.length; var newInputData = {}; for (i=0; i'); } else if(cmd=='postVerfassen') { $.get( "", function( articledata ) { article = $( articledata ).find('article'); $('article').fadeOut(400, function(){ $('article').html(article.html()); $('

'+ data.message +'


').insertBefore($('.meinePosts')) //console.log(data.message,'test'); $('article').fadeIn(0,function(){initializeAllPackery();}); }); }) } else { form.fadeOut(400, function() { form.html(data.message); form.fadeIn(); if(reload) { location.reload(); } }); postVerfassenPressed = false; } } }, error: function(jqXHR, textStatus, errorThrown) { // Handle errors here console.log('ERRORS: ' + textStatus ); //console.log('ERRORS: ' + textStatus + ' | ' + errorThrown + ' | ' + JSON.stringify(jqXHR, null, ' ')); // STOP LOADING SPINNER } }); return false; } function formHandler(form, cmd, reload, reloadTimout) { $.ajax({ url: '/index.html', type: 'post', data: { cmd: cmd, formData: form.serializeArray() } }).done(function(jsonResponse) { //console.log(JSON.stringify($.parseJSON(jsonResponse), null, ' ')); var response = $.parseJSON(jsonResponse); if(response.type == 'error') { var $errorText = form.find('.errorText'); $errorText.hide(); $errorText.html(response.message); $errorText.slideDown(); } else { form.fadeOut(400, function() { form.html(response.message); form.fadeIn(); if(reload) { if(reloadTimout) { setTimeout(function() { location.reload(); }, 2000); } else { location.reload(); } } if(cmd=='setCalendarDate') { var icon = $('.adminFunktionen[data-id='+response.bid+'] .aufKalender'); icon.removeClass('aufKalenderOn'); icon.removeClass('contentboxlink'); icon.addClass('aufKalenderOff'); icon.removeAttr('href'); icon.children('span').html('Aus Kalender entfernen'); } }); } }); return false; } function statusHandler(handlerfunction, link) { $.ajax({ url: '/index.html?cmd='+handlerfunction+'&mid='+link.attr('data-mid')+'&status='+link.attr('data-status') }).done(function(jsonResponse) { link.replaceWith($.parseJSON(jsonResponse)); }); } //packery handling start function initializeAllPackery(){ fitAll(); var $container = $('.container'); $container.packery({ itemSelector: '.item', gutter: 20, //columnWidth:210, //rowHeight:10, columnWidth: '.grid-sizer', //columnHeight: '.grid-sizer', transitionDuration:"0.8s" }); $container.packery('on', 'fitComplete', function(item){ isInAnimation = false; }); $container.packery('on', 'layoutComplete', function(item){ fitAll(); isInAnimation = false; }); $container.packery(); } var isInAnimation = false; $(window).load( function() { initializeAllPackery() }); $(document).on('click', '.item', function(event) { if(!isInAnimation){ var $target = $(event.target); var $thisContainer = $target.parents().closest('.container'); var classes = ['n1','n2','n3','n4','n5','n6','n7','n6bild','n7_n6bild']; if($target.hasClass('item')){ isInAnimation = true; if($target.hasClass('gigante')){ var wasBig = true; } else { var wasBig = false; } $thisContainer.find('.item .img').removeClass('giganteImg').height(''); $.each( classes, function( index, value ){ $('.container').find('.item').removeClass(value + 'gigante'); }); $('.container').find('.item .img').removeClass('giganteImg').height(''); $('.container').find('.item').removeClass('gigante').each(function(){ if($(this).data('hadHeight') != ''){ $(this).height($(this).data('hadHeight')); $(this).height(''); } }); //nicht betroffene Container resetten //$('.container').not($thisContainer).packery('reloadItems').packery(); //kommentare wieder löschen $('.item').find('.kommentar, .mehranzeigen').remove(); $('.item').find('.kommentareanzeigen').show(); fitAll(); /*if(device == DEVICES.SMARTPHONE) { $thisContainer.packery(); //option element springt nicht auf platz 1 } else {*/ $thisContainer.packery('reloadItems'); //} if(!wasBig){ showAll($target); //klassen anhängen $.each( classes, function( index, value ){ if($target.hasClass(value)){ $thisContainer.find('.item').not($target).addClass(value + 'gigante'); } }); $target.find('.img').addClass('giganteImg').height(460); $target.data('hadHeight',$target.height()).addClass('gigante').height($target.children('div').height()); $thisContainer.packery('fit', event.target); if($target.offset().top+$target.height()-$(window).scrollTop() > $(window).height()){ //$('html,body').animate({ scrollTop:$('body').scrollTop()+$target.offset().top-$(window).scrollTop()+$target.height()-$(window).height() },900,'easeOutSine'); } //oben abgeschnitten //if(device != DEVICES.SMARTPHONE) { $('html,body').animate({ scrollTop: $thisContainer.offset().top }, 900, 'easeOutSine'); /*} else { $('html,body').animate({ scrollTop: $target.offset().top }, 900, 'easeOutSine'); }*/ } else{ $thisContainer.packery(); } } else if($target.hasClass('kommentareanzeigen') && $target.parents().closest('.item').hasClass('gigante')){ //item ist geöffnet und kommentare wurde angeklickt $thisItem = $target.parents().closest('.item'); kommentareAnzeigen($thisItem.attr('id')); } else if($target.hasClass('kommentarschreiben')){ //kommentar schreiben wurde geklickt $target.parent().find('.kommentarverfassendiv').show(); $target.parent().find('.kommentarverfassendiv textarea').focus(); $target.hide(); $target.parents().closest('.item').css('height',''); $target.parents().closest('.container').packery(); } else if($target.hasClass('kommentarabschicken')){ //Kommentar abschicken kommentarHinzufuegen($target.parents().closest('.item').attr('id')); } else if($target.hasClass('youtube') && $target.hasClass('giganteImg')){ var url = $target.attr('data-youtubeurl'); window.open(url,'_blank'); } else if($target.hasClass('aufStartseite')){ } else if($target.hasClass('postLoeschen')){ } else if($target.hasClass('aufKalender')){ } else if(($target.hasClass('kommentare') || $target.hasClass('kommentarhinzufuegen')) && $target.parents().closest('.item').hasClass('gigante')){ //Klicks auf Kommentare abfangen }else { $target.parent().trigger('click'); } } }); $( window ).resize(function() { $( ".container" ).packery(); }); //packery handling ende function isMobile() { return device != DEVICES.DESKTOP; } function loadMoreMembers(status_klasse,n){ var allMemberIDs = []; $('.member' + "." + status_klasse).each(function(index,value){ allMemberIDs[allMemberIDs.length] = $(value).attr('data-mid'); }) lastItem = $('.member' + "." + status_klasse).last(); button = $('.loadMore' + "." + status_klasse); $.ajax({ method: 'POST', url: '/index.html?cmd=showMoreMembers', data: { ids: allMemberIDs, status_klasse: status_klasse} }).done(function(jsonResponse){ var obj = jQuery.parseJSON(jsonResponse); $(obj.members).insertAfter($(lastItem)); if(obj.left == 0){ button.hide(); } }) }