This commit is contained in:
Ruidy 2025-11-02 21:50:43 +01:00 committed by GitHub
commit 9ec5513bfe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
251 changed files with 30251 additions and 36221 deletions

26
.gitignore vendored
View file

@ -1,2 +1,24 @@
/.mypy_cache/
/.ruff_cache/
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/

53
AGENTS.md Normal file
View file

@ -0,0 +1,53 @@
# Repository Guidelines
## Project Structure & Modules
- `src/`: Astro app — `pages/` (locale folders: `fr/`, `en/`), `layouts/`, `styles/`.
- `src/i18n/routes.ts`: central route manifest (`hrefFor`, `siblingPath`) for FR/EN
slugs.
- `public/`: static assets and redirects (`_redirects`, `assets/images`, `webfonts`,
etc.).
- `docs/spec/website-revamp-spec.md`: product/UX spec and release plan (source of
truth).
- Legacy: `lib/`, `pages/`, `data/` (Python generator) — deprecated; do not modify.
## Build, Test, and Development
- Setup: `corepack enable && pnpm i` (uses `pnpm@10`).
- Dev server: `pnpm dev` (Astro). Build: `pnpm build`. Preview: `pnpm preview`.
- Deploy: Netlify (static). Redirects in `public/_redirects` (root → `/fr/`).
- Analytics: Plausible (`plausible("event", {props})`).
## Coding Style & Conventions
- UI: Tailwind CSS v4 (brand tokens: `--color-brand`, `--color-brand-600`).
- Icons: `lucide-astro` inline SVGs; use `text-brand` for accent.
- JS: vanilla only (no jQuery). Prefer lightweight patterns (e.g., scrollBy carousels).
- i18n: prefer `getRelativeLocaleUrl()` from `astro:i18n` for links; use `siblingPath()`
for toggles when slugs differ.
- Content slugs differ by locale (e.g., FR `avis` ↔ EN `reviews`) — never hardcode.
## Testing Guidelines
- Sanity: `pnpm build` must succeed. Then `pnpm preview` for visual QA.
- Check: FR/EN toggles, redirects (`/ → /fr/`), forms (Netlify), and analytics events.
- Accessibility: keyboard nav for mobile menu; color contrast for brand accents.
## Commit & Pull Requests
- Conventional Commits (examples): `feat(home): hero CTA`, `fix(i18n): toggle
sibling path`.
- PRs should include: build passing, screenshots (FR/EN), and spec updates when needed.
- Keep focused and small; avoid mixing refactors with features.
## Revamp Spec & Phases
- Branch: `revamp/website-spec`. Spec: `docs/spec/website-revamp-spec.md`.
- Phase 1 (current): FR core pages, inquiry form, i18n scaffolding.
- Phase 2: EN pages + gallery, translated reviews.
- Phase 3: Policies, analytics KPIs, performance polish (WebP/srcset, Lighthouse).
## Notes
- Do not commit `dist/`. Assets live in `public/assets/...`.
- Use the route manifest for any new pages/links; add entries for new slugs.

16
Pipfile
View file

@ -1,16 +0,0 @@
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
jinja2 = "*"
rich = "*"
[dev-packages]
black = "*"
mypy = "*"
ruff = "*"
[requires]
python_version = "3.11"

262
Pipfile.lock generated
View file

@ -1,262 +0,0 @@
{
"_meta": {
"hash": {
"sha256": "bef80c03c82a5024d5fd39621dcbdf6fb13cdcf4f3765b97214d0d0cfa7c99b1"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.11"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"jinja2": {
"hashes": [
"sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb",
"sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"
],
"index": "pypi",
"markers": "python_version >= '3.7'",
"version": "==3.1.5"
},
"markdown-it-py": {
"hashes": [
"sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1",
"sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"
],
"markers": "python_version >= '3.8'",
"version": "==3.0.0"
},
"markupsafe": {
"hashes": [
"sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4",
"sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30",
"sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0",
"sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9",
"sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396",
"sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13",
"sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028",
"sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca",
"sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557",
"sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832",
"sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0",
"sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b",
"sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579",
"sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a",
"sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c",
"sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff",
"sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c",
"sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22",
"sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094",
"sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb",
"sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e",
"sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5",
"sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a",
"sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d",
"sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a",
"sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b",
"sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8",
"sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225",
"sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c",
"sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144",
"sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f",
"sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87",
"sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d",
"sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93",
"sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf",
"sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158",
"sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84",
"sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb",
"sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48",
"sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171",
"sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c",
"sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6",
"sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd",
"sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d",
"sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1",
"sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d",
"sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca",
"sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a",
"sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29",
"sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe",
"sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798",
"sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c",
"sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8",
"sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f",
"sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f",
"sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a",
"sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178",
"sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0",
"sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79",
"sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430",
"sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"
],
"markers": "python_version >= '3.9'",
"version": "==3.0.2"
},
"mdurl": {
"hashes": [
"sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8",
"sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"
],
"markers": "python_version >= '3.7'",
"version": "==0.1.2"
},
"pygments": {
"hashes": [
"sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c",
"sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"
],
"markers": "python_version >= '3.7'",
"version": "==2.15.1"
},
"rich": {
"hashes": [
"sha256:8f87bc7ee54675732fa66a05ebfe489e27264caeeff3728c945d25971b6485ec",
"sha256:d653d6bccede5844304c605d5aac802c7cf9621efd700b46c7ec2b51ea914898"
],
"index": "pypi",
"version": "==13.4.2"
}
},
"develop": {
"black": {
"hashes": [
"sha256:2818cf72dfd5d289e48f37ccfa08b460bf469e67fb7c4abb07edc2e9f16fb63f",
"sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93",
"sha256:4acf672def7eb1725f41f38bf6bf425c8237248bb0804faa3965c036f7672d11",
"sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0",
"sha256:4f1373a7808a8f135b774039f61d59e4be7eb56b2513d3d2f02a8b9365b8a8a9",
"sha256:56f52cfbd3dabe2798d76dbdd299faa046a901041faf2cf33288bc4e6dae57b5",
"sha256:65b76c275e4c1c5ce6e9870911384bff5ca31ab63d19c76811cb1fb162678213",
"sha256:65c02e4ea2ae09d16314d30912a58ada9a5c4fdfedf9512d23326128ac08ac3d",
"sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7",
"sha256:79dcf34b33e38ed1b17434693763301d7ccbd1c5860674a8f871bd15139e7837",
"sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f",
"sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395",
"sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995",
"sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f",
"sha256:aadf7a02d947936ee418777e0247ea114f78aff0d0959461057cae8a04f20597",
"sha256:b5991d523eee14756f3c8d5df5231550ae8993e2286b8014e2fdea7156ed0959",
"sha256:bf21b7b230718a5f08bd32d5e4f1db7fc8788345c8aea1d155fc17852b3410f5",
"sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb",
"sha256:c7ed6668cbbfcd231fa0dc1b137d3e40c04c7f786e626b405c62bcd5db5857e4",
"sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7",
"sha256:e19cb1c6365fd6dc38a6eae2dcb691d7d83935c10215aef8e6c38edee3f77abd",
"sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7"
],
"index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==24.3.0"
},
"click": {
"hashes": [
"sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28",
"sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"
],
"markers": "python_version >= '3.7'",
"version": "==8.1.7"
},
"mypy": {
"hashes": [
"sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042",
"sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd",
"sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2",
"sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01",
"sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7",
"sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3",
"sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816",
"sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3",
"sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc",
"sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4",
"sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b",
"sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8",
"sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c",
"sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462",
"sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7",
"sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc",
"sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258",
"sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b",
"sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9",
"sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6",
"sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f",
"sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1",
"sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828",
"sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878",
"sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f",
"sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b"
],
"index": "pypi",
"version": "==1.4.1"
},
"mypy-extensions": {
"hashes": [
"sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d",
"sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"
],
"markers": "python_version >= '3.5'",
"version": "==1.0.0"
},
"packaging": {
"hashes": [
"sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5",
"sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"
],
"markers": "python_version >= '3.7'",
"version": "==24.0"
},
"pathspec": {
"hashes": [
"sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08",
"sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"
],
"markers": "python_version >= '3.8'",
"version": "==0.12.1"
},
"platformdirs": {
"hashes": [
"sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068",
"sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"
],
"markers": "python_version >= '3.8'",
"version": "==4.2.0"
},
"ruff": {
"hashes": [
"sha256:14a7b2f00f149c5a295f188a643ac25226ff8a4d08f7a62b1d4b0a1dc9f9b85c",
"sha256:2d4444c60f2e705c14cd802b55cd2b561d25bf4311702c463a002392d3116b22",
"sha256:2dab13cdedbf3af6d4427c07f47143746b6b95d9e4a254ac369a0edb9280a0d2",
"sha256:323b674c98078be9aaded5b8b51c0d9c424486566fb6ec18439b496ce79e5998",
"sha256:3250b24333ef419b7a232080d9724ccc4d2da1dbbe4ce85c4caa2290d83200f8",
"sha256:3a43fbe026ca1a2a8c45aa0d600a0116bec4dfa6f8bf0c3b871ecda51ef2b5dd",
"sha256:3e60605e07482183ba1c1b7237eca827bd6cbd3535fe8a4ede28cbe2a323cb97",
"sha256:468bfb0a7567443cec3d03cf408d6f562b52f30c3c29df19927f1e0e13a40cd7",
"sha256:479864a3ccd8a6a20a37a6e7577bdc2406868ee80b1e65605478ad3b8eb2ba0b",
"sha256:6fe81732f788894a00f6ade1fe69e996cc9e485b7c35b0f53fb00284397284b2",
"sha256:734165ea8feb81b0d53e3bf523adc2413fdb76f1264cde99555161dd5a725522",
"sha256:74e4b206cb24f2e98a615f87dbe0bde18105217cbcc8eb785bb05a644855ba50",
"sha256:7baa97c3d7186e5ed4d5d4f6834d759a27e56cf7d5874b98c507335f0ad5aadb",
"sha256:88d0f2afb2e0c26ac1120e7061ddda2a566196ec4007bd66d558f13b374b9efc",
"sha256:a9879f59f763cc5628aa01c31ad256a0f4dc61a29355c7315b83c2a5aac932b5",
"sha256:f32ec416c24542ca2f9cc8c8b65b84560530d338aaf247a4a78e74b99cd476b4",
"sha256:f612e0a14b3d145d90eb6ead990064e22f6f27281d847237560b4e10bf2251f3"
],
"index": "pypi",
"version": "==0.0.277"
},
"typing-extensions": {
"hashes": [
"sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36",
"sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"
],
"markers": "python_version >= '3.7'",
"version": "==4.7.1"
}
}
}

105
README.md
View file

