diff --git a/Web12306/Web12306.csproj b/Web12306/Web12306.csproj index 86d723d..d9e8109 100644 --- a/Web12306/Web12306.csproj +++ b/Web12306/Web12306.csproj @@ -163,6 +163,7 @@ + @@ -197,6 +198,7 @@ + diff --git a/Web12306/css/ui/date-selector.css b/Web12306/css/ui/date-selector.css index 6f42fac..b404f1c 100644 --- a/Web12306/css/ui/date-selector.css +++ b/Web12306/css/ui/date-selector.css @@ -87,7 +87,7 @@ } .date-bar-wrap .date-bar .date-bar-list li { - width: 12.5%; + width: 14.28%; height: 100%; float: left; border-top: 1px solid #dfdfdf; @@ -97,6 +97,11 @@ cursor: pointer; box-sizing: border-box; } + .date-bar-wrap .date-bar .date-bar-list li.disabled { + background-color: #cccccc; + color: #aaaaaa; + cursor: not-allowed; + } .date-bar-wrap .date-bar .date-bar-list li h5 { font-weight: bold; @@ -119,6 +124,13 @@ border-bottom: 1px solid #f78b20; } + .date-bar-wrap .date-bar .date-bar-list li.disabled:hover { + color: #aaaaaa; + background: #cccccc; + border-left-color: #b8b7b7; + border-top-color: #dfdfdf; + } + .date-bar-wrap .date-bar .date-bar-list li.selected:after, .date-bar-wrap .date-bar .date-bar-list li.selected:before { content: ''; diff --git a/Web12306/css/ui/widget-ticketsubmit.css b/Web12306/css/ui/widget-ticketsubmit.css index 4e85d50..4290ee8 100644 --- a/Web12306/css/ui/widget-ticketsubmit.css +++ b/Web12306/css/ui/widget-ticketsubmit.css @@ -15,90 +15,95 @@ border-radius: 10px 10px 11px 11px; } - #ticket-info .time-info { - position: absolute; - left: 33px; - top: 37px; - font-size: 16px; + #ticket-info .banner { + height: 65px; + background-color: #3884c9; + position: relative; + border-radius: 10px 10px 0 0; + color: #ffffff; } - #ticket-info .coach-info { + #ticket-info .time-info { position: absolute; - right: 33px; - top: 37px; - font-size: 16px; + left: 30px; + top: 45px; + font-size: 15px; + } + + #ticket-info .station-info { + position: absolute; + font-size: 24px; + font-weight: bold; + top: 16px; + left: 30px; + line-height: 24px; } #ticket-info .from-station, #ticket-info .to-station { - position: absolute; - left: 35px; - top: 75px; - font-size: 26px; - font-weight: bold; + display: inline-block; + max-width: 90px; + -ms-text-overflow: ellipsis; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + position: relative; } - #ticket-info .to-station { - left: auto; - right: 35px; + #ticket-info .from-station { + margin-right: 55px; } + #ticket-info .from-station:after { + content: ''; + display: block; + position: absolute; + width: 50px; + height: 16px; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAAAGCAMAAABU1iZBAAAAXVBMVEX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8/beDHAAAAHnRSTlMAZ0oGdIhB9bZxLQH856NeGYbz044L+b96NgPtrCIXxUamAAAAQklEQVR4XpXLRQrAQAAEwXWPu83/nxlYyDUwdWxo8U+bwWlByxY+xER/sgBo2q7nNjWimma1fA2MdduPs16s65bPC+CBDerN+CjfAAAAAElFTkSuQmCC') no-repeat center center; + right: -53px; + top: 4px; + } + + #ticket-info .train-no { position: absolute; - left: 145px; - top: 70px; - font-size: 18px; - font-weight: bold; display: block; - width: 110px; - text-align: center; - background: url(data:image/png;base64,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/GMzLdsAADoSaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAxNCA3OS4xNTE0ODEsIDIwMTMvMDMvMTMtMTI6MDk6MTUgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDQtMjhUMTk6Mjg6MjIrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTA0LTI4VDE5OjI4OjIyKzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wNC0yOFQxOToyODoyMiswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6MGNmNGU4NzUtNWE1Ny00YzQ5LThlZDgtZmNmZTAyOWQ4NDI4PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOmRhY2NkMjE4LThiOTAtM2I0Mi1iNDM5LWY2NWJjOWNlZmNiMDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmRhY2NkMjE4LThiOTAtM2I0Mi1iNDM5LWY2NWJjOWNlZmNiMDwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpkYWNjZDIxOC04YjkwLTNiNDItYjQzOS1mNjViYzljZWZjYjA8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDQtMjhUMTk6Mjg6MjIrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjBjZjRlODc1LTVhNTctNGM0OS04ZWQ4LWZjZmUwMjlkODQyODwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wNC0yOFQxOToyODoyMiswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj45ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz7ag4zCAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAACVSURBVHja7NYxCsJAEEbhb9HGO4iVZ7CzsBJbT+AZxJPa6dqkk2AhwQPYbLGkCIgaxOyDn4FhimFeM8H/M8YSazQ445Ly+JUlg+EwwQ57zFPvipiJydMUEd9lhC0OWHTM1Tj1JWmIInJWScjmxVvUSUjManxHUkCFmcKnaEvKc+8SccS03K8XbulZaEuqngAAAP//AwD/PiwLDCvikwAAAABJRU5ErkJggg==) /*../../images/ticket-submit-info-arrow.png*/ no-repeat bottom center; - *background: url(../../images/ticket-submit-info-arrow.png) no-repeat bottom center; /* For IE 6 and 7 */ height: 30px; + top: 20px; + font-size: 24px; + font-weight: normal; + right: 20px; } - #ticket-info .price-info { - position: absolute; - left: 30px; - top: 130px; - font-size: 22px; + #ticket-info table.ticket-passenger { + margin: 10px 30px 15px 30px; + border-left: 1px solid #98bbdf; + border-top: 1px solid #98bbdf; + border-bottom: 1px solid #98bbdf; } - #ticket-info .ticket-note { - position: absolute; - left: 35px; - top: 165px; - font-size: 14px; - } + #ticket-info table.ticket-passenger th { + border-right: 1px solid #98bbdf; + border-bottom: 2px solid #98bbdf; + color: #3b84c9; + font-weight: bold; + width: 110px; + text-align: center; + padding: 5px; + } - #ticket-info .train-type { - position: absolute; - right: 30px; - top: 130px; - font-size: 14px; - } + #ticket-info table.ticket-passenger td { + border-top: 1px solid #98bbdf; + border-right: 1px solid #98bbdf; + color: #444444; + background-color: #ffffff; + text-align: center; + padding: 5px; + } - #ticket-info .qr-code { - position: absolute; - right: 30px; - top: 160px; - background: left top no-repeat; - background-image: url("data:image/png;base64,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/GMzLdsAADoTaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAxNCA3OS4xNTE0ODEsIDIwMTMvMDMvMTMtMTI6MDk6MTUgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDQtMjhUMTk6MzY6NTMrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTA0LTI4VDE5OjM2OjUzKzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wNC0yOFQxOTozNjo1MyswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6OWYyOTM4ZmMtOWZmNS04MDQ3LTkwNTAtYjIxNzVhZGVjNWZjPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjNiMWIwOTAzLWNhOGYtMTg0Mi1hMWQ2LTUyYzkzYjFhNmI5NjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjNiMWIwOTAzLWNhOGYtMTg0Mi1hMWQ2LTUyYzkzYjFhNmI5NjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozYjFiMDkwMy1jYThmLTE4NDItYTFkNi01MmM5M2IxYTZiOTY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDQtMjhUMTk6MzY6NTMrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmMjkzOGZjLTlmZjUtODA0Ny05MDUwLWIyMTc1YWRlYzVmYzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wNC0yOFQxOTozNjo1MyswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj43NzwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj43NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+Frrr2QAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAk3UlEQVR42txcZ1RU19p+pgMDDENHEQQRFUVREBWNYERzoxjrNXp12WISk6ixxfhFTIw1tmjKjV1zNSbGmkRFVBAVFbEiQaQ3QSnSQZjG+/341t6ZMzMg3q/8+N61zpo1p+xzzt7vfsvzPvuIiKgEgB3+B4WIIBKJBP8BCPZZuuZl57zKPf8XpV5E7Gn/F+W/2yHtae//sNMgBVAPwC49PR0bN26EWCxGS0vLSx9aIpFAr9djyZIlCA4ONjtn0aJFqKysxPfffw+VSiU4VlJSgs8++wwAoNPpMHDgQCxcuJAfT0hIwN69eyGTydDU1IR//OMfGDduHD/OOmfTpk148OABNm3aBG9vb0RHRyMnJwcymYw/p5OTE7Zs2QK5XA4AyM3NxZdffgmRSPRK7zlv3jy89tprAFAPIqojIvrjjz8IwCtvBw8eJEvCjhcXF5sdu3fvnqCN4OBgwfH169cLjs+fP9/iPTp37kwAKDs7W3BP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") /*../../images/ticket-submit-qr.png*/; - *background-image: url("../../images/ticket-submit-qr.png"); /* For IE 6 and 7 */ - width: 77px; - height: 77px; - z-index: 1; - } - - #ticket-info .banner { - height: 32px; - background-color: #3884c9; - left: 0; - right: 0; - bottom: 0; - position: absolute; - border-radius: 0 0 10px 10px; - } + #ticket-info table.ticket-passenger tr:nth-child(even) td { + background-color: #dbe8f4; + } #ticket-submit-rings { position: absolute; @@ -115,7 +120,7 @@ border-radius: 5px; border: 1px solid #c9c8c6; background: linear-gradient(to bottom, #fff, #f1f0f1); - top: 48px; + top: 40px; box-shadow: 0 0 5px rgba(100,100,100,0.3); } diff --git a/Web12306/images/ticket-submit-info-arrow-w.png b/Web12306/images/ticket-submit-info-arrow-w.png new file mode 100644 index 0000000..f0f72f0 Binary files /dev/null and b/Web12306/images/ticket-submit-info-arrow-w.png differ diff --git a/Web12306/index.html b/Web12306/index.html index c8e8f32..3b47c09 100644 --- a/Web12306/index.html +++ b/Web12306/index.html @@ -88,8 +88,8 @@
  • - - + +
  • @@ -217,40 +217,15 @@
    -
      -
    • -
      03-12
      - 星期一 + +
      @@ -284,7 +259,7 @@

      历时{{=t.elapsedTime.total.replace(':',"小时")}}分

      -

      {{=t.from.name}}

      +

      {{=t.from.name}}

      {{=t.to.name}}

      @@ -395,33 +370,29 @@
      -
      - 2014年4月14日 15:42开 + -
      - 10车22号下铺 -
      -
      - 南 昌 -
      -
      - 合 肥 -
      -
      - T191次 -
      -
      - ¥227.00 元 -
      -
      - 请尽快提交订单并支付,
      - 车票不等人。。。 -
      -
      - 新空调快车 -
      -
      - + + + + + + + +
      乘车人票种席别
      diff --git a/Web12306/js/boot.js b/Web12306/js/boot.js index 53a12c9..ce82d94 100644 --- a/Web12306/js/boot.js +++ b/Web12306/js/boot.js @@ -92,51 +92,56 @@ var notInstallExtension = function () { seajs.use("ui/noextension"); }; + var entryPoint = function () { + if (!window.targetExtensionId) { + notInstallExtension(); + } else { + //确保内容脚本启动 + var start = $.Deferred(); + start.done(function () { + chrome.runtime.sendMessage(window.targetExtensionId, { action: "getStorage" }, function (m) { + window.storage = m.detail; + + seajs.use("ui/" + pagename); + }); + }); + start.fail(function () { + notInstallExtension(); + }); + + if (document.body.dataset["mobileSupportInitialized"]) { + start.resolve(); + } else { + var timer = setTimeout(function () { + start.reject(); + }, 3000); + document.addEventListener("mobileSupportInitialized", function () { + window.clearTimeout(timer); + start.resolve(); + }); + } + } + }; var targetExtension = [ "bpbefagpafkfgoihbmcgeileodldkpnf", "gkbheeokbgmmnbjhhlphckobccejghjn" ]; window.targetExtensionId = null; + var nextTest = function () { + if (targetExtension.length) { + var id = targetExtension.pop(); + chrome.runtime.sendMessage(id, { action: "getStorage" }, function (m) { + if (m) { + window.targetExtensionId = id; + window.storage = m.detail; + entryPoint(); + } else { + nextTest(); + } + }); + } else entryPoint(); + }; if (typeof (chrome) !== 'undefined') { - for (var id in targetExtension) { - var port = chrome.runtime.connect(targetExtension[id]); - try { - port.postMessage(""); - port.disconnect(); - - window.targetExtensionId = targetExtension[id]; - break; - } catch (e) { - - } - } - } - if (!window.targetExtensionId) { - notInstallExtension(); - } else { - //确保内容脚本启动 - var start = $.Deferred(); - start.done(function () { - chrome.runtime.sendMessage(window.targetExtensionId, { action: "getStorage" }, function (m) { - window.storage = m.detail; - - seajs.use("ui/" + pagename); - }); - }); - start.fail(function () { - notInstallExtension(); - }); - - if (document.body.dataset["mobileSupportInitialized"]) { - start.resolve(); - } else { - var timer = setTimeout(function () { - start.reject(); - }, 3000); - document.addEventListener("mobileSupportInitialized", function () { - window.clearTimeout(timer); - start.resolve(); - }); - } - } + nextTest(); + } else entryPoint(); })(window, document); diff --git a/Web12306/js/data.js b/Web12306/js/data.js index bc57668..9188217 100644 --- a/Web12306/js/data.js +++ b/Web12306/js/data.js @@ -6,7 +6,7 @@ "1": "成人", "2": "儿童", "3": "学生", - "4": "残疾军人、伤残人民警察" + "4": "残军" }; exports.tagOtnMap = { "9": "SWZ", diff --git a/Web12306/js/otn/orderprocess.js b/Web12306/js/otn/orderprocess.js index b8ea2c7..c7d6416 100644 --- a/Web12306/js/otn/orderprocess.js +++ b/Web12306/js/otn/orderprocess.js @@ -16,7 +16,7 @@ }; exports.prepareOrder = function (train, profile) { - var purposeCode = profile.studentTicket=="1" ? "0X00" : "ADULT"; + var purposeCode = profile.studentTicket ? "0X00" : "ADULT"; var data = "secretStr" + "=" + train.secureStr + "&train_date=" + train.date + "&back_train_date" + "=" + (profile.resign ? profile.resignDate : train.date) + "&tour_flag" + "=" + (profile.resign ? "gc" : "dc") + "&" + "purpose_codes" + "=" + purposeCode + "&" + "query_from_station_name" + "=" + profile.fromText + "&" + @@ -33,10 +33,6 @@ var token = /var\s*globalRepeatSubmitToken\s*=\s*['"]([^'"]+)["']/i.exec(html) && RegExp.$1; if (token) { submitToken = token; - - console.log(token, submitData.leftTicketStr, submitData.key_check_isChange, submitData.train_location); - - def.resolve({ token: token }); } else { submitToken = null; @@ -123,7 +119,7 @@ fromStationTelecode: train.from.code, toStationTelecode: train.to.code, leftTicket: submitData["leftTicketStr"], - purpose_codes: profile.studentTicket === "1" ? "0X00" : "00", + purpose_codes: profile.studentTicket ? "0X00" : "00", _json_att: ajax.userAtts, REPEAT_SUBMIT_TOKEN: submitToken }; @@ -153,7 +149,7 @@ passengerTicketStr: pas1, oldPassengerStr: pas2, randCode: randcode, - purpose_codes: profile.studentTicket === "1" ? "0X00" : "00", + purpose_codes: profile.studentTicket ? "0X00" : "00", key_check_isChange: submitData["key_check_isChange"], leftTicketStr: submitData["leftTicketStr"], train_location: submitData["train_location"], diff --git a/Web12306/js/otn/queryticket.js b/Web12306/js/otn/queryticket.js index 12a2330..1675107 100644 --- a/Web12306/js/otn/queryticket.js +++ b/Web12306/js/otn/queryticket.js @@ -142,7 +142,7 @@ "leftTicketDTO.train_date": date, "leftTicketDTO.from_station": from, "leftTicketDTO.to_station": to, - "purpose_codes": student == "1" ? "0X00" : "ADULT" + "purpose_codes": student ? "0X00" : "ADULT" }, "json", function () { var data = transferData(this.model); def.resolveWith(data); diff --git a/Web12306/js/ui/index.js b/Web12306/js/ui/index.js index e60ce3c..85622f2 100644 --- a/Web12306/js/ui/index.js +++ b/Web12306/js/ui/index.js @@ -63,16 +63,16 @@ return; } - if (user.options.showMoreOpt !== undefined) { var div = $("div.options-param"); - if(user.options.showMoreOpt ^ div.is(":visible")) + if (user.options.showMoreOpt ^ div.is(":visible")) !user.options.showMoreOpt ? (div.hide(), $(".search-more-option").html("显示更多选项")) : (div.show(), $(".search-more-option").html("隐藏更多选项")); } var p = user.currentProfile; $("#from_city").val(p.fromText).attr("data-code", p.fromCode); $("#to_city").val(p.toText).attr("data-code", p.toCode); + document.querySelector("input[name='ticket_type'][value='" + (p.studentTicket ? "1" : "0") + "']").checked = true; $("input[data-profile-key],select[data-profile-key]").each(function () { var type = this.type; @@ -84,7 +84,7 @@ } if (type === "checkbox") - this.checked = svalue || false; + this.checked = svalue == value; else if (type === "radio") { this.checked = svalue == value; } else { @@ -124,6 +124,10 @@ p.toCode = this.dataset.code; sessMgr.save(); }); + $("input[name='ticket_type']").click(function() { + sessMgr.currentProfile.studentTicket = this.value === "1"; + sessMgr.save(); + }); $(document).on("change", "input[data-profile-key],select[data-profile-key]", function () { var u = sessMgr.current; var p = u.currentProfile; @@ -143,14 +147,14 @@ p[key] = checked; } } else if (type === "checkbox") { - p[key] = this.checked; + p[key] = this.checked ? this.value : null; } else { p[key] = $(this).val(); } sessMgr.save(); }); $("#btnQuery").click(function () { - ui_result.load($("#from_city").attr("data-code"), $("#to_city").attr("data-code"), $("#dep_date").val(), sessMgr.currentProfile.studentTicket, true); + ui_result.load(); }); @@ -160,7 +164,7 @@ })(); //系统级别错误捕捉 - (function() { + (function () { document.addEventListener("networkOrCertificationError", function () { //TODO UI alert("无法访问12306,可能是网络错误或证书错误,请直接访问12306试试!如果正常的话请回来刷新本页!"); diff --git a/Web12306/js/ui/ui-order-submit-process.js b/Web12306/js/ui/ui-order-submit-process.js index f4c3d05..0723ae9 100644 --- a/Web12306/js/ui/ui-order-submit-process.js +++ b/Web12306/js/ui/ui-order-submit-process.js @@ -30,7 +30,7 @@ pTrain = train; pSeat = seat; pProfile = profile; - pStu = profile.studentTicket || "0"; + pStu = profile.studentTicket; pPassengers = passengers; } if (!pTrain) diff --git a/Web12306/js/ui/ui-passenger-selection.js b/Web12306/js/ui/ui-passenger-selection.js index aba1a1e..d924da5 100644 --- a/Web12306/js/ui/ui-passenger-selection.js +++ b/Web12306/js/ui/ui-passenger-selection.js @@ -41,7 +41,7 @@ list.removeClass("loading"); list.html(listTpl(_.filter(paslist, function (p) { - return stu === "0" || p.passenger_type === '3'; + return !stu || p.passenger_type === '3'; }), extTplData)); }); }; diff --git a/Web12306/js/ui/ui-submit-order.js b/Web12306/js/ui/ui-submit-order.js index 8ac7527..69a26a8 100644 --- a/Web12306/js/ui/ui-submit-order.js +++ b/Web12306/js/ui/ui-submit-order.js @@ -5,10 +5,15 @@ var mp = require("./widget_message_popup.js"); var op = require("../otn/orderprocess.js"); var vc = require("./widget_verifycode.js"); + var param = require("../data.js"); //提交参数 var pTrain, pStu, pPassengers, pProfile; var submitDef; + //界面 + var ticketPassengerContainer = $("table.ticket-passenger"); + var ticketPassengerTpl = $("#ticket-passenger-template").doT(); + var SubmitOrderUi = function () { var that = this; EventObject.apply(this); @@ -35,6 +40,17 @@ pProfile = profile; pStu = profile.studentTicket; pPassengers = passengers; + + //显示乘客列表 + ticketPassengerContainer.find("tr:gt(0)").remove().end().append(ticketPassengerTpl(pPassengers, { + param: param + })); + //车次信息 + var ticketInfo = $("#ticket-info"); + ticketInfo.find(".time-info").html(pTrain.date.replace(/(\d{4})-(\d{2})-(\d{2})/, "$1年$2月$3日") + " " + pTrain.from.time + "发车"); + ticketInfo.find(".from-station").html(pTrain.from.name); + ticketInfo.find(".to-station").html(pTrain.to.name); + ticketInfo.find(".train-no").html(pTrain.code + "次"); } if (!pTrain) return; diff --git a/Web12306/js/ui/ui-trainlist.js b/Web12306/js/ui/ui-trainlist.js index 545cdcc..6f8de8c 100644 --- a/Web12306/js/ui/ui-trainlist.js +++ b/Web12306/js/ui/ui-trainlist.js @@ -7,6 +7,7 @@ var EventObject = require("../platform/EventObject.js"); var mp = require("./widget_message_popup.js"); var tsquery = require("./ui-train-stop.js"); + var datebar = require("./widget_datebar.js"); var TrainListObj = function () { var __ = this; @@ -19,7 +20,17 @@ param: param })); }; - this.load = function (from, to, date, stu, ui) { + this.load = function (ui, from, to, date, stu) { + ui = ui === undefined ? true : ui; + from = from || $("#from_city").attr("data-code"); + to = to || $("#to_city").attr("data-code"); + date = date || $("#dep_date").val(); + stu = stu || sessMgr.currentProfile.studentTicket; + + var extArg = Array.prototype.slice.call(arguments); + __.fireEvent("onload", extArg); + datebar.go(date, date); + var tip = null; if (ui) { tip = new mp.MessagePopup("loading", "正在查询中..."); @@ -34,14 +45,24 @@ } queryResult = this; __.renderResultList(); + + __.fireEvent("onloadsuccess", extArg); }).fail(function () { tip.setState("error", "查票失败..."); tip.delayClose(); + __.fireEvent("onloadfailed", extArg); }); }; this.init = function () { tsquery.init(); + datebar.init(); + + datebar.on("requireChangeDate", function(e, d) { + //请求切换时间 + $("#dep_date").val(d); + __.load(); + }); }; //监听订票请求 diff --git a/Web12306/js/ui/widget_datebar.js b/Web12306/js/ui/widget_datebar.js new file mode 100644 index 0000000..eabf3b4 --- /dev/null +++ b/Web12306/js/ui/widget_datebar.js @@ -0,0 +1,101 @@ +define(function (require, exports, module) { + var ev = require("../platform/EventObject.js"); + var tpl = $("#datebar-template").doT(); + var container = $("ul.date-bar-list"); + + var toDate = function (date) { + return date instanceof Date ? date : new Date(Date.parse(date)); + }; + var getFirstDayOfWeek = function (date) { + date = toDate(date); + var day = date.getDay(); + + if (day === 1) + return date; + var offset = 1 - day; + return addDays(date, offset); + }; + var addDays = function (date, offset) { + return new Date(date.getFullYear(), date.getMonth(), date.getDate() + offset); + }; + var formatDate = function (date) { + var m = date.getMonth() + 1; + var d = date.getDate(); + + return (m < 10 ? "0" : "") + m + "月" + (d < 10 ? "0" : "") + d + "日"; + }; + var getDateString = function (date) { + return date.getFullYear() + "-" + (date.getMonth() < 9 ? "0" : "") + (date.getMonth() + 1) + "-" + (date.getDate() < 10 ? "0" : "") + date.getDate(); + }; + + var WidgetDateBarUi = function () { + var that = this; + var today = addDays(new Date(), 0); + var date = null; + var maxdays = addDays(today, 30); + var currentHightDate = today; + + ev.apply(this); + + this.init = function () { + $("div.date-bar-prev").click(that.goPrev); + $("div.date-bar-next").click(that.goNext); + $(document).on("click", "ul.date-bar-list li:not(.disabled):not(.selected)", function() { + that.fireEvent("requireChangeDate", this.dataset.date); + }); + + that.go(today); + }; + this.go = function (goDate, selectedDate) { + goDate = toDate(goDate); + if (selectedDate) + currentHightDate = toDate(selectedDate); + + var d = getFirstDayOfWeek(goDate); + if (!date || d.getTime() !== date.getTime()) { + date = d; + that.render(); + } + container.find("li:not(.disabled)").removeClass("selected").filter("[data-date='" + getDateString(currentHightDate) + "']").addClass("selected"); + }; + this.goNext = function () { + that.go(addDays(date, 7)); + }; + this.goPrev = function () { + that.go(addDays(date, -7)); + }; + this.render = function () { + var data = []; + var namestr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; + for (var i = 0; i < 7; i++) { + var d = addDays(date, i); + + data.push({ + _date: d, + name: namestr[d.getDay()], + date: formatDate(d), + disabled: d < today || d > maxdays, + selected: d.getTime() == today.getTime(), + datecode: getDateString(d) + }); + } + + container.empty().html(tpl(data)); + }; + + Object.defineProperty(this, "current", { + get: function () { + return date; + }, + set: function (value) { + that.go(getFirstDayOfWeek(value)); + } + }); + + return this; + }; + WidgetDateBarUi.prototype = Object.create(ev); + WidgetDateBarUi.constructor = ev; + + return new WidgetDateBarUi(); +}); diff --git a/Web12306/js/ui/widget_datedropdown.js b/Web12306/js/ui/widget_datedropdown.js index ee98c9d..9d2a02f 100644 --- a/Web12306/js/ui/widget_datedropdown.js +++ b/Web12306/js/ui/widget_datedropdown.js @@ -9,7 +9,7 @@ return now; }; var getDateString = function (date) { - return date.getFullYear() + "-" + (date.getMonth() < 9 ? "0" : "") + (date.getMonth() + 1) + "-" + (date.getDate() < 9 ? "0" : "") + date.getDate(); + return date.getFullYear() + "-" + (date.getMonth() < 9 ? "0" : "") + (date.getMonth() + 1) + "-" + (date.getDate() < 10 ? "0" : "") + date.getDate(); }; var renderCalendar = function (container, monthStart, minDate, maxDate) {