diff --git a/website/members/locale/nl/LC_MESSAGES/django.mo b/website/members/locale/nl/LC_MESSAGES/django.mo index a9723130f45b9230622887a5bfdbbb9ad26daeca..280714c89360c488dbc9d4228ccdfbf6365d13ab 100644 Binary files a/website/members/locale/nl/LC_MESSAGES/django.mo and b/website/members/locale/nl/LC_MESSAGES/django.mo differ diff --git a/website/members/locale/nl/LC_MESSAGES/django.po b/website/members/locale/nl/LC_MESSAGES/django.po index 55bae236bda2e6b9c03ff68ad19dd6b791dfa857..913a596281e6f13903b4577b4fcb54b137969573 100644 --- a/website/members/locale/nl/LC_MESSAGES/django.po +++ b/website/members/locale/nl/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-08-24 20:42+0200\n" -"PO-Revision-Date: 2016-08-24 20:42+0200\n" +"POT-Creation-Date: 2016-08-28 22:03+0200\n" +"PO-Revision-Date: 2016-08-28 22:05+0200\n" "Last-Translator: Thom Wiggers \n" "Language-Team: \n" "Language: nl\n" @@ -22,160 +22,160 @@ msgstr "" msgid "membership type" msgstr "lidtype" -#: models.py:30 +#: models.py:54 msgid "Computing Science" msgstr "Informatica" -#: models.py:31 +#: models.py:55 msgid "Information Sciences" msgstr "Informatiekunde" -#: models.py:43 +#: models.py:67 templates/members/profile.html:38 msgid "Study programme" msgstr "Studie" -#: models.py:52 +#: models.py:76 msgid "Enter a valid student- or e/z/u-number." msgstr "Voer een geldig student- of e/z/u-nummer in." -#: models.py:58 +#: models.py:82 msgid "Starting year" msgstr "Eerste lidmaatschapsjaar" -#: models.py:59 +#: models.py:83 msgid "The year this member started studying." msgstr "Het jaar waarop dit lid begon met studeren." -#: models.py:89 +#: models.py:119 msgid "Is this user currently active" msgstr "Is deze user op dit moment actief" -#: models.py:103 +#: models.py:133 msgid "Include the house number" msgstr "Inclusief huisnummer" -#: models.py:105 +#: models.py:135 msgid "Street and house number" msgstr "Straat en huisnummer" -#: models.py:111 +#: models.py:141 msgid "Second address line" msgstr "Tweede adresregel" -#: models.py:118 +#: models.py:148 msgid "Postal code" msgstr "Postcode" -#: models.py:124 +#: models.py:154 msgid "City" msgstr "Woonplaats" -#: models.py:130 +#: models.py:160 msgid "Phone number" msgstr "Telefoonnummer" -#: models.py:131 +#: models.py:161 msgid "Enter a phone number so Thalia may reach you" msgstr "Voer een telefoonnummer in zodat Thalia je kan bereiken" -#: models.py:134 models.py:156 +#: models.py:164 models.py:186 msgid "Please enter a valid phone number" msgstr "Voer svp een geldig telefoonnummer in" -#: models.py:144 +#: models.py:174 msgid "Emergency contact name" msgstr "Contact voor noodgevallen" -#: models.py:145 +#: models.py:175 msgid "Who should we contact in case of emergencies" msgstr "Wie Thalia moet bereiken in bij noodgevallen" -#: models.py:152 +#: models.py:182 msgid "Emergency contact phone number" msgstr "Telefoonnummer noodcontact" -#: models.py:153 +#: models.py:183 msgid "The phone number for the emergency contact" msgstr "Het telefoonummer van de noodcontact" -#: models.py:165 +#: models.py:195 templates/members/profile.html:45 msgid "Birthday" msgstr "Verjaardag" -#: models.py:170 +#: models.py:200 msgid "Display birthday" msgstr "Laat verjaardag zien" -#: models.py:172 +#: models.py:202 msgid "Show the birthday on your profile page and in the birthday calendar" msgstr "" "Laat de verjaardag op je profielpagina en in de verjaardagskalender zien" -#: models.py:179 +#: models.py:209 templates/members/profile.html:41 msgid "Website" msgstr "Website" -#: models.py:180 +#: models.py:210 msgid "Website to display on your profile page" msgstr "Website om op je profiel te linken" -#: models.py:186 +#: models.py:216 msgid "Profile text" msgstr "Profieltekst" -#: models.py:187 +#: models.py:217 msgid "Text to display on your profile" msgstr "Tekst om te laten zien op je profielpagina" -#: models.py:193 +#: models.py:223 msgid "Nickname" msgstr "Bijnaam" -#: models.py:200 +#: models.py:230 msgid "How to display name" msgstr "Weergave naam" -#: models.py:201 +#: models.py:231 msgid "Show full name" msgstr "Volledige naam" -#: models.py:202 +#: models.py:232 msgid "Show only nickname" msgstr "Alleen initialen" -#: models.py:203 +#: models.py:233 msgid "Show initials and last name" msgstr "Alleen initialen en achternaam" -#: models.py:204 +#: models.py:234 msgid "Show name like \"John 'nickname' Doe\"" msgstr "Laat zien als \"John 'bijnaam' Doe\"" -#: models.py:205 +#: models.py:235 msgid "Show nickname and last name" msgstr "Laat bijnaam en achternaam zien" -#: models.py:210 +#: models.py:240 msgid "Photo" msgstr "Foto" -#: models.py:219 +#: models.py:249 msgid "Preferred language" msgstr "Voorkeurstaal" -#: models.py:220 +#: models.py:250 msgid "Preferred language for e.g. news letters" msgstr "Voorkeurstaal voor b.v.b. nieuwsbrieven" -#: models.py:227 +#: models.py:257 msgid "Receive opt-in mailings" msgstr "Ontvang opt-in mailings" -#: models.py:228 +#: models.py:258 msgid "Receive mailings about vacancies and events from Thalia's sponsors." msgstr "Ontvang mailings over vacatures en evenmenten van Thalia's sponsoren" -#: models.py:236 +#: models.py:266 msgid "" "Yes, I want Thalia to take the membership fees from my bank account through " "direct debit for each year." @@ -183,74 +183,150 @@ msgstr "" "Ja, ik wil dat Thalia verschuldigde lidmaatschapsgelden elk jaar van mijn " "bankrekening afschrijft." -#: models.py:239 +#: models.py:269 msgid "No, I will pay the contribution myself" msgstr "Nee, ik zal de contributie zelf betalen" -#: models.py:240 +#: models.py:270 msgid "Direct debit" msgstr "Automatische afschijving" -#: models.py:241 +#: models.py:271 msgid "Each year, have Thalia take the membership fees from my bank account" msgstr "" "Laat Thalia elk jaar het lidmaatschapsgeld van mijn bankrekening afschrijven" -#: models.py:247 +#: models.py:277 msgid "Bank account" msgstr "Bankrekening" -#: models.py:248 +#: models.py:278 msgid "Bank account for direct debit" msgstr "Bankrekening voor automatische afschrijving" -#: models.py:268 +#: models.py:298 msgid "Display name" msgstr "Weergavenaam" -#: models.py:280 +#: models.py:323 msgid "Member" msgstr "Lid" -#: models.py:281 +#: models.py:324 msgid "Supporter" msgstr "Begunstiger" -#: models.py:282 +#: models.py:325 msgid "Honorary Member" msgstr "Erelid" -#: models.py:287 +#: models.py:330 msgid "Membership type" msgstr "Lidtype" -#: models.py:296 +#: models.py:339 msgid "User" msgstr "Gebruiker" -#: models.py:300 +#: models.py:343 msgid "Membership since" msgstr "Lid sinds" -#: models.py:301 +#: models.py:344 msgid "The date the member started holding this membership." msgstr "De datum waarop het lid dit lidmaatschap is begonnen." -#: models.py:306 +#: models.py:349 msgid "Membership until" msgstr "Lid tot" -#: models.py:307 +#: models.py:350 msgid "The date the member stops holding this membership." msgstr "De datum waarop het lid dit lidmaatschap beƫindigd." -#: templates/members/index.html:9 -msgid "These are the current members:" -msgstr "Dit zijn de huidige leden:" +#: templates/members/index.html:6 templates/members/index.html:9 +#: templates/members/profile.html:6 +msgid "Members" +msgstr "Leden" + +#: templates/members/index.html:12 +msgid "" +"Ever wondered what the name of that person in the back row of the lecture " +"room is? Or maybe you're just looking for a group member's email address? " +"There is a high probability that this person is a member of Thalia, and thus " +"you can use this directory to find him or her." +msgstr "" +"Wel eens op zoek naar de naam van die persoon die je altijd in de gangen " +"ziet lopen? Of alleen naar het e-mailadres van een klasgenoot? Of misschien " +"wil je wel het telefoonnummer van iemand weten die je echt dringend wil " +"spreken. Er bestaat een grote kans dat die persoon lid van Thalia is, en dus " +"is opgenomen in de onderstaande ledenlijst." + +#: templates/members/index.html:25 +msgid "Who are you looking for?" +msgstr "Wie zoek je?" + +#: templates/members/index.html:26 +msgid "Search" +msgstr "Zoeken" + +#: templates/members/index.html:34 +msgid "All members" +msgstr "Alle leden" + +#: templates/members/index.html:38 +msgid "Older" +msgstr "Ouder" + +#: templates/members/index.html:39 +msgid "Honorary Members" +msgstr "Ere-leden" + +#: templates/members/index.html:40 +msgid "Former Members" +msgstr "Ex-leden" + +#: templates/members/index.html:46 +msgid "No members found" +msgstr "Geen leden gevonden" + +#: templates/members/index.html:62 templates/members/profile.html:36 +msgid "Cohort" +msgstr "Cohort" + +#: templates/members/index.html:99 +msgid "Next" +msgstr "Volgende" + +#: templates/members/profile.html:6 +msgid "Profile" +msgstr "Profiel" + +#: templates/members/profile.html:25 +msgid "About" +msgstr "Over" + +#: templates/members/profile.html:28 +msgid "This member has not written a description yet." +msgstr "Dit lid heeft nog geen beschrijving geschreven." + +#: templates/members/profile.html:34 +msgid "Personal information" +msgstr "Persoonlijke gegevens" + +#: templates/members/profile.html:51 +msgid "Achievements for Thalia" +msgstr "Verdiensten voor Thalia" + +#: templates/members/profile.html:61 +msgid "today" +msgstr "heden" + +#~ msgid "These are the current members:" +#~ msgstr "Dit zijn de huidige leden:" -#: templates/members/index.html:14 -msgid "Er zijn geen leden" -msgstr "Er zijn geen leden" +#~ msgid "Er zijn geen leden" +#~ msgstr "Er zijn geen leden" #~ msgid "Foto" #~ msgstr "Foto" diff --git a/website/members/models.py b/website/members/models.py index eb92c90b5f3cc31b7f7c0d1430715b51d4a9533f..113ea63411f4dd704bc86214e03d3b3a7701ba46 100644 --- a/website/members/models.py +++ b/website/members/models.py @@ -3,6 +3,7 @@ from django.db import models from django.db.models import Q from django.core import validators from django.conf import settings +from django.urls import reverse from django.utils.translation import ugettext_lazy as _ from datetime import timedelta import operator @@ -97,6 +98,12 @@ class Member(models.Model): return None return self.membership_set.latest('since') + @property + def earliest_membership(self): + if not self.membership_set.exists(): + return None + return self.membership_set.earliest('since') + @property def membership_set(self): return self.user.membership_set @@ -290,9 +297,22 @@ class Member(models.Model): return self.get_full_name() or self.user.username display_name.short_description = _('Display name') + def short_display_name(self): + pref = self.display_name_preference + if pref == 'nickname' or pref == 'nicklast': + return self.nickname + elif pref == 'initials': + return '{} {}'.format(self.initials, self.user.last_name) + else: + return self.user.first_name + return + def get_full_name(self): return self.user.get_full_name() + def get_absolute_url(self): + return reverse('members:profile', args=[str(self.pk)]) + def __str__(self): return '{} ({})'.format(self.get_full_name(), self.user.username) diff --git a/website/members/templates/members/index.html b/website/members/templates/members/index.html index ea1466454c8a83561fe03605bf49d41d09ca48c9..4c7433f9ada6049c70539fb97a37e6f4b2b775ad 100644 --- a/website/members/templates/members/index.html +++ b/website/members/templates/members/index.html @@ -1,19 +1,105 @@ {% extends "base.html" %} + +{% load static %} {% load i18n %} -{% block title %}Hello World - {{ block.super }}{% endblock %} +{% block title %}{% trans "Members" %} - {{ block.super }}{% endblock %} {% block body %} -