@ -1,88 +1,39 @@
# VillaFleurie rental site
# VillaFleurie Website
[![Netlify Status](https://api.netlify.com/api/v1/badges/aa5c29ee-eced-46dd-ad53-1e0822001364/deploy-status)](https://app.netlify.com/sites/villafleurie-site/deploys)
This site is built with Astro and Tailwind, with FR/EN locales.
## How to use
## Quick Start
You can build the site using the built-in static site generator included.
The entry point is located in the [main file](./lib/main.py). It should not be modified.
- Requirements: Node 18+, Corepack enabled (`pnpm`). Then:
- `corepack enable`
- `pnpm install`
- Dev server: `pnpm dev` → open `http://localhost:4321/fr/` (root redirects to `/fr/`).
- Build: `pnpm build` → static output in `dist/`. Preview: `pnpm preview`.
### Add a page
## Structure
To add a page, create a `HTML` file in the `pages` directory.
- `src/pages/fr|en/`: localized pages (Home, Apartments, Reviews, Rates, Contact,
Policies).
- `src/layouts/`: shared layout with sticky header, language toggle, footer.
- `src/styles/global.css`: Tailwind v4 with brand tokens (`--color-brand`, `--color-brand-600`).
- `src/i18n/routes.ts`: route manifest (`siblingPath`, CTA label helper).
- `public/`: static assets + `_redirects` (root → `/fr/`).
- Spec: `docs/spec/website-revamp-spec.md` (goals, sitemap, copy, release plan).
Optionally, you can inject data in the template. To do so you should create a `TOML` file with the same name as the
template.
## i18n & Navigation
Any fields will become available in the template.
For instance the `index.toml` for `index.html` could contain the following fields:
- Folder-based locales with different slugs (e.g., FR `avis` ↔ EN `reviews`).
- Always use the route helpers for links and the language toggle; dont hardcode
crosslocale paths.
```toml
name = "index"
template = "index.html"
```
## Forms & Analytics
### Layouts
- Netlify Forms on `/fr/contact/` and `/en/contact/`, with localized thankyou pages.
- Plausible events: `booking_request_submitted` (primary), `click_airbnb`,
`click_booking`, etc.
You can use template inheritance. The layouts must be in the `pages/layouts` subdirectory.
## Contributing
### Configuration
The configuration file ([config.toml](./config.toml)) is mandatory and should resemble:
```toml
name = "VillaFleurie"
```
## Build site
You can generate the site by running:
```shell
python -m lib.main
```
### How to run the website
It will generate the final files in the [dist](./dist) folder.
You can run the output files using a simple python server:
```shell
cd dist && python -m http.server
```
## Deployment
You can then deploy the site on any platform supporting static sites (Netlify,…) or your own VPS.
## TODO
- [X] Create a base template for the header and footer
- [X] Build index page
- [X] Build room pages
- [x] T2
- [x] T3
- [X] Build contact pages
- [X] Use netlify form for the contact form
- [x] Deploy to VillaFleurie's domain
- [ ] Find attractions for landing page
- [x] Pick real reviews from AirBnB and Booking
- [x] Optimize images
- [x] Automate the file search
- [x] Extract data out of the template
- [ ] Create a 'all' key for data available in all templates
- [ ] Create a template for the rooms
- [ ] Build script before commit
- [ ] Lit parapluie, barbecue et machine à laver
- [x] Use rich instead of logger
- [ ] Add file watching mode
## Excluded
* The language switcher
## Built with
- [Jinja](https://jinja.palletsprojects.com/en/3.1.x/) - fast, expressive, extensible templating
engine
- [Netlify](https://www.netlify.com/) - Develop and deploy websites and apps in record time
- Use Conventional Commits. Include screenshots (FR/EN) for UI changes.
- Keep the spec updated when requirements change.
- See `AGENTS.md` for contributor guidelines and the current phase plan.

View file

@ -1,678 +0,0 @@
/*!
* Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker)
*
* Copyright 2012 Stefan Petre
* Improvements by Andrew Rowls
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
*/
.datepicker {
border-radius: 4px;
direction: ltr;
}
.datepicker-inline {
width: 220px;
}
.datepicker.datepicker-rtl {
direction: rtl;
}
.datepicker.datepicker-rtl table tr td span {
float: right;
}
.datepicker-dropdown {
top: 0;
left: 0;
padding: 4px;
}
.datepicker-dropdown:before {
content: '';
display: inline-block;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid rgba(0, 0, 0, 0.15);
border-top: 0;
border-bottom-color: rgba(0, 0, 0, 0.2);
position: absolute;
}
.datepicker-dropdown:after {
content: '';
display: inline-block;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #fff;
border-top: 0;
position: absolute;
}
.datepicker-dropdown.datepicker-orient-left:before {
left: 6px;
}
.datepicker-dropdown.datepicker-orient-left:after {
left: 7px;
}
.datepicker-dropdown.datepicker-orient-right:before {
right: 6px;
}
.datepicker-dropdown.datepicker-orient-right:after {
right: 7px;
}
.datepicker-dropdown.datepicker-orient-bottom:before {
top: -7px;
}
.datepicker-dropdown.datepicker-orient-bottom:after {
top: -6px;
}
.datepicker-dropdown.datepicker-orient-top:before {
bottom: -7px;
border-bottom: 0;
border-top: 7px solid rgba(0, 0, 0, 0.15);
}
.datepicker-dropdown.datepicker-orient-top:after {
bottom: -6px;
border-bottom: 0;
border-top: 6px solid #fff;
}
.datepicker table {
margin: 0;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.datepicker table tr td,
.datepicker table tr th {
text-align: center;
width: 30px;
height: 30px;
border-radius: 4px;
border: none;
}
.table-striped .datepicker table tr td,
.table-striped .datepicker table tr th {
background-color: transparent;
}
.datepicker table tr td.old,
.datepicker table tr td.new {
color: #777777;
}
.datepicker table tr td.day:hover,
.datepicker table tr td.focused {
background: #eeeeee;
cursor: pointer;
}
.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover {
background: none;
color: #777777;
cursor: default;
}
.datepicker table tr td.highlighted {
color: #000;
background-color: #d9edf7;
border-color: #85c5e5;
border-radius: 0;
}
.datepicker table tr td.highlighted:focus,
.datepicker table tr td.highlighted.focus {
color: #000;
background-color: #afd9ee;
border-color: #298fc2;
}
.datepicker table tr td.highlighted:hover {
color: #000;
background-color: #afd9ee;
border-color: #52addb;
}
.datepicker table tr td.highlighted:active,
.datepicker table tr td.highlighted.active {
color: #000;
background-color: #afd9ee;
border-color: #52addb;
}
.datepicker table tr td.highlighted:active:hover,
.datepicker table tr td.highlighted.active:hover,
.datepicker table tr td.highlighted:active:focus,
.datepicker table tr td.highlighted.active:focus,
.datepicker table tr td.highlighted:active.focus,
.datepicker table tr td.highlighted.active.focus {
color: #000;
background-color: #91cbe8;
border-color: #298fc2;
}
.datepicker table tr td.highlighted.disabled:hover,
.datepicker table tr td.highlighted[disabled]:hover,
fieldset[disabled] .datepicker table tr td.highlighted:hover,
.datepicker table tr td.highlighted.disabled:focus,
.datepicker table tr td.highlighted[disabled]:focus,
fieldset[disabled] .datepicker table tr td.highlighted:focus,
.datepicker table tr td.highlighted.disabled.focus,
.datepicker table tr td.highlighted[disabled].focus,
fieldset[disabled] .datepicker table tr td.highlighted.focus {
background-color: #d9edf7;
border-color: #85c5e5;
}
.datepicker table tr td.highlighted.focused {
background: #afd9ee;
}
.datepicker table tr td.highlighted.disabled,
.datepicker table tr td.highlighted.disabled:active {
background: #d9edf7;
color: #777777;
}
.datepicker table tr td.today {
color: #000;
background-color: #ffdb99;
border-color: #ffb733;
}
.datepicker table tr td.today:focus,
.datepicker table tr td.today.focus {
color: #000;
background-color: #ffc966;
border-color: #b37400;
}
.datepicker table tr td.today:hover {
color: #000;
background-color: #ffc966;
border-color: #f59e00;
}
.datepicker table tr td.today:active,
.datepicker table tr td.today.active {
color: #000;
background-color: #ffc966;
border-color: #f59e00;
}
.datepicker table tr td.today:active:hover,
.datepicker table tr td.today.active:hover,
.datepicker table tr td.today:active:focus,
.datepicker table tr td.today.active:focus,
.datepicker table tr td.today:active.focus,
.datepicker table tr td.today.active.focus {
color: #000;
background-color: #ffbc42;
border-color: #b37400;
}
.datepicker table tr td.today.disabled:hover,
.datepicker table tr td.today[disabled]:hover,
fieldset[disabled] .datepicker table tr td.today:hover,
.datepicker table tr td.today.disabled:focus,
.datepicker table tr td.today[disabled]:focus,
fieldset[disabled] .datepicker table tr td.today:focus,
.datepicker table tr td.today.disabled.focus,
.datepicker table tr td.today[disabled].focus,
fieldset[disabled] .datepicker table tr td.today.focus {
background-color: #ffdb99;
border-color: #ffb733;
}
.datepicker table tr td.today.focused {
background: #ffc966;
}
.datepicker table tr td.today.disabled,
.datepicker table tr td.today.disabled:active {
background: #ffdb99;
color: #777777;
}
.datepicker table tr td.range {
color: #000;
background-color: #eeeeee;
border-color: #bbbbbb;
border-radius: 0;
}
.datepicker table tr td.range:focus,
.datepicker table tr td.range.focus {
color: #000;
background-color: #d5d5d5;
border-color: #7c7c7c;
}
.datepicker table tr td.range:hover {
color: #000;
background-color: #d5d5d5;
border-color: #9d9d9d;
}
.datepicker table tr td.range:active,
.datepicker table tr td.range.active {
color: #000;
background-color: #d5d5d5;
border-color: #9d9d9d;
}
.datepicker table tr td.range:active:hover,
.datepicker table tr td.range.active:hover,
.datepicker table tr td.range:active:focus,
.datepicker table tr td.range.active:focus,
.datepicker table tr td.range:active.focus,
.datepicker table tr td.range.active.focus {
color: #000;
background-color: #c3c3c3;
border-color: #7c7c7c;
}
.datepicker table tr td.range.disabled:hover,
.datepicker table tr td.range[disabled]:hover,
fieldset[disabled] .datepicker table tr td.range:hover,
.datepicker table tr td.range.disabled:focus,
.datepicker table tr td.range[disabled]:focus,
fieldset[disabled] .datepicker table tr td.range:focus,
.datepicker table tr td.range.disabled.focus,
.datepicker table tr td.range[disabled].focus,
fieldset[disabled] .datepicker table tr td.range.focus {
background-color: #eeeeee;
border-color: #bbbbbb;
}
.datepicker table tr td.range.focused {
background: #d5d5d5;
}
.datepicker table tr td.range.disabled,
.datepicker table tr td.range.disabled:active {
background: #eeeeee;
color: #777777;
}
.datepicker table tr td.range.highlighted {
color: #000;
background-color: #e4eef3;
border-color: #9dc1d3;
}
.datepicker table tr td.range.highlighted:focus,
.datepicker table tr td.range.highlighted.focus {
color: #000;
background-color: #c1d7e3;
border-color: #4b88a6;
}
.datepicker table tr td.range.highlighted:hover {
color: #000;
background-color: #c1d7e3;
border-color: #73a6c0;
}
.datepicker table tr td.range.highlighted:active,
.datepicker table tr td.range.highlighted.active {
color: #000;
background-color: #c1d7e3;
border-color: #73a6c0;
}
.datepicker table tr td.range.highlighted:active:hover,
.datepicker table tr td.range.highlighted.active:hover,
.datepicker table tr td.range.highlighted:active:focus,
.datepicker table tr td.range.highlighted.active:focus,
.datepicker table tr td.range.highlighted:active.focus,
.datepicker table tr td.range.highlighted.active.focus {
color: #000;
background-color: #a8c8d8;
border-color: #4b88a6;
}
.datepicker table tr td.range.highlighted.disabled:hover,
.datepicker table tr td.range.highlighted[disabled]:hover,
fieldset[disabled] .datepicker table tr td.range.highlighted:hover,
.datepicker table tr td.range.highlighted.disabled:focus,
.datepicker table tr td.range.highlighted[disabled]:focus,
fieldset[disabled] .datepicker table tr td.range.highlighted:focus,
.datepicker table tr td.range.highlighted.disabled.focus,
.datepicker table tr td.range.highlighted[disabled].focus,
fieldset[disabled] .datepicker table tr td.range.highlighted.focus {
background-color: #e4eef3;
border-color: #9dc1d3;
}
.datepicker table tr td.range.highlighted.focused {
background: #c1d7e3;
}
.datepicker table tr td.range.highlighted.disabled,
.datepicker table tr td.range.highlighted.disabled:active {
background: #e4eef3;
color: #777777;
}
.datepicker table tr td.range.today {
color: #000;
background-color: #f7ca77;
border-color: #f1a417;
}
.datepicker table tr td.range.today:focus,
.datepicker table tr td.range.today.focus {
color: #000;
background-color: #f4b747;
border-color: #815608;
}
.datepicker table tr td.range.today:hover {
color: #000;
background-color: #f4b747;
border-color: #bf800c;
}
.datepicker table tr td.range.today:active,
.datepicker table tr td.range.today.active {
color: #000;
background-color: #f4b747;
border-color: #bf800c;
}
.datepicker table tr td.range.today:active:hover,
.datepicker table tr td.range.today.active:hover,
.datepicker table tr td.range.today:active:focus,
.datepicker table tr td.range.today.active:focus,
.datepicker table tr td.range.today:active.focus,
.datepicker table tr td.range.today.active.focus {
color: #000;
background-color: #f2aa25;
border-color: #815608;
}
.datepicker table tr td.range.today.disabled:hover,
.datepicker table tr td.range.today[disabled]:hover,
fieldset[disabled] .datepicker table tr td.range.today:hover,
.datepicker table tr td.range.today.disabled:focus,
.datepicker table tr td.range.today[disabled]:focus,
fieldset[disabled] .datepicker table tr td.range.today:focus,
.datepicker table tr td.range.today.disabled.focus,
.datepicker table tr td.range.today[disabled].focus,
fieldset[disabled] .datepicker table tr td.range.today.focus {
background-color: #f7ca77;
border-color: #f1a417;
}
.datepicker table tr td.range.today.disabled,
.datepicker table tr td.range.today.disabled:active {
background: #f7ca77;
color: #777777;
}
.datepicker table tr td.selected,
.datepicker table tr td.selected.highlighted {
color: #fff;
background-color: #777777;
border-color: #555555;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td.selected:focus,
.datepicker table tr td.selected.highlighted:focus,
.datepicker table tr td.selected.focus,
.datepicker table tr td.selected.highlighted.focus {
color: #fff;
background-color: #5e5e5e;
border-color: #161616;
}
.datepicker table tr td.selected:hover,
.datepicker table tr td.selected.highlighted:hover {
color: #fff;
background-color: #5e5e5e;
border-color: #373737;
}
.datepicker table tr td.selected:active,
.datepicker table tr td.selected.highlighted:active,
.datepicker table tr td.selected.active,
.datepicker table tr td.selected.highlighted.active {
color: #fff;
background-color: #5e5e5e;
border-color: #373737;
}
.datepicker table tr td.selected:active:hover,
.datepicker table tr td.selected.highlighted:active:hover,
.datepicker table tr td.selected.active:hover,
.datepicker table tr td.selected.highlighted.active:hover,
.datepicker table tr td.selected:active:focus,
.datepicker table tr td.selected.highlighted:active:focus,
.datepicker table tr td.selected.active:focus,
.datepicker table tr td.selected.highlighted.active:focus,
.datepicker table tr td.selected:active.focus,
.datepicker table tr td.selected.highlighted:active.focus,
.datepicker table tr td.selected.active.focus,
.datepicker table tr td.selected.highlighted.active.focus {
color: #fff;
background-color: #4c4c4c;
border-color: #161616;
}
.datepicker table tr td.selected.disabled:hover,
.datepicker table tr td.selected.highlighted.disabled:hover,
.datepicker table tr td.selected[disabled]:hover,
.datepicker table tr td.selected.highlighted[disabled]:hover,
fieldset[disabled] .datepicker table tr td.selected:hover,
fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,
.datepicker table tr td.selected.disabled:focus,
.datepicker table tr td.selected.highlighted.disabled:focus,
.datepicker table tr td.selected[disabled]:focus,
.datepicker table tr td.selected.highlighted[disabled]:focus,
fieldset[disabled] .datepicker table tr td.selected:focus,
fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,
.datepicker table tr td.selected.disabled.focus,
.datepicker table tr td.selected.highlighted.disabled.focus,
.datepicker table tr td.selected[disabled].focus,
.datepicker table tr td.selected.highlighted[disabled].focus,
fieldset[disabled] .datepicker table tr td.selected.focus,
fieldset[disabled] .datepicker table tr td.selected.highlighted.focus {
background-color: #777777;
border-color: #555555;
}
.datepicker table tr td.active,
.datepicker table tr td.active.highlighted {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td.active:focus,
.datepicker table tr td.active.highlighted:focus,
.datepicker table tr td.active.focus,
.datepicker table tr td.active.highlighted.focus {
color: #fff;
background-color: #286090;
border-color: #122b40;
}
.datepicker table tr td.active:hover,
.datepicker table tr td.active.highlighted:hover {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.datepicker table tr td.active:active,
.datepicker table tr td.active.highlighted:active,
.datepicker table tr td.active.active,
.datepicker table tr td.active.highlighted.active {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.datepicker table tr td.active:active:hover,
.datepicker table tr td.active.highlighted:active:hover,
.datepicker table tr td.active.active:hover,
.datepicker table tr td.active.highlighted.active:hover,
.datepicker table tr td.active:active:focus,
.datepicker table tr td.active.highlighted:active:focus,
.datepicker table tr td.active.active:focus,
.datepicker table tr td.active.highlighted.active:focus,
.datepicker table tr td.active:active.focus,
.datepicker table tr td.active.highlighted:active.focus,
.datepicker table tr td.active.active.focus,
.datepicker table tr td.active.highlighted.active.focus {
color: #fff;
background-color: #204d74;
border-color: #122b40;
}
.datepicker table tr td.active.disabled:hover,
.datepicker table tr td.active.highlighted.disabled:hover,
.datepicker table tr td.active[disabled]:hover,
.datepicker table tr td.active.highlighted[disabled]:hover,
fieldset[disabled] .datepicker table tr td.active:hover,
fieldset[disabled] .datepicker table tr td.active.highlighted:hover,
.datepicker table tr td.active.disabled:focus,
.datepicker table tr td.active.highlighted.disabled:focus,
.datepicker table tr td.active[disabled]:focus,
.datepicker table tr td.active.highlighted[disabled]:focus,
fieldset[disabled] .datepicker table tr td.active:focus,
fieldset[disabled] .datepicker table tr td.active.highlighted:focus,
.datepicker table tr td.active.disabled.focus,
.datepicker table tr td.active.highlighted.disabled.focus,
.datepicker table tr td.active[disabled].focus,
.datepicker table tr td.active.highlighted[disabled].focus,
fieldset[disabled] .datepicker table tr td.active.focus,
fieldset[disabled] .datepicker table tr td.active.highlighted.focus {
background-color: #337ab7;
border-color: #2e6da4;
}
.datepicker table tr td span {
display: block;
width: 23%;
height: 54px;
line-height: 54px;
float: left;
margin: 1%;
cursor: pointer;
border-radius: 4px;
}
.datepicker table tr td span:hover,
.datepicker table tr td span.focused {
background: #eeeeee;
}
.datepicker table tr td span.disabled,
.datepicker table tr td span.disabled:hover {
background: none;
color: #777777;
cursor: default;
}
.datepicker table tr td span.active,
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active.disabled:hover {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td span.active:focus,
.datepicker table tr td span.active:hover:focus,
.datepicker table tr td span.active.disabled:focus,
.datepicker table tr td span.active.disabled:hover:focus,
.datepicker table tr td span.active.focus,
.datepicker table tr td span.active:hover.focus,
.datepicker table tr td span.active.disabled.focus,
.datepicker table tr td span.active.disabled:hover.focus {
color: #fff;
background-color: #286090;
border-color: #122b40;
}
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active:hover:hover,
.datepicker table tr td span.active.disabled:hover,
.datepicker table tr td span.active.disabled:hover:hover {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.datepicker table tr td span.active:active,
.datepicker table tr td span.active:hover:active,
.datepicker table tr td span.active.disabled:active,
.datepicker table tr td span.active.disabled:hover:active,
.datepicker table tr td span.active.active,
.datepicker table tr td span.active:hover.active,
.datepicker table tr td span.active.disabled.active,
.datepicker table tr td span.active.disabled:hover.active {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.datepicker table tr td span.active:active:hover,
.datepicker table tr td span.active:hover:active:hover,
.datepicker table tr td span.active.disabled:active:hover,
.datepicker table tr td span.active.disabled:hover:active:hover,
.datepicker table tr td span.active.active:hover,
.datepicker table tr td span.active:hover.active:hover,
.datepicker table tr td span.active.disabled.active:hover,
.datepicker table tr td span.active.disabled:hover.active:hover,
.datepicker table tr td span.active:active:focus,
.datepicker table tr td span.active:hover:active:focus,
.datepicker table tr td span.active.disabled:active:focus,
.datepicker table tr td span.active.disabled:hover:active:focus,
.datepicker table tr td span.active.active:focus,
.datepicker table tr td span.active:hover.active:focus,
.datepicker table tr td span.active.disabled.active:focus,
.datepicker table tr td span.active.disabled:hover.active:focus,
.datepicker table tr td span.active:active.focus,
.datepicker table tr td span.active:hover:active.focus,
.datepicker table tr td span.active.disabled:active.focus,
.datepicker table tr td span.active.disabled:hover:active.focus,
.datepicker table tr td span.active.active.focus,
.datepicker table tr td span.active:hover.active.focus,
.datepicker table tr td span.active.disabled.active.focus,
.datepicker table tr td span.active.disabled:hover.active.focus {
color: #fff;
background-color: #204d74;
border-color: #122b40;
}
.datepicker table tr td span.active.disabled:hover,
.datepicker table tr td span.active:hover.disabled:hover,
.datepicker table tr td span.active.disabled.disabled:hover,
.datepicker table tr td span.active.disabled:hover.disabled:hover,
.datepicker table tr td span.active[disabled]:hover,
.datepicker table tr td span.active:hover[disabled]:hover,
.datepicker table tr td span.active.disabled[disabled]:hover,
.datepicker table tr td span.active.disabled:hover[disabled]:hover,
fieldset[disabled] .datepicker table tr td span.active:hover,
fieldset[disabled] .datepicker table tr td span.active:hover:hover,
fieldset[disabled] .datepicker table tr td span.active.disabled:hover,
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,
.datepicker table tr td span.active.disabled:focus,
.datepicker table tr td span.active:hover.disabled:focus,
.datepicker table tr td span.active.disabled.disabled:focus,
.datepicker table tr td span.active.disabled:hover.disabled:focus,
.datepicker table tr td span.active[disabled]:focus,
.datepicker table tr td span.active:hover[disabled]:focus,
.datepicker table tr td span.active.disabled[disabled]:focus,
.datepicker table tr td span.active.disabled:hover[disabled]:focus,
fieldset[disabled] .datepicker table tr td span.active:focus,
fieldset[disabled] .datepicker table tr td span.active:hover:focus,
fieldset[disabled] .datepicker table tr td span.active.disabled:focus,
fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,
.datepicker table tr td span.active.disabled.focus,
.datepicker table tr td span.active:hover.disabled.focus,
.datepicker table tr td span.active.disabled.disabled.focus,
.datepicker table tr td span.active.disabled:hover.disabled.focus,
.datepicker table tr td span.active[disabled].focus,
.datepicker table tr td span.active:hover[disabled].focus,
.datepicker table tr td span.active.disabled[disabled].focus,
.datepicker table tr td span.active.disabled:hover[disabled].focus,
fieldset[disabled] .datepicker table tr td span.active.focus,
fieldset[disabled] .datepicker table tr td span.active:hover.focus,
fieldset[disabled] .datepicker table tr td span.active.disabled.focus,
fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus {
background-color: #337ab7;
border-color: #2e6da4;
}
.datepicker table tr td span.old,
.datepicker table tr td span.new {
color: #777777;
}
.datepicker .datepicker-switch {
width: 145px;
}
.datepicker .datepicker-switch,
.datepicker .prev,
.datepicker .next,
.datepicker tfoot tr th {
cursor: pointer;
}
.datepicker .datepicker-switch:hover,
.datepicker .prev:hover,
.datepicker .next:hover,
.datepicker tfoot tr th:hover {
background: #eeeeee;
}
.datepicker .cw {
font-size: 10px;
width: 12px;
padding: 0 2px 0 5px;
vertical-align: middle;
}
.input-group.date .input-group-addon {
cursor: pointer;
}
.input-daterange {
width: 100%;
}
.input-daterange input {
text-align: center;
}
.input-daterange input:first-child {
border-radius: 3px 0 0 3px;
}
.input-daterange input:last-child {
border-radius: 0 3px 3px 0;
}
.input-daterange .input-group-addon {
width: auto;
min-width: 16px;
padding: 4px 5px;
line-height: 1.42857143;
text-shadow: 0 1px 0 #fff;
border-width: 1px 0;
margin-left: -5px;
margin-right: -5px;
}
/*# sourceMappingURL=bootstrap-datepicker3.css.map */

10259
assets/css/bootstrap.css vendored

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,618 +0,0 @@
/**
* Swiper 4.4.6
* Most modern mobile touch slider and framework with hardware accelerated transitions
* http://www.idangero.us/swiper/
*
* Copyright 2014-2018 Vladimir Kharlampidi
*
* Released under the MIT License
*
* Released on: December 19, 2018
*/
.swiper-container {
margin: 0 auto;
position: relative;
overflow: hidden;
list-style: none;
padding: 0;
/* Fix of Webkit flickering */
z-index: 1;
}
.swiper-container-no-flexbox .swiper-slide {
float: left;
}
.swiper-container-vertical > .swiper-wrapper {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
}
.swiper-wrapper {
position: relative;
width: 100%;
height: 100%;
z-index: 1;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-transition-property: -webkit-transform;
transition-property: -webkit-transform;
-o-transition-property: transform;
transition-property: transform;
transition-property: transform, -webkit-transform;
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
.swiper-container-android .swiper-slide,
.swiper-wrapper {
-webkit-transform: translate3d(0px, 0, 0);
transform: translate3d(0px, 0, 0);
}
.swiper-container-multirow > .swiper-wrapper {
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.swiper-container-free-mode > .swiper-wrapper {
-webkit-transition-timing-function: ease-out;
-o-transition-timing-function: ease-out;
transition-timing-function: ease-out;
margin: 0 auto;
}
.swiper-slide {
-webkit-flex-shrink: 0;
-ms-flex-negative: 0;
flex-shrink: 0;
width: 100%;
height: 100%;
position: relative;
-webkit-transition-property: -webkit-transform;
transition-property: -webkit-transform;
-o-transition-property: transform;
transition-property: transform;
transition-property: transform, -webkit-transform;
}
.swiper-slide-invisible-blank {
visibility: hidden;
}
/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
height: auto;
}
.swiper-container-autoheight .swiper-wrapper {
-webkit-box-align: start;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start;
-webkit-transition-property: height, -webkit-transform;
transition-property: height, -webkit-transform;
-o-transition-property: transform, height;
transition-property: transform, height;
transition-property: transform, height, -webkit-transform;
}
/* 3D Effects */
.swiper-container-3d {
-webkit-perspective: 1200px;
perspective: 1200px;
}
.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
}
.swiper-container-3d .swiper-slide-shadow-left {
background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-right {
background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-top {
background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-bottom {
background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
/* IE10 Windows Phone 8 Fixes */
.swiper-container-wp8-horizontal,
.swiper-container-wp8-horizontal > .swiper-wrapper {
-ms-touch-action: pan-y;
touch-action: pan-y;
}
.swiper-container-wp8-vertical,
.swiper-container-wp8-vertical > .swiper-wrapper {
-ms-touch-action: pan-x;
touch-action: pan-x;
}
.swiper-button-prev,
.swiper-button-next {
position: absolute;
top: 50%;
width: 27px;
height: 44px;
margin-top: -22px;
z-index: 10;
cursor: pointer;
background-size: 27px 44px;
background-position: center;
background-repeat: no-repeat;
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
opacity: 0.35;
cursor: auto;
pointer-events: none;
}
.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
left: 10px;
right: auto;
}
.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
right: 10px;
left: auto;
}
.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-lock {
display: none;
}
.swiper-pagination {
position: absolute;
text-align: center;
-webkit-transition: 300ms opacity;
-o-transition: 300ms opacity;
transition: 300ms opacity;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
bottom: 10px;
left: 0;
width: 100%;
}
/* Bullets */
.swiper-pagination-bullets-dynamic {
overflow: hidden;
font-size: 0;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
-webkit-transform: scale(0.33);
-ms-transform: scale(0.33);
transform: scale(0.33);
position: relative;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
-webkit-transform: scale(0.66);
-ms-transform: scale(0.66);
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
-webkit-transform: scale(0.33);
-ms-transform: scale(0.33);
transform: scale(0.33);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
-webkit-transform: scale(0.66);
-ms-transform: scale(0.66);
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
-webkit-transform: scale(0.33);
-ms-transform: scale(0.33);
transform: scale(0.33);
}
.swiper-pagination-bullet {
width: 8px;
height: 8px;
display: inline-block;
border-radius: 100%;
background: #000;
opacity: 0.2;
}
button.swiper-pagination-bullet {
border: none;
margin: 0;
padding: 0;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
cursor: pointer;
}
.swiper-pagination-bullet-active {
opacity: 1;
background: #007aff;
}
.swiper-container-vertical > .swiper-pagination-bullets {
right: 10px;
top: 50%;
-webkit-transform: translate3d(0px, -50%, 0);
transform: translate3d(0px, -50%, 0);
}
.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 6px 0;
display: block;
}
.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
width: 8px;
}
.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
display: inline-block;
-webkit-transition: 200ms top, 200ms -webkit-transform;
transition: 200ms top, 200ms -webkit-transform;
-o-transition: 200ms transform, 200ms top;
transition: 200ms transform, 200ms top;
transition: 200ms transform, 200ms top, 200ms -webkit-transform;
}
.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 0 4px;
}
.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
left: 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
white-space: nowrap;
}
.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
-webkit-transition: 200ms left, 200ms -webkit-transform;
transition: 200ms left, 200ms -webkit-transform;
-o-transition: 200ms transform, 200ms left;
transition: 200ms transform, 200ms left;
transition: 200ms transform, 200ms left, 200ms -webkit-transform;
}
.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
-webkit-transition: 200ms right, 200ms -webkit-transform;
transition: 200ms right, 200ms -webkit-transform;
-o-transition: 200ms transform, 200ms right;
transition: 200ms transform, 200ms right;
transition: 200ms transform, 200ms right, 200ms -webkit-transform;
}
/* Progress */
.swiper-pagination-progressbar {
background: rgba(0, 0, 0, 0.25);
position: absolute;
}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
background: #007aff;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
-webkit-transform: scale(0);
-ms-transform: scale(0);
transform: scale(0);
-webkit-transform-origin: left top;
-ms-transform-origin: left top;
transform-origin: left top;
}
.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
-webkit-transform-origin: right top;
-ms-transform-origin: right top;
transform-origin: right top;
}
.swiper-container-horizontal > .swiper-pagination-progressbar,
.swiper-container-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
width: 100%;
height: 4px;
left: 0;
top: 0;
}
.swiper-container-vertical > .swiper-pagination-progressbar,
.swiper-container-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
width: 4px;
height: 100%;
left: 0;
top: 0;
}
.swiper-pagination-white .swiper-pagination-bullet-active {
background: #ffffff;
}
.swiper-pagination-progressbar.swiper-pagination-white {
background: rgba(255, 255, 255, 0.25);
}
.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill {
background: #ffffff;
}
.swiper-pagination-black .swiper-pagination-bullet-active {
background: #000000;
}
.swiper-pagination-progressbar.swiper-pagination-black {
background: rgba(0, 0, 0, 0.25);
}
.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill {
background: #000000;
}
.swiper-pagination-lock {
display: none;
}
/* Scrollbar */
.swiper-scrollbar {
border-radius: 10px;
position: relative;
-ms-touch-action: none;
background: rgba(0, 0, 0, 0.1);
}
.swiper-container-horizontal > .swiper-scrollbar {
position: absolute;
left: 1%;
bottom: 3px;
z-index: 50;
height: 5px;
width: 98%;
}
.swiper-container-vertical > .swiper-scrollbar {
position: absolute;
right: 3px;
top: 1%;
z-index: 50;
width: 5px;
height: 98%;
}
.swiper-scrollbar-drag {
height: 100%;
width: 100%;
position: relative;
background: rgba(0, 0, 0, 0.5);
border-radius: 10px;
left: 0;
top: 0;
}
.swiper-scrollbar-cursor-drag {
cursor: move;
}
.swiper-scrollbar-lock {
display: none;
}
.swiper-zoom-container {
width: 100%;
height: 100%;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
text-align: center;
}
.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
max-width: 100%;
max-height: 100%;
-o-object-fit: contain;
object-fit: contain;
}
.swiper-slide-zoomed {
cursor: move;
}
/* Preloader */
.swiper-lazy-preloader {
width: 42px;
height: 42px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -21px;
margin-top: -21px;
z-index: 10;
-webkit-transform-origin: 50%;
-ms-transform-origin: 50%;
transform-origin: 50%;
-webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
animation: swiper-preloader-spin 1s steps(12, end) infinite;
}
.swiper-lazy-preloader:after {
display: block;
content: '';
width: 100%;
height: 100%;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
background-position: 50%;
background-size: 100%;
background-repeat: no-repeat;
}
.swiper-lazy-preloader-white:after {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
@-webkit-keyframes swiper-preloader-spin {
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes swiper-preloader-spin {
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
/* a11y */
.swiper-container .swiper-notification {
position: absolute;
left: 0;
top: 0;
pointer-events: none;
opacity: 0;
z-index: -1000;
}
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
-webkit-transition-timing-function: ease-out;
-o-transition-timing-function: ease-out;
transition-timing-function: ease-out;
}
.swiper-container-fade .swiper-slide {
pointer-events: none;
-webkit-transition-property: opacity;
-o-transition-property: opacity;
transition-property: opacity;
}
.swiper-container-fade .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-cube {
overflow: visible;
}
.swiper-container-cube .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
visibility: hidden;
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
width: 100%;
height: 100%;
}
.swiper-container-cube .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-cube.swiper-container-rtl .swiper-slide {
-webkit-transform-origin: 100% 0;
-ms-transform-origin: 100% 0;
transform-origin: 100% 0;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
pointer-events: auto;
visibility: visible;
}
.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.swiper-container-cube .swiper-cube-shadow {
position: absolute;
left: 0;
bottom: 0px;
width: 100%;
height: 100%;
background: #000;
opacity: 0.6;
-webkit-filter: blur(50px);
filter: blur(50px);
z-index: 0;
}
.swiper-container-flip {
overflow: visible;
}
.swiper-container-flip .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
}
.swiper-container-flip .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-flip .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-right {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.swiper-container-coverflow .swiper-wrapper {
/* Windows 8 IE 10 fix */
-ms-perspective: 1200px;
}

View file

@ -1,250 +0,0 @@
/*!
* Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker)
*
* Copyright 2012 Stefan Petre
* Improvements by Andrew Rowls
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
*/
(function(factory){"use strict";if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof exports==='object'){factory(require('jquery'))}else{factory(jQuery)}}(function($,undefined){"use strict";function UTCDate(){return new Date(Date.UTC.apply(Date,arguments))}
function UTCToday(){var today=new Date();return UTCDate(today.getFullYear(),today.getMonth(),today.getDate())}
function isUTCEquals(date1,date2){return(date1.getUTCFullYear()===date2.getUTCFullYear()&&date1.getUTCMonth()===date2.getUTCMonth()&&date1.getUTCDate()===date2.getUTCDate())}
function alias(method){return function(){return this[method].apply(this,arguments)}}
function isValidDate(d){return d&&!isNaN(d.getTime())}
var DateArray=(function(){var extras={get:function(i){return this.slice(i)[0]},contains:function(d){var val=d&&d.valueOf();for(var i=0,l=this.length;i<l;i++)
if(this[i].valueOf()===val)
return i;return-1},remove:function(i){this.splice(i,1)},replace:function(new_array){if(!new_array)
return;if(!$.isArray(new_array))
new_array=[new_array];this.clear();this.push.apply(this,new_array)},clear:function(){this.length=0},copy:function(){var a=new DateArray();a.replace(this);return a}};return function(){var a=[];a.push.apply(a,arguments);$.extend(a,extras);return a}})();var Datepicker=function(element,options){$(element).data('datepicker',this);this._process_options(options);this.dates=new DateArray();this.viewDate=this.o.defaultViewDate;this.focusDate=null;this.element=$(element);this.isInput=this.element.is('input');this.inputField=this.isInput?this.element:this.element.find('input');this.component=this.element.hasClass('date')?this.element.find('.add-on, .input-group-addon, .btn'):!1;this.hasInput=this.component&&this.inputField.length;if(this.component&&this.component.length===0)
this.component=!1;this.isInline=!this.component&&this.element.is('div');this.picker=$(DPGlobal.template);if(this._check_template(this.o.templates.leftArrow)){this.picker.find('.prev').html(this.o.templates.leftArrow)}
if(this._check_template(this.o.templates.rightArrow)){this.picker.find('.next').html(this.o.templates.rightArrow)}
this._buildEvents();this._attachEvents();if(this.isInline){this.picker.addClass('datepicker-inline').appendTo(this.element)}
else{this.picker.addClass('datepicker-dropdown dropdown-menu')}
if(this.o.rtl){this.picker.addClass('datepicker-rtl')}
this.viewMode=this.o.startView;if(this.o.calendarWeeks)
this.picker.find('thead .datepicker-title, tfoot .today, tfoot .clear').attr('colspan',function(i,val){return parseInt(val)+1});this._allow_update=!1;this.setStartDate(this._o.startDate);this.setEndDate(this._o.endDate);this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);this.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted);this.setDatesDisabled(this.o.datesDisabled);this.fillDow();this.fillMonths();this._allow_update=!0;this.update();this.showMode();if(this.isInline){this.show()}};Datepicker.prototype={constructor:Datepicker,_resolveViewName:function(view,default_value){if(view===0||view==='days'||view==='month'){return 0}
if(view===1||view==='months'||view==='year'){return 1}
if(view===2||view==='years'||view==='decade'){return 2}
if(view===3||view==='decades'||view==='century'){return 3}
if(view===4||view==='centuries'||view==='millennium'){return 4}
return default_value===undefined?!1:default_value},_check_template:function(tmp){try{if(tmp===undefined||tmp===""){return!1}
if((tmp.match(/[<>]/g)||[]).length<=0){return!0}
var jDom=$(tmp);return jDom.length>0}
catch(ex){return!1}},_process_options:function(opts){this._o=$.extend({},this._o,opts);var o=this.o=$.extend({},this._o);var lang=o.language;if(!dates[lang]){lang=lang.split('-')[0];if(!dates[lang])
lang=defaults.language}
o.language=lang;o.startView=this._resolveViewName(o.startView,0);o.minViewMode=this._resolveViewName(o.minViewMode,0);o.maxViewMode=this._resolveViewName(o.maxViewMode,4);o.startView=Math.min(o.startView,o.maxViewMode);o.startView=Math.max(o.startView,o.minViewMode);if(o.multidate!==!0){o.multidate=Number(o.multidate)||!1;if(o.multidate!==!1)
o.multidate=Math.max(0,o.multidate)}
o.multidateSeparator=String(o.multidateSeparator);o.weekStart%=7;o.weekEnd=(o.weekStart+6)%7;var format=DPGlobal.parseFormat(o.format);if(o.startDate!==-Infinity){if(!!o.startDate){if(o.startDate instanceof Date)
o.startDate=this._local_to_utc(this._zero_time(o.startDate));else o.startDate=DPGlobal.parseDate(o.startDate,format,o.language,o.assumeNearbyYear)}
else{o.startDate=-Infinity}}
if(o.endDate!==Infinity){if(!!o.endDate){if(o.endDate instanceof Date)
o.endDate=this._local_to_utc(this._zero_time(o.endDate));else o.endDate=DPGlobal.parseDate(o.endDate,format,o.language,o.assumeNearbyYear)}
else{o.endDate=Infinity}}
o.daysOfWeekDisabled=o.daysOfWeekDisabled||[];if(!$.isArray(o.daysOfWeekDisabled))
o.daysOfWeekDisabled=o.daysOfWeekDisabled.split(/[,\s]*/);o.daysOfWeekDisabled=$.map(o.daysOfWeekDisabled,function(d){return parseInt(d,10)});o.daysOfWeekHighlighted=o.daysOfWeekHighlighted||[];if(!$.isArray(o.daysOfWeekHighlighted))
o.daysOfWeekHighlighted=o.daysOfWeekHighlighted.split(/[,\s]*/);o.daysOfWeekHighlighted=$.map(o.daysOfWeekHighlighted,function(d){return parseInt(d,10)});o.datesDisabled=o.datesDisabled||[];if(!$.isArray(o.datesDisabled)){o.datesDisabled=[o.datesDisabled]}
o.datesDisabled=$.map(o.datesDisabled,function(d){return DPGlobal.parseDate(d,format,o.language,o.assumeNearbyYear)});var plc=String(o.orientation).toLowerCase().split(/\s+/g),_plc=o.orientation.toLowerCase();plc=$.grep(plc,function(word){return/^auto|left|right|top|bottom$/.test(word)});o.orientation={x:'auto',y:'auto'};if(!_plc||_plc==='auto');else if(plc.length===1){switch(plc[0]){case 'top':case 'bottom':o.orientation.y=plc[0];break;case 'left':case 'right':o.orientation.x=plc[0];break}}
else{_plc=$.grep(plc,function(word){return/^left|right$/.test(word)});o.orientation.x=_plc[0]||'auto';_plc=$.grep(plc,function(word){return/^top|bottom$/.test(word)});o.orientation.y=_plc[0]||'auto'}
if(o.defaultViewDate){var year=o.defaultViewDate.year||new Date().getFullYear();var month=o.defaultViewDate.month||0;var day=o.defaultViewDate.day||1;o.defaultViewDate=UTCDate(year,month,day)}else{o.defaultViewDate=UTCToday()}},_events:[],_secondaryEvents:[],_applyEvents:function(evs){for(var i=0,el,ch,ev;i<evs.length;i++){el=evs[i][0];if(evs[i].length===2){ch=undefined;ev=evs[i][1]}
else if(evs[i].length===3){ch=evs[i][1];ev=evs[i][2]}
el.on(ev,ch)}},_unapplyEvents:function(evs){for(var i=0,el,ev,ch;i<evs.length;i++){el=evs[i][0];if(evs[i].length===2){ch=undefined;ev=evs[i][1]}
else if(evs[i].length===3){ch=evs[i][1];ev=evs[i][2]}
el.off(ev,ch)}},_buildEvents:function(){var events={keyup:$.proxy(function(e){if($.inArray(e.keyCode,[27,37,39,38,40,32,13,9])===-1)
this.update()},this),keydown:$.proxy(this.keydown,this),paste:$.proxy(this.paste,this)};if(this.o.showOnFocus===!0){events.focus=$.proxy(this.show,this)}
if(this.isInput){this._events=[[this.element,events]]}
else if(this.component&&this.hasInput){this._events=[[this.inputField,events],[this.component,{click:$.proxy(this.show,this)}]]}
else{this._events=[[this.element,{click:$.proxy(this.show,this),keydown:$.proxy(this.keydown,this)}]]}
this._events.push([this.element,'*',{blur:$.proxy(function(e){this._focused_from=e.target},this)}],[this.element,{blur:$.proxy(function(e){this._focused_from=e.target},this)}]);if(this.o.immediateUpdates){this._events.push([this.element,{'changeYear changeMonth':$.proxy(function(e){this.update(e.date)},this)}])}
this._secondaryEvents=[[this.picker,{click:$.proxy(this.click,this)}],[$(window),{resize:$.proxy(this.place,this)}],[$(document),{mousedown:$.proxy(function(e){if(!(this.element.is(e.target)||this.element.find(e.target).length||this.picker.is(e.target)||this.picker.find(e.target).length||this.isInline)){this.hide()}},this)}]]},_attachEvents:function(){this._detachEvents();this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents();this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(event,altdate){var date=altdate||this.dates.get(-1),local_date=this._utc_to_local(date);this.element.trigger({type:event,date:local_date,dates:$.map(this.dates,this._utc_to_local),format:$.proxy(function(ix,format){if(arguments.length===0){ix=this.dates.length-1;format=this.o.format}
else if(typeof ix==='string'){format=ix;ix=this.dates.length-1}
format=format||this.o.format;var date=this.dates.get(ix);return DPGlobal.formatDate(date,format,this.o.language)},this)})},show:function(){if(this.inputField.prop('disabled')||(this.inputField.prop('readonly')&&this.o.enableOnReadonly===!1))
return;if(!this.isInline)
this.picker.appendTo(this.o.container);this.place();this.picker.show();this._attachSecondaryEvents();this._trigger('show');if((window.navigator.msMaxTouchPoints||'ontouchstart' in document)&&this.o.disableTouchKeyboard){$(this.element).blur()}
return this},hide:function(){if(this.isInline||!this.picker.is(':visible'))
return this;this.focusDate=null;this.picker.hide().detach();this._detachSecondaryEvents();this.viewMode=this.o.startView;this.showMode();if(this.o.forceParse&&this.inputField.val())
this.setValue();this._trigger('hide');return this},destroy:function(){this.hide();this._detachEvents();this._detachSecondaryEvents();this.picker.remove();delete this.element.data().datepicker;if(!this.isInput){delete this.element.data().date}
return this},paste:function(evt){var dateString;if(evt.originalEvent.clipboardData&&evt.originalEvent.clipboardData.types&&$.inArray('text/plain',evt.originalEvent.clipboardData.types)!==-1){dateString=evt.originalEvent.clipboardData.getData('text/plain')}
else if(window.clipboardData){dateString=window.clipboardData.getData('Text')}
else{return}
this.setDate(dateString);this.update();evt.preventDefault()},_utc_to_local:function(utc){return utc&&new Date(utc.getTime()+(utc.getTimezoneOffset()*60000))},_local_to_utc:function(local){return local&&new Date(local.getTime()-(local.getTimezoneOffset()*60000))},_zero_time:function(local){return local&&new Date(local.getFullYear(),local.getMonth(),local.getDate())},_zero_utc_time:function(utc){return utc&&new Date(Date.UTC(utc.getUTCFullYear(),utc.getUTCMonth(),utc.getUTCDate()))},getDates:function(){return $.map(this.dates,this._utc_to_local)},getUTCDates:function(){return $.map(this.dates,function(d){return new Date(d)})},getDate:function(){return this._utc_to_local(this.getUTCDate())},getUTCDate:function(){var selected_date=this.dates.get(-1);if(typeof selected_date!=='undefined'){return new Date(selected_date)}else{return null}},clearDates:function(){if(this.inputField){this.inputField.val('')}
this.update();this._trigger('changeDate');if(this.o.autoclose){this.hide()}},setDates:function(){var args=$.isArray(arguments[0])?arguments[0]:arguments;this.update.apply(this,args);this._trigger('changeDate');this.setValue();return this},setUTCDates:function(){var args=$.isArray(arguments[0])?arguments[0]:arguments;this.update.apply(this,$.map(args,this._utc_to_local));this._trigger('changeDate');this.setValue();return this},setDate:alias('setDates'),setUTCDate:alias('setUTCDates'),remove:alias('destroy'),setValue:function(){var formatted=this.getFormattedDate();this.inputField.val(formatted);return this},getFormattedDate:function(format){if(format===undefined)
format=this.o.format;var lang=this.o.language;return $.map(this.dates,function(d){return DPGlobal.formatDate(d,format,lang)}).join(this.o.multidateSeparator)},getStartDate:function(){return this.o.startDate},setStartDate:function(startDate){this._process_options({startDate:startDate});this.update();this.updateNavArrows();return this},getEndDate:function(){return this.o.endDate},setEndDate:function(endDate){this._process_options({endDate:endDate});this.update();this.updateNavArrows();return this},setDaysOfWeekDisabled:function(daysOfWeekDisabled){this._process_options({daysOfWeekDisabled:daysOfWeekDisabled});this.update();this.updateNavArrows();return this},setDaysOfWeekHighlighted:function(daysOfWeekHighlighted){this._process_options({daysOfWeekHighlighted:daysOfWeekHighlighted});this.update();return this},setDatesDisabled:function(datesDisabled){this._process_options({datesDisabled:datesDisabled});this.update();this.updateNavArrows()},place:function(){if(this.isInline)
return this;var calendarWidth=this.picker.outerWidth(),calendarHeight=this.picker.outerHeight(),visualPadding=10,container=$(this.o.container),windowWidth=container.width(),scrollTop=this.o.container==='body'?$(document).scrollTop():container.scrollTop(),appendOffset=container.offset();var parentsZindex=[];this.element.parents().each(function(){var itemZIndex=$(this).css('z-index');if(itemZIndex!=='auto'&&itemZIndex!==0)parentsZindex.push(parseInt(itemZIndex))});var zIndex=Math.max.apply(Math,parentsZindex)+this.o.zIndexOffset;var offset=this.component?this.component.parent().offset():this.element.offset();var height=this.component?this.component.outerHeight(!0):this.element.outerHeight(!1);var width=this.component?this.component.outerWidth(!0):this.element.outerWidth(!1);var left=offset.left-appendOffset.left,top=offset.top-appendOffset.top;if(this.o.container!=='body'){top+=scrollTop}
this.picker.removeClass('datepicker-orient-top datepicker-orient-bottom '+'datepicker-orient-right datepicker-orient-left');if(this.o.orientation.x!=='auto'){this.picker.addClass('datepicker-orient-'+this.o.orientation.x);if(this.o.orientation.x==='right')
left-=calendarWidth-width}
else{if(offset.left<0){this.picker.addClass('datepicker-orient-left');left-=offset.left-visualPadding}else if(left+calendarWidth>windowWidth){this.picker.addClass('datepicker-orient-right');left+=width-calendarWidth}else{this.picker.addClass('datepicker-orient-left')}}
var yorient=this.o.orientation.y,top_overflow;if(yorient==='auto'){top_overflow=-scrollTop+top-calendarHeight;yorient=top_overflow<0?'bottom':'top'}
this.picker.addClass('datepicker-orient-'+yorient);if(yorient==='top')
top-=calendarHeight+parseInt(this.picker.css('padding-top'));else top+=height;if(this.o.rtl){var right=windowWidth-(left+width);this.picker.css({top:top,right:right,zIndex:zIndex})}else{this.picker.css({top:top,left:left,zIndex:zIndex})}
return this},_allow_update:!0,update:function(){if(!this._allow_update)
return this;var oldDates=this.dates.copy(),dates=[],fromArgs=!1;if(arguments.length){$.each(arguments,$.proxy(function(i,date){if(date instanceof Date)
date=this._local_to_utc(date);dates.push(date)},this));fromArgs=!0}
else{dates=this.isInput?this.element.val():this.element.data('date')||this.inputField.val();if(dates&&this.o.multidate)
dates=dates.split(this.o.multidateSeparator);else dates=[dates];delete this.element.data().date}
dates=$.map(dates,$.proxy(function(date){return DPGlobal.parseDate(date,this.o.format,this.o.language,this.o.assumeNearbyYear)},this));dates=$.grep(dates,$.proxy(function(date){return(!this.dateWithinRange(date)||!date)},this),!0);this.dates.replace(dates);if(this.dates.length)
this.viewDate=new Date(this.dates.get(-1));else if(this.viewDate<this.o.startDate)
this.viewDate=new Date(this.o.startDate);else if(this.viewDate>this.o.endDate)
this.viewDate=new Date(this.o.endDate);else this.viewDate=this.o.defaultViewDate;if(fromArgs){this.setValue()}
else if(dates.length){if(String(oldDates)!==String(this.dates))
this._trigger('changeDate')}
if(!this.dates.length&&oldDates.length)
this._trigger('clearDate');this.fill();this.element.change();return this},fillDow:function(){var dowCnt=this.o.weekStart,html='<tr>';if(this.o.calendarWeeks){this.picker.find('.datepicker-days .datepicker-switch').attr('colspan',function(i,val){return parseInt(val)+1});html+='<th class="cw">&#160;</th>'}
while(dowCnt<this.o.weekStart+7){html+='<th class="dow';if($.inArray(dowCnt,this.o.daysOfWeekDisabled)>-1)
html+=' disabled';html+='">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>'}
html+='</tr>';this.picker.find('.datepicker-days thead').append(html)},fillMonths:function(){var localDate=this._utc_to_local(this.viewDate);var html='',i=0;while(i<12){var focused=localDate&&localDate.getMonth()===i?' focused':'';html+='<span class="month'+focused+'">'+dates[this.o.language].monthsShort[i++]+'</span>'}
this.picker.find('.datepicker-months td').html(html)},setRange:function(range){if(!range||!range.length)
delete this.range;else this.range=$.map(range,function(d){return d.valueOf()});this.fill()},getClassNames:function(date){var cls=[],year=this.viewDate.getUTCFullYear(),month=this.viewDate.getUTCMonth(),today=new Date();if(date.getUTCFullYear()<year||(date.getUTCFullYear()===year&&date.getUTCMonth()<month)){cls.push('old')}
else if(date.getUTCFullYear()>year||(date.getUTCFullYear()===year&&date.getUTCMonth()>month)){cls.push('new')}
if(this.focusDate&&date.valueOf()===this.focusDate.valueOf())
cls.push('focused');if(this.o.todayHighlight&&date.getUTCFullYear()===today.getFullYear()&&date.getUTCMonth()===today.getMonth()&&date.getUTCDate()===today.getDate()){cls.push('today')}
if(this.dates.contains(date)!==-1)
cls.push('active');if(!this.dateWithinRange(date)){cls.push('disabled')}
if(this.dateIsDisabled(date)){cls.push('disabled','disabled-date')}
if($.inArray(date.getUTCDay(),this.o.daysOfWeekHighlighted)!==-1){cls.push('highlighted')}
if(this.range){if(date>this.range[0]&&date<this.range[this.range.length-1]){cls.push('range')}
if($.inArray(date.valueOf(),this.range)!==-1){cls.push('selected')}
if(date.valueOf()===this.range[0]){cls.push('range-start')}
if(date.valueOf()===this.range[this.range.length-1]){cls.push('range-end')}}
return cls},_fill_yearsView:function(selector,cssClass,factor,step,currentYear,startYear,endYear,callback){var html,view,year,steps,startStep,endStep,thisYear,i,classes,tooltip,before;html='';view=this.picker.find(selector);year=parseInt(currentYear/factor,10)*factor;startStep=parseInt(startYear/step,10)*step;endStep=parseInt(endYear/step,10)*step;steps=$.map(this.dates,function(d){return parseInt(d.getUTCFullYear()/step,10)*step});view.find('.datepicker-switch').text(year+'-'+(year+step*9));thisYear=year-step;for(i=-1;i<11;i+=1){classes=[cssClass];tooltip=null;if(i===-1){classes.push('old')}else if(i===10){classes.push('new')}
if($.inArray(thisYear,steps)!==-1){classes.push('active')}
if(thisYear<startStep||thisYear>endStep){classes.push('disabled')}
if(thisYear===this.viewDate.getFullYear()){classes.push('focused')}
if(callback!==$.noop){before=callback(new Date(thisYear,0,1));if(before===undefined){before={}}else if(typeof(before)==='boolean'){before={enabled:before}}else if(typeof(before)==='string'){before={classes:before}}
if(before.enabled===!1){classes.push('disabled')}
if(before.classes){classes=classes.concat(before.classes.split(/\s+/))}
if(before.tooltip){tooltip=before.tooltip}}
html+='<span class="'+classes.join(' ')+'"'+(tooltip?' title="'+tooltip+'"':'')+'>'+thisYear+'</span>';thisYear+=step}
view.find('td').html(html)},fill:function(){var d=new Date(this.viewDate),year=d.getUTCFullYear(),month=d.getUTCMonth(),startYear=this.o.startDate!==-Infinity?this.o.startDate.getUTCFullYear():-Infinity,startMonth=this.o.startDate!==-Infinity?this.o.startDate.getUTCMonth():-Infinity,endYear=this.o.endDate!==Infinity?this.o.endDate.getUTCFullYear():Infinity,endMonth=this.o.endDate!==Infinity?this.o.endDate.getUTCMonth():Infinity,todaytxt=dates[this.o.language].today||dates.en.today||'',cleartxt=dates[this.o.language].clear||dates.en.clear||'',titleFormat=dates[this.o.language].titleFormat||dates.en.titleFormat,tooltip,before;if(isNaN(year)||isNaN(month))
return;this.picker.find('.datepicker-days .datepicker-switch').text(DPGlobal.formatDate(d,titleFormat,this.o.language));this.picker.find('tfoot .today').text(todaytxt).toggle(this.o.todayBtn!==!1);this.picker.find('tfoot .clear').text(cleartxt).toggle(this.o.clearBtn!==!1);this.picker.find('thead .datepicker-title').text(this.o.title).toggle(this.o.title!=='');this.updateNavArrows();this.fillMonths();var prevMonth=UTCDate(year,month-1,28),day=DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(),prevMonth.getUTCMonth());prevMonth.setUTCDate(day);prevMonth.setUTCDate(day-(prevMonth.getUTCDay()-this.o.weekStart+7)%7);var nextMonth=new Date(prevMonth);if(prevMonth.getUTCFullYear()<100){nextMonth.setUTCFullYear(prevMonth.getUTCFullYear())}
nextMonth.setUTCDate(nextMonth.getUTCDate()+42);nextMonth=nextMonth.valueOf();var html=[];var clsName;while(prevMonth.valueOf()<nextMonth){if(prevMonth.getUTCDay()===this.o.weekStart){html.push('<tr>');if(this.o.calendarWeeks){var
ws=new Date(+prevMonth+(this.o.weekStart-prevMonth.getUTCDay()-7)%7*864e5),th=new Date(Number(ws)+(7+4-ws.getUTCDay())%7*864e5),yth=new Date(Number(yth=UTCDate(th.getUTCFullYear(),0,1))+(7+4-yth.getUTCDay())%7*864e5),calWeek=(th-yth)/864e5/7+1;html.push('<td class="cw">'+calWeek+'</td>')}}
clsName=this.getClassNames(prevMonth);clsName.push('day');if(this.o.beforeShowDay!==$.noop){before=this.o.beforeShowDay(this._utc_to_local(prevMonth));if(before===undefined)
before={};else if(typeof(before)==='boolean')
before={enabled:before};else if(typeof(before)==='string')
before={classes:before};if(before.enabled===!1)
clsName.push('disabled');if(before.classes)
clsName=clsName.concat(before.classes.split(/\s+/));if(before.tooltip)
tooltip=before.tooltip}
if($.isFunction($.uniqueSort)){clsName=$.uniqueSort(clsName)}else{clsName=$.unique(clsName)}
html.push('<td class="'+clsName.join(' ')+'"'+(tooltip?' title="'+tooltip+'"':'')+'>'+prevMonth.getUTCDate()+'</td>');tooltip=null;if(prevMonth.getUTCDay()===this.o.weekEnd){html.push('</tr>')}
prevMonth.setUTCDate(prevMonth.getUTCDate()+1)}
this.picker.find('.datepicker-days tbody').empty().append(html.join(''));var monthsTitle=dates[this.o.language].monthsTitle||dates.en.monthsTitle||'Months';var months=this.picker.find('.datepicker-months').find('.datepicker-switch').text(this.o.maxViewMode<2?monthsTitle:year).end().find('span').removeClass('active');$.each(this.dates,function(i,d){if(d.getUTCFullYear()===year)
months.eq(d.getUTCMonth()).addClass('active')});if(year<startYear||year>endYear){months.addClass('disabled')}
if(year===startYear){months.slice(0,startMonth).addClass('disabled')}
if(year===endYear){months.slice(endMonth+1).addClass('disabled')}
if(this.o.beforeShowMonth!==$.noop){var that=this;$.each(months,function(i,month){var moDate=new Date(year,i,1);var before=that.o.beforeShowMonth(moDate);if(before===undefined)
before={};else if(typeof(before)==='boolean')
before={enabled:before};else if(typeof(before)==='string')
before={classes:before};if(before.enabled===!1&&!$(month).hasClass('disabled'))
$(month).addClass('disabled');if(before.classes)
$(month).addClass(before.classes);if(before.tooltip)
$(month).prop('title',before.tooltip)})}
this._fill_yearsView('.datepicker-years','year',10,1,year,startYear,endYear,this.o.beforeShowYear);this._fill_yearsView('.datepicker-decades','decade',100,10,year,startYear,endYear,this.o.beforeShowDecade);this._fill_yearsView('.datepicker-centuries','century',1000,100,year,startYear,endYear,this.o.beforeShowCentury)},updateNavArrows:function(){if(!this._allow_update)
return;var d=new Date(this.viewDate),year=d.getUTCFullYear(),month=d.getUTCMonth();switch(this.viewMode){case 0:if(this.o.startDate!==-Infinity&&year<=this.o.startDate.getUTCFullYear()&&month<=this.o.startDate.getUTCMonth()){this.picker.find('.prev').css({visibility:'hidden'})}
else{this.picker.find('.prev').css({visibility:'visible'})}
if(this.o.endDate!==Infinity&&year>=this.o.endDate.getUTCFullYear()&&month>=this.o.endDate.getUTCMonth()){this.picker.find('.next').css({visibility:'hidden'})}
else{this.picker.find('.next').css({visibility:'visible'})}
break;case 1:case 2:case 3:case 4:if(this.o.startDate!==-Infinity&&year<=this.o.startDate.getUTCFullYear()||this.o.maxViewMode<2){this.picker.find('.prev').css({visibility:'hidden'})}
else{this.picker.find('.prev').css({visibility:'visible'})}
if(this.o.endDate!==Infinity&&year>=this.o.endDate.getUTCFullYear()||this.o.maxViewMode<2){this.picker.find('.next').css({visibility:'hidden'})}
else{this.picker.find('.next').css({visibility:'visible'})}
break}},click:function(e){e.preventDefault();e.stopPropagation();var target,dir,day,year,month,monthChanged,yearChanged;target=$(e.target);if(target.hasClass('datepicker-switch')){this.showMode(1)}
var navArrow=target.closest('.prev, .next');if(navArrow.length>0){dir=DPGlobal.modes[this.viewMode].navStep*(navArrow.hasClass('prev')?-1:1);if(this.viewMode===0){this.viewDate=this.moveMonth(this.viewDate,dir);this._trigger('changeMonth',this.viewDate)}else{this.viewDate=this.moveYear(this.viewDate,dir);if(this.viewMode===1){this._trigger('changeYear',this.viewDate)}}
this.fill()}
if(target.hasClass('today')&&!target.hasClass('day')){this.showMode(-2);this._setDate(UTCToday(),this.o.todayBtn==='linked'?null:'view')}
if(target.hasClass('clear')){this.clearDates()}
if(!target.hasClass('disabled')){if(target.hasClass('day')){day=parseInt(target.text(),10)||1;year=this.viewDate.getUTCFullYear();month=this.viewDate.getUTCMonth();if(target.hasClass('old')){if(month===0){month=11;year=year-1;monthChanged=!0;yearChanged=!0}else{month=month-1;monthChanged=!0}}
if(target.hasClass('new')){if(month===11){month=0;year=year+1;monthChanged=!0;yearChanged=!0}else{month=month+1;monthChanged=!0}}
this._setDate(UTCDate(year,month,day));if(yearChanged){this._trigger('changeYear',this.viewDate)}
if(monthChanged){this._trigger('changeMonth',this.viewDate)}}
if(target.hasClass('month')){this.viewDate.setUTCDate(1);day=1;month=target.parent().find('span').index(target);year=this.viewDate.getUTCFullYear();this.viewDate.setUTCMonth(month);this._trigger('changeMonth',this.viewDate);if(this.o.minViewMode===1){this._setDate(UTCDate(year,month,day));this.showMode()}else{this.showMode(-1)}
this.fill()}
if(target.hasClass('year')||target.hasClass('decade')||target.hasClass('century')){this.viewDate.setUTCDate(1);day=1;month=0;year=parseInt(target.text(),10)||0;this.viewDate.setUTCFullYear(year);if(target.hasClass('year')){this._trigger('changeYear',this.viewDate);if(this.o.minViewMode===2){this._setDate(UTCDate(year,month,day))}}
if(target.hasClass('decade')){this._trigger('changeDecade',this.viewDate);if(this.o.minViewMode===3){this._setDate(UTCDate(year,month,day))}}
if(target.hasClass('century')){this._trigger('changeCentury',this.viewDate);if(this.o.minViewMode===4){this._setDate(UTCDate(year,month,day))}}
this.showMode(-1);this.fill()}}
if(this.picker.is(':visible')&&this._focused_from){$(this._focused_from).focus()}
delete this._focused_from},_toggle_multidate:function(date){var ix=this.dates.contains(date);if(!date){this.dates.clear()}
if(ix!==-1){if(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive){this.dates.remove(ix)}}else if(this.o.multidate===!1){this.dates.clear();this.dates.push(date)}
else{this.dates.push(date)}
if(typeof this.o.multidate==='number')
while(this.dates.length>this.o.multidate)
this.dates.remove(0)},_setDate:function(date,which){if(!which||which==='date')
this._toggle_multidate(date&&new Date(date));if(!which||which==='view')
this.viewDate=date&&new Date(date);this.fill();this.setValue();if(!which||which!=='view'){this._trigger('changeDate')}
if(this.inputField){this.inputField.change()}
if(this.o.autoclose&&(!which||which==='date')){this.hide()}},moveDay:function(date,dir){var newDate=new Date(date);newDate.setUTCDate(date.getUTCDate()+dir);return newDate},moveWeek:function(date,dir){return this.moveDay(date,dir*7)},moveMonth:function(date,dir){if(!isValidDate(date))
return this.o.defaultViewDate;if(!dir)
return date;var new_date=new Date(date.valueOf()),day=new_date.getUTCDate(),month=new_date.getUTCMonth(),mag=Math.abs(dir),new_month,test;dir=dir>0?1:-1;if(mag===1){test=dir===-1?function(){return new_date.getUTCMonth()===month}:function(){return new_date.getUTCMonth()!==new_month};new_month=month+dir;new_date.setUTCMonth(new_month);if(new_month<0||new_month>11)
new_month=(new_month+12)%12}
else{for(var i=0;i<mag;i++)
new_date=this.moveMonth(new_date,dir);new_month=new_date.getUTCMonth();new_date.setUTCDate(day);test=function(){return new_month!==new_date.getUTCMonth()}}
while(test()){new_date.setUTCDate(--day);new_date.setUTCMonth(new_month)}
return new_date},moveYear:function(date,dir){return this.moveMonth(date,dir*12)},moveAvailableDate:function(date,dir,fn){do{date=this[fn](date,dir);if(!this.dateWithinRange(date))
return!1;fn='moveDay'}
while(this.dateIsDisabled(date));return date},weekOfDateIsDisabled:function(date){return $.inArray(date.getUTCDay(),this.o.daysOfWeekDisabled)!==-1},dateIsDisabled:function(date){return(this.weekOfDateIsDisabled(date)||$.grep(this.o.datesDisabled,function(d){return isUTCEquals(date,d)}).length>0)},dateWithinRange:function(date){return date>=this.o.startDate&&date<=this.o.endDate},keydown:function(e){if(!this.picker.is(':visible')){if(e.keyCode===40||e.keyCode===27){this.show();e.stopPropagation()}
return}
var dateChanged=!1,dir,newViewDate,focusDate=this.focusDate||this.viewDate;switch(e.keyCode){case 27:if(this.focusDate){this.focusDate=null;this.viewDate=this.dates.get(-1)||this.viewDate;this.fill()}
else this.hide();e.preventDefault();e.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||this.o.daysOfWeekDisabled.length===7)
break;dir=e.keyCode===37||e.keyCode===38?-1:1;if(this.viewMode===0){if(e.ctrlKey){newViewDate=this.moveAvailableDate(focusDate,dir,'moveYear');if(newViewDate)
this._trigger('changeYear',this.viewDate)}
else if(e.shiftKey){newViewDate=this.moveAvailableDate(focusDate,dir,'moveMonth');if(newViewDate)
this._trigger('changeMonth',this.viewDate)}
else if(e.keyCode===37||e.keyCode===39){newViewDate=this.moveAvailableDate(focusDate,dir,'moveDay')}
else if(!this.weekOfDateIsDisabled(focusDate)){newViewDate=this.moveAvailableDate(focusDate,dir,'moveWeek')}}else if(this.viewMode===1){if(e.keyCode===38||e.keyCode===40){dir=dir*4}
newViewDate=this.moveAvailableDate(focusDate,dir,'moveMonth')}else if(this.viewMode===2){if(e.keyCode===38||e.keyCode===40){dir=dir*4}
newViewDate=this.moveAvailableDate(focusDate,dir,'moveYear')}
if(newViewDate){this.focusDate=this.viewDate=newViewDate;this.setValue();this.fill();e.preventDefault()}
break;case 13:if(!this.o.forceParse)
break;focusDate=this.focusDate||this.dates.get(-1)||this.viewDate;if(this.o.keyboardNavigation){this._toggle_multidate(focusDate);dateChanged=!0}
this.focusDate=null;this.viewDate=this.dates.get(-1)||this.viewDate;this.setValue();this.fill();if(this.picker.is(':visible')){e.preventDefault();e.stopPropagation();if(this.o.autoclose)
this.hide()}
break;case 9:this.focusDate=null;this.viewDate=this.dates.get(-1)||this.viewDate;this.fill();this.hide();break}
if(dateChanged){if(this.dates.length)
this._trigger('changeDate');else this._trigger('clearDate');if(this.inputField){this.inputField.change()}}},showMode:function(dir){if(dir){this.viewMode=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,this.viewMode+dir))}
this.picker.children('div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).show();this.updateNavArrows()}};var DateRangePicker=function(element,options){$(element).data('datepicker',this);this.element=$(element);this.inputs=$.map(options.inputs,function(i){return i.jquery?i[0]:i});delete options.inputs;datepickerPlugin.call($(this.inputs),options).on('changeDate',$.proxy(this.dateUpdated,this));this.pickers=$.map(this.inputs,function(i){return $(i).data('datepicker')});this.updateDates()};DateRangePicker.prototype={updateDates:function(){this.dates=$.map(this.pickers,function(i){return i.getUTCDate()});this.updateRanges()},updateRanges:function(){var range=$.map(this.dates,function(d){return d.valueOf()});$.each(this.pickers,function(i,p){p.setRange(range)})},dateUpdated:function(e){if(this.updating)
return;this.updating=!0;var dp=$(e.target).data('datepicker');if(typeof(dp)==="undefined"){return}
var new_date=dp.getUTCDate(),i=$.inArray(e.target,this.inputs),j=i-1,k=i+1,l=this.inputs.length;if(i===-1)
return;$.each(this.pickers,function(i,p){if(!p.getUTCDate())
p.setUTCDate(new_date)});if(new_date<this.dates[j]){while(j>=0&&new_date<this.dates[j]){this.pickers[j--].setUTCDate(new_date)}}
else if(new_date>this.dates[k]){while(k<l&&new_date>this.dates[k]){this.pickers[k++].setUTCDate(new_date)}}
this.updateDates();delete this.updating},remove:function(){$.map(this.pickers,function(p){p.remove()});delete this.element.data().datepicker}};function opts_from_el(el,prefix){var data=$(el).data(),out={},inkey,replace=new RegExp('^'+prefix.toLowerCase()+'([A-Z])');prefix=new RegExp('^'+prefix.toLowerCase());function re_lower(_,a){return a.toLowerCase()}
for(var key in data)
if(prefix.test(key)){inkey=key.replace(replace,re_lower);out[inkey]=data[key]}
return out}
function opts_from_locale(lang){var out={};if(!dates[lang]){lang=lang.split('-')[0];if(!dates[lang])
return}
var d=dates[lang];$.each(locale_opts,function(i,k){if(k in d)
out[k]=d[k]});return out}
var old=$.fn.datepicker;var datepickerPlugin=function(option){var args=Array.apply(null,arguments);args.shift();var internal_return;this.each(function(){var $this=$(this),data=$this.data('datepicker'),options=typeof option==='object'&&option;if(!data){var elopts=opts_from_el(this,'date'),xopts=$.extend({},defaults,elopts,options),locopts=opts_from_locale(xopts.language),opts=$.extend({},defaults,locopts,elopts,options);if($this.hasClass('input-daterange')||opts.inputs){$.extend(opts,{inputs:opts.inputs||$this.find('input').toArray()});data=new DateRangePicker(this,opts)}
else{data=new Datepicker(this,opts)}
$this.data('datepicker',data)}
if(typeof option==='string'&&typeof data[option]==='function'){internal_return=data[option].apply(data,args)}});if(internal_return===undefined||internal_return instanceof Datepicker||internal_return instanceof DateRangePicker)
return this;if(this.length>1)
throw new Error('Using only allowed for the collection of a single element ('+option+' function)');else return internal_return};$.fn.datepicker=datepickerPlugin;var defaults=$.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:$.noop,beforeShowMonth:$.noop,beforeShowYear:$.noop,beforeShowDecade:$.noop,beforeShowCentury:$.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:Infinity,forceParse:!0,format:'mm/dd/yyyy',keyboardNavigation:!0,language:'en',minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:',',orientation:"auto",rtl:!1,startDate:-Infinity,startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:'body',immediateUpdates:!1,title:'',templates:{leftArrow:'&laquo;',rightArrow:'&raquo;'}};var locale_opts=$.fn.datepicker.locale_opts=['format','rtl','weekStart'];$.fn.datepicker.Constructor=Datepicker;var dates=$.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}};var DPGlobal={modes:[{clsName:'days',navFnc:'Month',navStep:1},{clsName:'months',navFnc:'FullYear',navStep:1},{clsName:'years',navFnc:'FullYear',navStep:10},{clsName:'decades',navFnc:'FullDecade',navStep:100},{clsName:'centuries',navFnc:'FullCentury',navStep:1000}],isLeapYear:function(year){return(((year%4===0)&&(year%100!==0))||(year%400===0))},getDaysInMonth:function(year,month){return[31,(DPGlobal.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(format){if(typeof format.toValue==='function'&&typeof format.toDisplay==='function')
return format;var separators=format.replace(this.validParts,'\0').split('\0'),parts=format.match(this.validParts);if(!separators||!separators.length||!parts||parts.length===0){throw new Error("Invalid date format.")}
return{separators:separators,parts:parts}},parseDate:function(date,format,language,assumeNearby){if(!date)
return undefined;if(date instanceof Date)
return date;if(typeof format==='string')
format=DPGlobal.parseFormat(format);if(format.toValue)
return format.toValue(date,format,language);var part_re=/([\-+]\d+)([dmwy])/,parts=date.match(/([\-+]\d+)([dmwy])/g),fn_map={d:'moveDay',m:'moveMonth',w:'moveWeek',y:'moveYear'},dateAliases={yesterday:'-1d',today:'+0d',tomorrow:'+1d'},part,dir,i,fn;if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){date=new Date();for(i=0;i<parts.length;i++){part=part_re.exec(parts[i]);dir=parseInt(part[1]);fn=fn_map[part[2]];date=Datepicker.prototype[fn](date,dir)}
return UTCDate(date.getUTCFullYear(),date.getUTCMonth(),date.getUTCDate())}
if(typeof dateAliases[date]!=='undefined'){date=dateAliases[date];parts=date.match(/([\-+]\d+)([dmwy])/g);if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){date=new Date();for(i=0;i<parts.length;i++){part=part_re.exec(parts[i]);dir=parseInt(part[1]);fn=fn_map[part[2]];date=Datepicker.prototype[fn](date,dir)}
return UTCDate(date.getUTCFullYear(),date.getUTCMonth(),date.getUTCDate())}}
parts=date&&date.match(this.nonpunctuation)||[];date=new Date();function applyNearbyYear(year,threshold){if(threshold===!0)
threshold=10;if(year<100){year+=2000;if(year>((new Date()).getFullYear()+threshold)){year-=100}}
return year}
var parsed={},setters_order=['yyyy','yy','M','MM','m','mm','d','dd'],setters_map={yyyy:function(d,v){return d.setUTCFullYear(assumeNearby?applyNearbyYear(v,assumeNearby):v)},yy:function(d,v){return d.setUTCFullYear(assumeNearby?applyNearbyYear(v,assumeNearby):v)},m:function(d,v){if(isNaN(d))
return d;v-=1;while(v<0)v+=12;v%=12;d.setUTCMonth(v);while(d.getUTCMonth()!==v)
d.setUTCDate(d.getUTCDate()-1);return d},d:function(d,v){return d.setUTCDate(v)}},val,filtered;setters_map.M=setters_map.MM=setters_map.mm=setters_map.m;setters_map.dd=setters_map.d;date=UTCToday();var fparts=format.parts.slice();if(parts.length!==fparts.length){fparts=$(fparts).filter(function(i,p){return $.inArray(p,setters_order)!==-1}).toArray()}
function match_part(){var m=this.slice(0,parts[i].length),p=parts[i].slice(0,m.length);return m.toLowerCase()===p.toLowerCase()}
if(parts.length===fparts.length){var cnt;for(i=0,cnt=fparts.length;i<cnt;i++){val=parseInt(parts[i],10);part=fparts[i];if(isNaN(val)){switch(part){case 'MM':filtered=$(dates[language].months).filter(match_part);val=$.inArray(filtered[0],dates[language].months)+1;break;case 'M':filtered=$(dates[language].monthsShort).filter(match_part);val=$.inArray(filtered[0],dates[language].monthsShort)+1;break}}
parsed[part]=val}
var _date,s;for(i=0;i<setters_order.length;i++){s=setters_order[i];if(s in parsed&&!isNaN(parsed[s])){_date=new Date(date);setters_map[s](_date,parsed[s]);if(!isNaN(_date))
date=_date}}}
return date},formatDate:function(date,format,language){if(!date)
return '';if(typeof format==='string')
format=DPGlobal.parseFormat(format);if(format.toDisplay)
return format.toDisplay(date,format,language);var val={d:date.getUTCDate(),D:dates[language].daysShort[date.getUTCDay()],DD:dates[language].days[date.getUTCDay()],m:date.getUTCMonth()+1,M:dates[language].monthsShort[date.getUTCMonth()],MM:dates[language].months[date.getUTCMonth()],yy:date.getUTCFullYear().toString().substring(2),yyyy:date.getUTCFullYear()};val.dd=(val.d<10?'0':'')+val.d;val.mm=(val.m<10?'0':'')+val.m;date=[];var seps=$.extend([],format.separators);for(var i=0,cnt=format.parts.length;i<=cnt;i++){if(seps.length)
date.push(seps.shift());date.push(val[format.parts[i]])}
return date.join('')},headTemplate:'<thead>'+'<tr>'+'<th colspan="7" class="datepicker-title"></th>'+'</tr>'+'<tr>'+'<th class="prev">&laquo;</th>'+'<th colspan="5" class="datepicker-switch"></th>'+'<th class="next">&raquo;</th>'+'</tr>'+'</thead>',contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot>'+'<tr>'+'<th colspan="7" class="today"></th>'+'</tr>'+'<tr>'+'<th colspan="7" class="clear"></th>'+'</tr>'+'</tfoot>'};DPGlobal.template='<div class="datepicker">'+'<div class="datepicker-days">'+'<table class="table-condensed">'+DPGlobal.headTemplate+'<tbody></tbody>'+DPGlobal.footTemplate+'</table>'+'</div>'+'<div class="datepicker-months">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'</table>'+'</div>'+'<div class="datepicker-years">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'</table>'+'</div>'+'<div class="datepicker-decades">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'</table>'+'</div>'+'<div class="datepicker-centuries">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'</table>'+'</div>'+'</div>';$.fn.datepicker.DPGlobal=DPGlobal;$.fn.datepicker.noConflict=function(){$.fn.datepicker=old;return this};$.fn.datepicker.version='1.6.4';$(document).on('focus.datepicker.data-api click.datepicker.data-api','[data-provide="datepicker"]',function(e){var $this=$(this);if($this.data('datepicker'))
return;e.preventDefault();datepickerPlugin.call($this,'show')});$(function(){datepickerPlugin.call($('[data-provide="datepicker-inline"]'))})}))

