/* Members 0 - Blocked 1 - Request 2 - Admin 3 - Member Answers 0 - No Answer 1 - No 2 - Don't know 3 - Yes */ var killHideGroupBox=false; var killHideControl=false; var killgetChat=false; var chatpage=1; var memberspage=false; var killgetMembers=false; var membertype=3; var openDates; var openItems; var current_id=false; var bannderheight=331; var yespage=1; var nopage=1; var mybepage=1; var noapage=1; var newdateopen=false; var addresses; var chatmode="date"; function focusAtEnd(el) { el.focus(); var s = el.value; el.value = ''; el.value = s; } function setURL(u, t){ if(t!=""){ document.title=t+" | DaBinIchDabei"; }else{ document.title="DaBinIchDabei"; } var url="http://dabinichdabei.de/"+u var stateObj = { foo: "dabinichdabei" }; history.pushState(stateObj, "dabinichdabei", url); } function showGroupsBox(){ $('#topmenu').animate({width: "148px"},500, function(){}); $('#groupsbox').slideDown(500, function(){}); } function hideGroupsBox(){ if(!killHideGroupBox){ $('#topmenu').animate({width: "46px"},500, function(){}); $('#groupsbox').slideUp(500, function(){}); } } /**********************************************/ /* Invite */ /**********************************************/ var invitelines=1; function checkinvitemail(email){ if (!email.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)){ return(false); } else { return(true) } } function addInviteLine(i){ $("#inviteinner").append("
"); $("#inmail_"+i).keypress(function(event) { if ( event.which == 13 ) {checkinviteemail(this.id);} }); $('#inmail_'+i).bind('paste',function(e){ window.setTimeout("checkinviteemail('"+this.id+"')", 100); }); } function intxtre(){ $("#intxt").html("Lade Freunde ein der Gruppe beizutreten."); } function displayInvitePeopleNow(val){ if(val>0){ invitelines=1; $("#inviteinner").html(""); addInviteLine(invitelines); $('#invitebutton').slideUp("fast"); $("#intxt").html(""+val+" Einladungen versendet!"); window.setTimeout("intxtre()", 2000); x_getInvited(openItems[current_id]['groupid'], displayGetInvited); } } function invitePeopleNow(){ var serial=""; for(id=1;id<=invitelines;id++){ var inemail=$("#inmail_"+id).val(); var isvalidemail=checkinvitemail(inemail); if(isvalidemail){ serial=serial+$("#inmail_"+id).val()+"*"+$("#inname_"+id).val()+"*"+$("#inphone_"+id).val()+";"; } } serial=encodeURIComponent(serial); x_invitePeopleNow(openItems[current_id]['groupid'], serial, displayInvitePeopleNow); } function checkinviteemail(id){ var indi=id.substr(7); var inemail=$("#"+id).val(); var isvalidemail=checkinvitemail(inemail); if(isvalidemail){ invitelines++; //addInviteLine(invitelines); $('#inname_'+indi).slideDown("fast", function(){$('#inphone_'+indi).slideDown("fast", function(){addInviteLine(invitelines);});}); $('#invitebutton').slideDown("fast"); } return false; } function displayRemoveInvitation(val){ if(val){ $("#invitation"+val).slideUp("slow"); } } function removeInvitation(id){ x_removeInvitation(id, displayRemoveInvitation); } function cancelRemoveInvitation(id){ $("#removeinvitation"+id).html(""); } function startRemoveInvitation(id){ $("#removeinvitation"+id).html("Entfernen     Abbrechen"); } function displaySendInvitationAgain(val){ if(val){ $("#sendinvitationagain"+val).html("    gesendet"); } } function sendInvitationAgain(id){ x_sendInvitationAgain(id, displaySendInvitationAgain); } function displayGetInvited(val){ $('#invitedoutput').html(""); if(val){ $('#invitedoutput').html(""); for(var i in val){ if(val[i]['status']==0){ $('#invitedoutput').append(""); }else{ $('#invitedoutput').append(""); } } $('#invitedoutput').append("
   "+val[i]['email']+"   "+val[i]['name']+"   "+val[i]['phone']+"   "+val[i]['inserttime']+"    Erneut senden
   "+val[i]['email']+"   "+val[i]['name']+"   "+val[i]['phone']+"   "+val[i]['inserttime']+"
"); }else{ $('#invitedoutput').html("Keine Einladungen vorhanden"); } } /**********************************************/ /* Messages */ /**********************************************/ var mes_sms=0; var mes_alldate="date"; var mes_smst=""; var mes_to = new Array; mes_to[0]=0; mes_to[1]=0; mes_to[2]=0; mes_to[3]=0; var mes_markmail=false; var mes_markdmail=false; var mes_mailtosend=false; var mes_dmailtosend=false; function messentalertre(){ $("#messentalert").slideUp("slow", function(){hideMessageInput();}); } function displaySendMessage(val){ if(val){ if(val['markmail']){ mes_mailtosend=false; mes_markmail=false; } if(val['markdmail']){ mes_dmailtosend=false; mes_markdmail=false; } $("#messentalert").slideDown("slow"); $("#postmessageboxbutton").slideDown("fast"); $("#postmessageboxloader").slideUp("fast"); window.setTimeout("messentalertre()", 3000); } } function postMessageBox(){ if(mes_alldate=="date"){ if( mes_to[0] == 0 && mes_to[1] == 0 && mes_to[2] == 0 && mes_to[3] == 0){ alert("Keine Mitglieder ausgewählt!"); return false; } } if($("#messagebox").val()==""){ alert("Bitte eine Nachricht eingeben!"); return false; } var smsl=mes_smst.length; smsl=160-smsl; if(smsl<0 && mes_sms==1){ alert("Sie SMS ist leider zu lang ( 160 Zeichen incl. Gruppenname und Link)"); return false; } var message=encodeURIComponent($("#messagebox").val()); var smsmessage=encodeURIComponent(mes_smst); $("#postmessageboxbutton").slideUp("fast"); $("#postmessageboxloader").slideDown("fast"); x_sendMessage(openItems[current_id]['dateid'], openItems[current_id]['groupid'], mes_alldate, mes_to[0], mes_to[1], mes_to[2], mes_to[3], mes_sms, message, smsmessage, mes_markmail, mes_markdmail, displaySendMessage); } function setSendAllDate(what){ mes_alldate=what; $(".alldateicon").removeClass("icon-checkbox-unchecked"); $(".alldateicon").removeClass("icon-checkbox-checked"); $(".alldateicon").addClass("icon-checkbox-unchecked"); $("#alldateicon"+what).removeClass("icon-checkbox-unchecked"); $("#alldateicon"+what).addClass("icon-checkbox-checked"); if(what=="date"){ $('#sendmessageto').slideDown("slow", function(){}); }else{ $('#sendmessageto').slideUp("slow", function(){}); } calcSMSCount(); } function calcSMSCount(){ mes_smst=""; mes_smst=mes_smst+$('#smsgroupinput').val(); mes_smst=mes_smst+$('#messagebox').val(); if(mes_alldate=="date"){ $('#smsdatelink').slideDown("slow", function(){}); $('#smsgrouplink').slideUp("slow", function(){}); mes_smst=mes_smst+$('#smsdatelink').html(); }else{ $('#smsdatelink').slideUp("slow", function(){}); $('#smsgrouplink').slideDown("slow", function(){}); mes_smst=mes_smst+$('#smsgrouplink').html(); } var smsl=mes_smst.length; smsl=160-smsl; $('#smscounter').html(smsl); } function setSMS(){ if(mes_sms==0){ mes_sms=1; $("#smsicon").removeClass("icon-checkbox-unchecked"); $("#smsicon").addClass("icon-checkbox-checked"); $('#smsgroup').slideDown("slow", function(){}); $('#smslink').slideDown("slow", function(){}); $('#smscounter').slideDown("slow", function(){}); }else{ mes_sms=0; $("#smsicon").removeClass("icon-checkbox-checked"); $("#smsicon").addClass("icon-checkbox-unchecked"); $('#smsgroup').slideUp("slow", function(){}); $('#smslink').slideUp("slow", function(){}); $('#smscounter').slideUp("slow", function(){}); } calcSMSCount(); } function showMessageInput(txt){ mes_sms=1; setSMS(); $('#newdeleted').slideUp("slow", function(){}); $("#messagebox").val(txt); $('#messageinput').slideDown("slow", function(){}); } function showMessageInputAll(txt){ mes_sms=1; setSMS(); setSendAllDate('all'); $("#smscan").css("display", "none"); $("#sendmessagealldate").css("display", "none"); $("#metoall").css("display", "block"); $("#messagebox").val(txt); $('#messageinput').slideDown("slow", function(){}); } function hideMessageInput(){ $("#newdates").css("display", "none"); $("#deleteddates").css("display", "none"); if(mes_mailtosend || mes_dmailtosend){ $('#newdeleted').slideDown("slow", function(){}); if(mes_mailtosend){ $('#newdates').slideDown("slow", function(){}); } if(mes_dmailtosend){ $('#deleteddates').slideDown("slow", function(){}); } } $('#messageinput').slideUp("slow", function(){}); $("#messagebox").val(""); $("#smscan").css("display", "block"); $("#sendmessagealldate").css("display", "block"); $("#metoall").css("display", "none"); mes_markmail=false; } function setSendMessageTo(what){ if(mes_to[what]==0){ mes_to[what]=1; $("#sendmessagetoicon"+what).removeClass("icon-checkbox-unchecked"); $("#sendmessagetoicon"+what).addClass("icon-checkbox-checked"); }else{ mes_to[what]=0; $("#sendmessagetoicon"+what).removeClass("icon-checkbox-checked"); $("#sendmessagetoicon"+what).addClass("icon-checkbox-unchecked"); } } /*New Deletet*/ function displaygetNewDates(val){ $('#newdeleted').slideUp("slow", function(){}); mes_markmail=true; var txt="Neue Termine:\n\n"; for(var i in val){ txt=txt+val[i]['start']+"\n"; if(val[i]['title']!=""){ txt=txt+val[i]['title']+"\n"; } if(val[i]['place']!=""){ txt=txt+val[i]['place']+"\n"; } //txt=txt+"\n"; } showMessageInputAll(txt); } function sendNewDatesNow(){ x_getNewDates(openItems[current_id]['groupid'], displaygetNewDates); } function displaygetDeletedDates(val){ $('#newdeleted').slideUp("slow", function(){}); mes_markdmail=true; var txt="Folgende Termine finden nicht statt:\n\n"; for(var i in val){ txt=txt+val[i]['start']+"\n"; if(val['title']!=""){ txt=txt+val[i]['title']+"\n"; } if(val['place']!=""){ txt=txt+val[i]['place']+"\n"; } txt=txt+"\n"; } showMessageInputAll(txt); } function sendDeletedDatesNow(){ x_getDeletedDates(openItems[current_id]['groupid'], displaygetDeletedDates); } function displaySetNewdDatesToSent(val){ if(val){ mes_mailtosend=false; mes_markmail=false; $('#newdates').slideUp("slow", function(){}); } } function setNewdDatesToSent(){ x_setNewdDatesToSent(openItems[current_id]['groupid'], displaySetNewdDatesToSent); } function displaySetDeletedDatesToSent(val){ if(val){ mes_dmailtosend=false; mes_markdmail=false $('#deleteddates').slideUp("slow", function(){}); } } function setDeletedDatesToSent(){ x_setDeletedDatesToSent(openItems[current_id]['groupid'], displaySetDeletedDatesToSent); } ; /**********************************************/ /* EditMembers */ /**********************************************/ function displayRemoveDate(val){ if(val){ if(!val['stillhasdates']){ location.reload(); }else{ $('#groupdate'+val['id']).slideUp("slow", function(){}); } //showMessageInputAll("Leute!\nDer Termin am "+val['date']+" findet nicht statt."); } } function removeDate(id){ x_removeDate(openItems[current_id]['groupid'], id, displayRemoveDate); } function cancelRemoveDate(id){ $("#removedatelink"+id).html(""); } function startRemoveDate(id){ $("#removedatelink"+id).html("Entfernen     Abbrechen"); } function displayRemoveDates(val){ if(val){ if(!val['stillhasdates']){ location.reload(); }else{ cancelRemoveDates(val['what']); for(var i in val['hide']){ $('#groupdate'+val['hide'][i]['id']).slideUp("slow", function(){}); } } } } function removeDates(what){ x_removeDates(openItems[current_id]['groupid'], what, displayRemoveDates); } function cancelRemoveDates(what){ if(what=="all"){ var tx=" Alle Termine"; } if(what=="past"){ var tx=" Vergangene Termine"; } if(what=="future"){ var tx=" Zukünftige Termine"; } $("#removedateslink"+what).html(""+tx+""); } function startRemoveDates(what){ if(what=="all"){ var tx="Alle Termine unwiderruflich entfernen!"; } if(what=="past"){ var tx="Alle vergangenen Termine unwiderruflich entfernen!"; } if(what=="future"){ var tx="Alle zukünftigen Termine unwiderruflich entfernen!"; } $("#removedateslink"+what).html(""+tx+"     Abbrechen"); } function displayGetTheGroupDates(val){ $("#editoutput").html("
Alle Termine           Vergangene Termine           Zukünftige Termine
"); if(val){ for(var i in val['date']){ $("#editoutput").html($("#editoutput").html()+"
"+val['date'][i]['title']+"
"+val['date'][i]['start']+"
"); } } } function getTheGroupDates(){ x_getTheGroupDates(openItems[current_id]['groupid'], displayGetTheGroupDates); } function displayMoveLink(val){ if(val){ if(!val['error']){ $('#thismember'+val['userid']).slideUp("slow", function(){}); }else{ alert("Es muss mindestens ein Admin vorhanden sein."); } } } function moveMember(userid, status){ x_moveMember(openItems[current_id]['groupid'], userid, status, displayMoveLink); } function displaySetStandBy(val){ if(val){ if( val['status'] == 0){ $("#standbycan"+val['userid']).html(" Standby"); }else{ $("#standbycan"+val['userid']).html(" Standby"); } } } function setStandBy(userid, status){ x_setStandBy(openItems[current_id]['groupid'], userid, status, displaySetStandBy); } function displayGetMembers(val){ if(memberspage==1){ $("#editoutput").html(""); } var c=0; if(val){ for(var i in val['member']){ c++; $("#editoutput").html($("#editoutput").html()+"
"+val['member'][i]['name']+"
Mitglied     Admin     Inaktiv
"+val['member'][i]['email']+"
"+val['member'][i]['phone']+"
"); if(membertype!=1){ if(membertype==3){ $("#movemember"+val['member'][i]['id']+membertype).html(" Mitglied"); } if(membertype==2){ $("#movemember"+val['member'][i]['id']+membertype).html(" Admin"); } if(membertype==0){ $("#movemember"+val['member'][i]['id']+membertype).html(" Inaktiv"); } //$("#movemember"+val['member'][i]['id']+membertype).css("display", "none"); if(membertype==3 || membertype==2){ if( val['member'][i]['standby'] == 0){ $("#standbycan"+val['member'][i]['id']).html(" Standby"); }else{ $("#standbycan"+val['member'][i]['id']).html(" Standby"); } } } if(val['member'][i]['status']==1){ $('#emailstatus'+val['member'][i]['id']).html(" Email bestätigt, erhält Nachrichten"); }else{ //$('#emailstatus'+val['member'][i]['id']).html(""); } if(val['member'][i]['statusphone']==1){ $('#phonestatus'+val['member'][i]['id']).html(" Handynummer bestätigt, erhält SMS"); }else{ //$('#phonestatus'+val['member'][i]['id']).html(""); } } } if(c<10){ memberspage=false; }else{ memberspage++; } killgetMembers=false; } function getMembers(){ if(memberspage){ killgetMembers=true; x_getMembers(openItems[current_id]['groupid'], membertype, memberspage, displayGetMembers); } } function displayFinishDelGroup(val){ if(val){ document.location.href='http://dabinichdabei.de/'; } } function finishDelGroup(){ x_finishDelGroup(openItems[current_id]['groupid'], displayFinishDelGroup); } function cancelRemoveTheGroup(){ $("#removegroup").html("Gruppe löschen"); } function startRemoveTheGroup(){ $("#removegroup").html("Gruppe unwiderruflich löschen    Abbrechen"); } function setSearchmenu(what){ $('.ml').removeClass("searchactive"); $('#'+what).addClass("searchactive"); if(what=="invitepeople"){ $("#editoutput").slideUp("slow"); $("#invitebox").slideDown("slow"); x_getInvited(openItems[current_id]['groupid'], displayGetInvited); }else{ $("#editoutput").slideDown("slow"); $("#invitebox").slideUp("slow"); $("#editoutput").html("
"); if(what=="activpeople"){ memberspage=1; membertype=3; getMembers(); } if(what=="requests"){ memberspage=1; membertype=1; getMembers(); } if(what=="admins"){ memberspage=1; membertype=2; getMembers(); } if(what=="blocked"){ memberspage=1; membertype=0; getMembers(); } if(what=="editdates"){ getTheGroupDates(); } if(what=="settings"){ $("#editoutput").html("
Neue Gruppen URL erstellen
Gruppe löschen
"); } } } function hideEditMembers(){ location.reload(); } function editMembers(){ killgetChat=true; $('#me').slideUp("slow", function(){}); $('#groupcounts').slideUp("slow", function(){}); $('#allcontrols').slideUp("slow", function(){}); $('#grouptop').animate({height : "249px"},500, function(){}); $('#datedata').slideUp("slow", function(){}); $('#addguestcan').fadeOut("slow", function(){}); $('#chat').fadeOut("slow", function(){}); $('#members').fadeOut("slow", function(){}); $('#editmemberslink').fadeOut("slow", function(){}); $('#hideeditmemberslink').fadeIn("slow", function(){}); $('#editmembers').fadeIn("slow", function(){}); $('#showmessageinput').fadeOut("slow", function(){}); setSearchmenu("activpeople"); } /* Group Settings */ function displayFinishMakeANewGroupCode(val){ document.location.href='http://dabinichdabei.de/'+val; } function finishMakeANewGroupCode(){ x_finishMakeANewGroupCode(openItems[current_id]['groupid'], displayFinishMakeANewGroupCode); } function cancelMakeANewGroupCode(){ $("#makenewgroupkey").html("Neue Gruppen URL erstellen"); } function startMakeANewGroupCode(){ $("#makenewgroupkey").html("Neue Gruppen URL erstellen. ( Die Gruppe kann dann nicht mehr unter der alten URL gefunden werden.)    Abbrechen"); } /**********************************************/ /* AddDates */ /**********************************************/ var hasplace=false; function displayMakeNewDates(val){ location.reload(); } function makeNewDates(){ $( "#datepicker" ).datepicker( "option", "dateFormat", "yy-mm-dd" ); var xdate=$("#datepicker").val(); var xtime=encodeURIComponent($("#timesel").val()); var title=encodeURIComponent($("#newdatetitle").val()); var description=encodeURIComponent($("#newdatedescription").val()); var place=""; var address=""; var tlat=0; var tlng=0; if(hasplace){ place=encodeURIComponent($("#newdateplace").val()); address=encodeURIComponent($("#address1").val()); tlat=encodeURIComponent(lat[1]); tlng=encodeURIComponent(lng[1]); } var daterepeat=encodeURIComponent($("#daterepeat").val()); var invitation=encodeURIComponent($("#invitation").val()); var remember=encodeURIComponent($("#remember").val()); $( "#datepickerend" ).datepicker( "option", "dateFormat", "yy-mm-dd" ); var xdateend=$("#datepickerend").val(); if(xtime!=""){ if(title!=""){ x_makeNewDates(openItems[current_id]['groupid'], xdate, xtime, title, description, place, address, tlat, tlng, daterepeat, invitation, remember, xdateend, displayMakeNewDates); }else{ alert("Bitte noch einen Titel auswählen!"); $("#newdatetitle").focus(); } }else{ alert("Bitte noch die Uhrzeit auswählen!"); } } function checkDateRepeat(){ var v=$("#daterepeat").val(); if(v=="0"){ $("#daterepeatend").slideUp(); }else{ $("#daterepeatend").slideDown(); } } function hideAddPlace(){ hasplace=false; $('#addplace').slideUp("slow", function(){}); $('#hideplacelink').slideUp("slow", function(){}); $('#addplacelink').slideDown("slow", function(){}); } function showAddPlace(){ hasplace=true; $('#addplace').slideDown("slow", function(){}); $('#hideplacelink').slideDown("slow", function(){}); $('#addplacelink').slideUp("slow", function(){}); } function hideNewDates(){ var w=-249; $('#control').animate({width : "249px"},500, function(){}); $('#control').animate({"margin-left" : w+"px"},500, function(){}); killHideControl=false; $('#newdatecontrol').slideUp("slow", function(){}); $('#control').css("position", "fixed"); $('#arrows').slideDown("slow", function(){}); $('#startnewdates').slideDown("slow", function(){}); $('#topsection').slideDown("slow", function(){}); $('#output').slideDown("slow", function(){}); $('#chat').slideDown("slow", function(){}); newdateopen=false; } function startNewDates(){ $( "#datepicker" ).datepicker( "option", "dateFormat", "dd.mm.yy" ); var xdate=$("#datepicker").val(); $("#thisdate").html(xdate); $("#newdatedate").html(""+xdate+""); $( "#datepicker" ).datepicker( "option", "dateFormat", "yy-mm-dd" ); var xdate=$("#datepicker").val(); setNewDateOptions(xdate); var w=$(window).width(); w=w*-1-0; //w=(w/2+125)*-1; $('#output').fadeOut("slow", function(){}); $('#chat').fadeOut("slow", function(){}); $('#topsection').fadeOut("slow", function(){}); $('#startnewdates').slideUp("slow", function(){}); $('#control').animate({"margin-left" : w+"px"},500, function(){}); $('#control').animate({width : "100%"},500, function(){}); killHideControl=true; $('#arrows').slideUp("slow", function(){}); $('#newdatecontrol').slideDown("slow", function(){}); $('#control').css("position", "absolute"); newdateopen=true; } function showControl(){ $("#control").slideDown("fast"); } function checkDateRightNow(oc){ var stringyDate = $("#datepicker").val(); var dateyDate = new Date(stringyDate); var ms = dateyDate.valueOf(); var sdate = parseInt(ms / 1000); console.log(sdate); var dateyDateN = new Date(); var msN = dateyDateN.valueOf(); var sdateN = parseInt(msN / 1000); var dddif=sdate-sdateN; $( "#datepicker" ).datepicker( "option", "dateFormat", "dd.mm.yy" ); var strDate = $("#datepicker").val(); var selectval = $("#invitation").val(); if(dddif<=259200){ if(selectval==0){ $( "#rightnowinv" ).html("Einladung für den "+strDate+" würde sofort verschickt"); }else{ $( "#rightnowinv" ).html("Einladung für den "+strDate+" wird sofort verschickt"); } }else{ $( "#rightnowinv" ).html(""); } $( "#datepicker" ).datepicker( "option", "dateFormat", "yy-mm-dd" ); if(oc=="o"){ $( "#rightnowinv" ).slideDown("slow"); } if(oc=="c" && selectval==0){ $( "#rightnowinv" ).slideUp("slow"); } } /**********************************************/ /* AddGroup */ /**********************************************/ function displayJoinGroup(val){ if(val){ location.reload(); } } function joinGroup(id){ x_joinGroup(id, displayJoinGroup); } function setNewGroupKeyType(){ if(newgroupkeytype==0){ $('#newgroupkeytypeicon').removeClass('icon-checkbox-unchecked'); $('#newgroupkeytypeicon').addClass('icon-checkbox-checked'); newgroupkeytype=1; }else{ $('#newgroupkeytypeicon').removeClass('icon-checkbox-checked'); $('#newgroupkeytypeicon').addClass('icon-checkbox-unchecked'); newgroupkeytype=0; } } function showAddGroup(){ $('#addgrouplink').slideUp('fast', function(){}); $('#addgroup').slideDown('fast', function(){}); } function hideAddGroup(){ $('#addgrouplink').slideDown('fast', function(){}); $('#addgroup').slideUp('fast', function(){}); } function checkNewGroupName(){ if($("#newgroupname").val()!=""){ $('#addnewgroupnowlink').slideDown('slow', function(){}); $('#newgroupkeytype').slideDown('slow', function(){}); }else{ $('#addnewgroupnowlink').slideUp('slow', function(){}); $('#newgroupkeytype').slideUp('slow', function(){}); } } function displayAddNewGroup(val){ document.location.href="http://dabinichdabei.de/"+val; } function addNewGroup(){ var newgroupname=encodeURIComponent($("#newgroupname").val()); x_addNewGroup(newgroupname, newgroupkeytype, displayAddNewGroup); } /**********************************************/ /* AddGuest DelGeuest */ /**********************************************/ function showAddGuest(){ $('#addguest').slideUp('fast', function(){}); $('#addguestnow').slideDown('fast', function(){}); } function hideAddGuest(){ $('#addguest').slideDown('fast', function(){}); $('#addguestnow').slideUp('fast', function(){}); } function checkGuestName(){ if($("#addguestinput").val()!=""){ $('#addguestlink').slideDown('slow', function(){}); }else{ $('#addguestlink').slideUp('slow', function(){}); } } function displayAddGuest(val){ hideAddGuest(); getTheDate(); } function addGuestNow(){ var guestname=encodeURIComponent($("#addguestinput").val()); x_addGuest(openItems[current_id]['dateid'], openItems[current_id]['groupid'], guestname, displayAddGuest); } function displayDelGuest(val){ hideAddGuest(); getTheDate(); } function delGuest(id){ x_delGuest(id, displayDelGuest); } /**********************************************/ /* Uploads */ /**********************************************/ function showNewLogo(piccode){ $("#logo").html(""); } function hideLogoUploadError(){ $("#logouploaderror").fadeOut("fast"); } function showLogoUploadError(text){ $("#logouploaderror").html(text); $("#logouploaderror").slideDown("fast"); } function showNewBanner(piccode){ $('#grouptop').css("background", "url('../images/banner/"+piccode+".png') no-repeat scroll center center"); $('#grouptop').css("background-size", "cover"); $('#grouptop').css("background-position", "0px 0px"); } function hideBannerUploadError(){ $("#banneruploaderror").fadeOut("fast"); } function showBannerUploadError(text){ $("#banneruploaderror").html(text); $("#banneruploaderror").slideDown("fast"); $("#banneruploaderror").css("margin-top", "0px"); } /**********************************************/ /* Make Users View */ /**********************************************/ function hideGuestList(id){ $("#guestlist_"+id).slideUp("fast"); } function displayGetGuestList(val){ if(val){ $("#guestlist_"+val['id']).html("
"); for(var i in val['guest']){ if(val['guest'][i]['userid']==""){ $("#guestlist_"+val['id']).html($("#guestlist_"+val['id']).html()+"
"+val['guest'][i]['name']+"
"); }else{ $("#guestlist_"+val['id']).html($("#guestlist_"+val['id']).html()+"
"+val['guest'][i]['name']+"
"); } } $("#guestlist_"+val['id']).slideDown("fast"); } } function getGuestList(id){ x_getGuestList(id, displayGetGuestList); } function makeFirstUsersView(val){ if(nopage==1){ $("#no").html(""); $("#tnoc").html(val['total1']); } if(yespage==1){ $("#yes").html(""); $("#tyesc").html(val['total3']); if(val['totalguests']!=0){ $("#tyesc").html(val['total3']+"+"+val['totalguests']+""); } } if(mybepage==1){ $("#maybe").html(""); $("#tmaybec").html(val['total2']); } if(noapage==1){ $("#noa").html(""); } var targ=""; var totals = new Array; var totalm=0; for(var st=0;st<4;st++){ totals[st]=0; if(st==1){ targ="no"; } if(st==2){ targ="maybe"; } if(st==0){ targ="noa"; } if(st==3){ targ="yes"; } for(var i in val['userdates'][st]){ totals[st]++; totalm++; var fin=val['userdates'][st][i]['user']['name'].split(" "); if(fin){ var tname=fin[0]; if(val['userdates'][st][i]['user']['id']!=""){ // tname=" "+fin[0]+""; tname=fin[0]; } }else{ var tname=val['userdates'][st][i]['user']['name']; if(val['userdates'][st][i]['user']['id']!=""){ tname=" "+val['userdates'][st][i]['user']['name']+""; tname=val['userdates'][st][i]['user']['name']; } } $("#"+targ).html($("#"+targ).html()+"
"+tname+"
"); if(val['userdates'][st][i]['guests']!=0 && st==3){ $("#guestcount_"+val['userdates'][st][i]['id']).html("
+"+val['userdates'][st][i]['guests']+"
"); } if(val['userdates'][st][i]['standby']==1){ $("#datemember__"+val['userdates'][st][i]['id']).css("display", "none"); } } } if(totals[3]<20){ $("#moreyes").fadeOut("fast"); yespage=false; }else{ $("#moreyes").fadeIn("fast"); yespage++; } if(totals[1]<20){ $("#moreno").fadeOut("fast"); nopage=false; }else{ $("#moreno").fadeIn("fast"); nopage++; } if(totals[2]<20){ $("#moremaybe").fadeOut("fast"); mybepage=false; }else{ $("#moremaybe").fadeIn("fast"); mybepage++; } if(totals[0]<20){ $("#morenoa").fadeOut("fast"); noapage=false; }else{ $("#morenoa").fadeIn("fast"); noapage++; } } function displaygetMore(val){ var targ=""; var totals = new Array; var totalm=0; var st=val['status']; totals[st]=0; if(st==1){ targ="no"; } if(st==2){ targ="maybe"; } if(st==0){ targ="noa"; } if(st==3){ targ="yes"; } for(var i in val['userdates'][st]){ totals[st]++; totalm++; var fin=val['userdates'][st][i]['user']['name'].split(" "); if(fin){ var tname=fin[0]; if(val['userdates'][st][i]['user']['id']!=""){ tname=" "+fin[0]+""; } }else{ var tname=val['userdates'][st][i]['user']['name']; if(val['userdates'][st][i]['user']['id']!=""){ tname=" "+val['userdates'][st][i]['user']['name']+""; } } $("#"+targ).html($("#"+targ).html()+"
"+tname+"
"); if(val['userdates'][st][i]['guests']!=0 && st==3){ $("#guestcount_"+val['userdates'][st][i]['id']).html("
"+val['userdates'][st][i]['guests']+"
"); } if(val['userdates'][st][i]['standby']==1){ $("#datemember__"+val['userdates'][st][i]['id']).css("display", "none"); } } if(st==3){ if(totals[3]<20){ $("#moreyes").fadeOut("fast"); yespage=false; }else{ $("#moreyes").fadeIn("fast"); yespage++; }} if(st==1){ if(totals[1]<20){ $("#moreno").fadeOut("fast"); nopage=false; }else{ $("#moreno").fadeIn("fast"); nopage++; }} if(st==2){ if(totals[2]<20){ $("#moremaybe").fadeOut("fast"); mybepage=false; }else{ $("#moremaybe").fadeIn("fast"); mybepage++; }} if(st==0){ if(totals[0]<20){ $("#morenoa").fadeOut("fast"); noapage=false; }else{ $("#morenoa").fadeIn("fast"); noapage++; }} } function getMore(status){ if(status == 3 && yespage){ x_getMore(openItems[current_id]['dateid'], openItems[current_id]['groupid'], status, yespage, displaygetMore); } if(status == 2 && mybepage){ x_getMore(openItems[current_id]['dateid'], openItems[current_id]['groupid'], status, mybepage, displaygetMore); } if(status == 1 && nopage){ x_getMore(openItems[current_id]['dateid'], openItems[current_id]['groupid'], status, nopage, displaygetMore); } if(status == 0 && noapage){ x_getMore(openItems[current_id]['dateid'], openItems[current_id]['groupid'], status, noapage, displaygetMore); } } /**********************************************/ /* SetMe */ /**********************************************/ function scrollToGroupCounts(){ var tx=$("#groupcounts").offset().top; tx=tx-100; $('html, body').animate({scrollTop: tx+"px"},'slow'); } function displaySetMe(val){ $(".setmelink").removeClass("setme"); $(".setmelink").removeClass("setmegreen"); $(".setmelink").removeClass("setmedark"); $(".setmelink").addClass("setme"); if(val['status']==1){ $("#setme"+val['status']).removeClass("setme"); } if(val['status']==2){ $("#setme2").addClass("setmedark"); } if(val['status']==3){ $("#setme3").addClass("setmegreen"); $("#addguest").slideDown("fast"); }else{ $("#addguest").slideUp("fast"); $("#addguestnow").slideUp("fast"); } makeFirstUsersView(val); scrollToGroupCounts(); } function setMe(status){ chatpage=1; yespage=1; nopage=1; mybepage=1; noapage=1; x_setMe(openItems[current_id]['dateid'], openItems[current_id]['groupid'], status, displaySetMe); } /**********************************************/ /* GetTheDate */ /**********************************************/ function showDateDesc(){ var w=$(window).width(); var l=w/2-150; $("#datedesc").css("left", l+"px"); $("#datedesc").slideDown("slow"); } function hideDateDesc(){ $("#datedesc").slideUp("slow"); } function showDatePlace(tlat, tlng){ var w=$(window).width(); var l=w/2-300; if(w<600){ l=0; } $("#dateplace").css("left", l+"px"); $("#dateplace").slideDown("slow", function(){ if(tlat!=0 || tlng!=0){ $("#map2").css('display', 'block'); $("#dateplace").css('min-height', '300px'); if($("#map2").html()==""){ initializeMap(2, tlat, tlng, 15, "map", false); } }else{ $("#map2").css('display', 'none'); $("#dateplace").css('min-height', '100px'); } }); } function hideDatePlace(){ $("#dateplace").slideUp("slow"); } function hintsavedre(){ $("#hintsaved").slideUp("slow"); } function displaySaveHint(val){ if(val){ $("#hintsaved").slideDown("slow"); window.setTimeout("hintsavedre()", 2000); } } function saveHint(){ var hint=encodeURIComponent($("#hint").val()); x_saveHint(openItems[current_id]['dateid'], openItems[current_id]['groupid'], hint, displaySaveHint); } function setAddress(){ var a=$("#addresses").val(); if(a!=""){ $("#newdateplace").val(addresses[a]['place']); $("#address1").val(addresses[a]['address']); if(addresses[a]['address']!=""){ jump(1); } } } function displayGetTheDate(val){ $( "#datepicker" ).datepicker( "option", "dateFormat", "yy-mm-dd" ); $( "#datepicker" ).datepicker('setDate', openItems[current_id]['date']); $( "#datepicker" ).datepicker( "option", "dateFormat", "dd.mm.yy" ); var xdate=$("#datepicker").val(); $( "#chatmodedate" ).html(xdate); $( "#chatmodedateicon" ).removeClass("icon-checkbox-unchecked"); $( "#chatmodedateicon" ).addClass("icon-checkbox-checked"); $( "#chatmoderecenticon" ).removeClass("icon-checkbox-checked"); $( "#chatmoderecenticon" ).addClass("icon-checkbox-unchecked"); chatmode="day"; $("#mesdate").html(xdate); $("#smsgroup").html(val['groupdata']['name']+": "); $("#smsgroupinput").val(val['groupdata']['name']+": "); $("#smsdatelink").html(" http://dabinichdabei.de/"+val['groupdata']['key']+"-"+val['datedata']['id']); $("#smsgrouplink").html(" http://dabinichdabei.de/"+val['groupdata']['key']); //setURL(val['groupdata']['key']+"-"+val['datedata']['id'], val['groupdata']['name']); setURL(val['groupdata']['key'], val['groupdata']['name']); $("#grouplink").html("http://dabinichdabei.de/"+val['groupdata']['key']); /* $("#grouptop").html("
"+val['groupdata']['name']+"
"+val['datedata']['start']+""+val['datedata']['end']+"
"+val['datedata']['title']+"
"+val['datedata']['place']+"
"+val['datedata']['description']+"
"+val['datedata']['place']+"
"+val['datedata']['address']+"
"); */ $("#grouptop").html("
"+val['groupdata']['name']+"
"+val['datedata']['title']+"
"+val['datedata']['place']+"
"+val['datedata']['description']+"
"+val['datedata']['place']+"
"+val['datedata']['address']+"
"+val['datedata']['start']+""+val['datedata']['end']+"
"); if(val['datedata']['description']!=""){ $("#dateinfos").html("  "); } if(val['datedata']['place']!=""){ $("#dateinfos").html($("#dateinfos").html()+"  "); } if(val['ismember']==2){ $("#hintbox").html("
"); if(val['datedata']['hint']!=""){ $("#hint").val(val['datedata']['hint']); } $("#hint").keypress(function(event) { if ( event.which == 13 ) {saveHint();} }); if(!newdateopen){ $("#startnewdates").slideDown("fast"); } $("#editlinks").slideDown("fast"); $("#editmemberslink").slideDown("fast"); $("#logoupload").html("
"); $("#bannerupload").html("
"); }else{ if(val['datedata']['hint']!=""){ $("#hintbox").html("
"+val['datedata']['hint']+"
"); } $("#logoupload").html(""); $("#bannerupload").html(""); $("#startnewdates").slideUp("fast"); $("#editmemberslink").slideUp("fast"); $("#editlinks").slideUp("fast"); } if(val['groupdata']['piccode']!=""){ $("#logo").html(""); }else{ $("#logo").html(""); $('#logo').css("background", "#FAFAFA"); } if(val['groupdata']['bannercode']!=""){ $('#grouptop').css("background", "url('../images/banner/"+val['groupdata']['bannercode']+".png') no-repeat scroll center center"); $('#grouptop').css("background-size", "cover"); $('#grouptop').css("background-position", "0px 0px"); bannderheight=$(window).height(); bannderheight=bannderheight-50; $('#grouptop').css("height", bannderheight+"px"); $('#grouptop').css("min-height", "440px"); }else{ //$('#grouptop').css("background", "url('../images/sky.png') repeat-x scroll center center"); //brickwall bannderheight=$(window).height(); bannderheight=bannderheight-50; $('#grouptop').css("height", bannderheight+"px"); $('#grouptop').css("min-height", "440px"); $('#grouptop').css("background", "#1E8CBE"); } makeFirstUsersView(val); $(".setmelink").removeClass("setme"); $(".setmelink").removeClass("setmegreen"); $(".setmelink").removeClass("setmedark"); $(".setmelink").addClass("setme"); if(val['status']!=0){ if(val['status']==1){ $("#setme"+val['status']).removeClass("setme"); } } if(val['status']==2){ $("#setme2").addClass("setmedark"); } if(val['status']==3){ $("#setme3").addClass("setmegreen"); $("#addguest").slideDown("fast"); }else{ $("#addguest").slideUp("fast"); $("#addguestnow").slideUp("fast"); } if(val['newdates']!=0 || val['deleteddates']!=0){ if(val['newdates']!=0){ var n=""; var e="e"; if(val['newdates']==1){ n="n"; e=""; } $("#newdatestext").html(val['newdates']+" neue"+n+" zukünftige"+n+" Termin"+e+" an Mitglieder senden?"); $("#newdates").slideDown("fast"); mes_mailtosend=true; }else{ $("#newdatestext").html(""); $("#newdates").slideUp("fast"); mes_mailtosend=false; } if(val['deleteddates']!=0){ var n=""; var e="e"; if(val['deleteddates']==1){ n="n"; e=""; } $("#deleteddatestext").html(val['deleteddates']+" gelöschte"+n+" zukünftige"+n+" Termin"+e+" an Mitglieder senden?"); $("#deleteddates").slideDown("fast"); mes_dmailtosend=true; }else{ $("#deleteddatestext").html(""); $("#deleteddates").slideUp("fast"); mes_dmailtosend=false; } $("#newdeleted").slideDown("fast"); }else{ $("#newdeleted").slideUp("fast"); } if(val['requests']!=0){ var n="n"; if(val['requests']==1){ var n=""; } $("#newreq").html(" ("+val['requests']+" neue Anfrage"+n+")"); $("#newreqc").html(" ("+val['requests']+")"); }else{ $("#newreq").html(""); $("#newreqc").html("") } addresses=val['addresses']; $("#addresses").html(""); }else{ $("#addresses").append(""); } } $("#addressescan").slideDown("fast"); }else{ $("#addressescan").slideUp("fast"); } } function getTheDate(){ chatpage=1; yespage=1; nopage=1; mybepage=1; noapage=1; $("#chatoutput").html(""); x_getTheDate(openItems[current_id]['dateid'], openItems[current_id]['groupid'], displayGetTheDate); } /**********************************************/ /* Pagination */ /**********************************************/ function showPastItem(){ if(current_id > 0){ current_id=current_id-1; if(current_id==0){ $("#pastArrow").fadeOut("fast"); }else{ $("#pastArrow").fadeIn("fast"); } var fut=openItems.length-1-current_id; if(fut>0){ $("#futureArrow").fadeIn("fast"); }else{ $("#futureArrow").fadeOut("fast"); } $("#newitems").html(fut); $("#olditems").html(current_id); getTheDate(); } } function showFutureItem(){ if(current_id < openItems.length-1){ current_id=current_id+1; if(current_id==0){ $("#pastArrow").fadeOut("fast"); }else{ $("#pastArrow").fadeIn("fast"); } var fut=openItems.length-1-current_id; if(fut>0){ $("#futureArrow").fadeIn("fast"); }else{ $("#futureArrow").fadeOut("fast"); } $("#newitems").html(fut); $("#olditems").html(current_id); getTheDate(); } } function jumpToDate(thisdate){ for(var i in openItems){ if(openItems[i]['date']==thisdate){ if(current_id>=i){ current_id=parseInt(i)-1; showFutureItem(); }else{ current_id=parseInt(i)+1; showPastItem(); } return true; } } } /**********************************************/ /* GetOpenDates */ /**********************************************/ function displayOnpenDates(val){ $("#pastArrow").fadeOut("fast"); $("#futureArrow").fadeOut("fast"); openDates = null; openDates = new Array; openItems = null; openItems = new Array; current_id=false; var td= new Date(); td=td.getTime()/1000; var day_found=false; var olditems=0; var newitems=0; if(val){ for(var i in val){ if ($.inArray(val[i]['date'] , openDates) == -1) { openDates.push(val[i]['date']); } openItems.push(val[i]); if(!day_found){ current_id++; olditems++; }else{ newitems++; } if(val[i]['start']>=td){ day_found=true; } } current_id--; olditems--; if(uridate){ var c=0; for(var i in val){ if(val[i]['dateid']==uridate){ current_id=c; } c++; } uridate=false; } $("#olditems").html(olditems); if(olditems>0){ $("#pastArrow").fadeIn("fast"); } $("#newitems").html(newitems); if(newitems>0){ $("#futureArrow").fadeIn("fast"); } $("#datepicker").datepicker("refresh"); getTheDate(); } } function getUserOpenDates(){ x_getUserOpenDates(displayOnpenDates); } function getGroupOpenDates(){ x_getUserOpenDates(cgroup, displayOnpenDates); } /**********************************************/ /* Chat */ /**********************************************/ function setChatMode(what){ chatmode=what; if(chatmode=="day"){ $( "#chatmodedateicon" ).removeClass("icon-checkbox-unchecked"); $( "#chatmodedateicon" ).addClass("icon-checkbox-checked"); $( "#chatmoderecenticon" ).removeClass("icon-checkbox-checked"); $( "#chatmoderecenticon" ).addClass("icon-checkbox-unchecked"); }else{ $( "#chatmoderecenticon" ).removeClass("icon-checkbox-unchecked"); $( "#chatmoderecenticon" ).addClass("icon-checkbox-checked"); $( "#chatmodedateicon" ).removeClass("icon-checkbox-checked"); $( "#chatmodedateicon" ).addClass("icon-checkbox-unchecked"); } chatpage=1; getChat(); } function displayRemoveChat(val){ $("#chatitem"+val).slideUp("slow", function(){}); } function removeChat(id){ x_removeChat(id, displayRemoveChat); } function cancelRemoveChat(id){ $("#remc"+id).html(""); } function startRemoveChat(id){ $("#remc"+id).html(" Löschen   Cancel"); } function setMeDoner(id, done){ if(done==1){ x_setDone(openItems[current_id]['groupid'], id, displayDoners); }else{ x_setUnDone(openItems[current_id]['groupid'], id, displayDoners); } } function displayDoners(val){ if(val['idone']==0){ $("#todocan"+val['chatid']).html("
 Mach ich
"); }else{ $("#todocan"+val['chatid']).html("
 Mach ich
"); } for(var i in val['user']){ $("#donefaces"+val['chatid']).html($("#donefaces"+val['chatid']).html()+""); } } function displayGetChat(val){ if(chatpage==1){ $("#chatoutput").html(""); } var c=0; if(val){ for(var i in val['msg']){ $("#chatoutput").html($("#chatoutput").html()+"
"+val['msg'][i]['from']['name']+"
"+val['msg'][i]['text']+"
"); c++; if(val['msg'][i]['todo']==1){ displayDoners(val['msg'][i]['doners']); } if(val['msg'][i]['onwer']==1){ $("#remc"+val['msg'][i]['id']).html(""); } if(val['msg'][i]['piccode']!=""){ $("#attach"+val['msg'][i]['id']).html("
"); } } if(c<10){ chatpage=false; }else{ chatpage++; } }else{ if(chatpage==1){ var tx=$("#chatmodedate").html(); if(chatmode=="day"){ $("#chatoutput").html("Keine Nachrichten für den "+tx+" vorhanden"); }else{ $("#chatoutput").html("Keine Nachrichten vorhanden"); } } chatpage=false; } killgetChat=false; } function getChat(){ if(chatpage){ killgetChat=true; x_getChat(openItems[current_id]['dateid'], openItems[current_id]['groupid'], chatpage, chatmode, displayGetChat); } } function displayPostChatBox(val){ if(val){ $("#chatbox").val(""); delTempPic(); removeLink(); chatpage=1; killgetChat=false; getChat(); } } var ranges = [ '\ud83c[\udf00-\udfff]', // U+1F300 to U+1F3FF '\ud83d[\udc00-\ude4f]', // U+1F400 to U+1F64F '\ud83d[\ude80-\udeff]' // U+1F680 to U+1F6FF ]; function postChatBox(){ var str=$("#chatbox").val(); str = str.replace(new RegExp(ranges.join('|'), 'g'), ''); var text=encodeURIComponent(str); if( text!="" || photo==1 || litems['link_found']===true){ x_postChatBox(openItems[current_id]['dateid'], openItems[current_id]['groupid'], text, todo, litems['link_url'], litems['link_topic'], litems['link_description'], litems['link_image_url'], photo, displayPostChatBox); } } function setToDo(){ if(todo==0){ todo=1; $("#todoicon").removeClass("icon-checkbox-unchecked"); $("#todoicon").addClass("icon-checkbox-checked"); }else{ todo=0; $("#todoicon").removeClass("icon-checkbox-checked"); $("#todoicon").addClass("icon-checkbox-unchecked"); } } function delTempPic(){ photo=0; $("#temppic").slideUp("fast", function(){$("#temppic").html("");}); } function showNewTempPic(piccode){ photo=1; removeLink(); $("#temppic").html("
"); $("#temppic").slideDown("fast"); } function showNewTempPicError(text){ photo=0; removeLink(); $("#temppic").html(""+text+""); $("#temppic").slideDown("fast"); } function showProfile(id){ if ( navigator.userAgent.match( /(iPhone|iPod|iPad|Android|BlackBerry|webOS)/i ) ){ top.location.href="http://dabinichdabei.de/p/"+id; }else{ $("#profileframe").attr("src", "http://dabinichdabei.de/p/"+id); $("#profile").fadeIn("fast"); } } function hideProfile(){ $("#profile").fadeOut("fast"); $("#profileframe").attr("src", "about:blank"); } /**********************************************/ /* Admin Welcome */ /**********************************************/ function welcomeNewDates(){ $('#allcontrols').slideDown("slow", function(){}); $("#hidenewdatelink").css("display", "none"); startNewDates(); $('#groupwelcome').fadeOut("slow"); } function welcomeInvite(){ editMembers(); setSearchmenu('invitepeople'); $('#groupwelcome').fadeOut("slow"); } function displayGetNewAndDeletedDates(val){ if(val['newdates']!=0 || val['deleteddates']!=0){ if(val['newdates']!=0){ var n=""; var e="e"; if(val['newdates']==1){ n="n"; e=""; } $("#newdatestext").html(val['newdates']+" neue"+n+" zukünftige"+n+" Termin"+e+" an Mitglieder senden?"); $("#newdates").slideDown("fast"); mes_mailtosend=true; }else{ $("#newdatestext").html(""); $("#newdates").slideUp("fast"); mes_mailtosend=false; } if(val['deleteddates']!=0){ var n=""; var e="e"; if(val['deleteddates']==1){ n="n"; e=""; } $("#deleteddatestext").html(val['deleteddates']+" gelöschte"+n+" zukünftige"+n+" Termin"+e+" an Mitglieder senden?"); $("#deleteddates").slideDown("fast"); mes_dmailtosend=true; }else{ $("#deleteddatestext").html(""); $("#deleteddates").slideUp("fast"); mes_dmailtosend=false; } $("#newdeleted").slideDown("fast"); }else{ $("#newdeleted").slideUp("fast"); } } function getNewAndDeletedDates(groupid){ x_getNewAndDeletedDates(groupid, displayGetNewAndDeletedDates); } var infosopen=false; function showInfos(){ if(!infosopen){ $(".tooltipp").slideDown("slow"); infosopen=true; }else{ $(".tooltipp").slideUp("slow"); infosopen=false; } }