Hello world

- -

{% blocktrans %}These are the current members:{% endblocktrans %} -

+

{% trans "Members" %}

+ +

+ {% blocktrans trimmed %} + Ever wondered what the name of that person in the back row of the lecture room is? Or maybe you're + just looking for a group member's email address? There is a high probability that this person is a member of Thalia, + and thus you can use this directory to find him or her. + {% endblocktrans %}

-{% endblock %} +
+ +
+ +
+ + +
+
+ + + + {% if not members %} +
+ {% trans "No members found" %} + +
+ {% endif %} + + +
+ +
+ +
+ +
+ +{% endblock %} \ No newline at end of file diff --git a/website/members/templates/members/profile.html b/website/members/templates/members/profile.html new file mode 100644 index 0000000000000000000000000000000000000000..da90c646de753d9d3896bd00cb044dbad6ad6766 --- /dev/null +++ b/website/members/templates/members/profile.html @@ -0,0 +1,71 @@ +{% extends "base.html" %} + +{% load static %} +{% load i18n %} + +{% block title %}{% trans "Profile" %} - {% trans "Members" %} - {{ block.super }}{% endblock %} + +{% block body %} +

+ {{ member.display_name }} + + + + +

+ +
+ +
+
+
+ {{ member.username }} +
+
+