File diff suppressed because one or more lines are too long

View file

@ -1,44 +0,0 @@
/*
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Uses the built in easing capabilities added In jQuery 1.1
* to offer multiple easing options
*
* TERMS OF USE - EASING EQUATIONS
*
* Open source under the BSD License.
*
* Copyright © 2001 Robert Penner
* All rights reserved.
*
* TERMS OF USE - jQuery Easing
*
* Open source under the BSD License.
*
* Copyright © 2008 George McGinley Smith
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){"use strict";return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){"use strict";return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){"use strict";return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){"use strict";return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){"use strict";return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){"use strict";return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){"use strict";return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){"use strict";return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){"use strict";return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){"use strict";return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){"use strict";return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){"use strict";return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){"use strict";return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){"use strict";return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){"use strict";if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){"use strict";return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){"use strict";return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){"use strict";var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){"use strict";var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){"use strict";var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){"use strict";if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){"use strict";if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){"use strict";if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){"use strict";return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){"use strict";if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){"use strict";if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,208 +0,0 @@
/* Description: Custom JS file */
(function($) {
"use strict";
/* Navbar Scripts */
// jQuery for page scrolling feature - requires jQuery Easing plugin
$(function() {
$(document).on('click', 'a.page-scroll', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 600, 'easeInOutExpo');
event.preventDefault();
});
});
// offcanvas script from Bootstrap + added element to close menu on click in small viewport
$('[data-toggle="offcanvas"], .navbar-nav li a:not(.dropdown-toggle').on('click', function () {
$('.offcanvas-collapse').toggleClass('open')
})
// hover in desktop mode
function toggleDropdown (e) {
const _d = $(e.target).closest('.dropdown'),
_m = $('.dropdown-menu', _d);
setTimeout(function(){
const shouldOpen = e.type !== 'click' && _d.is(':hover');
_m.toggleClass('show', shouldOpen);
_d.toggleClass('show', shouldOpen);
$('[data-toggle="dropdown"]', _d).attr('aria-expanded', shouldOpen);
}, e.type === 'mouseleave' ? 300 : 0);
}
$('body')
.on('mouseenter mouseleave','.dropdown',toggleDropdown)
.on('click', '.dropdown-menu a', toggleDropdown);
/* Header Slider - Swiper */
var headerSlider = new Swiper('.header-slider', {
autoplay: {
delay: 3500,
disableOnInteraction: false
},
loop: true,
effect: "fade",
speed: 700
});
/* Image Slider - Swiper */
var imageSlider = new Swiper('.image-slider', {
autoplay: {
delay: 3000,
disableOnInteraction: false
},
loop: false,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
slidesPerView: 3,
spaceBetween: 20,
breakpoints: {
// when window is <= 767px
767: {
slidesPerView: 1
},
// when window is <= 991px
991: {
slidesPerView: 2,
spaceBetween: 10
},
// when window is <= 1199px
1199: {
slidesPerView: 3,
spaceBetween: 20
},
}
});
/* Image Slider Room - Swiper */
var imageSlider = new Swiper('.image-slider-room', {
autoplay: {
delay: 3000,
disableOnInteraction: false
},
loop: false,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
}
});
/* Card Slider - Swiper */
var cardSlider = new Swiper('.card-slider', {
autoplay: {
delay: 4000,
disableOnInteraction: false
},
loop: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
slidesPerView: 3,
spaceBetween: 30,
breakpoints: {
// when window is <= 767px
767: {
slidesPerView: 1
},
// when window is <= 991px
991: {
slidesPerView: 2
}
}
});
/* Image Lightbox - Magnific Popup */
$('.popup-link').magnificPopup({
removalDelay: 300,
type: 'image',
callbacks: {
beforeOpen: function() {
this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure ' + this.st.el.attr('data-effect'));
},
beforeClose: function() {
$('.mfp-figure').addClass('fadeOut');
}
},
gallery:{
enabled:true //enable gallery mode
}
});
/* Details Lightbox - Magnific Popup */
$('.popup-with-move-anim').magnificPopup({
type: 'inline',
fixedContentPos: true,
fixedBgPos: true,
overflowY: 'auto',
closeBtnInside: true,
preloader: false,
midClick: true,
removalDelay: 300,
mainClass: 'my-mfp-slide-bottom'
});
/* Move Form Fields Label When User Types */
// for input and textarea fields
$("input, textarea").keyup(function(){
if ($(this).val() != '') {
$(this).addClass('notEmpty');
} else {
$(this).removeClass('notEmpty');
}
});
/* Datepicker - Bootstrap Datepicker */
$('#start').datepicker({
todayHighlight: true,
autoclose: true,
format: 'MM/dd/yyyy',
});
// detects change to selected date to keep the label above the value in the input field
$('#start').datepicker().on('changeDate', function(e) {
$("input[id=start]").addClass('notEmpty');
});
$('#end').datepicker({
autoclose: true,
format: 'MM/dd/yyyy'
});
// detects change to selected date to keep the label above the value in the input field// keeps the label above the value in the input field
$('#end').datepicker().on('changeDate', function(e) {
$("input[id=end]").addClass('notEmpty');
});
/* Back To Top Button */
// create the back to top button
$('body').prepend('<a href="body" class="back-to-top page-scroll">Back to Top</a>');
var amountScrolled = 700;
$(window).scroll(function() {
if ($(window).scrollTop() > amountScrolled) {
$('a.back-to-top').fadeIn('500');
} else {
$('a.back-to-top').fadeOut('500');
}
});
/* Removes Long Focus On Buttons */
$(".button, a, button").mouseup(function() {
$(this).blur();
});
})(jQuery);

