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();
}
})
}