PageSourceSearch

https://www.cambridgecanoeclub.org.uk/Register/MembershipCategories

html cambridgecanoeclub.org.uk collected 2026-09-28 15:08:11 UTC 200,028 bytes, 3,034 lines download raw bytes

1
2
3
4    <!-- Google Analytics -->
5
6<!DOCTYPE html>
7<html lang="en-GB" data-root="/">
8
9<head>
10    <meta charset="utf-8" />
11<meta name="viewport" content="width=device-width, initial-scale=1.0">
12
13
14
15    <title>Membership Categories</title>
16
17    <link rel="icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAgAElEQVR4Xu3dB7hdRdUG4CH0IgqCBbBBLIA0sSFFhdAVREMSioChSQgdlaZ0USlKUToEBAWUDtICBJCSIKD0KggEpIPwowQI/7xzM9edk1P2aTf3RpbmifHss8/smW9W&#x2B;daatWd6J0p4V/5nZ2CmdwHwP7v26cHfBUBh/SdMmBAeeuihMPPMM4cPf/jD4VOf&#x2B;lT6e0aWGQIArNjkyZPDyy&#x2B;/HCZNmtS7XoMGDQqzzjpr8Pd//vOfkK3dLLPMEuaff/600EX5/ve/H0499dTw/ve/PwwZMiR873vfC1/84hfDv/71r97LZp999vTdGUVmCAC88cYb4fnnnw977rln&#x2B;Mtf/tK7Nhbq05/&#x2B;dPjABz4QrrjiigQC8rGPfSwt9Ic&#x2B;9KFpAHDrrbcGQFh55ZXDnHPOGW688cZw0EEH9ajLmWYKK620Ujj&#x2B;&#x2B;ONnlPWfMUzAW2&#x2B;9FV577bXwne98Jzz66KNp166wwgph3nnnTbt57rnnDg8//HA44YQTwu233x4&#x2B;&#x2B;clPhquvvjp85CMfSQtJM/z73/8OO&#x2B;ywQ3jmmWfCr3/966T63feRRx4J119/fbruoosuCvfff39Yf/31w0477RQWW2yxqYBAC/lDwwwUGRAa4Omnnw433XRT75x&#x2B;8IMfTDsxSzYB66yzTnjsscfCt771rbDffvulHVyUESNGBHZ&#x2B;3XXXDfvuu29YYIEF0sfMxr333hv233//QMWfddZZVddvjz32CD//&#x2B;c&#x2B;TWQEgWiLLn//852CcwLb88suH&#x2B;eabL8w222z9Hgf9HgAW58ILLwzDhg3rnczVV189XHnlldNM7lprrZVU/XLLLZe&#x2B;M88880x1zZZbbhne&#x2B;973hiOPPDJ9xjcgr7zyStIOv/vd78InPvGJcPLJJ1ddOAD5zW9&#x2B;kxb3ggsuSFomyxprrBGuuuqqsMQSS4SjjjoqjWEg&#x2B;Ar9HgDU7pgxY8L5559fGgBzzTVXGDx48DROHu3A8VtxxRWTHadJiJ278cYbh9tuuy2p749//ONVAfDUU0&#x2B;FRRddNIHA/YsAywD4/Oc/Hy699NK0&#x2B;APBFPR7APz0pz9NNpmTxzm7&#x2B;&#x2B;67k13ecMMN07&#x2B;LdjhrALbdZ9R5pdxyyy1Jffv&#x2B;1ltvHSzYk08&#x2B;GXyXfV9qqaXCpptu2vu1e&#x2B;65JwGQarfIgMLXqJQMgC996Uvp/q4vyumnnx7uvPPOsOCCC6ax0UT9Qfo9AHbddddw9NFHpx1lZ5133nnhkEMOSTvZRH/1q1/tnccf//jH4Y9//GN4z3vekz7zd6XY&#x2B;RaAWNjNN988PPHEE4FZefDBB5OpKfoAAMNfAI7ddtst7LjjjlPd8sUXXwyu2WeffVK4uN566wWgnWOOOdJ1/r/x48eHAw44IP0O38U1AAKoSy&#x2B;99HTFwYAAAJvMtrLTFudnP/tZCskqAcAZ/MUvfhH&#x2B;8Ic/JF&#x2B;Arc523izzJ9zDItIOJ510Uthkk03Swqy22mqJBBo&#x2B;fPhUAMj8wpprrpmcyx/84AdTOXfXXXdd&#x2B;u7bb7&#x2B;dwlCLX5S//e1v6fMXXnghbLfddmGXXXYJa6&#x2B;9dmBOaJNjjjkmjcXzTA8ZEABgm2kBdtfiHnvssSnerwSACeSlH3HEEWmXCeuKO4yG4Oi9&#x2B;eab6X5f&#x2B;cpXkkquB4C8ixFDQsRvf/vb4Ze//GXvWjULgMMPPzxFHMCIcxg3blway8ILLzw91n/68AAWb&#x2B;zYseHrX/96olvt1FrCBIjhOYOEKqbmf/KTn6Tdu8UWW6QdlgUAfMbBc39qlrPGNrvPs88&#x2B;m8yJ7&#x2B;IJ8gKfeeaZgTqnaTbYYIOphvPqq6&#x2B;m37BgNMHll18&#x2B;DQCWWWaZMGrUqCDSyCJ0RTi5N&#x2B;6AueFrZOETeC5Els/5I30tfa4BOHEmxZ/vfve7ibTByFGDn/vc5wIPviiVAPCZcIvTRdhnMX8WJoJqL4oF/&#x2B;Y3vxm&#x2B;9rWv9ZI/zUz066&#x2B;/nlT/Aw88kBaJCSJ///vfU7i5&#x2B;&#x2B;67p8/xDMsuu2zvrWkK4yfnnHNOcjwrhVbxfd8Drs9&#x2B;9rPNDK3ta/sUAGw0u5edLHYv8/NUIK2AuiXZJlYDgOsyAOz2IgDanpEmbuB3OXeEz8GRzOK5fvWrXyUAeBYAGDp0aM27b7PNNonNZKL6UvoMAGJwXjRuHeoXWmihwB5S51Qq2tUuoAF49nY2qQaAl156Kfz1r38N/mZC&#x2B;nrX5AVCO/NPbr755rDtttumsWTZe&#x2B;&#x2B;906IDgudEGslJ1BIAePzxx5MTi6quZDG7BYo&#x2B;AwDbS&#x2B;3/9re/DWJrhAo2j023mBI1PGlg4CDxxol/4/OzD1CcCDsG2ZJDrm5NUr378g&#x2B;YBouffQrXc0KBg1bAPDaK&#x2B;wGAZmOqfvjDH/aZU9hnAMiTSG1yitjVww47LNlliRc7hRZgN9lVnjpv&#x2B;f/&#x2B;7//SpFQDwPRY8LK/&#x2B;aMf/SiRVnYzMIhGcu6heA/PSTvutddeieMwFzYGZ7QvpM8B4IE5adtvv31Kqpx44olhs802631WIHANjfGNb3wjTeJABIBnkBOQQEJase1CyErxnBbfovvfNCMgfOYzn&#x2B;mL9Z8&#x2B;YaC4myePOBGuAQBPuOhA5TiZimU7ZdgGmtjZ9913Xxr2ZZddlsJQzq4oglmz6MJWJgRRxE&#x2B;QcBINVVLJ3Xr2PtcA&#x2B;UE8MFr297//fWLW8PJo2IGQQWtlMc4444yUC6AN3ve&#x2B;9yWGEh/CUSRCQBtBlESQXGoXsnCMv/CFL3ScMZxuAPBg7D7nBydPE3joHAa2Msmd&#x2B;g4zZLfapZjCTso//vGPlIt47rnnprqtqAEBxXSgpIWXZ599du81WE28CaeXX1GZ6m51jNMVAAYtzAMA4V9/AQDtNHTosMgWbhS22mqrVue26vfkFji2/s6bAE8g7KMJ&#x2B;QGcxjvuuGOq&#x2B;kaRDrLMHw4xZrMT0jEACOeQMnZPNUHJsm/UX1HuuuuuFP9SjTJl1ZBNVeL3fR/6uy12ZyaahKMcuU4JrVcr8XPDDTekTCeuhDlU4VQU/hD2UTocSKoxi82OsyMAwJGz5ZIaBg2tHBsevNieCG9Gjx7dm6KlyqhYVHCtAoz8MJdcckkYHmnWvfbcK3rSG4TFF1&#x2B;82eds6nopXESU36WZcPzUcz0ip&#x2B;wP1AOAOcw&#x2B;gAiC2i8KzWGziBKYCvmHyrxF2XHk6zoCgAMPPDDtfvKnP/0p8e0mT&#x2B;ZOokOSxR8LjbxRgmUXyLDtvPPOYZVVVqk57n/&#x2B;85/hvFgNxFQs9OGFYuSwR3IYuylIqcsvvyJV/owde1XyyKWkl5zC00vcepbKvEWZMbUDgHx/mwpAaQzRhQ1XTHuXGUdXAWBhTaJKWw9s8lTEoH1V2PJ8OUMIH05ftcqdPEDAOjrmzO1KD3lwLNHGlHVDcl4CWOX&#x2B;MXmeA1jniwklvAWZJZor4GaHO5nHb6QBis8stY0lPe644xILWa34pcwcdUQDoHYt7sEHH5wWVcFDFrabU6UOb9VVVw12tPiYPfPvRvHugQceFIsmYknYc8&#x2B;Gd&#x2B;J/qD32EYfQSbH4FhuvrwTt2muvTQdNppIpRRuD4t9SzSIEjB0ip9UdWLz/xRdfnMykGkX5g6IJML&#x2B;KSHJFEt8JdQwEeAVFqK1IRwDghzkucuaSIuyYWj0lXOhcSZ6NNtqolfGFAw86uKcmEACmnGOlYWTfOinuLQqRq/CnjNj9dp8qHyXiDpy0Yhbyb9lIflvORIlZEQD&#x2B;bS7Z/yxAas4RSv5uRRt1DADUpTiVauc08Z4tlIdp1VFh63jgRx99TAqb3nmn5&#x2B;CFyaYuOZGdqL3nUNl1MnHMkwLUcjJTnPQePkPcbhEWWWSRRGaxy5VHz8rcU6ZUAknhKb4gVy7b5crLaFmZVPdXi2jOlaHRpuajWekYADh7Bq/qhZr2ALh8MX4rAOipxXslIEhOPPGE&#x2B;FwzJV/hrbfeTEmVIUNWTw5hJzhzi69CiFqnZPbbrycVXUbsOupfeCuWF6aitbF21ZI/je4pBOV/TJw4MeVARFZE6ht9ThPIKyhMYbLMOQ2ERlaU0qx0DAD5h4WBtADPHqctnqYamxXRgjN5fIoHH3woMWBKtu3OZ575ZwrJMGVf/vKXp7p1ZbuDamoxX&#x2B;MzpkvIRY0uttjg5OiNH39LU8N1H/6A/AUw8Hc4aa2UeFnUa665JhWLMidsfxZ5BckzFVSyqEJoQmNwSPMZxmYG33EASPFSzyaFk1JJ/JQdXPbEkUBvTnozzB5V3oYbDotgeCCqvpvTRLt/sSzcvZsBAIdPdKJSuFidVHaM0SftkWgGAHJSHOdrr72aNAFwFuv/St9zyoV8ASqfJrHAHGcqH0WtfoKflVlKCSU&#x2B;V72Ko1q/3zQA8kFMf9dScYceemhyZgBBerOV6hYe&#x2B;JYjt4qx7vXh5VdejtHCPGGP6PnfGs/2XXDB&#x2B;b0AqwRAmYlm80UmPOriDivz3WmuAYLeiu7/&#x2B;gToWiawHeHh40k4wcYp5ANU8840OqDarjQFALsLEyWfL6XLvlcTABC/c4iQKcVauVoDriRIAGDTTb8bD4XemELGuWNl7zHRGRw37trkWNbSAGUmhIniq9hJ/z37bxXLd8uppzF8xnS1CwBmUGKI3bf7aUVOr3lnWltx&#x2B;irnpykAsHG8XbufneOkVBMTSwUqhVL904oT&#x2B;Oqrr8Vc&#x2B;S/C&#x2B;RecFx6MtPI875k3nHLKKeGqaKuPP/645GEzAfVYxGpjc4rXuQI7FLXaLcGFjBw5suoxsmZ&#x2B;Mx&#x2B;OzZGJ55YHqOxt0Mw9i9eWBgBP2SEIf&#x2B;zoatUtboyeVP8mqQMsQsLsrDQzyDfemBRujHX1Rx35q0gvXxrvN2/UJseGq6&#x2B;5OsbC54Zlll4mlo8dkSKOZoS9z0fDmvle2WuFgDaHsFgojNBpV4pOa617cRDlXgjHWKhYJgwtDQCkjuwTsqR4LLpyQKIAVbpi6nbFgwtthEL8iP33PyD1CZARO&#x2B;yww&#x2B;PiLx2dzOYOWQKAI1pFZ5E54XHndjLFcfMXqOJ3JuMhG5sIjBytt8vOu6R5OPSwQ9udhprfN7ZswtRS4ggIEy2ULGMi&#x2B;i0Ask&#x2B;glPzII49KHIAEyIR40PKll1&#x2B;KjuCFcdHmLIVyk5IXPAOgOKt4/t122z18MXrcCy64QLoWD8GWjx8/IaWhX3zxhZSBaySApMcAH8kpoU5ogFq/KQuroMZ48QFodiLsRikXy&#x2B;xq3aMUABQpoB05dDzSenX4ndIAecH2jClgGsAu3WnHncIdf70jkUGtUsHKsmixIj9Au6wSS67SMbKY&#x2B;fPb&#x2B;fdl24RcqphzarsRCPLnPHi5kE4K/8s6CAuBrBjFyFDSbqeddlrKxwjJG0kpACBJxOPO8HHo6jkgnQbAccefEE6K5If6gjXWWDM&#x2B;&#x2B;
17KNpl7YKgKwNigColaL1/3MWi05sM3xBpwFgI3JiRQVsvvVAtqkeou6dL2QG0Mayg5Jm6jDqJapKAYAqUfEjx19LstrkodIQyIlOyP33PxhTr&#x2B;dEh3L/aKNnSw&#x2B;z6qpf7&#x2B;g5gWoA8P&#x2B;ht4VzrSayOg0A2igX3HDwONdCYjQ2ZjAzgcZuwwIJENQ7ONMxAAipsFScP6hkuzshagrsQmrY7uPBO1MgB9BK9quZMXGsVC6LxYtSyTZWu2ekhBKJc/gR7UcB&#x2B;f4AYJczww6aiLQcmafuHXUvUsEoY32M5A3qnUrqGAB011DPhq/HznWyjn/s2KtTTE0F7rvvT1KGsFuLb3HZe0UsZ0Rv/i/R0WpGBg2aOUUsytY4gdtuu00zX697regHv2J8ElcygATjKnn00Y9&#x2B;NIXn8iacT9EIf6fe8fvSAGB7pB0tbCWiHJK0S4VslQUhnXj66667Pnq1O8QegI8k&#x2B;&#x2B;fYVTcAQGXqF6RkzW94rmbF5NuZK6zwlZSqHTGi54xjp4RZknZ2jkDCKQutIIlk0al8J5Pt/twppdbvlwYAb9aNpSTxABbAH&#x2B;ESx0OoRPgJ7SRBqg2UE7pJpIVfifQwX6CySrdenV2Zic8NHpkWMXRS8em/PXE/de6/ua96o24uOUWMqy/jiZcZY76mFgCsAa7GjqeBsJ0iBKVrNECtDVMKAJBkYrCAmDcOB/VDGygIZZt4nUDC/nf6dA8adHxMAv0wahi7qlqZdi1HLi1gnRUzoUIqh1bVK2I8sxSSfWnxGy18cSFpS8RZZTfRZha72rVlAaB8TFNMIMAJVKbN871LAYATBEkyUESGb8kll0wPd&#x2B;6556YKWceatGvpRm88OxTjRbNguGrV6VeCoBGFylyhbPkWnk/RRT0pAwIVPMZIm3SjbwEeQJzP3jtHkTOt1D8ThhjKxas4j1xUIjqrJqUA4Ity52y8YsRi92xOn9o1Dk8nCiNrLYAoQ4kZL7geAKo&#x2B;ZMXWFVl4Dru&#x2B;2O&#x2B;nzO5sBILllls2OmVnpQXqZt8CYbnsIO&#x2B;f0AzAgYnMGs/GFYmooq6VNi8NALtJWpbzITWZVSv7zCMtk3goM8H1AMD5AYCyFcGVGiD/W7hKm0gL5yNa6Xen6PyU4mfzpwymTAO3POkKOGQpO3V2r9Z8AK9qJvNfy8R5XqCwNrU2Z2kAGIjJwj/ncmk/rOyp0za/2kOX0QCV3ysCIJsHB1cwZYiS3D6&#x2B;&#x2B;L2p6juaQeyU833U8vmxcred6uAyPwvETBbAtSNNAaCdH2r3u&#x2B;0CwO8LVdnPYt/hdseVv79BjL&#x2B;RU4pCN4mkVbbDnbp/t&#x2B;4zoADABHCw1BjIDWQRgThhVKkK86630x2oxE5W6zLeyK5n61DPFHAomcdOlKl3a7Gr3XfAAYAPoAK2mKDBSzhVU2vXYSk333yLeLDinuTHtCQ9BwCqfpV9FQqXKX1r6be7&#x2B;KUBBQBRwBuxLG3&#x2B;&#x2B;d8frrl6bO&#x2B;0yITxhgfNNChsEE8PF3sOuciJG3z50089Hd6e3HNaOXl4U7b0NBqgjiOQr51l5lnCvLHySQHI6NHb97ad7eJadeXW/R4AKOjcRk6C48knJ6aJUBPw1ttvpUqdojATuVZRUaYd77SPOvupdn8LAChGBTxrgNxss80T3dsNarorK15x034PAFQqWhNbN0ekOIU1CjNUCC288EKRk3g1PBurYaoJPlyVzGExMZKOlqXjZTXKuppw/y02Mkya3FnIgSz9HgBoYGlNjl/P&#x2B;cCeah2MI5pT4agy9Gr2WeNG31HTR/IunQYE7lkI/OtSvvHD2eLpIb&#x2B;NDm813CuOYXpqj34PALtdVo6TRxPgHbz0ibctJ4HGZeOJxRbqnRVTphyzyh2fJzqRP5JZxa1bJhSYAiL0qyyb6t92pBFV3c69y3633wPAg6iNp8q9yNHiO9FTLedgYYV5WrLdfc&#x2B;9ETh/D68WXvqYJyVNfAsAcMxdMoxmMYZOJHrazWSWXeha1w0IABj866//O50UWn31IbHwseeVL7Vk4sSnwpjTTg9n/Pb0dJawTAVPmYnUpsbC4/nblf6w&#x2B;5NZjANpXOze7tN24PuqYEaM2CiRLdtvP6ruHd966&#x2B;10SNPLn8TnZR6xUbEng/GtWBA7csuRYd2K7l0deLzpdosBBYBhw4YnAOyww&#x2B;hSE4YswtB1SjqpATo1pnbvM6AAsMkmmya2bdSo7Uo9N9q4U13GaQg1j91qUFXqgbpw0YABgBz&#x2B;Nttsm1LPI0d&#x2B;r&#x2B;FUUPs0QBEAtcLARgGAiML5fyeeWzlXOL0dvXqTNWAAIKGz006aMa0Ubfsm0zxT5SSLCFTIZgD02PjeOKAhgIoX6GSmkYSws16FbbWb9hdnr9YDDxgA0ADbbrtd1ABfi&#x2B;HgFg0XsKgBGjl4PUmBWr7wTCns0zCylZYv/Xn3D6goAAC22mrrZAK22uq/r2arhYRmAFAPIDh/ySdH1BW8pklrojr0XQA03KvlLgCAUaN2iLVtK8fU7malFiE7gdMucPluIPOkWoPPhFNOPikVeeYFbQSC/q7686wPKBMwatToCIBVYvXx5qVQU4wCGpuB6rfE9zt0UVnk2QgApQbYDy4aOACYwgQOKcEE5nnNUUCt4tCajtGULIGDIcqpJaN63ccCbzYjgGDAAAATuN566ycWbudddi5lAsTtzs3l1ik1s4FT7HovUHpPAk0LAEAYKOq9jIIZMABQFLrWWmtPea9euY6YMomaS&#x2B;TXt9aNh&#x2B;OiV2sBU6kBipoAoPwG/6QIjOwoylj29xrBAQMAGmCdddaNAPhG6aPndqouoFqptirVTED2J/ytmaP7T357cipWUaWEOJrvffOFoRsOTRnM/iylAODQoe5fWfSoy0eT&#x2B;&#x2B;rhAMB7fNZeWy5g6jdp1BvDySefko60vfDC89O0eKlnEvI9lZc5/iYcLNYTKDNTbPrwQw8nH&#x2B;FNlUrxz&#x2B;TY0BoA5pxjzjBs&#x2B;LAIjl1jR/FPduXIXK3nBnyFNE4561dU79BOXQBoiuQAhbPmJiGLM4B60SiIlJfvC2eImt1ii5HxaPSqkRIu/8aQceOuS61gL7rowt4XWGQVXc2xq5xUhyqdwtGNQ9tbHUYdjlGF5FyhQtSlllo6FqXcnZpXOTrvWnOio&#x2B;fyy38&#x2B;jbfVyqF64HY0zPpYcCVqIhUFMk48KZt3XIwGqteptS4AnDxRZKkHTZ40aEKzqoaxC5wK6gs7hwreYYcdY2PIldMJ4WaEEyiLaHJyWVnZ79vNntGJIgUhV101NjV/nDTpjbTINsHhsWWd&#x2B;sDbbr8tlaw7b4g&#x2B;Fj6eeebv4rHtS3pPT3Vqs/A9NO6ijQHAeUllc7SRlrLeLaB4ReWSRtZNHw3zAyZMOTU7B8G6aDl96kyac&#x2B;jelqHaNjNkZSe1letUBR133PGRjFmyafPDgXQYVHMJp2gbidx/b2&#x2B;AuMioYJVGdjxTqFmV42V23bLLLhMuv&#x2B;zy8Ng/HksOqp4ADszaKGeffU4EzmXRDzmy6X6Gjcaog4lOrJ6LWBvNIal&#x2B;R9yZTOcTkVfG2vThUHV2fkRvAMiXCFF/z/azfUDAxpgcWqLbPgFATphwa8rKLbbYoo3mZ6rPc9gmoaOJdRkQFPMDKpBpHd3RmEVtbGebfbbwn2iW1CteeeVViZ10jXnKcv/9D6SmlkOGrJa0ZKd2v/vLTCp90/OYAKZ&#x2B;AMCnb4O1UkbnKJxnprWqSU0TwOZrcOC0jcZPlZ2p88sKdNBSH68tbDfFInqBBJ&#x2B;jmQaRxpTp2xejSbvg/AtSi1lHp2mVatKTHp6aLqZC9Sly/o9PZD5oBH0FgOWKKy5P81B1klMmckq3kSn/u&#x2B;iANgMMJsy5f&#x2B;cbHdPXlMP3dQjRS1nISxPxB5hum9N5ipYAoMWYhgfav1R7VZuH8gNOxHYbACaWI5hfykC9NTNxeWGYtRtu&#x2B;HM6zaO7ZpZURTyl5LzaIuYdvMACC6aOojfGLubUrQXJR8MyAIrjqixHqxxzs8kijh1/xm8VX1YFANrzMM3Z4WwbADx
17IaHeWno2pJnaBMJHDSFN061SshT/ppJOTt/3R2Ar1R7HpQbOTZ/zuY6x2kV6G5cxBSC&#x2B;sUGY&#x2B;czwS1hMNPN&#x2B;rQSwqxy&#x2B;fDWxlXGW1Z24RY034NFkqewQZgyhBWx9Ridb9TZmA/AozvfK8pKneS5T1CeJtQl&#x2B;9dwCWfchq19n9I0duGW6Obwv5QjwbQPW2Ssn6HtKGGmUfAbiRMD0cKfNwzjl&#x2B;e&#x2B;pTRpzErAH6AgDFLmHobn4Z/8hbRHpeezM&#x2B;gVxCTBFLrdY9NX0AXUAcreLpYsNqNRkycX0BAJ78mmuulbqT6BRqwovqtRVz4Mg4x9C7Ccu8LILjxcny6prK622AVk4HNwMWjTmEtPoPWQ/tX/QjBDz/LjaKbLtPYA4DHcfWirTe60n6CgBDYkEoZA&#x2B;Z8q68djSA76rvowGo1aLUSh0jwBZddLHUrLLSthdNQCtgbKSBfA70ytw44MJM/hftBXgdB4AfzEQQANRr/dpXAFg9vioOAFaLYVW1Rg9lJlH/HsygReckaQxZVhb5yCJh7rnmTi1xNZJEtig7B4Z9990vcf9LFF5s3WkgVDaLFurpjUArIquoe2vBYT3rrLPSHOEK6r1Wti4TKMwQ&#x2B;ug/D3m1zsLhClCSnKpuOYHJBEQC5hYAiMgXdjUr2DyxM9vPGazcxWXuh1b1Eus1oid&#x2B;3333JifLfVaI/Qm&#x2B;H08KO4xSVOudBkGtdvF&#x2B;R7s&#x2B;Ws0a6FDG8WvUtaQuADheiIRx48YllqlW73sOCHSmJg0xnOqG9KSD10lAkw9Aec4886BSoWAO73AWPXF7j5g0O6fSQzbJ/INqTaREQ&#x2B;vGrOSFF18UG0481XufTMfyxnNo2GqsX3b&#x2B;ar0wwvdp7DJdSusCwEOZBPEmRqvWKRv&#x2B;gofu1u73QLke4P6Y5PDW0OOPOzby7XOVak9nbHY8pg7BlXfo7LPNHobH5g6Vb/WQ8FFNpPFiOkSKvHGiOIqiVBrP58V2eUUAZHCVXchWr6v1ypiOASAPTC6AqkM18oS9MLmvJZmAGPve&#x2B;bc700sQlGjvs8/eyQtuJLJjMnrC1KLNl1bWTqays7mDqBJdp5xycnpBQ0/TwB4mDzEmLEb5Ajw/gk8BZBIyWsQWpVVHNd8Dp49ko11rdft0bfGlUf5tjcq8UKtUPYAbCj9QikIPOea&#x2B;lp4wcM1kAqRgZ5l1lpShw0I2krvuvCuFSs89/1y6lH1cfPElosN0QHoBQ6VYTO/wVUeAXi1KMgHxiLrwmOaTM9GhO2uATgNAvoXPww/zDNPttXGNJrnbn2cA3HLL&#x2B;DTZs0YA8HIbvTfQtTJmIogMAITJrrvuHr3m9WNfv8HTdA7JthvYVRQVNYD0q9NGWFIRiWiCKhaj4&#x2B;H5AJ10/PQ1En7yw4ovjpR8Q/C0m4ovrQG6vcCN7j81AHr4dyq9NABirPzssz0aYPDgxeIiXpz&#x2B;psZrqWkAyC&#x2B;synUEAEDz8BMefviRxMAxMQilYcM2nMYENHquRp/7XTkHb0wrvjoW4yc/0642bgoAHCm5ZXFwWRGWsNftItVvn3LKqdEB&#x2B;316eTQqttrLo6uNiwZIJiCqdaKbp/ceFPMb1XZt1s6fxsIAAAlPSURBVABFYggAkD5Ag0QSJUkPa0ShIKPSBJSdp0bX3X777Ylu1&#x2B;8AxcsX4f9Ix/M91Ga0Ik0DQMKHw2FB2EBOkhCxsigEag1Yvpr3zXFqR&#x2B;yExx9/IiWc1ClMjv3&#x2B;WgWAydP5nFOV27wUASDyMXavZwOUohQBwLFEvGSp5gS288yV3&#x2B;XAGhdAMwmcc2Ie&#x2B;AmtSFMA8AMWgl1CErF/VBEP1cNjnPJEyhIalJ2vfjC/UaSVQRa/s/fe&#x2B;yQtNGhQz&#x2B;vpy7w9PGuAbAI49caprk8UUHwLOq9bPR32U0v2osgC6j1I3dMAnqmYBu82AIpjEboav5R2nwIggyC/ZqWn4vaFRElyjHLWKQOAU6SwhOPVrpj0ffb5cdICSKAyTqDfrDQBeRzGBADF19yy78LDiZHkmTQlR5BAHf8gV3aKPYJoPFIEgGsAIL&#x2B;&#x2B;td1nbfR9DiFzQLvSUn2mASoHZqGlI9WheYedHU9Ned2aRIXPkCad8ozPja3Yx5x6WrgplqSp9F1xpfqt2oBGTsNYOHTCyKLwB4paBOF1TSy2rOw7aPw/1SEkmo78LExA1gD8BUxju&#x2B;3bGy188XNFoRZ&#x2B;ugLAgHDr&#x2B;aXSwhN8e26lcl5csFZeH19rIh6NHUMvueTScFC0ve694oo9b8yoJUW&#x2B;n9fstWvNvjZepOC5OHlMQDUAAD1Hs1WgI9nQzzgKv1XvXX9Zq5lz6p/WKUP6VJujpn2AWhONl1Z3poCEl&#x2B;pcnjh1zJgxqbK4kwL5346/pWhlpSaaNR5yyM8SAHjs/JcyySAFLnIFcgiKY4vfYQL4I55T9k1I2ioAmBfOLQ3qt0ROxde/VM4fRpYJ5I8YX6vnDjoGAM6Tfr7CIKiUqsSi5VClkwBwfzuxrA&#x2B;Qf7vnJdjjUq3&#x2B;NdeMjZrg9fRRrX4PFhP3z3TItBUPWGQnkB32RjXxuLMAPfcr85KZqWfEW74wivIuWD/&#x2B;BJOS71kNAN5yJiQFmlaTcB0DQB4gatWk4NepqGqqjKpTxoxGHTp0aDpM0Yy0CgC/wVe5&#x2B;&#x2B;
1757YnLrkdRoesKE8YVTTzOliZz3vfOG7SJ/IeeA8q2kiznAzI972X3y8K0seuUzI5X0IHbWAuDkG8wjEObX8shUAqQozOtj2zWvfQ4A3AGAqB3gkAkjUZ3NvGr2ptggWruY004b05bTRQOMG3dtUr1556aDnVGlK7is1RHUM4w5dUxYNJ5PsDjVpNUkEEoZ66fCV5NrTiW&#x2B;Itdk5na4/A3RVbvSFQDYoXY1zxtTVRQhown35i/qjS0ePnx4smVl5aF4IBMruPXWW8Ud2npiqtVFajTOWrWKyDPP67kbqWxOtKNlTGsWITZNIBfRrNasNeauAIA6VLioVq2yRsDC5&#x2B;yZB5RhtOOaAQCm7rnnno/cwoIdq0JupjizHgDq3Yd6Fxbret6IF3niiSdSStqZwywIN&#x2B;ZB6Nqp19J1BQAcIvExtGbbiLHCDfCWaQUvmmT/09n6aFObAUCjHdgfPxcae8bHH388&#x2B;UYLL7xww2E6vVRsT8MfqXXCp&#x2B;HNalzQcQAIT3ixFjiLbBlvlWfrM3WGum5beNexqZUAkGIVG5soDlGnpVM7vuy4REcqieT3hchi/cwolr1HN67rOAAqB2khqS1xLrtnJ4wYMSJdZhGAoRIAgEFjOP3CQWynw0c3Jq3ePY3dM2ehAZlBf6scQjP7nB&#x2B;Exq11YIO331P3MGtXH6HrABDXIl84f1DPpuX33XoyAPCwRQ2A6KEthImybQMFAIpoveBKBJHPGgwePDiVZguHndb1bM5YSCwBt/mpJgg16etupZd7ARpR1tX3BbDzqGK5d9kraWHHrLNUAwAmzMFUGkPWC8/e30VdgDQ5DVCsw5d6ttMziSTTiL&#x2B;fOHFiIno4wnyi3MZF6CenItkjx9&#x2B;JUK/e3HVdA3AGkT4AYDErmy1XAgAZwlZCvhoDefui4yNZw6eoJvjwvniPcf5tO17dA2KLaTM2zKfnrPXmcN49c2hOePPALVrCUiKW8AAKTZjJdkmeMpum6wCoFRPX0gASLkqfLCQ&#x2B;Af9eFCoT/15NOJoKNvpKLDwv3Skh5Fa14&#x2B;HVxmJOpKGBhoPrOYXD/AI&#x2B;gX8vueSSffIYXQdAo6egARRXamogzOEv&#x2B;Ld3AZsgO4paVIaGAnWcW54Bk1gpQkwdO0Qa/IYiP99oHK18DqhSsdrmSN4YV1mRMJMowwnQdHIBmk8AuH/XygGUvX/Z6/oFANh8vDvfgBpFe9IEVKBqHZOlOlf2z85gU6v13zOhgMKplPJVpOJsPEcsizp&#x2B;RR9FYX/ZYdcBHgDVEzvY7zh5o2rIjm22W1qik&#x2B;N4mQPVR0wjbp/v05cy3QHAyzcRFp5YfNSw3Z7FwuPDOYVy3yKEeiI1zdHCo9MwJjgLMiq/9cOC&#x2B;z0A4Kw5&#x2B;yil2ygvwdGjnYzb/0bs1OvFl39baMvOc&#x2B;5k8FDl1L5nLUMMdQMY0x0AiBFOT27&#x2B;uPHGG6fdXey3kwEgN&#x2B;8MfJEerTYpGQB4dIRT8UxjEQDsbgaHON0i&#x2B;tOIp6dhRo8enRZQUWlZAPg9nAh/AQlEC&#x2B;AEPFcnsomtAGS6A8AkCIlUubJ/cghsatGeAgDVyPnLvkIZDaB4Vcyt0UU1DWAH5y5bzUweE&#x2B;CklFjdecl8Nl/PwFpi7ErTpJYlcmpFCc2MoxPXTncA5IegCThVeIIiUeRzAMAnUN12LLveCQAItSpfA8MHUGxSRtQE5mpnL5F2NLx4VE29JGATiw8gnebyy4yz3jX9BgD1BqnyhYnIjRmkSuvtoGwCGmkAzl4lbyCMrBVmVo4RYJkX46IVmK5iH2MRgsiEqDyu1Uau3UVs5/sDAgDy6JwnTSqoT3ZdyFRLygLAwY&#x2B;cl8j34pyVDcEQQey/iiCmDCiLZWMcUGXzxD3bPR3VzkLX&#x2B;u6AAIDBc5acQuJ4CQuFbSaUaQAMwsFSZYRtozWEWOjWYsVs0Qls1QcoTiYm0G9VY9QxfUK7/iwDBgB5ElXD5P5AMmWcxUwviyZ407gCnjW7XLkAnQZAf17cMmMbcACofChq3M7PwkkUotEQ1UKrIgDk5XVBqxSkjnrAbvU8LLMwfXXNgAcAmpizl4WtVS5VK5YvAkBKtlovfVoFO1nPz&#x2B;irBer27wx4ADQ7QTx2uYZ6wpnDJALIjC7/cwCY0Re02ed7FwDNztgMdv3/A2MuGgcIck2SAAAAAElFTkSuQmCC" type="image/x-icon" />
18    
19    
20
21
22<style type="text/css">
23    .data {
24        display: none;
25    }
26</style>
27
28
29<link rel="stylesheet" href="https://www.cambridgecanoeclub.org.uk/css/content.css?v=6.2.19.18" />
30
31<link href="https://www.cambridgecanoeclub.org.uk/Content/fontawesome/css/all.min.css" rel="stylesheet" type="text/css" />
32<link href="https://www.cambridgecanoeclub.org.uk/Content/fontawesome/css/v4-shims.min.css" rel="stylesheet" type="text/css" />
33
34<link href="https://www.cambridgecanoeclub.org.uk/Content/less/All.less?v=6.2.19.18" rel="stylesheet" type="text/css" />
35<link href="https://www.cambridgecanoeclub.org.uk/Content/less/NonLess.css?v=6.2.19.18" rel="stylesheet" type="text/css" />
36
37<link rel="stylesheet" href="https://www.cambridgecanoeclub.org.uk/css/kendo.css?v=6.2.19.18" />
38
39    <style type="text/css">
40        .md {
41  text-align: justify;
42}
43    </style>
44<script src="https://www.cambridgecanoeclub.org.uk/Scripts/prefixfree.min.js" type="text/javascript"></script>
44
45
46
47    
48    <meta property="og:title" content="Cambridge Canoe Club" />
49<meta property="og:type" content="website" />
50<meta property="og:url" content="http://www.cambridgecanoeclub.org.uk/Register/MembershipCategories" />
51<meta property="og:description" content="" />
52<meta property="og:image" content="" />
53
54    
55
56
57    
57<script type="text/javascript">
58        var myClubhouseData = {"ClubName":"Cambridge Canoe Club","Culture":{"Currency":{"ISOSymbol":"GBP","Symbol":"£","DecimalPlaces":2,"DecimalDelimiter":".","GroupDelimiter":",","GroupSizes":[3],"PositivePattern":0,"NegativePattern":1},"Number":{"DecimalDelimiter":".","GroupDelimiter":",","GroupSizes":[3],"NegativePattern":1},"DateTime":{"ShortDatePattern":"dd/MM/yyyy","LongDatePattern":"dddd, d MMMM yyyy","ShortTimePattern":"HH:mm","LongTimePattern":"HH:mm:ss","DateTimePattern":"dd/MM/yyyy HH:mm","FullDateTimePattern":"dddd, d MMMM yyyy HH:mm:ss"}},"TimezoneID":"Europe/London","Terminology":{"OrgName":"Cambridge Canoe Club","OrgType":"club","Branch":"Branch","Branches":"Branches","Section":"Section","Sections":"Sections","User":"member","Users":"members","Official":"officer","Officials":"officers","Usership":"Membership","LinkedSubscription":"Linked Subscription","SubscriptionAddOn":"Add-on","Token":"Token","TokenSystem":"Token","VAT":"VAT","AbilityLevel":"Paddling Experience","SecondAbilityLevel":"Ability Level","EventOrganiser":"Organiser","EventOrganiser2":"Second Organiser","EventOrganisingBranch":"Organising %Branch%","EventOrganisingSection":"Organising %Section%","HorseMember":"Member","HorseNonMember":"Non-Member","Certification":"Certification"},"HasBranches":false,"HasSections":false,"HasSeasons":true,"HasAbilityLevels":true,"HasSecondAbilityLevels":false,"CurrentSeasonStartDate":"01/04/2026","IsSmsEnabled":false,"IsVatRegistered":false,"TokensAreMoney":false,"EnabledModules":["BOOKING","CHAT_ROOMS","CMS","FAMILY_GROUPS","TODO"],"IsDemo":false,"IsDebugging":false,"ClubLocation":{"Location":"54W8+CJ Cambridge","Latitude":"52.1960625","Longitude":"0.11656250000000001"},"PrimaryColour":"rgb(210, 189, 0)","SecondaryColour":"rgb(0, 0, 0)","CurrentUser":{"ID":null,"Name":null,"CompanyName":null,"HasEmail":false},"CurrentUserCanModifyMenu":false,"HorsesHaveMembership":true};
59        var myClubhouseUrlReferrer = '';
60    </script>
60
61
62    <!-- Site Analytics Module - disable when debugging -->
63        
63<script src="/Scripts/CookieConsent.js"></script>
63
64        
64<script>
65            window.addEventListener("load", function () {
66                CookieConsent.init({"ClubName":"Cambridge Canoe Club","Analytics":false,"Marketing":false,"EmbeddedContent":false});
67            });
68        </script>
68
69</head>
70
71<body>
72    
73
74
75<!-- Main Menu -->
76<!-- This is Views/Shared/_MenuBar.cshtml -->
77
78
79
80
81<div class="banner-messages">
82    <!-- Bad Browser Warning -->
83    <div id="browser-warning" class="banner-message banner-message-danger" style="display: none">
84        <span class="pull-right">
85            <i class="fa fa-close"></i>
86        </span>
87        <h1><i class="fa fa-exclamation-triangle"></i> Outdated Browser</h1>
88        <p>
89            Some website features may not work properly and it will probably run very slowly. For a better experience (and better security!) keep your browser up to date. Check
90            <a href="http://outdatedbrowser.com">here</a> for latest versions.
91        </p>
92    </div>
93
94    <!-- Demo Mode Warning -->
95    <div id="sandbox-warning" class="banner-message banner-message-warning" style="display: none; text-align: center;">
96        <h1><i class="fa fa-exclamation-triangle"></i> Sandbox Mode</h1>
97        <p>
98            Warning! Use fictitious data only; any personal data entered will become publicly available.
99            <a class="alert-link" href="https://clients.myclubhouse.co.uk/Home/ContactUs?Subject=Sandbox%20Login%20Request" target="_blank">Get free 'admin' access</a>.
100        </p>
101    </div>
102</div>
103
104<div class="navbar-wrapper " data-spy="affix" data-offset-top="1">
105
106    <nav id="main-menu" class="navbar navbar-inverse navbar-clubhouse">
107        <div class="container-fluid" data-bind="visible: true" style="display: none;">
108            <div class="navbar-header">
109                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-navbar-collapse">
110                    <span class="sr-only">Toggle navigation</span>
111                    <span class="icon-bar"></span>
112                    <span class="icon-bar"></span>
113                    <span class="icon-bar"></span>
114                </button>
115                <!-- Show the home button if it hasn't been hidden -->
116                    <a class="navbar-brand" href="/" title="Home">
117                        <img src="https://www.cambridgecanoeclub.org.uk/Client/Images/Site/logo_with_club_name_on_the_right.png" alt="Home" style="border: 0"/>
118                    </a>
119            </div>
120
121            <div class="navbar-collapse collapse" id="main-navbar-collapse">
122                <ul class="nav navbar-nav navbar-main">
123                    <!-- Groups -->
124
125<li class="dropdown">
126    <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-caption="Club Info" role="button" aria-expanded="false">
127        <i class="far fa-info-circle"></i> Club Info <span class="caret"></span>
128    </a>
129
130    <ul class="dropdown-menu" role="menu">
131
132        <li>
133            <a href="/Cms/Spaces/CCC/About&#x2B;Us" data-caption="About Us" >
134                <i class="fa-fw far fa-smile"></i>
135                About Us
136            </a>
137        </li>
138
139
140        <li>
141            <a href="/Register/MembershipCategories" data-caption="Membership options" >
142                <i class="fa-fw"></i>
143                Membership options
144            </a>
145        </li>
146
147
148        <li role="separator" class="divider"></li>
149        <li>
150            <a href="/Events/Calendar?displayMode=calendar" data-caption="Events Calendar" >
151                <i class="fa-fw fa fa-calendar"></i>
152                Events Calendar
153            </a>
154        </li>
155
156
157        <li>
158            <a href="/Cms/Spaces/CCC/Regular&#x2B;Club&#x2B;Sessions" data-caption="Regular Sessions" >
159                <i class="fa-fw"></i>
160                Regular Sessions
161            </a>
162        </li>
163
164
165        <li role="separator" class="divider"></li>
166        <li>
167            <a href="/Cms/Spaces/CCC/The&#x2B;Committee" data-caption="The Committee" >
168                <i class="fa-fw fas fa-file-certificate"></i>
169                The Committee
170            </a>
171        </li>
172
173
174        <li class="dropdown dropdown-submenu">
175            <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-caption="Documents" role="button" aria-expanded="false">
176                <i class="fa-fw"></i>
177                Documents
178            </a>
179
180            <ul class="dropdown-menu" role="menu">
181
182        <li>
183            <a href="/Documents/Download" data-caption="Club Documents" >
184                <i class="fa-fw fa fa-download"></i>
185                Club Documents
186            </a>
187        </li>
188
189
190        <li role="separator" class="divider"></li>
191        <li>
192            <a href="/PrivacyPolicy" data-caption="Privacy Policy" >
193                <i class="fa-fw fa fa-lock"></i>
194                Privacy Policy
195            </a>
196        </li>
197
198
199        <li>
200            <a href="/Home/TermsAndConditions" data-caption="Terms and Conditions" >
201                <i class="fa-fw fa fa-gavel"></i>
202                Terms and Conditions
203            </a>
204        </li>
205
206            </ul>
207        </li>
208
209
210        <li role="separator" class="divider"></li>
211        <li>
212            <a href="/Home/ContactUs" data-caption="Contact Us" >
213                <i class="fa-fw fas fa-phone-rotary"></i>
214                Contact Us
215            </a>
216        </li>
217
218
219
220    </ul>
221</li>
222
223
224
225        <li>
226            <a href="/Cms/Spaces/CCC/How&#x2B;to&#x2B;Join&#x2B;the&#x2B;Club" data-caption="How to Join" >
227                <i class="fa-fw far fa-user-plus"></i>
228                How to Join
229            </a>
230        </li>
231
232
233        <li>
234            <a href="/Cms/Spaces/CCC/Courses" data-caption="Courses" >
235                <i class="fa-fw fas fa-bullhorn"></i>
236                Courses
237            </a>
238        </li>
239
240
241        <li>
242            <a href="/Cms/Spaces/CCC/Juniors" data-caption="Juniors" >
243                <i class="fa-fw fas fa-child"></i>
244                Juniors
245            </a>
246        </li>
247
248
249        <li>
250            <a href="/Cms/Spaces/CCC/Information&#x2B;for&#x2B;Members" data-caption="Member Info" >
251                <i class="fa-fw fas fa-users"></i>
252                Member Info
253            </a>
254        </li>
255
256
257                    <!-- Overflow -->
258                    <li id="overflow-menu" class="dropdown hidden-xs" style="display: none">
259                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
260                            <i class="fa fa-ellipsis-v"></i>
261                        </a>
262
263                        <ul class="dropdown-menu dropdown-menu-right" role="menu">
264
265        <li class="dropdown dropdown-submenu">
266            <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-caption="Club Info" role="button" aria-expanded="false">
267                <i class="fa-fw far fa-info-circle"></i>
268                Club Info
269            </a>
270
271            <ul class="dropdown-menu" role="menu">
272
273        <li>
274            <a href="/Cms/Spaces/CCC/About&#x2B;Us" data-caption="About Us" >
275                <i class="fa-fw far fa-smile"></i>
276                About Us
277            </a>
278        </li>
279
280
281        <li>
282            <a href="/Register/MembershipCategories" data-caption="Membership options" >
283                <i class="fa-fw"></i>
284                Membership options
285            </a>
286        </li>
287
288
289        <li role="separator" class="divider"></li>
290        <li>
291            <a href="/Events/Calendar?displayMode=calendar" data-caption="Events Calendar" >
292                <i class="fa-fw fa fa-calendar"></i>
293                Events Calendar
294            </a>
295        </li>
296
297
298        <li>
299            <a href="/Cms/Spaces/CCC/Regular&#x2B;Club&#x2B;Sessions" data-caption="Regular Sessions" >
300                <i class="fa-fw"></i>
301                Regular Sessions
302            </a>
303        </li>
304
305
306        <li role="separator" class="divider"></li>
307        <li>
308            <a href="/Cms/Spaces/CCC/The&#x2B;Committee" data-caption="The Committee" >
309                <i class="fa-fw fas fa-file-certificate"></i>
310                The Committee
311            </a>
312        </li>
313
314
315        <li class="dropdown dropdown-submenu">
316            <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-caption="Documents" role="button" aria-expanded="false">
317                <i class="fa-fw"></i>
318                Documents
319            </a>
320
321            <ul class="dropdown-menu" role="menu">
322
323        <li>
324            <a href="/Documents/Download" data-caption="Club Documents" >
325                <i class="fa-fw fa fa-download"></i>
326                Club Documents
327            </a>
328        </li>
329
330
331        <li role="separator" class="divider"></li>
332        <li>
333            <a href="/PrivacyPolicy" data-caption="Privacy Policy" >
334                <i class="fa-fw fa fa-lock"></i>
335                Privacy Policy
336            </a>
337        </li>
338
339
340        <li>
341            <a href="/Home/TermsAndConditions" data-caption="Terms and Conditions" >
342                <i class="fa-fw fa fa-gavel"></i>
343                Terms and Conditions
344            </a>
345        </li>
346
347            </ul>
348        </li>
349
350
351        <li role="separator" class="divider"></li>
352        <li>
353            <a href="/Home/ContactUs" data-caption="Contact Us" >
354                <i class="fa-fw fas fa-phone-rotary"></i>
355                Contact Us
356            </a>
357        </li>
358
359
360
361            </ul>
362        </li>
363
364
365        <li>
366            <a href="/Cms/Spaces/CCC/How&#x2B;to&#x2B;Join&#x2B;the&#x2B;Club" data-caption="How to Join" >
367                <i class="fa-fw far fa-user-plus"></i>
368                How to Join
369            </a>
370        </li>
371
372
373        <li>
374            <a href="/Cms/Spaces/CCC/Courses" data-caption="Courses" >
375                <i class="fa-fw fas fa-bullhorn"></i>
376                Courses
377            </a>
378        </li>
379
380
381        <li>
382            <a href="/Cms/Spaces/CCC/Juniors" data-caption="Juniors" >
383                <i class="fa-fw fas fa-child"></i>
384                Juniors
385            </a>
386        </li>
387
388
389        <li>
390            <a href="/Cms/Spaces/CCC/Information&#x2B;for&#x2B;Members" data-caption="Member Info" >
391                <i class="fa-fw fas fa-users"></i>
392                Member Info
393            </a>
394        </li>
395
396                        </ul>
397                    </li>
398                </ul>
399
400                <!-- ko if: IsUserSignedIn -->
401                    <p class="navbar-text navbar-right">
402                        <a href="/SignOut" alt="Sign out" title="Sign out">
403                            <i class="far fa-sign-out"></i>
404                            <span class="visible-xs-inline">Sign out</span>
405                        </a>
406                    </p>
407
408                    <ul class="nav navbar-nav navbar-right">
409                        <li class="dropdown">
410                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
411                                <i class="fas" data-bind="css: IsImpersonating()? 'fa-user-secret': 'fa-user'"></i>
412                                <span data-bind="text: SignedInUserName"></span> <span class="caret"></span>
413                            </a>
414
415                            <ul class="dropdown-menu dropdown-menu-right" role="menu">
416
417                                <!-- Profile Menu Items -->
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433        <li>
434            <a href="/UserPage#UserBookings" data-caption="My Bookings" >
435                <i class="fa-fw fas fa-calendar-day"></i>
436                My Bookings
437            </a>
438        </li>
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465                                <!-- Sign Out -->
466                                <li role="separator" class="divider"></li>
467                                <li>
468                                    <a href="/SignOut" alt="Sign out" title="Sign out"><i class="far fa-sign-out"></i> Sign out</a>
469                                </li>
470
471                                <!-- Roles -->
472                                <li role="separator" class="divider"></li>
473                                <li class="dropdown-header">Roles</li>
474
475                                <!-- ko foreach: Roles -->
476                                <li><span class="role-item" data-bind="text: Name"></span></li>
477                                <!-- /ko -->
478
479                                <!-- Impersonation Option -->
480                                
481                                <!-- ko if: CanImpersonate -->
482                                <li role="separator" class="divider"></li>
483                                <li>
484                                    <a href="#" data-bind="click: impersonate">
485                                        <i class="far fa-user-secret"></i> Impersonate ...
486                                    </a>
487                                </li>
488                                <li data-bind="visible: IsImpersonating">
489                                    <a href="#" data-bind="click: stopImpersonating">
490                                        <i class="far fa-user-slash"></i> Stop Impersonating
491                                    </a>
492                                </li>
493                                <!-- /ko -->
494                            </ul>
495                        </li>
496                    </ul>
497
498                    <p class="navbar-text navbar-right navbar-token-balance" title="Token Balance" data-bind="requiresFeature: 'TOKENS'" style="display: none">
499                        <a id="token-balance" href="/Finance/Tokens/MyTransactions">
500                            <span data-bind="text: TokenBalance"></span>
501                            <span class="visible-xs-inline">
502                                Tokens
503                            </span>
504                        </a>
505                    </p>
506                <!-- /ko -->
507                <!-- ko if: !IsUserSignedIn() -->
508                    <p class="nav navbar-nav navbar-right">
509                        <a class="btn btn-default" alt="Sign in" title="Sign in" data-bind="click: signIn" href="#"><i class="far fa-sign-in"></i> Sign in</a>                        
510                    </p>
511                <!-- /ko -->
512                
513                <!-- ko if: IsUserSignedIn -->
514                    <p id="cart-indicator" class="navbar-text navbar-right navbar-highlightable" data-bind="css: { 'navbar-highlight': Cart.ItemCount() }, attr: { title: Cart.ItemCount()? 'You have items in basket':'' }">
515                        <a href="/Finance/Cart" data-bind="visible: true" style="display: none">
516                            <i class="fa fa-shopping-basket"></i>
517                            <span class="visible-xs-inline">
518                                Shopping Basket
519                            </span>
520                        </a>
521                    </p>
522
523                    <ul class="nav navbar-nav navbar-right">
524                        <li class="dropdown">
525                            <a href="#" class="dropdown-toggle" data-bind="dropdown: 'sticky'" role="button" aria-expanded="false">
526                                <i class="fas fa-search"></i>
527                                <span class="visible-xs-inline">
528                                    Search
529                                </span>
530                            </a>
531
532                            <div class="dropdown-menu search-dropdown">
533                                <div class="input-group">
534                                    <input type="text" class="form-control" placeholder="what are you looking for ...?" data-bind="value: SearchText, enterkey: search">
535                                    <span class="input-group-btn">
536                                        <button class="btn btn-default" type="button" data-bind="click: search">
537                                            <i class="fas fa-search"></i>
538                                        </button>
539                                    </span>
540                                </div>
541
542                                <div class="searching-indicator" data-bind="visible: IsSearching">
543                                    <i class="fas fa-spin fa-spinner"></i> Searching ...
544                                </div>
545
546                                <div class="search-result-groups" data-bind="foreach: SearchResults">
547                                    <div data-bind="visible: !$parent.SearchCategory() || $parent.SearchCategory() === Category()">
548                                        <div class="search-result-group-category" data-bind="text: Category"></div>
549                                        <div class="search-results" data-bind="foreach: $parent.SearchCategory() === Category()? Results(): TopResults()">
550                                            <a data-bind="html: MatchingSnippet, attr: { href: URL }"></a>
551                                        </div>
552                                        <div class="clearfix">
553                                            <button type="button" class="btn btn-xs btn-default search-expand-btn pull-right"
554                                                    data-bind="visible: !$parent.SearchCategory() && Results().length > TopResults().length,
555                                                               click: function() { $parent.SearchCategory(Category()); }">
556                                                more ...
557                                            </button>
558                                            <button type="button" class="btn btn-xs btn-default search-expand-btn pull-right"
559                                                    data-bind="visible: $parent.SearchCategory() === Category(),
560                                                               click: function() { $parent.SearchCategory(null); }">
561                                                back
562                                            </button>
563                                        </div>
564                                    </div>
565                                </div>
566                            </div>
567                        </li>
568                    </ul>
569                <!-- /ko -->
570
571                    <p class="navbar-text navbar-right">
572                            <a href="https://www.facebook.com/CambridgeCanoeClub" title="Find us on Facebook" target="_blank">
573                                <i class="fa fa-lg fa-facebook-square"></i>
574                                <span class="visible-xs-inline">
575                                    Find us on Facebook
576                                </span>
577                            </a>
578                            <a href="https://x.com/CamCanoeClub" title="Follow us on Twitter" target="_blank">
579                                <i class="fa fa-lg fa-twitter"></i>
580                                <span class="visible-xs-inline">
581                                    Follow us on Twitter
582                                </span>
583                            </a>
584                            <a href="https://www.instagram.com/cambridgecanoeclub/" title="Follow us on Instagram" target="_blank">
585                                <i class="fa fa-lg fa-instagram"></i>
586                                <span class="visible-xs-inline">
587                                    Follow us on Instagram
588                                </span>
589                            </a>
590                    </p>
591
592                <p class="navbar-text navbar-right" data-bind="visible: IsUserSignedIn">
593
594                    <!-- Questions - should go to the club itself -->
595                    <a href="/Home/ContactUs" data-bind="visible: !IsAdministratorSecurityLevel()" title="Questions for Cambridge Canoe Club?">
596                        <i class="fa fa-question"></i>
597                        <span class="visible-xs-inline">Questions?</span>
598                    </a>
599
600                    <!-- myClubhouse Service Desk - currently for admins only -->
601                    <a href="https://simmetrics.atlassian.net/servicedesk" data-bind="visible: IsAdministratorSecurityLevel" title="myClubhouse Help and Support - Service Desk" target="_blank">
602                        <i class="fas fa-briefcase-medical"></i>
603                        <span class="visible-xs-inline">Help and Support</span>
604                    </a>
605                </p>
606            </div>
607        </div>
608    </nav>
609</div>
610
611<div id="impersonation-modal" class="modal fade" tabindex="-1" role="dialog">
612    <div class="modal-dialog">
613        <div class="modal-content">
614            <div class="modal-header">
615                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
616                <h4 class="modal-title">Impersonate Another User</h4>
617            </div>
618            <div class="modal-body">
619                <div class="form-horizontal">
620                    <div class="form-group" data-bind="validationElement: User.ID">
621                        <label class="control-label col-md-3">User</label>
622                        <div class="col-md-8">
623                            <input type="text" class="form-control user-control" data-bind="clubhouseAutoCompleteMulti: { value: User.ID, text: User.Name, options: { dataSource: lookupMatchingUsers, singleValue: true } }"/>
624                            <span class="help-block" data-bind="validationMessage: User.ID"></span>
625                        </div>
626                    </div>
627                </div>
628            </div>
629            <div class="modal-footer">
630                <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button>
631                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
632            </div>
633        </div>
634    </div>
635</div>
636
637
638
639<div id="my-todo-list-modal" class="modal fade" tabindex="-1" role="dialog">
640    <div class="modal-dialog modal-lg">
641        <div class="modal-content">
642            <div class="modal-header">
643                <button type="button" class="close" data-dismiss="modal" aria-label="Close" data-bind="click: closeModal"><span aria-hidden="true">&times;</span></button>
644                <h4 class="modal-title">To-do List</h4>
645            </div>
646            <div class="modal-body">
647                <table class="table table-striped table-hover">
648                    <tbody data-bind="foreach: Items">
649                    <tr class="todo-item" data-bind="css: { 'text-muted': !AreDependenciesResolved(), resolved: IsResolved, complete: IsComplete, skipped: IsSkipped, deleted: IsDeleted }">
650                        <td class="todo-ordinal">
651                            <span>
652                                <span data-bind="text: $index() + 1, visible: !IsResolved()"></span>
653                                <i class="fas" data-bind="visible: IsResolved, css: { 'fa-check-circle': IsComplete(), 'fa-angle-double-right': IsSkipped() }"></i>
654                            </span>
655                        </td> 
656                        <td class="todo-detail">
657                            <h4>
658                                <span data-bind="style: { 'color': Type.Colour() || 'black' }, attr: { title: Type.Name }">
659                                    <i class="fa-fw" data-bind="faIcon: Type.Icon() || 'fas fa-clipboard-check'"></i>
660                                </span>
661                                <span data-bind="text: Name"></span>
662                            </h4>
663                            <p data-bind="text: Description"></p>
664                            
665                            <div data-bind="visible: !IsResolved()">
666                                <button type="button" class="btn btn-xs btn-success" 
667                                        data-bind="visible: HasHelpSequence() && AreDependenciesResolved(), click: runHelpSequence">
668                                    Show me how!
669                                </button>
670                            </div>
671                            
672                            <div class="todo-resolution" data-bind="visible: IsResolved">
673                                <strong data-bind="text: Resolution"></strong> by <strong data-bind="text: ResolvedBy.Name"></strong> at <strong data-bind="text: ResolutionTime"></strong>.
674                            </div>
675                        </td>
676                        <td>
677                            <button type="button" class="btn btn-xs btn-success" data-bind="click: markComplete, visible: CanBeManuallyResolved" title="Mark completed">
678                                <i class="fas fa-check"></i>
679                            </button>
680
681                            <button type="button" class="btn btn-xs btn-default" data-bind="click: skip, visible: CanBeSkipped" title="Skip">
682                                <i class="fas fa-angle-double-right"></i>
683                                Skip
684                            </button>
685                        </td>
686                        <td>
687                            <button type="button" class="btn btn-xs btn-default" data-bind="click: hide, visible: CanBeHidden" title="Hide">
688                                <i class="fas fa-times"></i>
689                            </button>
690                        </td>
691                    </tr>
692                    </tbody>
693                </table>
694                
695                <div class="no-content" data-bind="visible: !Items().length">
696                    You have no items in your to-do list. 
697                </div>
698            </div>
699        </div>
700    </div>
701</div>
702
703
704
705
706<div class="data" id="menu-user-data">
707    {"UserID":null,"IsUserSignedIn":false,"IsImpersonating":false,"CanImpersonate":false,"SignedInUserName":null,"IsAdministratorSecurityLevel":false,"Cart":{"ItemCount":0,"TotalCost":null},"TokenBalance":null,"Roles":[],"ShowRoles":false,"HasToDoItems":false}
708</div>
709
710<!-- This is Views/Shared/_Banner.cshtml -->
711
712
713<div class="clubhouseBanner hidden-print clearfix">
714    <div class="clubhouseBannerBackground">
715        <div style="background: rgb(219, 202, 51);"></div>
716    </div>
717
718    <div class="clubhouseBannerArea">
719            <div class="clubhouseBannerContent">
720                
721
722<!-- Left-aligned image and club name -->
723<div class="left-side-by-side">
724    <div>
725        <span class="clubhouseBannerImageLeft">
726
727        </span>
728
729
730    </div>
731</div>
732
733
734            </div>
735
736        <div class="clubhouseBannerImageRight">
737
738        </div>
739    </div>
740</div>
741    
742<div id="client-messages" class="clubhouseMessages">
743
744
745</div>
746</partial>
747
748<div class="container body-content">
749    
750
751
752<style type="text/css">
753    .nav {
754        margin-bottom: 10px;
755    }
756</style>
757
758
759<div id="membership-binding">
760    
761    <div data-bind="hideOnceImagesLoaded: true">
762    
763    <div class="loader-inner ball-grid-pulse">
764        <div></div>
765        <div></div>
766        <div></div>
767        <div></div>
768        <div></div>
769        <div></div>
770        <div></div>
771        <div></div>
772        <div></div>
773    </div>
774
775</div>
776</partial>
777
778    <div data-bind="visible: true" style="display: none;">
779        <nav data-bind="visible: AreDiscountsAvailable">
780            <ul class="nav nav-pills">
781                <li role="presentation" class="active">
782                    <a href="#Categories">Membership Categories</a>
783                </li>
784                <li role="presentation" class="active">
785                    <a href="#Discounts">Discounts</a>
786                </li>
787            </ul>
788        </nav>
789
790        <a name="Categories"></a>
791        <h2 class="form-header">
792            Membership Categories
793        </h2>
794        <p class="help-block">
795            This page shows the available Membership categories and rates.
796        </p>
797
798        <div data-bind="foreach: Groups">
799            <h3 class="form-header" data-bind="text: Title"></h3>
800
801            <div class="table-stacked">
802                <table class="table table-bordered table-striped table-condensed">
803                    <thead>
804                    <tr>
805                        <th class="col-md-8">Category</th>
806                        <th class="money-column" data-bind="visible: $root.ShowJoiningFee">
807                            Joining Fee
808                        </th>
809                        <th class="money-column">
810                            Cost
811                        </th>
812                        <th class="money-column money-column-xl" data-bind="visible: $root.ShowEarlyPaymentCost">
813                            Early Payment Cost
814                        </th>
815                        <th class="money-column" data-bind="visible: $root.ShowTokenReward">
816                            Token Award
817                        </th>
818                    </tr>
819                    </thead>
820                    <tbody data-bind="foreach: Memberships">
821                    <tr>
822                        <td data-title="Category">
823                            <span class="category-name" data-bind="text: Category.Name"></span>
824                            <p><small data-bind="text: Category.Description"></small></p>
825                            <div class="text-warning" data-bind="visible: Category.Restrictions">
826                                <i class="fas fa-exclamation-triangle"></i>
827                                <span data-bind="text: Category.Restrictions"></span>
828                            </div>
829                        </td>
830                        <td data-title="Joining Fee" class="money-column" data-bind="visible: $root.ShowJoiningFee, text: JoiningFee.InclTax.Formatted"></td>
831                        <td data-title="Cost" class="money-column">
832                            <div data-bind="text: Cost.InclTax.Formatted"></div>
833                            <div class="text-muted" data-bind="text: DurationDescription"></div>
834                        </td>
835                        <td data-title="Early Payment" class="money-column" data-bind="visible: $root.ShowEarlyPaymentCost">
836                            <div data-bind="visible: HasEarlyPaymentOption">
837                                <div data-bind="text: EarlyPaymentCost.InclTax.Formatted"></div>
838                                <div>
839                                    <span>deadline </span> <strong data-bind="text: EarlyPaymentDeadlineDaysAbs"></strong> days
840                                    <strong>
841                                        <span data-bind="text: EarlyPaymentDeadlineDays() >= 0? 'before': 'after'"></span>
842                                    </strong>
843                                    <span>start.</span>
844                                </div>
845                                <div data-bind="visible: EarlyPaymentOnRenewalsOnly"><strong>Renewals only.</strong></div>
846                            </div>
847                        </td>
848                        <td data-title="Token Award" class="money-column" data-bind="visible: $root.ShowTokenReward, text: TokenReward"></td>
849                    </tr>
850                    </tbody>
851                </table>
852            </div>
853
854            <div data-bind="foreach: Sections">
855                <h4 class="form-header" data-bind="text: Section.Name"></h4>
856
857                <div class="table-stacked">
858                    <table class="table table-bordered table-striped table-condensed">
859                        <thead>
860                        <tr>
861                            <!-- ko if: AnyWithCoreRequirements -->
862                            <th class="col-md-4">Category</th>
863                            <th class="col-md-4">Requires</th>
864                            <!-- /ko -->
865                            <!-- ko if: !AnyWithCoreRequirements() -->
866                            <th class="col-md-8">Category</th>
867                            <!-- /ko -->
868                            <th class="money-column" data-bind="visible: $root.ShowJoiningFee">
869                                Joining Fee
870                            </th>
871                            <th class="money-column">
872                                Cost
873                            </th>
874                            <th class="money-column money-column-xl" data-bind="visible: $root.ShowEarlyPaymentCost">
875                                Early Payment Cost
876                            </th>
877                            <th class="money-column" data-bind="visible: $root.ShowTokenReward">
878                                Token Award
879                            </th>
880                        </tr>
881                        </thead>
882                        <tbody data-bind="foreach: Memberships">
883                        <tr>
884                            <td data-title="Category">
885                                <span class="category-name" data-bind="text: Category.Name"></span>
886                                <p><small data-bind="text: Category.Description"></small></p>
887                                <div class="text-warning" data-bind="visible: Category.Restrictions">
888                                    <i class="fas fa-exclamation-triangle"></i>
889                                    <span data-bind="text: Category.Restrictions"></span>
890                                </div>
891                            </td>
892                            <td data-title="Requires" data-bind="visible: $parent.AnyWithCoreRequirements">
893                                <div data-bind="visible: Category.CoreCategories().length">
894                                    <p>One of:</p>
895                                    <ul data-bind="foreach: Category.CoreCategories">
896                                        <li data-bind="text: Name"></li>
897                                    </ul>
898                                </div>
899                            </td>
900                            <td data-title="Joining Fee" class="money-column" data-bind="visible: $root.ShowJoiningFee, text: JoiningFee.InclTax.Formatted"></td>
901                            <td data-title="Cost" class="money-column">
902                                <div data-bind="text: Cost.InclTax.Formatted"></div>
903                                <div class="text-muted" data-bind="text: DurationDescription"></div>
904                            </td>
905                            <td data-title="Early Payment" class="money-column" data-bind="visible: $root.ShowEarlyPaymentCost">
906                                <div data-bind="visible: HasEarlyPaymentOption">
907                                    <div data-bind="visible: EarlyPaymentCost.InclTax.Formatted"></div>
908                                    <div>
909                                        <span>deadline </span> <strong data-bind="text: EarlyPaymentDeadlineDaysAbs"></strong> days
910                                        <strong>
911                                            <span data-bind="text: EarlyPaymentDeadlineDays() >= 0? 'before': 'after'"></span>
912                                        </strong>
913                                        <span>start.</span>
914                                    </div>
915                                    <div data-bind="visible: EarlyPaymentOnRenewalsOnly"><strong>Renewals only.</strong></div>
916                                </div>
917                            </td>
918                            <td data-title="Token Award" class="money-column" data-bind="visible: $root.ShowTokenReward, text: TokenReward"></td>
919                        </tr>
920                        </tbody>
921                    </table>
922                </div>
923            </div>
924
925        </div>
926
927        <div data-bind="visible: AreDiscountsAvailable">
928            <a name="Discounts"></a>
929            <h2 class="form-header">Discounts</h2>
930            <p>
931                The following discounts are currently available:
932            </p>
933
934            <div class="table-stacked">
935                <table class="table table-bordered table-striped table-condensed">
936                    <thead>
937                    <tr>
938                        <th class="id-column">ID</th>
939                        <th>Code</th>
940                        <th>Description</th>
941                        <th>Discount</th>
942                        <th>Expiry Date</th>
943                        <th>No. of Items</th>
944                        <th>Criteria</th>
945                    </tr>
946                    </thead>
947                    <tbody data-bind="foreach: Discounts">
948                    <tr>
949                        <td data-title="ID" class="id-column" data-bind="text: ID"></td>
950                        <td data-title="Code" data-bind="text: Code"></td>
951                        <td data-title="Description" data-bind="text: Description"></td>
952                        <td data-title="Discount" data-bind="text: DiscountDescription"></td>
953                        <td data-title="Expiry Date" data-bind="text: ExpiryDate"></td>
954                        <td data-title="No. of Items" data-bind="text: NumberOfItems"></td>
955                        <td data-title="Criteria">
956                            <ul data-bind="foreach: DiscountCriteria">
957                                <li data-bind="text: Description"></li>
958                            </ul>
959                        </td>
960                    </tr>
961                    </tbody>
962                </table>
963            </div>
964        </div>
965    </div>
966</div>
967
968<div id="membership-data" class="data">
969    {"Groups":[{"Title":"Current Membership Rates","ValidFrom":"2026-09-28T00:00:00","Memberships":[{"ID":1,"Name":"Adult Membership","Description":"Adult Membership - Annual","DescriptionWithValidity":"Adult Membership - Annual","Category":{"ID":1,"Name":"Adult Membership","Description":"Membership for a single adult","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As 
969Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":85.0000,"Formatted":"£85.00","FormattedNoSymbol":"85.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":85.0000,"Formatted":"£85.00","FormattedNoSymbol":"85.00"},"IsVATRegistered":false,"Formatted":"£85.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":9,"Name":"Boat Racking","Description":"Boat Racking","DescriptionWithValidity":"Boat Racking","Category":{"ID":7,"Name":"Boat Racking","Description":"Select this subscription to apply for a boat racking space.","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":null,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":true,"StartDate":"User selects: ","EndDate":"Linked duration","DurationUnits":null,"Duration":null,"DurationFormatted":"Linked","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[{"ID":1,"Name":"Adult Membership","Description":"Membership for a single adult","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people aged 18 or over."},{"ID":5,"Name":"Junior Membership","Description":"Membership for individuals under 18 years of age","RoleWhenActive":{"ID":7,"Name":"Member"},"MinimumAge":null,"MaximumAge":18,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people up to the age of 18."},{"ID":4,"Name":"Student/Concession Membership","Description":"Membership at a reduced rate, available to people in full-time education, on low wage or out-of-work benefits. ","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As 
969Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":26,"Restrictions":"Only available to people aged 18 or over."}],"CoreCategoryIDs":[1,5,4],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":11,"Restrictions":null},"IsLinked":true,"LinkedCategories":[{"ID":1,"Name":"Adult Membership"},{"ID":5,"Name":"Junior Membership"},{"ID":4,"Name":"Student/Concession Membership"}],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":80.0000,"Formatted":"£80.00","FormattedNoSymbol":"80.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":80.0000,"Formatted":"£80.00","FormattedNoSymbol":"80.00"},"IsVATRegistered":false,"Formatted":"£80.00"},"RateCalc":{"ID":0,"Name":null},"DurationDescription":"Dates aligned with core membership","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":13,"Name":"Clubhouse Keyholder","Description":"Clubhouse Keyholder","DescriptionWithValidity":"Clubhouse Keyholder","Category":{"ID":11,"Name":"Clubhouse Keyholder","Description":"Request this subscription to apply for a clubhouse key","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":true,"StartDate":"User selects: ","EndDate":"Linked duration","DurationUnits":null,"Duration":null,"DurationFormatted":"Linked","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[{"ID":1,"Name":"Adult Membership","Description":"Membership for a single adult","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people aged 18 or over."},{"ID":4,"Name":"Student/Concession Membership","Description":"Membership at a reduced rate, available to people in full-time education, on low wage or out-of-work benefits. ","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As 
969Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":26,"Restrictions":"Only available to people aged 18 or over."}],"CoreCategoryIDs":[1,4],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":13,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":true,"LinkedCategories":[{"ID":1,"Name":"Adult Membership"},{"ID":4,"Name":"Student/Concession Membership"}],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":true,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":20.0000,"Formatted":"£20.00","FormattedNoSymbol":"20.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":20.0000,"Formatted":"£20.00","FormattedNoSymbol":"20.00"},"IsVATRegistered":false,"Formatted":"£20.00"},"Cost":{"ExclTax":{"Value":0.0000,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":0.0000,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"IsVATRegistered":false,"Formatted":"£0.00"},"RateCalc":{"ID":0,"Name":null},"DurationDescription":"Dates aligned with core membership","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":11,"Name":"Day Membership for Guests","Description":"Day Membership for Guests - day","DescriptionWithValidity":"Day Membership for Guests - day","Category":{"ID":9,"Name":"Day Membership for Guests","Description":"If you want to bring guests to the club, you need to purchase day-membership for each guest.","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"Specific Date","EndDate":"day duration","DurationUnits":"D","Duration":1,"DurationFormatted":"day","IsTemporary":true,"RequiresApproval":false,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":12,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":true,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":6.0000,"Formatted":"£6.00","FormattedNoSymbol":"6.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":6.0000,"Formatted":"£6.00","FormattedNoSymbol":"6.00"},"IsVATRegistered":false,"Formatted":"£6.00"},"RateCalc":{"ID":0,"Name":null},"DurationDescription":"day","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":7,"Name":"Junior Membership","Description":"Junior Membership - Annual","DescriptionWithValidity":"Junior Membership - Annual","Category":{"ID":5,"Name":"Junior Membership","Description":"Membership for individuals under 18 years of age","RoleWhenActive":{"ID":7,"Name":"Member"}
969,"MinimumAge":null,"MaximumAge":18,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":"Only available to people up to the age of 18."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":50.0000,"Formatted":"£50.00","FormattedNoSymbol":"50.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":50.0000,"Formatted":"£50.00","FormattedNoSymbol":"50.00"},"IsVATRegistered":false,"Formatted":"£50.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":6,"Name":"Student/Concession Membership","Description":"Student/Concession Membership - Annual","DescriptionWithValidity":"Student/Concession Membership - Annual","Category":{"ID":4,"Name":"Student/Concession Membership","Description":"Membership at a reduced rate, available to people in full-time education, on low wage or out-of-work benefits. ","RoleWhenActive":{"ID":6,"Name":"Member"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":26,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":50.0000,"Formatted":"£50.00","FormattedNoSymbol":"50.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":50.0000,"Formatted":"£50.00","FormattedNoSymbol":"50.00"},"IsVATRegistered":false,"Formatted":"£50.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":10,"Name":"Supporter","Description":"Supporter - 3 years","DescriptionWithValidity":"Supporter - 3 years","Category":{"ID":8,"Name":"Supporter","Description":"Support Cambridge Canoe Club, especially the build of the clubhouse extension.\nThis subscription itself does not cost anything, but you can add \u0022add-ons\u0022 to donate.","RoleWhenActive":{"ID":9,"Name":"Registered"}
969,"MinimumAge":null,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"3 years duration","DurationUnits":"Y","Duration":3,"DurationFormatted":"3 years","IsTemporary":false,"RequiresApproval":false,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":false,"GroupsCanHaveNames":false,"GroupsRequireNames":false,"GroupNameTerm":null,"FormID":null,"Restrictions":null},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":true,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":0.0000,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":0.0000,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"IsVATRegistered":false,"Formatted":"£0.00"},"RateCalc":{"ID":0,"Name":null},"DurationDescription":"3 years","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":3,"Name":"Family Membership","Description":"Family Membership - Annual","DescriptionWithValidity":"Family Membership - Annual","Category":{"ID":3,"Name":"Family Membership","Description":"For families with both parents and one or more chidren all living at the same address","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":true,"GroupsCanHaveNames":true,"GroupsRequireNames":false,"GroupNameTerm":"Multiple parent family","FormID":null,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":170.0000,"Formatted":"£170.00","FormattedNoSymbol":"170.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":170.0000,"Formatted":"£170.00","FormattedNoSymbol":"170.00"},"IsVATRegistered":false,"Formatted":"£170.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null},{"ID":8,"Name":"Single-Parent Family Membership","Description":"Single-Parent Family Membership - Annual","DescriptionWithValidity":"Single-Parent Family Membership - Annual","Category":{"ID":6,"Name":"Single-Parent Family Membership","Description":"For families with a single parent and one or more chidren all living at the same address","RoleWhenActive":{"ID":9,"Name":"Registered"},"MinimumAge":18,"MaximumAge":null,"GenderIDs":[],"Gender":null,"IsAvailableAtAll":true,"IsAvailableToNewApplicants":true,"IsAvailableToNewApplicantsOnly":false,"IsLinked":false,"StartDate":"As 
969Soon As Possible","EndDate":"Season End","DurationUnits":"Y","Duration":1,"DurationFormatted":"Annual","IsTemporary":false,"RequiresApproval":true,"Section":{"ID":0,"Name":null,"Description":null,"Icon":null,"Colour":null,"SeasonStartDate":null,"IsDefined":false,"IconWithColour":"","IconAndName":"","Label":""},"CoreCategories":[],"CoreCategoryIDs":[],"AddOnOptions":[],"IsGroup":true,"GroupsCanHaveNames":true,"GroupsRequireNames":false,"GroupNameTerm":"Multiple parent family","FormID":null,"Restrictions":"Only available to people aged 18 or over."},"IsLinked":false,"LinkedCategories":[],"CanAutoAccept":false,"AdvertiseFromDate":null,"ValidFromDate":null,"ValidUntilDate":null,"ValidRangeDescription":null,"HasJoiningFee":false,"HasEarlyPaymentOption":false,"EarlyPaymentCost":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"EarlyPaymentDeadlineDays":null,"EarlyPaymentDeadlineDaysAbs":null,"EarlyPaymentOnRenewalsOnly":false,"JoiningFee":{"ExclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":null,"Formatted":null,"FormattedNoSymbol":null},"IsVATRegistered":false,"Formatted":""},"Cost":{"ExclTax":{"Value":85.0000,"Formatted":"£85.00","FormattedNoSymbol":"85.00"},"Tax":{"Value":0.0,"Formatted":"£0.00","FormattedNoSymbol":"0.00"},"InclTax":{"Value":85.0000,"Formatted":"£85.00","FormattedNoSymbol":"85.00"},"IsVATRegistered":false,"Formatted":"£85.00"},"RateCalc":{"ID":1,"Name":"Half-Year"},"DurationDescription":"Annual, ending on 31/Mar each year","IsSubscriptionEligibleForGiftAid":false,"IsJoiningFeeEligibleForGiftAid":false,"TokenReward":null,"TokenExpiry":null}],"Sections":[],"HorseMemberships":[]}],"ShowEarlyPaymentCost":false,"ShowJoiningFee":true,"ShowVATLabel":false,"ShowTokenReward":false,"AreDiscountsAvailable":false,"Discounts":[]}
970</div>
971
972    
973    <!-- Commonly used modals and Knockout templates -->
974<div id="areyousure-modal" class="modal fade">
975    <div class="modal-dialog">
976        <div class="modal-content">
977            <div class="modal-header">
978                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
979                <h4 class="modal-title">Are you sure?</h4>
980            </div>
981            <div class="modal-body">
982                <p></p>
983            </div>
984            <div class="modal-footer">
985                <button type="button" class="btn btn-danger no-button" data-dismiss="modal">No</button>
986                <button type="button" class="btn btn-success yes-button" data-dismiss="modal">Yes</button>                
987            </div>
988        </div>
989    </div>
990</div>
991</partial>
992<div id="message-requiring-ok-modal" class="modal fade">
993    <div class="modal-dialog">
994        <div class="modal-content">
995            <div class="modal-header">
996                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
997                <h4 class="modal-title"></h4>
998            </div>
999            <div class="modal-body">
1000                <p></p>
1001            </div>
1002            <div class="modal-footer">
1003                <button type="button" class="btn btn-primary ok-button" data-dismiss="modal">OK</button>                
1004            </div>
1005        </div>
1006    </div>
1007</div>
1008</partial>
1009<div id="alert-messages" class="clubhouseMessages modal fade">
1010
1011    <div class="modal-dialog">
1012
1013        <!-- Databound class -->
1014        <div class="modal-content" data-bind="css: CssClass">
1015
1016            <div class="modal-header" data-bind="visible: ShowHeader">
1017                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1018
1019                <div role="alert" data-bind="visible: Title">
1020                    <h4 class="modal-title">
1021                        <!-- Databound Title -->
1022                        <span data-bind="text: Title"></span>
1023                    </h4>
1024                </div>
1025            </div>
1026
1027            <div class="modal-body" data-bind="visible: Text">
1028                <div role="alert">                    
1029                    <!-- Databound Text -->
1030                    <span data-bind="html: Text"></span>                    
1031                </div>
1032            </div>
1033
1034            <div class="modal-footer" data-bind="visible: ShowFooter">
1035                <button id="messageModalOKBtn" type="button" class="btn btn-primary ok-btn" data-dismiss="modal">OK</button>
1036            </div>
1037
1038        </div>
1039    </div>
1040</div></partial>
1041<div id="simple-question-modal" class="modal fade" tabindex="-1" role="dialog">
1042    <div class="modal-dialog">
1043        <div class="modal-content">
1044            <div class="modal-header">
1045                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1046                <h4 class="modal-title" data-bind="text: Title"></h4>
1047            </div>
1048            <div class="modal-body">
1049                <div>
1050                    <div class="form-group">
1051                        <span class="help-block" data-bind="text: Question"></span>
1052                    </div>
1053                    <div class="form-group" data-bind="validationElement: Answer">
1054                        <label class="control-label" data-bind="text: AnswerLabel"></label>
1055                        <input type="text" class="form-control" data-bind="value: Answer" maxlength="400" />
1056                        <span class="help-block" data-bind="validationMessage: Answer"></span>
1057                    </div>
1058                </div>
1059            </div>
1060            <div class="modal-footer">
1061                <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button>
1062                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
1063            </div>
1064        </div>
1065    </div>
1066</div>
1067
1068
1069
1070</partial>
1071
1072
1073<div id="messageme-modal" class="modal fade">
1074    <div class="modal-dialog modal-lg">
1075        <div class="modal-content">
1076            <div class="modal-header">
1077                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1078                <h4 class="modal-title"><i class="fa fa-envelope"></i> Message Me</h4>
1079            </div>
1080            <div class="modal-body">
1081                
1082                <p>
1083                    Use this form to send an email to another member. You may only send to one member at a time. 
1084                    Your registered email address will be passed on to this member but you may also include alternative contact details.
1085                </p>
1086                <p>
1087                    Note: Emails sent via the website are not entirely private. A copy of every email is held on the database and this can be 
1088                    accessed by certain club administrators using the Sent Emails page.
1089                </p>      
1090                
1091                <div class="form form-horizontal form-condensed">
1092                    
1093                    <div class="form-group">
1094                        <label class="control-label col-md-3">To</label>
1095                        <div class="col-md-8">
1096                            <p class="form-control-static" data-bind="text: To"></p>
1097                        </div>
1098                    </div>
1099                    <div class="form-group">
1100                        <label class="control-label col-md-3">From</label>
1101                        <div class="col-md-8">
1102                            <p class="form-control-static"></p>
1103                        </div>
1104                    </div>
1105
1106                    <div class="form-group" data-bind="css: { 'has-error': AlternativeEmail.error() !== null }">
1107                        <label class="control-label col-md-3">Alternative contact email</label>
1108                        <div class="col-md-8">
1109                            <input type="email" class="form-control" data-bind="value: AlternativeEmail, enterkey: send" maxlength="100" autofocus="true" />
1110                            <span class="help-block">Another email address which the recipient can use to contact you.</span>
1111                        </div>
1112                    </div>
1113
1114                    <div class="form-group" data-bind="css: { 'has-error': AlternativeContact.error() !== null }">
1115                        <label class="control-label col-md-3">Alternative contact details</label>
1116                        <div class="col-md-8">
1117                            <input type="email" class="form-control" data-bind="value: AlternativeContact, enterkey: send" maxlength="200" />
1118                            <span class="help-block">Other contact details which the recipient can use to contact you e.g. phone number.</span>
1119                        </div>
1120                    </div>
1121
1122                    <div class="form-group" data-bind="css: { 'has-error': Subject.error() !== null }">
1123                        <label class="control-label col-md-3">Subject</label>
1124                        <div class="col-md-8">
1125                            <input type="text" class="form-control" data-bind="value: Subject, enterkey: send" maxlength="200"/>
1126                            <span class="help-block"></span>
1127                        </div>
1128                    </div>
1129
1130                    <!-- HTML Editor for Message Body -->
1131                    <div class="form-group" data-bind="css: { 'has-error': MessageBody.error() !== null }">
1132                        <label class="control-label col-md-3">Message</label>
1133
1134                        <div class="col-md-8">
1135                            <div>
1136                                <div data-bind="component: { name: 'html-editor', 
1137                                                params: { 
1138                                                    content: MessageBody, 
1139                                                    options: { 
1140                                                        minHeight: '300px', 
1141                                                        maxHeight: '300px', 
1142                                                        tabKey: false,
1143                                                        plugins: ['alignment','fontcolor','fontsize','inlinestyle','source'],
1144                                                        styles: true,
1145                                                        stylesClass: 'redactor-styles mail-preview'
1146                                                } } }"></div>
1147                                <span class="help-block" data-bind="validationMessage: MessageBody, visible: MessageBody.error() !== null "></span>
1148                            </div>
1149                        </div>
1150                    </div>
1151                    
1152                    <div class="form-group">
1153                        <div class="col-md-offset-3 col-md-8">
1154                            <div class="checkbox">
1155                                <label>
1156                                    <input type="checkbox" data-bind="checked: CopyToSender, enterkey: send" />
1157                                    Copy this message to my email address
1158                                </label>
1159                            </div>
1160                        </div>                    
1161                    </div>
1162                </div>
1163            </div>
1164
1165            <div class="modal-footer">
1166                <button type="button" class="btn btn-primary btn-success" data-bind="click: send">Send</button>
1167                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
1168            </div>
1169        </div>
1170    </div>
1171</div></partial>
1172<div data-bind="stopBindings: true">
1173    <div id="viewconfig-edit-modal" class="modal fade" tabindex="-1" role="dialog">
1174        <div class="modal-dialog">
1175            <div class="modal-content">
1176                <div class="modal-header">
1177                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1178                    <h4 class="modal-title">Save View Configuration</h4>
1179                </div>
1180                <div class="modal-body">
1181                    <div class="form-horizontal">
1182                        <div class="form-group" data-bind="validationElement: Name">
1183                            <label class="control-label col-md-3">Name</label>
1184                            <div class="col-md-8">
1185                                <input type="text" class="form-control" data-bind="value: Name" />
1186                                <span class="help-block" data-bind="validationMessage: Name"></span>
1187                            </div>
1188                        </div>
1189                        <div class="form-group" data-bind="validationElement: Description">
1190                            <label class="control-label col-md-3">Description</label>
1191                            <div class="col-md-8">
1192                                <textarea class="form-control" data-bind="value: Description" rows="3"></textarea>
1193                                <span class="help-block" data-bind="validationMessage: Description"></span>
1194                            </div>
1195                        </div>
1196                        <div class="form-group" data-bind="validationElement: Code">
1197                            <label class="control-label col-md-3">Code</label>
1198                            <div class="col-md-8">
1199                                <input type="text" class="form-control" data-bind="value: Code" />
1200                                <span class="help-block" data-bind="validationMessage: Code"></span>
1201                                <span class="help-block">
1202                                    The code is used in the URL of the page to identify the view to be displayed.
1203                                    It should be a short text value.
1204                                </span>
1205                            </div>
1206                        </div>
1207                        <div class="form-group" data-bind="validationElement: Owner.ID">
1208                            <label class="col-md-3 control-label">Owner</label>
1209                            <div class="col-md-8">
1210                                <input type="text" class="form-control user-control" data-bind="clubhouseAutoCompleteMulti: { value: Owner.ID, text: Owner.Name, options: { dataSource: lookupMatchingUsers, singleValue: true } }"/>
1211                                <span class="help-block" data-bind="validationMessage: Owner.ID"></span>
1212                            </div>
1213                        </div>
1214                        <div class="form-group">
1215                            <label class="col-md-3 control-label">Share with</label>
1216                            <div class="col-md-8">
1217                                <input type="text" data-bind="clubhouseAutoCompleteMulti: { value: Shares, options: { dataSource: lookupMatchingShareOptions } }" />
1218                                <span class="help-block">
1219                                    Select the members, roles, security levels or member lists with which you wish to share the view config.
1220                                </span>
1221                            </div>
1222                        </div>
1223                        <div class="form-group" data-bind="visible: CanSetDefaultForShares() && Shares().length">
1224                            <label class="control-label col-md-3">Set as Default</label>
1225                            <div class="col-md-8">
1226                                <div data-bind="component: { name: 'radio-group', params: { Value: IsDefaultForShares, Options: [ true, false ] } }"></div>
1227                                <p class="help-block">
1228                                    If set, then this will be the default view for those people with whom it is shared, unless they
1229                                    have set their own personal default.
1230                                </p>
1231                            </div>
1232                        </div>
1233                    </div>
1234                </div>
1235                <div class="modal-footer">
1236                    <button type="button" class="btn btn-primary" data-bind="click: onOK">OK</button>
1237                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
1238                </div>
1239            </div>
1240        </div>
1241    </div>
1242</div>
1243
1244</partial>
1245<style type="text/css">
1246    .selector-panel > div {
1247        overflow-y: scroll;
1248        height: 500px;
1249    }
1250
1251    .styles-panel {
1252        padding-bottom: 10px;
1253        margin-bottom: 10px;
1254        border-bottom: 1px solid #ddd;
1255    }
1256
1257    .search-control {
1258        margin-bottom: 20px;
1259    }
1260
1261    .icon-panel .row {
1262        margin-bottom: 10px;
1263    }
1264
1265    .icon-option {
1266        height: 80px;
1267        text-align: center;
1268        padding: 5px;
1269        cursor: pointer;
1270    }
1271
1272    .icon-option:hover {
1273        background-color: lightblue;
1274    }
1275
1276    .icon-label {
1277        margin-top: 5px;
1278    }
1279</style>
1280
1281<div id="icon-select-modal" class="modal fade">
1282    <div class="modal-dialog modal-lg">
1283        <div class="modal-content">
1284            <div class="modal-header">
1285                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1286                <h4 class="modal-title">Choose an Icon</h4>
1287            </div>
1288            <div class="modal-body">
1289                <div class="clearfix">
1290                    <div class="col-md-3 selector-panel">
1291                        <div>
1292                            <div class="styles-panel">
1293                                <div class="checkbox">
1294                                    <label>
1295                                        <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'solid'" /> Solid
1296                                    </label>
1297                                </div>
1298                                <div class="checkbox">
1299                                    <label>
1300                                        <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'regular'" /> Regular
1301                                    </label>
1302                                </div>
1303                                <div class="checkbox">
1304                                    <label>
1305                                        <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'light'" /> Light
1306                                    </label>
1307                                </div>
1308                                <div class="checkbox">
1309                                    <label>
1310                                        <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'duotone'" /> Duotone
1311                                    </label>
1312                                </div>
1313                                <div class="checkbox">
1314                                    <label>
1315                                        <input type="checkbox" data-bind="checked: SelectedStyles, checkedValue: 'brands'" /> Brands
1316                                    </label>
1317                                </div>
1318                            </div> 
1319                            
1320                            <div data-bind="foreach: Categories">
1321                                <div class="checkbox">
1322                                    <label>
1323                                        <input type="checkbox" data-bind="checked: $parent.SelectedCategories, checkedValue: id" />
1324                                        <span data-bind="text: label"></span>
1325                                    </label>
1326                                </div>
1327                            </div>
1328                        </div>
1329                    </div>
1330                    
1331                    <div class="col-md-9 icon-panel">
1332                        <div>
1333                            <div class="input-group search-control">
1334                                <input type="text" class="form-control" placeholder="Search for..." data-bind="textInput: SearchString">
1335                                <span class="input-group-btn">
1336                                    <button class="btn btn-default" type="button">
1337                                        <i class="far fa-search"></i>
1338                                    </button>
1339                                </span>
1340                            </div>
1341                        </div>
1342
1343                        <div data-bind="foreach: DisplayedIconRows">
1344                            <div class="row" data-bind="foreach: $data">
1345                                <div class="col-md-3 icon-option" data-bind="click: select">
1346                                    <div>
1347                                        <i class="fa-3x" data-bind="css: CssClass"></i>
1348                                    </div>
1349                                    <div class="icon-label" data-bind="text: label"></div>
1350                                </div>
1351                            </div>
1352                        </div>
1353                        
1354                        <div class="no-content" data-bind="visible: !DisplayedIconRows().length">
1355                            No matching icons.
1356                        </div>
1357
1358                        <nav aria-label="Page navigation" data-bind="visible: DisplayedIconRows().length">
1359                            <ul class="pagination">
1360                                <li>
1361                                    <a href="#" aria-label="Previous" data-bind="click: previousPage">
1362                                        <span aria-hidden="true">&laquo;</span>
1363                                    </a>
1364                                </li>
1365                                <!-- ko foreach: Pages -->
1366                                <li data-bind="css: { active: $data === $parent.PageIndex() }">
1367                                    <a href="#" data-bind="text: $data + 1, click: $parent.PageIndex"></a>
1368                                </li>
1369                                <!-- /ko -->
1370                                <li>
1371                                    <a href="#" aria-label="Next" data-bind="click: nextPage">
1372                                        <span aria-hidden="true">&raquo;</span>
1373                                    </a>
1374                                </li>
1375                            </ul>
1376                        </nav>
1377                    </div>
1378                </div>
1379            </div>
1380            <div class="modal-footer">
1381                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
1382            </div>
1383        </div>
1384    </div>
1385</div>
1386
1387</partial>
1388
1389<div data-bind="stopBindings: true">
1390    <div id="document-edit-modal" class="modal fade">
1391        <div class="modal-dialog modal-lg">
1392            <div class="modal-content">
1393                <div class="modal-header">
1394                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1395                    <h4 class="modal-title">
1396                        Edit Document
1397                        <span data-bind="visible: User.ID">
1398                            for <span data-bind="text: User.Name"></span>
1399                        </span>
1400                    </h4>
1401                </div>
1402                <div class="modal-body">
1403                    <div class="alert alert-warning" data-bind="visible: !DiskSpace.IsSpaceAvailable()" style="display: none">
1404                        <i class="fa fa-warning"></i> <strong>Out of disk space!</strong>
1405                        Sorry, your directory is full. You are using <span data-bind="text: DiskSpace.UsedDiskSpace"></span>MB out of <span data-bind="text: DiskSpace.DiskSpaceLimit"></span>MB of allocated disk space.
1406                        Please delete some documents or purchase extra disk space from your vendor.
1407                    </div>
1408
1409                    <div class="alert alert-info" data-bind="visible: DiskSpace.IsSpaceAvailable()" style="display: none">
1410                        <i class="fa fa-info-circle"></i>
1411                        You are currently using <span data-bind="text: DiskSpace.UsedDiskSpace"></span>MB out of <span data-bind="text: DiskSpace.DiskSpaceLimit"></span>MB of allocated disk space.
1412                    </div>
1413
1414                    <form class="form-horizontal">
1415                        <div class="form-group" data-bind="visible: ID()>0">
1416                            <label class="col-md-3 control-label">ID</label>
1417                            <div class="col-md-7">
1418                                <p class="form-control-static" data-bind="text: ID"></p>
1419                            </div>
1420                        </div>
1421
1422                        <!-- validationElement: knockout validation, mostly set up in the js viewmodel -->
1423                        <div class="form-group" data-bind="validationElement: Title">
1424                            <label class="col-md-3 control-label">Title</label>
1425                            <div class="col-md-7">
1426                                <input name="Title" type="text" class="form-control" data-bind="value: Title, enterkey: onOk" maxlength="50" autofocus="true" />
1427                                <span class="help-block" data-bind="validationMessage: Title"></span>
1428                            </div>
1429                        </div>
1430
1431                        <div class="form-group" data-bind="validationElement: Description">
1432                            <label class="col-md-3 control-label">Description</label>
1433                            <div class="col-md-7">
1434                                <textarea class="form-control" rows="3" data-bind="value: Description" maxlength="500"></textarea>
1435                                <span class="help-block" data-bind="validationMessage: Description"></span>
1436                            </div>
1437                        </div>
1438
1439                        <!-- ko if: UploadType() === "Document" -->
1440                        <div data-bind="component: { name: 'entity-entitlements', params: Entitlements }"></div>
1441
1442                        <div class="form-group" data-bind="validationElement: CategoryCount">
1443                            <label class="col-md-3 control-label">Categories</label>
1444                            <div class="col-md-7">
1445                                <div class="form-inline">
1446                                    <div class="inline-component" data-bind="component: { name: 'dropdown-checkbox-list', params: { Selection: CategoryIDs, OptionSet: 'DocumentCategories', OptionText: 'FullPath' } }"></div>
1447                                    <button type="button" class="btn btn-xs btn-success" data-bind="click: addCategory">
1448                                        <i class="fa fa-plus"></i>
1449                                    </button>
1450                                </div>
1451                                <span class="help-block" data-bind="validationMessage: CategoryCount"></span>
1452                            </div>
1453                        </div>
1454                        <!-- /ko -->
1455
1456                        <div class="form-group" data-bind="validationElement: FileData().file">
1457                            <label class="col-md-3 control-label">File</label>
1458                            <div class="col-md-7">
1459                                <div class="form-inline mb-10">
1460
1461                                    <div data-bind="component: {
1462                                        name: 'radio-group',
1463                                        params: {
1464                                            Value: IsNewUpload,
1465                                            Options: [
1466                                                { ID: false, Name: 'Keep Existing' , Icon: 'far fa-cloud' },
1467                                                { ID: true, Name: 'New File', Icon: 'far fa-cloud-upload' }
1468                                            ],
1469                                            OptionsValue: 'ID', OptionsText: 'Name', OptionsIcon: 'Icon',
1470                                            Enable: CanUpload() && DiskSpace.IsSpaceAvailable() && LastUpload() != null
1471                                        }
1472                                    }"></div>
1473
1474                                    <div class="form-inline mb-10 mt-10" data-bind="visible: !IsNewUpload()">
1475                                        <span data-bind="html: LastUpload"></span>
1476                                        <em data-bind="visible: !LastUpload()">(no previous upload)</em>
1477                                    </div>
1478
1479                                    <div class="form-inline mb-10 mt-10" data-bind="visible: IsNewUpload">
1480                                        <div class="form-inline mb-10">
1481                                            <div data-bind="attr: {title: !CanUpload() ? 'You do not have permission to upload documents' : !DiskSpace.IsSpaceAvailable() ? 'No disk space' : ''}">                                                
1482                                                <input type="file" data-bind="enable: CanUpload() && DiskSpace.IsSpaceAvailable(), fileInput: FileData, customFileInput: { buttonClass: CanUpload() && DiskSpace.IsSpaceAvailable() ? 'btn btn-primary' : 'btn btn-primary disabled', fileNameClass: 'form-control'}" />
1483                                            </div>
1484                                            <span class="text-danger help-block" data-bind="validationMessage: FileData().file"></span>
1485                                        </div>
1486                                        <div class="progress" data-bind="visible: !IsScanning()">
1487                                            <div class="progress-bar" role="progressbar" data-bind="style: { width: UploadProgress() + '%' }, attr: { 'aria-valuenow': UploadProgress }, text: UploadProgress() + '%'"
1488                                                 aria-valuemin="0" aria-valuemax="100">
1489                                            </div>
1490                                        </div>
1491                                        <div class="text-muted mt-5" data-bind="visible: IsScanning">
1492                                            <i class="fa fa-spin fa-shield-virus"></i> Scanning file for viruses&hellip;
1493                                        </div>
1494                                    </div>
1495
1496                                    <span class="text-danger help-block" data-bind="visible: !CanUpload()">You do not have permission to upload documents.</span>
1497                                    <span class="text-danger help-block" data-bind="visible: CanUpload() && !DiskSpace.IsSpaceAvailable()">You cannot upload new documents because you are out of disk space.</span>
1498                                    
1499                                </div>                                
1500                            </div>
1501                        </div>
1502
1503                    </form>
1504                </div>
1505                <div class="modal-footer">
1506                    <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button>
1507                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
1508                </div>
1509            </div>
1510        </div>
1511    </div>
1512</div>
1513
1514</partial>
1515<div data-bind="stopBindings: true">
1516    <div id="document-category-edit-modal" class="modal fade">
1517        <div class="modal-dialog">
1518            <div class="modal-content">
1519                <div class="modal-header">
1520                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1521                    <h4 class="modal-title">Edit Document Category</h4>
1522                </div>
1523                <div class="modal-body">
1524                    <div class="form-horizontal">
1525                        <div class="form-group" data-bind="visible: ID()>0">
1526                            <label class="col-md-3 control-label">ID</label>
1527                            <div class="col-md-7">
1528                                <p class="form-control-static" data-bind="text: ID"></p>
1529                            </div>
1530                        </div>
1531
1532                        <div class="form-group">
1533                            <label class="col-md-3 control-label">Parent Category</label>
1534                            <div class="col-md-7">
1535                                <select class="form-control" data-bind="select2: true, value: ParentCategoryID, options: ParentCategoryOptions, optionsValue: 'ID', optionsText: 'FullPath', optionsCaption: '(top-level)'"></select>
1536                            </div>
1537                        </div>
1538
1539                        <div class="form-group" data-bind="validationElement: Name">
1540                            <label class="col-md-3 control-label">Name</label>
1541                            <div class="col-md-7">
1542                                <input type="text" class="form-control" data-bind="textInput: Name, enterkey: onOk" maxlength="200" autofocus="true"/>
1543                                <span class="help-block" data-bind="validationMessage: Name"></span>
1544                            </div>
1545                        </div>
1546
1547                        <div class="form-group" data-bind="validationElement: Description">
1548                            <label class="col-md-3 control-label">Description</label>
1549                            <div class="col-md-7">
1550                                <textarea class="form-control" rows="3" data-bind="textInput: Description" maxlength="200"></textarea>
1551                                <span class="help-block" data-bind="validationMessage: Description"></span>
1552                            </div>
1553                        </div>
1554                    </div>
1555                </div>
1556                <div class="modal-footer">
1557                    <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button>
1558                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
1559                </div>
1560            </div>
1561        </div>
1562    </div>
1563</div>
1564
1565
1566</partial>
1567
1568<div id="registration-modal" class="modal fade" tabindex="-1" role="dialog">
1569    <div class="modal-dialog modal-lg">
1570        <div class="modal-content">
1571            <div class="modal-header">
1572                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1573                <h4 class="modal-title" data-bind="text: (RegistrationWizard() && RegistrationWizard().Title) || 'Register'"></h4>
1574            </div>
1575            <div class="modal-body" data-bind="if: RegistrationWizard()">
1576                <div data-bind="component: { name: 'registration-wizard', params: { RegistrationWizard: RegistrationWizard(), IsPreviewing: IsPreviewing(), doneCallback: register } }"></div>
1577            </div>
1578        </div>
1579    </div>
1580</div>
1581
1582</partial>
1583
1584<style type="text/css">
1585    .slot-linked-subscriptions {
1586        border-top: 1px solid #eee;
1587        margin-top: 5px;
1588        padding: 5px;
1589    }
1590
1591    .slot-linked-subscriptions div {
1592        margin: 2px 0;
1593    }
1594</style>
1595
1596<div id="registration-complete-modal" class="modal fade" tabindex="-1" role="dialog">
1597    <div class="modal-dialog modal-lg">
1598        <div class="modal-content">
1599            <div class="modal-header">
1600                <h4 class="modal-title">Registration Complete</h4>
1601            </div>
1602            <div class="modal-body">
1603                <!-- Alerts -->
1604                <div class="alert alert-info" data-bind="visible: RegisteredUser.ID() === LoggedInUser.ID() && IsNewUser()">
1605                    <i class="fas fa-sign-in-alt"></i>
1606                    You have been automatically logged in.
1607                </div>
1608                <div class="alert alert-info" data-bind="visible: FamilyGroup.ID() && IsNewUser()">
1609                    <i class="fas fa-users"></i>
1610                    <strong data-bind="text: RegisteredUser.Name"></strong> has been added to family group: <strong data-bind="text: FamilyGroup.Name"></strong>
1611                </div>
1612
1613                <!-- Registration Complete Message -->
1614                <p>
1615                    Registration successfully completed for <strong data-bind="text: RegisteredUser.Name"></strong>.
1616                </p>
1617                <div data-bind="html: CompletionMessage"></div>
1618
1619                <!-- Subscriptions Requested -->
1620                <div data-bind="visible: Subscriptions().length">
1621                    <h4 class="form-header">
1622                        Requested Membership Subscriptions
1623                    </h4>
1624
1625                    <div class="alert alert-warning" data-bind="visible: HasSubscriptionsPendingApproval">
1626                        <i class="fas fa-user-check"></i>
1627                        One or more of the requested Membership applications require approval.
1628
1629                        <!-- New user or related user -->
1630                        <span data-bind="visible: IsRelatedUser()">
1631                            You will be emailed if your request has been approved and, at that point, you will be able to view and accept or reject
1632                            the Membership offer and proceed with payment.
1633                        </span>
1634
1635                        <!-- Existing user has registered unrelated user -->
1636                        <span data-bind="visible: !IsRelatedUser()">
1637                            <span data-bind="text: RegisteredUser.Name"></span> will be emailed once the request has been approved and, at that point,
1638                            they will be able to view and accept or reject the Membership offer and proceed with payment.
1639                        </span>
1640                    </div>
1641
1642                    <div class="alert alert-success" data-bind="visible: IsRelatedUser() && HasPaymentsInBasket()">
1643                        <div>
1644                            <i class="fas fa-shopping-basket"></i>
1645                            Subscriptions have been automatically approved and have been added to your basket. Please now proceed there to make payment.
1646                        </div>
1647                        <a class="btn btn-primary mt-10" href="/Finance/Cart">
1648                            <i class="fa fa-shopping-basket"></i> Pay for Subscriptions
1649                        </a>
1650                    </div>
1651
1652                    <div class="table-stacked">
1653                        <table class="table">
1654                            <thead>
1655                                <tr>
1656                                    <th>Reference</th>
1657                                    <th>
1657Name</th>
1658                                    <th>Category</th>
1659                                    <th>Costs</th>
1660                                    <th class="action-column" />
1661                                </tr>
1662                            </thead>
1663                            <tbody data-bind="foreach: Subscriptions">
1664                                <tr>
1665                                    <td data-title="Reference" data-bind="text: ReferenceNumber"></td>
1666                                    <td data-title="Name" data-bind="text: Name"></td>
1667                                    <td data-title="Category">
1668                                        <span data-bind="text: MembershipCategoryName"></span>
1669                                        <div data-bind="html: Status.Formatted"></div>
1670                                        <div data-bind="html: Section.Label"></div>
1671                                    </td>
1672                                    <td>
1673                                        <div data-bind="visible: JoiningFee.InclTax.Value">
1674                                            <strong>Joining Fee</strong>
1675                                            <span class="label-cost" data-bind="text: JoiningFee.InclTax.Formatted"></span>
1676                                        </div>
1677                                        <div data-bind="visible: Cost.InclTax.Value">
1678                                            <strong>Cost</strong>
1679                                            <span class="label-cost">
1680                                                <span data-bind="text: Cost.InclTax.Formatted"></span>
1681                                            </span>
1682                                            <span data-bind="visible: HasEarlyPaymentOption">
1683                                                /
1684                                                <span class="label-cost" data-bind="attr: { title: 'Early payment discount. Deadline: ' + EarlyPaymentDeadline() + ' (inclusive)' }">
1685                                                    <i class="fa fa-hourglass-half"></i>
1686                                                    <span data-bind="text: EarlyPaymentCost.InclTax.Formatted"></span>
1687                                                </span>
1688                                            </span>
1689                                        </div>
1690                                        <div data-bind="foreach: AddOns">
1691                                            <div>
1692                                                <strong data-bind="text: Name"></strong>
1693                                                <span class="label-cost" data-bind="text: Cost.Cost.Formatted"></span>
1694                                            </div>
1695                                        </div>
1696                                    </td>
1697                                    <td>
1698                                        <a class="btn btn-xs btn-info" data-bind="attr: { href: '/Subscriptions/View?id=' + ID() }, visible: !IsGroup() && !IsLinked()">
1699                                            <i class="fa fa-search"></i> View
1700                                        </a>
1701
1702                                        <a class="btn btn-xs btn-info" data-bind="attr: { href: '/Subscriptions/View?id=' + ID() }, visible: IsGroup">
1703                                            <i class="fa fa-users"></i> Manage
1704                                        </a>
1705                                    </td>
1706                                </tr>
1707                            </tbody>
1708                        </table>
1709                    </div>
1710                </div>
1711
1712                <!-- Group Subscription Assignment -->
1713                <div data-bind="visible: GroupSubscriptions().length">
1714                    <h4 class="form-header">
1715                        Group Subscriptions
1716                    </h4>
1717
1718                    <div data-bind="foreach: GroupSubscriptions">
1719                        <h5 class="form-header" data-bind="visible: $parent.GroupSubscriptions().length > 1">
1720                            <span data-bind="text: MembershipCategoryName"></span> - <span data-bind="text: User.Name"></span>
1721                            <small data-bind="visible: GroupName">
1722                                <strong data-bind="text: GroupNameTerm"></strong>: <span data-bind="text: GroupName"></span>
1723                            </small>
1724                        </h5>
1725                        <p>
1726                            You have requested one or more group Membership subscriptions.  You should now use the 
1727                            register buttons below to add additional members into the available slots. 
1728                        </p>
1729
1730                        <div class="table-stacked">
1731                            <table class="table table-bordered">
1732                                <thead>
1733                                    <tr>
1734                                        <th class="id-column">No.</th>
1735                                        <th>Membership</th>
1736                                        <th></th>
1737                                    </tr>
1738                                </thead>
1739                                <tbody data-bind="foreach: Slots">
1740                                    <tr>
1741                                        <td data-title="No." data-bind="text: Ordinal()+1"></td>
1742                                        <td data-title="Membership">
1743                                            <div data-bind="visible: Assignee.ID">
1744                                                <div class="assignee">
1745                                                    <span data-bind="text: Assignee.Name"></span>
1746                                                </div>
1747                                                <div class="assigned-category">
1748                                                    <span data-bind="text: AssignedMembershipCategoryName"></span>
1749                                                </div>
1750                                        
1751                                                <div class="slot-linked-subscriptions" data-bind="foreach: LinkedSubscriptions, visible: LinkedSubscriptions().length">
1752                                                    <div>
1753                                                        <span data-bind="html: Section.IconWithColour"></span> <span data-bind="text: MembershipCategoryName"></span>
1754                                                    </div>
1755                                                </div>
1756                                            </div>
1757                                            <div data-bind="visible: !Assignee.ID()">
1758                                                <div>One of:</div>
1759                                                <ul data-bind="foreach: CategoryOptions">
1760                                                    <li data-bind="text: Name"></li>
1761                                                </ul>
1762                                            </div>
1763                                        </td>
1764                                        <td>
1765                                            <div data-bind="visible: !Assignee.ID() && !$parent.IsApplicantAssigned()">
1766                                                <div class="btn-group btn-group-sm" data-bind="visible: CategoryOptions().length > 1">
1767                                                    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1768                                                        <i class="fa fa-user"></i>
1769                                                        Assign to me
1770                                                        <span class="caret"></span>
1771                                                    </button>
1772                                                    <ul class="dropdown-menu" data-bind="foreach: CategoryOptions">
1773                                                        <li>
1774                                                            <a href="#" data-bind="text: Name, click: function() { $parents[1].assignToMe($parent, ID()); }"></a>
1775                                                        </li>
1776                                                    </ul>
1777                                                </div>
1778                                                <div data-bind="visible: CategoryOptions().length === 1">
1779                                                    <button type="button" class="btn btn-sm btn-primary" data-bind="click: function() { $parent.assignToMe($data, CategoryOptions()[0].ID()); }">
1780                                                        <i class="fa fa-user"></i>
1781                                                        Assign to me
1782                                                    </button>
1783                                                </div>
1784
1785                                            </div>
1786                                                                                    
1787                                            <button type="button" class="btn btn-sm btn-success" data-bind="click: $parent.assignSlot, visible: !Assignee.ID()">
1788   	                                            <i class="fa fa-user-plus"></i>
1789       	                                        Register Another Member
1790           	                                </button>
1791
1792                                            <div data-bind="visible: Assignee.ID">
1793                                                <button type="button" class="btn btn-sm btn-success" data-bind="visible: CanAddLinkedSubscription, click: $parent.addLinkedSubscription">
1794                                                    <i class="fas fa-link"></i> Add Linked Subscription
1795                                                </button>
1796                                            </div>
1797										</td>
1798                                    </tr>
1799                                </tbody>
1800                            </table>
1801                        </div>
1802                    </div>
1803                </div>
1804
1805                <!-- Next Steps -->
1806                <div data-bind="visible: NextSteps().length">
1807                    <h4 class="form-header">
1808                        Next Steps
1809                    </h4>
1810
1811                    <div class="list-group" data-bind="foreach: NextSteps">
1812                        <a class="list-group-item" data-bind="attr: { href: FullLinkURL }">
1813                            <h4 class="list-group-item-heading">
1814                                <i data-bind="css: GlyphClass"></i>
1815                                <span data-bind="text: Caption"></span>
1816                            </h4>
1817                            <p class="list-group-item-text" data-bind="text: Description"></p>
1818                        </a>
1819                    </div>
1820                </div>
1821            </div>
1822        </div>
1823    </div>
1824</div>
1825
1826
1827
1828<div id="add-linked-subscription-modal" class="modal fade" tabindex="-1" role="dialog">
1829    <div class="modal-dialog modal-lg">
1830        <div class="modal-content">
1831            <div class="modal-header">
1832                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1833                <h4 class="modal-title">Request Linked Membership</h4>
1834            </div>
1835            <div class="modal-body">
1836                <div class="form-horizontal">
1837                    <div class="form-group" data-bind="validationElement: SelectedOption">
1838                        <label class="col-md-3 control-label">Membership Category</label>
1839                        <div class="col-md-8">
1840                            <div data-bind="component: { 
1841                                             name: 'linked-membership-category-dropdown', 
1842                                             params: { 
1843                                                SubscriptionID: SubscriptionID,
1844                                                HasOptions: HasOptions, 
1845                                                SelectedOption: SelectedOption } }"></div>
1846                            <span class="help-block" data-bind="validationMessage: SelectedOption"></span>
1847
1848                            <div data-bind="if: Request()">
1849                                <!-- Cost Calculation -->
1850                                <div data-bind="component: { 
1851                                                name: 'membership-term-info', 
1852                                                params: { 
1853                                                    TermOption: Request().TermOption } }"></div>
1854                            </div>
1855                        </div>
1856                    </div>
1857
1858                    <div data-bind="if: Request()">
1859                        <!-- Form -->
1860                        <div class="mt-10" 
1861                             data-bind="component: { 
1862                                            name: 'membership-request-form-entry', 
1863                                            params: { 
1864                                                MembershipCategoryOption: Request().MembershipCategoryOption,
1865                                                Form: Request().Form } },
1866                                        visible: Request().Form"></div>
1867
1868                        <!-- Add-ons -->
1869                        <div class="mt-10 mb-10" 
1870                             data-bind="component: { 
1871                                            name: 'membership-addons-selector', 
1872                                            params: { 
1873                                                Membership: Request
1873().Membership, 
1874                                                IsRelatedUser: true,
1875                                                AddOnsOffered: Request().AddOnsOffered,
1876                                                SelectedAddOns: Request().AddOns } },
1877                                        visible: Request().AddOnsOffered"></div>
1878                    </div>
1879                </div>
1880            </div>
1881            <div class="modal-footer">
1882                <div class="checkbox pull-left" data-bind="visible: IsAdmin">
1883                    <label>
1884                        <input type="checkbox" data-bind="checked: SendEmails" />
1885                        Send Notification Emails
1886                    </label>
1887                </div>
1888
1889                <button type="button" class="btn btn-primary" data-bind="click: execute">OK</button>
1890                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
1891            </div>
1892        </div>
1893    </div>
1894</div>
1895
1896</partial>
1897</partial>
1898
1899<div id="add-page-to-menu-modal" class="modal fade" tabindex="-1" role="dialog">
1900    <div class="modal-dialog">
1901        <div class="modal-content">
1902            <div class="modal-header">
1903                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
1904                <h4 class="modal-title">Add Page to Main Menu</h4>
1905            </div>
1906            <div class="modal-body">
1907                <div class="form-horizontal">
1908                    <div class="form-group" data-bind="validationElement: URL">
1909                        <label class="control-label col-md-3">Page URL</label>
1910                        <div class="col-md-8">
1911                            <input type="text" class="form-control" data-bind="value: URL" maxlength="1000" />
1912                            <span class="help-block" data-bind="validationMessage: URL"></span>
1913                        </div>
1914                    </div>
1915
1916                    <div class="form-group" data-bind="validationElement: Caption">
1917                        <label class="control-label col-md-3">Caption</label>
1918                        <div class="col-md-8">
1919                            <input type="text" class="form-control" data-bind="value: Caption" maxlength="200" />
1920                            <span class="help-block" data-bind="validationMessage: Caption"></span>
1921                        </div>
1922                    </div>
1923                    <div class="form-group" data-bind="validationElement: Description">
1924                        <label class="control-label col-md-3">Description</label>
1925                        <div class="col-md-8">
1926                            <textarea class="form-control" data-bind="value: Description" rows="3" maxlength="500"></textarea>
1927                            <span class="help-block" data-bind="validationMessage: Description"></span>
1928                        </div>
1929                    </div>
1930                    <div class="form-group" data-bind="validationElement: CustomTypeName, visible: !CmsPageID()">
1931                        <!-- Only enable Custom Type Name if this is going to be a new menu item -->
1932                        <label class="control-label col-md-3">Custom Type Name</label>
1933                        <div class="col-md-8">
1934                            <select data-bind="select2: {}, value: CustomTypeName, valueAllowUnset: true, disable: ItemID() || CmsPageID()">
1935                                <option value="">(none)</option>
1936                                    <option value="AnalyseForm">AnalyseForm</option>
1937                                    <option value="BookingCalendar">BookingCalendar</option>
1938                                    <option value="SCTCWebApplication.ViewModel.EditVATRatesIndexMenuItemVM">SCTCWebApplication.ViewModel.EditVATRatesIndexMenuItemVM</option>
1939                                    <option value="SCTCWebApplication.ViewModel.MySubscriptionHistoryIndexMenuItemVM">SCTCWebApplication.ViewModel.MySubscriptionHistoryIndexMenuItemVM</option>
1940                                    <option value="SCTCWebApplication.ViewModel.MySubscriptionsIndexMenuItemVM">SCTCWebApplication.ViewModel.MySubscriptionsIndexMenuItemVM</option>
1941                                    <option value="PrintBlankFormMenuItemVM">PrintBlankFormMenuItemVM</option>
1942                                    <option value="Register">Register</option>
1943                                    <option value="Registration">Registration</option>
1944                                    <option value="SMS">SMS</option>
1945                            </select>
1946                            <span class="help-block" data-bind="validationMessage: CustomTypeName"></span>
1947                        </div>
1948                    </div>
1949                    <div class="form-group" data-bind="validationElement: Icon">
1950                        <label class="control-label col-md-3">Icon</label>
1951                        <div class="col-md-8">
1952                            <div class="form-control-static">
1953                                <div data-bind="component: { name: 'icon-selector', params: { Value: Icon } }"></div>
1954                            </div>
1955                        </div>
1956                    </div>
1957
1958                    <div class="form-group" data-bind="validationElement: GroupID">
1959                        <label class="control-label col-md-3">Menu</label>
1960                        <div class="col-md-8">
1961                            <select class="form-control" data-bind="select2: true, value: GroupID, options: GroupOptions, optionsValue: 'ID', optionsText: 'Name', valueAllowUnset: true, optionsCaption: 'Please select ...'"></select>
1962                            <span class="help-block" data-bind="validationMessage: GroupID"></span>
1963                        </div>
1964                    </div>
1965                    <div class="form-group" data-bind="validationElement: Position">
1966                        <label class="control-label col-md-3">Position</label>
1967                        <div class="col-md-8">
1968                            <select class="form-control" data-bind="select2: true, value: Position, options: PositionOptions, optionsValue: 'ID', optionsText: 'Name', valueAllowUnset: true, optionsCaption: 'Please select ...'"></select>
1969                            <span class="help-block" data-bind="validationMessage: Position"></span>
1970                            <span class="help-block">
1971                                Select the item before which the new menu item should be inserted.
1972                            </span>
1973                        </div>
1974                    </div>
1975                    <div class="form-group">
1976                        <label class="control-label col-md-3">Start new group?</label>
1977                        <div class="col-md-8">
1978                            <div data-bind="component: { name: 'radio-group', params: { Value: IsGroupStart, Options: [ true, false ] } }"></div>
1979                            <span class="help-block">
1980                                If set, then the menu item will have a dividing line inserted above it.
1981                            </span>
1982                        </div>
1983                    </div>
1984                </div>
1985            </div>
1986            <div class="modal-footer">
1987                <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button>
1988                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
1989            </div>
1990        </div>
1991    </div>
1992</div>
1993
1994
1995</partial>
1996<div id="add-redirect-for-page-modal" class="modal fade" tabindex="-1" role="dialog">
1997    <div class="modal-dialog">
1998        <div class="modal-content">
1999            <div class="modal-header">
2000                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
2001                <h4 class="modal-title">Add a Redirect to This Page</h4>
2002            </div>
2003            <div class="modal-body">
2004                <div class="form-horizontal">
2005                    <div class="form-group" data-bind="validationElement: FromURL">
2006                        <label class="control-label col-md-3">Redirect from</label>
2007                        <div class="col-md-8">
2008                            <input type="text" class="form-control" data-bind="value: FromURL, event: { blur: checkFromUrl }" maxlength="200" placeholder="/join" />
2009                            <span class="help-block" data-bind="validationMessage: FromURL"></span>
2010                            <span class="help-block text-danger" data-bind="text: fromUrlServerMessage, visible: fromUrlServerMessage"></span>
2011                            <span class="help-block">
2012                                A short, memorable address, or an old address you're redirecting here, that should bring visitors
2013                                to this page (e.g. /join).
2014                            </span>
2015                        </div>
2016                    </div>
2017                    <div class="form-group" data-bind="validationElement: ToURL">
2018                        <label class="control-label col-md-3">Redirect to</label>
2019                        <div class="col-md-8">
2020                            <input type="text" class="form-control" data-bind="value: ToURL" maxlength="5000" placeholder="/Membership/Overview" />
2021                            <span class="help-block" data-bind="validationMessage: ToURL"></span>
2022                            <span class="help-block">
2023                                Pre-filled with this page's address - edit it if you'd rather redirect to a different page, or need
2024                                to include a query string (e.g. ?id=1). Any #anchor won't have any effect (see note above).
2025                            </span>
2026                        </div>
2027                    </div>
2028                </div>
2029            </div>
2030            <div class="modal-footer">
2031                <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button>
2032                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
2033            </div>
2034        </div>
2035    </div>
2036</div>
2037</partial>
2038
2039<div id="release-notes-modal" class="modal fade" tabindex="-1" role="dialog">
2040    <div class="modal-dialog modal-lg">
2041        <div class="modal-content">
2042            <div class="modal-header">
2043                <button type="button" class="close" aria-label="Close" data-bind="click: onOk"><span aria-hidden="true">&times;</span></button>
2044                <h4 class="modal-title">Release Notes</h4>
2045            </div>
2046            <div class="modal-body">
2047                <div data-bind="foreach: Releases">
2048                    <div class="release">
2049                        <h2 class="form-header">
2050                            Version <span data-bind="text: Version"></span>
2051                            <small data-bind="text: Date"></small>
2052                        </h2>
2053                        <div data-bind="html: Notes"></div>
2054                    </div>
2055                </div>
2056            </div>
2057            <div class="modal-footer">
2058                <button type="button" class="btn btn-default" data-bind="click: onOk">Close</button>
2059            </div>
2060        </div>
2061    </div>
2062</div>
2063
2064
2065
2066
2067<div id="token-balance-topup-modal" class="modal fade" tabindex="-1" role="dialog">
2068    <div class="modal-dialog modal-lg">
2069        <div class="modal-content">
2070            <div class="modal-header">
2071                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
2072                <h4 class="modal-title">Top Up Token Balance</h4>
2073            </div>
2074            <div class="modal-body">
2075                <div class="form-horizontal">
2076                    <div class="form-group">
2077                        <label class="control-label col-md-3">Member</label>
2078                        <div class="col-md-8">
2079                            <p class="form-control-static" data-bind="text: User.Name"></p>
2080                        </div>
2081                    </div>
2082                    <div class="form-group">
2083                        <label class="control-label col-md-3">Current Balance</label>
2084                        <div class="col-md-8">
2085                            <p class="form-control-static" data-bind="text: CurrentBalance.FormattedWithLabel"></p>
2086                        </div>
2087                    </div>
2088
2089                    <!-- Phase 1: amount selection -->
2090                    <div data-bind="visible: Phase() === 'amount'">
2091                        <div class="form-group" data-bind="validationElement: TokenCount">
2092                            <label class="control-label col-md-3">Amount to Credit</label>
2093                            <div class="col-md-8">
2094                                <div data-bind="component: { name: 'token-amount-edit', params: { Value: TokenCount, TokensAreMoney: TokensAreMoney, Enabled: !PurchaseUnits().length } }"></div>
2095                                <div class="mt-5" data-bind="visible: PurchaseUnits().length">
2096                                    <button type="button" class="btn btn-xs btn-default" data-bind="click: reset">0</button>
2097                                    <!-- ko foreach: PurchaseUnits -->
2098                                    <button type="button" class="btn btn-xs btn-default" data-bind="text: '+' + TokenCount.Formatted(), click: $parent.addLot"></button>
2099                                    <!-- /ko -->
2100                                </div>
2101                                <div class="mt-5" data-bind="foreach: AvailableAmou
2101ntOptions, visible: TokensAreMoney() && !PurchaseUnits().length">
2102                                    <button type="button" class="btn btn-xs btn-default" data-bind="text: Caption, click: function() { $parent.TokenCountMoney(Amount); }"></button>
2103                                </div>
2104                                <span class="help-block" data-bind="validationMessage: TokenCount"></span>
2105                                <span class="help-block" data-bind="visible: LimitsMessage, html: LimitsMessage"></span>
2106                            </div>
2107                        </div>
2108
2109                        <div class="form-group" data-bind="visible: !TokensAreMoney() || PurchaseUnits().length">
2110                            <label class="control-label col-md-3">Cost</label>
2111                            <div class="col-md-8">
2112                                <p class="form-control-static" data-bind="text: Cost"></p>
2113                            </div>
2114                        </div>
2115
2116                        <div class="form-group" data-bind="visible: !PaymentMethodOptions().length">
2117                            <div class="col-md-offset-3 col-md-8">
2118                                <span class="help-block text-warning">
2119                                    <i class="fas fa-exclamation-triangle"></i> You do not have any payment methods stored on your account. Please go to your
2120                                    <a data-bind="clubhouseHref: '/UserPage#UserPaymentMethods'" target="_blank">Profile Page</a> to add a payment method.
2121                                </span>
2122                            </div>
2123                        </div>
2124                    </div>
2125
2126                    <!-- Phase 2: payment element -->
2127                    <div data-bind="visible: Phase() === 'payment'">
2128                        <div class="form-group">
2129                            <label class="control-label col-md-3">Amount to Credit</label>
2130                            <div class="col-md-8">
2131                                <p class="form-control-static" data-bind="text: TokenCountWithLabel"></p>
2132                            </div>
2133                        </div>
2134                        <div class="form-group">
2135                            <label class="control-label col-md-3">Cost</label>
2136                            <div class="col-md-8">
2137                                <p class="form-control-static" data-bind="text: Cost"></p>
2138                            </div>
2139                        </div>
2140                        <div class="form-group">
2141                            <div class="col-md-offset-3 col-md-8">
2142                                <div id="token-topup-payment-element"></div>
2143                            </div>
2144                        </div>
2145                    </div>
2146                </div>
2147            </div>
2148            <div class="modal-footer">
2149                <button type="button" class="btn btn-primary" data-bind="click: onContinue, visible: Phase() === 'amount', enable: !IsBusy() && !!PaymentMethodOptions().length">Continue</button>
2150                <button type="button" class="btn btn-default" data-bind="click: onBack, visible: Phase() === 'payment', enable: !IsBusy()">Back</button>
2151                <button type="button" class="btn btn-primary" data-bind="click: onPay, visible: Phase() === 'payment', enable: !IsBusy()">Pay</button>
2152                <button type="button" class="btn btn-default" data-dismiss="modal" data-bind="enable: !IsBusy()">Cancel</button>
2153            </div>
2154        </div>
2155    </div>
2156</div>
2157
2158
2159
2160<div id="eposnow-balance-top-up-modal" class="modal fade" tabindex="-1" role="dialog">
2161    <div class="modal-dialog">
2162        <div class="modal-content">
2163            <div class="modal-header">
2164                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
2165                <h4 class="modal-title">Top Up Credit Balance</h4>
2166            </div>
2167            <div class="modal-body">
2168                <div class="form-horizontal">
2169                    <div class="form-group">
2170                        <label class="control-label col-md-3">Member</label>
2171                        <div class="col-md-8">
2172                            <p class="form-control-static" data-bind="text: User.Name"></p>
2173                        </div>
2174                    </div>
2175                    <div class="form-group">
2176                        <label class="control-label col-md-3">Current Balance</label>
2177                        <div class="col-md-8">
2178                            <p class="form-control-static" data-bind="text: CreditBalance.Formatted"></p>
2179                        </div>
2180                    </div>
2181
2182                    <!-- Phase 1: amount selection -->
2183                    <div data-bind="visible: Phase() === 'amount'">
2184                        <div class="form-group" data-bind="validationElement: Amount">
2185                            <label class="control-label col-md-3">Amount to Credit</label>
2186                            <div class="col-md-8">
2187                                <div class="form-inline">
2188                                    <div class="input-group">
2189                                        <span class="input-group-addon">&#xA3;</span>
2190                                        <input type="text" class="form-control money-control" data-bind="value: Amount"/>
2191                                    </div>
2192                                    <div class="mt-5" data-bind="foreach: AvailableAmountOptions">
2193                                        <button type="button" class="btn btn-xs btn-default" data-bind="text: Caption, click: function() { $parent.Amount(Amount); }"></button>
2194                                    </div>
2195                                </div>
2196                                <span class="help-block" data-bind="validationMessage: Amount"></span>
2197                                <span class="help-block" data-bind="visible: LimitsMessage, html: LimitsMessage"></span>
2198                            </div>
2199                        </div>
2200
2201                        <div class="form-group" data-bind="visible: !PaymentMethodOptions().length">
2202                            <div class="col-md-offset-3 col-md-8">
2203                                <span class="help-block text-warning">
2204                                    <i class="fas fa-exclamation-triangle"></i> You do not have any payment methods stored on your account. Please go to your
2205                                    <a data-bind="clubhouseHref: '/UserPage#UserPaymentMethods'" target="_blank">Profile Page</a> to add a payment method.
2206                                </span>
2207                            </div>
2208                        </div>
2209                    </div>
2210
2211                    <!-- Phase 2: payment element -->
2212                    <div data-bind="visible: Phase() === 'payment'">
2213                        <div class="form-group">
2214                            <label class="control-label col-md-3">Amount</label>
2215                            <div class="col-md-8">
2216                                <p class="form-control-static" data-bind="text: Amount"></p>
2217                            </div>
2218                        </div>
2219                        <div class="form-group">
2220                            <div class="col-md-offset-3 col-md-8">
2221                                <div id="eposnow-topup-payment-element"></div>
2222                            </div>
2223                        </div>
2224                    </div>
2225
2226                </div>
2227            </div>
2228            <div class="modal-footer">
2229                <button type="button" class="btn btn-primary" data-bind="click: onContinue, visible: Phase() === 'amount', enable: !IsBusy() && !!PaymentMethodOptions().length">Continue</button>
2230                <button type="button" class="btn btn-default" data-bind="click: onBack, visible: Phase() === 'payment', enable: !IsBusy()">Back</button>
2231                <button type="button" class="btn btn-primary" data-bind="click: onPay, visible: Phase() === 'payment', enable: !IsBusy()">Pay</button>
2232                <button type="button" class="btn btn-default" data-dismiss="modal" data-bind="enable: !IsBusy()">Cancel</button>
2233            </div>
2234        </div>
2235    </div>
2236</div>
2237
2238
2239
2240
2241
2242<div id="mark-as-paid-modal" class="modal fade" tabindex="-1" role="dialog">
2243    <div class="modal-dialog modal-lg">
2244        <div class="modal-content">
2245            <div class="modal-header">
2246                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
2247                <h4 class="modal-title">Mark as Paid</h4>
2248            </div>
2249            <div class="modal-body">
2250
2251                <!-- ko foreach: ScheduledPaymentWarnings -->
2252                <div class="alert alert-warning">
2253                    <!-- ko if: Code === 'GOCARDLESS' -->
2254                    <h4><i class="fas fa-exclamation-triangle"></i> GoCardless Direct Debit — <!-- ko text: IsRepeating ? 'Repeating Payment' : 'Scheduled Payment' --><!-- /ko --></h4>
2255                    <p><span data-bind="text: IDSummary"></span> <span data-bind="text: Plural ? 'are' : 'is'"></span> scheduled to be collected automatically by GoCardless. <strong>There is no need to record manually unless the GoCardless notification has been missed.</strong></p>
2256                    <p>If you do record it: entering the GoCardless payment reference (e.g. <code>PM...</code>) will allow the duplicate notification to be safely ignored.
2257                        If you use an unknown or incorrect reference, myClubhouse may incorrectly mark the <strong><!-- ko text: IsRepeating ? 'next period\'s payment' : 'next scheduled payment' --><!-- /ko --></strong> as paid when it processes the collection.</p>
2258                    <!-- /ko -->
2259                    <!-- ko if: Code === 'STRIPE' -->
2260                    <h4><i class="fas fa-exclamation-triangle"></i> Stripe — <!-- ko text: IsRepeating ? 'Repeating Payment' : 'Scheduled Payment' --><!-- /ko --></h4>
2261                    <p><span data-bind="text: IDSummary"></span> <span data-bind="text: Plural ? 'are' : 'is'"></span> scheduled to be collected automatically by Stripe. <strong>There is no need to record manually unless the Stripe notification has been missed.</strong></p>
2262                    <p>If you do record it: entering the Stripe charge reference (e.g. <code>ch_...</code>) will allow the duplicate notification to be safely ignored.
2263                        If you use an unknown or incorrect reference, myClubhouse may incorrectly mark the <strong><!-- ko text: IsRepeating ? 'next period\'s payment' : 'next scheduled payment' --><!-- /ko --></strong> as paid when it processes the collection.</p>
2264                    <!-- /ko -->
2265                    <!-- ko if: Code !== 'GOCARDLESS' && Code !== 'STRIPE' -->
2266                    <h4><i class="fas fa-exclamation-triangle"></i> Scheduled Electronic Payment</h4>
2267                    <p><span data-bind="text: IDSummary"></span> <span data-bind="text: Plural ? 'are' : 'is'"></span> scheduled to be collected automatically by <span data-bind="text: MethodName"></span>. <strong>There is no need to record manually unless the provider's notification has been missed.</strong>
2268                        If you mark it as paid and the automatic collection also succeeds, the payment may be recorded twice.</p>
2269                    <!-- /ko -->
2270                </div>
2271                <!-- /ko -->
2272
2273                <!-- ko if: ElectronicPaymentMethodWarning() -->
2274                <div class="alert alert-info">
2275                    <strong>
2276                        <!-- ko if: ElectronicPaymentMethodWarning().Icon --><i data-bind="css: ElectronicPaymentMethodWarning().Icon"></i><!-- /ko -->
2277                        <!-- ko if: ElectronicPaymentMethodWarning().Code === 'GOCARDLESS' -->GoCardless Direct Debit<!-- /ko -->
2278                        <!-- ko if: ElectronicPaymentMethodWarning().Code === 'STRIPE' -->Stripe<!-- /ko -->
2279                        <!-- ko if: ElectronicPaymentMethodWarning().Code !== 'GOCARDLESS' && ElectronicPaymentMethodWarning().Code !== 'STRIPE' --><span data-bind="text: ElectronicPaymentMethodWarning().Name"></span><!-- /ko -->
2280                    </strong> —
2281                    <!-- ko if: ElectronicPaymentMethodWarning().Subject -->RE: <span data-bind="text: ElectronicPaymentMethodWarning().Subject"></span>: <!-- /ko --><!-- ko if: ElectronicPaymentMethodWarning().Code === 'GOCARDLESS' -->GoCardless Direct Debits<!-- /ko --><!-- ko if: ElectronicPaymentMethodWarning().Code === 'STRIPE' -->Stripe payments<!-- /ko --><!-- ko if: ElectronicPaymentMethodWarning().Code !== 'GOCARDLESS' && ElectronicPaymentMethodWarning().Code !== 'STRIPE' -->Payments via <span data-bind="text: ElectronicPaymentMethodWarning().Name"></span><!-- /ko -->
2282                    are normally recorded automatically.
2283                    There is no need to record manually unless <span data-bind="text: ElectronicPaymentMethodWarning().NotificationPhrase"></span> has been missed. Please enter the exact payment reference where possible. Payments with different references must be recorded separately.
2284                </div>
2285                <!-- /ko -->
2286
2287                <div class="alert alert-info" data-bind="visible: AnySelectedIsRepeating" style="display: none">
2288                    <i class="fas fa-info-circle"></i>
2289                    Marking this payment as paid will automatically create the next repeating purchase and due payment.
2290                </div>
2291
2292                <div class="form-horizontal">
2293
2294                    <div class="form-group">
2295                        <label class="col-md-3 control-label">Payee</label>
2296                        <div class="col-md-8">
2297                            <!-- ko if: PayeeOptions().length <= 3 -->
2298                            <div data-bind="component: {
2299                                name: 'radio-group',
2300                                params: {
2301                                    Value: PayeeID,
2302                                    Options: PayeeOptions,
2303                                    OptionsValue: 'ID', OptionsText: 'Name'
2304                                }
2305                            }"></div>
2306                            <!-- /ko -->
2307                            <!-- ko if: PayeeOptions().length > 3 -->
2308                            <select class="form-control" style="max-width: 300px" data-bind="select2: true, value: PayeeID, options: PayeeOptions, optionsValue: 'ID', optionsText: 'Name'"></select>
2309                            <!-- /ko -->
2310                        </div>
2311                    </div>
2312
2313                    <div class="form-group" data-bind="validationElement: PayingUser.ID">
2314                        <label class="col-md-3 control-label">Paying User</label>
2315                        <div class="col-md-6">
2316                            <div class="form-inline">
2317                                <input type="text" class="form-control user-control"
2318                                       data-bind="clubhouseAutoCompleteMulti: {
2319                                        value: PayingUserIDEdit,
2320                                        text: PayingUser.Name,
2321                                        options: { dataSource: lookupMatchingUsers, singleValue: true } }"/>
2322                                <i class="fas fa-gift" style="color: deeppink" data-bind="visible: UserIsEligibleForGiftAid" title="Payer has active Gift Aid declaration"></i>
2323                            </div>
2324                            <span class="help-block" data-bind="validationMessage: PayingUser.ID"></span>
2325                        </div>
2326                    </div>
2327
2328                    <div class="form-group" data-bind="validationElement: PaymentDate">
2329                        <label class="control-label col-md-3">Payment Date</label>
2330                        <div class="col-md-8">
2331                            <input type="text" class="form-control" data-bind="kendoDatePicker: PaymentDate" />
2332                            <span class="help-block" data-bind="validationMessage: PaymentDate"></span>
2333                        </div>
2334                    </div>
2335
2336                    <div class="form-group" data-bind="validationElement: PaymentMethodID">
2337                        <label class="col-md-3 control-label">Payment Method</label>
2338                        <div class="col-md-3">
2339                            <select class="form-control" data-bind="select2: true, value: PaymentMethodID, options: AvailablePaymentMethods, optionsValue: 'ID', optionsText: 'Name'"></select>
2340                            <span class="help-block" data-bind="validationMessage: PaymentMethodID"></span>
2341                        </div>
2342                    </div>
2343
2344                    <div class="form-group" data-bind="validationElement: Amount">
2345                        <label class="col-md-3 control-label">Amount</label>
2346                        <div class="col-md-3">
2347                            <div class="form-inline-flex">
2348                                <span class="input-group">
2349                                    <span class="input-group-addon">&#xA3;</span>
2350                                    <input type="text" class="form-control" data-bind="textInput: Amount" />
2351                                </span>
2352                                <button type="button" class="btn btn-xs btn-default" data-bind="visible: AmountIsEntered, click: function() { Amount(null); }">
2353                                    <i class="fal fa-abacus"></i>
2354                                </button>
2355                            </div>
2356                            <span class="help-block" data-bind="validationMessage: Amount"></span>
2357                            <span class="help-block">Refunds may be recorded using negative amounts.</span>
2358                        </div>
2359                    </div>
2360
2361                    <div class="form-group" data-bind="validationElement: PaymentReferenceText">
2362                        <label class="col-md-3 control-label">Payment Reference</label>
2363                        <div class="col-md-8">
2364                            <div data-bind="component: {
2365                                name: 'radio-group',
2366                                params: {
2367                                    Value: PaymentReferenceIsKnown,
2368                                    Options: [{ Value: true, Label: 'Known', Icon: 'fas fa-hashtag' }, { Value: false, Label: 'Unknown', Icon: 'fas fa-question' }],
2369                                    OptionsValue: 'Value', OptionsText: 'Label', OptionsIcon: 'Icon'
2370                                }
2371                            }"></div>
2372                            <div data-bind="visible: PaymentReferenceIsKnown" style="display: none; margin-top: 8px;">
2373                                <input type="text" class="form-control" data-bind="textInput: PaymentReferenceText" maxlength="100" placeholder="Enter payment reference" />
2374                                <span class="help-block" data-bind="validationMessage: PaymentReferenceText"></span>
2375                            </div>
2376                        </div>
2377                    </div>
2378
2379                    <div class="form-group" data-bind="validationElement: Notes">
2380                        <label class="control-label col-md-3">Notes</label>
2381                        <div class="col-md-8">
2382                            <textarea class="form-control" rows="3" data-bind="value: Notes" maxlength="200"></textarea>
2383                            <span class="help-block" data-bind="validationMessage: Notes"></span>
2384                        </div>
2385                    </div>
2386
2387                    <!-- Allocation of Due Payments -->
2388                    <h4 class="form-header">
2389                        Allocation to Due Payments
2390                    </h4>
2391                    <p>
2392                        Select the due payments that are covered by this received payment.
2393                    </p>
2394
2395                    <!-- Unallocated Amount -->
2396                    <div class="form-horizontal">
2397                        <div class="form-group" data-bind="validationElement: UnallocatedAmount">
2398                            <label class="col-md-3 control-label">Unallocated Amount</label>
2399                            <div class="col-md-7">
2400                                <div class="form-inline">
2401                                    <div class="input-group">
2402                                        <span class="input-group-addon">&#xA3;</span>
2403                                        <input type="text" class="form-control" data-bind="value: UnallocatedAmount" readonly/>
2404                                    </div>
2405                                </div>
2406                                <span class="help-block" data-bind="validationMessage: UnallocatedAmount"></span>
2407                            </div>
2408                        </div>
2409                    </div>
2410
2411                    <div data-bind="validationElement: Allocations">
2412                        <div class="table-stacked">
2413                            <table class="table table-bordered table-striped table-stacked">
2414                                <thead>
2415                                    <tr>
2416                                        <th class="clickable" data-bind="click: function() { AllSelected(!AllSelected()); }">
2417                                            <i data-bind="css: AllSelected()? 'fas fa-check-square text-success': 'fal fa-square'"></i>
2418                                        </th>
2419                                        <th class="id-column">ID</th>
2420                                        <th>Purchaser</th>
2421                                        <th>Purchase</th>
2422                                        <th>Amount</th>
2423                                        <th>Due Date</th>
2424                                        <th class="money-column money-column-lg">Allocated Amount</th>
2425                                    </tr>
2426                                </thead>
2427                                <tbody>
2428                                    <!-- ko foreach: DuePaymentGroups -->
2429                                    <!-- ko if: Name -->
2430                                    <tr>
2431                                        <td colspan="7" class="text-muted small" style="font-style: italic; background: #f5f5f5; padding: 4px 8px; border-top: 2px solid #ddd;">
2432                                            <span data-bind="text: Name"></span>
2433                                            <!-- ko if: IsScheduled -->
2434                                            <span> — scheduled for automatic collection</span>
2435                                            <!-- /ko -->
2436                                        </td>
2437                                    </tr>
2438                                    <!-- /ko -->
2439                                    <!-- ko foreach: Payments -->
2440                                    <tr data-bind="css: { success: IsSelected }">
2441                                        <td class="clickable" data-bind="attr: { rowspan: IsOverallocated()? 2: 1 }, click: toggleSelection">
2442                                            <i data-bind="css: IsSelected()? 'fas fa-check-square text-success': 'fal fa-square'"></i>
2443                                        </td>
2444                                        <td data-title="ID" data-bind="text: ID"></td>
2445                                        <td data-title="Purchaser" data-bind="text: Purchaser.Name, attr: { rowspan: IsOverallocated()? 2: 1 }"></td>
2446                                        <td data-title="Purchase">
2447                                            <p data-bind="text: Purchase"></p>
2448                                            <p>
2449                                                <small class="text-muted" data-bind="text: Description"></small>
2450                                            </p>
2451                                            <!-- ko if: PaymentMethodIcon -->
2452                                            <p class="mb-0">
2453                                                <small class="text-muted"><i data-bind="css: PaymentMethodIcon"></i> <span data-bind="text: PaymentMethodName"></span></small>
2454                                            </p>
2455                                            <!-- /ko -->
2456                                        </td>
2457                                        <td data-title="Amount" class="money-column">
2458                                            <i class="fas fa-tag text-success mr-5" data-bind="visible: IsDiscountApplied"></i>
2459                                            <span data-bind="text: Amount.Formatted"></span>
2460                                        </td>
2461                                        <td data-title="Due Date" data-bind="text: DueDate, attr: { rowspan: IsOverallocated()? 2: 1 }"></td>
2462                                        <td data-title="Allocated Amount" data-bind="validationElement: AllocatedAmount, attr: { rowspan: IsOverallocated()? 2: 1 }">
2463                                            <div class="form-inline-flex">
2464                                                <div class="input-group">
2465                                                    <span class="input-group-addon">&#xA3;</span>
2466                                                    <input type="text" class="form-control currency-control" data-bind="textInput: AllocatedAmount, enable: IsSelected"/>
2467                                                </div>
2468
2469                                                <button type="button" class="btn btn-xs btn-default" data-bind="visible: !$parents[1].AllAllocated(), click: autoAdjust" title="Auto-adjust">
2470                                                    <i class="fal fa-abacus"></i>
2471                                                </button>
2472
2473                                                <i class="ml-5" data-bind="visible: IsProductEligibleForGiftAid.Value,
2474                                                  faIcon: $parents[1].UserIsEligibleForGiftAid()? 'fas fa-gift': 'far fa-gift',
2475                                                  style: { color: $parents[1].UserIsEligibleForGiftAid()? 'deeppink': 'gray' },
2476                                                  attr: { title: $parents[1].UserIsEligibleForGiftAid()? 'Payment is eligible for Gift Aid': 'Payment is not eligible for Gift Aid - no active declaration for payer' }"></i>
2477                                            </div>
2478                                            <span class="help-block" data-bind="validationMessage: AllocatedAmount"></span>
2479                                        </td>
2480                                    </tr>
2481                                    <!-- ko if: IsOverallocated -->
2482                                    <tr data-bind="css: { success: IsSelected }">
2483                                        <td />
2484                                        <td data-bind="validationElement: OverallocationReason">
2485                                            <input type="text" class="form-control" data-bind="value: OverallocationReason" placeholder="Overallocation reason" maxlength="100" />
2486                                            <span class="help-block" data-bind="validationMessage: OverallocationReason"></span>
2487                                        </td>
2488                                        <td class="money-column" data-bind="text: OverallocationAmount"></td>
2489                                    </tr>
2490                                    <!-- /ko -->
2491                                    <!-- /ko -->
2492                                    <!-- /ko -->
2493                                </tbody>
2494                            </table>
2495
2496                            <div class="no-content" data-bind="visible: !AvailableDuePayments().length">
2497                                No due payments.
2498                            </div>
2499                        </div>
2500                        <span class="help-block" data-bind="validationMessage: Allocations"></span>
2501                    </div>
2502
2503                    <!-- ko if: AppliedDiscounts().length -->
2504                    <div class="mt-10">
2505                        <strong><i class="fas fa-tag text-success"></i> Applied Discounts</strong>
2506                        <ul class="list-unstyled mt-5 mb-0">
2507                            <!-- ko foreach: AppliedDiscounts -->
2508                            <li>
2509                                <span data-bind="text: Label"></span>
2510                                <!-- ko if: AffectedDuePaymentIDs().length -->
2511                                <span class="text-muted small ml-5" data-bind="text: '(due payment' + (AffectedDuePaymentIDs().length > 1 ? 's ' : ' ') + AffectedDuePaymentIDs().join(', ') + ')'"></span>
2512                                <!-- /ko -->
2513                                <button type="button" class="btn btn-xs btn-danger ml-5" data-bind="click: function() { $parent.removeDiscount(ID(), HasPaidPayments()) }" title="Remove this discount">
2514                                    <i class="far fa-trash-alt"></i> Remove
2515                                </button>
2516                                <!-- ko if: HasPaidPayments -->
2517                                <span class="text-warning ml-5" title="Some payments for this purchase have already been paid — see warning on remove">
2518                                    <i class="fas fa-exclamation-triangle"></i>
2519                                </span>
2520                                <!-- /ko -->
2521                            </li>
2522                            <!-- /ko -->
2523                        </ul>
2524                    </div>
2525                    <!-- /ko -->
2526                </div>
2527            </div>
2528            <div class="modal-footer">
2529
2530                <div class="pull-left" data-bind="component: { name: 'checkbox', params: { Value: SendEmails, Text: 'Send Notification Emails', Icon: 'fas fa-envelope', Class: 'default' } }"></div>
2531
2532                <button type="button" class="btn btn-default" data-bind="click: applyDiscounts, enable: PayingUser.ID">
2533                    <i class="fas fa-tag"></i>
2534                    Apply Discounts
2535                </button>
2536
2537                <button type="button" class="btn btn-primary" data-bind="click: execute">
2538                    <i class="fas fa-check"></i>
2539                    Mark as Paid
2540                </button>
2541
2542                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
2543            </div>
2544        </div>
2545    </div>
2546</div>
2547
2548<div id="fill-missing-payments-modal" class="modal fade" tabindex="-1" role="dialog">
2549    <div class="modal-dialog">
2550        <div class="modal-content">
2551            <div class="modal-header">
2552                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
2553                <h4 class="modal-title"><i class="fas fa-sync-alt"></i> Fill Missing Payments</h4>
2554            </div>
2555
2556            <div class="modal-body">
2557
2558                <!-- Loading -->
2559                <!-- ko if: phase() === 'loading' -->
2560                <p class="text-center text-muted"><i class="fas fa-spinner fa-spin"></i> Loading preview …</p>
2561                <!-- /ko -->
2562
2563                <!-- Error -->
2564                <!-- ko if: phase() === 'error' -->
2565                <div class="alert alert-danger">
2566                    <strong>Error:</strong> <span data-bind="text: errorMessage"></span>
2567                </div>
2568                <!-- /ko -->
2569
2570                <!-- Preview: ko with handles stats/list; messages use viewmodel-level computed observables -->
2571                <!-- ko if: phase() === 'preview' -->
2572                <!-- ko with: preview() -->
2573                <p>
2574                    Subscription <strong data-bind="text: SubscriptionID"></strong>
2575                    is <strong data-bind="text: SubscriptionStatus"></strong>.
2576                </p>
2577                <table class="table table-condensed">
2578                    <tbody>
2579                        <tr>
2580                            <td>Confirmed payments</td>
2581                            <td><strong data-bind="text: TotalConfirmedPayments"></strong></td>
2582                        </tr>
2583                        <tr>
2584                            <td>Already recorded</td>
2585                            <td><strong data-bind="text: AlreadyRecorded"></strong></td>
2586                        </tr>
2587                        <tr>
2588                            <td>To be recorded</td>
2589                            <td><strong data-bind="text: ToBeRecorded"></strong></td>
2590                        </tr>
2591                    </tbody>
2592                </table>
2593                <!-- ko if: PaymentSubscriptions.length > 0 -->
2594                <p><strong>Payment subscription(s):</strong></p>
2595                <ul data-bind="foreach: PaymentSubscriptions">
2596                    <li>
2597                        <span data-bind="text: Description"></span>
2598                        — <span data-bind="text: $data.AmountFormatted || Amount.toFixed(2)"></span>
2599                        <!-- ko if: !IsActive -->
2600                        <span class="label label-warning">inactive</span>
2601                        <!-- /ko -->
2602                    </li>
2603                </ul>
2604                <!-- /ko -->
2605                <!-- /ko -->
2606                <!-- Messages are outside ko with so they use viewmodel-level computed observables -->
2607                <!-- ko if: needsDeactivation() -->
2608                <div class="alert alert-warning">
2609                    <strong>All payments are recorded</strong>, but the subscription is no longer active
2610                    and at least one payment subscription is still marked active.
2611                    Click Proceed to deactivate it and cancel any future due payments.
2612                </div>
2613                <!-- /ko -->
2614                <!-- ko if: !needsDeactivation() && preview() && preview().ToBeRecorded === 0 -->
2615                <div class="alert alert-info">All confirmed payments are already recorded.</div>
2616                <!-- /ko -->
2617                <!-- /ko -->
2618
2619                <!-- Distribution question: use ko with to unwrap -->
2620                <!-- ko if: phase() === 'question' -->
2621                <!-- ko with: question() -->
2622                <p>
2623                    Payment <strong data-bind="text: PaymentID"></strong>
2624                    on <strong data-bind="text: PaymentDate"></strong>
2625                    is for <strong data-bind="text: AmountFormatted"></strong>.
2626                </p>
2627                <p>This amount doesn't match the sum of the payment subscriptions. Please enter how the amount should be distributed:</p>
2628                <table class="table table-condensed">
2629                    <thead>
2630                        <tr>
2631                            <th>Payment Subscription</th>
2632                            <th class="money-column">Suggested</th>
2633                            <th class="money-column">Actual Amount</th>
2634                        </tr>
2635                    </thead>
2636                    <tbody data-bind="foreach: PaymentSubscriptions">
2637                        <tr>
2638                            <td data-bind="text: Description"></td>
2639                            <td class="money-column" data-bind="text: SuggestedAmount.toFixed(2)"></td>
2640                            <td class="money-column">
2641                                <input type="number" step="0.01" min="0" class="form-control input-sm"
2642                                       data-bind="value: Amount, valueUpdate: 'afterkeydown'"
2643                                       placeholder="0.00" />
2644                            </td>
2645                        </tr>
2646                    </tbody>
2647                    <tfoot>
2648                        <tr>
2649                            <td><strong>Total entered</strong></td>
2650                            <td></td>
2651                            <td class="money-column">
2652                                <strong data-bind="text: $root.distributionTotal().toFixed(2), css: { 'text-danger': !$root.distributionTotalValid() }"></strong>
2653                            </td>
2654                        </tr>
2655                    </tfoot>
2656                </table>
2657                <p class="text-muted small">Enter 0 for any subscription whose payment has not been collected — it will be marked inactive.</p>
2658                <!-- /ko -->
2659                <!-- /ko -->
2660
2661                <!-- Complete / log -->
2662                <!-- ko if: phase() === 'complete' -->
2663                <!-- ko if: log().length > 0 -->
2664                <p><strong>Actions performed:</strong></p>
2665                <ul data-bind="foreach: log">
2666                    <li data-bind="text: $data"></li>
2667                </ul>
2668                <!-- /ko -->
2669                <!-- ko if: log().length === 0 -->
2670                <p class="text-muted">No payments required recording.</p>
2671                <!-- /ko -->
2672                <!-- /ko -->
2673
2674            </div>
2675
2676            <div class="modal-footer">
2677                <span class="pull-left text-info" data-bind="visible: processing">
2678                    <i class="fas fa-spinner fa-spin"></i> Processing …
2679                </span>
2680
2681                <!-- Preview footer -->
2682                <!-- ko if: phase() === 'preview' -->
2683                <!-- ko if: canProceed() -->
2684                <div class="checkbox pull-left" style="margin-top:6px">
2685                    <span data-bind="component: { name: 'checkbox', params: { Value: sendEmails, Text: 'Send Notification Emails', Icon: 'fas fa-envelope', Class: 'default' } }"></span>
2686                </div>
2687                <!-- /ko -->
2688                <button type="button" class="btn btn-primary"
2689                        data-bind="click: onProceed, enable: canProceed() && !processing()">
2690                    <i class="fas fa-play"></i> Proceed
2691                </button>
2692                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
2693                <!-- /ko -->
2694
2695                <!-- Distribution question footer -->
2696                <!-- ko if: phase() === 'question' -->
2697                <button type="button" class="btn btn-primary"
2698                        data-bind="click: onSubmitDistribution, enable: distributionTotalValid() && !processing()">
2699                    <i class="fas fa-check"></i> Apply Distribution
2700                </button>
2701                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel (Save Progress)</button>
2702                <!-- /ko -->
2703
2704                <!-- Complete footer -->
2705                <!-- ko if: phase() === 'complete' -->
2706                <button type="button" class="btn btn-primary" data-bind="click: onClose">
2707                    <i class="fas fa-check"></i> Done
2708                </button>
2709                <!-- /ko -->
2710
2711                <!-- Error footer -->
2712                <!-- ko if: phase() === 'error' -->
2713                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
2714                <!-- /ko -->
2715            </div>
2716        </div>
2717    </div>
2718</div>
2719
2720
2721<script id="loading-template" type="text/html">
2722
2723    <div class="loader-inner ball-grid-pulse">
2724        <div></div>
2725        <div></div>
2726        <div></div>
2727        <div></div>
2728        <div></div>
2729        <div></div>
2730        <div></div>
2731        <div></div>
2732        <div></div>
2733    </div>
2734
2735</script>
2735
2736
2737</partial>
2738
2739<script id="table-template" type="text/html">
2740
2741    <div data-bind="template: { name: 'table-header-template' }"></div>
2742    
2743    <!-- ko if: $data.CustomHeaderTemplate -->
2744    <div data-bind="template: { name: $data.CustomHeaderTemplate }"></div>
2745    <!-- /ko -->
2746
2747    <!-- The table itself -->
2748    <div class="table-stacked">
2749        <table class="table table-bordered table-striped table-hover table-sticky">
2750            <thead data-bind="component: {
2751                                name: 'header-row',
2752                                params: {
2753                                    HasActionColumn: $data.ActionCellTemplate,
2754                                    ActionColumnCaption: $data.ActionColumnCaption,
2755                                    ActionColumnTooltip: $data.ActionColumnTooltip,
2756                                    ColumnConfig: Table.ColumnConfig,
2757                                    sortChange: Table.sortChange,
2758                                    columnChange: Table.columnChange,
2759                                    selectAll: Table.selectAllRows,
2760                                    selectAllValue: Table.selectAllObservable } }"></thead>
2761
2762            <tbody data-bind="foreach: Items">
2763                <tr>
2764                    <!-- ko if: $parent.PrependCellTemplate -->
2765                    <td data-bind="template: { name: $parent.PrependCellTemplate }"></td>
2766                    <!-- /ko -->
2767                    <!-- ko foreach: $parent.Table.ColumnConfig.Columns -->
2768                    <td data-bind="visible: IsActive, attr: { 'data-title': Caption }">
2769                        <span data-bind="visible: !Template(), html: get($parent)"></span>
2770                        <span data-bind="if: Template">
2771                            <span data-bind="template: { name: Template, data: { Row: $parent, Column: $data } }"></span>
2772                        </span>
2773                    </td>
2774                    <!-- /ko -->
2775                    <!-- ko if: $parent.ActionCellTemplate -->
2776                    <td data-bind="template: { name: $parent.ActionCellTemplate }" class="hidden-print"></td>
2777                    <!-- /ko -->
2778                </tr>
2779            </tbody>
2780        </table>
2781    </div>
2782
2783    <div data-bind="template: { name: 'table-footer-template' }"></div>
2784
2785</script>
2785
2786
2787
2788
2789
2790<script id="table-header-template" type="text/html">
2791
2792    <!-- Filter Bar -->
2793    <div data-bind="component: {
2794                        name: 'filterbar',
2795                        params: {
2796                            FilterBar: Table.FilterBar,
2797                            refresh: Table.refresh } }"></div>
2798
2799    <!-- Column Sorter - only shown when table stacked -->
2800    <div data-bind="component: {
2801                        name: 'column-sorter',
2802                        params: {
2803                            ColumnConfig: Table.ColumnConfig,
2804                            AlwaysDisplay: $data.PermanentColumnSorter,
2805                            sortChange: Table.sortChange } }"></div>
2806
2807    <div class="clearfix hidden-print">
2808        <div class="result-count pull-left">
2809            <strong data-bind="text: Table.Pagination.ItemCount"></strong> rows found. Click column headings to sort, hold down shift key when clicking to add additional sort.
2810        </div>
2811
2812        <div class="pull-right">
2813            <!-- View Selector -->
2814            <!-- ko if: Table.ViewCode -->
2815            <div class="clearfix" style="margin-bottom: 4px">
2816                <div class="pull-right">
2817                    <div data-bind="component: {
2818                                        name: 'view-config-selector',
2819                                        params: {
2820                                            ViewCode: Table.ViewCode,
2821                                            ViewConfigCode: Table.ViewConfigCode,
2822                                            ColumnConfig: Table.ColumnConfig.ColumnString,
2823                                            FilterConfig: Table.FilterBar.FilterString,
2824                                            Arguments: Table.CustomArgsForView,
2825                                            PageSize: Table.Pagination.PageSize,
2826                                            DefaultColumnConfig: Table.ColumnConfig.DefaultColumnConfig, 
2827                                            DefaultFilterConfig: Table.FilterBar.DefaultFilterConfig,
2828                                            viewChange: Table.refresh } }"></div>
2829                </div>
2830            </div>
2831            <!-- /ko -->
2832            <div class="clearfix" style="margin-bottom: 4px">
2833                <div class="pull-right">
2834                    <!-- ko if: $data.ExportBaseURL -->
2835                    <!-- Export Buttons -->
2836                    <div data-bind="component: {
2837                                        name: 'export-buttons',
2838                                        params: {
2839                                            BaseURL: ExportBaseURL,
2840                                            QueryString: Table.QueryString } }, visible: !$data.CanExport || $data.CanExport()"></div>
2841                    <!-- /ko -->
2842
2843                    <!-- Optional action button(s) supplied by the consuming page -->
2844                    <!-- ko if: $data.ActionButtonTemplate -->
2845                    <span data-bind="template: { name: $data.ActionButtonTemplate }" style="display: inline-block; margin-right: 4px; vertical-align: top"></span>
2846                    <!-- /ko -->
2847
2848                    <!-- Column Selector -->
2849                    <div style="display: inline-block; vertical-align: top" data-bind="component: {
2850                                        name: 'column-selector',
2851                                        params: {
2852                                            ColumnConfig: Table.ColumnConfig,
2853                                            columnChange: Table.columnChange } }"></div>
2854                </div>
2855            </div>
2856        </div>
2857    </div>
2858
2859</script>
2859
2860
2861</partial>
2862<script id="table-footer-template" type="text/html">
2863
2864    <!-- Pagination Controls -->
2865    <div data-bind="component: {
2866                        name: 'pagination',
2867                        params: {
2868                            Pagination: Table.Pagination,
2869                            refresh: Table.refresh } }"></div>
2870
2871    <!-- Totals -->
2872    <!-- ko if: Table.ColumnConfig.ColumnTotals().length -->
2873    <div data-bind="component: {
2874                        name: 'column-totals',
2875                        params: {
2876                            Count: Table.Pagination.ItemCount,
2877                            ColumnConfig: Table.ColumnConfig } }"></div>
2878    <!-- /ko -->
2879
2880</script>
2880
2881
2882</partial>
2883</partial>
2884
2885<div id="map-location-modal" class="modal fade" tabindex="-1" role="dialog">
2886    <div class="modal-dialog modal-lg">
2887        <div class="modal-content">
2888            <div class="modal-header">
2889                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
2890                <h4 class="modal-title">Map Location</h4>
2891            </div>
2892            <div class="modal-body">
2893                <div data-bind="clubhouseMap: { centre: MapCentre, markers: [ { Lat: Latitude, Lng: Longitude } ], refresh: Refresh, map: MapObject }" style="height: 500px;"></div>
2894
2895                <p class="mt-10 mb-10">
2896                    Drag the map around to position the marker. 
2897                </p>
2898
2899                <div class="form-horizontal">
2900                    <div class="form-group">
2901                        <label class="control-label col-md-3">Search for Location</label>
2902                        <div class="col-md-8">
2903                            <div class="input-group">
2904                                <input type="text" class="form-control" data-bind="textInput: SearchText, enterkey: search" /> 
2905                                <span class="input-group-btn">
2906                                    <button type="button" class="btn btn-default" data-bind="click: search">
2907                                        <i class="fas fa-search"></i>
2908                                    </button>
2909                                </span>
2910                            </div>
2911                            <span class="help-block" data-bind="visible: IsSearching">
2912                                <i class="fas fa-spinner fa-spin mr-5"></i>
2913                                Searching ...
2914                            </span>
2915                            <ul class="mt-5" data-bind="foreach: SearchResults, visible: SearchResults().length">
2916                                <li>
2917                                    <a href="#" data-bind="click: $parent.selectSearchResult, text: Description"></a>
2918                                </li>
2919                            </ul>
2920                        </div>
2921                    </div>
2922                </div>
2923
2924            </div>
2925            <div class="modal-footer">
2926                <button type="button" class="btn btn-primary" data-bind="click: onOk">OK</button>
2927                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
2928            </div>
2929        </div>
2930    </div>
2931</div>
2932
2933
2934
2935
2936</partial>
2937</div>
2938
2939    <footer>
2940        
2941
2942
2943<!-- This is _Footer.cshtml -->
2944<div class="hidden-print clearfix ml-10 mr-10">
2945
2946    <span class="pull-left">
2947
2948        <img src="https://www.cambridgecanoeclub.org.uk/Client/Images/Site/ccc_logo_nobg_sml.png" class="visible-sm-inline visible-md-inline visible-lg-inline no-border footer-image"/>
2949
2950    </span>
2951
2952    <span class="pull-right">
2953
2954        <img src="https://www.cambridgecanoeclub.org.uk/Client/Images/Site/PE_affiliated_sm_2.jpg" class="visible-sm-inline visible-md-inline visible-lg-inline no-border footer-image"/>
2955
2956    </span>
2957
2958    <div>
2959        Copyright &copy; 2026 <a href="http://www.simmetrics.co.uk" title="Simmetrics Ltd">Simmetrics Ltd</a>. All rights reserved.
2960        <a href="/Home/TermsAndConditions">Terms & Conditions</a>.
2961        <a href="/Home/OpenSource">Open Source Attribution</a>.
2962        <br />
2963        NOTICE: We collect personal information on this site.
2964        To learn more about how we use your information, see our <a href="/PrivacyPolicy" title="Privacy Policy" target="_blank">Privacy Policy</a>.
2965        <a href="#" title="Cookie Preferences" onclick="if (window.CookieConsent) { CookieConsent.openPreferences(); } return false;">Cookie Preferences</a>.
2966        <br />
2967
2968        Powered by <a href="http://www.MyClubhouse.co.uk">my<strong>Clubhouse</strong>&reg; - Online Club Membership Administration Software for Club Management</a>
2969        Version 6.2.19.18
2970        <br />
2971
2972        
2973
2974
2975
2976
2977</partial>
2978        
2979
2980</partial>
2981    </div>
2982
2983
2984        <div class="footer-app-links">
2985            <a href="https://apps.apple.com/us/app/myclubhouse/id6450174931">
2986                <img alt="Download on the App Store" src="/Content/images/AppleAppStoreBadge.png" />
2987            </a>
2988            <a href="https://play.google.com/store/apps/details?id=uk.co.simmetrics.myclubhouse">
2989                <img alt="Get it on Google Play" src="/Content/images/GooglePlayBadge.png" />
2990            </a>
2991        </div>
2992
2993</div>
2994
2995<div class="visible-print-block">
2996    Printed from my<strong>Clubhouse</strong>&reg; - Online Club Membership Administration Software for Club Management.<br />
2997    www.myclubhouse.co.uk<br />
2998    <span style="font-size: 0.75em;">28/09/2026 16:08 181.215.65.76</span>
2999</div>
3000<!-- END _Footer.cshtml --></partial>
3001    </footer>
3002
3003
3004<!-- Stripe Payments - Elements -->
3005<script src="https://js.stripe.com/v3/"></script>
3005
3006
3007<!-- Page Scripts -->
3008<script src="https://www.cambridgecanoeclub.org.uk/dist/runtime.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3008
3008
3009<script src="https://www.cambridgecanoeclub.org.uk/dist/vendor.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3009
3009
3010<script src="https://www.cambridgecanoeclub.org.uk/dist/clubhouse.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3010
3010
3011<script src="https://www.cambridgecanoeclub.org.uk/dist/editor.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3011
3011
3012<script src="https://www.cambridgecanoeclub.org.uk/dist/map.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3012
3012
3013<script src="https://www.cambridgecanoeclub.org.uk/dist/Root/Scripts/Commons/ClubhouseCommons.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
vendor: 1 bytes, line 3013
3013
3014<script src="https://www.cambridgecanoeclub.org.uk/dist/Root/Scripts/Register/MembershipCategories.bundle.js.gz?v=6.2.19.18" type="text/javascript"></script>
3014
3015
3016    <!-- Menu Bar -->
3017    
3017<script src="https://www.cambridgecanoeclub.org.uk/dist/Root/Scripts/Commons/MenuBar.bundle.js.gz?v=6.2.19.18"></script>
3017
3018
3019<!-- Client Custom Scripts -->
3020<script src="https://www.cambridgecanoeclub.org.uk/Client/Scripts/ClientCustom.js"></script>
3020
3021
3022</partial>
3023
3024
3025
3026
3027
3028    <!-- Include an anti-forgery token on every page by default. -->
3029    <div id="ajax-antiforgery-token" class="data">
3030        {"HeaderName":"RequestVerificationToken","RequestToken":"CfDJ8KvNJpJ4oRdPjvv9fYDf9GYLrpPn44B5wPbdOQVq1q3F9Mdk0qd9NGfAb0VjkZo_N-SYDbigG5u5RSIwGKVDKXQ6mcfCS6_uYiuRNIZei-X-V1pWiqquRqlYXDXpiF3iGJIVvW_4ZiihXew8izb5Rds"}
3031    </div>
3032</body>
3033
3034</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.