File diff suppressed because one or more lines are too long

22
astro.config.mjs Normal file
View file

@ -0,0 +1,22 @@
// @ts-check
import { defineConfig } from "astro/config";
import sitemap from "@astrojs/sitemap";
import tailwindcss from "@tailwindcss/vite";
// https://astro.build/config
export default defineConfig({
site: "https://villafleuriegp.com",
i18n: {
locales: ["fr", "en"],
defaultLocale: "fr",
routing: {
prefixDefaultLocale: true,
redirectToDefaultLocale: true,
},
},
integrations: [sitemap()],
vite: {
plugins: [tailwindcss()],
},
});

View file

@ -1 +0,0 @@
name = "VillaFleurie"

View file

@ -1,3 +0,0 @@
name = "contact"
title = "Contact | VillaFleurie - Locations de vacances au Gosier en Guadeloupe"
template = "contact.html"

View file

@ -1,3 +0,0 @@
name = "index"
title = "VillaFleurie | Locations de vacances au Gosier en Guadeloupe"
template = "index.html"

View file

@ -1,3 +0,0 @@
name = "reservation"
title = "Reservation | VillaFleurie - Locations de vacances au Gosier en Guadeloupe"
template = "reservation.html"

View file

@ -1,3 +0,0 @@
name = "t2-corail"
title = "T2 Corail, petit nid douillet | VillaFleurie - Locations de vacances au Gosier en Guadeloupe"
template = "t2-corail.html"

View file

@ -1,3 +0,0 @@
name = "t3-azur"
title = "T3 Azur, besoin d'un lieu confortable | VillaFleurie - Locations de vacances au Gosier en Guadeloupe"
template = "t3-azur.html"

324
dist/contact.html vendored
View file