{% trans "About" %} {{ member.short_display_name }}

+ + {% if not member.profile_description %} + {% trans "This member has not written a description yet." %} + {% else %} + {{ member.profile_description }} + {% endif %} + +
+

{% trans "Personal information" %}

+ + +
+ +

{% trans "Achievements for Thalia" %}

+ +
+
+ +
+{% endblock %} \ No newline at end of file diff --git a/website/members/urls.py b/website/members/urls.py index 50c2cdfd442b1c1e9194d2ff3c688c1ebbe7d081..917973fa2d69a3df0e4a247c37f0326cbf938bfe 100644 --- a/website/members/urls.py +++ b/website/members/urls.py @@ -5,5 +5,6 @@ from . import views urlpatterns = [ url('^become-a-member-document/(?P[0-9]*)', views.get_become_a_member_document, name='become-a-member-document'), - url('^', views.index, name='index'), + url('^profile/(?P[0-9]*)$', views.profile, name='profile'), + url('^$', views.index, name='index'), ] diff --git a/website/members/views.py b/website/members/views.py index 07649d5602cf3442f1a13ab8d448b0590c5bf3e4..2dff025ed168f8e7f8d784de848389734eac7d81 100644 --- a/website/members/views.py +++ b/website/members/views.py @@ -1,24 +1,125 @@ +import os +from datetime import date + +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.shortcuts import get_object_or_404, render from django.utils.text import slugify - -from . import models - -import os from sendfile import sendfile +from .models import BecomeAMemberDocument +from .models import Member + def index(request): - members = models.Member.objects.all() - return render(request, 'members/index.html', {'members': members}) + query_filter = '' if request.GET.get( + 'filter') is None else request.GET.get('filter') + keywords = '' if request.GET.get('keywords') is None else request.GET.get( + 'keywords') + + page = request.GET.get('page') + page = 1 if page is None or not page.isdigit() else int(page) + + start_year = date.today().year - 4 + # If language is English show one year less + # since the width is smaller than needed for the translations to fit + if request.LANGUAGE_CODE == 'en': + start_year += 1 + year_range = reversed(range(start_year, date.today().year + 1)) + + members = Member.objects.all() + if query_filter and query_filter.isdigit() and not ( + query_filter == 'ex' or + query_filter == 'honor' or + query_filter == 'old'): + members = [obj for obj in members if + obj.current_membership and + obj.current_membership.since.year == int(query_filter)] + elif query_filter == 'old': + members = [obj for obj in members if + obj.current_membership and + obj.current_membership.since.year < start_year] + elif query_filter == 'ex': + members = [obj for obj in members if not obj.current_membership] + elif query_filter == 'honor': + members = [obj for obj in members if + obj.current_membership and + obj.current_membership.type == 'honorary'] + else: + members = [obj for obj in members if obj.current_membership] + + if keywords: + members = [obj for obj in members if + keywords in obj.nickname.lower() or + keywords in obj.user.first_name.lower() or + keywords in obj.user.last_name.lower() or + keywords in obj.user.username.lower()] + + paginator = Paginator(members, 24) + + try: + members = paginator.page(page) + except PageNotAnInteger: + # If page is not an integer, deliver first page. + members = paginator.page(1) + except EmptyPage: + # If page is out of range (e.g. 9999), deliver last page of results. + members = paginator.page(paginator.num_pages) + + page_range = range(1, paginator.num_pages + 1) + if paginator.num_pages > 7: + if page > 3: + page_range_end = paginator.num_pages + if page + 3 <= paginator.num_pages: + page_range_end = page + 3 + + page_range = range(page - 2, page_range_end) + while page_range.stop - page_range.start < 5: + page_range = range(page_range.start - 1, page_range.stop) + else: + page_range = range(1, 6) + + return render(request, 'members/index.html', + {'members': members, 'filter': query_filter, + 'year_range': year_range, 'page_range': page_range, + 'keywords': keywords}) + + +def profile(request, pk): + member = get_object_or_404(Member, pk=int(pk)) + + # Group the memberships under the committees for easier template rendering + memberships = member.committeemembership_set.all() + achievements = {} + for membership in memberships: + name = membership.committee.name + if achievements.get(name): + achievements[name]['periods'].append({ + 'since': membership.since, + 'until': membership.until, + 'chair': membership.chair + }) + else: + achievements[name] = { + 'name': name, + 'periods': [{ + 'since': membership.since, + 'until': membership.until, + 'chair': membership.chair + }] + } + achievements[name]['periods'].sort(key=lambda period: period['since']) + + return render(request, 'members/profile.html', + {'member': member, 'achievements': achievements.values()}) def become_a_member(request): - context = {'documents': models.BecomeAMemberDocument.objects.all()} + context = {'documents': BecomeAMemberDocument.objects.all()} return render(request, 'singlepages/become_a_member.html', context) def get_become_a_member_document(request, pk): - document = get_object_or_404(models.BecomeAMemberDocument, pk=int(pk)) + document = get_object_or_404(BecomeAMemberDocument, pk=int(pk)) ext = os.path.splitext(document.file.path)[1] return sendfile(request, document.file.path, attachment=True, attachment_filename=slugify(document.name) + ext) diff --git a/website/thaliawebsite/menus.py b/website/thaliawebsite/menus.py index 321c007ea96370373d1780bd1b106ab9e1e886a6..8522141107ec0a6303458d7030fe0bf3b9c50503 100644 --- a/website/thaliawebsite/menus.py +++ b/website/thaliawebsite/menus.py @@ -5,6 +5,7 @@ main = [ {'title': _('Association'), 'name': '#', 'submenu': [ {'title': _('Board'), 'name': '#'}, {'title': _('Committees'), 'name': 'committees:index'}, + {'title': _('Members'), 'name': 'members:index'}, {'title': _('Documents'), 'name': 'documents:index'}, {'title': _('Merchandise'), 'name': 'merchandise:index'}, {'title': _('Members'), 'name': 'members:index'}, diff --git a/website/thaliawebsite/static/js/thimbus.js b/website/thaliawebsite/static/js/thimbus.js index 42bd7b17e7b8e0b49cdea2fa693b22039e02a5a6..54424db4a356def856e17544e89d2fa70dafccae 100644 --- a/website/thaliawebsite/static/js/thimbus.js +++ b/website/thaliawebsite/static/js/thimbus.js @@ -1 +1 @@ -var htmlClasses=document.documentElement.className.split(" ");htmlClasses.push("js-on"),document.documentElement.className=htmlClasses.join(" ").replace(/^\s+|\s+$/g,""),function(e){e.fn.gwScrollTo=function(t){var i={duration:1e3,easing:"easeInOutCubic",target:"#top",callback:""},s=e.extend({},i,t),n=this;if(s.easing=jQuery.easing[s.easing]?s.easing:!1,!e(s.target).length)return!1;var a=e(s.target).offset();return n.is(":animated")||a.top==e(window).scrollTop()?!1:n.animate({scrollTop:e(s.target).offset().top},s.duration,s.easing,function(){this.tagName==n[0].tagName&&e.isFunction(s.callback)?s.callback.call(this):!1})}}(jQuery),jQuery(document).ready(function(e,t){var i,s,n=e("body"),a=n.find("#wrapper"),o=n.find("#header-info"),l=n.find("#logo"),r=l.find("img"),c=n.find("#primary-navigation"),d=c.find(".nav"),u=c.find(".menu-responsive"),f=n.find("#header-panel"),h=n.find("#bottom"),p=n.find("#footer"),g=e("
",{id:"primary-navigation-placholder"}).css({height:"45px",display:"none"}),v=o.length?o.outerHeight():0,m=l.length?l.height():0,b=c.length?c.height():0,w=f.height?f.height():0,y=h.height?h.outerHeight():0,k=10,C=35,x=function(){return v+m+2*k},T=function(){return x()+b+w};r.load(function(){m=l.length?l.height():0}),n.hasClass("stickymenu")&&g.insertBefore(c),setTimeout(function(){e(window).resize(),d.find(".nav-path-selected > a").trigger("click")},10),e(window).resize(),d.find(".nav-path-selected > a").trigger("click");var j;n.find('[class^="hide-info-box"]').delegate(this,"mouseenter mouseleave",function(e){clearTimeout(j),"mouseenter"==e.type?(A!=t&&A.find(".fullwidthabnner").revpause(),n.find(".header-overlay").addClass("visible")):j=setTimeout(function(){A!=t&&(A.find(".fullwidthabnner").hasClass("hovered")||A.find(".fullwidthabnner").revresume().closest(".slider").trigger("mousemove")),n.find(".header-overlay").removeClass("visible")},300)}),e(window).scroll(function(){f.length&&(i=u.is(":visible")?0:.6667*T()>e(window).scrollTop()?e(window).scrollTop()*-.5:.6667*T()*-.5,f.hasClass("header-parallax")&&f.css("marginBottom",i).find(".page-title").css("bottom",i*-.5+50)),s=k+(C-k)*(v-e(window).scrollTop())/v,l.css({paddingTop:function(){return u.is(":visible")?C:s>k?s:k},paddingBottom:function(){return u.is(":visible")?C:s>k?s:k}}),n.hasClass("stickymenu")&&!u.is(":visible")&&x()<=e(window).scrollTop()?(c.addClass("stickynav"),g.css("display","block"),e(document).height()-e(window).height()<=e(window).scrollTop()?p.removeClass("stickyfooter-bottom"):p.addClass("stickyfooter-bottom")):(c.removeClass("stickynav"),g.css("display","none")),e(window).scrollTop()>0?n.find("#scroll-top").fadeIn(200):n.find("#scroll-top").fadeOut(200)}),e(window).resize(function(){e(window).trigger("scroll"),v=v=o.length?o.outerHeight():0,n.hasClass("stickyfooter")&&(u.is(":visible")?(n.removeClass("stickyfooter"),a.css("marginBottom",0)):(n.addClass("stickyfooter"),y=h.height?h.outerHeight():0,a.css("marginBottom",y-5))),u.is(":visible")?(u.hasClass("open")||d.css("display","none").find('li:not(".nav-path-selected")').children("ul").css("display","none"),d.find("li").addClass("noLava").find("ul").each(function(){var t=e(this),i=t.find(">li>a").parents("ul").length;t.find(">li>a").css({paddingLeft:20*(i-1)+40+"px",backgroundPosition:20*(i-1)+20+"px -5px"}),t.find(">li.nav-path-selected>a").css({paddingLeft:20*(i-1)+40+"px",backgroundPosition:20*(i-1)+20+"px -54px"})})):(u.removeClass("open"),d.css("display","block").find("ul").css("display","block").end().find("li").removeClass("noLava").end().find("ul > li").addClass("noLava").end().find("li.nav-path-selected").trigger("mouseenter").trigger("mouseleave").end().find("li>a").css("paddingLeft","20px"))}).resize(),jQuery().magnificPopup&&(e(".magnific-popup").each(function(){e(this).magnificPopup({type:"image",closeOnContentClick:!0})}),e(".magnific-popup-html").each(function(){e(this).magnificPopup({disableOn:700,type:"iframe"})})),(e("html").hasClass("lt-ie10")||e("html").hasClass("lt-ie9"))&&n.find("input[placeholder], textarea[placeholder]").each(function(){var t=e(this);t.val(t.attr("placeholder")),t.delegate(this,"focus blur",function(e){"focus"==e.type?t.val()==t.attr("placeholder")&&t.val(""):(""==t.val()||t.val()==t.attr("placeholder"))&&t.val(t.attr("placeholder"))})}),n.find("#scroll-top").css("display","none").delegate("a","click",function(t){t.preventDefault(),e("html, body").gwScrollTo({easing:"easeInOutCubic"})}),n.find(".searchform").delegate(this,"submit",function(){var t=e(this),i=t.find('input[name="s"]');return""==i[0].value?(i.focus(),!1):void 0}),d.delegate("li a","click mouseenter mouseleave",function(t){var i=e(this),s=e(this).parent(),n=s.parents("ul").parent("li");"click"==t.type&&(this.href.match(/#/gi)?t.preventDefault():(u.find(".menu-title").html(i.text()),d.find("li.nav-path-selected").removeClass("nav-path-selected").find(">a").css("backgroundPositionY","-5px").css("backgroundPosition",function(){var t=e(this).css("backgroundPosition").split(" ")[0];return t+" -5px"}),s.addClass("nav-path-selected"),n.each(function(){var t=e(this);t.hasClass("nav-path-selected")||t.addClass("nav-path-selected").find(">a").css("backgroundPositionY","-54px").css("backgroundPosition",function(){var t=e(this).css("backgroundPosition").split(" ")[0];return t+" -54px"})}))),u.is(":visible")&&("click"==t.type?!i.closest("li").find(">ul").is(":visible")&&i.closest("li").find(">ul").length>0&&(t.preventDefault(),i.closest("li").find(">ul").slideDown(300,"easeInOutCubic").end().siblings().find("ul").slideUp(300,"easeInOutCubic")):"mouseenter"==t.type?(i.css("backgroundPositionY","-54px"),i.css("backgroundPosition",function(){var t=e(this).css("backgroundPosition").split(" ")[0];return t+" -54px"})):i.closest("li").hasClass("nav-path-selected")||(i.css("backgroundPositionY","-5px"),i.css("backgroundPosition",function(){var t=e(this).css("backgroundPosition").split(" ")[0];return t+" -5px"})))}),u.delegate(this,"click",function(){var t=e(this);d.is(":visible")?d.slideUp(300,"easeInOutCubic"):(t.addClass("open"),d.slideDown(300,"easeInOutCubic"))}),jQuery().lavaLamp&&setTimeout(function(){d.each(function(){e(this).children("li.").addClass("selectedLava").end().find("ul > li").addClass("noLava").end().lavaLamp({fx:"easeOutExpo",speed:500})})},100),n.find(".alert").delegate(".close","click",function(){e(this).closest(".alert").slideUp()}),n.find(".tabs").delegate("li","click",function(t){var i=e(this),s=i.closest(".tabs-wrapper").next(".tabs-content"),n=s.find("> li"),a=i.closest(".tabs").find("> li").index(i);t.preventDefault(),i.hasClass("current")?s.stop().animate({height:n.eq(a).find(".tab-content").outerHeight()},350,"jswing"):(i.addClass("current").siblings(".current").removeClass("current"),n.eq(a).siblings(".current").find(".tab-content").css("display","block").fadeTo(200,0,function(){s.stop().animate({height:n.eq(a).find(".tab-content").outerHeight()},350,"jswing",function(){n.eq(a).siblings(".current").removeClass("current").find(".tab-content").css("display","none"),n.eq(a).addClass("current").find(".tab-content").fadeTo(200,1)})}))}),e(window).resize(function(){n.find(".tabs li.current").trigger("click")}),n.find(".tabs-content").delegate(".tab-title","click",function(t){var i=e(this),s=i.closest("li"),n=i.closest(".tabs-content"),a=(n.find("> li"),n.prev(".tabs-wrapper").find(".tabs")),o=a.find("> li"),l=n.find("> li").index(s);t.preventDefault(),s.hasClass("current")||(s.addClass("current").find(".tab-content").stop().css({display:"none",opacity:1}).slideDown(500,"easeOutExpo"),s.siblings(".current").removeClass("current").find(".tab-content").stop().css("display","block").slideUp(500,"easeOutExpo",function(){n.css("height",s.find(".tab-content").outerHeight())}),o.eq(l).addClass("current").siblings().removeClass("current"))}),n.find(".toggles").delegate(".toggle-title","click",function(t){var i=e(this),s=i.closest("li");t.preventDefault(),s.hasClass("current")?s.removeClass("current").find(".toggle-content").stop().css("display","block").slideUp(500,"easeOutExpo"):(s.addClass("current").find(".toggle-content").stop().css("display","none").slideDown(500,"easeOutExpo"),s.siblings(".current").find(".toggle-title").trigger("click"))});var P=n.find(".progress-bars");P.find(".progress-label span").html("0%").end().find(".bar").css("width",0).bind("inview",function(t,i){var s,n=e(this),a=n.closest("li");n.addClass("trans-enabled"),i===!0&&(n.css("width",Math.round(parseFloat(n.data("width")))+"%").unbind("inview"),s=setInterval(function(){var e=Math.round(n.width()/a.width()*100);a.find(".progress-label span").html(e+"%"),e==Math.round(parseFloat(n.data("width")))&&clearInterval(s)},5))});var O=n.find(".portfolio-isotope"),I=O.find(".portfolio-filter"),L=O.find(".portfolio-posts");jQuery().isotope&&I.delegate("li","click",function(){var i,s=e(this);i=s.data("filter")==t?"*":'[data-filter*="'+s.data("filter")+'"]',setTimeout(function(){L.isotope({filter:i})},100)}),e(window).resize(function(){I.find("li.current").length?I.find("li.current").trigger("click"):I.find("li:first").trigger("click")}),jQuery().carouFredSel&&(n.find(".testimonials .slides").each(function(){var t=e(this);t.carouFredSel({responsive:!0,auto:!1,height:"variable",width:"100%",pagination:{keys:!1,container:e(this).closest(".slider").find(".slider-pagination"),anchorBuilder:function(e){return'
  • '}},swipe:{onTouch:!0},onCreate:function(){e(window).on("resize",function(){var e=setInterval(function(){0!=t.find("li:first").height()&&(clearInterval(e),t.parent().add(t).css("height",t.children().first().height()+"px"))},10)}).trigger("resize")}})}),n.find(".post-slider .slides").each(function(){var t=e(this);t.carouFredSel({responsive:!0,height:"variable",width:"100%",height:"auto",auto:!1,next:t.closest(".slider").find(".slider-control-next"),prev:t.closest(".slider").find(".slider-control-prev"),swipe:{onTouch:!0},onCreate:function(){e(window).on("resize",function(){var e=setInterval(function(){0!=t.find("li:first").height()&&(clearInterval(e),t.parent().add(t).css("height",t.children().first().height()+"px"))},10)}).trigger("resize")}})}),e(".brands .slides").each(function(){var t=e(this);t.carouFredSel({responsive:!0,auto:!1,width:"100%",next:t.closest(".slider").find(".slider-controls .next"),prev:t.closest(".slider").find(".slider-controls .prev"),scroll:1,swipe:{onTouch:!0},items:{width:300,visible:{min:1,max:4}},onCreate:function(){e(window).on("resize",function(){var e=setInterval(function(){0!=t.find("li:first").height()&&(clearInterval(e),t.parent().add(t).css("height",t.children().first().height()+"px"))},100)}).trigger("resize")}})}));var z,D=n.find(".ticker"),M=e(".ticker-controls");D.each(function(){e(this).bind("loaded clicked",function(i,s){var n=e(this),a=n.find(".ticker-list"),o=a.find("li"),l=o.length,s=s==t?"fw":"rev",r=function(e){return e=e>=l?0:e,e=0>e?l-1:e},c=function(e,i){i=i==t?"fw":i,e=e==t?"fw"==i?0:l-1:r(e);var s,c=r(e+1),d=r(e-1);e="fw"==i?c:d,s=o.eq(e).height(),o.stop().fadeTo(200,0,function(){o.css({position:"absolute",top:o.eq(e).height()}).eq(e).css("top","-="+o.eq(e).height()),a.stop().animate({height:s},250,"jswing",function(){o.stop().fadeTo(200,1)})}),"fw"==i?n.data("id",e):n.data("id",e)};"clicked"==i.type&&(clearInterval(z),c(n.data("id"),s),n.trigger("loaded")),"loaded"==i.type&&(clearInterval(z),n.data("id")==t&&(n.data("id",0),a.css("height",o.eq(n.data("id")).height())),z=setInterval(function(){c(n.data("id"))},5e3))})}),M.delegate(".arrow","click",function(t){var i=e(this),s=i.closest(".ticker-controls").prev(".ticker");t.preventDefault(),i.hasClass("next")?s.trigger("clicked"):s.trigger("clicked","rev")}),M.prev(".ticker").trigger("loaded");var H=!1;e(window).resize(function(){H&&clearTimeout(H),H=setTimeout(function(){M.prev(".ticker").trigger("loaded")},100)});var Q=n.find("#contact-form");Q.length&&Q.submit(function(){var i=e(this),s=i.find("#contact-submit"),a=i.find("input[type=text], textarea"),o=(i.find("#captcha"),i.parent().find("#contact-message")),l=s[0].innerHTML;return s.hasClass("disabled")?!1:(e.ajax({type:"POST",url:i[0].action,data:i.serialize(),dataType:"json",beforeSend:function(){o.length>0&&o.stop().slideUp(),s.css("opacity",.5).addClass("disabled")[0].innerHTML=s.data("send")}}).done(function(r){if(s.css("opacity",1).removeClass("disabled")[0].innerHTML=l,a.filter("#captcha")[0].value="",0==o.length&&(o=e("
    ",{id:"contact-message"}).css("display","none"),i.before(o)),"success"==r.result)a.val(""),o.addClass("alert alert-success1").removeClass("alert-error").html(r.message.mail_sent+'').slideDown();else if(r.message.mail_sent!=t)o.addClass("alert alert-error").removeClass("alert-success1").html(r.message.mail_sent+'').slideDown();else{var c="";jQuery.each(r.message,function(e,t){c+="

    "+t+"

    "}),o.addClass("alert alert-error").removeClass("alert-success1").html(c+'').slideDown()}n.find(".alert").delegate(".close","click",function(){e(this).closest(".alert").slideUp()})}),!1)});var S=n.find("#header-map");if(jQuery().goMap&&google&&google.maps){S.each(function(){e(this).goMap({markers:[{address:"Leatherhead, Surrey United Kingdom 01372 818123, United Kingdom",title:"Granth",icon:{image:"assets/images/misc/pin_red.png"}}],scrollwheel:!1,zoom:13,maptype:"ROADMAP"})});var q=!1;e(window).resize(function(){q&&clearTimeout(q),q=setTimeout(function(){e.goMap.getMarkers("markers").length&&e.goMap.map.panTo(e.goMap.getMarkers("markers")[0].getPosition())},100)})}if(jQuery().revolution){var A=n.find(".rev-slider"),U=570;A.find(".fullwidthabnner").css({height:U,maxHeight:U}).revolution({delay:9e3,startheight:U,startwidth:1020,navigationType:"none",navigationArrows:"none",touchenabled:"on",onHoverStop:"on",navOffsetHorizontal:0,navOffsetVertical:20,hideCaptionAtLimit:0,hideAllCaptionAtLilmit:0,hideSliderAtLimit:0,stopAtSlide:-1,stopAfterLoops:-1,shadow:0,fullWidth:"on"}),A.delegate(".slider-control-prev, .slider-control-next","click",function(t){{var i=e(this);i.closest(".rev-slider")}t.preventDefault(),i.hasClass("slider-control-prev")?A.revprev():A.revnext()})}}),jQuery(document).ready(function(){jQuery(".gallery-box").fancybox({helpers:{title:{type:"float"}},afterShow:function(){var e=$(this.element).attr("data-download");void 0!=e&&$('').appendTo(this.outer)},padding:0})}),jQuery(document).ready(function(){$(".member-item img").on("error",function(e){-1==e.target.src.indexOf("gravatarmissing.png")&&(e.target.src="/packages/theme_thimbus/themes/thimbus/assets/images/gravatarmissing.png")})}); \ No newline at end of file +var htmlClasses=document.documentElement.className.split(" ");htmlClasses.push("js-on"),document.documentElement.className=htmlClasses.join(" ").replace(/^\s+|\s+$/g,""),function(e){e.fn.gwScrollTo=function(t){var i={duration:1e3,easing:"easeInOutCubic",target:"#top",callback:""},s=e.extend({},i,t),n=this;if(s.easing=jQuery.easing[s.easing]?s.easing:!1,!e(s.target).length)return!1;var a=e(s.target).offset();return n.is(":animated")||a.top==e(window).scrollTop()?!1:n.animate({scrollTop:e(s.target).offset().top},s.duration,s.easing,function(){this.tagName==n[0].tagName&&e.isFunction(s.callback)?s.callback.call(this):!1})}}(jQuery),jQuery(document).ready(function(e,t){var i,s,n=e("body"),a=n.find("#wrapper"),o=n.find("#header-info"),l=n.find("#logo"),r=l.find("img"),c=n.find("#primary-navigation"),d=c.find(".nav"),u=c.find(".menu-responsive"),f=n.find("#header-panel"),h=n.find("#bottom"),p=n.find("#footer"),g=e("
    ",{id:"primary-navigation-placholder"}).css({height:"45px",display:"none"}),v=o.length?o.outerHeight():0,m=l.length?l.height():0,b=c.length?c.height():0,w=f.height?f.height():0,y=h.height?h.outerHeight():0,k=10,C=35,x=function(){return v+m+2*k},T=function(){return x()+b+w};r.load(function(){m=l.length?l.height():0}),n.hasClass("stickymenu")&&g.insertBefore(c),setTimeout(function(){e(window).resize(),d.find(".nav-path-selected > a").trigger("click")},10),e(window).resize(),d.find(".nav-path-selected > a").trigger("click");var j;n.find('[class^="hide-info-box"]').delegate(this,"mouseenter mouseleave",function(e){clearTimeout(j),"mouseenter"==e.type?(A!=t&&A.find(".fullwidthabnner").revpause(),n.find(".header-overlay").addClass("visible")):j=setTimeout(function(){A!=t&&(A.find(".fullwidthabnner").hasClass("hovered")||A.find(".fullwidthabnner").revresume().closest(".slider").trigger("mousemove")),n.find(".header-overlay").removeClass("visible")},300)}),e(window).scroll(function(){f.length&&(i=u.is(":visible")?0:.6667*T()>e(window).scrollTop()?e(window).scrollTop()*-.5:.6667*T()*-.5,f.hasClass("header-parallax")&&f.css("marginBottom",i).find(".page-title").css("bottom",i*-.5+50)),s=k+(C-k)*(v-e(window).scrollTop())/v,l.css({paddingTop:function(){return u.is(":visible")?C:s>k?s:k},paddingBottom:function(){return u.is(":visible")?C:s>k?s:k}}),n.hasClass("stickymenu")&&!u.is(":visible")&&x()<=e(window).scrollTop()?(c.addClass("stickynav"),g.css("display","block"),e(document).height()-e(window).height()<=e(window).scrollTop()?p.removeClass("stickyfooter-bottom"):p.addClass("stickyfooter-bottom")):(c.removeClass("stickynav"),g.css("display","none")),e(window).scrollTop()>0?n.find("#scroll-top").fadeIn(200):n.find("#scroll-top").fadeOut(200)}),e(window).resize(function(){e(window).trigger("scroll"),v=v=o.length?o.outerHeight():0,n.hasClass("stickyfooter")&&(u.is(":visible")?(n.removeClass("stickyfooter"),a.css("marginBottom",0)):(n.addClass("stickyfooter"),y=h.height?h.outerHeight():0,a.css("marginBottom",y-5))),u.is(":visible")?(u.hasClass("open")||d.css("display","none").find('li:not(".nav-path-selected")').children("ul").css("display","none"),d.find("li").addClass("noLava").find("ul").each(function(){var t=e(this),i=t.find(">li>a").parents("ul").length;t.find(">li>a").css({paddingLeft:20*(i-1)+40+"px",backgroundPosition:20*(i-1)+20+"px -5px"}),t.find(">li.nav-path-selected>a").css({paddingLeft:20*(i-1)+40+"px",backgroundPosition:20*(i-1)+20+"px -54px"})})):(u.removeClass("open"),d.css("display","block").find("ul").css("display","block").end().find("li").removeClass("noLava").end().find("ul > li").addClass("noLava").end().find("li.nav-path-selected").trigger("mouseenter").trigger("mouseleave").end().find("li>a").css("paddingLeft","20px"))}).resize(),jQuery().magnificPopup&&(e(".magnific-popup").each(function(){e(this).magnificPopup({type:"image",closeOnContentClick:!0})}),e(".magnific-popup-html").each(function(){e(this).magnificPopup({disableOn:700,type:"iframe"})})),(e("html").hasClass("lt-ie10")||e("html").hasClass("lt-ie9"))&&n.find("input[placeholder], textarea[placeholder]").each(function(){var t=e(this);t.val(t.attr("placeholder")),t.delegate(this,"focus blur",function(e){"focus"==e.type?t.val()==t.attr("placeholder")&&t.val(""):(""==t.val()||t.val()==t.attr("placeholder"))&&t.val(t.attr("placeholder"))})}),n.find("#scroll-top").css("display","none").delegate("a","click",function(t){t.preventDefault(),e("html, body").gwScrollTo({easing:"easeInOutCubic"})}),n.find(".searchform").delegate(this,"submit",function(){var t=e(this),i=t.find('input[name="s"]');return""==i[0].value?(i.focus(),!1):void 0}),d.delegate("li a","click mouseenter mouseleave",function(t){var i=e(this),s=e(this).parent(),n=s.parents("ul").parent("li");"click"==t.type&&(this.href.match(/#/gi)?t.preventDefault():(u.find(".menu-title").html(i.text()),d.find("li.nav-path-selected").removeClass("nav-path-selected").find(">a").css("backgroundPositionY","-5px").css("backgroundPosition",function(){var t=e(this).css("backgroundPosition").split(" ")[0];return t+" -5px"}),s.addClass("nav-path-selected"),n.each(function(){var t=e(this);t.hasClass("nav-path-selected")||t.addClass("nav-path-selected").find(">a").css("backgroundPositionY","-54px").css("backgroundPosition",function(){var t=e(this).css("backgroundPosition").split(" ")[0];return t+" -54px"})}))),u.is(":visible")&&("click"==t.type?!i.closest("li").find(">ul").is(":visible")&&i.closest("li").find(">ul").length>0&&(t.preventDefault(),i.closest("li").find(">ul").slideDown(300,"easeInOutCubic").end().siblings().find("ul").slideUp(300,"easeInOutCubic")):"mouseenter"==t.type?(i.css("backgroundPositionY","-54px"),i.css("backgroundPosition",function(){var t=e(this).css("backgroundPosition").split(" ")[0];return t+" -54px"})):i.closest("li").hasClass("nav-path-selected")||(i.css("backgroundPositionY","-5px"),i.css("backgroundPosition",function(){var t=e(this).css("backgroundPosition").split(" ")[0];return t+" -5px"})))}),u.delegate(this,"click",function(){var t=e(this);d.is(":visible")?d.slideUp(300,"easeInOutCubic"):(t.addClass("open"),d.slideDown(300,"easeInOutCubic"))}),jQuery().lavaLamp&&setTimeout(function(){d.each(function(){e(this).children("li.").addClass("selectedLava").end().find("ul > li").addClass("noLava").end().lavaLamp({fx:"easeOutExpo",speed:500})})},100),n.find(".alert").delegate(".close","click",function(){e(this).closest(".alert").slideUp()}),n.find(".tabs").delegate("li","click",function(t){var i=e(this),s=i.closest(".tabs-wrapper").next(".tabs-content"),n=s.find("> li"),a=i.closest(".tabs").find("> li").index(i);t.preventDefault(),i.hasClass("current")?s.stop().animate({height:n.eq(a).find(".tab-content").outerHeight()},350,"jswing"):(i.addClass("current").siblings(".current").removeClass("current"),n.eq(a).siblings(".current").find(".tab-content").css("display","block").fadeTo(200,0,function(){s.stop().animate({height:n.eq(a).find(".tab-content").outerHeight()},350,"jswing",function(){n.eq(a).siblings(".current").removeClass("current").find(".tab-content").css("display","none"),n.eq(a).addClass("current").find(".tab-content").fadeTo(200,1)})}))}),e(window).resize(function(){n.find(".tabs li.current").trigger("click")}),n.find(".tabs-content").delegate(".tab-title","click",function(t){var i=e(this),s=i.closest("li"),n=i.closest(".tabs-content"),a=(n.find("> li"),n.prev(".tabs-wrapper").find(".tabs")),o=a.find("> li"),l=n.find("> li").index(s);t.preventDefault(),s.hasClass("current")||(s.addClass("current").find(".tab-content").stop().css({display:"none",opacity:1}).slideDown(500,"easeOutExpo"),s.siblings(".current").removeClass("current").find(".tab-content").stop().css("display","block").slideUp(500,"easeOutExpo",function(){n.css("height",s.find(".tab-content").outerHeight())}),o.eq(l).addClass("current").siblings().removeClass("current"))}),n.find(".toggles").delegate(".toggle-title","click",function(t){var i=e(this),s=i.closest("li");t.preventDefault(),s.hasClass("current")?s.removeClass("current").find(".toggle-content").stop().css("display","block").slideUp(500,"easeOutExpo"):(s.addClass("current").find(".toggle-content").stop().css("display","none").slideDown(500,"easeOutExpo"),s.siblings(".current").find(".toggle-title").trigger("click"))});var P=n.find(".progress-bars");P.find(".progress-label span").html("0%").end().find(".bar").css("width",0).bind("inview",function(t,i){var s,n=e(this),a=n.closest("li");n.addClass("trans-enabled"),i===!0&&(n.css("width",Math.round(parseFloat(n.data("width")))+"%").unbind("inview"),s=setInterval(function(){var e=Math.round(n.width()/a.width()*100);a.find(".progress-label span").html(e+"%"),e==Math.round(parseFloat(n.data("width")))&&clearInterval(s)},5))});var O=n.find(".portfolio-isotope"),I=O.find(".portfolio-filter"),L=O.find(".portfolio-posts");jQuery().isotope&&I.delegate("li","click",function(){var i,s=e(this);i=s.data("filter")==t?"*":'[data-filter*="'+s.data("filter")+'"]',setTimeout(function(){L.isotope({filter:i})},100)}),e(window).resize(function(){I.find("li.current").length?I.find("li.current").trigger("click"):I.find("li:first").trigger("click")}),jQuery().carouFredSel&&(n.find(".testimonials .slides").each(function(){var t=e(this);t.carouFredSel({responsive:!0,auto:!1,height:"variable",width:"100%",pagination:{keys:!1,container:e(this).closest(".slider").find(".slider-pagination"),anchorBuilder:function(e){return'
  • '}},swipe:{onTouch:!0},onCreate:function(){e(window).on("resize",function(){var e=setInterval(function(){0!=t.find("li:first").height()&&(clearInterval(e),t.parent().add(t).css("height",t.children().first().height()+"px"))},10)}).trigger("resize")}})}),n.find(".post-slider .slides").each(function(){var t=e(this);t.carouFredSel({responsive:!0,height:"variable",width:"100%",height:"auto",auto:!1,next:t.closest(".slider").find(".slider-control-next"),prev:t.closest(".slider").find(".slider-control-prev"),swipe:{onTouch:!0},onCreate:function(){e(window).on("resize",function(){var e=setInterval(function(){0!=t.find("li:first").height()&&(clearInterval(e),t.parent().add(t).css("height",t.children().first().height()+"px"))},10)}).trigger("resize")}})}),e(".brands .slides").each(function(){var t=e(this);t.carouFredSel({responsive:!0,auto:!1,width:"100%",next:t.closest(".slider").find(".slider-controls .next"),prev:t.closest(".slider").find(".slider-controls .prev"),scroll:1,swipe:{onTouch:!0},items:{width:300,visible:{min:1,max:4}},onCreate:function(){e(window).on("resize",function(){var e=setInterval(function(){0!=t.find("li:first").height()&&(clearInterval(e),t.parent().add(t).css("height",t.children().first().height()+"px"))},100)}).trigger("resize")}})}));var z,D=n.find(".ticker"),M=e(".ticker-controls");D.each(function(){e(this).bind("loaded clicked",function(i,s){var n=e(this),a=n.find(".ticker-list"),o=a.find("li"),l=o.length,s=s==t?"fw":"rev",r=function(e){return e=e>=l?0:e,e=0>e?l-1:e},c=function(e,i){i=i==t?"fw":i,e=e==t?"fw"==i?0:l-1:r(e);var s,c=r(e+1),d=r(e-1);e="fw"==i?c:d,s=o.eq(e).height(),o.stop().fadeTo(200,0,function(){o.css({position:"absolute",top:o.eq(e).height()}).eq(e).css("top","-="+o.eq(e).height()),a.stop().animate({height:s},250,"jswing",function(){o.stop().fadeTo(200,1)})}),"fw"==i?n.data("id",e):n.data("id",e)};"clicked"==i.type&&(clearInterval(z),c(n.data("id"),s),n.trigger("loaded")),"loaded"==i.type&&(clearInterval(z),n.data("id")==t&&(n.data("id",0),a.css("height",o.eq(n.data("id")).height())),z=setInterval(function(){c(n.data("id"))},5e3))})}),M.delegate(".arrow","click",function(t){var i=e(this),s=i.closest(".ticker-controls").prev(".ticker");t.preventDefault(),i.hasClass("next")?s.trigger("clicked"):s.trigger("clicked","rev")}),M.prev(".ticker").trigger("loaded");var H=!1;e(window).resize(function(){H&&clearTimeout(H),H=setTimeout(function(){M.prev(".ticker").trigger("loaded")},100)});var Q=n.find("#contact-form");Q.length&&Q.submit(function(){var i=e(this),s=i.find("#contact-submit"),a=i.find("input[type=text], textarea"),o=(i.find("#captcha"),i.parent().find("#contact-message")),l=s[0].innerHTML;return s.hasClass("disabled")?!1:(e.ajax({type:"POST",url:i[0].action,data:i.serialize(),dataType:"json",beforeSend:function(){o.length>0&&o.stop().slideUp(),s.css("opacity",.5).addClass("disabled")[0].innerHTML=s.data("send")}}).done(function(r){if(s.css("opacity",1).removeClass("disabled")[0].innerHTML=l,a.filter("#captcha")[0].value="",0==o.length&&(o=e("
    ",{id:"contact-message"}).css("display","none"),i.before(o)),"success"==r.result)a.val(""),o.addClass("alert alert-success1").removeClass("alert-error").html(r.message.mail_sent+'').slideDown();else if(r.message.mail_sent!=t)o.addClass("alert alert-error").removeClass("alert-success1").html(r.message.mail_sent+'').slideDown();else{var c="";jQuery.each(r.message,function(e,t){c+="

    "+t+"

    "}),o.addClass("alert alert-error").removeClass("alert-success1").html(c+'').slideDown()}n.find(".alert").delegate(".close","click",function(){e(this).closest(".alert").slideUp()})}),!1)});var S=n.find("#header-map");if(jQuery().goMap&&google&&google.maps){S.each(function(){e(this).goMap({markers:[{address:"Leatherhead, Surrey United Kingdom 01372 818123, United Kingdom",title:"Granth",icon:{image:"assets/images/misc/pin_red.png"}}],scrollwheel:!1,zoom:13,maptype:"ROADMAP"})});var q=!1;e(window).resize(function(){q&&clearTimeout(q),q=setTimeout(function(){e.goMap.getMarkers("markers").length&&e.goMap.map.panTo(e.goMap.getMarkers("markers")[0].getPosition())},100)})}if(jQuery().revolution){var A=n.find(".rev-slider"),U=570;A.find(".fullwidthabnner").css({height:U,maxHeight:U}).revolution({delay:9e3,startheight:U,startwidth:1020,navigationType:"none",navigationArrows:"none",touchenabled:"on",onHoverStop:"on",navOffsetHorizontal:0,navOffsetVertical:20,hideCaptionAtLimit:0,hideAllCaptionAtLilmit:0,hideSliderAtLimit:0,stopAtSlide:-1,stopAfterLoops:-1,shadow:0,fullWidth:"on"}),A.delegate(".slider-control-prev, .slider-control-next","click",function(t){{var i=e(this);i.closest(".rev-slider")}t.preventDefault(),i.hasClass("slider-control-prev")?A.revprev():A.revnext()})}}),jQuery(document).ready(function(){jQuery(".gallery-box").fancybox({helpers:{title:{type:"float"}},afterShow:function(){var e=$(this.element).attr("data-download");void 0!=e&&$('').appendTo(this.outer)},padding:0})}),jQuery(document).ready(function(){$(".member-item img").on("error",function(e){-1==e.target.src.indexOf("gravatarmissing.png")&&(e.target.src="/static/images/gravatarmissing.png")})}); \ No newline at end of file diff --git a/website/thaliawebsite/static/js/thimbus_dev.js b/website/thaliawebsite/static/js/thimbus_dev.js index fd14a1831a27c7d14121eb476789ca5fc1dc54a4..ece84eaf1cce307f0ac2eea8f3aca8344e81d14b 100644 --- a/website/thaliawebsite/static/js/thimbus_dev.js +++ b/website/thaliawebsite/static/js/thimbus_dev.js @@ -828,7 +828,7 @@ jQuery(document).ready(function() { jQuery(document).ready(function() { $('.member-item img').on('error', function(e) { if (e.target.src.indexOf('gravatarmissing.png') == -1) { - e.target.src = '/packages/theme_thimbus/themes/thimbus/assets/images/gravatarmissing.png'; + e.target.src = '/static/images/gravatarmissing.png'; } }); });