@ -1,324 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<!-- SEO Meta Tags -->
<meta
name="description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<meta name="author" content="VillaFleurie" />
<!-- OG Meta Tags to improve the way the post looks when you share the page on Facebook, Twitter, LinkedIn -->
<meta property="og:site_name" content="VillaFleurie" />
<!-- website name -->
<meta property="og:site" content="" />
<!-- website link -->
<meta property="og:title" content="VillaFleurie" />
<!-- title shown in the actual shared post -->
<meta
property="og:description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<!-- description shown in the actual shared post -->
<meta property="og:image" content="" />
<!-- image link, make sure it's jpg -->
<meta property="og:url" content="/" />
<!-- where do you want your post to link to -->
<meta name="twitter:card" content="summary_large_image" />
<!-- to have large image post format in Twitter -->
<!-- Webpage Title -->
<title>VillaFleurie</title>
<!-- Styles -->
<link
href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,600;0,700;1,400;1,700&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css2?family=PT+Serif:ital,wght@1,700&display=swap"
rel="stylesheet"
/>
<link href="../css/bootstrap.css" rel="stylesheet" />
<link href="../css/fontawesome-all.css" rel="stylesheet" />
<link href="../css/bootstrap-datepicker3.css" rel="stylesheet" />
<link href="../css/swiper.css" rel="stylesheet" />
<link href="../css/magnific-popup.css" rel="stylesheet" />
<link href="../css/styles.css" rel="stylesheet" />
<!-- Favicon -->
<link rel="icon" href="../images/logo.png" />
<script
defer
data-domain="villafleuriegp.com"
src="https://plausible.nemausat.com/js/script.outbound-links.js"
></script>
<script>
window.plausible =
window.plausible ||
function () {
(window.plausible.q = window.plausible.q || []).push(arguments);
};
</script>
</head>
<body data-spy="scroll" data-target=".fixed-top">
<!-- Navigation -->
<nav class="navbar navbar-expand-lg fixed-top navbar-light">
<div class="container">
<!-- Text Logo - Use this if you don't have a graphic logo -->
<!-- <a class="navbar-brand logo-text page-scroll" href="index.html">Villa</a> -->
<!-- Image Logo -->
<a class="navbar-brand logo-image" href="index.html"
><img
src="../images/logo.png"
alt="VillaFleurie logo"
style="height: 76px"
/></a>
<button
class="navbar-toggler p-0 border-0"
type="button"
data-toggle="offcanvas"
>
<span class="navbar-toggler-icon"></span>
</button>
<div
class="navbar-collapse offcanvas-collapse"
id="navbarsExampleDefault"
>
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="#"
id="dropdown01"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>Chambres</a
>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<a class="dropdown-item page-scroll" href="t2-corail.html"
>T2 Corail</a
>
<div class="dropdown-divider"></div>
<a class="dropdown-item page-scroll" href="t3-azur.html"
>T3 Azur</a
>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="contact.html">Contact</a>
</li>
</ul>
<span class="nav-item ml-auto">
<a class="btn-outline-sm" href="tel:+33658961279">
<i class="fas fa-phone-alt"></i>+33 6 58 96 12 79</a
>
</span>
</div>
<!-- end of navbar-collapse -->
</div>
<!-- end of container -->
</nav>
<!-- end of navbar -->
<!-- end of navigation -->
<!-- Header -->
<header class="ex-header bg-gray">
<div class="container">
<div class="row">
<div class="col-xl-10 offset-xl-1">
<h1 class="green">Nous contacter</h1>
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</header> <!-- end of ex-header -->
<!-- end of header -->
<!-- Form -->
<div class="ex-form-1 bg-gray pb-6">
<div class="container">
<div class="row">
<div class="col-xl-10 offset-xl-1">
<p class="mb-5">Voici l'occasion de nous contacter si vous êtes à la recherche d'une location capable
d'offrir une expérience étonnante en termes de confort et de détente <a
href="mailto:location.villafleurie@gmail.com">location.villafleurie@gmail.com</a> ou
appelez-nous quand vous le pouvez <a href="tel:+33658961279">+33 6 58 96 12 79</a>.</p>
<p>
<!-- Contact Form -->
<form id="contactForm" name="contactForm" data-toggle="validator" data-focus="false" method="post"
action="/reservation.html" netlify>
<div class="form-group">
<input type="text" class="form-control-input" id="cname" name="name" required>
<label class="label-control" for="cname">Nom complet</label>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<input type="email" class="form-control-input" id="cemail" name="email" required>
<label class="label-control" for="cemail">Email</label>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<textarea class="form-control-textarea" id="cmessage" name="message" required></textarea>
<label class="label-control" for="cmessage">Votre message</label>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<button type="submit" class="form-control-submit-button">Envoyer</button>
</div>
<div class="form-message">
<div id="cmsgSubmit" class="h3 text-center hidden"></div>
</div>
</form>
<!-- end of contact form -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of ex-form-1 -->
<!-- end of form -->
<!-- Basic -->
<div class="ex-basic-1 pt-5">
<div class="container">
<div class="row">
<div class="col-xl-10 offset-xl-1">
<h2 class="mt-3 mb-4">Où nous trouver</h2>
<p class="mb-5">Notre mission à VillaFleurie est de nous concentrer sur tous les détails pour faire de
votre séjour une expérience extraordinaire. une expérience inoubliable. Nous avons formé notre
personnel pour qu'il réponde à vos attentes et les dépasse, afin que votre expérience à la
VillaFleurie ne soit pas un simple souvenir, mais l'un de vos meilleurs souvenirs.
Nous sommes passionnés et nous ne vous décevrons pas.</p>
<div class="map-responsive mb-5">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3831.2598078323063!2d-61.48991482394046!3d16.20707768449259!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x8c134f148764f5d5%3A0x981bb218cee8b16c!2sVillaFleurie!5e0!3m2!1sfr!2sde!4v1685258248016!5m2!1sfr!2sde"
width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy"
referrerpolicy="no-referrer-when-downgrade"></iframe>
</div>
<a class="btn-solid-reg mb-6" href="index.html#header">Réserver</a>
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of ex-basic-1 -->
<!-- end of basic -->
<!-- Footer -->
<div class="footer">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h3>
Si vous souhaitez passer un moment confortable et relaxant,
n'hésitez pas à nous contacter :
<a class="green" href="mailto:location.villafleurie@gmail.com">
location.villafleurie@gmail.com
</a>
</h3>
<div class="social-container">
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-facebook-f fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-twitter fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-pinterest-p fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-instagram fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-youtube fa-stack-1x"></i>
</a>
</span>
</div>
<!-- end of social-container -->
</div>
<!-- end of col -->
</div>
<!-- end of row -->
</div>
<!-- end of container -->
</div>
<!-- end of footer -->
<!-- end of footer -->
<!-- Copyright -->
<div class="copyright">
<div class="container">
<div class="row">
<div class="col-lg-12">
<hr class="divider" />
</div>
<!-- end of col -->
</div>
<!-- end of row -->
<div class="row">
<div class="col-lg-6">
<ul class="list-unstyled li-space-lg p-small">
<li><a href="t2-corail.html">T2 Corail</a></li>
<li><a href="t3-azur.html">T3 Azur</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
<!-- end of list-unstyled -->
</div>
<!-- end of col -->
<div class="col-lg-6">
<p class="p-small statement">Copyright © VillaFleurie</p>
</div>
<!-- end of col -->
</div>
<!-- enf of row -->
</div>
<!-- end of container -->
</div>
<!-- end of copyright -->
<!-- end of copyright -->
<!-- Scripts -->
<script src="../js/jquery.min.js"></script>
<!-- jQuery for Bootstrap's JavaScript plugins -->
<script src="../js/bootstrap.min.js"></script>
<!-- Bootstrap framework -->
<script src="../js/jquery.easing.min.js"></script>
<!-- jQuery Easing for smooth scrolling between anchors -->
<script src="../js/swiper.min.js"></script>
<!-- Swiper for image and text sliders -->
<script src="../js/jquery.magnific-popup.js"></script>
<!-- Magnific Popup for lightboxes -->
<script src="../js/bootstrap-datepicker.min.js"></script>
<!-- Datepicker for Bootstrap -->
<script src="../js/scripts.js"></script>
<!-- Custom scripts -->
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -1,351 +0,0 @@
/* Magnific Popup CSS */
.mfp-bg {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1042;
overflow: hidden;
position: fixed;
background: #0b0b0b;
opacity: 0.8; }
.mfp-wrap {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1043;
position: fixed;
outline: none !important;
-webkit-backface-visibility: hidden; }
.mfp-container {
text-align: center;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
padding: 0 8px;
box-sizing: border-box; }
.mfp-container:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle; }
.mfp-align-top .mfp-container:before {
display: none; }
.mfp-content {
position: relative;
display: inline-block;
vertical-align: middle;
margin: 0 auto;
text-align: left;
z-index: 1045; }
.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
width: 100%;
cursor: auto; }
.mfp-ajax-cur {
cursor: progress; }
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
cursor: -moz-zoom-out;
cursor: -webkit-zoom-out;
cursor: zoom-out; }
.mfp-zoom {
cursor: pointer;
cursor: -webkit-zoom-in;
cursor: -moz-zoom-in;
cursor: zoom-in; }
.mfp-auto-cursor .mfp-content {
cursor: auto; }
.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none; }
.mfp-loading.mfp-figure {
display: none; }
.mfp-hide {
display: none !important; }
.mfp-preloader {
color: #CCC;
position: absolute;
top: 50%;
width: auto;
text-align: center;
margin-top: -0.8em;
left: 8px;
right: 8px;
z-index: 1044; }
.mfp-preloader a {
color: #CCC; }
.mfp-preloader a:hover {
color: #FFF; }
.mfp-s-ready .mfp-preloader {
display: none; }
.mfp-s-error .mfp-content {
display: none; }
button.mfp-close,
button.mfp-arrow {
overflow: visible;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
display: block;
outline: none;
padding: 0;
z-index: 1046;
box-shadow: none;
touch-action: manipulation; }
button::-moz-focus-inner {
padding: 0;
border: 0; }
.mfp-close {
width: 44px;
height: 44px;
line-height: 44px;
position: absolute;
right: 0;
top: 0;
text-decoration: none;
text-align: center;
opacity: 0.65;
padding: 0 0 18px 10px;
color: #FFF;
font-style: normal;
font-size: 28px;
font-family: Arial, Baskerville, monospace; }
.mfp-close:hover,
.mfp-close:focus {
opacity: 1; }
.mfp-close:active {
top: 1px; }
.mfp-close-btn-in .mfp-close {
color: #333; }
.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
color: #FFF;
right: -6px;
text-align: right;
padding-right: 6px;
width: 100%; }
.mfp-counter {
position: absolute;
top: 0;
right: 0;
color: #CCC;
font-size: 12px;
line-height: 18px;
white-space: nowrap; }
.mfp-arrow {
position: absolute;
opacity: 0.65;
margin: 0;
top: 50%;
margin-top: -55px;
padding: 0;
width: 90px;
height: 110px;
-webkit-tap-highlight-color: transparent; }
.mfp-arrow:active {
margin-top: -54px; }
.mfp-arrow:hover,
.mfp-arrow:focus {
opacity: 1; }
.mfp-arrow:before,
.mfp-arrow:after {
content: '';
display: block;
width: 0;
height: 0;
position: absolute;
left: 0;
top: 0;
margin-top: 35px;
margin-left: 35px;
border: medium inset transparent; }
.mfp-arrow:after {
border-top-width: 13px;
border-bottom-width: 13px;
top: 8px; }
.mfp-arrow:before {
border-top-width: 21px;
border-bottom-width: 21px;
opacity: 0.7; }
.mfp-arrow-left {
left: 0; }
.mfp-arrow-left:after {
border-right: 17px solid #FFF;
margin-left: 31px; }
.mfp-arrow-left:before {
margin-left: 25px;
border-right: 27px solid #3F3F3F; }
.mfp-arrow-right {
right: 0; }
.mfp-arrow-right:after {
border-left: 17px solid #FFF;
margin-left: 39px; }
.mfp-arrow-right:before {
border-left: 27px solid #3F3F3F; }
.mfp-iframe-holder {
padding-top: 40px;
padding-bottom: 40px; }
.mfp-iframe-holder .mfp-content {
line-height: 0;
width: 100%;
max-width: 900px; }
.mfp-iframe-holder .mfp-close {
top: -40px; }
.mfp-iframe-scaler {
width: 100%;
height: 0;
overflow: hidden;
padding-top: 56.25%; }
.mfp-iframe-scaler iframe {
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #000; }
/* Main image in popup */
img.mfp-img {
width: auto;
max-width: 100%;
height: auto;
display: block;
line-height: 0;
box-sizing: border-box;
padding: 40px 0 40px;
margin: 0 auto; }
/* The shadow behind the image */
.mfp-figure {
line-height: 0; }
.mfp-figure:after {
content: '';
position: absolute;
left: 0;
top: 40px;
bottom: 40px;
display: block;
right: 0;
width: auto;
height: auto;
z-index: -1;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #444; }
.mfp-figure small {
color: #BDBDBD;
display: block;
font-size: 12px;
line-height: 14px; }
.mfp-figure figure {
margin: 0; }
.mfp-bottom-bar {
margin-top: -36px;
position: absolute;
top: 100%;
left: 0;
width: 100%;
cursor: auto; }
.mfp-title {
text-align: left;
line-height: 18px;
color: #F3F3F3;
word-wrap: break-word;
padding-right: 36px; }
.mfp-image-holder .mfp-content {
max-width: 100%; }
.mfp-gallery .mfp-image-holder .mfp-figure {
cursor: pointer; }
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
/**
* Remove all paddings around the image on small screen
*/
.mfp-img-mobile .mfp-image-holder {
padding-left: 0;
padding-right: 0; }
.mfp-img-mobile img.mfp-img {
padding: 0; }
.mfp-img-mobile .mfp-figure:after {
top: 0;
bottom: 0; }
.mfp-img-mobile .mfp-figure small {
display: inline;
margin-left: 5px; }
.mfp-img-mobile .mfp-bottom-bar {
background: rgba(0, 0, 0, 0.6);
bottom: 0;
margin: 0;
top: auto;
padding: 3px 5px;
position: fixed;
box-sizing: border-box; }
.mfp-img-mobile .mfp-bottom-bar:empty {
padding: 0; }
.mfp-img-mobile .mfp-counter {
right: 5px;
top: 3px; }
.mfp-img-mobile .mfp-close {
top: 0;
right: 0;
width: 35px;
height: 35px;
line-height: 35px;
background: rgba(0, 0, 0, 0.6);
position: fixed;
text-align: center;
padding: 0; } }
@media all and (max-width: 900px) {
.mfp-arrow {
-webkit-transform: scale(0.75);
transform: scale(0.75); }
.mfp-arrow-left {
-webkit-transform-origin: 0;
transform-origin: 0; }
.mfp-arrow-right {
-webkit-transform-origin: 100%;
transform-origin: 100%; }
.mfp-container {
padding-left: 6px;
padding-right: 6px; } }

1976
dist/css/styles.css vendored

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

BIN
dist/images/logo.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 590 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 767 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 454 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 KiB

896
dist/index.html vendored
View file

@ -1,896 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<!-- SEO Meta Tags -->
<meta
name="description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<meta name="author" content="VillaFleurie" />
<!-- OG Meta Tags to improve the way the post looks when you share the page on Facebook, Twitter, LinkedIn -->
<meta property="og:site_name" content="VillaFleurie" />
<!-- website name -->
<meta property="og:site" content="" />
<!-- website link -->
<meta property="og:title" content="VillaFleurie" />
<!-- title shown in the actual shared post -->
<meta
property="og:description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<!-- description shown in the actual shared post -->
<meta property="og:image" content="" />
<!-- image link, make sure it's jpg -->
<meta property="og:url" content="/" />
<!-- where do you want your post to link to -->
<meta name="twitter:card" content="summary_large_image" />
<!-- to have large image post format in Twitter -->
<!-- Webpage Title -->
<title>VillaFleurie</title>
<!-- Styles -->
<link
href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,600;0,700;1,400;1,700&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css2?family=PT+Serif:ital,wght@1,700&display=swap"
rel="stylesheet"
/>
<link href="../css/bootstrap.css" rel="stylesheet" />
<link href="../css/fontawesome-all.css" rel="stylesheet" />
<link href="../css/bootstrap-datepicker3.css" rel="stylesheet" />
<link href="../css/swiper.css" rel="stylesheet" />
<link href="../css/magnific-popup.css" rel="stylesheet" />
<link href="../css/styles.css" rel="stylesheet" />
<!-- Favicon -->
<link rel="icon" href="../images/logo.png" />
<script
defer
data-domain="villafleuriegp.com"
src="https://plausible.nemausat.com/js/script.outbound-links.js"
></script>
<script>
window.plausible =
window.plausible ||
function () {
(window.plausible.q = window.plausible.q || []).push(arguments);
};
</script>
</head>
<body data-spy="scroll" data-target=".fixed-top">
<!-- Navigation -->
<nav class="navbar navbar-expand-lg fixed-top navbar-light">
<div class="container">
<!-- Text Logo - Use this if you don't have a graphic logo -->
<!-- <a class="navbar-brand logo-text page-scroll" href="index.html">Villa</a> -->
<!-- Image Logo -->
<a class="navbar-brand logo-image" href="index.html"
><img
src="../images/logo.png"
alt="VillaFleurie logo"
style="height: 76px"
/></a>
<button
class="navbar-toggler p-0 border-0"
type="button"
data-toggle="offcanvas"
>
<span class="navbar-toggler-icon"></span>
</button>
<div
class="navbar-collapse offcanvas-collapse"
id="navbarsExampleDefault"
>
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="#"
id="dropdown01"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>Chambres</a
>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<a class="dropdown-item page-scroll" href="t2-corail.html"
>T2 Corail</a
>
<div class="dropdown-divider"></div>
<a class="dropdown-item page-scroll" href="t3-azur.html"
>T3 Azur</a
>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="contact.html">Contact</a>
</li>
</ul>
<span class="nav-item ml-auto">
<a class="btn-outline-sm" href="tel:+33658961279">
<i class="fas fa-phone-alt"></i>+33 6 58 96 12 79</a
>
</span>
</div>
<!-- end of navbar-collapse -->
</div>
<!-- end of container -->
</nav>
<!-- end of navbar -->
<!-- end of navigation -->
<!-- Header -->
<header id="header" class="header">
<!-- Header Slider -->
<div class="swiper-container header-slider">
<div class="swiper-wrapper">
<div class="swiper-slide first">
</div>
<div class="swiper-slide second">
</div>
<div class="swiper-slide third">
</div>
</div> <!-- end of swiper-wrapper -->
</div> <!-- end of swiper-container -->
<!-- end of header slider -->
<div class="text-container">
<h1>VillaFleurie : L'expérience extraordinaire</h1>
<a class="btn-solid-lg popup-with-move-anim" href="#header-details-lightbox">Réserver</a>
<a class="btn-outline-lg page-scroll" href="#description">Découvrir</a>
</div> <!-- end of text-container -->
</header> <!-- end of header -->
<!-- end of header -->
<!-- Header Lightbox -->
<!-- Lightbox -->
<div id="header-details-lightbox" class="lightbox-form zoom-anim-dialog mfp-hide">
<div class="container">
<div class="row">
<button title="Close (Esc)" type="button" class="mfp-close x-button">×</button>
<div class="col-lg-12">
<p>Remplir et envoyer le formulaire pour réserver VillaFleurie</p>
<!-- Booking Form -->
<!-- autocomplete = off to avoid display problems in mobile view -->
<form name="bookingForm" id="bookingForm" data-toggle="validator" data-focus="false" autocomplete="off"
action="/reservation.html" netlify>
<div class="form-group">
<input type="text" class="form-control-input" id="name" name="name" required>
<label class="label-control" for="name">Nom complet</label>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<input type="email" class="form-control-input" id="email" name="email" required>
<label class="label-control" for="email">Adresse email</label>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<input type="text" class="form-control-input" id="phone" name="phone" required>
<label class="label-control" for="phone">Numéro de téléphone</label>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<input type="text" class="form-control-input" id="people" name="people" required>
<label class="label-control" for="people">Nombre de personnes</label>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<select class="form-control-select" id="room" name="room" required>
<option class="select-option" value="" disabled selected>Choisissez une chambre</option>
<option class="select-option" value="t2">T2 Corail</option>
<option class="select-option" value="t3">T3 Azur</option>
</select>
<div class="help-block with-errors"></div>
</div>
<!-- readonly is enabled to avoid display problems in mobile view -->
<div class="form-group">
<input type="text" class="form-control-input" id="start" name="start" readonly required>
<label class="label-control" for="start">Arrivée</label>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<input type="text" class="form-control-input" id="end" name="end" readonly required>
<label class="label-control" for="end">Départ</label>
<div class="help-block with-errors"></div>
</div>
<div class="form-group">
<button type="submit" class="form-control-submit-button">Réserver</button>
</div>
<div class="form-message">
<div id="msgSubmit" class="h3 text-center hidden"></div>
</div>
</form>
<!-- end of booking form -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of lightbox-form -->
<!-- end of lightbox -->
<!-- end of header lightbox -->
<!-- Description -->
<div id="description" class="slider-1 bg-gray">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h2 class="green">Découvrir VillaFleurie</h2>
<p class="p-heading">Villa est un lieu de vacances unique situé sur le magnifique archipel de la
Guadeloupe, prête à accueillir des touristes en quête de tranquillité tout au long de l'année.</p>
</div> <!-- end of col -->
<div class="col-lg-12">
<!-- Image Slider -->
<div class="slider-container">
<div class="swiper-container image-slider">
<div class="swiper-wrapper">
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/slide-about-1.jpg" data-effect="fadeIn"><img
class="img-fluid" src="../images/slide-about-1.jpg" alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t3_chambre.jpg"
data-effect="fadeIn"><img
class="img-fluid" src="../images/villafleurie_t3_chambre.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t2_salon_1_wl81yXI.jpg"
data-effect="fadeIn"><img
class="img-fluid" src="../images/villafleurie_t2_salon_1_wl81yXI.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t3_salon.jpg"
data-effect="fadeIn"><img
class="img-fluid" src="../images/villafleurie_t3_salon.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t2_terrasse.jpg"
data-effect="fadeIn"><img
class="img-fluid" src="../images/villafleurie_t2_terrasse.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t2_salle_de_bain.jpg"
data-effect="fadeIn"><img
class="img-fluid" src="../images/villafleurie_t2_salle_de_bain.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
</div> <!-- end of swiper-wrapper -->
<!-- Add Arrows -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
<!-- end of add arrows -->
</div> <!-- end of swiper container -->
</div> <!-- end of slider-container -->
<!-- end of image slider -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of slider-1 -->
<!-- end of description -->
<!-- Facilities -->
<div class="tabs">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h2>Des installations étonnantes</h2>
<p class="p-heading">Tout ce dont vous avez besoin pour un séjour détendu. Les installations de
VillaFleurie ont été conçues pour répondre aux besoins des touristes très exigeants du monde
entier</p>
</div> <!-- end of col -->
</div> <!-- end of row -->
<div class="row">
<div class="col-lg-12">
<!-- Tabs Links -->
<ul class="nav nav-tabs" id="villaTabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="nav-tab-1" data-toggle="tab" href="#tab-1" role="tab"
aria-controls="tab-1" aria-selected="true">
<i class="fas fa-utensils"></i><span>Restauration</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="nav-tab-2" data-toggle="tab" href="#tab-2" role="tab"
aria-controls="tab-2" aria-selected="false">
<i class="fas fa-glass-martini-alt"></i><span>Terrasse</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="nav-tab-3" data-toggle="tab" href="#tab-3" role="tab"
aria-controls="tab-3" aria-selected="false">
<i class="fas fa-sun"></i><span>Plages</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="nav-tab-5" data-toggle="tab" href="#tab-5" role="tab"
aria-controls="tab-5" aria-selected="false">
<i class="fas fa-car"></i><span>Parking</span>
</a>
</li>
</ul>
<!-- end of tabs links -->
<!-- Tabs Content -->
<div class="tab-content" id="villaTabsContent">
<!-- Tab -->
<div class="tab-pane fade show active" id="tab-1" role="tabpanel" aria-labelledby="tab-1">
<div class="row">
<div class="col-lg-6">
<div class="image-container">
<img class="img-fluid" src="../images/facilities-tab-1.jpg" alt="alternative">
</div> <!-- end of image-container -->
</div> <!-- end of col -->
<div class="col-lg-6">
<div class="text-container">
<h3>Délicieuse cuisine locale</h3>
<p>La ville du Gosier possède de nombreux restaurants servant des plats délicieux
issus de la cuisine locale et préparés à partir d'ingrédients provenant de
fermes et de marchés locaux.</p>
<p>Il n'est pas nécessaire de se dépêcher pour obtenir un bon repas, car les heures
de service s'étendent tout au long de la journée.</p>
</div> <!-- end of text-container -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of tab-pane -->
<!-- end of tab -->
<!-- Tab -->
<div class="tab-pane fade" id="tab-2" role="tabpanel" aria-labelledby="tab-2">
<div class="row">
<div class="col-lg-6">
<div class="text-container">
<h3>Belle terrasse pour le café et les apéros</h3>
<p>Commencez votre journée de vacances par un café revigorant et choisissez de vous
asseoir et de vous détendre ou de planifier vos excursions dans les sites
historiques et touristiques environnants.</p>
<p>Profitez du calme des lieux pour vous détendre l'après-midi autour d'un apéritif
entre amis.</p>
<a class="btn-solid-reg" href="article.html">Article</a> <a class="btn-outline-reg"
href="contact.html">Contact</a>
</div> <!-- end of text-container -->
</div> <!-- end of col -->
<div class="col-lg-6">
<div class="image-container">
<img class="img-fluid" src="../images/facilities-tab-2.jpg" alt="alternative">
</div> <!-- end of image-container -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of tab-pane -->
<!-- end of tab -->
<!-- Tab -->
<div class="tab-pane fade" id="tab-3" role="tabpanel" aria-labelledby="tab-3">
<div class="row">
<div class="col-lg-6">
<div class="image-container">
<img class="img-fluid" src="../images/facilities-tab-3.jpg" alt="alternative">
</div> <!-- end of image-container -->
</div> <!-- end of col -->
<div class="col-lg-6">
<div class="text-container">
<h3>Plages chaudes et eaux turquoises</h3>
<p>Il y a deux belles plages ensoleillées près de la villa, équipées de chaises de
plage, de parasols, d'un bar de plage et de douches.</p>
<ul class="list-unstyled li-space-lg">
<li class="media">
<i class="fas fa-square"></i>
<div class="media-body">Exposition au soleil tout au long de la journée
grâce à l'orientation.
</div>
</li>
<li class="media">
<i class="fas fa-square"></i>
<div class="media-body">Sable doré qui s'étend longuement dans l'eau</div>
</li>
<li class="media">
<i class="fas fa-square"></i>
<div class="media-body">Les équipements sont conçus pour offrir un maximum
de détente
</div>
</li>
</ul>
<a class="green" href="article.html">En savoir plus</a>
</div> <!-- end of text-container -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of tab-pane -->
<!-- end of tab -->
<!-- Tab -->
<div class="tab-pane fade" id="tab-5" role="tabpanel" aria-labelledby="tab-5">
<div class="row">
<div class="col-lg-6">
<div class="image-container">
<img class="img-fluid rounded" src="../images/facilities-tab-5.jpg"
alt="alternative">
</div> <!-- end of image-container -->
</div> <!-- end of col -->
<div class="col-lg-6">
<div class="text-container">
<h3>Plus besoin de s'inquiéter pour sa voiture</h3>
<p>VillaFleurie offre un parking gratuit à tous ses clients dans une zone sûre et
facile d'accès. Le parking est fermé pour vous offrir plus de tranquillité
d'esprit.</p>
<ul class="list-unstyled li-space-lg">
<li class="media">
<i class="fas fa-square"></i>
<div class="media-body">Accès gratuit pour tout type de voiture</div>
</li>
<li class="media">
<i class="fas fa-square"></i>
<div class="media-body">Profitez de votre séjour sans vous soucier de la
voiture
</div>
</li>
</ul>
<p class="green"><strong>HORAIRE DE STATIONNEMENT : NON-STOP</strong></p>
</div> <!-- end of text-container -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of tab-pane -->
<!-- end of tab -->
</div> <!-- end of tab-content -->
<!-- end of tabs content -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of tabs -->
<!-- end of facilities -->
<!-- Rooms -->
<div class="cards-1">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h2 class="green">Confort et détente</h2>
<ul class="list-unstyled li-space-lg p-heading">
<li class="address">Les chambres de VillaFleurie offrent confort et détente. Elles comprennent
toutes:
</li>
<li><i class="fas fa-wifi"></i>Wi-Fi gratuit</li>
<li><i class="fas fa-bath"></i>Salle de bain privée</li>
<li><i class="fas fa-tablet"></i>Réfrigérateur</li>
<li><i class="fas fa-tv"></i>Écran large LCD</li>
<li><i class="fas fa-snowflake"></i>Climatisation</li>
</ul> <!-- end of list-unstyled -->
</div> <!-- end of col -->
</div> <!-- end of row -->
<div class="row">
<div class="col-lg-12">
<!-- Card -->
<div class="card">
<div class="card-image">
<a href="t2-corail.html"><img class="img-fluid"
src="../images/villafleurie_t2_salon_1_wl81yXI.jpg"
alt="alternative"></a>
</div>
<div class="card-body">
<h3 class="card-title">T2 Corail - 59€/nuit</h3>
<p>Envie d'un petit cocon ? Le T2 Corail vous offre toutes les commodités à un prix très
abordable.</p>
<a class="btn-solid-reg popup-with-move-anim" href="#header-details-lightbox">Réserver</a> <a
class="btn-outline-reg" href="t2-corail.html">Détails</a>
</div>
</div>
<!-- end of card -->
<!-- Card -->
<div class="card">
<div class="card-image">
<a href="t3-azur.html"><img class="img-fluid" src="../images/villafleurie_t3_chambre.jpg"
alt="alternative"></a>
</div>
<div class="card-body">
<h3 class="card-title">T3 Azur - 79€/nuit</h3>
<p>Besoin de plus d'espace ? En choisissant le T3 Azur, vous bénéficiez de tout le confort
qu'offre VillaFleurie.</p>
<a class="btn-solid-reg popup-with-move-anim" href="#header-details-lightbox">Réserver</a> <a
class="btn-outline-reg" href="t3-azur.html">Détails</a>
</div>
</div>
<!-- end of card -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of cards-1 -->
<!-- end of rooms -->
<!-- Attractions -->
<!--<div class="cards-2 bg-gray">-->
<!-- <div class="container">-->
<!-- <div class="row">-->
<!-- <div class="col-lg-12">-->
<!-- <h2 class="green">Attractions populaires</h2>-->
<!-- <hr class="hr-heading">-->
<!-- </div> &lt;!&ndash; end of col &ndash;&gt;-->
<!-- </div> &lt;!&ndash; end of row &ndash;&gt;-->
<!-- <div class="row">-->
<!-- <div class="col-lg-12">-->
<!-- &lt;!&ndash; Card &ndash;&gt;-->
<!-- <div class="card">-->
<!-- <div class="card-image">-->
<!-- <a class="green" href="article.html"><img class="img-fluid" src="../images/attraction-1.jpg"-->
<!-- alt="alternative"></a>-->
<!-- </div>-->
<!-- <div class="card-body">-->
<!-- <p><strong class="green">AFITOS OLD TOWN:</strong> Full of historical importance for this part-->
<!-- of the world, Afitos Old Towm will impress you... <a class="green" href="article.html">Read-->
<!-- More >></a></p>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; end of card &ndash;&gt;-->
<!-- &lt;!&ndash; Card &ndash;&gt;-->
<!-- <div class="card">-->
<!-- <div class="card-image">-->
<!-- <a class="green" href="article.html"><img class="img-fluid" src="../images/attraction-2.jpg"-->
<!-- alt="alternative"></a>-->
<!-- </div>-->
<!-- <div class="card-body">-->
<!-- <p><strong class="green">NAVAGIO BEACH:</strong> Is the most famous beach at the Mediterranean-->
<!-- sea with white sands and cool beach bars. In the week... <a class="green"-->
<!-- href="article.html">Read More-->
<!-- >></a></p>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; end of card &ndash;&gt;-->
<!-- &lt;!&ndash; Card &ndash;&gt;-->
<!-- <div class="card">-->
<!-- <div class="card-image">-->
<!-- <a class="green" href="article.html"><img class="img-fluid" src="../images/attraction-3.jpg"-->
<!-- alt="alternative"></a>-->
<!-- </div>-->
<!-- <div class="card-body">-->
<!-- <p><strong class="green">AEGEAN BELVEDERE:</strong> The best place to watch the sunset in a-->
<!-- romantic atmosphere and maybe even drink a glass of wine... <a class="green"-->
<!-- href="article.html">Read More-->
<!-- >></a></p>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; end of card &ndash;&gt;-->
<!-- &lt;!&ndash; Card &ndash;&gt;-->
<!-- <div class="card">-->
<!-- <div class="card-image">-->
<!-- <a class="green" href="article.html"><img class="img-fluid" src="../images/attraction-4.jpg"-->
<!-- alt="alternative"></a>-->
<!-- </div>-->
<!-- <div class="card-body">-->
<!-- <p><strong class="green">JAMES WHITE HOUSE:</strong> Don't miss this great tourist attraction.-->
<!-- The famous writer's house will fascinate literature... <a class="green" href="article.html">Read-->
<!-- More >></a></p>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash; end of card &ndash;&gt;-->
<!-- </div> &lt;!&ndash; end of col &ndash;&gt;-->
<!-- </div> &lt;!&ndash; end of row &ndash;&gt;-->
<!-- </div> &lt;!&ndash; end of container &ndash;&gt;-->
<!--</div> &lt;!&ndash; end of cards-2 &ndash;&gt;-->
<!--&lt;!&ndash; end of attractions &ndash;&gt;-->
<!-- Testimonials -->
<div class="slider-2">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h2>Avis</h2>
<hr class="hr-heading">
</div> <!-- end of col -->
</div> <!-- end of row -->
<div class="row">
<div class="col-lg-12">
<!-- Card Slider -->
<div class="slider-container">
<div class="swiper-container card-slider">
<div class="swiper-wrapper">
<!-- Slide -->
<div class="swiper-slide">
<div class="card">
<img class="card-image" src="../images/avis-johann.webp" alt="alternative">
<div class="card-body">
<p class="testimonial-text">Un grand merci pour laccueil et pour votre
sympathie. Merci également pour nous avoir arrangé sur lheure darrivée. La
location est simple, mais rien à redire. En revanche très utile le parking,
car peu de place de stationnement. Un petit conseil pour la restauration, il
faut aller chez Taillepierre qui est à 200m c'est à la bonne franquette,
mais tellement bon</p>
<p class="testimonial-author">Johann</p>
</div>
</div>
</div> <!-- end of swiper-slide -->
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="card">
<img class="card-image" src="../images/avis-nell.jpg" alt="alternative">
<div class="card-body">
<p class="testimonial-text">Nilka et sa famille ont veillé à ce que nous
passions un séjour incroyable, en nous récupérant à l'aéroport et en nous
déposant, en nous donnant des conseils et des idées de choses à faire, en
nous aidant avec tout ce dont nous avions besoin. L'endroit est lumineux,
spacieux, propre et toutes les commodités ont bien fonctionné. L'emplacement
est génial, tout ce dont vous pourriez avoir besoin au sein du Gosier est à
moins de dix minutes à pied, y compris des magasins, un supermarché, un
parc, la plage, des restaurants, des bars, et plus encore. Si vous souhaitez
aller plus loin, il y a un arrêt de bus littéralement en haut de la rue, où
vous pouvez vous rendre à Pointe-à-Pitre en 20 minutes, et de nombreux
autres endroits très facilement. Nous avons passé un très bon moment!</p>
<p class="testimonial-author">Nell</p>
</div>
</div>
</div> <!-- end of swiper-slide -->
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="card">
<img class="card-image" src="../images/testimonial-1.jpg" alt="alternative">
<div class="card-body">
<p class="testimonial-text">Accueil et disponibilité des propriétaires.
Situation géographique idéale (commerces, restaurants, plages, centre-ville,
parking intérieur sécurisé)</p>
<p class="testimonial-author">Thierry</p>
</div>
</div>
</div> <!-- end of swiper-slide -->
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="card">
<img class="card-image" src="../images/testimonial-2.jpg" alt="alternative">
<div class="card-body">
<p class="testimonial-text">Propreté, accueil chaleureux, calme, situation
centrale.</p>
<p class="testimonial-author">Sylvie</p>
</div>
</div>
</div> <!-- end of swiper-slide -->
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="card">
<img class="card-image" src="../images/testimonial-3.jpg" alt="alternative">
<div class="card-body">
<p class="testimonial-text">Bon accueil des propriétaires, toujours disponibles.
Endroit calme avec jardin.</p>
<p class="testimonial-author">Chantal</p>
</div>
</div>
</div> <!-- end of swiper-slide -->
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="card">
<img class="card-image" src="../images/testimonial-4.jpg" alt="alternative">
<div class="card-body">
<p class="testimonial-text">Jacques et Hélène sont des hôtes très sympathiques.
Le logement est très propre et fonctionnel. La maison a un jardin
magnifiquement fleuri.</p>
<p class="testimonial-author">André</p>
</div>
</div>
</div> <!-- end of swiper-slide -->
<!-- end of slide -->
</div> <!-- end of swiper-wrapper -->
<!-- Add Arrows -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
<!-- end of add arrows -->
</div> <!-- end of swiper-container -->
</div> <!-- end of slider-container -->
<!-- end of card slider -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of slider-2 -->
<!-- end of testimonials -->
<!-- Location -->
<div class="basic-1 bg-gray">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h2 class="green">Où nous trouver</h2>
<ul class="list-unstyled li-space-lg p-heading">
<li class="address">Nous attendons votre visite</li>
<li><i class="fas fa-map-marker-alt"></i>VillaFleurie, 4 rue Gerty Archimède, 97190 Le Gosier,
Guadeloupe
</li>
<li><i class="fas fa-phone"></i><a class="green" href="tel:+33658961279">+33 6 58 96 12 79</a></li>
<li><i class="fas fa-envelope"></i><a class="green" href="mailto:reception@villa.com">location.villafleurie@gmail.com</a>
</li>
</ul>
</div> <!-- end of col -->
</div> <!-- end of row -->
<div class="row">
<div class="col-lg-12">
<div class="map-responsive">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3831.2598078323063!2d-61.48991482394046!3d16.20707768449259!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x8c134f148764f5d5%3A0x981bb218cee8b16c!2sVillaFleurie!5e0!3m2!1sfr!2sde!4v1685258248016!5m2!1sfr!2sde"
width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy"
referrerpolicy="no-referrer-when-downgrade"></iframe>
</div> <!-- end of map-responsive -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of basic-1 -->
<!-- end of location -->
<!-- Footer -->
<div class="footer">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h3>
Si vous souhaitez passer un moment confortable et relaxant,
n'hésitez pas à nous contacter :
<a class="green" href="mailto:location.villafleurie@gmail.com">
location.villafleurie@gmail.com
</a>
</h3>
<div class="social-container">
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-facebook-f fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-twitter fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-pinterest-p fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-instagram fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-youtube fa-stack-1x"></i>
</a>
</span>
</div>
<!-- end of social-container -->
</div>
<!-- end of col -->
</div>
<!-- end of row -->
</div>
<!-- end of container -->
</div>
<!-- end of footer -->
<!-- end of footer -->
<!-- Copyright -->
<div class="copyright">
<div class="container">
<div class="row">
<div class="col-lg-12">
<hr class="divider" />
</div>
<!-- end of col -->
</div>
<!-- end of row -->
<div class="row">
<div class="col-lg-6">
<ul class="list-unstyled li-space-lg p-small">
<li><a href="t2-corail.html">T2 Corail</a></li>
<li><a href="t3-azur.html">T3 Azur</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
<!-- end of list-unstyled -->
</div>
<!-- end of col -->
<div class="col-lg-6">
<p class="p-small statement">Copyright © VillaFleurie</p>
</div>
<!-- end of col -->
</div>
<!-- enf of row -->
</div>
<!-- end of container -->
</div>
<!-- end of copyright -->
<!-- end of copyright -->
<!-- Scripts -->
<script src="../js/jquery.min.js"></script>
<!-- jQuery for Bootstrap's JavaScript plugins -->
<script src="../js/bootstrap.min.js"></script>
<!-- Bootstrap framework -->
<script src="../js/jquery.easing.min.js"></script>
<!-- jQuery Easing for smooth scrolling between anchors -->
<script src="../js/swiper.min.js"></script>
<!-- Swiper for image and text sliders -->
<script src="../js/jquery.magnific-popup.js"></script>
<!-- Magnific Popup for lightboxes -->
<script src="../js/bootstrap-datepicker.min.js"></script>
<!-- Datepicker for Bootstrap -->
<script src="../js/scripts.js"></script>
<!-- Custom scripts -->
</body>
</html>

View file

@ -1,250 +0,0 @@
/*!
* Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker)
*
* Copyright 2012 Stefan Petre
* Improvements by Andrew Rowls
* Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
*/
(function(factory){"use strict";if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof exports==='object'){factory(require('jquery'))}else{factory(jQuery)}}(function($,undefined){"use strict";function UTCDate(){return new Date(Date.UTC.apply(Date,arguments))}
function UTCToday(){var today=new Date();return UTCDate(today.getFullYear(),today.getMonth(),today.getDate())}
function isUTCEquals(date1,date2){return(date1.getUTCFullYear()===date2.getUTCFullYear()&&date1.getUTCMonth()===date2.getUTCMonth()&&date1.getUTCDate()===date2.getUTCDate())}
function alias(method){return function(){return this[method].apply(this,arguments)}}
function isValidDate(d){return d&&!isNaN(d.getTime())}
var DateArray=(function(){var extras={get:function(i){return this.slice(i)[0]},contains:function(d){var val=d&&d.valueOf();for(var i=0,l=this.length;i<l;i++)
if(this[i].valueOf()===val)
return i;return-1},remove:function(i){this.splice(i,1)},replace:function(new_array){if(!new_array)
return;if(!$.isArray(new_array))
new_array=[new_array];this.clear();this.push.apply(this,new_array)},clear:function(){this.length=0},copy:function(){var a=new DateArray();a.replace(this);return a}};return function(){var a=[];a.push.apply(a,arguments);$.extend(a,extras);return a}})();var Datepicker=function(element,options){$(element).data('datepicker',this);this._process_options(options);this.dates=new DateArray();this.viewDate=this.o.defaultViewDate;this.focusDate=null;this.element=$(element);this.isInput=this.element.is('input');this.inputField=this.isInput?this.element:this.element.find('input');this.component=this.element.hasClass('date')?this.element.find('.add-on, .input-group-addon, .btn'):!1;this.hasInput=this.component&&this.inputField.length;if(this.component&&this.component.length===0)
this.component=!1;this.isInline=!this.component&&this.element.is('div');this.picker=$(DPGlobal.template);if(this._check_template(this.o.templates.leftArrow)){this.picker.find('.prev').html(this.o.templates.leftArrow)}
if(this._check_template(this.o.templates.rightArrow)){this.picker.find('.next').html(this.o.templates.rightArrow)}
this._buildEvents();this._attachEvents();if(this.isInline){this.picker.addClass('datepicker-inline').appendTo(this.element)}
else{this.picker.addClass('datepicker-dropdown dropdown-menu')}
if(this.o.rtl){this.picker.addClass('datepicker-rtl')}
this.viewMode=this.o.startView;if(this.o.calendarWeeks)
this.picker.find('thead .datepicker-title, tfoot .today, tfoot .clear').attr('colspan',function(i,val){return parseInt(val)+1});this._allow_update=!1;this.setStartDate(this._o.startDate);this.setEndDate(this._o.endDate);this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);this.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted);this.setDatesDisabled(this.o.datesDisabled);this.fillDow();this.fillMonths();this._allow_update=!0;this.update();this.showMode();if(this.isInline){this.show()}};Datepicker.prototype={constructor:Datepicker,_resolveViewName:function(view,default_value){if(view===0||view==='days'||view==='month'){return 0}
if(view===1||view==='months'||view==='year'){return 1}
if(view===2||view==='years'||view==='decade'){return 2}
if(view===3||view==='decades'||view==='century'){return 3}
if(view===4||view==='centuries'||view==='millennium'){return 4}
return default_value===undefined?!1:default_value},_check_template:function(tmp){try{if(tmp===undefined||tmp===""){return!1}
if((tmp.match(/[<>]/g)||[]).length<=0){return!0}
var jDom=$(tmp);return jDom.length>0}
catch(ex){return!1}},_process_options:function(opts){this._o=$.extend({},this._o,opts);var o=this.o=$.extend({},this._o);var lang=o.language;if(!dates[lang]){lang=lang.split('-')[0];if(!dates[lang])
lang=defaults.language}
o.language=lang;o.startView=this._resolveViewName(o.startView,0);o.minViewMode=this._resolveViewName(o.minViewMode,0);o.maxViewMode=this._resolveViewName(o.maxViewMode,4);o.startView=Math.min(o.startView,o.maxViewMode);o.startView=Math.max(o.startView,o.minViewMode);if(o.multidate!==!0){o.multidate=Number(o.multidate)||!1;if(o.multidate!==!1)
o.multidate=Math.max(0,o.multidate)}
o.multidateSeparator=String(o.multidateSeparator);o.weekStart%=7;o.weekEnd=(o.weekStart+6)%7;var format=DPGlobal.parseFormat(o.format);if(o.startDate!==-Infinity){if(!!o.startDate){if(o.startDate instanceof Date)
o.startDate=this._local_to_utc(this._zero_time(o.startDate));else o.startDate=DPGlobal.parseDate(o.startDate,format,o.language,o.assumeNearbyYear)}
else{o.startDate=-Infinity}}
if(o.endDate!==Infinity){if(!!o.endDate){if(o.endDate instanceof Date)
o.endDate=this._local_to_utc(this._zero_time(o.endDate));else o.endDate=DPGlobal.parseDate(o.endDate,format,o.language,o.assumeNearbyYear)}
else{o.endDate=Infinity}}
o.daysOfWeekDisabled=o.daysOfWeekDisabled||[];if(!$.isArray(o.daysOfWeekDisabled))
o.daysOfWeekDisabled=o.daysOfWeekDisabled.split(/[,\s]*/);o.daysOfWeekDisabled=$.map(o.daysOfWeekDisabled,function(d){return parseInt(d,10)});o.daysOfWeekHighlighted=o.daysOfWeekHighlighted||[];if(!$.isArray(o.daysOfWeekHighlighted))
o.daysOfWeekHighlighted=o.daysOfWeekHighlighted.split(/[,\s]*/);o.daysOfWeekHighlighted=$.map(o.daysOfWeekHighlighted,function(d){return parseInt(d,10)});o.datesDisabled=o.datesDisabled||[];if(!$.isArray(o.datesDisabled)){o.datesDisabled=[o.datesDisabled]}
o.datesDisabled=$.map(o.datesDisabled,function(d){return DPGlobal.parseDate(d,format,o.language,o.assumeNearbyYear)});var plc=String(o.orientation).toLowerCase().split(/\s+/g),_plc=o.orientation.toLowerCase();plc=$.grep(plc,function(word){return/^auto|left|right|top|bottom$/.test(word)});o.orientation={x:'auto',y:'auto'};if(!_plc||_plc==='auto');else if(plc.length===1){switch(plc[0]){case 'top':case 'bottom':o.orientation.y=plc[0];break;case 'left':case 'right':o.orientation.x=plc[0];break}}
else{_plc=$.grep(plc,function(word){return/^left|right$/.test(word)});o.orientation.x=_plc[0]||'auto';_plc=$.grep(plc,function(word){return/^top|bottom$/.test(word)});o.orientation.y=_plc[0]||'auto'}
if(o.defaultViewDate){var year=o.defaultViewDate.year||new Date().getFullYear();var month=o.defaultViewDate.month||0;var day=o.defaultViewDate.day||1;o.defaultViewDate=UTCDate(year,month,day)}else{o.defaultViewDate=UTCToday()}},_events:[],_secondaryEvents:[],_applyEvents:function(evs){for(var i=0,el,ch,ev;i<evs.length;i++){el=evs[i][0];if(evs[i].length===2){ch=undefined;ev=evs[i][1]}
else if(evs[i].length===3){ch=evs[i][1];ev=evs[i][2]}
el.on(ev,ch)}},_unapplyEvents:function(evs){for(var i=0,el,ev,ch;i<evs.length;i++){el=evs[i][0];if(evs[i].length===2){ch=undefined;ev=evs[i][1]}
else if(evs[i].length===3){ch=evs[i][1];ev=evs[i][2]}
el.off(ev,ch)}},_buildEvents:function(){var events={keyup:$.proxy(function(e){if($.inArray(e.keyCode,[27,37,39,38,40,32,13,9])===-1)
this.update()},this),keydown:$.proxy(this.keydown,this),paste:$.proxy(this.paste,this)};if(this.o.showOnFocus===!0){events.focus=$.proxy(this.show,this)}
if(this.isInput){this._events=[[this.element,events]]}
else if(this.component&&this.hasInput){this._events=[[this.inputField,events],[this.component,{click:$.proxy(this.show,this)}]]}
else{this._events=[[this.element,{click:$.proxy(this.show,this),keydown:$.proxy(this.keydown,this)}]]}
this._events.push([this.element,'*',{blur:$.proxy(function(e){this._focused_from=e.target},this)}],[this.element,{blur:$.proxy(function(e){this._focused_from=e.target},this)}]);if(this.o.immediateUpdates){this._events.push([this.element,{'changeYear changeMonth':$.proxy(function(e){this.update(e.date)},this)}])}
this._secondaryEvents=[[this.picker,{click:$.proxy(this.click,this)}],[$(window),{resize:$.proxy(this.place,this)}],[$(document),{mousedown:$.proxy(function(e){if(!(this.element.is(e.target)||this.element.find(e.target).length||this.picker.is(e.target)||this.picker.find(e.target).length||this.isInline)){this.hide()}},this)}]]},_attachEvents:function(){this._detachEvents();this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents();this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(event,altdate){var date=altdate||this.dates.get(-1),local_date=this._utc_to_local(date);this.element.trigger({type:event,date:local_date,dates:$.map(this.dates,this._utc_to_local),format:$.proxy(function(ix,format){if(arguments.length===0){ix=this.dates.length-1;format=this.o.format}
else if(typeof ix==='string'){format=ix;ix=this.dates.length-1}
format=format||this.o.format;var date=this.dates.get(ix);return DPGlobal.formatDate(date,format,this.o.language)},this)})},show:function(){if(this.inputField.prop('disabled')||(this.inputField.prop('readonly')&&this.o.enableOnReadonly===!1))
return;if(!this.isInline)
this.picker.appendTo(this.o.container);this.place();this.picker.show();this._attachSecondaryEvents();this._trigger('show');if((window.navigator.msMaxTouchPoints||'ontouchstart' in document)&&this.o.disableTouchKeyboard){$(this.element).blur()}
return this},hide:function(){if(this.isInline||!this.picker.is(':visible'))
return this;this.focusDate=null;this.picker.hide().detach();this._detachSecondaryEvents();this.viewMode=this.o.startView;this.showMode();if(this.o.forceParse&&this.inputField.val())
this.setValue();this._trigger('hide');return this},destroy:function(){this.hide();this._detachEvents();this._detachSecondaryEvents();this.picker.remove();delete this.element.data().datepicker;if(!this.isInput){delete this.element.data().date}
return this},paste:function(evt){var dateString;if(evt.originalEvent.clipboardData&&evt.originalEvent.clipboardData.types&&$.inArray('text/plain',evt.originalEvent.clipboardData.types)!==-1){dateString=evt.originalEvent.clipboardData.getData('text/plain')}
else if(window.clipboardData){dateString=window.clipboardData.getData('Text')}
else{return}
this.setDate(dateString);this.update();evt.preventDefault()},_utc_to_local:function(utc){return utc&&new Date(utc.getTime()+(utc.getTimezoneOffset()*60000))},_local_to_utc:function(local){return local&&new Date(local.getTime()-(local.getTimezoneOffset()*60000))},_zero_time:function(local){return local&&new Date(local.getFullYear(),local.getMonth(),local.getDate())},_zero_utc_time:function(utc){return utc&&new Date(Date.UTC(utc.getUTCFullYear(),utc.getUTCMonth(),utc.getUTCDate()))},getDates:function(){return $.map(this.dates,this._utc_to_local)},getUTCDates:function(){return $.map(this.dates,function(d){return new Date(d)})},getDate:function(){return this._utc_to_local(this.getUTCDate())},getUTCDate:function(){var selected_date=this.dates.get(-1);if(typeof selected_date!=='undefined'){return new Date(selected_date)}else{return null}},clearDates:function(){if(this.inputField){this.inputField.val('')}
this.update();this._trigger('changeDate');if(this.o.autoclose){this.hide()}},setDates:function(){var args=$.isArray(arguments[0])?arguments[0]:arguments;this.update.apply(this,args);this._trigger('changeDate');this.setValue();return this},setUTCDates:function(){var args=$.isArray(arguments[0])?arguments[0]:arguments;this.update.apply(this,$.map(args,this._utc_to_local));this._trigger('changeDate');this.setValue();return this},setDate:alias('setDates'),setUTCDate:alias('setUTCDates'),remove:alias('destroy'),setValue:function(){var formatted=this.getFormattedDate();this.inputField.val(formatted);return this},getFormattedDate:function(format){if(format===undefined)
format=this.o.format;var lang=this.o.language;return $.map(this.dates,function(d){return DPGlobal.formatDate(d,format,lang)}).join(this.o.multidateSeparator)},getStartDate:function(){return this.o.startDate},setStartDate:function(startDate){this._process_options({startDate:startDate});this.update();this.updateNavArrows();return this},getEndDate:function(){return this.o.endDate},setEndDate:function(endDate){this._process_options({endDate:endDate});this.update();this.updateNavArrows();return this},setDaysOfWeekDisabled:function(daysOfWeekDisabled){this._process_options({daysOfWeekDisabled:daysOfWeekDisabled});this.update();this.updateNavArrows();return this},setDaysOfWeekHighlighted:function(daysOfWeekHighlighted){this._process_options({daysOfWeekHighlighted:daysOfWeekHighlighted});this.update();return this},setDatesDisabled:function(datesDisabled){this._process_options({datesDisabled:datesDisabled});this.update();this.updateNavArrows()},place:function(){if(this.isInline)
return this;var calendarWidth=this.picker.outerWidth(),calendarHeight=this.picker.outerHeight(),visualPadding=10,container=$(this.o.container),windowWidth=container.width(),scrollTop=this.o.container==='body'?$(document).scrollTop():container.scrollTop(),appendOffset=container.offset();var parentsZindex=[];this.element.parents().each(function(){var itemZIndex=$(this).css('z-index');if(itemZIndex!=='auto'&&itemZIndex!==0)parentsZindex.push(parseInt(itemZIndex))});var zIndex=Math.max.apply(Math,parentsZindex)+this.o.zIndexOffset;var offset=this.component?this.component.parent().offset():this.element.offset();var height=this.component?this.component.outerHeight(!0):this.element.outerHeight(!1);var width=this.component?this.component.outerWidth(!0):this.element.outerWidth(!1);var left=offset.left-appendOffset.left,top=offset.top-appendOffset.top;if(this.o.container!=='body'){top+=scrollTop}
this.picker.removeClass('datepicker-orient-top datepicker-orient-bottom '+'datepicker-orient-right datepicker-orient-left');if(this.o.orientation.x!=='auto'){this.picker.addClass('datepicker-orient-'+this.o.orientation.x);if(this.o.orientation.x==='right')
left-=calendarWidth-width}
else{if(offset.left<0){this.picker.addClass('datepicker-orient-left');left-=offset.left-visualPadding}else if(left+calendarWidth>windowWidth){this.picker.addClass('datepicker-orient-right');left+=width-calendarWidth}else{this.picker.addClass('datepicker-orient-left')}}
var yorient=this.o.orientation.y,top_overflow;if(yorient==='auto'){top_overflow=-scrollTop+top-calendarHeight;yorient=top_overflow<0?'bottom':'top'}
this.picker.addClass('datepicker-orient-'+yorient);if(yorient==='top')
top-=calendarHeight+parseInt(this.picker.css('padding-top'));else top+=height;if(this.o.rtl){var right=windowWidth-(left+width);this.picker.css({top:top,right:right,zIndex:zIndex})}else{this.picker.css({top:top,left:left,zIndex:zIndex})}
return this},_allow_update:!0,update:function(){if(!this._allow_update)
return this;var oldDates=this.dates.copy(),dates=[],fromArgs=!1;if(arguments.length){$.each(arguments,$.proxy(function(i,date){if(date instanceof Date)
date=this._local_to_utc(date);dates.push(date)},this));fromArgs=!0}
else{dates=this.isInput?this.element.val():this.element.data('date')||this.inputField.val();if(dates&&this.o.multidate)
dates=dates.split(this.o.multidateSeparator);else dates=[dates];delete this.element.data().date}
dates=$.map(dates,$.proxy(function(date){return DPGlobal.parseDate(date,this.o.format,this.o.language,this.o.assumeNearbyYear)},this));dates=$.grep(dates,$.proxy(function(date){return(!this.dateWithinRange(date)||!date)},this),!0);this.dates.replace(dates);if(this.dates.length)
this.viewDate=new Date(this.dates.get(-1));else if(this.viewDate<this.o.startDate)
this.viewDate=new Date(this.o.startDate);else if(this.viewDate>this.o.endDate)
this.viewDate=new Date(this.o.endDate);else this.viewDate=this.o.defaultViewDate;if(fromArgs){this.setValue()}
else if(dates.length){if(String(oldDates)!==String(this.dates))
this._trigger('changeDate')}
if(!this.dates.length&&oldDates.length)
this._trigger('clearDate');this.fill();this.element.change();return this},fillDow:function(){var dowCnt=this.o.weekStart,html='<tr>';if(this.o.calendarWeeks){this.picker.find('.datepicker-days .datepicker-switch').attr('colspan',function(i,val){return parseInt(val)+1});html+='<th class="cw">&#160;</th>'}
while(dowCnt<this.o.weekStart+7){html+='<th class="dow';if($.inArray(dowCnt,this.o.daysOfWeekDisabled)>-1)
html+=' disabled';html+='">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>'}
html+='</tr>';this.picker.find('.datepicker-days thead').append(html)},fillMonths:function(){var localDate=this._utc_to_local(this.viewDate);var html='',i=0;while(i<12){var focused=localDate&&localDate.getMonth()===i?' focused':'';html+='<span class="month'+focused+'">'+dates[this.o.language].monthsShort[i++]+'</span>'}
this.picker.find('.datepicker-months td').html(html)},setRange:function(range){if(!range||!range.length)
delete this.range;else this.range=$.map(range,function(d){return d.valueOf()});this.fill()},getClassNames:function(date){var cls=[],year=this.viewDate.getUTCFullYear(),month=this.viewDate.getUTCMonth(),today=new Date();if(date.getUTCFullYear()<year||(date.getUTCFullYear()===year&&date.getUTCMonth()<month)){cls.push('old')}
else if(date.getUTCFullYear()>year||(date.getUTCFullYear()===year&&date.getUTCMonth()>month)){cls.push('new')}
if(this.focusDate&&date.valueOf()===this.focusDate.valueOf())
cls.push('focused');if(this.o.todayHighlight&&date.getUTCFullYear()===today.getFullYear()&&date.getUTCMonth()===today.getMonth()&&date.getUTCDate()===today.getDate()){cls.push('today')}
if(this.dates.contains(date)!==-1)
cls.push('active');if(!this.dateWithinRange(date)){cls.push('disabled')}
if(this.dateIsDisabled(date)){cls.push('disabled','disabled-date')}
if($.inArray(date.getUTCDay(),this.o.daysOfWeekHighlighted)!==-1){cls.push('highlighted')}
if(this.range){if(date>this.range[0]&&date<this.range[this.range.length-1]){cls.push('range')}
if($.inArray(date.valueOf(),this.range)!==-1){cls.push('selected')}
if(date.valueOf()===this.range[0]){cls.push('range-start')}
if(date.valueOf()===this.range[this.range.length-1]){cls.push('range-end')}}
return cls},_fill_yearsView:function(selector,cssClass,factor,step,currentYear,startYear,endYear,callback){var html,view,year,steps,startStep,endStep,thisYear,i,classes,tooltip,before;html='';view=this.picker.find(selector);year=parseInt(currentYear/factor,10)*factor;startStep=parseInt(startYear/step,10)*step;endStep=parseInt(endYear/step,10)*step;steps=$.map(this.dates,function(d){return parseInt(d.getUTCFullYear()/step,10)*step});view.find('.datepicker-switch').text(year+'-'+(year+step*9));thisYear=year-step;for(i=-1;i<11;i+=1){classes=[cssClass];tooltip=null;if(i===-1){classes.push('old')}else if(i===10){classes.push('new')}
if($.inArray(thisYear,steps)!==-1){classes.push('active')}
if(thisYear<startStep||thisYear>endStep){classes.push('disabled')}
if(thisYear===this.viewDate.getFullYear()){classes.push('focused')}
if(callback!==$.noop){before=callback(new Date(thisYear,0,1));if(before===undefined){before={}}else if(typeof(before)==='boolean'){before={enabled:before}}else if(typeof(before)==='string'){before={classes:before}}
if(before.enabled===!1){classes.push('disabled')}
if(before.classes){classes=classes.concat(before.classes.split(/\s+/))}
if(before.tooltip){tooltip=before.tooltip}}
html+='<span class="'+classes.join(' ')+'"'+(tooltip?' title="'+tooltip+'"':'')+'>'+thisYear+'</span>';thisYear+=step}
view.find('td').html(html)},fill:function(){var d=new Date(this.viewDate),year=d.getUTCFullYear(),month=d.getUTCMonth(),startYear=this.o.startDate!==-Infinity?this.o.startDate.getUTCFullYear():-Infinity,startMonth=this.o.startDate!==-Infinity?this.o.startDate.getUTCMonth():-Infinity,endYear=this.o.endDate!==Infinity?this.o.endDate.getUTCFullYear():Infinity,endMonth=this.o.endDate!==Infinity?this.o.endDate.getUTCMonth():Infinity,todaytxt=dates[this.o.language].today||dates.en.today||'',cleartxt=dates[this.o.language].clear||dates.en.clear||'',titleFormat=dates[this.o.language].titleFormat||dates.en.titleFormat,tooltip,before;if(isNaN(year)||isNaN(month))
return;this.picker.find('.datepicker-days .datepicker-switch').text(DPGlobal.formatDate(d,titleFormat,this.o.language));this.picker.find('tfoot .today').text(todaytxt).toggle(this.o.todayBtn!==!1);this.picker.find('tfoot .clear').text(cleartxt).toggle(this.o.clearBtn!==!1);this.picker.find('thead .datepicker-title').text(this.o.title).toggle(this.o.title!=='');this.updateNavArrows();this.fillMonths();var prevMonth=UTCDate(year,month-1,28),day=DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(),prevMonth.getUTCMonth());prevMonth.setUTCDate(day);prevMonth.setUTCDate(day-(prevMonth.getUTCDay()-this.o.weekStart+7)%7);var nextMonth=new Date(prevMonth);if(prevMonth.getUTCFullYear()<100){nextMonth.setUTCFullYear(prevMonth.getUTCFullYear())}
nextMonth.setUTCDate(nextMonth.getUTCDate()+42);nextMonth=nextMonth.valueOf();var html=[];var clsName;while(prevMonth.valueOf()<nextMonth){if(prevMonth.getUTCDay()===this.o.weekStart){html.push('<tr>');if(this.o.calendarWeeks){var
ws=new Date(+prevMonth+(this.o.weekStart-prevMonth.getUTCDay()-7)%7*864e5),th=new Date(Number(ws)+(7+4-ws.getUTCDay())%7*864e5),yth=new Date(Number(yth=UTCDate(th.getUTCFullYear(),0,1))+(7+4-yth.getUTCDay())%7*864e5),calWeek=(th-yth)/864e5/7+1;html.push('<td class="cw">'+calWeek+'</td>')}}
clsName=this.getClassNames(prevMonth);clsName.push('day');if(this.o.beforeShowDay!==$.noop){before=this.o.beforeShowDay(this._utc_to_local(prevMonth));if(before===undefined)
before={};else if(typeof(before)==='boolean')
before={enabled:before};else if(typeof(before)==='string')
before={classes:before};if(before.enabled===!1)
clsName.push('disabled');if(before.classes)
clsName=clsName.concat(before.classes.split(/\s+/));if(before.tooltip)
tooltip=before.tooltip}
if($.isFunction($.uniqueSort)){clsName=$.uniqueSort(clsName)}else{clsName=$.unique(clsName)}
html.push('<td class="'+clsName.join(' ')+'"'+(tooltip?' title="'+tooltip+'"':'')+'>'+prevMonth.getUTCDate()+'</td>');tooltip=null;if(prevMonth.getUTCDay()===this.o.weekEnd){html.push('</tr>')}
prevMonth.setUTCDate(prevMonth.getUTCDate()+1)}
this.picker.find('.datepicker-days tbody').empty().append(html.join(''));var monthsTitle=dates[this.o.language].monthsTitle||dates.en.monthsTitle||'Months';var months=this.picker.find('.datepicker-months').find('.datepicker-switch').text(this.o.maxViewMode<2?monthsTitle:year).end().find('span').removeClass('active');$.each(this.dates,function(i,d){if(d.getUTCFullYear()===year)
months.eq(d.getUTCMonth()).addClass('active')});if(year<startYear||year>endYear){months.addClass('disabled')}
if(year===startYear){months.slice(0,startMonth).addClass('disabled')}
if(year===endYear){months.slice(endMonth+1).addClass('disabled')}
if(this.o.beforeShowMonth!==$.noop){var that=this;$.each(months,function(i,month){var moDate=new Date(year,i,1);var before=that.o.beforeShowMonth(moDate);if(before===undefined)
before={};else if(typeof(before)==='boolean')
before={enabled:before};else if(typeof(before)==='string')
before={classes:before};if(before.enabled===!1&&!$(month).hasClass('disabled'))
$(month).addClass('disabled');if(before.classes)
$(month).addClass(before.classes);if(before.tooltip)
$(month).prop('title',before.tooltip)})}
this._fill_yearsView('.datepicker-years','year',10,1,year,startYear,endYear,this.o.beforeShowYear);this._fill_yearsView('.datepicker-decades','decade',100,10,year,startYear,endYear,this.o.beforeShowDecade);this._fill_yearsView('.datepicker-centuries','century',1000,100,year,startYear,endYear,this.o.beforeShowCentury)},updateNavArrows:function(){if(!this._allow_update)
return;var d=new Date(this.viewDate),year=d.getUTCFullYear(),month=d.getUTCMonth();switch(this.viewMode){case 0:if(this.o.startDate!==-Infinity&&year<=this.o.startDate.getUTCFullYear()&&month<=this.o.startDate.getUTCMonth()){this.picker.find('.prev').css({visibility:'hidden'})}
else{this.picker.find('.prev').css({visibility:'visible'})}
if(this.o.endDate!==Infinity&&year>=this.o.endDate.getUTCFullYear()&&month>=this.o.endDate.getUTCMonth()){this.picker.find('.next').css({visibility:'hidden'})}
else{this.picker.find('.next').css({visibility:'visible'})}
break;case 1:case 2:case 3:case 4:if(this.o.startDate!==-Infinity&&year<=this.o.startDate.getUTCFullYear()||this.o.maxViewMode<2){this.picker.find('.prev').css({visibility:'hidden'})}
else{this.picker.find('.prev').css({visibility:'visible'})}
if(this.o.endDate!==Infinity&&year>=this.o.endDate.getUTCFullYear()||this.o.maxViewMode<2){this.picker.find('.next').css({visibility:'hidden'})}
else{this.picker.find('.next').css({visibility:'visible'})}
break}},click:function(e){e.preventDefault();e.stopPropagation();var target,dir,day,year,month,monthChanged,yearChanged;target=$(e.target);if(target.hasClass('datepicker-switch')){this.showMode(1)}
var navArrow=target.closest('.prev, .next');if(navArrow.length>0){dir=DPGlobal.modes[this.viewMode].navStep*(navArrow.hasClass('prev')?-1:1);if(this.viewMode===0){this.viewDate=this.moveMonth(this.viewDate,dir);this._trigger('changeMonth',this.viewDate)}else{this.viewDate=this.moveYear(this.viewDate,dir);if(this.viewMode===1){this._trigger('changeYear',this.viewDate)}}
this.fill()}
if(target.hasClass('today')&&!target.hasClass('day')){this.showMode(-2);this._setDate(UTCToday(),this.o.todayBtn==='linked'?null:'view')}
if(target.hasClass('clear')){this.clearDates()}
if(!target.hasClass('disabled')){if(target.hasClass('day')){day=parseInt(target.text(),10)||1;year=this.viewDate.getUTCFullYear();month=this.viewDate.getUTCMonth();if(target.hasClass('old')){if(month===0){month=11;year=year-1;monthChanged=!0;yearChanged=!0}else{month=month-1;monthChanged=!0}}
if(target.hasClass('new')){if(month===11){month=0;year=year+1;monthChanged=!0;yearChanged=!0}else{month=month+1;monthChanged=!0}}
this._setDate(UTCDate(year,month,day));if(yearChanged){this._trigger('changeYear',this.viewDate)}
if(monthChanged){this._trigger('changeMonth',this.viewDate)}}
if(target.hasClass('month')){this.viewDate.setUTCDate(1);day=1;month=target.parent().find('span').index(target);year=this.viewDate.getUTCFullYear();this.viewDate.setUTCMonth(month);this._trigger('changeMonth',this.viewDate);if(this.o.minViewMode===1){this._setDate(UTCDate(year,month,day));this.showMode()}else{this.showMode(-1)}
this.fill()}
if(target.hasClass('year')||target.hasClass('decade')||target.hasClass('century')){this.viewDate.setUTCDate(1);day=1;month=0;year=parseInt(target.text(),10)||0;this.viewDate.setUTCFullYear(year);if(target.hasClass('year')){this._trigger('changeYear',this.viewDate);if(this.o.minViewMode===2){this._setDate(UTCDate(year,month,day))}}
if(target.hasClass('decade')){this._trigger('changeDecade',this.viewDate);if(this.o.minViewMode===3){this._setDate(UTCDate(year,month,day))}}
if(target.hasClass('century')){this._trigger('changeCentury',this.viewDate);if(this.o.minViewMode===4){this._setDate(UTCDate(year,month,day))}}
this.showMode(-1);this.fill()}}
if(this.picker.is(':visible')&&this._focused_from){$(this._focused_from).focus()}
delete this._focused_from},_toggle_multidate:function(date){var ix=this.dates.contains(date);if(!date){this.dates.clear()}
if(ix!==-1){if(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive){this.dates.remove(ix)}}else if(this.o.multidate===!1){this.dates.clear();this.dates.push(date)}
else{this.dates.push(date)}
if(typeof this.o.multidate==='number')
while(this.dates.length>this.o.multidate)
this.dates.remove(0)},_setDate:function(date,which){if(!which||which==='date')
this._toggle_multidate(date&&new Date(date));if(!which||which==='view')
this.viewDate=date&&new Date(date);this.fill();this.setValue();if(!which||which!=='view'){this._trigger('changeDate')}
if(this.inputField){this.inputField.change()}
if(this.o.autoclose&&(!which||which==='date')){this.hide()}},moveDay:function(date,dir){var newDate=new Date(date);newDate.setUTCDate(date.getUTCDate()+dir);return newDate},moveWeek:function(date,dir){return this.moveDay(date,dir*7)},moveMonth:function(date,dir){if(!isValidDate(date))
return this.o.defaultViewDate;if(!dir)
return date;var new_date=new Date(date.valueOf()),day=new_date.getUTCDate(),month=new_date.getUTCMonth(),mag=Math.abs(dir),new_month,test;dir=dir>0?1:-1;if(mag===1){test=dir===-1?function(){return new_date.getUTCMonth()===month}:function(){return new_date.getUTCMonth()!==new_month};new_month=month+dir;new_date.setUTCMonth(new_month);if(new_month<0||new_month>11)
new_month=(new_month+12)%12}
else{for(var i=0;i<mag;i++)
new_date=this.moveMonth(new_date,dir);new_month=new_date.getUTCMonth();new_date.setUTCDate(day);test=function(){return new_month!==new_date.getUTCMonth()}}
while(test()){new_date.setUTCDate(--day);new_date.setUTCMonth(new_month)}
return new_date},moveYear:function(date,dir){return this.moveMonth(date,dir*12)},moveAvailableDate:function(date,dir,fn){do{date=this[fn](date,dir);if(!this.dateWithinRange(date))
return!1;fn='moveDay'}
while(this.dateIsDisabled(date));return date},weekOfDateIsDisabled:function(date){return $.inArray(date.getUTCDay(),this.o.daysOfWeekDisabled)!==-1},dateIsDisabled:function(date){return(this.weekOfDateIsDisabled(date)||$.grep(this.o.datesDisabled,function(d){return isUTCEquals(date,d)}).length>0)},dateWithinRange:function(date){return date>=this.o.startDate&&date<=this.o.endDate},keydown:function(e){if(!this.picker.is(':visible')){if(e.keyCode===40||e.keyCode===27){this.show();e.stopPropagation()}
return}
var dateChanged=!1,dir,newViewDate,focusDate=this.focusDate||this.viewDate;switch(e.keyCode){case 27:if(this.focusDate){this.focusDate=null;this.viewDate=this.dates.get(-1)||this.viewDate;this.fill()}
else this.hide();e.preventDefault();e.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||this.o.daysOfWeekDisabled.length===7)
break;dir=e.keyCode===37||e.keyCode===38?-1:1;if(this.viewMode===0){if(e.ctrlKey){newViewDate=this.moveAvailableDate(focusDate,dir,'moveYear');if(newViewDate)
this._trigger('changeYear',this.viewDate)}
else if(e.shiftKey){newViewDate=this.moveAvailableDate(focusDate,dir,'moveMonth');if(newViewDate)
this._trigger('changeMonth',this.viewDate)}
else if(e.keyCode===37||e.keyCode===39){newViewDate=this.moveAvailableDate(focusDate,dir,'moveDay')}
else if(!this.weekOfDateIsDisabled(focusDate)){newViewDate=this.moveAvailableDate(focusDate,dir,'moveWeek')}}else if(this.viewMode===1){if(e.keyCode===38||e.keyCode===40){dir=dir*4}
newViewDate=this.moveAvailableDate(focusDate,dir,'moveMonth')}else if(this.viewMode===2){if(e.keyCode===38||e.keyCode===40){dir=dir*4}
newViewDate=this.moveAvailableDate(focusDate,dir,'moveYear')}
if(newViewDate){this.focusDate=this.viewDate=newViewDate;this.setValue();this.fill();e.preventDefault()}
break;case 13:if(!this.o.forceParse)
break;focusDate=this.focusDate||this.dates.get(-1)||this.viewDate;if(this.o.keyboardNavigation){this._toggle_multidate(focusDate);dateChanged=!0}
this.focusDate=null;this.viewDate=this.dates.get(-1)||this.viewDate;this.setValue();this.fill();if(this.picker.is(':visible')){e.preventDefault();e.stopPropagation();if(this.o.autoclose)
this.hide()}
break;case 9:this.focusDate=null;this.viewDate=this.dates.get(-1)||this.viewDate;this.fill();this.hide();break}
if(dateChanged){if(this.dates.length)
this._trigger('changeDate');else this._trigger('clearDate');if(this.inputField){this.inputField.change()}}},showMode:function(dir){if(dir){this.viewMode=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,this.viewMode+dir))}
this.picker.children('div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).show();this.updateNavArrows()}};var DateRangePicker=function(element,options){$(element).data('datepicker',this);this.element=$(element);this.inputs=$.map(options.inputs,function(i){return i.jquery?i[0]:i});delete options.inputs;datepickerPlugin.call($(this.inputs),options).on('changeDate',$.proxy(this.dateUpdated,this));this.pickers=$.map(this.inputs,function(i){return $(i).data('datepicker')});this.updateDates()};DateRangePicker.prototype={updateDates:function(){this.dates=$.map(this.pickers,function(i){return i.getUTCDate()});this.updateRanges()},updateRanges:function(){var range=$.map(this.dates,function(d){return d.valueOf()});$.each(this.pickers,function(i,p){p.setRange(range)})},dateUpdated:function(e){if(this.updating)
return;this.updating=!0;var dp=$(e.target).data('datepicker');if(typeof(dp)==="undefined"){return}
var new_date=dp.getUTCDate(),i=$.inArray(e.target,this.inputs),j=i-1,k=i+1,l=this.inputs.length;if(i===-1)
return;$.each(this.pickers,function(i,p){if(!p.getUTCDate())
p.setUTCDate(new_date)});if(new_date<this.dates[j]){while(j>=0&&new_date<this.dates[j]){this.pickers[j--].setUTCDate(new_date)}}
else if(new_date>this.dates[k]){while(k<l&&new_date>this.dates[k]){this.pickers[k++].setUTCDate(new_date)}}
this.updateDates();delete this.updating},remove:function(){$.map(this.pickers,function(p){p.remove()});delete this.element.data().datepicker}};function opts_from_el(el,prefix){var data=$(el).data(),out={},inkey,replace=new RegExp('^'+prefix.toLowerCase()+'([A-Z])');prefix=new RegExp('^'+prefix.toLowerCase());function re_lower(_,a){return a.toLowerCase()}
for(var key in data)
if(prefix.test(key)){inkey=key.replace(replace,re_lower);out[inkey]=data[key]}
return out}
function opts_from_locale(lang){var out={};if(!dates[lang]){lang=lang.split('-')[0];if(!dates[lang])
return}
var d=dates[lang];$.each(locale_opts,function(i,k){if(k in d)
out[k]=d[k]});return out}
var old=$.fn.datepicker;var datepickerPlugin=function(option){var args=Array.apply(null,arguments);args.shift();var internal_return;this.each(function(){var $this=$(this),data=$this.data('datepicker'),options=typeof option==='object'&&option;if(!data){var elopts=opts_from_el(this,'date'),xopts=$.extend({},defaults,elopts,options),locopts=opts_from_locale(xopts.language),opts=$.extend({},defaults,locopts,elopts,options);if($this.hasClass('input-daterange')||opts.inputs){$.extend(opts,{inputs:opts.inputs||$this.find('input').toArray()});data=new DateRangePicker(this,opts)}
else{data=new Datepicker(this,opts)}
$this.data('datepicker',data)}
if(typeof option==='string'&&typeof data[option]==='function'){internal_return=data[option].apply(data,args)}});if(internal_return===undefined||internal_return instanceof Datepicker||internal_return instanceof DateRangePicker)
return this;if(this.length>1)
throw new Error('Using only allowed for the collection of a single element ('+option+' function)');else return internal_return};$.fn.datepicker=datepickerPlugin;var defaults=$.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:$.noop,beforeShowMonth:$.noop,beforeShowYear:$.noop,beforeShowDecade:$.noop,beforeShowCentury:$.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:Infinity,forceParse:!0,format:'mm/dd/yyyy',keyboardNavigation:!0,language:'en',minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:',',orientation:"auto",rtl:!1,startDate:-Infinity,startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:'body',immediateUpdates:!1,title:'',templates:{leftArrow:'&laquo;',rightArrow:'&raquo;'}};var locale_opts=$.fn.datepicker.locale_opts=['format','rtl','weekStart'];$.fn.datepicker.Constructor=Datepicker;var dates=$.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}};var DPGlobal={modes:[{clsName:'days',navFnc:'Month',navStep:1},{clsName:'months',navFnc:'FullYear',navStep:1},{clsName:'years',navFnc:'FullYear',navStep:10},{clsName:'decades',navFnc:'FullDecade',navStep:100},{clsName:'centuries',navFnc:'FullCentury',navStep:1000}],isLeapYear:function(year){return(((year%4===0)&&(year%100!==0))||(year%400===0))},getDaysInMonth:function(year,month){return[31,(DPGlobal.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(format){if(typeof format.toValue==='function'&&typeof format.toDisplay==='function')
return format;var separators=format.replace(this.validParts,'\0').split('\0'),parts=format.match(this.validParts);if(!separators||!separators.length||!parts||parts.length===0){throw new Error("Invalid date format.")}
return{separators:separators,parts:parts}},parseDate:function(date,format,language,assumeNearby){if(!date)
return undefined;if(date instanceof Date)
return date;if(typeof format==='string')
format=DPGlobal.parseFormat(format);if(format.toValue)
return format.toValue(date,format,language);var part_re=/([\-+]\d+)([dmwy])/,parts=date.match(/([\-+]\d+)([dmwy])/g),fn_map={d:'moveDay',m:'moveMonth',w:'moveWeek',y:'moveYear'},dateAliases={yesterday:'-1d',today:'+0d',tomorrow:'+1d'},part,dir,i,fn;if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){date=new Date();for(i=0;i<parts.length;i++){part=part_re.exec(parts[i]);dir=parseInt(part[1]);fn=fn_map[part[2]];date=Datepicker.prototype[fn](date,dir)}
return UTCDate(date.getUTCFullYear(),date.getUTCMonth(),date.getUTCDate())}
if(typeof dateAliases[date]!=='undefined'){date=dateAliases[date];parts=date.match(/([\-+]\d+)([dmwy])/g);if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){date=new Date();for(i=0;i<parts.length;i++){part=part_re.exec(parts[i]);dir=parseInt(part[1]);fn=fn_map[part[2]];date=Datepicker.prototype[fn](date,dir)}
return UTCDate(date.getUTCFullYear(),date.getUTCMonth(),date.getUTCDate())}}
parts=date&&date.match(this.nonpunctuation)||[];date=new Date();function applyNearbyYear(year,threshold){if(threshold===!0)
threshold=10;if(year<100){year+=2000;if(year>((new Date()).getFullYear()+threshold)){year-=100}}
return year}
var parsed={},setters_order=['yyyy','yy','M','MM','m','mm','d','dd'],setters_map={yyyy:function(d,v){return d.setUTCFullYear(assumeNearby?applyNearbyYear(v,assumeNearby):v)},yy:function(d,v){return d.setUTCFullYear(assumeNearby?applyNearbyYear(v,assumeNearby):v)},m:function(d,v){if(isNaN(d))
return d;v-=1;while(v<0)v+=12;v%=12;d.setUTCMonth(v);while(d.getUTCMonth()!==v)
d.setUTCDate(d.getUTCDate()-1);return d},d:function(d,v){return d.setUTCDate(v)}},val,filtered;setters_map.M=setters_map.MM=setters_map.mm=setters_map.m;setters_map.dd=setters_map.d;date=UTCToday();var fparts=format.parts.slice();if(parts.length!==fparts.length){fparts=$(fparts).filter(function(i,p){return $.inArray(p,setters_order)!==-1}).toArray()}
function match_part(){var m=this.slice(0,parts[i].length),p=parts[i].slice(0,m.length);return m.toLowerCase()===p.toLowerCase()}
if(parts.length===fparts.length){var cnt;for(i=0,cnt=fparts.length;i<cnt;i++){val=parseInt(parts[i],10);part=fparts[i];if(isNaN(val)){switch(part){case 'MM':filtered=$(dates[language].months).filter(match_part);val=$.inArray(filtered[0],dates[language].months)+1;break;case 'M':filtered=$(dates[language].monthsShort).filter(match_part);val=$.inArray(filtered[0],dates[language].monthsShort)+1;break}}
parsed[part]=val}
var _date,s;for(i=0;i<setters_order.length;i++){s=setters_order[i];if(s in parsed&&!isNaN(parsed[s])){_date=new Date(date);setters_map[s](_date,parsed[s]);if(!isNaN(_date))
date=_date}}}
return date},formatDate:function(date,format,language){if(!date)
return '';if(typeof format==='string')
format=DPGlobal.parseFormat(format);if(format.toDisplay)
return format.toDisplay(date,format,language);var val={d:date.getUTCDate(),D:dates[language].daysShort[date.getUTCDay()],DD:dates[language].days[date.getUTCDay()],m:date.getUTCMonth()+1,M:dates[language].monthsShort[date.getUTCMonth()],MM:dates[language].months[date.getUTCMonth()],yy:date.getUTCFullYear().toString().substring(2),yyyy:date.getUTCFullYear()};val.dd=(val.d<10?'0':'')+val.d;val.mm=(val.m<10?'0':'')+val.m;date=[];var seps=$.extend([],format.separators);for(var i=0,cnt=format.parts.length;i<=cnt;i++){if(seps.length)
date.push(seps.shift());date.push(val[format.parts[i]])}
return date.join('')},headTemplate:'<thead>'+'<tr>'+'<th colspan="7" class="datepicker-title"></th>'+'</tr>'+'<tr>'+'<th class="prev">&laquo;</th>'+'<th colspan="5" class="datepicker-switch"></th>'+'<th class="next">&raquo;</th>'+'</tr>'+'</thead>',contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot>'+'<tr>'+'<th colspan="7" class="today"></th>'+'</tr>'+'<tr>'+'<th colspan="7" class="clear"></th>'+'</tr>'+'</tfoot>'};DPGlobal.template='<div class="datepicker">'+'<div class="datepicker-days">'+'<table class="table-condensed">'+DPGlobal.headTemplate+'<tbody></tbody>'+DPGlobal.footTemplate+'</table>'+'</div>'+'<div class="datepicker-months">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'</table>'+'</div>'+'<div class="datepicker-years">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'</table>'+'</div>'+'<div class="datepicker-decades">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'</table>'+'</div>'+'<div class="datepicker-centuries">'+'<table class="table-condensed">'+DPGlobal.headTemplate+DPGlobal.contTemplate+DPGlobal.footTemplate+'</table>'+'</div>'+'</div>';$.fn.datepicker.DPGlobal=DPGlobal;$.fn.datepicker.noConflict=function(){$.fn.datepicker=old;return this};$.fn.datepicker.version='1.6.4';$(document).on('focus.datepicker.data-api click.datepicker.data-api','[data-provide="datepicker"]',function(e){var $this=$(this);if($this.data('datepicker'))
return;e.preventDefault();datepickerPlugin.call($this,'show')});$(function(){datepickerPlugin.call($('[data-provide="datepicker-inline"]'))})}))

File diff suppressed because one or more lines are too long

View file

@ -1,44 +0,0 @@
/*
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Uses the built in easing capabilities added In jQuery 1.1
* to offer multiple easing options
*
* TERMS OF USE - EASING EQUATIONS
*
* Open source under the BSD License.
*
* Copyright © 2001 Robert Penner
* All rights reserved.
*
* TERMS OF USE - jQuery Easing
*
* Open source under the BSD License.
*
* Copyright © 2008 George McGinley Smith
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){"use strict";return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){"use strict";return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){"use strict";return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){"use strict";return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){"use strict";return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){"use strict";return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){"use strict";return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){"use strict";return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){"use strict";return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){"use strict";return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){"use strict";return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){"use strict";return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){"use strict";return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){"use strict";return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){"use strict";if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){"use strict";return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){"use strict";return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){"use strict";if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){"use strict";var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){"use strict";var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){"use strict";var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){"use strict";if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){"use strict";if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){"use strict";if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){"use strict";return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){"use strict";if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){"use strict";if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

208
dist/js/scripts.js vendored
View file

@ -1,208 +0,0 @@
/* Description: Custom JS file */
(function($) {
"use strict";
/* Navbar Scripts */
// jQuery for page scrolling feature - requires jQuery Easing plugin
$(function() {
$(document).on('click', 'a.page-scroll', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 600, 'easeInOutExpo');
event.preventDefault();
});
});
// offcanvas script from Bootstrap + added element to close menu on click in small viewport
$('[data-toggle="offcanvas"], .navbar-nav li a:not(.dropdown-toggle').on('click', function () {
$('.offcanvas-collapse').toggleClass('open')
})
// hover in desktop mode
function toggleDropdown (e) {
const _d = $(e.target).closest('.dropdown'),
_m = $('.dropdown-menu', _d);
setTimeout(function(){
const shouldOpen = e.type !== 'click' && _d.is(':hover');
_m.toggleClass('show', shouldOpen);
_d.toggleClass('show', shouldOpen);
$('[data-toggle="dropdown"]', _d).attr('aria-expanded', shouldOpen);
}, e.type === 'mouseleave' ? 300 : 0);
}
$('body')
.on('mouseenter mouseleave','.dropdown',toggleDropdown)
.on('click', '.dropdown-menu a', toggleDropdown);
/* Header Slider - Swiper */
var headerSlider = new Swiper('.header-slider', {
autoplay: {
delay: 3500,
disableOnInteraction: false
},
loop: true,
effect: "fade",
speed: 700
});
/* Image Slider - Swiper */
var imageSlider = new Swiper('.image-slider', {
autoplay: {
delay: 3000,
disableOnInteraction: false
},
loop: false,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
slidesPerView: 3,
spaceBetween: 20,
breakpoints: {
// when window is <= 767px
767: {
slidesPerView: 1
},
// when window is <= 991px
991: {
slidesPerView: 2,
spaceBetween: 10
},
// when window is <= 1199px
1199: {
slidesPerView: 3,
spaceBetween: 20
},
}
});
/* Image Slider Room - Swiper */
var imageSlider = new Swiper('.image-slider-room', {
autoplay: {
delay: 3000,
disableOnInteraction: false
},
loop: false,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
}
});
/* Card Slider - Swiper */
var cardSlider = new Swiper('.card-slider', {
autoplay: {
delay: 4000,
disableOnInteraction: false
},
loop: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
slidesPerView: 3,
spaceBetween: 30,
breakpoints: {
// when window is <= 767px
767: {
slidesPerView: 1
},
// when window is <= 991px
991: {
slidesPerView: 2
}
}
});
/* Image Lightbox - Magnific Popup */
$('.popup-link').magnificPopup({
removalDelay: 300,
type: 'image',
callbacks: {
beforeOpen: function() {
this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure ' + this.st.el.attr('data-effect'));
},
beforeClose: function() {
$('.mfp-figure').addClass('fadeOut');
}
},
gallery:{
enabled:true //enable gallery mode
}
});
/* Details Lightbox - Magnific Popup */
$('.popup-with-move-anim').magnificPopup({
type: 'inline',
fixedContentPos: true,
fixedBgPos: true,
overflowY: 'auto',
closeBtnInside: true,
preloader: false,
midClick: true,
removalDelay: 300,
mainClass: 'my-mfp-slide-bottom'
});
/* Move Form Fields Label When User Types */
// for input and textarea fields
$("input, textarea").keyup(function(){
if ($(this).val() != '') {
$(this).addClass('notEmpty');
} else {
$(this).removeClass('notEmpty');
}
});
/* Datepicker - Bootstrap Datepicker */
$('#start').datepicker({
todayHighlight: true,
autoclose: true,
format: 'MM/dd/yyyy',
});
// detects change to selected date to keep the label above the value in the input field
$('#start').datepicker().on('changeDate', function(e) {
$("input[id=start]").addClass('notEmpty');
});
$('#end').datepicker({
autoclose: true,
format: 'MM/dd/yyyy'
});
// detects change to selected date to keep the label above the value in the input field// keeps the label above the value in the input field
$('#end').datepicker().on('changeDate', function(e) {
$("input[id=end]").addClass('notEmpty');
});
/* Back To Top Button */
// create the back to top button
$('body').prepend('<a href="body" class="back-to-top page-scroll">Back to Top</a>');
var amountScrolled = 700;
$(window).scroll(function() {
if ($(window).scrollTop() > amountScrolled) {
$('a.back-to-top').fadeIn('500');
} else {
$('a.back-to-top').fadeOut('500');
}
});
/* Removes Long Focus On Buttons */
$(".button, a, button").mouseup(function() {
$(this).blur();
});
})(jQuery);

13
dist/js/swiper.min.js vendored

File diff suppressed because one or more lines are too long

253
dist/reservation.html vendored
View file

@ -1,253 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<!-- SEO Meta Tags -->
<meta
name="description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<meta name="author" content="VillaFleurie" />
<!-- OG Meta Tags to improve the way the post looks when you share the page on Facebook, Twitter, LinkedIn -->
<meta property="og:site_name" content="VillaFleurie" />
<!-- website name -->
<meta property="og:site" content="" />
<!-- website link -->
<meta property="og:title" content="VillaFleurie" />
<!-- title shown in the actual shared post -->
<meta
property="og:description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<!-- description shown in the actual shared post -->
<meta property="og:image" content="" />
<!-- image link, make sure it's jpg -->
<meta property="og:url" content="/" />
<!-- where do you want your post to link to -->
<meta name="twitter:card" content="summary_large_image" />
<!-- to have large image post format in Twitter -->
<!-- Webpage Title -->
<title>VillaFleurie</title>
<!-- Styles -->
<link
href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,600;0,700;1,400;1,700&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css2?family=PT+Serif:ital,wght@1,700&display=swap"
rel="stylesheet"
/>
<link href="../css/bootstrap.css" rel="stylesheet" />
<link href="../css/fontawesome-all.css" rel="stylesheet" />
<link href="../css/bootstrap-datepicker3.css" rel="stylesheet" />
<link href="../css/swiper.css" rel="stylesheet" />
<link href="../css/magnific-popup.css" rel="stylesheet" />
<link href="../css/styles.css" rel="stylesheet" />
<!-- Favicon -->
<link rel="icon" href="../images/logo.png" />
<script
defer
data-domain="villafleuriegp.com"
src="https://plausible.nemausat.com/js/script.outbound-links.js"
></script>
<script>
window.plausible =
window.plausible ||
function () {
(window.plausible.q = window.plausible.q || []).push(arguments);
};
</script>
</head>
<body data-spy="scroll" data-target=".fixed-top">
<!-- Navigation -->
<nav class="navbar navbar-expand-lg fixed-top navbar-light">
<div class="container">
<!-- Text Logo - Use this if you don't have a graphic logo -->
<!-- <a class="navbar-brand logo-text page-scroll" href="index.html">Villa</a> -->
<!-- Image Logo -->
<a class="navbar-brand logo-image" href="index.html"
><img
src="../images/logo.png"
alt="VillaFleurie logo"
style="height: 76px"
/></a>
<button
class="navbar-toggler p-0 border-0"
type="button"
data-toggle="offcanvas"
>
<span class="navbar-toggler-icon"></span>
</button>
<div
class="navbar-collapse offcanvas-collapse"
id="navbarsExampleDefault"
>
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="#"
id="dropdown01"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>Chambres</a
>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<a class="dropdown-item page-scroll" href="t2-corail.html"
>T2 Corail</a
>
<div class="dropdown-divider"></div>
<a class="dropdown-item page-scroll" href="t3-azur.html"
>T3 Azur</a
>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="contact.html">Contact</a>
</li>
</ul>
<span class="nav-item ml-auto">
<a class="btn-outline-sm" href="tel:+33658961279">
<i class="fas fa-phone-alt"></i>+33 6 58 96 12 79</a
>
</span>
</div>
<!-- end of navbar-collapse -->
</div>
<!-- end of container -->
</nav>
<!-- end of navbar -->
<!-- end of navigation -->
<!-- Header -->
<header class="ex-header bg-gray">
<div class="container">
<div class="row">
<div class="col-xl-10 offset-xl-1">
<h1 class="green">Merci pour votre message. Nous vous recontactons dès que possible.</h1>
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</header> <!-- end of ex-header -->
<!-- end of header -->
<!-- Footer -->
<div class="footer">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h3>
Si vous souhaitez passer un moment confortable et relaxant,
n'hésitez pas à nous contacter :
<a class="green" href="mailto:location.villafleurie@gmail.com">
location.villafleurie@gmail.com
</a>
</h3>
<div class="social-container">
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-facebook-f fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-twitter fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-pinterest-p fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-instagram fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-youtube fa-stack-1x"></i>
</a>
</span>
</div>
<!-- end of social-container -->
</div>
<!-- end of col -->
</div>
<!-- end of row -->
</div>
<!-- end of container -->
</div>
<!-- end of footer -->
<!-- end of footer -->
<!-- Copyright -->
<div class="copyright">
<div class="container">
<div class="row">
<div class="col-lg-12">
<hr class="divider" />
</div>
<!-- end of col -->
</div>
<!-- end of row -->
<div class="row">
<div class="col-lg-6">
<ul class="list-unstyled li-space-lg p-small">
<li><a href="t2-corail.html">T2 Corail</a></li>
<li><a href="t3-azur.html">T3 Azur</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
<!-- end of list-unstyled -->
</div>
<!-- end of col -->
<div class="col-lg-6">
<p class="p-small statement">Copyright © VillaFleurie</p>
</div>
<!-- end of col -->
</div>
<!-- enf of row -->
</div>
<!-- end of container -->
</div>
<!-- end of copyright -->
<!-- end of copyright -->
<!-- Scripts -->
<script src="../js/jquery.min.js"></script>
<!-- jQuery for Bootstrap's JavaScript plugins -->
<script src="../js/bootstrap.min.js"></script>
<!-- Bootstrap framework -->
<script src="../js/jquery.easing.min.js"></script>
<!-- jQuery Easing for smooth scrolling between anchors -->
<script src="../js/swiper.min.js"></script>
<!-- Swiper for image and text sliders -->
<script src="../js/jquery.magnific-popup.js"></script>
<!-- Magnific Popup for lightboxes -->
<script src="../js/bootstrap-datepicker.min.js"></script>
<!-- Datepicker for Bootstrap -->
<script src="../js/scripts.js"></script>
<!-- Custom scripts -->
</body>
</html>

402
dist/t2-corail.html vendored
View file

@ -1,402 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<!-- SEO Meta Tags -->
<meta
name="description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<meta name="author" content="VillaFleurie" />
<!-- OG Meta Tags to improve the way the post looks when you share the page on Facebook, Twitter, LinkedIn -->
<meta property="og:site_name" content="VillaFleurie" />
<!-- website name -->
<meta property="og:site" content="" />
<!-- website link -->
<meta property="og:title" content="VillaFleurie" />
<!-- title shown in the actual shared post -->
<meta
property="og:description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<!-- description shown in the actual shared post -->
<meta property="og:image" content="" />
<!-- image link, make sure it's jpg -->
<meta property="og:url" content="/" />
<!-- where do you want your post to link to -->
<meta name="twitter:card" content="summary_large_image" />
<!-- to have large image post format in Twitter -->
<!-- Webpage Title -->
<title>VillaFleurie</title>
<!-- Styles -->
<link
href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,600;0,700;1,400;1,700&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css2?family=PT+Serif:ital,wght@1,700&display=swap"
rel="stylesheet"
/>
<link href="../css/bootstrap.css" rel="stylesheet" />
<link href="../css/fontawesome-all.css" rel="stylesheet" />
<link href="../css/bootstrap-datepicker3.css" rel="stylesheet" />
<link href="../css/swiper.css" rel="stylesheet" />
<link href="../css/magnific-popup.css" rel="stylesheet" />
<link href="../css/styles.css" rel="stylesheet" />
<!-- Favicon -->
<link rel="icon" href="../images/logo.png" />
<script
defer
data-domain="villafleuriegp.com"
src="https://plausible.nemausat.com/js/script.outbound-links.js"
></script>
<script>
window.plausible =
window.plausible ||
function () {
(window.plausible.q = window.plausible.q || []).push(arguments);
};
</script>
</head>
<body data-spy="scroll" data-target=".fixed-top">
<!-- Navigation -->
<nav class="navbar navbar-expand-lg fixed-top navbar-light">
<div class="container">
<!-- Text Logo - Use this if you don't have a graphic logo -->
<!-- <a class="navbar-brand logo-text page-scroll" href="index.html">Villa</a> -->
<!-- Image Logo -->
<a class="navbar-brand logo-image" href="index.html"
><img
src="../images/logo.png"
alt="VillaFleurie logo"
style="height: 76px"
/></a>
<button
class="navbar-toggler p-0 border-0"
type="button"
data-toggle="offcanvas"
>
<span class="navbar-toggler-icon"></span>
</button>
<div
class="navbar-collapse offcanvas-collapse"
id="navbarsExampleDefault"
>
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="#"
id="dropdown01"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>Chambres</a
>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<a class="dropdown-item page-scroll" href="t2-corail.html"
>T2 Corail</a
>
<div class="dropdown-divider"></div>
<a class="dropdown-item page-scroll" href="t3-azur.html"
>T3 Azur</a
>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="contact.html">Contact</a>
</li>
</ul>
<span class="nav-item ml-auto">
<a class="btn-outline-sm" href="tel:+33658961279">
<i class="fas fa-phone-alt"></i>+33 6 58 96 12 79</a
>
</span>
</div>
<!-- end of navbar-collapse -->
</div>
<!-- end of container -->
</nav>
<!-- end of navbar -->
<!-- end of navigation -->
<!-- Header -->
<header class="ex-header bg-gray">
<div class="container">
<div class="row">
<div class="col-xl-10 offset-xl-1">
<h1 class="green">T2 Corail - 59€/nuit</h1>
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</header> <!-- end of ex-header -->
<!-- end of header -->
<!-- Basic -->
<div class="ex-basic-1 bg-gray pb-6">
<div class="container">
<div class="row">
<div class="col-lg-12">
<!-- Image Slider Room -->
<div class="slider-container">
<div class="swiper-container image-slider-room">
<div class="swiper-wrapper">
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t2_chambre.jpg"
data-effect="fadeIn"><img
class="img-fluid" src="../images/villafleurie_t2_chambre.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t2_chambre_2.jpg"
data-effect="fadeIn"><img
class="img-fluid" src="../images/villafleurie_t2_chambre_2.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t2_salon_1_wl81yXI.jpg"
data-effect="fadeIn"><img
class="img-fluid" src="../images/villafleurie_t2_salon_1_wl81yXI.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t2_salon_2.jpg"
data-effect="fadeIn"><img
class="img-fluid" src="../images/villafleurie_t2_salon_2.jpg"
alt="alternative"></a>
</div>
</div>
</div> <!-- end of swiper-wrapper -->
<!-- Add Arrows -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
<!-- end of add arrows -->
</div> <!-- end of swiper container -->
</div> <!-- end of slider-container -->
<!-- end of image slider -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of ex-basic-1 -->
<!-- end of basic -->
<!-- Basic -->
<div class="ex-basic-1 pt-5">
<div class="container">
<div class="row">
<div class="col-xl-10 offset-xl-1">
<h2 class="mt-3 mb-4">Description</h2>
<p class="mb-5">Chacune des chambres de la VillaFleurie a été conçue pour offrir la meilleure expérience
possible à de nombreux voyageurs, qu'ils soient à la recherche d'aventure ou qu'ils apprécient le
confort. Nous avons conçu les chambres en nous appuyant sur plus de 10 ans d'expérience et toute
l'équipe est très fière de ce que nous avons réalisé.</p>
<div class="text-box mb-6">
<h3>Des chambres conçues pour le confort et la détente</h3>
<p>Les chambres sont conçues pour offrir les meilleurs niveaux possibles de confort et de
relaxation. Le design contemporain est basé sur des couleurs réconfortantes et parvient à plaire
à de nombreux types de personnalités. Les matériaux utilisés sont modernes et durables.</p>
</div> <!-- end of text-box -->
<ul class="list-unstyled list-icon-lg mb-5">
<li class="media">
<div class="list-icon bg-1">
<i class="fas fa-shower"></i>
</div>
<div class="media-body">
<h3 class="list-item-title">Aménagements modernes</h3>
<p class="list-item-text">Les équipements et les chambres de VillaFleurie sont conçus pour
offrir les meilleurs niveaux possibles de confort et de relaxation. Le design est
contemporain, basé sur des couleurs réconfortantes, et parvient à séduire de nombreux
types de personnalités et de goûts. Les matériaux utilisés dans la
construction de VillaFleurie proviennent des meilleurs fournisseurs.</p>
</div>
</li>
<li class="media">
<div class="list-icon bg-2">
<i class="fas fa-tv"></i>
</div>
<div class="media-body">
<h3 class="list-item-title">Appareils électroménagers de qualité</h3>
<p class="list-item-text">Toute l'électronique est fonctionnelle et conçue pour offrir les
meilleurs niveaux de confort et de relaxation. Le design est contemporain, basé sur des
couleurs réconfortantes et parvient à séduire de nombreux types de personnalités et de
goûts. L'objectif principal de tous les appareils est d'offrir un grand confort à
l'intérieur.</p>
</div>
</li>
</ul> <!-- end of list-unstyled -->
<p class="mb-4">D'autres caractéristiques ont été conçues pour offrir les meilleurs niveaux possibles de
confort et de relaxation. Le design contemporain basé sur des couleurs réconfortantes et parvient à
séduire de nombreux types de personnalités et de goûts. Les matériaux utilisés dans la
construction de la villa sont modernes et durables.</p>
<ul class="list-unstyled li-space-lg amenities mb-5">
<li class="media">
<i class="fas fa-shower"></i>
<div class="media-body"><strong>Réserve d'eau</strong> VillaFleurie est équipée d'une réserve
d'eau permettant de ne pas se soucier des éventuelles coupures d'eau
</div>
</li>
<li class="media">
<i class="fas fa-tv"></i>
<div class="media-body"><strong>TV LCD moderne</strong> pour les jours de pluie qu'il faut
passer à l'intérieur.
</div>
</li>
<li class="media">
<i class="fas fa-snowflake"></i>
<div class="media-body"><strong>Climatisation</strong> de pointe spécialement conçue pour créer
une température optimale
</div>
</li>
</ul>
<a class="btn-solid-reg mb-6" href="index.html">Réserver</a>
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of ex-basic-1 -->
<!-- end of basic -->
<!-- Footer -->
<div class="footer">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h3>
Si vous souhaitez passer un moment confortable et relaxant,
n'hésitez pas à nous contacter :
<a class="green" href="mailto:location.villafleurie@gmail.com">
location.villafleurie@gmail.com
</a>
</h3>
<div class="social-container">
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-facebook-f fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-twitter fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-pinterest-p fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-instagram fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-youtube fa-stack-1x"></i>
</a>
</span>
</div>
<!-- end of social-container -->
</div>
<!-- end of col -->
</div>
<!-- end of row -->
</div>
<!-- end of container -->
</div>
<!-- end of footer -->
<!-- end of footer -->
<!-- Copyright -->
<div class="copyright">
<div class="container">
<div class="row">
<div class="col-lg-12">
<hr class="divider" />
</div>
<!-- end of col -->
</div>
<!-- end of row -->
<div class="row">
<div class="col-lg-6">
<ul class="list-unstyled li-space-lg p-small">
<li><a href="t2-corail.html">T2 Corail</a></li>
<li><a href="t3-azur.html">T3 Azur</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
<!-- end of list-unstyled -->
</div>
<!-- end of col -->
<div class="col-lg-6">
<p class="p-small statement">Copyright © VillaFleurie</p>
</div>
<!-- end of col -->
</div>
<!-- enf of row -->
</div>
<!-- end of container -->
</div>
<!-- end of copyright -->
<!-- end of copyright -->
<!-- Scripts -->
<script src="../js/jquery.min.js"></script>
<!-- jQuery for Bootstrap's JavaScript plugins -->
<script src="../js/bootstrap.min.js"></script>
<!-- Bootstrap framework -->
<script src="../js/jquery.easing.min.js"></script>
<!-- jQuery Easing for smooth scrolling between anchors -->
<script src="../js/swiper.min.js"></script>
<!-- Swiper for image and text sliders -->
<script src="../js/jquery.magnific-popup.js"></script>
<!-- Magnific Popup for lightboxes -->
<script src="../js/bootstrap-datepicker.min.js"></script>
<!-- Datepicker for Bootstrap -->
<script src="../js/scripts.js"></script>
<!-- Custom scripts -->
</body>
</html>

395
dist/t3-azur.html vendored
View file

@ -1,395 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<!-- SEO Meta Tags -->
<meta
name="description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<meta name="author" content="VillaFleurie" />
<!-- OG Meta Tags to improve the way the post looks when you share the page on Facebook, Twitter, LinkedIn -->
<meta property="og:site_name" content="VillaFleurie" />
<!-- website name -->
<meta property="og:site" content="" />
<!-- website link -->
<meta property="og:title" content="VillaFleurie" />
<!-- title shown in the actual shared post -->
<meta
property="og:description"
content="VillaFleurie location de vacances au Gosier en Guadeloupe"
/>
<!-- description shown in the actual shared post -->
<meta property="og:image" content="" />
<!-- image link, make sure it's jpg -->
<meta property="og:url" content="/" />
<!-- where do you want your post to link to -->
<meta name="twitter:card" content="summary_large_image" />
<!-- to have large image post format in Twitter -->
<!-- Webpage Title -->
<title>VillaFleurie</title>
<!-- Styles -->
<link
href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,600;0,700;1,400;1,700&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css2?family=PT+Serif:ital,wght@1,700&display=swap"
rel="stylesheet"
/>
<link href="../css/bootstrap.css" rel="stylesheet" />
<link href="../css/fontawesome-all.css" rel="stylesheet" />
<link href="../css/bootstrap-datepicker3.css" rel="stylesheet" />
<link href="../css/swiper.css" rel="stylesheet" />
<link href="../css/magnific-popup.css" rel="stylesheet" />
<link href="../css/styles.css" rel="stylesheet" />
<!-- Favicon -->
<link rel="icon" href="../images/logo.png" />
<script
defer
data-domain="villafleuriegp.com"
src="https://plausible.nemausat.com/js/script.outbound-links.js"
></script>
<script>
window.plausible =
window.plausible ||
function () {
(window.plausible.q = window.plausible.q || []).push(arguments);
};
</script>
</head>
<body data-spy="scroll" data-target=".fixed-top">
<!-- Navigation -->
<nav class="navbar navbar-expand-lg fixed-top navbar-light">
<div class="container">
<!-- Text Logo - Use this if you don't have a graphic logo -->
<!-- <a class="navbar-brand logo-text page-scroll" href="index.html">Villa</a> -->
<!-- Image Logo -->
<a class="navbar-brand logo-image" href="index.html"
><img
src="../images/logo.png"
alt="VillaFleurie logo"
style="height: 76px"
/></a>
<button
class="navbar-toggler p-0 border-0"
type="button"
data-toggle="offcanvas"
>
<span class="navbar-toggler-icon"></span>
</button>
<div
class="navbar-collapse offcanvas-collapse"
id="navbarsExampleDefault"
>
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a
class="nav-link dropdown-toggle"
href="#"
id="dropdown01"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>Chambres</a
>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<a class="dropdown-item page-scroll" href="t2-corail.html"
>T2 Corail</a
>
<div class="dropdown-divider"></div>
<a class="dropdown-item page-scroll" href="t3-azur.html"
>T3 Azur</a
>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="contact.html">Contact</a>
</li>
</ul>
<span class="nav-item ml-auto">
<a class="btn-outline-sm" href="tel:+33658961279">
<i class="fas fa-phone-alt"></i>+33 6 58 96 12 79</a
>
</span>
</div>
<!-- end of navbar-collapse -->
</div>
<!-- end of container -->
</nav>
<!-- end of navbar -->
<!-- end of navigation -->
<!-- Header -->
<header class="ex-header bg-gray">
<div class="container">
<div class="row">
<div class="col-xl-10 offset-xl-1">
<h1 class="green">T3 Azur - 79€/nuit</h1>
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</header> <!-- end of ex-header -->
<!-- end of header -->
<!-- Basic -->
<div class="ex-basic-1 bg-gray pb-6">
<div class="container">
<div class="row">
<div class="col-lg-12">
<!-- Image Slider Room -->
<div class="slider-container">
<div class="swiper-container image-slider-room">
<div class="swiper-wrapper">
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t3_chambre.jpg"
data-effect="fadeIn"><img class="img-fluid"
src="../images/villafleurie_t3_chambre.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t3_salon.jpg"
data-effect="fadeIn"><img class="img-fluid"
src="../images/villafleurie_t3_salon.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
<!-- Slide -->
<div class="swiper-slide">
<div class="image-container">
<a class="popup-link" href="../images/villafleurie_t3_cuisine.jpg"
data-effect="fadeIn"><img class="img-fluid"
src="../images/villafleurie_t3_cuisine.jpg"
alt="alternative"></a>
</div>
</div>
<!-- end of slide -->
</div> <!-- end of swiper-wrapper -->
<!-- Add Arrows -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
<!-- end of add arrows -->
</div> <!-- end of swiper container -->
</div> <!-- end of slider-container -->
<!-- end of image slider -->
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of ex-basic-1 -->
<!-- end of basic -->
<!-- Basic -->
<div class="ex-basic-1 pt-5">
<div class="container">
<div class="row">
<div class="col-xl-10 offset-xl-1">
<h2 class="mt-3 mb-4">Description</h2>
<p class="mb-5">Chacune des chambres de la VillaFleurie a été conçue pour offrir la meilleure expérience
possible à de nombreux voyageurs, qu'ils soient à la recherche d'aventure ou qu'ils apprécient le
confort. Nous avons conçu les chambres en nous appuyant sur plus de 10 ans d'expérience et toute
l'équipe est très fière de ce que nous avons réalisé.</p>
<div class="text-box mb-6">
<h3>Des chambres conçues pour le confort et la détente</h3>
<p>Les chambres sont conçues pour offrir les meilleurs niveaux possibles de confort et de
relaxation. Le design contemporain est basé sur des couleurs réconfortantes et parvient à plaire
à de nombreux types de personnalités. Les matériaux utilisés sont modernes et durables.</p>
</div> <!-- end of text-box -->
<ul class="list-unstyled list-icon-lg mb-5">
<li class="media">
<div class="list-icon bg-1">
<i class="fas fa-shower"></i>
</div>
<div class="media-body">
<h3 class="list-item-title">Aménagements modernes</h3>
<p class="list-item-text">Les équipements et les chambres de VillaFleurie sont conçus pour
offrir les meilleurs niveaux possibles de confort et de relaxation. Le design est
contemporain, basé sur des couleurs réconfortantes, et parvient à séduire de nombreux
types de personnalités et de goûts. Les matériaux utilisés dans la
construction de VillaFleurie proviennent des meilleurs fournisseurs.</p>
</div>
</li>
<li class="media">
<div class="list-icon bg-2">
<i class="fas fa-tv"></i>
</div>
<div class="media-body">
<h3 class="list-item-title">Appareils électroménagers de qualité</h3>
<p class="list-item-text">Toute l'électronique est fonctionnelle et conçue pour offrir les
meilleurs niveaux de confort et de relaxation. Le design est contemporain, basé sur des
couleurs réconfortantes et parvient à séduire de nombreux types de personnalités et de
goûts. L'objectif principal de tous les appareils est d'offrir un grand confort à
l'intérieur.</p>
</div>
</li>
</ul> <!-- end of list-unstyled -->
<p class="mb-4">D'autres caractéristiques ont été conçues pour offrir les meilleurs niveaux possibles de
confort et de relaxation. Le design contemporain basé sur des couleurs réconfortantes et parvient à
séduire de nombreux types de personnalités et de goûts. Les matériaux utilisés dans la
construction de la villa sont modernes et durables.</p>
<ul class="list-unstyled li-space-lg amenities mb-5">
<li class="media">
<i class="fas fa-shower"></i>
<div class="media-body"><strong>Réserve d'eau</strong> VillaFleurie est équipée d'une réserve
d'eau permettant de ne pas se soucier des éventuelles coupures d'eau
</div>
</li>
<li class="media">
<i class="fas fa-tv"></i>
<div class="media-body"><strong>TV LCD moderne</strong> pour les jours de pluie qu'il faut
passer à l'intérieur.
</div>
</li>
<li class="media">
<i class="fas fa-snowflake"></i>
<div class="media-body"><strong>Climatisation</strong> de pointe spécialement conçue pour créer
une température optimale
</div>
</li>
</ul>
<a class="btn-solid-reg mb-6" href="index.html">Réserver</a>
</div> <!-- end of col -->
</div> <!-- end of row -->
</div> <!-- end of container -->
</div> <!-- end of ex-basic-1 -->
<!-- end of basic -->
<!-- Footer -->
<div class="footer">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h3>
Si vous souhaitez passer un moment confortable et relaxant,
n'hésitez pas à nous contacter :
<a class="green" href="mailto:location.villafleurie@gmail.com">
location.villafleurie@gmail.com
</a>
</h3>
<div class="social-container">
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-facebook-f fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-twitter fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-pinterest-p fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-instagram fa-stack-1x"></i>
</a>
</span>
<span class="fa-stack">
<a href="#your-link">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-youtube fa-stack-1x"></i>
</a>
</span>
</div>
<!-- end of social-container -->
</div>
<!-- end of col -->
</div>
<!-- end of row -->
</div>
<!-- end of container -->
</div>
<!-- end of footer -->
<!-- end of footer -->
<!-- Copyright -->
<div class="copyright">
<div class="container">
<div class="row">
<div class="col-lg-12">
<hr class="divider" />
</div>
<!-- end of col -->
</div>
<!-- end of row -->
<div class="row">
<div class="col-lg-6">
<ul class="list-unstyled li-space-lg p-small">
<li><a href="t2-corail.html">T2 Corail</a></li>
<li><a href="t3-azur.html">T3 Azur</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
<!-- end of list-unstyled -->
</div>
<!-- end of col -->
<div class="col-lg-6">
<p class="p-small statement">Copyright © VillaFleurie</p>
</div>
<!-- end of col -->
</div>
<!-- enf of row -->
</div>
<!-- end of container -->
</div>
<!-- end of copyright -->
<!-- end of copyright -->
<!-- Scripts -->
<script src="../js/jquery.min.js"></script>
<!-- jQuery for Bootstrap's JavaScript plugins -->
<script src="../js/bootstrap.min.js"></script>
<!-- Bootstrap framework -->
<script src="../js/jquery.easing.min.js"></script>
<!-- jQuery Easing for smooth scrolling between anchors -->
<script src="../js/swiper.min.js"></script>
<!-- Swiper for image and text sliders -->
<script src="../js/jquery.magnific-popup.js"></script>
<!-- Magnific Popup for lightboxes -->
<script src="../js/bootstrap-datepicker.min.js"></script>
<!-- Datepicker for Bootstrap -->
<script src="../js/scripts.js"></script>
<!-- Custom scripts -->
</body>
</html>

Binary file not shown.

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 676 KiB

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more