Brendan Abolivier 9 лет назад
Сommit
dddd3c4d23
100 измененных файлов: 13389 добавлений и 0 удалений
  1. Двоичные данные
      .config.php.swp
  2. 1
    0
      admin
  3. 35
    0
      config.php
  4. 135
    0
      css/defaut.css
  5. 85
    0
      documents.php
  6. 68
    0
      fancybox/CHANGELOG.md
  7. 212
    0
      fancybox/README.md
  8. Двоичные данные
      fancybox/demo/1_b.jpg
  9. Двоичные данные
      fancybox/demo/1_s.jpg
  10. Двоичные данные
      fancybox/demo/2_b.jpg
  11. Двоичные данные
      fancybox/demo/2_s.jpg
  12. Двоичные данные
      fancybox/demo/3_b.jpg
  13. Двоичные данные
      fancybox/demo/3_s.jpg
  14. Двоичные данные
      fancybox/demo/4_b.jpg
  15. Двоичные данные
      fancybox/demo/4_s.jpg
  16. Двоичные данные
      fancybox/demo/5_b.jpg
  17. Двоичные данные
      fancybox/demo/5_s.jpg
  18. 15
    0
      fancybox/demo/ajax.txt
  19. 26
    0
      fancybox/demo/iframe.html
  20. 302
    0
      fancybox/demo/index.html
  21. 4
    0
      fancybox/lib/jquery-1.7.2.min.js
  22. 13
    0
      fancybox/lib/jquery.mousewheel-3.0.6.pack.js
  23. Двоичные данные
      fancybox/source/blank.gif
  24. Двоичные данные
      fancybox/source/fancybox_loading.gif
  25. Двоичные данные
      fancybox/source/fancybox_sprite.png
  26. Двоичные данные
      fancybox/source/helpers/fancybox_buttons.png
  27. 85
    0
      fancybox/source/helpers/jquery.fancybox-buttons.css
  28. 115
    0
      fancybox/source/helpers/jquery.fancybox-buttons.js
  29. 85
    0
      fancybox/source/helpers/jquery.fancybox-media.js
  30. 54
    0
      fancybox/source/helpers/jquery.fancybox-thumbs.css
  31. 157
    0
      fancybox/source/helpers/jquery.fancybox-thumbs.js
  32. 234
    0
      fancybox/source/jquery.fancybox.css
  33. 1463
    0
      fancybox/source/jquery.fancybox.js
  34. 35
    0
      fancybox/source/jquery.fancybox.pack.js
  35. Двоичные данные
      images/ajax-loader.gif
  36. Двоичные данные
      images/isen.gif
  37. Двоичные данные
      images/logo_ISEN.png
  38. Двоичные данные
      images/pdf.png
  39. Двоичные данные
      images/zip.png
  40. 10
    0
      includes/footer.php
  41. 96
    0
      includes/formData.php
  42. 17
    0
      includes/getData.php
  43. 44
    0
      includes/header.php
  44. 82
    0
      includes/listDoc.php
  45. 32
    0
      includes/listPromo.php
  46. 37
    0
      includes/login.php
  47. 10
    0
      includes/logout.php
  48. 56
    0
      includes/setData.php
  49. 68
    0
      index.php
  50. 29
    0
      js/additional-methods.min.js
  51. 27
    0
      js/fancybox.js
  52. 56
    0
      js/formData.js
  53. 42
    0
      js/formLogin.js
  54. 4
    0
      js/jquery-1.7.1.min.js
  55. 51
    0
      js/jquery.validate.min.js
  56. 29
    0
      js/selectPromo.js
  57. 8
    0
      js/spinner.js
  58. 761
    0
      jscalendar/ChangeLog
  59. 33
    0
      jscalendar/README
  60. 108
    0
      jscalendar/bugtest-hidden-selects.html
  61. 232
    0
      jscalendar/calendar-blue.css
  62. 236
    0
      jscalendar/calendar-blue2.css
  63. 225
    0
      jscalendar/calendar-brown.css
  64. 229
    0
      jscalendar/calendar-green.css
  65. 200
    0
      jscalendar/calendar-setup.js
  66. 21
    0
      jscalendar/calendar-setup_stripped.js
  67. 251
    0
      jscalendar/calendar-system.css
  68. 239
    0
      jscalendar/calendar-tas.css
  69. 271
    0
      jscalendar/calendar-win2k-1.css
  70. 271
    0
      jscalendar/calendar-win2k-2.css
  71. 265
    0
      jscalendar/calendar-win2k-cold-1.css
  72. 271
    0
      jscalendar/calendar-win2k-cold-2.css
  73. 1811
    0
      jscalendar/calendar.js
  74. 119
    0
      jscalendar/calendar.php
  75. 14
    0
      jscalendar/calendar_stripped.js
  76. 109
    0
      jscalendar/dayinfo.html
  77. Двоичные данные
      jscalendar/doc/html/field-button.jpg
  78. 193
    0
      jscalendar/doc/html/reference-Z-S.css
  79. 34
    0
      jscalendar/doc/html/reference.css
  80. 1738
    0
      jscalendar/doc/html/reference.html
  81. Двоичные данные
      jscalendar/doc/reference.pdf
  82. Двоичные данные
      jscalendar/img.gif
  83. 330
    0
      jscalendar/index.html
  84. 39
    0
      jscalendar/lang/calendar-af.js
  85. 101
    0
      jscalendar/lang/calendar-al.js
  86. 124
    0
      jscalendar/lang/calendar-bg.js
  87. 123
    0
      jscalendar/lang/calendar-big5-utf8.js
  88. 123
    0
      jscalendar/lang/calendar-big5.js
  89. 108
    0
      jscalendar/lang/calendar-br.js
  90. 123
    0
      jscalendar/lang/calendar-ca.js
  91. 65
    0
      jscalendar/lang/calendar-cs-utf8.js
  92. 65
    0
      jscalendar/lang/calendar-cs-win.js
  93. 123
    0
      jscalendar/lang/calendar-da.js
  94. 124
    0
      jscalendar/lang/calendar-de.js
  95. 45
    0
      jscalendar/lang/calendar-du.js
  96. 89
    0
      jscalendar/lang/calendar-el.js
  97. 127
    0
      jscalendar/lang/calendar-en.js
  98. 129
    0
      jscalendar/lang/calendar-es.js
  99. 98
    0
      jscalendar/lang/calendar-fi.js
  100. 0
    0
      jscalendar/lang/calendar-fr.js

Двоичные данные
.config.php.swp Просмотреть файл


+ 1
- 0
admin

@@ -0,0 +1 @@
1
+Subproject commit c6f4cb88f67be6e7c40aaa3b5744ba58af98a976

+ 35
- 0
config.php Просмотреть файл

@@ -0,0 +1,35 @@
1
+<?php
2
+
3
+  $titre = "Documents de rentrée";
4
+  $annee = "2015";
5
+  $cle = "isen2015";
6
+  
7
+  // informations concernant la base de données
8
+  $DbHost = "127.0.0.1";
9
+  $DbName = "rentree";
10
+  $DbUser = "root";
11
+  $DbPassword = "13374dd1c73"; 
12
+  
13
+  $libellePromo = array (
14
+    "1&#x02B3;&#x1D49; année, Cycle Sciences de l'Ingénieur" => "CSI_A1",
15
+    "1&#x02B3;&#x1D49; année, Cycle Informatique et Réseaux (Brest)" => "CIR_BREST_A1",
16
+    "1&#x02B3;&#x1D49; année, Cycle Informatique et Réseaux (Rennes)" => "CIR_RENNES_A1",        
17
+    "1&#x02B3;&#x1D49; année, BTS Prépa" => "BTSPREPA_A1",    
18
+    "2&#x1D49; année, Cycle Sciences de l'Ingénieur" => "CSI_A2",
19
+    "2&#x1D49; année, Cycle Informatique et Réseaux (Brest)" => "CIR_BREST_A2",
20
+    "2&#x1D49; année, Cycle Informatique et Réseaux (Rennes)" => "CIR_RENNES_A2",        
21
+    "2&#x1D49; année, BTS Prépa" => "BTSPREPA_A2",     
22
+    "3&#x1D49; année, Cycle Sciences de l'Ingénieur" => "CSI_A3",
23
+    "3&#x1D49; année, Cycle Informatique et Réseaux (alternant)" => "CIR_A3_ALT",
24
+    "3&#x1D49; année, Cycle Informatique et Réseaux (non alternant)" => "CIR_A3_NONALT",    
25
+    "3&#x1D49; année, Cycle Ingénieur Par l'Apprentissage" => "CIPA_A3",
26
+    "4&#x1D49; année, Majeure - M1" => "M_A4",
27
+    "4&#x1D49; année, Cycle Ingénieur Par l'Apprentissage" => "CIPA_A4",
28
+    "5&#x1D49; année, Majeure - M2 (alternant)" => "M_A5_ALT",
29
+    "5&#x1D49; année, Majeure - M2 (non alternant)" => "M_A5_NONALT",    
30
+    "5&#x1D49; année, Cycle Ingénieur Par l'Apprentissage" => "CIPA_A5"
31
+  );
32
+
33
+  require_once("lib.php");
34
+  
35
+?>

+ 135
- 0
css/defaut.css Просмотреть файл

@@ -0,0 +1,135 @@
1
+body {
2
+  background-color:#c5efff;
3
+}
4
+
5
+.caseBody {
6
+	background-color: #c5efff;
7
+}
8
+
9
+.cellOne {
10
+	background-color: #FFFFCC;
11
+}
12
+
13
+.cellDoc {
14
+	/*background-color: #FFFFCC;*/
15
+	background-color: #c5efff;
16
+}
17
+
18
+.cellTwo {
19
+	background-color: #CCFFCC;
20
+}
21
+
22
+.cellPromo {
23
+	/*background-color: #CCFFCC;*/
24
+	background-color: #c5efff;	
25
+}
26
+
27
+.button {
28
+	color: white;
29
+	background-color: #666699;
30
+	border-bottom: thin solid #222244;
31
+	border-right:  thin solid #222244;
32
+	border-top: thin solid #9999cc;
33
+	border-left: thin solid #9999cc;
34
+	font-size: 11px;
35
+	font-family: Geneva,Helvetica,sans-serif;
36
+	font-weight: normal;
37
+	cursor: pointer;
38
+}
39
+
40
+label.error {
41
+	font-size: 10px;
42
+  font-family: Verdana,Helvetica,sans-serif;
43
+  font-weight: bold;
44
+  color: #b80000;
45
+}
46
+
47
+.spinner {
48
+	position: fixed;
49
+	top: 50%;
50
+	left: 50%;
51
+	margin-left: -150px; /* half width of the spinner gif */
52
+	margin-top: -150px; /* half height of the spinner gif */
53
+	text-align:center;
54
+	z-index:1234;
55
+	overflow: auto;
56
+	width: 300px; /* width of the spinner gif */
57
+	height: 300px; /*hight of the spinner gif +2px to fix IE8 issue */
58
+}
59
+
60
+.titre {
61
+	font-size: 24px;
62
+  font-family: Geneva, Arial, Helvetica, san-serif;
63
+  font-weight: bold;
64
+  color: #000090;
65
+}
66
+
67
+.titreBis {
68
+	font-size: 24px;
69
+  font-family: Geneva, Arial, Helvetica, san-serif;
70
+  font-weight: bold;
71
+  color: #B72321;
72
+}
73
+
74
+.texte {
75
+	font-size: 14px;
76
+  font-family: Geneva, Arial, Helvetica, san-serif;
77
+  color: #000090;
78
+}
79
+
80
+.notice {
81
+	font-size: 10px;
82
+  font-family: Geneva, Arial, Helvetica, san-serif;
83
+  text-align:justify;
84
+  color: #000090;
85
+}
86
+
87
+.monLabel {
88
+	font-size: 14px;
89
+  font-family: Geneva, Arial, Helvetica, san-serif;
90
+  font-weight: bold;  
91
+  color: #000090;
92
+}
93
+
94
+.monMessage {
95
+	font-size: 14px;
96
+  font-family: Geneva, Arial, Helvetica, san-serif;
97
+  font-weight: bold;  
98
+  color: #B72321;
99
+}
100
+
101
+.titreTabDoc {
102
+	font-size: 16px;
103
+  font-family: Geneva, Arial, Helvetica, san-serif;
104
+  font-weight: bold;  
105
+  color: #000090;
106
+}
107
+
108
+.labelTabDoc {
109
+	font-size: 16px;
110
+  font-family: Geneva, Arial, Helvetica, san-serif;
111
+  font-weight: normal;
112
+  color: #000000;
113
+}
114
+
115
+.messageTabDoc {
116
+	font-size: 14px;
117
+  font-family: Geneva, Arial, Helvetica, san-serif;
118
+  font-weight: bold;  
119
+  color: #B72321;
120
+  vertical-align: middle;
121
+}
122
+
123
+.intro {
124
+  display: block;
125
+  margin-left: auto;
126
+  margin-right: auto;
127
+}
128
+
129
+#selectPromo {
130
+	font-size: 14px;
131
+  font-family: Geneva, Arial, Helvetica, san-serif;
132
+  font-weight: normal;  
133
+  color: #000000;
134
+  vertical-align: middle;
135
+}

+ 85
- 0
documents.php Просмотреть файл

@@ -0,0 +1,85 @@
1
+<?php
2
+
3
+  session_name("Rentree");
4
+  @session_start();
5
+  require_once("config.php");
6
+
7
+  if( !isset($_SESSION['auth']) || ($_SESSION['auth'] != "TRUE" ) ) {
8
+    // redirection
9
+    header("location: index.php");
10
+  }
11
+  
12
+  if ($_SESSION['existe'] == "TRUE") {
13
+    include_once("includes/getData.php");
14
+  }
15
+  
16
+  include_once("includes/header.php");
17
+?>
18
+
19
+<script type="text/javascript">
20
+$(document).ready(function(){
21
+<?php
22
+  include_once("js/spinner.js"); 
23
+  include_once("js/formData.js");
24
+  include_once("js/selectPromo.js");
25
+  include_once("js/fancybox.js");     
26
+?>
27
+});
28
+</script>
29
+
30
+<table width="100%" border="0" cellspacing="0" align="center">
31
+  <tr>
32
+    <td>
33
+      <table width="100%" border="0" cellspacing="0" align="center">
34
+        <tr>
35
+          <td colspan="3" height="30">&nbsp;</td>
36
+        </tr>
37
+        <tr>
38
+          <td width="30%" align="left" valign="middle"><div align="left"><img src="images/logo_ISEN.png" width="270"></div></td>
39
+          <td width="50%" valign="middle">
40
+            <div class="titre" align="center">
41
+              <?php echo $titre; ?>
42
+            </div>            
43
+          </td>
44
+          <td width="30%" align="right" valign="middle"><div class="titreBis" align="right">Brest - Rennes</div></td>
45
+        </tr>
46
+      </table>
47
+      <table width="100%"  border="0" cellspacing="0">
48
+        <tr>
49
+          <td colspan="2" height="30">&nbsp;<hr></td>
50
+        </tr>       
51
+        <tr>
52
+          <td valign="top" width="40%">
53
+            <?php include_once("includes/formData.php"); ?>
54
+          </td>
55
+          <td valign="top"> 
56
+            <div id="intro" style="display:none;">
57
+              <table width="100%" border="0" cellspacing="0" align="center">
58
+                <tr><td style="height:70px">&nbsp;</td></tr>
59
+                <tr><td style="height:100%"><img class="intro" src="images/isen.gif"></td></tr>
60
+                <tr><td style="height:70px;vertical-align:bottom">&nbsp;</td></tr>
61
+              </table>
62
+            </div>
63
+            <div id="docs" style="display:none;">
64
+              <?php include_once("includes/listPromo.php"); ?>
65
+              <div id="container" style="display:none;"></div>              
66
+            </div>
67
+            <?php
68
+            if ($_SESSION['existe'] == "TRUE") {
69
+              echo "<script type=\"text/javascript\">$(\"#docs\").show();</script>";        
70
+            }
71
+            else {
72
+              echo "<script type=\"text/javascript\">$(\"#intro\").show();</script>";      
73
+            }
74
+            ?> 
75
+          </td>
76
+        </tr>
77
+      </table>
78
+    </td>
79
+  </tr>
80
+</table>
81
+</body>
82
+</html>
83
+
84
+
85
+

+ 68
- 0
fancybox/CHANGELOG.md Просмотреть файл

@@ -0,0 +1,68 @@
1
+fancyBox - Changelog
2
+=========
3
+
4
+### Version 2.0.6 - April 16, 2012
5
+
6
+* Fixed #188 - keystrokes in contenteditable
7
+* Fixed #171 - non-images should not be preloaded
8
+* Fixed #158 - 'closeClick: true' breaks gallery navigation
9
+* New "media" helper - detects and displays various media types
10
+* New option "groupAttr" - name of group selector attribute, default is "data-fancybox-group"
11
+* New feature - selector expressions in URLs, see #170
12
+* Improved 'overlay' helper to use "position: fixed"
13
+* Improved autoSize, fixed wrong height in some cases
14
+* Improved centering and iframe scrolling for iOS
15
+* Updated markup, new element '.fancybox-skin' is now used for styling
16
+
17
+### Version 2.0.5 - February 21, 2012
18
+
19
+* Fixed #155 - easing for prev/next animations
20
+* Fixed #153 - overriding "keys" options
21
+* Fixed #147 - IE7 problem with #hash links
22
+* Fixed #130 - changing dynamically data-fancybox-group
23
+* Fixed #126 - obey minWidth/minHeight
24
+* Fixed #118 - placement of loading icon and navigation arrows
25
+* Fixed #101 - "index" option not working
26
+* Fixed #94 - "orig" option not working
27
+* Fixed #80 - does not work on IE6
28
+* Fixed #72 - can't set overlay opacity to 0
29
+* Fixed #63 - properly set gallery index
30
+* New option "autoCenter" - toggles centering on window resize or scroll, disabled for mobile devices by default
31
+* New option "autoResize" - toggles responsivity, disabled for mobile devices by default
32
+* New option "preload" - number of images to preload
33
+* New feature to target mobile/desktop browsers using CSS, see #108
34
+* Changed ajax option defaults to "{ dataType: 'html', headers: { 'X-fancyBox': true } }", see #150 and #128
35
+* Updated loading icon for IE7, IE8
36
+* Calculates height of the iframe if 'autoSize' is set to 'true' and the iframe is on the same domain as the main page
37
+
38
+### Version 2.0.4 - December 12, 2011
39
+
40
+* Fixed #47 - fix overriding properties
41
+* New option "position" to thumbnail and button helpers
42
+
43
+
44
+### Version 2.0.3 - November 29, 2011
45
+
46
+* Fixed #29 - broken elastic transitions
47
+
48
+
49
+### Version 2.0.2 - November 28, 2011
50
+
51
+* Fixed slidshow
52
+* Fixed scrollbar issue when displayed a very tall image
53
+* New option "nextClick" - navigate to next gallery item when user clicks the content
54
+* New option "modal" - to disable navigation and closing
55
+* Add 'metadata' plugin support
56
+* Add ability to create groups using 'data-fancybox-group' attribute
57
+* Updated manual usage to match earlier releases
58
+
59
+
60
+### Version 2.0.1 - November 23, 2011
61
+
62
+* Fixed keyboard events inside form elements
63
+* Fixed manual usage
64
+
65
+
66
+### Version 2.0.0 - November 21, 2011
67
+
68
+First release - completely rewritten, many new features and updated graphics.

+ 212
- 0
fancybox/README.md Просмотреть файл

@@ -0,0 +1,212 @@
1
+fancyBox
2
+========
3
+
4
+fancyBox is a tool that offers a nice and elegant way to add zooming functionality for images, html content and multi-media on your webpages.
5
+
6
+More information and examples: http://www.fancyapps.com/fancybox/
7
+
8
+License: http://www.fancyapps.com/fancybox/#license
9
+
10
+Copyright (c) 2012 Janis Skarnelis - janis@fancyapps.com
11
+
12
+
13
+How to use
14
+----------
15
+
16
+To get started, download the plugin, unzip it and copy files to your website/application directory.
17
+Load files in the <head> section of your HTML document. Make sure you also add the jQuery library.
18
+
19
+    <head>
20
+        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
21
+        <link rel="stylesheet" href="/fancybox/jquery.fancybox.css" type="text/css" media="screen" />
22
+        <script type="text/javascript" src="/fancybox/jquery.fancybox.pack.js"></script>
23
+    </head>
24
+
25
+Create your links with a `title` if you want a title to be shown, and add a class:
26
+
27
+    <a href="large_image.jpg" class="fancybox" title="Sample title"><img src="small_image.jpg" /></a>
28
+
29
+If you have a set of related items that you would like to group,
30
+additionally include a group name in the `rel` (or `data-fancybox-group`) attribute:
31
+
32
+    <a href="large_1.jpg" class="fancybox" rel="gallery" title="Sample title 1"><img src="small_1.jpg" /></a>
33
+    <a href="large_2.jpg" class="fancybox" rel="gallery" title="Sample title 1"><img src="small_2.jpg" /></a>
34
+
35
+Initialise the script like this:
36
+
37
+    <script>
38
+        $(document).ready(function() {
39
+            $('.fancybox').fancybox();
40
+        });
41
+    </script>
42
+
43
+May also be passed an optional options object which will extend the default values. Example:
44
+
45
+    <script>
46
+        $(document).ready(function() {
47
+            $('.fancybox').fancybox({
48
+                padding : 0,
49
+                openEffect  : 'elastic'
50
+            });
51
+        });
52
+    </script>
53
+
54
+Tip: Automatically group and apply fancyBox to all images:
55
+
56
+    $("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.png'],a[href$='.gif']").attr('rel', 'gallery').fancybox();
57
+
58
+Script uses the `href` attribute of the matched elements to obtain the location of the content and to figure out content type you want to display.
59
+You can specify type directly by adding classname (fancybox.image, fancybox.iframe, etc) or `data-fancybox-group` attribute:
60
+
61
+    //Ajax:
62
+    <a href="/example.html" class="fancybox fancybox.ajax">Example</a>
63
+    //or
64
+    <a href="/example.html" class="fancybox" data-fancybox-type="ajax">Example</a>
65
+
66
+    //Iframe:
67
+    <a href="example.html" class="fancybox fancybox.iframe">Example</a>
68
+
69
+    //Inline (will display an element with `id="example"`)
70
+    <a href="#example" class="fancybox">Example</a>
71
+
72
+    //SWF:
73
+    <a href="example.swf" class="fancybox">Example</a>
74
+
75
+    //Image:
76
+    <a href="example.jpg" class="fancybox">Example</a>
77
+
78
+Note, ajax requests are subject to the [same origin policy](http://en.wikipedia.org/wiki/Same_origin_policy).
79
+If fancyBox will not be able to get content type, error message will be displayed (this is different from previsous versions where 'ajax' was used as default type).
80
+
81
+Advanced
82
+--------
83
+
84
+### Helpers
85
+
86
+Helpers provide a simple mechanism to extend the capabilities of fancyBox. There are two built-in helpers - 'overlay' and 'title'.
87
+You can disable them, set custom options or enable other helpers. Examples:
88
+
89
+    //Disable title helper
90
+    $(".fancybox").fancybox({
91
+        helpers:  {
92
+            title:  null
93
+        }
94
+    });
95
+
96
+    //Disable overlay helper
97
+    $(".fancybox").fancybox({
98
+        helpers:  {
99
+            overlay : null
100
+        }
101
+    });
102
+
103
+    //Change title position and overlay color
104
+    $(".fancybox").fancybox({
105
+        helpers:  {
106
+            title : {
107
+                type : 'inside'
108
+            },
109
+            overlay : {
110
+                css : {
111
+                    'background-color' : '#fff'
112
+                }
113
+            }
114
+        }
115
+    });
116
+
117
+    //Enable thumbnail helper and set custom options
118
+    $(".fancybox").fancybox({
119
+        helpers:  {
120
+            thumbs : {
121
+                width: 50,
122
+                height: 50
123
+            }
124
+        }
125
+    });
126
+
127
+
128
+### API
129
+
130
+Also available are event driven callback methods.  The `this` keyword refers to the current or upcoming object (depends on callback method). Here is how you can change title:
131
+
132
+    $(".fancybox").fancybox({
133
+        beforeLoad : function() {
134
+            this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
135
+
136
+            /*
137
+                "this.element" refers to current element, so you can, for example, use the "alt" attribute of the image to store the title:
138
+                this.title = $(this.element).find('img').attr('alt');
139
+            */
140
+        }
141
+    });
142
+
143
+It`s possible to open fancyBox programmatically in various ways:
144
+
145
+    //HTML content:
146
+    $.fancybox( '<div><h1>Lorem Lipsum</h1><p>Lorem lipsum</p></div>', {
147
+        title : 'Custom Title'
148
+    });
149
+
150
+    //DOM element:
151
+    $.fancybox( $("#inline"), {
152
+        title : 'Custom Title'
153
+    });
154
+
155
+    //Custom object:
156
+    $.fancybox({
157
+        href: 'example.jpg',
158
+        title : 'Custom Title'
159
+    });
160
+
161
+    //Array of objects:
162
+    $.fancybox([
163
+        {
164
+            href: 'example1.jpg',
165
+            title : 'Custom Title 1'
166
+        },
167
+        {
168
+            href: 'example2.jpg',
169
+            title : 'Custom Title 2'
170
+        }
171
+    ], {
172
+        padding: 0
173
+    });
174
+
175
+There are several methods that allow you to interact with and manipulate fancyBox, example:
176
+
177
+    //Close fancybox:
178
+    $.fancybox.close();
179
+
180
+There is a simply way to access wrapping elements using JS:
181
+
182
+    $.fancybox.wrap
183
+    $.fancybox.skin
184
+    $.fancybox.outer
185
+    $.fancybox.inner
186
+
187
+You can override CSS to customize the look. For example, make navigation arrows always visible
188
+and move them outside of area (use this snippet after including fancybox.css):
189
+
190
+    .fancybox-nav span {
191
+        visibility: visible;
192
+    }
193
+
194
+    .fancybox-prev {
195
+        left: -80px;
196
+    }
197
+
198
+    .fancybox-next {
199
+        right: -80px;
200
+    }
201
+
202
+In that case, you might want to increase space around box:
203
+
204
+    $(".fancybox").fancybox({
205
+        margin : [20, 60, 20, 60]
206
+    });
207
+
208
+
209
+Bug tracker
210
+-----------
211
+
212
+Have a bug? Please create an issue on GitHub at https://github.com/fancyapps/fancyBox/issues

Двоичные данные
fancybox/demo/1_b.jpg Просмотреть файл


Двоичные данные
fancybox/demo/1_s.jpg Просмотреть файл


Двоичные данные
fancybox/demo/2_b.jpg Просмотреть файл


Двоичные данные
fancybox/demo/2_s.jpg Просмотреть файл


Двоичные данные
fancybox/demo/3_b.jpg Просмотреть файл


Двоичные данные
fancybox/demo/3_s.jpg Просмотреть файл


Двоичные данные
fancybox/demo/4_b.jpg Просмотреть файл


Двоичные данные
fancybox/demo/4_s.jpg Просмотреть файл


Двоичные данные
fancybox/demo/5_b.jpg Просмотреть файл


Двоичные данные
fancybox/demo/5_s.jpg Просмотреть файл


+ 15
- 0
fancybox/demo/ajax.txt Просмотреть файл

@@ -0,0 +1,15 @@
1
+<div style="max-width:700px;">
2
+	<h2>Lorem ipsum dolor sit amet3</h2>
3
+	<p>
4
+		<a href="javascript:jQuery.fancybox.close();">Close me</a>
5
+	</p>
6
+	<p>
7
+	Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas fermentum ante et sapien dignissim in viverra magna feugiat. Donec tempus ipsum nec neque dignissim quis eleifend eros gravida. Praesent nisi massa, sodales quis tincidunt ac, semper quis risus. In suscipit nisl sed leo aliquet consequat. Integer vitae augue in risus porttitor pellentesque eu eget odio. Fusce ut sagittis quam. Morbi aliquam interdum blandit. Integer pharetra tempor velit, aliquam dictum justo tempus sed. Morbi congue fringilla justo a feugiat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent quis metus et nisl consectetur pharetra. Nam bibendum turpis eu metus luctus eu volutpat sem molestie. Nam sollicitudin porttitor lorem, ac ultricies est venenatis eu. Ut dignissim elit et orci feugiat ac placerat purus euismod. Ut mi lorem, cursus et sagittis elementum, luctus ac massa.
8
+	</p>
9
+	<p>
10
+	Phasellus et ligula vel diam ullamcorper volutpat. Integer rhoncus rhoncus aliquam. Aliquam erat volutpat. Aenean luctus vestibulum placerat. Quisque quam neque, lacinia aliquet eleifend ac, aliquet blandit felis. Curabitur porta ultricies dui, sit amet mattis quam euismod a. Ut eleifend scelerisque neque, sit amet accumsan odio consequat ut. Proin facilisis auctor elit sed accumsan. Cras dapibus nisl in nisi rhoncus laoreet. Nullam pellentesque tortor libero, eget facilisis ipsum. Donec ultricies tellus tellus, in tincidunt purus. Nullam in est aliquam velit scelerisque blandit. In tincidunt, magna a dapibus imperdiet, quam urna elementum leo, vitae rhoncus nisl velit cursus velit. In dignissim sem ac mauris rhoncus ornare.
11
+	</p>
12
+	<p>
13
+	Duis imperdiet velit vel quam malesuada suscipit imperdiet tellus hendrerit. Mauris vestibulum odio mauris, ut placerat leo. Mauris quis neque at tellus feugiat congue id non enim. Nam vehicula posuere nulla eget vehicula. Donec pretium purus nec ligula porta eu laoreet sapien venenatis. Nulla facilisi. Phasellus eget mi enim. Phasellus molestie tincidunt ultrices. Aenean id sem a tellus lobortis tincidunt. Nam laoreet nulla vel velit tincidunt ac rutrum libero malesuada. Nulla consequat dolor quis nisl tempor fermentum. Integer sodales pretium varius. Aenean a leo vitae odio dictum dignissim malesuada nec dolor. Phasellus adipiscing viverra est, ac sagittis libero sagittis quis. Sed interdum dapibus nunc et fringilla. Nunc vel velit et urna laoreet bibendum. 
14
+	</p>
15
+</div>

+ 26
- 0
fancybox/demo/iframe.html Просмотреть файл

@@ -0,0 +1,26 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+	<title>fancyBox - iframe demo</title>
5
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
+</head>
7
+<body>
8
+	<h1>fancyBox - iframe demo</h1>
9
+
10
+	<p>
11
+		<a href="javascript:parent.jQuery.fancybox.close();">Close iframe parent</a>
12
+
13
+		|
14
+
15
+		<a href="javascript:parent.jQuery.fancybox.open({href : '1_b.jpg', title : 'My title'});">Change content</a>
16
+	</p>
17
+
18
+	<p>
19
+		Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam scelerisque justo ac eros consectetur bibendum. In hac habitasse platea dictumst. Nulla aliquam turpis et tellus elementum luctus. Duis sit amet rhoncus velit. Duis nisl ligula, mattis interdum blandit laoreet, mattis id ante. Cras pulvinar lacus vitae nisi egestas non euismod neque bibendum. Vestibulum faucibus libero id ante molestie ultricies. Vestibulum quis nibh felis. Vestibulum libero nisl, vehicula vel ullamcorper sit amet, tristique sit amet augue. Etiam urna neque, porttitor sed sodales lacinia, posuere a nisl. Vestibulum blandit neque in sapien volutpat ac condimentum sapien auctor. Ut imperdiet venenatis ultricies. Phasellus accumsan, sem eu placerat commodo, felis purus commodo ipsum, sit amet vulputate orci est viverra est.
20
+	</p>
21
+
22
+	<p>
23
+		Aenean velit est, condimentum ut iaculis ut, accumsan at mi. Maecenas velit mi, venenatis ut condimentum at, ultrices vel tortor. Curabitur pharetra ornare dapibus. Ut volutpat cursus semper. In hac habitasse platea dictumst. Donec eu iaculis ipsum. Morbi eu dolor velit, a semper nunc.
24
+	</p>
25
+</body>
26
+</html>

+ 302
- 0
fancybox/demo/index.html Просмотреть файл

@@ -0,0 +1,302 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+	<title>fancyBox - Fancy jQuery Lightbox Alternative | Demonstration</title>
5
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
+
7
+	<!-- Add jQuery library -->
8
+	<script type="text/javascript" src="../lib/jquery-1.7.2.min.js"></script>
9
+
10
+	<!-- Add mousewheel plugin (this is optional) -->
11
+	<script type="text/javascript" src="../lib/jquery.mousewheel-3.0.6.pack.js"></script>
12
+
13
+	<!-- Add fancyBox main JS and CSS files -->
14
+	<script type="text/javascript" src="../source/jquery.fancybox.js?v=2.0.6"></script>
15
+	<link rel="stylesheet" type="text/css" href="../source/jquery.fancybox.css?v=2.0.6" media="screen" />
16
+
17
+	<!-- Add Button helper (this is optional) -->
18
+	<link rel="stylesheet" type="text/css" href="../source/helpers/jquery.fancybox-buttons.css?v=1.0.2" />
19
+	<script type="text/javascript" src="../source/helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
20
+
21
+	<!-- Add Thumbnail helper (this is optional) -->
22
+	<link rel="stylesheet" type="text/css" href="../source/helpers/jquery.fancybox-thumbs.css?v=1.0.2" />
23
+	<script type="text/javascript" src="../source/helpers/jquery.fancybox-thumbs.js?v=1.0.2"></script>
24
+
25
+	<!-- Add Media helper (this is optional) -->
26
+	<script type="text/javascript" src="../source/helpers/jquery.fancybox-media.js?v=1.0.0"></script>
27
+
28
+	<script type="text/javascript">
29
+		$(document).ready(function() {
30
+			/*
31
+			 *  Simple image gallery. Uses default settings
32
+			 */
33
+
34
+			$('.fancybox').fancybox();
35
+
36
+			/*
37
+			 *  Different effects
38
+			 */
39
+
40
+			// Change title type, overlay opening speed and opacity
41
+			$(".fancybox-effects-a").fancybox({
42
+				helpers: {
43
+					title : {
44
+						type : 'outside'
45
+					},
46
+					overlay : {
47
+						speedIn : 500,
48
+						opacity : 0.95
49
+					}
50
+				}
51
+			});
52
+
53
+			// Disable opening and closing animations, change title type
54
+			$(".fancybox-effects-b").fancybox({
55
+				openEffect  : 'none',
56
+				closeEffect	: 'none',
57
+
58
+				helpers : {
59
+					title : {
60
+						type : 'over'
61
+					}
62
+				}
63
+			});
64
+
65
+			// Set custom style, close if clicked, change title type and overlay color
66
+			$(".fancybox-effects-c").fancybox({
67
+				wrapCSS    : 'fancybox-custom',
68
+				closeClick : true,
69
+
70
+				helpers : {
71
+					title : {
72
+						type : 'inside'
73
+					},
74
+					overlay : {
75
+						css : {
76
+							'background-color' : '#eee'
77
+						}
78
+					}
79
+				}
80
+			});
81
+
82
+			// Remove padding, set opening and closing animations, close if clicked and disable overlay
83
+			$(".fancybox-effects-d").fancybox({
84
+				padding: 0,
85
+
86
+				openEffect : 'elastic',
87
+				openSpeed  : 150,
88
+
89
+				closeEffect : 'elastic',
90
+				closeSpeed  : 150,
91
+
92
+				closeClick : true,
93
+
94
+				helpers : {
95
+					overlay : null
96
+				}
97
+			});
98
+
99
+			/*
100
+			 *  Button helper. Disable animations, hide close button, change title type and content
101
+			 */
102
+
103
+			$('.fancybox-buttons').fancybox({
104
+				openEffect  : 'none',
105
+				closeEffect : 'none',
106
+
107
+				prevEffect : 'none',
108
+				nextEffect : 'none',
109
+
110
+				closeBtn  : false,
111
+
112
+				helpers : {
113
+					title : {
114
+						type : 'inside'
115
+					},
116
+					buttons	: {}
117
+				},
118
+
119
+				afterLoad : function() {
120
+					this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
121
+				}
122
+			});
123
+
124
+
125
+			/*
126
+			 *  Thumbnail helper. Disable animations, hide close button, arrows and slide to next gallery item if clicked
127
+			 */
128
+
129
+			$('.fancybox-thumbs').fancybox({
130
+				prevEffect : 'none',
131
+				nextEffect : 'none',
132
+
133
+				closeBtn  : false,
134
+				arrows    : false,
135
+				nextClick : true,
136
+
137
+				helpers : {
138
+					thumbs : {
139
+						width  : 50,
140
+						height : 50
141
+					}
142
+				}
143
+			});
144
+
145
+			/*
146
+			 *  Media helper. Group items, disable animations, hide arrows, enable media and button helpers.
147
+			*/
148
+			$('.fancybox-media')
149
+				.attr('rel', 'media-gallery')
150
+				.fancybox({
151
+					openEffect : 'none',
152
+					closeEffect : 'none',
153
+					prevEffect : 'none',
154
+					nextEffect : 'none',
155
+
156
+					arrows : false,
157
+					helpers : {
158
+						media : {},
159
+						buttons : {}
160
+					}
161
+				});
162
+
163
+			/*
164
+			 *  Open manually
165
+			 */
166
+
167
+			$("#fancybox-manual-a").click(function() {
168
+				$.fancybox.open('1_b.jpg');
169
+			});
170
+
171
+			$("#fancybox-manual-b").click(function() {
172
+				$.fancybox.open({
173
+					href : 'iframe.html',
174
+					type : 'iframe',
175
+					padding : 5
176
+				});
177
+			});
178
+
179
+			$("#fancybox-manual-c").click(function() {
180
+				$.fancybox.open([
181
+					{
182
+						href : '1_b.jpg',
183
+						title : 'My title'
184
+					}, {
185
+						href : '2_b.jpg',
186
+						title : '2nd title'
187
+					}, {
188
+						href : '3_b.jpg'
189
+					}
190
+				], {
191
+					helpers : {
192
+						thumbs : {
193
+							width: 75,
194
+							height: 50
195
+						}
196
+					}
197
+				});
198
+			});
199
+
200
+
201
+		});
202
+	</script>
203
+	<style type="text/css">
204
+		.fancybox-custom .fancybox-skin {
205
+			box-shadow: 0 0 50px #222;
206
+		}
207
+	</style>
208
+</head>
209
+<body>
210
+	<h1>fancyBox</h1>
211
+
212
+	<p>This is a demonstration. More information and examples: <a href="http://fancyapps.com/fancybox/">www.fancyapps.com/fancybox/</a></p>
213
+
214
+	<h3>Simple image gallery</h3>
215
+	<p>
216
+		<a class="fancybox" href="1_b.jpg" data-fancybox-group="gallery" title="Lorem ipsum dolor sit amet"><img src="1_s.jpg" alt="" /></a>
217
+
218
+		<a class="fancybox" href="2_b.jpg" data-fancybox-group="gallery" title="Etiam quis mi eu elit temp"><img src="2_s.jpg" alt="" /></a>
219
+
220
+		<a class="fancybox" href="3_b.jpg" data-fancybox-group="gallery" title="Cras neque mi, semper leon"><img src="3_s.jpg" alt="" /></a>
221
+
222
+		<a class="fancybox" href="4_b.jpg" data-fancybox-group="gallery" title="Sed vel sapien vel sem uno"><img src="4_s.jpg" alt="" /></a>
223
+	</p>
224
+
225
+	<h3>Different effects</h3>
226
+	<p>
227
+		<a class="fancybox-effects-a" href="5_b.jpg" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit"><img src="5_s.jpg" alt="" /></a>
228
+
229
+		<a class="fancybox-effects-b" href="5_b.jpg" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit"><img src="5_s.jpg" alt="" /></a>
230
+
231
+		<a class="fancybox-effects-c" href="5_b.jpg" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit"><img src="5_s.jpg" alt="" /></a>
232
+
233
+		<a class="fancybox-effects-d" href="5_b.jpg" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit"><img src="5_s.jpg" alt="" /></a>
234
+	</p>
235
+
236
+	<h3>Various types</h3>
237
+	<p>
238
+		fancyBox will try to guess content type from href attribute but you can specify it directly by adding classname (fancybox.image, fancybox.iframe, etc).
239
+	</p>
240
+	<ul>
241
+		<li><a class="fancybox" href="#inline1" title="Lorem ipsum dolor sit amet">Inline</a></li>
242
+		<li><a class="fancybox fancybox.ajax" href="ajax.txt">Ajax</a></li>
243
+		<li><a class="fancybox fancybox.iframe" href="iframe.html">Iframe</a></li>
244
+		<li><a class="fancybox" href="http://www.adobe.com/jp/events/cs3_web_edition_tour/swfs/perform.swf">Swf</a></li>
245
+	</ul>
246
+
247
+	<div id="inline1" style="width:400px;display: none;">
248
+		<h3>Etiam quis mi eu elit</h3>
249
+		<p>
250
+			Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis mi eu elit tempor facilisis id et neque. Nulla sit amet sem sapien. Vestibulum imperdiet porta ante ac ornare. Nulla et lorem eu nibh adipiscing ultricies nec at lacus. Cras laoreet ultricies sem, at blandit mi eleifend aliquam. Nunc enim ipsum, vehicula non pretium varius, cursus ac tortor. Vivamus fringilla congue laoreet. Quisque ultrices sodales orci, quis rhoncus justo auctor in. Phasellus dui eros, bibendum eu feugiat ornare, faucibus eu mi. Nunc aliquet tempus sem, id aliquam diam varius ac. Maecenas nisl nunc, molestie vitae eleifend vel, iaculis sed magna. Aenean tempus lacus vitae orci posuere porttitor eget non felis. Donec lectus elit, aliquam nec eleifend sit amet, vestibulum sed nunc.
251
+		</p>
252
+	</div>
253
+
254
+	<p>
255
+		Ajax example will not run from your local computer and requires a server to run.
256
+	</p>
257
+
258
+	<h3>Button helper</h3>
259
+	<p>
260
+		<a class="fancybox-buttons" data-fancybox-group="button" href="1_b.jpg"><img src="1_s.jpg" alt="" /></a>
261
+
262
+		<a class="fancybox-buttons" data-fancybox-group="button" href="2_b.jpg"><img src="2_s.jpg" alt="" /></a>
263
+
264
+		<a class="fancybox-buttons" data-fancybox-group="button" href="3_b.jpg"><img src="3_s.jpg" alt="" /></a>
265
+
266
+		<a class="fancybox-buttons" data-fancybox-group="button" href="4_b.jpg"><img src="4_s.jpg" alt="" /></a>
267
+	</p>
268
+
269
+	<h3>Thumbnail helper</h3>
270
+	<p>
271
+		<a class="fancybox-thumbs" data-fancybox-group="thumb" href="4_b.jpg"><img src="4_s.jpg" alt="" /></a>
272
+
273
+		<a class="fancybox-thumbs" data-fancybox-group="thumb" href="3_b.jpg"><img src="3_s.jpg" alt="" /></a>
274
+
275
+		<a class="fancybox-thumbs" data-fancybox-group="thumb" href="2_b.jpg"><img src="2_s.jpg" alt="" /></a>
276
+
277
+		<a class="fancybox-thumbs" data-fancybox-group="thumb" href="1_b.jpg"><img src="1_s.jpg" alt="" /></a>
278
+	</p>
279
+
280
+	<h3>Media helper</h3>
281
+	<ul>
282
+		<li><a class="fancybox-media" href="http://www.youtube.com/watch?v=opj24KnzrWo">Youtube</a></li>
283
+		<li><a class="fancybox-media" href="http://vimeo.com/25634903">Vimeo</a></li>
284
+		<li><a class="fancybox-media" href="http://www.metacafe.com/watch/7635964/">Metacafe</a></li>
285
+		<li><a class="fancybox-media" href="http://www.dailymotion.com/video/xoeylt_electric-guest-this-head-i-hold_music">Dailymotion</a></li>
286
+		<li><a class="fancybox-media" href="http://twitvid.com/QY7MD">Twitvid</a></li>
287
+		<li><a class="fancybox-media" href="http://twitpic.com/7p93st">Twitpic</a></li>
288
+		<li><a class="fancybox-media" href="http://instagr.am/p/IejkuUGxQn">Instagram</a></li>
289
+	</ul>
290
+
291
+	<h3>Open manually</h3>
292
+	<ul>
293
+		<li><a id="fancybox-manual-a" href="javascript:;">Open single item</a></li>
294
+		<li><a id="fancybox-manual-b" href="javascript:;">Open single item, custom options</a></li>
295
+		<li><a id="fancybox-manual-c" href="javascript:;">Open gallery</a></li>
296
+	</ul>
297
+
298
+	<p>
299
+		Photo Credit: Instagrammer @whitjohns
300
+	</p>
301
+</body>
302
+</html>

+ 4
- 0
fancybox/lib/jquery-1.7.2.min.js
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 13
- 0
fancybox/lib/jquery.mousewheel-3.0.6.pack.js Просмотреть файл

@@ -0,0 +1,13 @@
1
+/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
2
+ * Licensed under the MIT License (LICENSE.txt).
3
+ *
4
+ * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
5
+ * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
6
+ * Thanks to: Seamus Leahy for adding deltaX and deltaY
7
+ *
8
+ * Version: 3.0.6
9
+ * 
10
+ * Requires: 1.2.2+
11
+ */
12
+(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]=
13
+d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);

Двоичные данные
fancybox/source/blank.gif Просмотреть файл


Двоичные данные
fancybox/source/fancybox_loading.gif Просмотреть файл


Двоичные данные
fancybox/source/fancybox_sprite.png Просмотреть файл


Двоичные данные
fancybox/source/helpers/fancybox_buttons.png Просмотреть файл


+ 85
- 0
fancybox/source/helpers/jquery.fancybox-buttons.css Просмотреть файл

@@ -0,0 +1,85 @@
1
+#fancybox-buttons {
2
+	position: fixed;
3
+	left: 0;
4
+	width: 100%;
5
+	z-index: 8050;
6
+}
7
+
8
+#fancybox-buttons.top {
9
+	top: 10px;
10
+}
11
+
12
+#fancybox-buttons.bottom {
13
+	bottom: 10px;
14
+}
15
+
16
+#fancybox-buttons ul {
17
+	display: block;
18
+	width: 170px;
19
+	height: 30px;
20
+	margin: 0 auto;
21
+	padding: 0;
22
+	list-style: none;
23
+	background: #111;
24
+	-webkit-box-shadow: 0 1px 3px #000,0 0 0 1px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.05);
25
+	-moz-box-shadow: 0 1px 3px #000,0 0 0 1px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.05);
26
+	background: #111 -webkit-gradient(linear,0% 0%,0% 100%,from(rgba(255,255,255,.2)),color-stop(.5,rgba(255,255,255,.15)),color-stop(.5,rgba(255,255,255,.1)),to(rgba(255,255,255,.15)));
27
+	background: #111 -moz-linear-gradient(top,rgba(255,255,255,.2) 0%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.15) 100%);
28
+	border-radius: 3px;
29
+}
30
+
31
+#fancybox-buttons ul li {
32
+	float: left;
33
+	margin: 0;
34
+	padding: 0;
35
+}
36
+
37
+#fancybox-buttons a {
38
+	display: block;
39
+	width: 30px;
40
+	height: 30px;
41
+	text-indent: -9999px;
42
+	background-image: url('fancybox_buttons.png');
43
+	background-repeat: no-repeat;
44
+	outline: none;
45
+}
46
+
47
+#fancybox-buttons a.btnPrev {
48
+	width: 32px;
49
+	background-position: 6px 0;
50
+}
51
+
52
+#fancybox-buttons a.btnNext {
53
+	background-position: -33px 0;
54
+	border-right: 1px solid #3e3e3e;
55
+}
56
+
57
+#fancybox-buttons a.btnPlay {
58
+	background-position: 0 -30px;
59
+}
60
+
61
+#fancybox-buttons a.btnPlayOn {
62
+	background-position: -30px -30px;
63
+}
64
+
65
+#fancybox-buttons a.btnToggle {
66
+	background-position: 3px -60px;
67
+	border-left: 1px solid #111;
68
+	border-right: 1px solid #3e3e3e;
69
+	width: 35px
70
+}
71
+
72
+#fancybox-buttons a.btnToggleOn {
73
+	background-position: -27px -60px;
74
+}
75
+
76
+#fancybox-buttons a.btnClose {
77
+	border-left: 1px solid #111;
78
+	width: 38px;
79
+	background-position: -57px 0px;
80
+}
81
+
82
+#fancybox-buttons a.btnDisabled {
83
+	opacity : 0.5;
84
+	cursor: default;
85
+}

+ 115
- 0
fancybox/source/helpers/jquery.fancybox-buttons.js Просмотреть файл

@@ -0,0 +1,115 @@
1
+ /*!
2
+ * Buttons helper for fancyBox
3
+ * version: 1.0.2
4
+ * @requires fancyBox v2.0 or later
5
+ *
6
+ * Usage: 
7
+ *     $(".fancybox").fancybox({
8
+ *         buttons: {
9
+ *             position : 'top'
10
+ *         }
11
+ *     });
12
+ * 
13
+ * Options:
14
+ *     tpl - HTML template
15
+ *     position - 'top' or 'bottom'
16
+ * 
17
+ */
18
+(function ($) {
19
+	//Shortcut for fancyBox object
20
+	var F = $.fancybox;
21
+
22
+	//Add helper object
23
+	F.helpers.buttons = {
24
+		tpl: '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:jQuery.fancybox.close();"></a></li></ul></div>',
25
+		list: null,
26
+		buttons: {},
27
+
28
+		update: function () {
29
+			var toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
30
+
31
+			//Size toggle button
32
+			if (F.current.canShrink) {
33
+				toggle.addClass('btnToggleOn');
34
+
35
+			} else if (!F.current.canExpand) {
36
+				toggle.addClass('btnDisabled');
37
+			}
38
+		},
39
+
40
+		beforeLoad: function (opts) {
41
+			//Remove self if gallery do not have at least two items
42
+			if (F.group.length < 2) {
43
+				F.coming.helpers.buttons = false;
44
+				F.coming.closeBtn = true;
45
+
46
+				return;
47
+			}
48
+
49
+			//Increase top margin to give space for buttons
50
+			F.coming.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
51
+		},
52
+
53
+		onPlayStart: function () {
54
+			if (this.list) {
55
+				this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
56
+			}
57
+		},
58
+
59
+		onPlayEnd: function () {
60
+			if (this.list) {
61
+				this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
62
+			}
63
+		},
64
+
65
+		afterShow: function (opts) {
66
+			var buttons;
67
+
68
+			if (!this.list) {
69
+				this.list = $(opts.tpl || this.tpl).addClass(opts.position || 'top').appendTo('body');
70
+
71
+				this.buttons = {
72
+					prev : this.list.find('.btnPrev').click( F.prev ),
73
+					next : this.list.find('.btnNext').click( F.next ),
74
+					play : this.list.find('.btnPlay').click( F.play ),
75
+					toggle : this.list.find('.btnToggle').click( F.toggle )
76
+				}
77
+			}
78
+
79
+			buttons = this.buttons;
80
+
81
+			//Prev
82
+			if (F.current.index > 0 || F.current.loop) {
83
+				buttons.prev.removeClass('btnDisabled');
84
+			} else {
85
+				buttons.prev.addClass('btnDisabled');
86
+			}
87
+
88
+			//Next / Play
89
+			if (F.current.loop || F.current.index < F.group.length - 1) {
90
+				buttons.next.removeClass('btnDisabled');
91
+				buttons.play.removeClass('btnDisabled');
92
+
93
+			} else {
94
+				buttons.next.addClass('btnDisabled');
95
+				buttons.play.addClass('btnDisabled');
96
+			}
97
+
98
+			this.update();
99
+		},
100
+
101
+		onUpdate: function () {
102
+			this.update();
103
+		},
104
+
105
+		beforeClose: function () {
106
+			if (this.list) {
107
+				this.list.remove();
108
+			}
109
+
110
+			this.list = null;
111
+			this.buttons = {};
112
+		}
113
+	};
114
+
115
+}(jQuery));

+ 85
- 0
fancybox/source/helpers/jquery.fancybox-media.js Просмотреть файл

@@ -0,0 +1,85 @@
1
+ /*!
2
+ * Media helper for fancyBox
3
+ * version: 1.0.0
4
+ * @requires fancyBox v2.0 or later
5
+ *
6
+ * Usage:
7
+ *     $(".fancybox").fancybox({
8
+ *         media: {}
9
+ *     });
10
+ *
11
+ *  Supports:
12
+ *      Youtube
13
+ *          http://www.youtube.com/watch?v=opj24KnzrWo
14
+ *          http://youtu.be/opj24KnzrWo
15
+ *      Vimeo
16
+ *          http://vimeo.com/25634903
17
+ *      Metacafe
18
+ *          http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
19
+ *          http://www.metacafe.com/watch/7635964/
20
+ *      Dailymotion
21
+ *          http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
22
+ *      Twitvid
23
+ *          http://twitvid.com/QY7MD
24
+ *      Twitpic
25
+ *          http://twitpic.com/7p93st
26
+ *      Instagram
27
+ *          http://instagr.am/p/IejkuUGxQn/
28
+ *          http://instagram.com/p/IejkuUGxQn/
29
+ *      Google maps
30
+ *          http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
31
+ *          http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
32
+ *          http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
33
+ */
34
+(function ($) {
35
+	//Shortcut for fancyBox object
36
+	var F = $.fancybox;
37
+
38
+	//Add helper object
39
+	F.helpers.media = {
40
+		beforeLoad : function(opts, obj) {
41
+			var href = obj.href || '',
42
+				type = false,
43
+				rez;
44
+
45
+			if ((rez = href.match(/(youtube\.com|youtu\.be)\/(v\/|u\/|embed\/|watch\?v=)?([^#\&\?]*).*/i))) {
46
+				href = '//www.youtube.com/embed/' + rez[3] + '?autoplay=1&autohide=1&fs=1&rel=0&enablejsapi=1';
47
+				type = 'iframe';
48
+
49
+			} else if ((rez = href.match(/vimeo.com\/(\d+)\/?(.*)/))) {
50
+				href = '//player.vimeo.com/video/' + rez[1] + '?hd=1&autoplay=1&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1';
51
+				type = 'iframe';
52
+
53
+			} else if ((rez = href.match(/metacafe.com\/watch\/(\d+)\/?(.*)/))) {
54
+				href = '//www.metacafe.com/fplayer/' + rez[1] + '/.swf?playerVars=autoPlay=yes';
55
+				type = 'swf';
56
+
57
+			} else if ((rez = href.match(/dailymotion.com\/video\/(.*)\/?(.*)/))) {
58
+				href = '//www.dailymotion.com/swf/video/' + rez[1] + '?additionalInfos=0&autoStart=1';
59
+				type = 'swf';
60
+
61
+			} else if ((rez = href.match(/twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i))) {
62
+				href = '//www.twitvid.com/embed.php?autoplay=0&guid=' + rez[1];
63
+				type = 'iframe';
64
+
65
+			} else if ((rez = href.match(/twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i))) {
66
+				href = '//twitpic.com/show/full/' + rez[1];
67
+				type = 'image';
68
+
69
+			} else if ((rez = href.match(/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i))) {
70
+				href = '//' + rez[1] + '/p/' + rez[2] + '/media/?size=l';
71
+				type = 'image';
72
+
73
+			} else if ((rez = href.match(/maps\.google\.com\/(\?ll=|maps\/?\?q=)(.*)/i))) {
74
+				href = '//maps.google.com/' + rez[1] + '' + rez[2] + '&output=' + (rez[2].indexOf('layer=c') ? 'svembed' : 'embed');
75
+				type = 'iframe';
76
+			}
77
+
78
+			if (type) {
79
+				obj.href = href;
80
+				obj.type = type;
81
+			}
82
+		}
83
+	}
84
+
85
+}(jQuery));

+ 54
- 0
fancybox/source/helpers/jquery.fancybox-thumbs.css Просмотреть файл

@@ -0,0 +1,54 @@
1
+#fancybox-thumbs {
2
+	position: fixed;
3
+	left: 0;
4
+	width: 100%;
5
+	overflow: hidden;
6
+	z-index: 8050;
7
+}
8
+
9
+#fancybox-thumbs.bottom {
10
+	bottom: 2px;
11
+}
12
+
13
+#fancybox-thumbs.top {
14
+	top: 2px;
15
+}
16
+
17
+#fancybox-thumbs ul {
18
+	position: relative;
19
+	list-style: none;
20
+	margin: 0;
21
+	padding: 0;
22
+}
23
+
24
+#fancybox-thumbs ul li {
25
+	float: left;
26
+	padding: 1px;
27
+	opacity: 0.5;
28
+}
29
+
30
+#fancybox-thumbs ul li.active {
31
+	opacity: 0.75;
32
+	padding: 0;
33
+	border: 1px solid #fff;
34
+}
35
+
36
+#fancybox-thumbs ul li:hover {
37
+	opacity: 1;
38
+}
39
+
40
+#fancybox-thumbs ul li a {
41
+	display: block;
42
+	position: relative;
43
+	overflow: hidden;
44
+	border: 1px solid #222;
45
+	background: #111;
46
+	outline: none;
47
+}
48
+
49
+#fancybox-thumbs ul li img {
50
+	display: block;
51
+	position: relative;
52
+	border: 0;
53
+	padding: 0;
54
+}

+ 157
- 0
fancybox/source/helpers/jquery.fancybox-thumbs.js Просмотреть файл

@@ -0,0 +1,157 @@
1
+ /*!
2
+ * Thumbnail helper for fancyBox
3
+ * version: 1.0.4
4
+ * @requires fancyBox v2.0 or later
5
+ *
6
+ * Usage:
7
+ *     $(".fancybox").fancybox({
8
+ *         thumbs: {
9
+ *             width  : 50,
10
+ *             height : 50
11
+ *         }
12
+ *     });
13
+ *
14
+ * Options:
15
+ *     width - thumbnail width
16
+ *     height - thumbnail height
17
+ *     source - function to obtain the URL of the thumbnail image
18
+ *     position - 'top' or 'bottom'
19
+ *
20
+ */
21
+(function ($) {
22
+	//Shortcut for fancyBox object
23
+	var F = $.fancybox;
24
+
25
+	//Add helper object
26
+	F.helpers.thumbs = {
27
+		wrap: null,
28
+		list: null,
29
+		width: 0,
30
+
31
+		//Default function to obtain the URL of the thumbnail image
32
+		source: function (el) {
33
+			var img;
34
+
35
+			if ($.type(el) === 'string') {
36
+				return el;
37
+			}
38
+
39
+			img = $(el).find('img');
40
+
41
+			return img.length ? img.attr('src') : el.href;
42
+		},
43
+
44
+		init: function (opts) {
45
+			var that = this,
46
+				list,
47
+				thumbWidth = opts.width || 50,
48
+				thumbHeight = opts.height || 50,
49
+				thumbSource = opts.source || this.source;
50
+
51
+			//Build list structure
52
+			list = '';
53
+
54
+			for (var n = 0; n < F.group.length; n++) {
55
+				list += '<li><a style="width:' + thumbWidth + 'px;height:' + thumbHeight + 'px;" href="javascript:jQuery.fancybox.jumpto(' + n + ');"></a></li>';
56
+			}
57
+
58
+			this.wrap = $('<div id="fancybox-thumbs"></div>').addClass(opts.position || 'bottom').appendTo('body');
59
+			this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap);
60
+
61
+			//Load each thumbnail
62
+			$.each(F.group, function (i) {
63
+				$("<img />").load(function () {
64
+					var width = this.width,
65
+						height = this.height,
66
+						widthRatio, heightRatio, parent;
67
+
68
+					if (!that.list || !width || !height) {
69
+						return;
70
+					}
71
+
72
+					//Calculate thumbnail width/height and center it
73
+					widthRatio = width / thumbWidth;
74
+					heightRatio = height / thumbHeight;
75
+					parent = that.list.children().eq(i).find('a');
76
+
77
+					if (widthRatio >= 1 && heightRatio >= 1) {
78
+						if (widthRatio > heightRatio) {
79
+							width = Math.floor(width / heightRatio);
80
+							height = thumbHeight;
81
+
82
+						} else {
83
+							width = thumbWidth;
84
+							height = Math.floor(height / widthRatio);
85
+						}
86
+					}
87
+
88
+					$(this).css({
89
+						width: width,
90
+						height: height,
91
+						top: Math.floor(thumbHeight / 2 - height / 2),
92
+						left: Math.floor(thumbWidth / 2 - width / 2)
93
+					});
94
+
95
+					parent.width(thumbWidth).height(thumbHeight);
96
+
97
+					$(this).hide().appendTo(parent).fadeIn(300);
98
+
99
+				}).attr('src', thumbSource( F.group[ i ] ));
100
+			});
101
+
102
+			//Set initial width
103
+			this.width = this.list.children().eq(0).outerWidth(true);
104
+
105
+			this.list.width(this.width * (F.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (F.current.index * this.width + this.width * 0.5)));
106
+		},
107
+
108
+		//Center list
109
+		update: function (opts) {
110
+			if (this.list) {
111
+				this.list.stop(true).animate({
112
+					'left': Math.floor($(window).width() * 0.5 - (F.current.index * this.width + this.width * 0.5))
113
+				}, 150);
114
+			}
115
+		},
116
+
117
+		beforeLoad: function (opts) {
118
+			//Remove self if gallery do not have at least two items
119
+			if (F.group.length < 2) {
120
+				F.coming.helpers.thumbs = false;
121
+
122
+				return;
123
+			}
124
+
125
+			//Increase bottom margin to give space for thumbs
126
+			F.coming.margin[ opts.position === 'top' ? 0 : 2 ] = opts.height + 30;
127
+		},
128
+
129
+		afterShow: function (opts) {
130
+			//Check if exists and create or update list
131
+			if (this.list) {
132
+				this.update(opts);
133
+
134
+			} else {
135
+				this.init(opts);
136
+			}
137
+
138
+			//Set active element
139
+			this.list.children().removeClass('active').eq(F.current.index).addClass('active');
140
+		},
141
+
142
+		onUpdate: function () {
143
+			this.update();
144
+		},
145
+
146
+		beforeClose: function () {
147
+			if (this.wrap) {
148
+				this.wrap.remove();
149
+			}
150
+
151
+			this.wrap = null;
152
+			this.list = null;
153
+			this.width = 0;
154
+		}
155
+	}
156
+
157
+}(jQuery));

+ 234
- 0
fancybox/source/jquery.fancybox.css Просмотреть файл

@@ -0,0 +1,234 @@
1
+/*! fancyBox v2.0.6 fancyapps.com | fancyapps.com/fancybox/#license */
2
+.fancybox-tmp iframe, .fancybox-tmp object {
3
+	vertical-align: top;
4
+	padding: 0;
5
+	margin: 0;
6
+}
7
+
8
+.fancybox-wrap {
9
+	position: absolute;
10
+	top: 0;
11
+	left: 0;
12
+	z-index: 8020;
13
+}
14
+
15
+.fancybox-skin {
16
+	position: relative;
17
+	padding: 0;
18
+	margin: 0;
19
+	background: #f9f9f9;
20
+	color: #444;
21
+	text-shadow: none;
22
+	-webkit-border-radius: 4px;
23
+	   -moz-border-radius: 4px;
24
+	        border-radius: 4px;
25
+}
26
+
27
+.fancybox-opened {
28
+	z-index: 8030;
29
+}
30
+
31
+.fancybox-opened .fancybox-skin {
32
+	-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
33
+	   -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
34
+	        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
35
+}
36
+
37
+.fancybox-outer, .fancybox-inner {
38
+	padding: 0;
39
+	margin: 0;
40
+	position: relative;
41
+	outline: none;
42
+}
43
+
44
+.fancybox-inner {
45
+	overflow: hidden;
46
+}
47
+
48
+.fancybox-type-iframe .fancybox-inner {
49
+	-webkit-overflow-scrolling: touch;
50
+}
51
+
52
+.fancybox-error {
53
+	color: #444;
54
+	font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
55
+	margin: 0;
56
+	padding: 10px;
57
+}
58
+
59
+.fancybox-image, .fancybox-iframe {
60
+	display: block;
61
+	width: 100%;
62
+	height: 100%;
63
+	border: 0;
64
+	padding: 0;
65
+	margin: 0;
66
+	vertical-align: top;
67
+}
68
+
69
+.fancybox-image {
70
+	max-width: 100%;
71
+	max-height: 100%;
72
+}
73
+
74
+#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
75
+	background-image: url('fancybox_sprite.png');
76
+}
77
+
78
+#fancybox-loading {
79
+	position: fixed;
80
+	top: 50%;
81
+	left: 50%;
82
+	margin-top: -22px;
83
+	margin-left: -22px;
84
+	background-position: 0 -108px;
85
+	opacity: 0.8;
86
+	cursor: pointer;
87
+	z-index: 8020;
88
+}
89
+
90
+#fancybox-loading div {
91
+	width: 44px;
92
+	height: 44px;
93
+	background: url('fancybox_loading.gif') center center no-repeat;
94
+}
95
+
96
+.fancybox-close {
97
+	position: absolute;
98
+	top: -18px;
99
+	right: -18px;
100
+	width: 36px;
101
+	height: 36px;
102
+	cursor: pointer;
103
+	z-index: 8040;
104
+}
105
+
106
+.fancybox-nav {
107
+	position: absolute;
108
+	top: 0;
109
+	width: 40%;
110
+	height: 100%;
111
+	cursor: pointer;
112
+	background: transparent url('blank.gif'); /* helps IE */
113
+	-webkit-tap-highlight-color: rgba(0,0,0,0);
114
+	z-index: 8040;
115
+}
116
+
117
+.fancybox-prev {
118
+	left: 0;
119
+}
120
+
121
+.fancybox-next {
122
+	right: 0;
123
+}
124
+
125
+.fancybox-nav span {
126
+	position: absolute;
127
+	top: 50%;
128
+	width: 36px;
129
+	height: 34px;
130
+	margin-top: -18px;
131
+	cursor: pointer;
132
+	z-index: 8040;
133
+	visibility: hidden;
134
+}
135
+
136
+.fancybox-prev span {
137
+	left: 20px;
138
+	background-position: 0 -36px;
139
+}
140
+
141
+.fancybox-next span {
142
+	right: 20px;
143
+	background-position: 0 -72px;
144
+}
145
+
146
+.fancybox-nav:hover span {
147
+	visibility: visible;
148
+}
149
+
150
+.fancybox-tmp {
151
+	position: absolute;
152
+	top: -9999px;
153
+	left: -9999px;
154
+	padding: 0;
155
+	overflow: visible;
156
+	visibility: hidden;
157
+}
158
+
159
+/* Overlay helper */
160
+
161
+#fancybox-overlay {
162
+	position: absolute;
163
+	top: 0;
164
+	left: 0;
165
+	overflow: hidden;
166
+	display: none;
167
+	z-index: 8010;
168
+	background: #000;
169
+}
170
+
171
+#fancybox-overlay.overlay-fixed {
172
+	position: fixed;
173
+	bottom: 0;
174
+	right: 0;
175
+}
176
+
177
+/* Title helper */
178
+
179
+.fancybox-title {
180
+	visibility: hidden;
181
+	font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
182
+	position: relative;
183
+	text-shadow: none;
184
+	z-index: 8050;
185
+}
186
+
187
+.fancybox-opened .fancybox-title {
188
+	visibility: visible;
189
+}
190
+
191
+.fancybox-title-float-wrap {
192
+	position: absolute;
193
+	bottom: 0;
194
+	right: 50%;
195
+	margin-bottom: -35px;
196
+	z-index: 8030;
197
+	text-align: center;
198
+}
199
+
200
+.fancybox-title-float-wrap .child {
201
+	display: inline-block;
202
+	margin-right: -100%;
203
+	padding: 2px 20px;
204
+	background: transparent; /* Fallback for web browsers that doesn't support RGBa */
205
+	background: rgba(0, 0, 0, 0.8);
206
+	-webkit-border-radius: 15px;
207
+	   -moz-border-radius: 15px;
208
+	        border-radius: 15px;
209
+	text-shadow: 0 1px 2px #222;
210
+	color: #FFF;
211
+	font-weight: bold;
212
+	line-height: 24px;
213
+	white-space: nowrap;
214
+}
215
+
216
+.fancybox-title-outside-wrap {
217
+	position: relative;
218
+	margin-top: 10px;
219
+	color: #fff;
220
+}
221
+
222
+.fancybox-title-inside-wrap {
223
+	margin-top: 10px;
224
+}
225
+
226
+.fancybox-title-over-wrap {
227
+	position: absolute;
228
+	bottom: 0;
229
+	left: 0;
230
+	color: #fff;
231
+	padding: 10px;
232
+	background: #000;
233
+	background: rgba(0, 0, 0, .8);
234
+}

+ 1463
- 0
fancybox/source/jquery.fancybox.js
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 35
- 0
fancybox/source/jquery.fancybox.pack.js Просмотреть файл

@@ -0,0 +1,35 @@
1
+/*! fancyBox v2.0.6 fancyapps.com | fancyapps.com/fancybox/#license */
2
+(function(s,l,d,t){var m=d(s),q=d(l),a=d.fancybox=function(){a.open.apply(this,arguments)},u=!1,k=l.createTouch!==t,o=function(a){return"string"===d.type(a)},n=function(b,c){c&&o(b)&&0<b.indexOf("%")&&(b=a.getViewport()[c]/100*parseInt(b,10));return Math.round(b)+"px"};d.extend(a,{version:"2.0.5",defaults:{padding:15,margin:20,width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,autoSize:!0,autoResize:!k,autoCenter:!k,fitToView:!0,aspectRatio:!1,topRatio:0.5,fixed:!1,scrolling:"auto",
3
+wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},keys:{next:[13,32,34,39,40],prev:[8,33,37,38],close:[27]},tpl:{wrap:'<div class="fancybox-wrap"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe class="fancybox-iframe" name="fancybox-frame{rnd}" frameborder="0" hspace="0"'+
4
+(d.browser.msie?' allowtransparency="true"':"")+"></iframe>",swf:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="wmode" value="transparent" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{href}" /><embed src="{href}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="100%" height="100%" wmode="transparent"></embed></object>',error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
5
+closeBtn:'<div title="Close" class="fancybox-item fancybox-close"></div>',next:'<a title="Next" class="fancybox-nav fancybox-next"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev"><span></span></a>'},openEffect:"fade",openSpeed:300,openEasing:"swing",openOpacity:!0,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:300,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:300,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",
6
+prevSpeed:300,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:{speedIn:0,speedOut:300,opacity:0.8,css:{cursor:"pointer"},closeClick:!0},title:{type:"float"}}},group:{},opts:{},coming:null,current:null,isOpen:!1,isOpened:!1,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(b,c){a.close(!0);b&&!d.isArray(b)&&(b=b instanceof d?d(b).get():[b]);a.isActive=!0;a.opts=d.extend(!0,{},a.defaults,c);d.isPlainObject(c)&&c.keys!==t&&(a.opts.keys=c.keys?
7
+d.extend({},a.defaults.keys,c.keys):!1);a.group=b;a._start(a.opts.index||0)},cancel:function(){a.coming&&!1===a.trigger("onCancel")||(a.coming=null,a.hideLoading(),a.ajaxLoad&&a.ajaxLoad.abort(),a.ajaxLoad=null,a.imgPreload&&(a.imgPreload.onload=a.imgPreload.onabort=a.imgPreload.onerror=null))},close:function(b){a.cancel();a.current&&!1!==a.trigger("beforeClose")&&(a.unbindEvents(),!a.isOpen||b&&!0===b[0]?(d(".fancybox-wrap").stop().trigger("onReset").remove(),a._afterZoomOut()):(a.isOpen=a.isOpened=
8
+!1,d(".fancybox-item, .fancybox-nav").remove(),a.wrap.stop(!0).removeClass("fancybox-opened"),a.inner.css("overflow","hidden"),a.transitions[a.current.closeMethod]()))},play:function(b){var c=function(){clearTimeout(a.player.timer)},e=function(){c();a.current&&a.player.isActive&&(a.player.timer=setTimeout(a.next,a.current.playSpeed))},f=function(){c();d("body").unbind(".player");a.player.isActive=!1;a.trigger("onPlayEnd")};if(a.player.isActive||b&&!1===b[0])f();else if(a.current&&(a.current.loop||
9
+a.current.index<a.group.length-1))a.player.isActive=!0,d("body").bind({"afterShow.player onUpdate.player":e,"onCancel.player beforeClose.player":f,"beforeLoad.player":c}),e(),a.trigger("onPlayStart")},next:function(){a.current&&a.jumpto(a.current.index+1)},prev:function(){a.current&&a.jumpto(a.current.index-1)},jumpto:function(b){a.current&&(b=parseInt(b,10),1<a.group.length&&a.current.loop&&(b>=a.group.length?b=0:0>b&&(b=a.group.length-1)),a.group[b]!==t&&(a.cancel(),a._start(b)))},reposition:function(b,
10
+c){var e;a.isOpen&&(e=a._getPosition(c),b&&"scroll"===b.type?(delete e.position,a.wrap.stop(!0,!0).animate(e,200)):a.wrap.css(e))},update:function(b){a.isOpen&&(u||setTimeout(function(){var c=a.current,e=!b||b&&"orientationchange"===b.type;if(u&&(u=!1,c)){if(!b||"scroll"!==b.type||e)c.autoSize&&"iframe"!==c.type&&(a.inner.height("auto"),c.height=a.inner.height()),(c.autoResize||e)&&a._setDimension(),c.canGrow&&"iframe"!==c.type&&a.inner.height("auto");(c.autoCenter||e)&&a.reposition(b);a.trigger("onUpdate")}},
11
+200),u=!0)},toggle:function(){a.isOpen&&(a.current.fitToView=!a.current.fitToView,a.update())},hideLoading:function(){q.unbind("keypress.fb");d("#fancybox-loading").remove()},showLoading:function(){a.hideLoading();q.bind("keypress.fb",function(b){27===b.keyCode&&(b.preventDefault(),a.cancel())});d('<div id="fancybox-loading"><div></div></div>').click(a.cancel).appendTo("body")},getViewport:function(){return{x:m.scrollLeft(),y:m.scrollTop(),w:k&&s.innerWidth?s.innerWidth:m.width(),h:k&&s.innerHeight?
12
+s.innerHeight:m.height()}},unbindEvents:function(){a.wrap&&a.wrap.unbind(".fb");q.unbind(".fb");m.unbind(".fb")},bindEvents:function(){var b=a.current,c=b.keys;b&&(m.bind("resize.fb orientationchange.fb"+(b.autoCenter&&!b.fixed?" scroll.fb":""),a.update),c&&q.bind("keydown.fb",function(b){var f;f=b.target||b.srcElement;if(!b.ctrlKey&&!b.altKey&&!b.shiftKey&&!b.metaKey&&(!f||!f.type&&!d(f).is("[contenteditable]")))f=b.keyCode,-1<d.inArray(f,c.close)?(a.close(),b.preventDefault()):-1<d.inArray(f,c.next)?
13
+(a.next(),b.preventDefault()):-1<d.inArray(f,c.prev)&&(a.prev(),b.preventDefault())}),d.fn.mousewheel&&b.mouseWheel&&1<a.group.length&&a.wrap.bind("mousewheel.fb",function(b,c){var d=b.target||null;if(0!==c&&(!d||0===d.clientHeight||d.scrollHeight===d.clientHeight&&d.scrollWidth===d.clientWidth))b.preventDefault(),a[0<c?"prev":"next"]()}))},trigger:function(b,c){var e,f=c||a[-1<d.inArray(b,["onCancel","beforeLoad","afterLoad"])?"coming":"current"];if(f){d.isFunction(f[b])&&(e=f[b].apply(f,Array.prototype.slice.call(arguments,
14
+1)));if(!1===e)return!1;f.helpers&&d.each(f.helpers,function(c,e){if(e&&d.isPlainObject(a.helpers[c])&&d.isFunction(a.helpers[c][b]))a.helpers[c][b](e,f)});d.event.trigger(b+".fb")}},isImage:function(a){return o(a)&&a.match(/\.(jpe?g|gif|png|bmp)((\?|#).*)?$/i)},isSWF:function(a){return o(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(b){var c={},e=a.group[b]||null,f,g,i;if(e&&(e.nodeType||e instanceof d))f=!0,d.metadata&&(c=d(e).metadata());c=d.extend(!0,{},a.opts,{index:b,element:e},d.isPlainObject(e)?
15
+e:c);d.each(["href","title","content","type"],function(b,g){c[g]=a.opts[g]||f&&d(e).attr(g)||c[g]||null});"number"===typeof c.margin&&(c.margin=[c.margin,c.margin,c.margin,c.margin]);c.modal&&d.extend(!0,c,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{css:{cursor:"auto"},closeClick:!1}}});a.coming=c;if(!1===a.trigger("beforeLoad"))a.coming=null;else{g=c.type;b=c.href||e;g||(f&&(g=d(e).data("fancybox-type"),g||(g=(g=e.className.match(/fancybox\.(\w+)/))?
16
+g[1]:null)),!g&&o(b)&&(a.isImage(b)?g="image":a.isSWF(b)?g="swf":b.match(/^#/)&&(g="inline")),g||(g=f?"inline":"html"),c.type=g);if("inline"===g||"html"===g){if(c.content||(c.content="inline"===g?d(o(b)?b.replace(/.*(?=#[^\s]+$)/,""):b):e),!c.content||!c.content.length)g=null}else b||(g=null);"ajax"===g&&o(b)&&(i=b.split(/\s+/,2),b=i.shift(),c.selector=i.shift());c.href=b;c.group=a.group;c.isDom=f;switch(g){case "image":a._loadImage();break;case "ajax":a._loadAjax();break;case "inline":case "iframe":case "swf":case "html":a._afterLoad();
17
+break;default:a._error("type")}}},_error:function(b){a.hideLoading();d.extend(a.coming,{type:"html",autoSize:!0,minWidth:0,minHeight:0,padding:15,hasError:b,content:a.coming.tpl.error});a._afterLoad()},_loadImage:function(){var b=a.imgPreload=new Image;b.onload=function(){this.onload=this.onerror=null;a.coming.width=this.width;a.coming.height=this.height;a._afterLoad()};b.onerror=function(){this.onload=this.onerror=null;a._error("image")};b.src=a.coming.href;(b.complete===t||!b.complete)&&a.showLoading()},
18
+_loadAjax:function(){a.showLoading();a.ajaxLoad=d.ajax(d.extend({},a.coming.ajax,{url:a.coming.href,error:function(b,c){a.coming&&"abort"!==c?a._error("ajax",b):a.hideLoading()},success:function(b,c){"success"===c&&(a.coming.content=b,a._afterLoad())}}))},_preloadImages:function(){var b=a.group,c=a.current,e=b.length,f,g,i,h=Math.min(c.preload,e-1);if(c.preload&&!(2>b.length))for(i=1;i<=h;i+=1)if(f=b[(c.index+i)%e],g=f.href||d(f).attr("href")||f,"image"===f.type||a.isImage(g))(new Image).src=g},_afterLoad:function(){a.hideLoading();
19
+!a.coming||!1===a.trigger("afterLoad",a.current)?a.coming=!1:(a.isOpened?(d(".fancybox-item, .fancybox-nav").remove(),a.wrap.stop(!0).removeClass("fancybox-opened"),a.inner.css("overflow","hidden"),a.transitions[a.current.prevMethod]()):(d(".fancybox-wrap").stop().trigger("onReset").remove(),a.trigger("afterClose")),a.unbindEvents(),a.isOpen=!1,a.current=a.coming,a.wrap=d(a.current.tpl.wrap).addClass("fancybox-"+(k?"mobile":"desktop")+" fancybox-type-"+a.current.type+" fancybox-tmp "+a.current.wrapCSS).appendTo("body"),
20
+a.skin=d(".fancybox-skin",a.wrap).css("padding",n(a.current.padding)),a.outer=d(".fancybox-outer",a.wrap),a.inner=d(".fancybox-inner",a.wrap),a._setContent())},_setContent:function(){var b=a.current,c=b.content,e=b.type,f=b.minWidth,g=b.minHeight,i=b.maxWidth,h=b.maxHeight;switch(e){case "inline":case "ajax":case "html":b.selector?c=d("<div>").html(c).find(b.selector):c instanceof d&&(c.parent().hasClass("fancybox-inner")&&c.parents(".fancybox-wrap").unbind("onReset"),c=c.show().detach(),d(a.wrap).bind("onReset",
21
+function(){c.appendTo("body").hide()}));b.autoSize&&(f=d('<div class="fancybox-wrap '+a.current.wrapCSS+' fancybox-tmp"></div>').appendTo("body").css({minWidth:n(f,"w"),minHeight:n(g,"h"),maxWidth:n(i,"w"),maxHeight:n(h,"h")}).append(c),b.width=f.width(),b.height=f.height(),f.width(a.current.width),f.height()>b.height&&(f.width(b.width+1),b.width=f.width(),b.height=f.height()),c=f.contents().detach(),f.remove());break;case "image":c=b.tpl.image.replace("{href}",b.href);b.aspectRatio=!0;break;case "swf":c=
22
+b.tpl.swf.replace(/\{width\}/g,b.width).replace(/\{height\}/g,b.height).replace(/\{href\}/g,b.href);break;case "iframe":c=d(b.tpl.iframe.replace("{rnd}",(new Date).getTime())).attr("scrolling",b.scrolling).attr("src",b.href),b.scrolling=k?"scroll":"auto"}if("image"===e||"swf"===e)b.autoSize=!1,b.scrolling="visible";"iframe"===e&&b.autoSize?(a.showLoading(),a._setDimension(),a.inner.css("overflow",b.scrolling),c.bind({onCancel:function(){d(this).unbind();a._afterZoomOut()},load:function(){a.hideLoading();
23
+try{this.contentWindow.document.location&&(a.current.height=d(this).contents().find("body").height())}catch(b){a.current.autoSize=!1}a[a.isOpen?"_afterZoomIn":"_beforeShow"]()}}).appendTo(a.inner)):(a.inner.append(c),a._beforeShow())},_beforeShow:function(){a.coming=null;a.trigger("beforeShow");a._setDimension();a.wrap.hide().removeClass("fancybox-tmp");a.bindEvents();a._preloadImages();a.transitions[a.isOpened?a.current.nextMethod:a.current.openMethod]()},_setDimension:function(){var b=a.wrap,c=
24
+a.inner,e=a.current,f=a.getViewport(),g=e.margin,i=2*e.padding,h=e.width,j=e.height,r=e.maxWidth+i,k=e.maxHeight+i,l=e.minWidth+i,m=e.minHeight+i,p;f.w-=g[1]+g[3];f.h-=g[0]+g[2];o(h)&&0<h.indexOf("%")&&(h=(f.w-i)*parseFloat(h)/100);o(j)&&0<j.indexOf("%")&&(j=(f.h-i)*parseFloat(j)/100);g=h/j;h+=i;j+=i;e.fitToView&&(r=Math.min(f.w,r),k=Math.min(f.h,k));if(e.aspectRatio){if(h>r&&(h=r,j=(h-i)/g+i),j>k&&(j=k,h=(j-i)*g+i),h<l&&(h=l,j=(h-i)/g+i),j<m)j=m,h=(j-i)*g+i}else h=Math.max(l,Math.min(h,r)),j=Math.max(m,
25
+Math.min(j,k));h=Math.round(h);j=Math.round(j);d(b.add(c)).width("auto").height("auto");c.width(h-i).height(j-i);b.width(h);p=b.height();if(h>r||p>k)for(;(h>r||p>k)&&h>l&&p>m;)j-=10,e.aspectRatio?(h=Math.round((j-i)*g+i),h<l&&(h=l,j=(h-i)/g+i)):h-=10,c.width(h-i).height(j-i),b.width(h),p=b.height();e.dim={width:n(h),height:n(p)};e.canGrow=e.autoSize&&j>m&&j<k;e.canShrink=!1;e.canExpand=!1;if(h-i<e.width||j-i<e.height)e.canExpand=!0;else if((h>f.w||p>f.h)&&h>l&&j>m)e.canShrink=!0;a.innerSpace=p-i-
26
+c.height()},_getPosition:function(b){var c=a.current,e=a.getViewport(),f=c.margin,d=a.wrap.width()+f[1]+f[3],i=a.wrap.height()+f[0]+f[2],h={position:"absolute",top:f[0]+e.y,left:f[3]+e.x};c.autoCenter&&c.fixed&&!b&&i<=e.h&&d<=e.w&&(h={position:"fixed",top:f[0],left:f[3]});h.top=n(Math.max(h.top,h.top+(e.h-i)*c.topRatio));h.left=n(Math.max(h.left,h.left+0.5*(e.w-d)));return h},_afterZoomIn:function(){var b=a.current,c=b?b.scrolling:"no";if(b&&(a.isOpen=a.isOpened=!0,a.wrap.addClass("fancybox-opened"),
27
+a.inner.css("overflow","yes"===c?"scroll":"no"===c?"hidden":c),a.trigger("afterShow"),a.update(),(b.closeClick||b.nextClick)&&a.inner.css("cursor","pointer").bind("click.fb",function(c){if(!d(c.target).is("a")&&!d(c.target).parent().is("a"))a[b.closeClick?"close":"next"]()}),b.closeBtn&&d(b.tpl.closeBtn).appendTo(a.skin).bind("click.fb",a.close),b.arrows&&1<a.group.length&&((b.loop||0<b.index)&&d(b.tpl.prev).appendTo(a.outer).bind("click.fb",a.prev),(b.loop||b.index<a.group.length-1)&&d(b.tpl.next).appendTo(a.outer).bind("click.fb",
28
+a.next)),a.opts.autoPlay&&!a.player.isActive))a.opts.autoPlay=!1,a.play()},_afterZoomOut:function(){var b=a.current;a.wrap.trigger("onReset").remove();d.extend(a,{group:{},opts:{},current:null,isActive:!1,isOpened:!1,isOpen:!1,wrap:null,skin:null,outer:null,inner:null});a.trigger("afterClose",b)}});a.transitions={getOrigPosition:function(){var b=a.current,c=b.element,e=b.padding,f=d(b.orig),g={},i=50,h=50;!f.length&&b.isDom&&d(c).is(":visible")&&(f=d(c).find("img:first"),f.length||(f=d(c)));f.length?
29
+(g=f.offset(),f.is("img")&&(i=f.outerWidth(),h=f.outerHeight())):(b=a.getViewport(),g.top=b.y+0.5*(b.h-h),g.left=b.x+0.5*(b.w-i));return g={top:n(g.top-e),left:n(g.left-e),width:n(i+2*e),height:n(h+2*e)}},step:function(b,c){var e=c.prop,d,g;if("width"===e||"height"===e)d=Math.ceil(b-2*a.current.padding),"height"===e&&(g=(b-c.start)/(c.end-c.start),c.start>c.end&&(g=1-g),d-=a.innerSpace*g),a.inner[e](d)},zoomIn:function(){var b=a.wrap,c=a.current,e=c.openEffect,f="elastic"===e,g=d.extend({},c.dim,
30
+a._getPosition(f)),i=d.extend({opacity:1},g);delete i.position;f?(g=this.getOrigPosition(),c.openOpacity&&(g.opacity=0),a.outer.add(a.inner).width("auto").height("auto")):"fade"===e&&(g.opacity=0);b.css(g).show().animate(i,{duration:"none"===e?0:c.openSpeed,easing:c.openEasing,step:f?this.step:null,complete:a._afterZoomIn})},zoomOut:function(){var b=a.wrap,c=a.current,d=c.openEffect,f="elastic"===d,g={opacity:0};f&&("fixed"===b.css("position")&&b.css(a._getPosition(!0)),g=this.getOrigPosition(),c.closeOpacity&&
31
+(g.opacity=0));b.animate(g,{duration:"none"===d?0:c.closeSpeed,easing:c.closeEasing,step:f?this.step:null,complete:a._afterZoomOut})},changeIn:function(){var b=a.wrap,c=a.current,d=c.nextEffect,f="elastic"===d,g=a._getPosition(f),i={opacity:1};g.opacity=0;f&&(g.top=n(parseInt(g.top,10)-200),i.top="+=200px");b.css(g).show().animate(i,{duration:"none"===d?0:c.nextSpeed,easing:c.nextEasing,complete:a._afterZoomIn})},changeOut:function(){var b=a.wrap,c=a.current,e=c.prevEffect,f={opacity:0};b.removeClass("fancybox-opened");
32
+"elastic"===e&&(f.top="+=200px");b.animate(f,{duration:"none"===e?0:c.prevSpeed,easing:c.prevEasing,complete:function(){d(this).trigger("onReset").remove()}})}};a.helpers.overlay={overlay:null,update:function(){var a,c;this.overlay.width("100%").height("100%");d.browser.msie||k?(a=Math.max(l.documentElement.scrollWidth,l.body.scrollWidth),c=Math.max(l.documentElement.offsetWidth,l.body.offsetWidth),a=a<c?m.width():a):a=q.width();this.overlay.width(a).height(q.height())},beforeShow:function(b){this.overlay||
33
+(b=d.extend(!0,{},a.defaults.helpers.overlay,b),this.overlay=d('<div id="fancybox-overlay"></div>').css(b.css).appendTo("body"),b.closeClick&&this.overlay.bind("click.fb",a.close),a.current.fixed&&!k?this.overlay.addClass("overlay-fixed"):(this.update(),this.onUpdate=function(){this.update()}),this.overlay.fadeTo(b.speedIn,b.opacity))},afterClose:function(a){this.overlay&&this.overlay.fadeOut(a.speedOut||0,function(){d(this).remove()});this.overlay=null}};a.helpers.title={beforeShow:function(b){var c;
34
+if(c=a.current.title)c=d('<div class="fancybox-title fancybox-title-'+b.type+'-wrap">'+c+"</div>").appendTo("body"),"float"===b.type&&(c.width(c.width()),c.wrapInner('<span class="child"></span>'),a.current.margin[2]+=Math.abs(parseInt(c.css("margin-bottom"),10))),c.appendTo("over"===b.type?a.inner:"outside"===b.type?a.wrap:a.skin)}};d.fn.fancybox=function(b){var c=d(this),e=this.selector||"",f,g=function(g){var h=this,j=f,k;!g.ctrlKey&&!g.altKey&&!g.shiftKey&&!g.metaKey&&!d(h).is(".fancybox-wrap")&&
35
+(g.preventDefault(),g=b.groupAttr||"data-fancybox-group",k=d(h).attr(g),k||(g="rel",k=h[g]),k&&""!==k&&"nofollow"!==k&&(h=e.length?d(e):c,h=h.filter("["+g+'="'+k+'"]'),j=h.index(this)),b.index=j,a.open(h,b))},b=b||{};f=b.index||0;e?q.undelegate(e,"click.fb-start").delegate(e,"click.fb-start",g):c.unbind("click.fb-start").bind("click.fb-start",g);return this};d(l).ready(function(){a.defaults.fixed=d.support.fixedPosition||!(d.browser.msie&&6>=d.browser.version)&&!k})})(window,document,jQuery);

Двоичные данные
images/ajax-loader.gif Просмотреть файл


Двоичные данные
images/isen.gif Просмотреть файл


Двоичные данные
images/logo_ISEN.png Просмотреть файл


Двоичные данные
images/pdf.png Просмотреть файл


Двоичные данные
images/zip.png Просмотреть файл


+ 10
- 0
includes/footer.php Просмотреть файл

@@ -0,0 +1,10 @@
1
+<hr>
2
+<footer>
3
+<div class="texte" align="left">
4
+  &copy; ISEN Bretagne (<?php echo Date("Y"); ?>)
5
+  &nbsp;-&nbsp;Contact : <a href="mailto:jean-pierre.gerval@isen-bretagne.fr?subject=Documents de rentrée">jean-pierre.gerval@isen-bretagne.fr</a>
6
+</div>
7
+</footer>
8
+
9
+
10
+

+ 96
- 0
includes/formData.php Просмотреть файл

@@ -0,0 +1,96 @@
1
+
2
+	<form id="formData" class="validate" method="post">
3
+        <table width="90%" border="0" align="center" cellspacing="0">        
4
+          <tr>
5
+    		    <td class="cellOne" colspan="2" width="50%">
6
+        <?php
7
+        if ($_SESSION['existe'] != "TRUE") {
8
+          $nomFils = "";
9
+          $prenomFils = "";
10
+          $ddn = "";
11
+          $telMobile = "";
12
+          $courriel = "";
13
+          echo "<br /><div id=\"message\" class=\"monMessage\" align=\"center\">";
14
+          echo "Nous vous remercions de bien vouloir compléter ce formulaire<br />avant d'accéder aux documents de rentrée.";
15
+          echo "</div><br />";        
16
+        }
17
+        else {
18
+          echo "<br /><div id=\"message\" class=\"monMessage\" align=\"center\">";
19
+          echo "Vous pouvez modifier les données enregistrées...<br /><br />";
20
+          echo "</div><br />";         
21
+        }
22
+        ?>    
23
+            </td>
24
+          </tr>
25
+          <tr>
26
+            <td width="35%" class="cellOne"><div class="texte" align="right">Identifiant&nbsp;:&nbsp;</div></td>
27
+            <td class="cellOne"><div class="texte" align="left"><?php echo $_SESSION['courriel']; ?></div></td>
28
+          </tr>          
29
+          <tr>
30
+            <td colspan="2" class="cellOne"><div align="left" class="monLabel">&nbsp;&nbsp;&nbsp;<u>Etudiant(e)</u></div></td>
31
+          </tr>
32
+          <tr>
33
+            <td width="35%" class="cellOne"><div align="right" class="texte">Nom de l'étudiant(e)&nbsp;:&nbsp;</div></td>
34
+            <td class="cellOne"><input name="nomFils" type="text" size="30" value="<?php echo $nomFils; ?>"></td>
35
+          </tr>
36
+          <tr><td class="cellOne" colspan="2" align="center"><div id="nomFils"></div></td></tr>
37
+          <tr>
38
+            <td width="35%" class="cellOne"><div align="right" class="texte">Prénom de l'étudiant(e)&nbsp;:&nbsp;</div></td>
39
+            <td class="cellOne"><input name="prenomFils" type="text" size="30" value="<?php echo $prenomFils; ?>"></td>
40
+          </tr>
41
+          <tr><td class="cellOne" colspan="2" align="center"><div id="prenomFils"></div></td></tr>          
42
+          <tr>
43
+            <td width="35%" class="cellOne"><div align="right" class="texte">Date de naissance&nbsp;:&nbsp;</font></div></td>
44
+            <td class="cellOne">
45
+              <input type="text" name="ddn" size="20" value="<?php echo $ddn; ?>" id="inputDate">              
46
+              <button class="button" type="reset" id="buttonDate" title="Choisir une date">...</button>
47
+              <script type="text/javascript">
48
+                Calendar.setup ({
49
+                inputField     :    "inputDate",    // id of the input field
50
+                ifFormat       :    "%e %B %Y",     // format of the input field
51
+                showsTime      :    false,          // will display a time selector
52
+                button         :    "buttonDate",   // trigger for the calendar (button ID)
53
+                singleClick    :    true,           // double-click mode
54
+                step           :    2               // show all years in drop-down boxes (instead of every other year as default)
55
+				      });
56
+              </script>
57
+           </td>
58
+          </tr>
59
+          <tr><td class="cellOne" colspan="2" align="center"><div id="ddn"></div></td></tr>            
60
+          <tr>
61
+            <td colspan="2" class="cellOne">&nbsp;</td>
62
+          </tr>
63
+          <tr>
64
+            <td colspan="2" class="cellTwo">&nbsp;</td>
65
+          </tr>                    
66
+          <tr>
67
+            <td colspan="2" class="cellTwo"><div align="left" class="monLabel">&nbsp;&nbsp;&nbsp;<u>Parents</u></div></td>
68
+          </tr>
69
+          <tr>
70
+            <td width="35%" class="cellTwo"><div align="right"class="texte" >Téléphone mobile&nbsp;:&nbsp;</div></td>
71
+            <td class="cellTwo"><input name="telMobile" type="text" value="<?php echo $telMobile; ?>" size="30"></td>
72
+          </tr>
73
+          <tr><td class="cellTwo" colspan="2" align="center"><div id="telMobile"></div></td></tr>            
74
+          <tr>
75
+            <td width="35%" class="cellTwo"><div align="right" class="texte">Courriel&nbsp;:&nbsp;</div></td>
76
+            <td class="cellTwo"><input name="courriel" type="text" value="<?php echo $courriel; ?>" size="30"></td>
77
+          </tr>
78
+           <tr><td class="cellTwo" colspan="2" align="center"><div id="courriel"></div></td></tr>          
79
+          <tr>
80
+            <td colspan="2" class="cellTwo">&nbsp;</td>
81
+          </tr>            
82
+          <tr>
83
+            <td align="left" height="30" class="cellTwo">&nbsp;&nbsp;&nbsp;<input class="button" name="quit" type="button" id="quit" value="Quitter"></td>
84
+            <td align="right" height="30" class="cellTwo"><input class="button" name="submitData" type="submit" id="submitData" value="Enregistrer">&nbsp;&nbsp;&nbsp;</td>
85
+          </tr>
86
+          <tr>
87
+            <td colspan="2" class="notice">     
88
+              <br />Conformément à la loi "Informatique et Libertés" (loi du 6 janvier 1978 telle que modifiée), 
89
+              vous bénéficiez d'un droit d'accès, de rectification et de suppression des données personnelles vous concernant, 
90
+              que vous pouvez exercer en vous adressant à l'adresse e-mail mentionnée ci-dessous. 
91
+            </td>
92
+          <tr>
93
+            <td colspan="2" class="cellBody"><?php include_once("footer.php"); ?></td>
94
+          </tr>          
95
+        </table>
96
+      </form>

+ 17
- 0
includes/getData.php Просмотреть файл

@@ -0,0 +1,17 @@
1
+<?php
2
+
3
+$DbLink = mysql_connect($DbHost, $DbUser, $DbPassword) or die('erreur de connexion au serveur');
4
+mysql_select_db($DbName) or die('erreur de connexion a la base de donnees');
5
+mysql_query("SET NAMES 'utf8'");
6
+$query = "SELECT * FROM data WHERE identifiant LIKE '".$_SESSION['courriel']."'";
7
+$result = mysql_query($query);
8
+$ligne = mysql_fetch_assoc($result);
9
+$identifiant = stripslashes($ligne['identifiant']);
10
+$nomFils = stripslashes($ligne['nom_fils']);
11
+$prenomFils = stripslashes($ligne['prenom_fils']);
12
+$ddn = stripslashes($ligne['ddn_fils']);
13
+$telMobile = stripslashes($ligne['tel_mobile']);
14
+$courriel = stripslashes($ligne['courriel']);
15
+mysql_close();
16
+
17
+?>

+ 44
- 0
includes/header.php Просмотреть файл

@@ -0,0 +1,44 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+<head>
5
+  <title><?php echo $titre; ?></title>
6
+  <meta name="title" content="<?php echo $titre; ?>" />
7
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
8
+  
9
+  <link rel=stylesheet href="css/defaut.css" type="text/css" />
10
+  
11
+  <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
12
+  
13
+  <script type="text/javascript" src="js/jquery.validate.min.js"></script>
14
+  <script type="text/javascript" src="js/additional-methods.min.js"></script>
15
+  
16
+  <!-- Add mousewheel plugin (this is optional) -->
17
+  <script type="text/javascript" src="fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>
18
+
19
+  <!-- Add fancyBox -->
20
+  <link rel="stylesheet" href="fancybox/source/jquery.fancybox.css?v=2.0.6" type="text/css" media="screen" />
21
+  <script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js?v=2.0.6"></script>
22
+
23
+  <!-- Optionally add helpers - button, thumbnail and/or media -->
24
+  <link rel="stylesheet" href="fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.2" type="text/css" media="screen" />
25
+  <script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
26
+  <script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.0"></script>
27
+
28
+  <link rel="stylesheet" href="fancybox/source/helpers/jquery.fancybox-thumbs.css?v=2.0.6" type="text/css" media="screen" />
29
+  <script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-thumbs.js?v=2.0.6"></script>
30
+  
31
+  <!-- Add jscalendar -->
32
+  <link rel="stylesheet" type="text/css" media="all" href="jscalendar/skins/aqua/theme.css" title="Aqua" />
33
+  <script type="text/javascript" src="jscalendar/calendar.js"></script>
34
+  <script type="text/javascript" src="jscalendar/lang/calendar-fr.js"></script>
35
+  <script type="text/javascript" src="jscalendar/calendar-setup.js"></script>
36
+
37
+</head>
38
+
39
+<body>
40
+<header>
41
+  <div id="spinner" class="spinner" style="display:none;">
42
+	 <img id="img-spinner" src="images/ajax-loader.gif" alt="Loading"/>
43
+  </div>
44
+</header>

+ 82
- 0
includes/listDoc.php Просмотреть файл

@@ -0,0 +1,82 @@
1
+<?php
2
+  session_name("Rentree");
3
+  @session_start();
4
+
5
+  require_once("../config.php");
6
+  
7
+  if( !isset($_SESSION['auth']) || ($_SESSION['auth'] != "TRUE" ) ) {
8
+    // redirection
9
+    header("location: ../index.php");
10
+  }
11
+
12
+  if(isset($_GET['promo'])) {
13
+    
14
+    $promo = $_GET['promo'];
15
+    $countFiles = 0;
16
+    $html = "<table width=\"90%\"  border=\"0\" align=\"center\" cellspacing=\"0\">";    
17
+    
18
+    if ($promo!="NULL") {   
19
+      
20
+      $promo = $_GET['promo'];
21
+      $key = array_search($promo, $libellePromo);
22
+      $DbLink = mysql_connect($DbHost, $DbUser, $DbPassword) or die('erreur de connexion au serveur');
23
+      mysql_select_db($DbName) or die('erreur de connexion a la base de donnees');
24
+      mysql_query("SET NAMES 'utf8'");
25
+      
26
+      $query = "SELECT count(id) FROM document WHERE (promo='".$promo."' OR promo='') AND fichier!='null'";
27
+      $result = mysql_query($query);
28
+      $data = mysql_fetch_array($result);
29
+      $html .= "<td colspan=\"2\" class=\"cellDoc\"><div class=\"titreTabDoc\" align=\"left\">Ci-dessous, les ".$data[0]." documents disponibles...</div></td>";    
30
+      $html .= "<td class=\"cellDoc\"><div class=\"titreTabDoc\" align=\"center\">Fichiers</div></td></tr>";                
31
+      
32
+      // les documents de la promo demandée
33
+      $query = "SELECT * FROM document WHERE promo='".$promo."' AND fichier!='null' ORDER BY rang";
34
+      $result = mysql_query($query); 
35
+      while ($data = mysql_fetch_array($result)) {
36
+        $listFiles[$countFiles] = $data['fichier'];
37
+        $countFiles++;
38
+        $html .= "<td width=\"5%\"class=\"cellTwo\"><div class=\"texte\" align=\"right\">".$countFiles.".&nbsp;&nbsp;</div></td>";        
39
+        $html .= "<td width=\"80%\" class=\"cellTwo\"><div class=\"texte\" align=\"left\">".$data['libelle']."</div></td>";    
40
+        $html .= "<td class=\"cellTwo\"><div align=\"center\"><a id=\"iframe\" href=\"pdf/".$data['fichier']."\"><img title=\"".$data['libelle']."\" width=\"20px\" border=\"0\" src=\"images/pdf.png\"></a></div></td></tr>";   
41
+      }
42
+
43
+      
44
+      // Les documents communs
45
+      $query = "SELECT * FROM document WHERE promo='' AND fichier!='null' ORDER BY rang";
46
+      $result = mysql_query($query); 
47
+      while ($data = mysql_fetch_array($result)) {
48
+        $listFiles[$countFiles] = $data['fichier'];
49
+        $countFiles++;
50
+        $html .= "<td width=\"5%\"class=\"cellOne\"><div class=\"texte\" align=\"right\">".$countFiles.".&nbsp;&nbsp;</div></td>";        
51
+        $html .= "<td width=\"80%\" class=\"cellOne\"><div class=\"texte\" align=\"left\">".$data['libelle']."</div></td>";    
52
+        $html .= "<td class=\"cellOne\"><div align=\"center\"><a id=\"iframe\" href=\"pdf/".$data['fichier']."\"><img title=\"".$data['libelle']."\" width=\"18px\" border=\"0\" src=\"images/pdf.png\"></a></div></td></tr>";   
53
+      }
54
+      
55
+      
56
+      
57
+      // création du fichier zip
58
+      // penser à effacer périodiquement les fichiers générés
59
+    /*  require_once("../pclzip/pclzip.lib.php");
60
+      $fileName = $promo."-".texteAleatoire(12).".zip";
61
+      $archive = new PclZip("../zip/".$fileName);
62
+      $archive->create("../pdf/".$listFiles[0], PCLZIP_OPT_REMOVE_ALL_PATH);
63
+      for ($i = 1; $i < $countFiles; $i++) {
64
+        $v_list = $archive->add("../pdf/".$listFiles[$i], PCLZIP_OPT_REMOVE_ALL_PATH);
65
+        if ($v_list == 0) {
66
+          die("Error : ".$archive->errorInfo(true));
67
+        }
68
+      }*/
69
+      $html .= "<tr><td colspan=\"3\" class=\"cellDoc\">&nbsp;</td></tr>";
70
+      $html .= "<tr><td colspan=\"2\" class=\"cellDoc\"><div class=\"messageTabDoc\" align=\"right\">".$key."<br />Télécharger tous les fichiers&nbsp;</div>";
71
+      $html .= "<td class=\"cellDoc\" align=\"left\"><a href=\"zip/".$fileName."\"><img title=\"".$fileName."\" width=\"36px\" border=\"0\" src=\"images/zip.png\"></a></td></tr>";
72
+      $html .= "<tr><td colspan=\"3\" class=\"cellDoc\"><hr></td></tr>";
73
+    }
74
+    $html .= "</table>";
75
+    $message = array('status' => 200, 'message' => $html);    
76
+  }
77
+  else {
78
+    $message = array('status' => 400, 'message' => "Promotion non définie !");
79
+  }
80
+  echo json_encode($message);
81
+  
82
+?>

+ 32
- 0
includes/listPromo.php Просмотреть файл

@@ -0,0 +1,32 @@
1
+
2
+<table width="90%"  border="0" align="center" cellspacing="0">
3
+  <tr>
4
+    <td colspan="2" class="notice">     
5
+      <div class="texte">
6
+        <p>Vous trouverez sur cette page toutes les informations utiles pour la <b>rentrée <?php echo $annee; ?></b> en sélectionnant l'année qui vous concerne.
7
+         Vous pouvez télécharger chaque fichier (format <a href="http://get.adobe.com/fr/reader/" target="_blank">PDF</a>)
8
+         ou bien l'ensemble des fichiers (format <a href="http://www.7-zip.org/" target="_blank">ZIP</a>) pour l'année choisie. <i>A imprimer avec modération...</i></p>
9
+      </div>
10
+    </td>
11
+  <tr>
12
+
13
+  <tr>
14
+    <td width="10%" class="cellPromo">&nbsp;</td>  
15
+    <td class="cellPromo">
16
+      <div align="left" class="messageTabDoc">
17
+        Choisissez votre année&nbsp;:&nbsp;
18
+        <?php
19
+          echo "<select id=\"selectPromo\" size=\"1\">";
20
+          echo "<option value=\"NULL\">"."Choisir dans la liste"."</option>";			
21
+          foreach($libellePromo as $key => $value) {
22
+            echo "<option value=\"".$value."\">".$key."</option>";
23
+          }
24
+          echo "</select>";
25
+        ?>
26
+      </div>
27
+    </td>
28
+  </tr>
29
+  <tr>
30
+    <td colspan="2" class="cellPromo">&nbsp;</td>
31
+  </tr>        
32
+</table>

+ 37
- 0
includes/login.php Просмотреть файл

@@ -0,0 +1,37 @@
1
+<?php
2
+
3
+  session_name("Rentree");
4
+  @session_start();
5
+
6
+  require_once('../config.php');
7
+  $_SESSION['existe'] = "FALSE";
8
+  $_SESSION['auth'] = "FALSE";  
9
+  
10
+  if (!empty($_POST)) {
11
+    $_SESSION['courriel'] = chop($_POST['courriel']);
12
+    $password = chop($_POST['password']);
13
+
14
+    if ($password != $cle) {
15
+      // password ok ?
16
+      $message = array('status' => 400, 'message' => "Le mot de passe n'est pas valide !");   
17
+    }
18
+    else if (dejaInscrit($_SESSION['courriel'])){
19
+      // deja inscrit ?
20
+      $_SESSION['auth'] = "TRUE";
21
+      $_SESSION['existe'] = "TRUE";      
22
+      $message = array('status' => 200, 'message' => "OK"); 
23
+    }
24
+    else {
25
+      $checkMail = mailCheck($_SESSION['courriel']);
26
+      if ($checkMail!="OK") {
27
+        $message = array('status' => 400, 'message' => $checkMail);    
28
+      }
29
+      else {
30
+        $_SESSION['auth'] = "TRUE";
31
+        $message = array('status' => 200, 'message' => "OK");     
32
+      }
33
+    }
34
+    echo json_encode($message); 
35
+  }
36
+
37
+?>

+ 10
- 0
includes/logout.php Просмотреть файл

@@ -0,0 +1,10 @@
1
+<?php
2
+
3
+  session_name("Rentree");
4
+  @session_start();
5
+  session_unset();
6
+  
7
+  // redirection
8
+  header("location: ../index.php");
9
+
10
+?>

+ 56
- 0
includes/setData.php Просмотреть файл

@@ -0,0 +1,56 @@
1
+<?php
2
+  session_name("Rentree");
3
+  @session_start();
4
+
5
+  require_once('../config.php');
6
+
7
+  if (!empty($_POST)) {
8
+  
9
+    $nomFils = addslashes (chop($_POST['nomFils']));
10
+    $prenomFils = addslashes (chop($_POST['prenomFils']));
11
+    $ddn = addslashes (chop($_POST['ddn']));
12
+    $telMobile = addslashes (chop($_POST['telMobile']));
13
+    $courriel = addslashes (chop($_POST['courriel']));
14
+    $ip="";
15
+    if (getenv("HTTP_CLIENT_IP"))
16
+      $ip = getenv("HTTP_CLIENT_IP");
17
+    else if(getenv("HTTP_X_FORWARDED_FOR"))
18
+      $ip = getenv("HTTP_X_FORWARDED_FOR");
19
+    else if(getenv("REMOTE_ADDR"))
20
+      $ip = getenv("REMOTE_ADDR");
21
+    else
22
+      $ip = "UNKNOWN";
23
+    
24
+    $checkMail = mailCheck($courriel);
25
+    if ($checkMail!="OK") {
26
+        $message = array('status' => 400, 'message' => $checkMail);    
27
+    }
28
+    else {
29
+      if ($_SESSION['existe']=="TRUE") {
30
+        $query = "UPDATE data 
31
+          SET  nom_fils ='".$nomFils."', prenom_fils='".$prenomFils."', ddn_fils='".$ddn."',
32
+          tel_mobile='".$telMobile."', courriel='".$courriel."', date=NOW(), ip='".$ip."' WHERE identifiant='".$_SESSION['courriel']."'";
33
+      }
34
+      else {
35
+        $query = "INSERT INTO data 
36
+          (identifiant, nom_fils, prenom_fils, ddn_fils, tel_mobile, courriel, date, ip ) 
37
+          VALUES ('".$_SESSION['courriel']."', '".$nomFils."', '".$prenomFils."', '".$ddn."', '".$telMobile."','".$courriel."', NOW(), '".$ip."' )";
38
+        $_SESSION['existe'] = "TRUE";  
39
+      }
40
+      $DbLink = mysql_connect($DbHost, $DbUser, $DbPassword) or die('erreur de connexion au serveur');
41
+      mysql_select_db($DbName) or die('erreur de connexion a la base de donnees');
42
+      mysql_query("SET NAMES 'utf8'");
43
+      $result = mysql_query($query);
44
+      if (!$result) {
45
+        $message = array('status' => 400, 'message' => "Requête invalide : ".$query);
46
+      }
47
+      else {
48
+        $message = array('status' => 200, 'message' => "OK");
49
+      }
50
+      mysql_close();    
51
+    }
52
+    echo json_encode($message);
53
+  }
54
+
55
+
56
+?>

+ 68
- 0
index.php Просмотреть файл

@@ -0,0 +1,68 @@
1
+<?php
2
+  session_name("Rentree");
3
+  @session_start();
4
+  require_once("config.php");
5
+  
6
+  include_once("includes/header.php");
7
+  
8
+?>
9
+
10
+<script type="text/javascript">
11
+$(document).ready(function(){
12
+<?php
13
+  include_once("js/spinner.js"); 
14
+  include_once("js/formLogin.js"); 
15
+?>
16
+});
17
+</script>
18
+
19
+<div class="titre" align="center">
20
+      <br /><br /><img src="images/logo_ISEN.png" width="270">
21
+      <br /><br /><?php echo $titre." ".$annee; ?><br /><br /><br /><br />
22
+</div>
23
+
24
+<div align="center">
25
+  <form id="formLogin" class="validate" method="post">
26
+    <table border="0" cellspacing="2" width="50%">
27
+      <tr> 
28
+        <td width="30%" align="right"> 
29
+          <div class="monLabel" align="right">Courriel :&nbsp;</div>
30
+        </td>
31
+        <td align="left" width="70%"> 
32
+          <div align="left"><input type="text"  name="courriel" size="30"></div>
33
+        </td>
34
+      </tr>
35
+      <tr><td colspan="2" align="center"><div id="courriel"></div></td></tr>
36
+      <tr> 
37
+        <td width="30%">&nbsp;</td>
38
+        <td align="left" width="70%" > 
39
+          <div class="texte" align="left">(Cette adresse électronique sera votre identifiant)</div>
40
+        </td>
41
+      </tr>
42
+      <tr> 
43
+        <td width="30%" align="right"> 
44
+          <div class="monLabel" align="right">Mot de passe :&nbsp;</div>
45
+        </td>
46
+        <td align="left" width="70%" > 
47
+          <div align="left"><input type="password" name="password" size="30"></div>
48
+        </td>
49
+      </tr>
50
+      <tr><td colspan="2" align="center"><div id="password"></div></td></tr>
51
+      <tr> 
52
+        <td width="30%">&nbsp;</td>
53
+        <td align="left" width="70%" > 
54
+          <div class="texte" align="left">(Le mot de passe qui vous a été envoyé par courrier)</div>
55
+        </td>
56
+      </tr>
57
+      <tr> 
58
+        <td colspan="2" align="center" > 
59
+          <br />
60
+          <div align="center"><input type="submit" class="button" name="submitLogin" id="submitLogin" value="  Valider  "></div>
61
+        </td>
62
+      </tr>
63
+    </table>
64
+  </form>
65
+</div>
66
+<?php include_once("includes/footer.php"); ?>
67
+</body>
68
+</html>

+ 29
- 0
js/additional-methods.min.js Просмотреть файл

@@ -0,0 +1,29 @@
1
+/**
2
+ * jQuery Validation Plugin 1.9.0
3
+ *
4
+ * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
5
+ * http://docs.jquery.com/Plugins/Validation
6
+ *
7
+ * Copyright (c) 2006 - 2011 Jörn Zaefferer
8
+ *
9
+ * Dual licensed under the MIT and GPL licenses:
10
+ *   http://www.opensource.org/licenses/mit-license.php
11
+ *   http://www.gnu.org/licenses/gpl.html
12
+ */
13
+(function(){function a(b){return b.replace(/<.[^<>]*?>/g," ").replace(/&nbsp;|&#160;/gi," ").replace(/[0-9.(),;:!?%#$'"_+=\/-]*/g,"")}jQuery.validator.addMethod("maxWords",function(b,c,d){return this.optional(c)||a(b).match(/\b\w+\b/g).length<d},jQuery.validator.format("Please enter {0} words or less."));jQuery.validator.addMethod("minWords",function(b,c,d){return this.optional(c)||a(b).match(/\b\w+\b/g).length>=d},jQuery.validator.format("Please enter at least {0} words."));jQuery.validator.addMethod("rangeWords",
14
+function(b,c,d){return this.optional(c)||a(b).match(/\b\w+\b/g).length>=d[0]&&b.match(/bw+b/g).length<d[1]},jQuery.validator.format("Please enter between {0} and {1} words."))})();jQuery.validator.addMethod("letterswithbasicpunc",function(a,b){return this.optional(b)||/^[a-z-.,()'\"\s]+$/i.test(a)},"Letters or punctuation only please");jQuery.validator.addMethod("alphanumeric",function(a,b){return this.optional(b)||/^\w+$/i.test(a)},"Letters, numbers, spaces or underscores only please");
15
+jQuery.validator.addMethod("lettersonly",function(a,b){return this.optional(b)||/^[a-z]+$/i.test(a)},"Letters only please");jQuery.validator.addMethod("nowhitespace",function(a,b){return this.optional(b)||/^\S+$/i.test(a)},"No white space please");jQuery.validator.addMethod("ziprange",function(a,b){return this.optional(b)||/^90[2-5]\d\{2}-\d{4}$/.test(a)},"Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx");
16
+jQuery.validator.addMethod("integer",function(a,b){return this.optional(b)||/^-?\d+$/.test(a)},"A positive or negative non-decimal number please");
17
+jQuery.validator.addMethod("vinUS",function(a){if(a.length!=17)return false;var b,c,d,f,e,g=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],h=0;for(b=0;b<17;b++){f=j[b];d=a.slice(b,b+1);if(b==8)e=d;if(isNaN(d))for(c=0;c<g.length;c++){if(d.toUpperCase()===g[c]){d=i[c];d*=f;if(isNaN(e)&&c==8)e=g[c];break}}else d*=f;h+=d}a=h%11;if(a==10)a="X";if(a==e)return true;return false},
18
+"The specified vehicle identification number (VIN) is invalid.");jQuery.validator.addMethod("dateITA",function(a,b){var c=false;if(/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(a)){var d=a.split("/");c=parseInt(d[0],10);var f=parseInt(d[1],10);d=parseInt(d[2],10);var e=new Date(d,f-1,c);c=e.getFullYear()==d&&e.getMonth()==f-1&&e.getDate()==c?true:false}else c=false;return this.optional(b)||c},"Please enter a correct date");
19
+jQuery.validator.addMethod("dateNL",function(a,b){return this.optional(b)||/^\d\d?[\.\/-]\d\d?[\.\/-]\d\d\d?\d?$/.test(a)},"Vul hier een geldige datum in.");jQuery.validator.addMethod("time",function(a,b){return this.optional(b)||/^([01]\d|2[0-3])(:[0-5]\d){0,2}$/.test(a)},"Please enter a valid time, between 00:00 and 23:59");jQuery.validator.addMethod("time12h",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))$/i.test(a)},"Please enter a valid time, between 00:00 am and 12:00 pm");
20
+jQuery.validator.addMethod("phoneUS",function(a,b){a=a.replace(/\s+/g,"");return this.optional(b)||a.length>9&&a.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/)},"Please specify a valid phone number");jQuery.validator.addMethod("phoneUK",function(a,b){return this.optional(b)||a.length>9&&a.match(/^(\(?(0|\+44)[1-9]{1}\d{1,4}?\)?\s?\d{3,4}\s?\d{3,4})$/)},"Please specify a valid phone number");
21
+jQuery.validator.addMethod("mobileUK",function(a,b){return this.optional(b)||a.length>9&&a.match(/^((0|\+44)7(5|6|7|8|9){1}\d{2}\s?\d{6})$/)},"Please specify a valid mobile number");jQuery.validator.addMethod("strippedminlength",function(a,b,c){return jQuery(a).text().length>=c},jQuery.validator.format("Please enter at least {0} characters"));
22
+jQuery.validator.addMethod("email2",function(a,b){return this.optional(b)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(a)},jQuery.validator.messages.email);
23
+jQuery.validator.addMethod("url2",function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},
24
+jQuery.validator.messages.url);
25
+jQuery.validator.addMethod("creditcardtypes",function(a,b,c){if(/[^0-9-]+/.test(a))return false;a=a.replace(/\D/g,"");b=0;if(c.mastercard)b|=1;if(c.visa)b|=2;if(c.amex)b|=4;if(c.dinersclub)b|=8;if(c.enroute)b|=16;if(c.discover)b|=32;if(c.jcb)b|=64;if(c.unknown)b|=128;if(c.all)b=255;if(b&1&&/^(51|52|53|54|55)/.test(a))return a.length==16;if(b&2&&/^(4)/.test(a))return a.length==16;if(b&4&&/^(34|37)/.test(a))return a.length==15;if(b&8&&/^(300|301|302|303|304|305|36|38)/.test(a))return a.length==14;if(b&
26
+16&&/^(2014|2149)/.test(a))return a.length==15;if(b&32&&/^(6011)/.test(a))return a.length==16;if(b&64&&/^(3)/.test(a))return a.length==16;if(b&64&&/^(2131|1800)/.test(a))return a.length==15;if(b&128)return true;return false},"Please enter a valid credit card number.");
27
+jQuery.validator.addMethod("ipv4",function(a,b){return this.optional(b)||/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i.test(a)},"Please enter a valid IP v4 address.");
28
+jQuery.validator.addMethod("ipv6",function(a,b){return this.optional(b)||/^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(a)},"Please enter a valid IP v6 address.");
29
+jQuery.validator.addMethod("pattern",function(a,b,c){return this.optional(b)||c.test(a)},"Invalid format.");

+ 27
- 0
js/fancybox.js Просмотреть файл

@@ -0,0 +1,27 @@
1
+
2
+$("#iframe").fancybox({
3
+    type: 'iframe',
4
+		//maxWidth: 800,
5
+		//maxHeight: 600,
6
+		fitToView: false,
7
+		width: '90%',
8
+		height: '90%',
9
+		autoSize: false,
10
+		closeClick: false,
11
+		openEffect: 'none',
12
+		//openSpeed  : 1200,
13
+		closeEffect: 'none', 	
14
+		//openSpeed: 1200,    	
15
+    //padding : 0,
16
+    helpers:  {
17
+        overlay: {
18
+	       speedIn : 0,
19
+	       speedOut: 300,
20
+	       opacity : 0.4,
21
+	       css: {
22
+		      cursor : 'pointer'
23
+	       },
24
+	       closeClick: true
25
+      }
26
+    }		
27
+});

+ 56
- 0
js/formData.js Просмотреть файл

@@ -0,0 +1,56 @@
1
+
2
+/* Formulaire de données */
3
+  $("#formData").validate({
4
+    errorPlacement: function(error, element) {
5
+      var tag = "#"+ element.attr("name");
6
+      error.insertAfter(tag);
7
+    },
8
+    rules: {
9
+      nomFils: "required",
10
+      prenomFils: "required",
11
+      ddn: "required",
12
+      telMobile: "required",      
13
+      courriel: "required"
14
+    },
15
+    messages: {
16
+      nomFils: "Veuillez saisir le nom !",
17
+      prenomFils:  "Veuillez saisir le prénom !",
18
+      ddn: "Veuillez saisir la date de naissance !",
19
+      telMobile: "Veuillez saisir le N° de téléphone !",      
20
+      courriel: "Veuillez saisir l'adresse électronique !"
21
+    },
22
+    submitHandler: function(){
23
+      $("#submitData").attr("disabled", true);
24
+      $("#submitData").attr("value", "Traitement en cours");
25
+      $.ajax({
26
+        type:"POST", 
27
+        data: $("#formData").serialize(),
28
+        url:"includes/setData.php",
29
+        dataType: 'json',
30
+        success: function(data){
31
+          if (data.status==200) {
32
+            $("#intro").hide();              
33
+            $("#docs").show();
34
+            $("#message").empty();
35
+            $("#message").append("Vous pouvez modifier les données enregistrées...<br /><br />");
36
+            alert("Données enregistrées !");
37
+          }
38
+          else {
39
+            alert(data.message);
40
+          }
41
+          $("#submitData").attr("disabled", false);
42
+          $("#submitData").attr("value", "Enregistrer");          
43
+        },
44
+        error: function(data){
45
+          alert("Une erreur est survenue !");
46
+          $("#submitData").attr("disabled", false);
47
+          $("#submitData").attr("value", "Enregistrer");
48
+        }
49
+      });
50
+      return false;
51
+    }
52
+  });
53
+
54
+  $('#quit').click(function(){
55
+    location.replace("includes/logout.php");
56
+  })

+ 42
- 0
js/formLogin.js Просмотреть файл

@@ -0,0 +1,42 @@
1
+
2
+/* Formulaire de login */
3
+  $("#formLogin").validate({
4
+    errorPlacement: function(error, element) {
5
+      var tag = "#"+ element.attr("name");
6
+      error.insertAfter(tag);
7
+    },
8
+    rules: {
9
+      courriel: "required",
10
+      password: "required"
11
+    },
12
+    messages: {
13
+      courriel: "Veuillez saisir l'adresse électronique !",
14
+      password:  "Veuillez saisir le mot de passe !"
15
+    },
16
+    submitHandler: function(){
17
+      $("#submitLogin").attr("disabled", true);
18
+      $("#submitLogin").attr("value", "Traitement en cours");
19
+      $.ajax({
20
+        type:"POST", 
21
+        data: $("#formLogin").serialize(),
22
+        url:"includes/login.php",
23
+        dataType: 'json',
24
+        success: function(data){
25
+          if (data.status==200) {	    
26
+            location.replace("documents.php");
27
+          }
28
+          else {
29
+            alert(data.message);
30
+          }
31
+          $("#submitLogin").attr("disabled", false);
32
+          $("#submitLogin").attr("value", "Valider");
33
+        },
34
+        error: function(data){
35
+          alert("Une erreur est survenue !");
36
+          $("#submitLogin").attr("disabled", false);
37
+          $("#submitLogin").attr("value", "Valider");          
38
+        } 
39
+      });
40
+      return false;
41
+    }
42
+  });

+ 4
- 0
js/jquery-1.7.1.min.js
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 51
- 0
js/jquery.validate.min.js Просмотреть файл

@@ -0,0 +1,51 @@
1
+/**
2
+ * jQuery Validation Plugin 1.9.0
3
+ *
4
+ * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
5
+ * http://docs.jquery.com/Plugins/Validation
6
+ *
7
+ * Copyright (c) 2006 - 2011 Jörn Zaefferer
8
+ *
9
+ * Dual licensed under the MIT and GPL licenses:
10
+ *   http://www.opensource.org/licenses/mit-license.php
11
+ *   http://www.gnu.org/licenses/gpl.html
12
+ */
13
+(function(c){c.extend(c.fn,{validate:function(a){if(this.length){var b=c.data(this[0],"validator");if(b)return b;this.attr("novalidate","novalidate");b=new c.validator(a,this[0]);c.data(this[0],"validator",b);if(b.settings.onsubmit){a=this.find("input, button");a.filter(".cancel").click(function(){b.cancelSubmit=true});b.settings.submitHandler&&a.filter(":submit").click(function(){b.submitButton=this});this.submit(function(d){function e(){if(b.settings.submitHandler){if(b.submitButton)var f=c("<input type='hidden'/>").attr("name",
14
+b.submitButton.name).val(b.submitButton.value).appendTo(b.currentForm);b.settings.submitHandler.call(b,b.currentForm);b.submitButton&&f.remove();return false}return true}b.settings.debug&&d.preventDefault();if(b.cancelSubmit){b.cancelSubmit=false;return e()}if(b.form()){if(b.pendingRequest){b.formSubmitted=true;return false}return e()}else{b.focusInvalid();return false}})}return b}else a&&a.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing")},valid:function(){if(c(this[0]).is("form"))return this.validate().form();
15
+else{var a=true,b=c(this[0].form).validate();this.each(function(){a&=b.element(this)});return a}},removeAttrs:function(a){var b={},d=this;c.each(a.split(/\s/),function(e,f){b[f]=d.attr(f);d.removeAttr(f)});return b},rules:function(a,b){var d=this[0];if(a){var e=c.data(d.form,"validator").settings,f=e.rules,g=c.validator.staticRules(d);switch(a){case "add":c.extend(g,c.validator.normalizeRule(b));f[d.name]=g;if(b.messages)e.messages[d.name]=c.extend(e.messages[d.name],b.messages);break;case "remove":if(!b){delete f[d.name];
16
+return g}var h={};c.each(b.split(/\s/),function(j,i){h[i]=g[i];delete g[i]});return h}}d=c.validator.normalizeRules(c.extend({},c.validator.metadataRules(d),c.validator.classRules(d),c.validator.attributeRules(d),c.validator.staticRules(d)),d);if(d.required){e=d.required;delete d.required;d=c.extend({required:e},d)}return d}});c.extend(c.expr[":"],{blank:function(a){return!c.trim(""+a.value)},filled:function(a){return!!c.trim(""+a.value)},unchecked:function(a){return!a.checked}});c.validator=function(a,
17
+b){this.settings=c.extend(true,{},c.validator.defaults,a);this.currentForm=b;this.init()};c.validator.format=function(a,b){if(arguments.length==1)return function(){var d=c.makeArray(arguments);d.unshift(a);return c.validator.format.apply(this,d)};if(arguments.length>2&&b.constructor!=Array)b=c.makeArray(arguments).slice(1);if(b.constructor!=Array)b=[b];c.each(b,function(d,e){a=a.replace(RegExp("\\{"+d+"\\}","g"),e)});return a};c.extend(c.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",
18
+validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:c([]),errorLabelContainer:c([]),onsubmit:true,ignore:":hidden",ignoreTitle:false,onfocusin:function(a){this.lastActive=a;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass);this.addWrapper(this.errorsFor(a)).hide()}},onfocusout:function(a){if(!this.checkable(a)&&(a.name in this.submitted||!this.optional(a)))this.element(a)},
19
+onkeyup:function(a){if(a.name in this.submitted||a==this.lastElement)this.element(a)},onclick:function(a){if(a.name in this.submitted)this.element(a);else a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(a,b,d){a.type==="radio"?this.findByName(a.name).addClass(b).removeClass(d):c(a).addClass(b).removeClass(d)},unhighlight:function(a,b,d){a.type==="radio"?this.findByName(a.name).removeClass(b).addClass(d):c(a).removeClass(b).addClass(d)}},setDefaults:function(a){c.extend(c.validator.defaults,
20
+a)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:c.validator.format("Please enter no more than {0} characters."),
21
+minlength:c.validator.format("Please enter at least {0} characters."),rangelength:c.validator.format("Please enter a value between {0} and {1} characters long."),range:c.validator.format("Please enter a value between {0} and {1}."),max:c.validator.format("Please enter a value less than or equal to {0}."),min:c.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){function a(e){var f=c.data(this[0].form,"validator"),g="on"+e.type.replace(/^validate/,
22
+"");f.settings[g]&&f.settings[g].call(f,this[0],e)}this.labelContainer=c(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||c(this.currentForm);this.containers=c(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var b=this.groups={};c.each(this.settings.groups,function(e,f){c.each(f.split(/\s/),function(g,h){b[h]=e})});var d=
23
+this.settings.rules;c.each(d,function(e,f){d[e]=c.validator.normalizeRule(f)});c(this.currentForm).validateDelegate("[type='text'], [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ","focusin focusout keyup",a).validateDelegate("[type='radio'], [type='checkbox'], select, option","click",
24
+a);this.settings.invalidHandler&&c(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){this.checkForm();c.extend(this.submitted,this.errorMap);this.invalid=c.extend({},this.errorMap);this.valid()||c(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(a){this.lastElement=
25
+a=this.validationTargetFor(this.clean(a));this.prepareElement(a);this.currentElements=c(a);var b=this.check(a);if(b)delete this.invalid[a.name];else this.invalid[a.name]=true;if(!this.numberOfInvalids())this.toHide=this.toHide.add(this.containers);this.showErrors();return b},showErrors:function(a){if(a){c.extend(this.errorMap,a);this.errorList=[];for(var b in a)this.errorList.push({message:a[b],element:this.findByName(b)[0]});this.successList=c.grep(this.successList,function(d){return!(d.name in a)})}this.settings.showErrors?
26
+this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){c.fn.resetForm&&c(this.currentForm).resetForm();this.submitted={};this.lastElement=null;this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b=0,d;for(d in a)b++;return b},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return this.size()==
27
+0},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{c(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(a){}},findLastActive:function(){var a=this.lastActive;return a&&c.grep(this.errorList,function(b){return b.element.name==a.name}).length==1&&a},elements:function(){var a=this,b={};return c(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&&
28
+a.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in b||!a.objectLength(c(this).rules()))return false;return b[this.name]=true})},clean:function(a){return c(a)[0]},errors:function(){return c(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext)},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=c([]);this.toHide=c([]);this.currentElements=c([])},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers)},
29
+prepareElement:function(a){this.reset();this.toHide=this.errorsFor(a)},check:function(a){a=this.validationTargetFor(this.clean(a));var b=c(a).rules(),d=false,e;for(e in b){var f={method:e,parameters:b[e]};try{var g=c.validator.methods[e].call(this,a.value.replace(/\r/g,""),a,f.parameters);if(g=="dependency-mismatch")d=true;else{d=false;if(g=="pending"){this.toHide=this.toHide.not(this.errorsFor(a));return}if(!g){this.formatAndAdd(a,f);return false}}}catch(h){this.settings.debug&&window.console&&console.log("exception occured when checking element "+
30
+a.id+", check the '"+f.method+"' method",h);throw h;}}if(!d){this.objectLength(b)&&this.successList.push(a);return true}},customMetaMessage:function(a,b){if(c.metadata){var d=this.settings.meta?c(a).metadata()[this.settings.meta]:c(a).metadata();return d&&d.messages&&d.messages[b]}},customMessage:function(a,b){var d=this.settings.messages[a];return d&&(d.constructor==String?d:d[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(arguments[a]!==undefined)return arguments[a]},defaultMessage:function(a,
31
+b){return this.findDefined(this.customMessage(a.name,b),this.customMetaMessage(a,b),!this.settings.ignoreTitle&&a.title||undefined,c.validator.messages[b],"<strong>Warning: No message defined for "+a.name+"</strong>")},formatAndAdd:function(a,b){var d=this.defaultMessage(a,b.method),e=/\$?\{(\d+)\}/g;if(typeof d=="function")d=d.call(this,b.parameters,a);else if(e.test(d))d=jQuery.format(d.replace(e,"{$1}"),b.parameters);this.errorList.push({message:d,element:a});this.errorMap[a.name]=d;this.submitted[a.name]=
32
+d},addWrapper:function(a){if(this.settings.wrapper)a=a.add(a.parent(this.settings.wrapper));return a},defaultShowErrors:function(){for(var a=0;this.errorList[a];a++){var b=this.errorList[a];this.settings.highlight&&this.settings.highlight.call(this,b.element,this.settings.errorClass,this.settings.validClass);this.showLabel(b.element,b.message)}if(this.errorList.length)this.toShow=this.toShow.add(this.containers);if(this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);
33
+if(this.settings.unhighlight){a=0;for(b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass)}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return c(this.errorList).map(function(){return this.element})},showLabel:function(a,b){var d=this.errorsFor(a);if(d.length){d.removeClass(this.settings.validClass).addClass(this.settings.errorClass);
34
+d.attr("generated")&&d.html(b)}else{d=c("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(a),generated:true}).addClass(this.settings.errorClass).html(b||"");if(this.settings.wrapper)d=d.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();this.labelContainer.append(d).length||(this.settings.errorPlacement?this.settings.errorPlacement(d,c(a)):d.insertAfter(a))}if(!b&&this.settings.success){d.text("");typeof this.settings.success=="string"?d.addClass(this.settings.success):this.settings.success(d)}this.toShow=
35
+this.toShow.add(d)},errorsFor:function(a){var b=this.idOrName(a);return this.errors().filter(function(){return c(this).attr("for")==b})},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(a){if(this.checkable(a))a=this.findByName(a.name).not(this.settings.ignore)[0];return a},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(a){var b=this.currentForm;return c(document.getElementsByName(a)).map(function(d,
36
+e){return e.form==b&&e.name==a&&e||null})},getLength:function(a,b){switch(b.nodeName.toLowerCase()){case "select":return c("option:selected",b).length;case "input":if(this.checkable(b))return this.findByName(b.name).filter(":checked").length}return a.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):true},dependTypes:{"boolean":function(a){return a},string:function(a,b){return!!c(a,b.form).length},"function":function(a,b){return a(b)}},optional:function(a){return!c.validator.methods.required.call(this,
37
+c.trim(a.value),a)&&"dependency-mismatch"},startRequest:function(a){if(!this.pending[a.name]){this.pendingRequest++;this.pending[a.name]=true}},stopRequest:function(a,b){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[a.name];if(b&&this.pendingRequest==0&&this.formSubmitted&&this.form()){c(this.currentForm).submit();this.formSubmitted=false}else if(!b&&this.pendingRequest==0&&this.formSubmitted){c(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted=
38
+false}},previousValue:function(a){return c.data(a,"previousValue")||c.data(a,"previousValue",{old:null,valid:true,message:this.defaultMessage(a,"remote")})}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(a,b){a.constructor==String?this.classRuleSettings[a]=b:c.extend(this.classRuleSettings,
39
+a)},classRules:function(a){var b={};(a=c(a).attr("class"))&&c.each(a.split(" "),function(){this in c.validator.classRuleSettings&&c.extend(b,c.validator.classRuleSettings[this])});return b},attributeRules:function(a){var b={};a=c(a);for(var d in c.validator.methods){var e;if(e=d==="required"&&typeof c.fn.prop==="function"?a.prop(d):a.attr(d))b[d]=e;else if(a[0].getAttribute("type")===d)b[d]=true}b.maxlength&&/-1|2147483647|524288/.test(b.maxlength)&&delete b.maxlength;return b},metadataRules:function(a){if(!c.metadata)return{};
40
+var b=c.data(a.form,"validator").settings.meta;return b?c(a).metadata()[b]:c(a).metadata()},staticRules:function(a){var b={},d=c.data(a.form,"validator");if(d.settings.rules)b=c.validator.normalizeRule(d.settings.rules[a.name])||{};return b},normalizeRules:function(a,b){c.each(a,function(d,e){if(e===false)delete a[d];else if(e.param||e.depends){var f=true;switch(typeof e.depends){case "string":f=!!c(e.depends,b.form).length;break;case "function":f=e.depends.call(b,b)}if(f)a[d]=e.param!==undefined?
41
+e.param:true;else delete a[d]}});c.each(a,function(d,e){a[d]=c.isFunction(e)?e(b):e});c.each(["minlength","maxlength","min","max"],function(){if(a[this])a[this]=Number(a[this])});c.each(["rangelength","range"],function(){if(a[this])a[this]=[Number(a[this][0]),Number(a[this][1])]});if(c.validator.autoCreateRanges){if(a.min&&a.max){a.range=[a.min,a.max];delete a.min;delete a.max}if(a.minlength&&a.maxlength){a.rangelength=[a.minlength,a.maxlength];delete a.minlength;delete a.maxlength}}a.messages&&delete a.messages;
42
+return a},normalizeRule:function(a){if(typeof a=="string"){var b={};c.each(a.split(/\s/),function(){b[this]=true});a=b}return a},addMethod:function(a,b,d){c.validator.methods[a]=b;c.validator.messages[a]=d!=undefined?d:c.validator.messages[a];b.length<3&&c.validator.addClassRules(a,c.validator.normalizeRule(a))},methods:{required:function(a,b,d){if(!this.depend(d,b))return"dependency-mismatch";switch(b.nodeName.toLowerCase()){case "select":return(a=c(b).val())&&a.length>0;case "input":if(this.checkable(b))return this.getLength(a,
43
+b)>0;default:return c.trim(a).length>0}},remote:function(a,b,d){if(this.optional(b))return"dependency-mismatch";var e=this.previousValue(b);this.settings.messages[b.name]||(this.settings.messages[b.name]={});e.originalMessage=this.settings.messages[b.name].remote;this.settings.messages[b.name].remote=e.message;d=typeof d=="string"&&{url:d}||d;if(this.pending[b.name])return"pending";if(e.old===a)return e.valid;e.old=a;var f=this;this.startRequest(b);var g={};g[b.name]=a;c.ajax(c.extend(true,{url:d,
44
+mode:"abort",port:"validate"+b.name,dataType:"json",data:g,success:function(h){f.settings.messages[b.name].remote=e.originalMessage;var j=h===true;if(j){var i=f.formSubmitted;f.prepareElement(b);f.formSubmitted=i;f.successList.push(b);f.showErrors()}else{i={};h=h||f.defaultMessage(b,"remote");i[b.name]=e.message=c.isFunction(h)?h(a):h;f.showErrors(i)}e.valid=j;f.stopRequest(b,j)}},d));return"pending"},minlength:function(a,b,d){return this.optional(b)||this.getLength(c.trim(a),b)>=d},maxlength:function(a,
45
+b,d){return this.optional(b)||this.getLength(c.trim(a),b)<=d},rangelength:function(a,b,d){a=this.getLength(c.trim(a),b);return this.optional(b)||a>=d[0]&&a<=d[1]},min:function(a,b,d){return this.optional(b)||a>=d},max:function(a,b,d){return this.optional(b)||a<=d},range:function(a,b,d){return this.optional(b)||a>=d[0]&&a<=d[1]},email:function(a,b){return this.optional(b)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(a)},
46
+url:function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},
47
+date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a))},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 -]+/.test(a))return false;var d=0,e=0,f=false;a=a.replace(/\D/g,"");for(var g=a.length-1;g>=
48
+0;g--){e=a.charAt(g);e=parseInt(e,10);if(f)if((e*=2)>9)e-=9;d+=e;f=!f}return d%10==0},accept:function(a,b,d){d=typeof d=="string"?d.replace(/,/g,"|"):"png|jpe?g|gif";return this.optional(b)||a.match(RegExp(".("+d+")$","i"))},equalTo:function(a,b,d){d=c(d).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){c(b).valid()});return a==d.val()}}});c.format=c.validator.format})(jQuery);
49
+(function(c){var a={};if(c.ajaxPrefilter)c.ajaxPrefilter(function(d,e,f){e=d.port;if(d.mode=="abort"){a[e]&&a[e].abort();a[e]=f}});else{var b=c.ajax;c.ajax=function(d){var e=("port"in d?d:c.ajaxSettings).port;if(("mode"in d?d:c.ajaxSettings).mode=="abort"){a[e]&&a[e].abort();return a[e]=b.apply(this,arguments)}return b.apply(this,arguments)}}})(jQuery);
50
+(function(c){!jQuery.event.special.focusin&&!jQuery.event.special.focusout&&document.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.handle.call(this,e)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)},handler:function(e){arguments[0]=c.event.fix(e);arguments[0].type=b;return c.event.handle.apply(this,arguments)}}});c.extend(c.fn,{validateDelegate:function(a,
51
+b,d){return this.bind(b,function(e){var f=c(e.target);if(f.is(a))return d.apply(f,arguments)})}})})(jQuery);

+ 29
- 0
js/selectPromo.js Просмотреть файл

@@ -0,0 +1,29 @@
1
+
2
+/* Selection Promo */
3
+  //$("#container").hide();
4
+
5
+  $("#selectPromo").change(function() {
6
+    var promo = $(this).attr('value');
7
+    $.ajax({
8
+      type: "GET",
9
+      url: "includes/listDoc.php",
10
+      data: "promo="+promo,
11
+      dataType: 'json',
12
+      async: false,
13
+      success: function(data){
14
+        if (data.status==200) {
15
+          
16
+          $("#container").slideUp(400);          
17
+          $("#container").html(data.message);
18
+          $("#container").slideDown(1200);  
19
+                    
20
+        }
21
+        else {
22
+          alert(data.message);
23
+        }           
24
+      },
25
+      error: function(){
26
+        alert("Une erreur est survenue !");
27
+      }
28
+    });
29
+  });

+ 8
- 0
js/spinner.js Просмотреть файл

@@ -0,0 +1,8 @@
1
+
2
+$("#spinner").bind("ajaxSend", function() {
3
+		$(this).show();
4
+	}).bind("ajaxStop", function() {
5
+		$(this).hide();
6
+	}).bind("ajaxError", function() {
7
+		$(this).hide();
8
+});

+ 761
- 0
jscalendar/ChangeLog Просмотреть файл

@@ -0,0 +1,761 @@
1
+2005-03-07  Mihai Bazon  <mihai_bazon@yahoo.com>
2
+
3
+	* skins/aqua/theme.css: *** empty log message ***
4
+
5
+	* release-notes.html: updated release notes
6
+
7
+	* calendar-setup.js:
8
+	use a better approach to initialize the calendar--don't call _init twice,
9
+	it's the most time consuming function in the calendar.  Instead, determine
10
+	the date beforehand if possible and pass it to the calendar at constructor.
11
+
12
+	* calendar.js:
13
+	avoid keyboard operation when 'multiple dates' is set (very buggy for now)
14
+
15
+	* calendar.js:
16
+	fixed keyboard handling problems: now it works fine when "showsOtherMonths"
17
+	is passed; it also seems to be fine with disabled dates (won't normally
18
+	allow selection)--however this area is still likely to be buggy, i.e. in a
19
+	month that has all the dates disabled.
20
+
21
+	* calendar.js:
22
+	some trivial performance improvements in the _init function
23
+	Added Date.parseDate (old Calendar.prototype.parseDate now calls this one)
24
+
25
+2005-03-05  Mihai Bazon  <mihai_bazon@yahoo.com>
26
+
27
+	* release-notes.html: updated release notes
28
+
29
+	* dayinfo.html: *** empty log message ***
30
+
31
+	* calendar-setup.js:
32
+	bugfix--update an inputField even if flat calendar is selected
33
+
34
+	* calendar.js:
35
+	fixed bugs in parseDate function (if for some reason the input string is
36
+	totally broken, then check numbers for NaN and use values from the current
37
+	date instead)
38
+
39
+	* make-release.pl: copy the skins subdirectory and all skins
40
+
41
+	* index.html: added Aqua skin
42
+
43
+	* skins/aqua/active-bg.gif, skins/aqua/dark-bg.gif, skins/aqua/hover-bg.gif, skins/aqua/menuarrow.gif, skins/aqua/normal-bg.gif, skins/aqua/rowhover-bg.gif, skins/aqua/status-bg.gif, skins/aqua/theme.css, skins/aqua/title-bg.gif, skins/aqua/today-bg.gif:
44
+	in the future, skins will go to this directory, each in a separate subdir; for now there's only Aqua, an excellent new skin
45
+
46
+	* calendar.js: workaround IE bug, needed in the Aqua theme
47
+	don't hide select elements unless browser is IE or Opera
48
+
49
+	* lang/calendar-bg.js, lang/calendar-big5-utf8.js, lang/calendar-big5.js, lang/calendar-br.js, lang/calendar-ca.js, lang/calendar-cs-utf8.js, lang/calendar-cs-win.js, lang/calendar-da.js, lang/calendar-de.js, lang/calendar-el.js, lang/calendar-en.js, lang/calendar-es.js, lang/calendar-fi.js, lang/calendar-fr.js, lang/calendar-he-utf8.js, lang/calendar-hu.js, lang/calendar-it.js, lang/calendar-ko-utf8.js, lang/calendar-ko.js, lang/calendar-lt-utf8.js, lang/calendar-lt.js, lang/calendar-lv.js, lang/calendar-nl.js, lang/calendar-no.js, lang/calendar-pl-utf8.js, lang/calendar-pl.js, lang/calendar-pt.js, lang/calendar-ro.js, lang/calendar-ru.js, lang/calendar-ru_win_.js, lang/calendar-si.js, lang/calendar-sk.js, lang/calendar-sp.js, lang/calendar-sv.js, lang/calendar-zh.js, lang/cn_utf8.js:
50
+	updated urls, copyright notices
51
+
52
+	* doc/reference.tex: updated documentation
53
+
54
+	* calendar.js, index.html:
55
+	renamed the global variable to _dynarch_popupCalendar to avoid name clashes
56
+
57
+	* multiple-dates.html: start with an empty array
58
+
59
+	* calendar.js:
60
+	fixed bugs in the time selector (12:XX pm was wrongfully understood as 12:XX am)
61
+
62
+	* calendar.js:
63
+	using innerHTML instead of text nodes; works better in Safari and also makes
64
+	a smaller, cleaner code
65
+
66
+2005-03-04  Mihai Bazon  <mihai_bazon@yahoo.com>
67
+
68
+	* calendar.js:
69
+	fixed a performance regression that occurred after adding support for multiple dates
70
+	fixed the time selection bug (now it keeps time correctly)
71
+	clicking today will close the calendar if "today" is already selected
72
+
73
+	* lang/cn_utf8.js: new translation
74
+
75
+2005-02-17  Mihai Bazon  <mihai_bazon@yahoo.com>
76
+
77
+	* lang/calendar-ar-utf8.zip: Added arabic translation
78
+
79
+2004-10-19  Mihai Bazon  <mihai_bazon@yahoo.com>
80
+
81
+	* lang/calendar-zh.js: updated
82
+
83
+2004-09-20  Mihai Bazon  <mihai_bazon@yahoo.com>
84
+
85
+	* lang/calendar-no.js: updated (Daniel Holmen)
86
+
87
+2004-09-20  Mihai Bazon  <mihai_bazon@yahoo.com>
88
+
89
+	* lang/calendar-no.js: updated (Daniel Holmen)
90
+
91
+2004-08-11  Mihai Bazon  <mihai_bazon@yahoo.com>
92
+
93
+	* lang/calendar-nl.js: updated language file (thanks to Arjen Duursma)
94
+
95
+	* lang/calendar-sp.js: updated (thanks to Rafael Velasco)
96
+
97
+2004-07-21  Mihai Bazon  <mihai_bazon@yahoo.com>
98
+
99
+	* lang/calendar-br.js: updated
100
+
101
+	* calendar-setup.js: fixed bug (dateText)
102
+
103
+2004-07-21  Mihai Bazon  <mihai_bazon@yahoo.com>
104
+
105
+	* lang/calendar-br.js: updated
106
+
107
+	* calendar-setup.js: fixed bug (dateText)
108
+
109
+2004-07-04  Mihai Bazon  <mihai_bazon@yahoo.com>
110
+
111
+	* lang/calendar-lv.js:
112
+	added LV translation (thanks to Juris Valdovskis)
113
+
114
+2004-06-25  Mihai Bazon  <mihai_bazon@yahoo.com>
115
+
116
+	* calendar.js:
117
+	fixed bug in IE (el.calendar.tooltips is null or not an object)
118
+
119
+2004-06-24  Mihai Bazon  <mihai_bazon@yahoo.com>
120
+
121
+	* doc/reference.tex: fixed latex compilation
122
+
123
+	* index.html: linking other sample files
124
+
125
+	* calendar-setup.js, calendar.js, dayinfo.html:
126
+	ability to display day info (dateText parameter) + sample file
127
+
128
+2004-06-23  Mihai Bazon  <mihai_bazon@yahoo.com>
129
+
130
+	* doc/reference.tex, lang/calendar-bg.js, lang/calendar-br.js, lang/calendar-ca.js, lang/calendar-en.js, lang/calendar-es.js, lang/calendar-fr.js, lang/calendar-it.js, lang/calendar-ko-utf8.js, lang/calendar-ko.js, lang/calendar-nl.js, lang/calendar-sv.js, README, calendar.js, index.html:
131
+	email address changed
132
+
133
+2004-06-14  Mihai Bazon  <mihai_bazon@yahoo.com>
134
+
135
+	* lang/calendar-cs-utf8.js, lang/calendar-cs-win.js:
136
+	updated translations
137
+
138
+	* calendar-system.css: added z-index to drop downs
139
+
140
+	* lang/calendar-en.js:
141
+	first day of week can now be part of the language file
142
+
143
+	* lang/calendar-es.js:
144
+	updated language file (thanks to Servilio Afre Puentes)
145
+
146
+	* calendar-blue2.css, calendar-brown.css, calendar-green.css, calendar-tas.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css, calendar-blue.css:
147
+	added z-index property to drop downs (fixes bug)
148
+
149
+2004-06-13  Mihai Bazon  <mihai_bazon@yahoo.com>
150
+
151
+	* calendar-setup.js: fixed bug (apply showOthers to flat calendars too)
152
+
153
+2004-06-06  Mihai Bazon  <mihai_bazon@yahoo.com>
154
+
155
+	* calendar-setup.js:
156
+	firstDay defaults to "null", in which case the value in the language file
157
+	will be used
158
+
159
+	* calendar.js:
160
+	firstDayOfWeek can now default to a value specified in the language definition file
161
+
162
+	* index.html: first day of week is now numeric
163
+
164
+2004-06-02  Mihai Bazon  <mihai_bazon@yahoo.com>
165
+
166
+	* calendar.js: added date tooltip function
167
+
168
+2004-05-28  Mihai Bazon  <mihai_bazon@yahoo.com>
169
+
170
+	* lang/calendar-br.js: updated (thanks to Marcos Pont)
171
+
172
+	* calendar-setup.js: fixed small bug
173
+
174
+2004-05-01  Mihai Bazon  <mihai_bazon@yahoo.com>
175
+
176
+	* calendar-setup.js: returns the calendar object
177
+
178
+2004-04-28  Mihai Bazon  <mihai_bazon@yahoo.com>
179
+
180
+	* calendar-setup.js:
181
+	patch to read the date value from the inputField, according to ifFormat (if
182
+	both are passed), for flat calendars.  (thanks Colin T. Hill)
183
+
184
+2004-04-20  Mihai Bazon  <mihai_bazon@yahoo.com>
185
+
186
+	* calendar-setup.js, calendar.js, multiple-dates.html:
187
+	added support for multiple dates selection
188
+
189
+	* lang/calendar-nl.js:
190
+	updated Dutch translation, thanks to Jeroen Wolsink
191
+
192
+	* lang/calendar-big5-utf8.js, lang/calendar-big5.js:
193
+	Traditional Chinese language (thanks GaryFu)
194
+
195
+2004-03-26  Mihai Bazon  <mihai_bazon@yahoo.com>
196
+
197
+	* lang/calendar-fr.js, lang/calendar-pt.js: updated
198
+
199
+	* lang/calendar-ru_win_.js, lang/calendar-ru.js:
200
+	updated, thanks to Sly Golovanov
201
+
202
+2004-03-25  Mihai Bazon  <mihai_bazon@yahoo.com>
203
+
204
+	* lang/calendar-fr.js: updated (thanks to David Duret)
205
+
206
+2004-03-24  Mihai Bazon  <mihai_bazon@yahoo.com>
207
+
208
+	* lang/calendar-da.js: updated (thanks to Michael Thingmand Henriksen)
209
+
210
+2004-03-21  Mihai Bazon  <mihai_bazon@yahoo.com>
211
+
212
+	* lang/calendar-ca.js: updated (thanks to David Valls)
213
+
214
+2004-03-17  Mihai Bazon  <mihai_bazon@yahoo.com>
215
+
216
+	* lang/calendar-de.js: updated to UTF8 (thanks to Jack (tR))
217
+
218
+2004-03-09  Mihai Bazon  <mihai_bazon@yahoo.com>
219
+
220
+	* lang/calendar-bg.js: Bulgarian translation
221
+
222
+2004-03-08  Mihai Bazon  <mihai_bazon@yahoo.com>
223
+
224
+	* lang/calendar-he-utf8.js: Hebrew translation (thanks to Idan Sofer)
225
+
226
+	* lang/calendar-hu.js: updated (thanks to Istvan Karaszi)
227
+
228
+2004-02-27  Mihai Bazon  <mihai_bazon@yahoo.com>
229
+
230
+	* lang/calendar-it.js: updated (thanks to Fabio Di Bernardini)
231
+
232
+2004-02-25  Mihai Bazon  <mihai_bazon@yahoo.com>
233
+
234
+	* calendar.js: fix for Safari (thanks to Olivier Chirouze / XPWeb)
235
+
236
+2004-02-22  Mihai Bazon  <mihai_bazon@yahoo.com>
237
+
238
+	* lang/calendar-al.js: Albanian language file
239
+
240
+2004-02-17  Mihai Bazon  <mihai_bazon@yahoo.com>
241
+
242
+	* lang/calendar-fr.js: fixed
243
+
244
+	* lang/calendar-fr.js:
245
+	FR translation updated (thanks to SIMON Alexandre)
246
+
247
+	* lang/calendar-es.js: ES translation updated, thanks to David Gonzales
248
+
249
+2004-02-10  Mihai Bazon  <mihai_bazon@yahoo.com>
250
+
251
+	* lang/calendar-pt.js:
252
+	updated Portugese translation, thanks to Elcio Ferreira
253
+
254
+2004-02-09  Mihai Bazon  <mihai_bazon@yahoo.com>
255
+
256
+	* TODO: updated
257
+
258
+2004-02-06  Mihai Bazon  <mihai_bazon@yahoo.com>
259
+
260
+	* README: describe the PHP files
261
+
262
+	* make-release.pl: includes php files
263
+
264
+	* make-release.pl: ChangeLog included in the distribution (if found)
265
+
266
+	* calendar.js, doc/reference.tex, index.html: switched to version 0.9.6
267
+
268
+	* doc/Calendar.setup.tex, doc/reference.tex: updated documentation
269
+
270
+	* release-notes.html: updated release notes
271
+
272
+	* calendar.js: Fixed bug: Feb/29 and year change now keeps Feb in view
273
+
274
+	* calendar.js: fixed the "ESC" problem (call the close handler)
275
+
276
+	* calendar.js: fixed day of year range (1 to 366 instead of 0 to 365)
277
+
278
+	* calendar.js: fixed week number calculations
279
+
280
+	* doc/reference.tex: fixed (date input format)
281
+
282
+	* calendar.php: removed comment
283
+
284
+	* calendar-blue.css, calendar-blue2.css, calendar-brown.css, calendar-green.css, calendar-system.css, calendar-tas.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css, calendar.js:
285
+	workaround for IE bug (you can't normally specify through CSS the style for
286
+	an element having two classes or more; we had to change a classname)
287
+
288
+	* calendar-blue.css, calendar-blue2.css, calendar-brown.css, calendar-green.css, calendar-system.css, calendar-tas.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css:
289
+	smaller fonts on days that are in neighbor months
290
+
291
+2004-02-04  Mihai Bazon  <mihai_bazon@yahoo.com>
292
+
293
+	* index.html: first demo shows the "showOtherMonths" capability
294
+
295
+	* calendar-setup.js: support new parameters in the calendar.
296
+	added: firstDay, showOthers, cache.
297
+
298
+	* calendar-blue.css, calendar-blue2.css, calendar-brown.css, calendar-green.css, calendar-system.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css, calendar.js, lang/calendar-en.js, lang/calendar-ro.js:
299
+	new parameters: firstDayOfWeek, showsOtherMonths; removed mondayFirst.
300
+	This adds support for setting any day to be the first day of week (by just
301
+	clicking the day name in the display); also, if showsOtherMonths is enabled
302
+	then dates belonging to adjacent months that are in the current view will be
303
+	displayed and the calendar will have a fixed height.
304
+
305
+	all themes updated.
306
+
307
+	* test.php: test for calendar.php
308
+
309
+	* calendar.php: fixed bug (pass numeric values as numbers)
310
+
311
+2004-02-01  Mihai Bazon  <mihai_bazon@yahoo.com>
312
+
313
+	* calendar.php: added PHP wrapper
314
+
315
+	* img.gif: icon updated
316
+
317
+	* TODO: updated TODO list
318
+
319
+2004-01-27  Mihai Bazon  <mihai_bazon@yahoo.com>
320
+
321
+	* calendar.js:
322
+	Janusz Piwowarski sent over a patch for IE5 compatibility which is much more
323
+	elegant than the atrocities that I had wrote :-D  I'm gettin' old..  Thanks Janusz!
324
+
325
+	* lang/calendar-fi.js: updated
326
+
327
+2004-01-15  Mihai Bazon  <mihai_bazon@yahoo.com>
328
+
329
+	* TODO: updated TODO list
330
+
331
+	* calendar-setup.js: default align changed to "Br"
332
+
333
+	* doc/reference.tex: changed default value for "align"
334
+
335
+	* calendar-setup.js: calling onchange event handler, if available
336
+
337
+	* calendar-setup.js: added "position" option
338
+
339
+	* simple-1.html: demonstrates "step" option
340
+
341
+	* calendar-setup.js: added "step" option
342
+
343
+	* calendar.js: added yearStep config parameter
344
+
345
+	* calendar.js:
346
+	fixed parseDate routine (the NaN bug which occurred when there was a space
347
+	after the date and no time)
348
+
349
+2004-01-14  Mihai Bazon  <mihai_bazon@yahoo.com>
350
+
351
+	* lang/calendar-en.js: added "Time:"
352
+
353
+	* test-position.html: test for the new position algorithm
354
+
355
+	* index.html: do not destroy() the calendar
356
+	avoid bug in parseDate (%p must be separated by non-word characters)
357
+
358
+	* menuarrow2.gif: for calendar-blue2.css
359
+
360
+	* calendar-setup.js: honor "date" parameter if passed
361
+
362
+	* calendar.js: IE5 support is back
363
+	performance improvements in IE6 (mouseover combo boxes)
364
+	display "Time:" beside the clock area, if defined in the language file
365
+	new positioning algorithm (try to keep the calendar in page)
366
+	rewrote parseDate a little cleaner
367
+
368
+	* lang/calendar-el.js:
369
+	updated Greek translation (thanks Alexandros Pappas)
370
+
371
+2004-01-13  Mihai Bazon  <mihai_bazon@yahoo.com>
372
+
373
+	* index.html: added style blue2, using utf-8 instead of iso-8859-2
374
+
375
+	* calendar.js: performance under IE (which sucks, by the way)
376
+
377
+	* doc/reference.tex: Sunny added to sponsor list
378
+
379
+	* doc/Calendar.setup.tex: documenting parameter 'electric'
380
+
381
+	* calendar-blue.css, calendar-blue2.css, calendar-brown.css, calendar-green.css, calendar-system.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css:
382
+	fixed IE text size problems
383
+
384
+2004-01-08  Mihai Bazon  <mihai_bazon@yahoo.com>
385
+
386
+	* lang/calendar-pl.js:
387
+	Polish translation updated to UTF-8 (thanks to Artur Filipiak)
388
+
389
+2004-01-07  Mihai Bazon  <mihai_bazon@yahoo.com>
390
+
391
+	* lang/calendar-si.js: updated (David Milost)
392
+
393
+	* lang/calendar-si.js: Slovenian translation (thanks to David Milost)
394
+
395
+2003-12-21  Mihai Bazon  <mihai_bazon@yahoo.com>
396
+
397
+	* TODO: updated TODO list
398
+
399
+	* lang/calendar-de.js: German translation (thanks to Peter Strotmann)
400
+
401
+2003-12-19  Mihai Bazon  <mihai_bazon@yahoo.com>
402
+
403
+	* doc/reference.tex: Thank you, Ian Barrak
404
+
405
+2003-12-18  Mihai Bazon  <mihai_bazon@yahoo.com>
406
+
407
+	* doc/reference.tex: fixed documentation bug (thanks Mike)
408
+
409
+2003-12-05  Mihai Bazon  <mihai_bazon@yahoo.com>
410
+
411
+	* lang/calendar-ko-utf8.js:
412
+	UTF8 version of the Korean language (hopefully correct)
413
+
414
+	* lang/calendar-pl-utf8.js, lang/calendar-pl.js:
415
+	updated Polish translation (thanks to Janusz Piwowarski)
416
+
417
+2003-12-04  Mihai Bazon  <mihai_bazon@yahoo.com>
418
+
419
+	* lang/calendar-fr.js:
420
+	French translation updated (thanks to Angiras Rama)
421
+
422
+2003-11-22  Mihai Bazon  <mihai_bazon@yahoo.com>
423
+
424
+	* lang/calendar-da.js: updated (thanks to Jesper M. Christensen)
425
+
426
+2003-11-20  Mihai Bazon  <mihai_bazon@yahoo.com>
427
+
428
+	* calendar-blue2.css, calendar-tas.css:
429
+	new styles (thanks to Wendall Mosemann for blue2, Mark Lynch for tas)
430
+
431
+	* lang/calendar-lt-utf8.js, lang/calendar-lt.js:
432
+	Lithuanian translation (thanks to Martynas Majeris)
433
+
434
+	* lang/calendar-sp.js: updated
435
+
436
+2003-11-17  Mihai Bazon  <mihai_bazon@yahoo.com>
437
+
438
+	* TODO: added TODO list
439
+
440
+2003-11-14  Mihai Bazon  <mihai_bazon@yahoo.com>
441
+
442
+	* lang/calendar-ko.js: Korean translation (thanks to Yourim Yi)
443
+
444
+2003-11-12  Mihai Bazon  <mihai_bazon@yahoo.com>
445
+
446
+	* lang/calendar-jp.js: small bug fixed (thanks to TAHARA Yusei)
447
+
448
+2003-11-10  Mihai Bazon  <mihai_bazon@yahoo.com>
449
+
450
+	* lang/calendar-fr.js: translation updated, thanks to Florent Ramiere
451
+
452
+	* calendar-setup.js:
453
+	added new parameter: electric (if false then the field will not get updated on each move)
454
+
455
+	* index.html: fixed DOCTYPE
456
+
457
+2003-11-07  Mihai Bazon  <mihai_bazon@yahoo.com>
458
+
459
+	* calendar-setup.js:
460
+	fixed minor problem (maybe we're passing object reference instead of ID for
461
+	the flat calendar parent)
462
+
463
+2003-11-06  Mihai Bazon  <mihai_bazon@yahoo.com>
464
+
465
+	* lang/calendar-fi.js:
466
+	added Finnish translation (thanks to Antti Tuppurainen)
467
+
468
+2003-11-05  Mihai Bazon  <mihai_bazon@yahoo.com>
469
+
470
+	* release-notes.html: fixed typo
471
+
472
+	* doc/reference.tex, index.html, calendar.js: 0.9.5
473
+
474
+	* README: fixed license statement
475
+
476
+	* release-notes.html: updated release notes (0.9.5)
477
+
478
+2003-11-03  Mihai Bazon  <mihai_bazon@yahoo.com>
479
+
480
+	* lang/calendar-de.js:
481
+	updated German translation (thanks to Gerhard Neiner)
482
+
483
+	* calendar-setup.js: fixed license statement
484
+
485
+	* calendar.js: whitespace
486
+
487
+	* calendar.js: fixed license statement
488
+
489
+	* calendar.js:
490
+	fixed positioning problem when input field is inside scrolled divs
491
+
492
+2003-11-01  Mihai Bazon  <mihai_bazon@yahoo.com>
493
+
494
+	* lang/calendar-af.js: Afrikaan language (thanks to Derick Olivier)
495
+
496
+2003-10-31  Mihai Bazon  <mihai_bazon@yahoo.com>
497
+
498
+	* lang/calendar-it.js:
499
+	updated IT translation (thanks to Christian Blaser)
500
+
501
+	* lang/calendar-es.js: updated ES translation, thanks to Raul
502
+
503
+2003-10-30  Mihai Bazon  <mihai_bazon@yahoo.com>
504
+
505
+	* lang/calendar-hu.js: updated thanks to Istvan Karaszi
506
+
507
+	* index.html, simple-1.html, simple-2.html, simple-3.html:
508
+	switched to utf-8 all encodings
509
+
510
+	* lang/calendar-sk.js:
511
+	added Slovak translation (thanks to Peter Valach)
512
+
513
+	* lang/calendar-ro.js: switched to utf-8
514
+
515
+2003-10-29  Mihai Bazon  <mihai_bazon@yahoo.com>
516
+
517
+	* lang/calendar-es.js:
518
+	updated translation, thanks to Jose Ma. Martinez Miralles
519
+
520
+	* doc/reference.tex:
521
+	fixed the footnote problem (thanks Dominique de Waleffe for the tip)
522
+
523
+	* lang/calendar-ro.js: fixed typo
524
+
525
+	* lang/calendar-sv.js: oops, license should be LGPL
526
+
527
+	* lang/calendar-sw.js: new swedish translation is calendar-sv.js
528
+
529
+	* menuarrow.gif, menuarrow.png:
530
+	oops, forgot little drop-down menu arrows
531
+
532
+	* lang/calendar-sv.js: swedish translation thanks to Leonard Norrgard
533
+
534
+	* index.html: oops, some other minor changes
535
+
536
+	* index.html, release-notes.html:
537
+	latest changes in release-notes and index page for 0.9.4
538
+
539
+	* doc/reference.tex, calendar.js:
540
+	added %s date format (# of seconds since Epoch)
541
+
542
+	* calendar.js:
543
+	A click on TODAY will not close the calendar, even in single-click mode
544
+
545
+2003-10-28  Mihai Bazon  <mihai_bazon@yahoo.com>
546
+
547
+	* index.html: previous cal.html
548
+
549
+	* cal.html: moved to index.html
550
+
551
+	* README, cal.html, doc/reference.tex, lang/calendar-de.js, lang/calendar-en.js, lang/calendar-ro.js, release-notes.html:
552
+	LGPL license, forever.
553
+
554
+	* doc/Calendar.setup.tex, simple-1.html:
555
+	doc updated for the onUpdate parameter to Calendar.setup
556
+
557
+2003-10-26  Mihai Bazon  <mihai_bazon@yahoo.com>
558
+
559
+	* calendar.js: fixed bug (correct display of the dropdown menus)
560
+
561
+	* doc/Calendar.setup.tex, doc/reference.tex, lang/calendar-de.js, lang/calendar-en.js, lang/calendar-ro.js, README, cal.html, calendar-blue.css, calendar-brown.css, calendar-green.css, calendar-setup.js, calendar-system.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css, calendar.js, release-notes.html, simple-1.html, simple-3.html:
562
+	lots of changes for the 0.9.4 release (see the release-notes.html)
563
+
564
+2003-10-15  Mihai Bazon  <mihai_bazon@yahoo.com>
565
+
566
+	* doc/reference.tex:
567
+	documentation updated for 0.9.4 (not yet finished though)
568
+
569
+2003-10-07  Mihai Bazon  <mihai_bazon@yahoo.com>
570
+
571
+	* calendar.js, doc/reference.tex, release-notes.html, README, cal.html, calendar-setup.js:
572
+	modified project website
573
+
574
+2003-10-06  Mihai Bazon  <mihai_bazon@yahoo.com>
575
+
576
+	* calendar-setup.js:
577
+	added some properties (onSelect, onClose, date) (thanks altblue)
578
+
579
+2003-09-24  Mihai Bazon  <mihai_bazon@yahoo.com>
580
+
581
+	* simple-3.html: dateIsSpecial does not need the "date" argument ;-)
582
+
583
+2003-09-24  fsoft  <fsoft@mishoo>
584
+
585
+	* calendar.js, simple-3.html:
586
+	added year, month, day to getDateStatus() function
587
+
588
+2003-09-24  Mihai Bazon  <mihai_bazon@yahoo.com>
589
+
590
+	* simple-3.html: example on how to use special dates
591
+
592
+	* calendar-setup.js, calendar.js, simple-1.html:
593
+	support for special dates (thanks fabio)
594
+
595
+2003-09-17  Mihai Bazon  <mihai_bazon@yahoo.com>
596
+
597
+	* doc/reference.tex: fixed error in section 3.
598
+
599
+2003-08-01  Mihai Bazon  <mihai_bazon@yahoo.com>
600
+
601
+	* lang/calendar-jp.js: added Japanese translation
602
+
603
+2003-07-16  Mihai Bazon  <mihai_bazon@yahoo.com>
604
+
605
+	* simple-1.html: fixed problem with first example [IE,Opera]
606
+
607
+2003-07-09  Mihai Bazon  <mihai_bazon@yahoo.com>
608
+
609
+	* doc/Calendar.setup.tex: fixed typo (closing parenthesis)
610
+
611
+	* lang/calendar-de.js:
612
+	added German translation, thanks to Hartwig Weinkauf
613
+
614
+2003-07-08  Mihai Bazon  <mihai_bazon@yahoo.com>
615
+
616
+	* cal.html: added link to release-notes
617
+
618
+	* release-notes.html: 0.9.3 release notes
619
+
620
+	* make-release.pl:
621
+	Script to create distribution archive.  It needs some additional packages:
622
+
623
+	  - LaTeX
624
+	  - tex2page
625
+	  - jscrunch (JS compressor)
626
+
627
+	* doc/html/makedoc.sh, doc/html/reference.css, doc/reference.tex, doc/makedoc.sh:
628
+	documentation updates...
629
+
630
+	* calendar.js: added semicolon to make the code "compressible"
631
+
632
+2003-07-06  Mihai Bazon  <mihai_bazon@yahoo.com>
633
+
634
+	* doc/reference.tex: spell checked
635
+
636
+	* doc/reference.tex: [minor] changed credits order
637
+
638
+	* doc/reference.tex: various improvements and additions
639
+
640
+	* doc/html/reference.css: minor eye-candy tweaks
641
+
642
+2003-07-05  Mihai Bazon  <mihai_bazon@yahoo.com>
643
+
644
+	* doc/html/Calendar.setup.html.tex, doc/html/makedoc.sh, doc/html/reference.css, doc/html/reference.t2p, doc/hyperref.cfg, doc/makedoc.sh, doc/reference.tex, doc/Calendar.setup.tex, doc/Calendar.setup.pdf.tex:
645
+	full documentation in LaTeX, for PDF and HTML formats
646
+
647
+	* simple-2.html:
648
+	added demonstration of flat calendar with Calendar.setup
649
+
650
+	* simple-1.html:
651
+	modified some links, added link to documentation, added demonstration of
652
+	disableFunc property
653
+
654
+	* calendar-setup.js: added the ability to create flat calendar too
655
+
656
+	* cal.html: added links to documentation and simple-[12].html pages
657
+
658
+	* README: up-to-date...
659
+
660
+	* calendar-setup.html: removed: the documentation is unified
661
+
662
+2003-07-03  Mihai Bazon  <mihai_bazon@yahoo.com>
663
+
664
+	* cal.html: some links to newly added files
665
+
666
+	* calendar-setup.html, calendar-setup.js, img.gif, simple-1.html:
667
+	added some files to simplify calendar creation for non-(JS)-programmers
668
+
669
+	* lang/calendar-zh.js: added simplified chinese (thanks ATang)
670
+
671
+2003-07-02  Mihai Bazon  <mihai_bazon@yahoo.com>
672
+
673
+	* calendar.js: * "yy"-related... [small fix]
674
+
675
+	* calendar.js:
676
+	* #721833 fixed (yy format will understand years prior to 29 as 20xx)
677
+
678
+	* calendar.js: * added refresh() function
679
+
680
+	* calendar.js: * fixed bug when in single click mode
681
+	* added alignment options to "showAtElement" member function
682
+
683
+2003-06-25  Mihai Bazon  <mihai_bazon@yahoo.com>
684
+
685
+	* lang/calendar-pt.js:
686
+	added portugese translation (thanks Nuno Barreto)
687
+
688
+2003-06-24  Mihai Bazon  <mihai_bazon@yahoo.com>
689
+
690
+	* calendar.js:
691
+	call user handler when the date was changed using the keyboard
692
+
693
+	* bugtest-hidden-selects.html:
694
+	file to test bug with hidden select-s (thanks Ying Zhang for reporting and for this test file)
695
+
696
+	* lang/calendar-hr-utf8.js:
697
+	added croatian translation in utf8 (thanks Krunoslav Zubrinic)
698
+
699
+2003-06-23  Mihai Bazon  <mihai_bazon@yahoo.com>
700
+
701
+	* lang/calendar-hu.js: added hungarian translation
702
+
703
+	* lang/calendar-hr.js:
704
+	added croatian translation (thanks to Krunoslav Zubrinic)
705
+
706
+2003-06-22  Mihai Bazon  <mihai_bazon@yahoo.com>
707
+
708
+	* calendar.js:
709
+	* #723335 fixed (clicking TODAY will not select the today date if the
710
+	  disabledHandler rejects it)
711
+
712
+	* cal.html: * new code for to work with fix for bug #703238
713
+	* switch to new version
714
+
715
+	* calendar.js:
716
+	* some patches to make code compatible with Opera 7 (well, almost compatible)
717
+	* bug #703238 fixed (fix breaks compatibility with older code that uses
718
+	  calendar in single-click mode)
719
+	* bug #703814 fixed
720
+
721
+2003-04-09  Mihai Bazon  <mihai_bazon@yahoo.com>
722
+
723
+	* lang/calendar-tr.js: added turkish lang file
724
+
725
+2003-03-19  Mihai Bazon  <mihai_bazon@yahoo.com>
726
+
727
+	* lang/calendar-ru.js: russian translation added
728
+
729
+	* lang/calendar-no.js: norwegian translation added
730
+
731
+2003-03-15  Mihai Bazon  <mihai_bazon@yahoo.com>
732
+
733
+	* lang/calendar-no.js: norwegian translation
734
+
735
+2003-03-12  Mihai Bazon  <mihai_bazon@yahoo.com>
736
+
737
+	* lang/calendar-pl.js: added polish translation
738
+
739
+2003-03-11  Mihai Bazon  <mihai_bazon@yahoo.com>
740
+
741
+	* calendar.js:
742
+	bugfix in parseDate (added base to parseInt, thanks Alan!)
743
+
744
+2003-03-05  Mihai Bazon  <mihai_bazon@yahoo.com>
745
+
746
+	* calendar.js, lang/calendar-br.js, lang/calendar-ca.js, lang/calendar-cs-win.js, lang/calendar-da.js, lang/calendar-du.js, lang/calendar-el.js, lang/calendar-en.js, lang/calendar-es.js, lang/calendar-fr.js, lang/calendar-it.js, lang/calendar-nl.js, lang/calendar-ro.js, lang/calendar-sp.js, lang/calendar-sw.js:
747
+	New file.
748
+
749
+	* calendar.js, lang/calendar-br.js, lang/calendar-ca.js, lang/calendar-cs-win.js, lang/calendar-da.js, lang/calendar-du.js, lang/calendar-el.js, lang/calendar-en.js, lang/calendar-es.js, lang/calendar-fr.js, lang/calendar-it.js, lang/calendar-nl.js, lang/calendar-ro.js, lang/calendar-sp.js, lang/calendar-sw.js:
750
+	moved to CVS at sourceforge.net
751
+	release: 0.9.2 + new language packs
752
+
753
+
754
+	* README, cal.html, calendar-blue.css, calendar-brown.css, calendar-green.css, calendar-system.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css:
755
+	New file.
756
+
757
+	* README, cal.html, calendar-blue.css, calendar-brown.css, calendar-green.css, calendar-system.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css:
758
+	moved to CVS at sourceforge.net
759
+	release: 0.9.2 + new language packs
760
+
761
+

+ 33
- 0
jscalendar/README Просмотреть файл

@@ -0,0 +1,33 @@
1
+The DHTML Calendar
2
+-------------------
3
+
4
+  Author: Mihai Bazon, <mihai_bazon@yahoo.com>
5
+          http://dynarch.com/mishoo/
6
+
7
+  This program is free software published under the
8
+  terms of the GNU Lesser General Public License.
9
+
10
+  For the entire license text please refer to
11
+  http://www.gnu.org/licenses/lgpl.html
12
+
13
+Contents
14
+---------
15
+
16
+  calendar.js     -- the main program file
17
+  lang/*.js       -- internalization files
18
+  *.css           -- color themes
19
+  cal.html        -- example usage file
20
+  doc/            -- documentation, in PDF and HTML
21
+  simple-1.html   -- quick setup examples [popup calendars]
22
+  simple-2.html   -- quick setup example for flat calendar
23
+  calendar.php    -- PHP wrapper
24
+  test.php        -- test file for the PHP wrapper
25
+
26
+Homepage
27
+---------
28
+
29
+  For details and latest versions please refer to calendar
30
+  homepage, located on my website:
31
+
32
+    http://dynarch.com/mishoo/calendar.epl
33
+

+ 108
- 0
jscalendar/bugtest-hidden-selects.html Просмотреть файл

@@ -0,0 +1,108 @@
1
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ro" lang="ro">
2
+
3
+<head>
4
+<title>Bug</title>
5
+<link rel="stylesheet" type="text/css" media="all" href="calendar-win2k-1.css" title="win2k-1" />
6
+
7
+<!-- import the calendar script -->
8
+<script type="text/javascript" src="calendar.js"></script>
9
+
10
+<!-- import the language module -->
11
+<script type="text/javascript" src="lang/calendar-en.js"></script>
12
+
13
+<!-- helper script that uses the calendar -->
14
+<script type="text/javascript">
15
+// This function gets called when the end-user clicks on some date.
16
+function selected(cal, date) {
17
+  cal.sel.value = date; // just update the date in the input field.
18
+  if (cal.sel.id == "sel1" || cal.sel.id == "sel3")
19
+    // if we add this call we close the calendar on single-click.
20
+    // just to exemplify both cases, we are using this only for the 1st
21
+    // and the 3rd field, while 2nd and 4th will still require double-click.
22
+    cal.callCloseHandler();
23
+}
24
+
25
+// And this gets called when the end-user clicks on the _selected_ date,
26
+// or clicks on the "Close" button.  It just hides the calendar without
27
+// destroying it.
28
+function closeHandler(cal) {
29
+  cal.hide();                        // hide the calendar
30
+}
31
+
32
+// This function shows the calendar under the element having the given id.
33
+// It takes care of catching "mousedown" signals on document and hiding the
34
+// calendar if the click was outside.
35
+function showCalendar(id, format) {
36
+  var el = document.getElementById(id);
37
+  if (calendar != null) {
38
+    // we already have some calendar created
39
+    calendar.hide();                 // so we hide it first.
40
+  } else {
41
+    // first-time call, create the calendar.
42
+    var cal = new Calendar(false, null, selected, closeHandler);
43
+    // uncomment the following line to hide the week numbers
44
+    // cal.weekNumbers = false;
45
+    calendar = cal;                  // remember it in the global var
46
+    cal.setRange(1900, 2070);        // min/max year allowed.
47
+    cal.create();
48
+  }
49
+  calendar.setDateFormat(format);    // set the specified date format
50
+  calendar.parseDate(el.value);      // try to parse the text in field
51
+  calendar.sel = el;                 // inform it what input field we use
52
+  calendar.showAtElement(el);        // show the calendar below it
53
+
54
+  return false;
55
+}
56
+
57
+var MINUTE = 60 * 1000;
58
+var HOUR = 60 * MINUTE;
59
+var DAY = 24 * HOUR;
60
+var WEEK = 7 * DAY;
61
+
62
+// If this handler returns true then the "date" given as
63
+// parameter will be disabled.  In this example we enable
64
+// only days within a range of 10 days from the current
65
+// date.
66
+// You can use the functions date.getFullYear() -- returns the year
67
+// as 4 digit number, date.getMonth() -- returns the month as 0..11,
68
+// and date.getDate() -- returns the date of the month as 1..31, to
69
+// make heavy calculations here.  However, beware that this function
70
+// should be very fast, as it is called for each day in a month when
71
+// the calendar is (re)constructed.
72
+function isDisabled(date) {
73
+  var today = new Date();
74
+  return (Math.abs(date.getTime() - today.getTime()) / DAY) > 10;
75
+}
76
+</script>
77
+</head>
78
+
79
+<body>
80
+<form>
81
+<b>Date:</b>
82
+<br>
83
+<input type="text" name="date1" id="sel1" size="30">
84
+<input type="button" value="..." onclick="return showCalendar('sel1', 'y-m-d');">
85
+<p>
86
+<br>
87
+<br><b>Visible &lt;select&gt;, hides and unhides as expected</b>
88
+<br>
89
+<select name="foo" multiple>
90
+<option value="1">can use the functions date.getFullYear() -- returns</option>
91
+<option value="2">4 digit number, date.getMonth() -- returns the month</option>
92
+<option value="3">heavy calculations here.  However, beware that this</option>
93
+</select>
94
+
95
+<p>
96
+<br><b>Hidden &lt;select&gt;, it should stay hidden (but doesn't)</b>
97
+<br>
98
+<select name="foo2" multiple style="visibility: hidden">
99
+<option value="1">this should</option>
100
+<option value="2">remain hidden right?</option>
101
+</select>
102
+
103
+<p>
104
+<br><b>Hidden textbox below, it stays hidden as expected</b>
105
+<br>
106
+<input type="text" name="foo3" value="this stays hidden just fine" style="visibility: hidden">
107
+</form>
108
+</body></html>

+ 232
- 0
jscalendar/calendar-blue.css Просмотреть файл

@@ -0,0 +1,232 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+div.calendar { position: relative; }
4
+
5
+.calendar, .calendar table {
6
+  border: 1px solid #556;
7
+  font-size: 11px;
8
+  color: #000;
9
+  cursor: default;
10
+  background: #eef;
11
+  font-family: tahoma,verdana,sans-serif;
12
+}
13
+
14
+/* Header part -- contains navigation buttons and day names. */
15
+
16
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
17
+  text-align: center;    /* They are the navigation buttons */
18
+  padding: 2px;          /* Make the buttons seem like they're pressing */
19
+}
20
+
21
+.calendar .nav {
22
+  background: #778 url(menuarrow.gif) no-repeat 100% 100%;
23
+}
24
+
25
+.calendar thead .title { /* This holds the current "month, year" */
26
+  font-weight: bold;      /* Pressing it will take you to the current date */
27
+  text-align: center;
28
+  background: #fff;
29
+  color: #000;
30
+  padding: 2px;
31
+}
32
+
33
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
34
+  background: #778;
35
+  color: #fff;
36
+}
37
+
38
+.calendar thead .daynames { /* Row <TR> containing the day names */
39
+  background: #bdf;
40
+}
41
+
42
+.calendar thead .name { /* Cells <TD> containing the day names */
43
+  border-bottom: 1px solid #556;
44
+  padding: 2px;
45
+  text-align: center;
46
+  color: #000;
47
+}
48
+
49
+.calendar thead .weekend { /* How a weekend day name shows in header */
50
+  color: #a66;
51
+}
52
+
53
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
54
+  background-color: #aaf;
55
+  color: #000;
56
+  border: 1px solid #04f;
57
+  padding: 1px;
58
+}
59
+
60
+.calendar thead .active { /* Active (pressed) buttons in header */
61
+  background-color: #77c;
62
+  padding: 2px 0px 0px 2px;
63
+}
64
+
65
+/* The body part -- contains all the days in month. */
66
+
67
+.calendar tbody .day { /* Cells <TD> containing month days dates */
68
+  width: 2em;
69
+  color: #456;
70
+  text-align: right;
71
+  padding: 2px 4px 2px 2px;
72
+}
73
+.calendar tbody .day.othermonth {
74
+  font-size: 80%;
75
+  color: #bbb;
76
+}
77
+.calendar tbody .day.othermonth.oweekend {
78
+  color: #fbb;
79
+}
80
+
81
+.calendar table .wn {
82
+  padding: 2px 3px 2px 2px;
83
+  border-right: 1px solid #000;
84
+  background: #bdf;
85
+}
86
+
87
+.calendar tbody .rowhilite td {
88
+  background: #def;
89
+}
90
+
91
+.calendar tbody .rowhilite td.wn {
92
+  background: #eef;
93
+}
94
+
95
+.calendar tbody td.hilite { /* Hovered cells <TD> */
96
+  background: #def;
97
+  padding: 1px 3px 1px 1px;
98
+  border: 1px solid #bbb;
99
+}
100
+
101
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
102
+  background: #cde;
103
+  padding: 2px 2px 0px 2px;
104
+}
105
+
106
+.calendar tbody td.selected { /* Cell showing today date */
107
+  font-weight: bold;
108
+  border: 1px solid #000;
109
+  padding: 1px 3px 1px 1px;
110
+  background: #fff;
111
+  color: #000;
112
+}
113
+
114
+.calendar tbody td.weekend { /* Cells showing weekend days */
115
+  color: #a66;
116
+}
117
+
118
+.calendar tbody td.today { /* Cell showing selected date */
119
+  font-weight: bold;
120
+  color: #00f;
121
+}
122
+
123
+.calendar tbody .disabled { color: #999; }
124
+
125
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
126
+  visibility: hidden;
127
+}
128
+
129
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
130
+  display: none;
131
+}
132
+
133
+/* The footer part -- status bar and "Close" button */
134
+
135
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
136
+  text-align: center;
137
+  background: #556;
138
+  color: #fff;
139
+}
140
+
141
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
142
+  background: #fff;
143
+  color: #445;
144
+  border-top: 1px solid #556;
145
+  padding: 1px;
146
+}
147
+
148
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
149
+  background: #aaf;
150
+  border: 1px solid #04f;
151
+  color: #000;
152
+  padding: 1px;
153
+}
154
+
155
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
156
+  background: #77c;
157
+  padding: 2px 0px 0px 2px;
158
+}
159
+
160
+/* Combo boxes (menus that display months/years for direct selection) */
161
+
162
+.calendar .combo {
163
+  position: absolute;
164
+  display: none;
165
+  top: 0px;
166
+  left: 0px;
167
+  width: 4em;
168
+  cursor: default;
169
+  border: 1px solid #655;
170
+  background: #def;
171
+  color: #000;
172
+  font-size: 90%;
173
+  z-index: 100;
174
+}
175
+
176
+.calendar .combo .label,
177
+.calendar .combo .label-IEfix {
178
+  text-align: center;
179
+  padding: 1px;
180
+}
181
+
182
+.calendar .combo .label-IEfix {
183
+  width: 4em;
184
+}
185
+
186
+.calendar .combo .hilite {
187
+  background: #acf;
188
+}
189
+
190
+.calendar .combo .active {
191
+  border-top: 1px solid #46a;
192
+  border-bottom: 1px solid #46a;
193
+  background: #eef;
194
+  font-weight: bold;
195
+}
196
+
197
+.calendar td.time {
198
+  border-top: 1px solid #000;
199
+  padding: 1px 0px;
200
+  text-align: center;
201
+  background-color: #f4f0e8;
202
+}
203
+
204
+.calendar td.time .hour,
205
+.calendar td.time .minute,
206
+.calendar td.time .ampm {
207
+  padding: 0px 3px 0px 4px;
208
+  border: 1px solid #889;
209
+  font-weight: bold;
210
+  background-color: #fff;
211
+}
212
+
213
+.calendar td.time .ampm {
214
+  text-align: center;
215
+}
216
+
217
+.calendar td.time .colon {
218
+  padding: 0px 2px 0px 3px;
219
+  font-weight: bold;
220
+}
221
+
222
+.calendar td.time span.hilite {
223
+  border-color: #000;
224
+  background-color: #667;
225
+  color: #fff;
226
+}
227
+
228
+.calendar td.time span.active {
229
+  border-color: #f00;
230
+  background-color: #000;
231
+  color: #0f0;
232
+}

+ 236
- 0
jscalendar/calendar-blue2.css Просмотреть файл

@@ -0,0 +1,236 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+div.calendar { position: relative; }
4
+
5
+.calendar, .calendar table {
6
+  border: 1px solid #206A9B;
7
+  font-size: 11px;
8
+  color: #000;
9
+  cursor: default;
10
+  background: #F1F8FC;
11
+  font-family: tahoma,verdana,sans-serif;
12
+}
13
+
14
+/* Header part -- contains navigation buttons and day names. */
15
+
16
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
17
+  text-align: center;    /* They are the navigation buttons */
18
+  padding: 2px;          /* Make the buttons seem like they're pressing */
19
+}
20
+
21
+.calendar .nav {
22
+  background: #007ED1 url(menuarrow2.gif) no-repeat 100% 100%;
23
+}
24
+
25
+.calendar thead .title { /* This holds the current "month, year" */
26
+  font-weight: bold;      /* Pressing it will take you to the current date */
27
+  text-align: center;
28
+  background: #000;
29
+  color: #fff;
30
+  padding: 2px;
31
+}
32
+
33
+.calendar thead tr { /* Row <TR> containing navigation buttons */
34
+  background: #007ED1;
35
+  color: #fff;
36
+}
37
+
38
+.calendar thead .daynames { /* Row <TR> containing the day names */
39
+  background: #C7E1F3;
40
+}
41
+
42
+.calendar thead .name { /* Cells <TD> containing the day names */
43
+  border-bottom: 1px solid #206A9B;
44
+  padding: 2px;
45
+  text-align: center;
46
+  color: #000;
47
+}
48
+
49
+.calendar thead .weekend { /* How a weekend day name shows in header */
50
+  color: #a66;
51
+}
52
+
53
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
54
+  background-color: #34ABFA;
55
+  color: #000;
56
+  border: 1px solid #016DC5;
57
+  padding: 1px;
58
+}
59
+
60
+.calendar thead .active { /* Active (pressed) buttons in header */
61
+  background-color: #006AA9;
62
+  border: 1px solid #008AFF;
63
+  padding: 2px 0px 0px 2px;
64
+}
65
+
66
+/* The body part -- contains all the days in month. */
67
+
68
+.calendar tbody .day { /* Cells <TD> containing month days dates */
69
+  width: 2em;
70
+  color: #456;
71
+  text-align: right;
72
+  padding: 2px 4px 2px 2px;
73
+}
74
+.calendar tbody .day.othermonth {
75
+  font-size: 80%;
76
+  color: #bbb;
77
+}
78
+.calendar tbody .day.othermonth.oweekend {
79
+  color: #fbb;
80
+}
81
+
82
+.calendar table .wn {
83
+  padding: 2px 3px 2px 2px;
84
+  border-right: 1px solid #000;
85
+  background: #C7E1F3;
86
+}
87
+
88
+.calendar tbody .rowhilite td {
89
+  background: #def;
90
+}
91
+
92
+.calendar tbody .rowhilite td.wn {
93
+  background: #F1F8FC;
94
+}
95
+
96
+.calendar tbody td.hilite { /* Hovered cells <TD> */
97
+  background: #def;
98
+  padding: 1px 3px 1px 1px;
99
+  border: 1px solid #8FC4E8;
100
+}
101
+
102
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
103
+  background: #cde;
104
+  padding: 2px 2px 0px 2px;
105
+}
106
+
107
+.calendar tbody td.selected { /* Cell showing today date */
108
+  font-weight: bold;
109
+  border: 1px solid #000;
110
+  padding: 1px 3px 1px 1px;
111
+  background: #fff;
112
+  color: #000;
113
+}
114
+
115
+.calendar tbody td.weekend { /* Cells showing weekend days */
116
+  color: #a66;
117
+}
118
+
119
+.calendar tbody td.today { /* Cell showing selected date */
120
+  font-weight: bold;
121
+  color: #D50000;
122
+}
123
+
124
+.calendar tbody .disabled { color: #999; }
125
+
126
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
127
+  visibility: hidden;
128
+}
129
+
130
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
131
+  display: none;
132
+}
133
+
134
+/* The footer part -- status bar and "Close" button */
135
+
136
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
137
+  text-align: center;
138
+  background: #206A9B;
139
+  color: #fff;
140
+}
141
+
142
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
143
+  background: #000;
144
+  color: #fff;
145
+  border-top: 1px solid #206A9B;
146
+  padding: 1px;
147
+}
148
+
149
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
150
+  background: #B8DAF0;
151
+  border: 1px solid #178AEB;
152
+  color: #000;
153
+  padding: 1px;
154
+}
155
+
156
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
157
+  background: #006AA9;
158
+  padding: 2px 0px 0px 2px;
159
+}
160
+
161
+/* Combo boxes (menus that display months/years for direct selection) */
162
+
163
+.calendar .combo {
164
+  position: absolute;
165
+  display: none;
166
+  top: 0px;
167
+  left: 0px;
168
+  width: 4em;
169
+  cursor: default;
170
+  border: 1px solid #655;
171
+  background: #def;
172
+  color: #000;
173
+  font-size: 90%;
174
+  z-index: 100;
175
+}
176
+
177
+.calendar .combo .label,
178
+.calendar .combo .label-IEfix {
179
+  text-align: center;
180
+  padding: 1px;
181
+}
182
+
183
+.calendar .combo .label-IEfix {
184
+  width: 4em;
185
+}
186
+
187
+.calendar .combo .hilite {
188
+  background: #34ABFA;
189
+  border-top: 1px solid #46a;
190
+  border-bottom: 1px solid #46a;
191
+  font-weight: bold;
192
+}
193
+
194
+.calendar .combo .active {
195
+  border-top: 1px solid #46a;
196
+  border-bottom: 1px solid #46a;
197
+  background: #F1F8FC;
198
+  font-weight: bold;
199
+}
200
+
201
+.calendar td.time {
202
+  border-top: 1px solid #000;
203
+  padding: 1px 0px;
204
+  text-align: center;
205
+  background-color: #E3F0F9;
206
+}
207
+
208
+.calendar td.time .hour,
209
+.calendar td.time .minute,
210
+.calendar td.time .ampm {
211
+  padding: 0px 3px 0px 4px;
212
+  border: 1px solid #889;
213
+  font-weight: bold;
214
+  background-color: #F1F8FC;
215
+}
216
+
217
+.calendar td.time .ampm {
218
+  text-align: center;
219
+}
220
+
221
+.calendar td.time .colon {
222
+  padding: 0px 2px 0px 3px;
223
+  font-weight: bold;
224
+}
225
+
226
+.calendar td.time span.hilite {
227
+  border-color: #000;
228
+  background-color: #267DB7;
229
+  color: #fff;
230
+}
231
+
232
+.calendar td.time span.active {
233
+  border-color: red;
234
+  background-color: #000;
235
+  color: #A5FF00;
236
+}

+ 225
- 0
jscalendar/calendar-brown.css Просмотреть файл

@@ -0,0 +1,225 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+div.calendar { position: relative; }
4
+
5
+.calendar, .calendar table {
6
+  border: 1px solid #655;
7
+  font-size: 11px;
8
+  color: #000;
9
+  cursor: default;
10
+  background: #ffd;
11
+  font-family: tahoma,verdana,sans-serif;
12
+}
13
+
14
+/* Header part -- contains navigation buttons and day names. */
15
+
16
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
17
+  text-align: center;    /* They are the navigation buttons */
18
+  padding: 2px;          /* Make the buttons seem like they're pressing */
19
+}
20
+
21
+.calendar .nav {
22
+  background: #edc url(menuarrow.gif) no-repeat 100% 100%;
23
+}
24
+
25
+.calendar thead .title { /* This holds the current "month, year" */
26
+  font-weight: bold;      /* Pressing it will take you to the current date */
27
+  text-align: center;
28
+  background: #654;
29
+  color: #fed;
30
+  padding: 2px;
31
+}
32
+
33
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
34
+  background: #edc;
35
+  color: #000;
36
+}
37
+
38
+.calendar thead .name { /* Cells <TD> containing the day names */
39
+  border-bottom: 1px solid #655;
40
+  padding: 2px;
41
+  text-align: center;
42
+  color: #000;
43
+}
44
+
45
+.calendar thead .weekend { /* How a weekend day name shows in header */
46
+  color: #f00;
47
+}
48
+
49
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
50
+  background-color: #faa;
51
+  color: #000;
52
+  border: 1px solid #f40;
53
+  padding: 1px;
54
+}
55
+
56
+.calendar thead .active { /* Active (pressed) buttons in header */
57
+  background-color: #c77;
58
+  padding: 2px 0px 0px 2px;
59
+}
60
+
61
+.calendar thead .daynames { /* Row <TR> containing the day names */
62
+  background: #fed;
63
+}
64
+
65
+/* The body part -- contains all the days in month. */
66
+
67
+.calendar tbody .day { /* Cells <TD> containing month days dates */
68
+  width: 2em;
69
+  text-align: right;
70
+  padding: 2px 4px 2px 2px;
71
+}
72
+.calendar tbody .day.othermonth {
73
+  font-size: 80%;
74
+  color: #bbb;
75
+}
76
+.calendar tbody .day.othermonth.oweekend {
77
+  color: #fbb;
78
+}
79
+
80
+.calendar table .wn {
81
+  padding: 2px 3px 2px 2px;
82
+  border-right: 1px solid #000;
83
+  background: #fed;
84
+}
85
+
86
+.calendar tbody .rowhilite td {
87
+  background: #ddf;
88
+}
89
+
90
+.calendar tbody .rowhilite td.wn {
91
+  background: #efe;
92
+}
93
+
94
+.calendar tbody td.hilite { /* Hovered cells <TD> */
95
+  background: #ffe;
96
+  padding: 1px 3px 1px 1px;
97
+  border: 1px solid #bbb;
98
+}
99
+
100
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
101
+  background: #ddc;
102
+  padding: 2px 2px 0px 2px;
103
+}
104
+
105
+.calendar tbody td.selected { /* Cell showing today date */
106
+  font-weight: bold;
107
+  border: 1px solid #000;
108
+  padding: 1px 3px 1px 1px;
109
+  background: #fea;
110
+}
111
+
112
+.calendar tbody td.weekend { /* Cells showing weekend days */
113
+  color: #f00;
114
+}
115
+
116
+.calendar tbody td.today { font-weight: bold; }
117
+
118
+.calendar tbody .disabled { color: #999; }
119
+
120
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
121
+  visibility: hidden;
122
+}
123
+
124
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
125
+  display: none;
126
+}
127
+
128
+/* The footer part -- status bar and "Close" button */
129
+
130
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
131
+  text-align: center;
132
+  background: #988;
133
+  color: #000;
134
+}
135
+
136
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
137
+  border-top: 1px solid #655;
138
+  background: #dcb;
139
+  color: #840;
140
+}
141
+
142
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
143
+  background: #faa;
144
+  border: 1px solid #f40;
145
+  padding: 1px;
146
+}
147
+
148
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
149
+  background: #c77;
150
+  padding: 2px 0px 0px 2px;
151
+}
152
+
153
+/* Combo boxes (menus that display months/years for direct selection) */
154
+
155
+.calendar .combo {
156
+  position: absolute;
157
+  display: none;
158
+  top: 0px;
159
+  left: 0px;
160
+  width: 4em;
161
+  cursor: default;
162
+  border: 1px solid #655;
163
+  background: #ffe;
164
+  color: #000;
165
+  font-size: 90%;
166
+  z-index: 100;
167
+}
168
+
169
+.calendar .combo .label,
170
+.calendar .combo .label-IEfix {
171
+  text-align: center;
172
+  padding: 1px;
173
+}
174
+
175
+.calendar .combo .label-IEfix {
176
+  width: 4em;
177
+}
178
+
179
+.calendar .combo .hilite {
180
+  background: #fc8;
181
+}
182
+
183
+.calendar .combo .active {
184
+  border-top: 1px solid #a64;
185
+  border-bottom: 1px solid #a64;
186
+  background: #fee;
187
+  font-weight: bold;
188
+}
189
+
190
+.calendar td.time {
191
+  border-top: 1px solid #a88;
192
+  padding: 1px 0px;
193
+  text-align: center;
194
+  background-color: #fed;
195
+}
196
+
197
+.calendar td.time .hour,
198
+.calendar td.time .minute,
199
+.calendar td.time .ampm {
200
+  padding: 0px 3px 0px 4px;
201
+  border: 1px solid #988;
202
+  font-weight: bold;
203
+  background-color: #fff;
204
+}
205
+
206
+.calendar td.time .ampm {
207
+  text-align: center;
208
+}
209
+
210
+.calendar td.time .colon {
211
+  padding: 0px 2px 0px 3px;
212
+  font-weight: bold;
213
+}
214
+
215
+.calendar td.time span.hilite {
216
+  border-color: #000;
217
+  background-color: #866;
218
+  color: #fff;
219
+}
220
+
221
+.calendar td.time span.active {
222
+  border-color: #f00;
223
+  background-color: #000;
224
+  color: #0f0;
225
+}

+ 229
- 0
jscalendar/calendar-green.css Просмотреть файл

@@ -0,0 +1,229 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+div.calendar { position: relative; }
4
+
5
+.calendar, .calendar table {
6
+  border: 1px solid #565;
7
+  font-size: 11px;
8
+  color: #000;
9
+  cursor: default;
10
+  background: #efe;
11
+  font-family: tahoma,verdana,sans-serif;
12
+}
13
+
14
+/* Header part -- contains navigation buttons and day names. */
15
+
16
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
17
+  text-align: center;    /* They are the navigation buttons */
18
+  padding: 2px;          /* Make the buttons seem like they're pressing */
19
+  background: #676;
20
+  color: #fff;
21
+  font-size: 90%;
22
+}
23
+
24
+.calendar .nav {
25
+  background: #676 url(menuarrow.gif) no-repeat 100% 100%;
26
+}
27
+
28
+.calendar thead .title { /* This holds the current "month, year" */
29
+  font-weight: bold;      /* Pressing it will take you to the current date */
30
+  text-align: center;
31
+  padding: 2px;
32
+  background: #250;
33
+  color: #efa;
34
+}
35
+
36
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
37
+}
38
+
39
+.calendar thead .name { /* Cells <TD> containing the day names */
40
+  border-bottom: 1px solid #565;
41
+  padding: 2px;
42
+  text-align: center;
43
+  color: #000;
44
+}
45
+
46
+.calendar thead .weekend { /* How a weekend day name shows in header */
47
+  color: #a66;
48
+}
49
+
50
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
51
+  background-color: #afa;
52
+  color: #000;
53
+  border: 1px solid #084;
54
+  padding: 1px;
55
+}
56
+
57
+.calendar thead .active { /* Active (pressed) buttons in header */
58
+  background-color: #7c7;
59
+  padding: 2px 0px 0px 2px;
60
+}
61
+
62
+.calendar thead .daynames { /* Row <TR> containing the day names */
63
+  background: #dfb;
64
+}
65
+
66
+/* The body part -- contains all the days in month. */
67
+
68
+.calendar tbody .day { /* Cells <TD> containing month days dates */
69
+  width: 2em;
70
+  color: #564;
71
+  text-align: right;
72
+  padding: 2px 4px 2px 2px;
73
+}
74
+.calendar tbody .day.othermonth {
75
+  font-size: 80%;
76
+  color: #bbb;
77
+}
78
+.calendar tbody .day.othermonth.oweekend {
79
+  color: #fbb;
80
+}
81
+
82
+.calendar table .wn {
83
+  padding: 2px 3px 2px 2px;
84
+  border-right: 1px solid #8a8;
85
+  background: #dfb;
86
+}
87
+
88
+.calendar tbody .rowhilite td {
89
+  background: #dfd;
90
+}
91
+
92
+.calendar tbody .rowhilite td.wn {
93
+  background: #efe;
94
+}
95
+
96
+.calendar tbody td.hilite { /* Hovered cells <TD> */
97
+  background: #efd;
98
+  padding: 1px 3px 1px 1px;
99
+  border: 1px solid #bbb;
100
+}
101
+
102
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
103
+  background: #dec;
104
+  padding: 2px 2px 0px 2px;
105
+}
106
+
107
+.calendar tbody td.selected { /* Cell showing today date */
108
+  font-weight: bold;
109
+  border: 1px solid #000;
110
+  padding: 1px 3px 1px 1px;
111
+  background: #f8fff8;
112
+  color: #000;
113
+}
114
+
115
+.calendar tbody td.weekend { /* Cells showing weekend days */
116
+  color: #a66;
117
+}
118
+
119
+.calendar tbody td.today { font-weight: bold; color: #0a0; }
120
+
121
+.calendar tbody .disabled { color: #999; }
122
+
123
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
124
+  visibility: hidden;
125
+}
126
+
127
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
128
+  display: none;
129
+}
130
+
131
+/* The footer part -- status bar and "Close" button */
132
+
133
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
134
+  text-align: center;
135
+  background: #565;
136
+  color: #fff;
137
+}
138
+
139
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
140
+  padding: 2px;
141
+  background: #250;
142
+  color: #efa;
143
+}
144
+
145
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
146
+  background: #afa;
147
+  border: 1px solid #084;
148
+  color: #000;
149
+  padding: 1px;
150
+}
151
+
152
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
153
+  background: #7c7;
154
+  padding: 2px 0px 0px 2px;
155
+}
156
+
157
+/* Combo boxes (menus that display months/years for direct selection) */
158
+
159
+.calendar .combo {
160
+  position: absolute;
161
+  display: none;
162
+  top: 0px;
163
+  left: 0px;
164
+  width: 4em;
165
+  cursor: default;
166
+  border: 1px solid #565;
167
+  background: #efd;
168
+  color: #000;
169
+  font-size: 90%;
170
+  z-index: 100;
171
+}
172
+
173
+.calendar .combo .label,
174
+.calendar .combo .label-IEfix {
175
+  text-align: center;
176
+  padding: 1px;
177
+}
178
+
179
+.calendar .combo .label-IEfix {
180
+  width: 4em;
181
+}
182
+
183
+.calendar .combo .hilite {
184
+  background: #af8;
185
+}
186
+
187
+.calendar .combo .active {
188
+  border-top: 1px solid #6a4;
189
+  border-bottom: 1px solid #6a4;
190
+  background: #efe;
191
+  font-weight: bold;
192
+}
193
+
194
+.calendar td.time {
195
+  border-top: 1px solid #8a8;
196
+  padding: 1px 0px;
197
+  text-align: center;
198
+  background-color: #dfb;
199
+}
200
+
201
+.calendar td.time .hour,
202
+.calendar td.time .minute,
203
+.calendar td.time .ampm {
204
+  padding: 0px 3px 0px 4px;
205
+  border: 1px solid #898;
206
+  font-weight: bold;
207
+  background-color: #fff;
208
+}
209
+
210
+.calendar td.time .ampm {
211
+  text-align: center;
212
+}
213
+
214
+.calendar td.time .colon {
215
+  padding: 0px 2px 0px 3px;
216
+  font-weight: bold;
217
+}
218
+
219
+.calendar td.time span.hilite {
220
+  border-color: #000;
221
+  background-color: #686;
222
+  color: #fff;
223
+}
224
+
225
+.calendar td.time span.active {
226
+  border-color: #f00;
227
+  background-color: #000;
228
+  color: #0f0;
229
+}

+ 200
- 0
jscalendar/calendar-setup.js Просмотреть файл

@@ -0,0 +1,200 @@
1
+/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
2
+ * ---------------------------------------------------------------------------
3
+ *
4
+ * The DHTML Calendar
5
+ *
6
+ * Details and latest version at:
7
+ * http://dynarch.com/mishoo/calendar.epl
8
+ *
9
+ * This script is distributed under the GNU Lesser General Public License.
10
+ * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
11
+ *
12
+ * This file defines helper functions for setting up the calendar.  They are
13
+ * intended to help non-programmers get a working calendar on their site
14
+ * quickly.  This script should not be seen as part of the calendar.  It just
15
+ * shows you what one can do with the calendar, while in the same time
16
+ * providing a quick and simple method for setting it up.  If you need
17
+ * exhaustive customization of the calendar creation process feel free to
18
+ * modify this code to suit your needs (this is recommended and much better
19
+ * than modifying calendar.js itself).
20
+ */
21
+
22
+// $Id: calendar-setup.js,v 1.25 2005/03/07 09:51:33 mishoo Exp $
23
+
24
+/**
25
+ *  This function "patches" an input field (or other element) to use a calendar
26
+ *  widget for date selection.
27
+ *
28
+ *  The "params" is a single object that can have the following properties:
29
+ *
30
+ *    prop. name   | description
31
+ *  -------------------------------------------------------------------------------------------------
32
+ *   inputField    | the ID of an input field to store the date
33
+ *   displayArea   | the ID of a DIV or other element to show the date
34
+ *   button        | ID of a button or other element that will trigger the calendar
35
+ *   eventName     | event that will trigger the calendar, without the "on" prefix (default: "click")
36
+ *   ifFormat      | date format that will be stored in the input field
37
+ *   daFormat      | the date format that will be used to display the date in displayArea
38
+ *   singleClick   | (true/false) wether the calendar is in single click mode or not (default: true)
39
+ *   firstDay      | numeric: 0 to 6.  "0" means display Sunday first, "1" means display Monday first, etc.
40
+ *   align         | alignment (default: "Br"); if you don't know what's this see the calendar documentation
41
+ *   range         | array with 2 elements.  Default: [1900, 2999] -- the range of years available
42
+ *   weekNumbers   | (true/false) if it's true (default) the calendar will display week numbers
43
+ *   flat          | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
44
+ *   flatCallback  | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
45
+ *   disableFunc   | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
46
+ *   onSelect      | function that gets called when a date is selected.  You don't _have_ to supply this (the default is generally okay)
47
+ *   onClose       | function that gets called when the calendar is closed.  [default]
48
+ *   onUpdate      | function that gets called after the date is updated in the input field.  Receives a reference to the calendar.
49
+ *   date          | the date that the calendar will be initially displayed to
50
+ *   showsTime     | default: false; if true the calendar will include a time selector
51
+ *   timeFormat    | the time format; can be "12" or "24", default is "12"
52
+ *   electric      | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
53
+ *   step          | configures the step of the years in drop-down boxes; default: 2
54
+ *   position      | configures the calendar absolute position; default: null
55
+ *   cache         | if "true" (but default: "false") it will reuse the same calendar object, where possible
56
+ *   showOthers    | if "true" (but default: "false") it will show days from other months too
57
+ *
58
+ *  None of them is required, they all have default values.  However, if you
59
+ *  pass none of "inputField", "displayArea" or "button" you'll get a warning
60
+ *  saying "nothing to setup".
61
+ */
62
+Calendar.setup = function (params) {
63
+	function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
64
+
65
+	param_default("inputField",     null);
66
+	param_default("displayArea",    null);
67
+	param_default("button",         null);
68
+	param_default("eventName",      "click");
69
+	param_default("ifFormat",       "%Y/%m/%d");
70
+	param_default("daFormat",       "%Y/%m/%d");
71
+	param_default("singleClick",    true);
72
+	param_default("disableFunc",    null);
73
+	param_default("dateStatusFunc", params["disableFunc"]);	// takes precedence if both are defined
74
+	param_default("dateText",       null);
75
+	param_default("firstDay",       null);
76
+	param_default("align",          "Br");
77
+	param_default("range",          [1900, 2999]);
78
+	param_default("weekNumbers",    true);
79
+	param_default("flat",           null);
80
+	param_default("flatCallback",   null);
81
+	param_default("onSelect",       null);
82
+	param_default("onClose",        null);
83
+	param_default("onUpdate",       null);
84
+	param_default("date",           null);
85
+	param_default("showsTime",      false);
86
+	param_default("timeFormat",     "24");
87
+	param_default("electric",       true);
88
+	param_default("step",           2);
89
+	param_default("position",       null);
90
+	param_default("cache",          false);
91
+	param_default("showOthers",     false);
92
+	param_default("multiple",       null);
93
+
94
+	var tmp = ["inputField", "displayArea", "button"];
95
+	for (var i in tmp) {
96
+		if (typeof params[tmp[i]] == "string") {
97
+			params[tmp[i]] = document.getElementById(params[tmp[i]]);
98
+		}
99
+	}
100
+	if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
101
+		alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");
102
+		return false;
103
+	}
104
+
105
+	function onSelect(cal) {
106
+		var p = cal.params;
107
+		var update = (cal.dateClicked || p.electric);
108
+		if (update && p.inputField) {
109
+			p.inputField.value = cal.date.print(p.ifFormat);
110
+			if (typeof p.inputField.onchange == "function")
111
+				p.inputField.onchange();
112
+		}
113
+		if (update && p.displayArea)
114
+			p.displayArea.innerHTML = cal.date.print(p.daFormat);
115
+		if (update && typeof p.onUpdate == "function")
116
+			p.onUpdate(cal);
117
+		if (update && p.flat) {
118
+			if (typeof p.flatCallback == "function")
119
+				p.flatCallback(cal);
120
+		}
121
+		if (update && p.singleClick && cal.dateClicked)
122
+			cal.callCloseHandler();
123
+	};
124
+
125
+	if (params.flat != null) {
126
+		if (typeof params.flat == "string")
127
+			params.flat = document.getElementById(params.flat);
128
+		if (!params.flat) {
129
+			alert("Calendar.setup:\n  Flat specified but can't find parent.");
130
+			return false;
131
+		}
132
+		var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
133
+		cal.showsOtherMonths = params.showOthers;
134
+		cal.showsTime = params.showsTime;
135
+		cal.time24 = (params.timeFormat == "24");
136
+		cal.params = params;
137
+		cal.weekNumbers = params.weekNumbers;
138
+		cal.setRange(params.range[0], params.range[1]);
139
+		cal.setDateStatusHandler(params.dateStatusFunc);
140
+		cal.getDateText = params.dateText;
141
+		if (params.ifFormat) {
142
+			cal.setDateFormat(params.ifFormat);
143
+		}
144
+		if (params.inputField && typeof params.inputField.value == "string") {
145
+			cal.parseDate(params.inputField.value);
146
+		}
147
+		cal.create(params.flat);
148
+		cal.show();
149
+		return false;
150
+	}
151
+
152
+	var triggerEl = params.button || params.displayArea || params.inputField;
153
+	triggerEl["on" + params.eventName] = function() {
154
+		var dateEl = params.inputField || params.displayArea;
155
+		var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
156
+		var mustCreate = false;
157
+		var cal = window.calendar;
158
+		if (dateEl)
159
+			params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);  
160
+		if (!(cal && params.cache)) {
161
+			window.calendar = cal = new Calendar(params.firstDay,
162
+							     params.date,
163
+							     params.onSelect || onSelect,
164
+							     params.onClose || function(cal) { cal.hide(); });
165
+			cal.showsTime = params.showsTime;
166
+			cal.time24 = (params.timeFormat == "24");
167
+			cal.weekNumbers = params.weekNumbers;
168
+			mustCreate = true;
169
+		} else {
170
+			if (params.date)
171
+				cal.setDate(params.date);
172
+			cal.hide();
173
+		}
174
+		if (params.multiple) {
175
+			cal.multiple = {};
176
+			for (var i = params.multiple.length; --i >= 0;) {
177
+				var d = params.multiple[i];
178
+				var ds = d.print("%Y%m%d");
179
+				cal.multiple[ds] = d;
180
+			}
181
+		}
182
+		cal.showsOtherMonths = params.showOthers;
183
+		cal.yearStep = params.step;
184
+		cal.setRange(params.range[0], params.range[1]);
185
+		cal.params = params;
186
+		cal.setDateStatusHandler(params.dateStatusFunc);
187
+		cal.getDateText = params.dateText;
188
+		cal.setDateFormat(dateFmt);
189
+		if (mustCreate)
190
+			cal.create();
191
+		cal.refresh();
192
+		if (!params.position)
193
+			cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
194
+		else
195
+			cal.showAt(params.position[0], params.position[1]);
196
+		return false;
197
+	};
198
+
199
+	return cal;
200
+};

+ 21
- 0
jscalendar/calendar-setup_stripped.js Просмотреть файл

@@ -0,0 +1,21 @@
1
+/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
2
+ * ---------------------------------------------------------------------------
3
+ *
4
+ * The DHTML Calendar
5
+ *
6
+ * Details and latest version at:
7
+ * http://dynarch.com/mishoo/calendar.epl
8
+ *
9
+ * This script is distributed under the GNU Lesser General Public License.
10
+ * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
11
+ *
12
+ * This file defines helper functions for setting up the calendar.  They are
13
+ * intended to help non-programmers get a working calendar on their site
14
+ * quickly.  This script should not be seen as part of the calendar.  It just
15
+ * shows you what one can do with the calendar, while in the same time
16
+ * providing a quick and simple method for setting it up.  If you need
17
+ * exhaustive customization of the calendar creation process feel free to
18
+ * modify this code to suit your needs (this is recommended and much better
19
+ * than modifying calendar.js itself).
20
+ */
21
+ Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false;}function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")p.inputField.onchange();}if(update&&p.displayArea)p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")p.flatCallback(cal);}if(update&&p.singleClick&&cal.dateClicked)cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");return false;}var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}cal.create(params.flat);cal.show();return false;}var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&&params.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)cal.setDate(params.date);cal.hide();}if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)cal.create();cal.refresh();if(!params.position)cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else cal.showAt(params.position[0],params.position[1]);return false;};return cal;};

+ 251
- 0
jscalendar/calendar-system.css Просмотреть файл

@@ -0,0 +1,251 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+.calendar {
4
+  position: relative;
5
+  display: none;
6
+  border: 1px solid;
7
+  border-color: #fff #000 #000 #fff;
8
+  font-size: 11px;
9
+  cursor: default;
10
+  background: Window;
11
+  color: WindowText;
12
+  font-family: tahoma,verdana,sans-serif;
13
+}
14
+
15
+.calendar table {
16
+  border: 1px solid;
17
+  border-color: #fff #000 #000 #fff;
18
+  font-size: 11px;
19
+  cursor: default;
20
+  background: Window;
21
+  color: WindowText;
22
+  font-family: tahoma,verdana,sans-serif;
23
+}
24
+
25
+/* Header part -- contains navigation buttons and day names. */
26
+
27
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
28
+  text-align: center;
29
+  padding: 1px;
30
+  border: 1px solid;
31
+  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
32
+  background: ButtonFace;
33
+}
34
+
35
+.calendar .nav {
36
+  background: ButtonFace url(menuarrow.gif) no-repeat 100% 100%;
37
+}
38
+
39
+.calendar thead .title { /* This holds the current "month, year" */
40
+  font-weight: bold;
41
+  padding: 1px;
42
+  border: 1px solid #000;
43
+  background: ActiveCaption;
44
+  color: CaptionText;
45
+  text-align: center;
46
+}
47
+
48
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
49
+}
50
+
51
+.calendar thead .daynames { /* Row <TR> containing the day names */
52
+}
53
+
54
+.calendar thead .name { /* Cells <TD> containing the day names */
55
+  border-bottom: 1px solid ButtonShadow;
56
+  padding: 2px;
57
+  text-align: center;
58
+  background: ButtonFace;
59
+  color: ButtonText;
60
+}
61
+
62
+.calendar thead .weekend { /* How a weekend day name shows in header */
63
+  color: #f00;
64
+}
65
+
66
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
67
+  border: 2px solid;
68
+  padding: 0px;
69
+  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
70
+}
71
+
72
+.calendar thead .active { /* Active (pressed) buttons in header */
73
+  border-width: 1px;
74
+  padding: 2px 0px 0px 2px;
75
+  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
76
+}
77
+
78
+/* The body part -- contains all the days in month. */
79
+
80
+.calendar tbody .day { /* Cells <TD> containing month days dates */
81
+  width: 2em;
82
+  text-align: right;
83
+  padding: 2px 4px 2px 2px;
84
+}
85
+.calendar tbody .day.othermonth {
86
+  font-size: 80%;
87
+  color: #aaa;
88
+}
89
+.calendar tbody .day.othermonth.oweekend {
90
+  color: #faa;
91
+}
92
+
93
+.calendar table .wn {
94
+  padding: 2px 3px 2px 2px;
95
+  border-right: 1px solid ButtonShadow;
96
+  background: ButtonFace;
97
+  color: ButtonText;
98
+}
99
+
100
+.calendar tbody .rowhilite td {
101
+  background: Highlight;
102
+  color: HighlightText;
103
+}
104
+
105
+.calendar tbody td.hilite { /* Hovered cells <TD> */
106
+  padding: 1px 3px 1px 1px;
107
+  border-top: 1px solid #fff;
108
+  border-right: 1px solid #000;
109
+  border-bottom: 1px solid #000;
110
+  border-left: 1px solid #fff;
111
+}
112
+
113
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
114
+  padding: 2px 2px 0px 2px;
115
+  border: 1px solid;
116
+  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
117
+}
118
+
119
+.calendar tbody td.selected { /* Cell showing selected date */
120
+  font-weight: bold;
121
+  border: 1px solid;
122
+  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
123
+  padding: 2px 2px 0px 2px;
124
+  background: ButtonFace;
125
+  color: ButtonText;
126
+}
127
+
128
+.calendar tbody td.weekend { /* Cells showing weekend days */
129
+  color: #f00;
130
+}
131
+
132
+.calendar tbody td.today { /* Cell showing today date */
133
+  font-weight: bold;
134
+  color: #00f;
135
+}
136
+
137
+.calendar tbody td.disabled { color: GrayText; }
138
+
139
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
140
+  visibility: hidden;
141
+}
142
+
143
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
144
+  display: none;
145
+}
146
+
147
+/* The footer part -- status bar and "Close" button */
148
+
149
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
150
+}
151
+
152
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
153
+  background: ButtonFace;
154
+  padding: 1px;
155
+  border: 1px solid;
156
+  border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
157
+  color: ButtonText;
158
+  text-align: center;
159
+}
160
+
161
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
162
+  border-top: 1px solid #fff;
163
+  border-right: 1px solid #000;
164
+  border-bottom: 1px solid #000;
165
+  border-left: 1px solid #fff;
166
+  padding: 1px;
167
+  background: #e4e0d8;
168
+}
169
+
170
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
171
+  padding: 2px 0px 0px 2px;
172
+  border-top: 1px solid #000;
173
+  border-right: 1px solid #fff;
174
+  border-bottom: 1px solid #fff;
175
+  border-left: 1px solid #000;
176
+}
177
+
178
+/* Combo boxes (menus that display months/years for direct selection) */
179
+
180
+.calendar .combo {
181
+  position: absolute;
182
+  display: none;
183
+  width: 4em;
184
+  top: 0px;
185
+  left: 0px;
186
+  cursor: default;
187
+  border: 1px solid;
188
+  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
189
+  background: Menu;
190
+  color: MenuText;
191
+  font-size: 90%;
192
+  padding: 1px;
193
+  z-index: 100;
194
+}
195
+
196
+.calendar .combo .label,
197
+.calendar .combo .label-IEfix {
198
+  text-align: center;
199
+  padding: 1px;
200
+}
201
+
202
+.calendar .combo .label-IEfix {
203
+  width: 4em;
204
+}
205
+
206
+.calendar .combo .active {
207
+  padding: 0px;
208
+  border: 1px solid #000;
209
+}
210
+
211
+.calendar .combo .hilite {
212
+  background: Highlight;
213
+  color: HighlightText;
214
+}
215
+
216
+.calendar td.time {
217
+  border-top: 1px solid ButtonShadow;
218
+  padding: 1px 0px;
219
+  text-align: center;
220
+  background-color: ButtonFace;
221
+}
222
+
223
+.calendar td.time .hour,
224
+.calendar td.time .minute,
225
+.calendar td.time .ampm {
226
+  padding: 0px 3px 0px 4px;
227
+  border: 1px solid #889;
228
+  font-weight: bold;
229
+  background-color: Menu;
230
+}
231
+
232
+.calendar td.time .ampm {
233
+  text-align: center;
234
+}
235
+
236
+.calendar td.time .colon {
237
+  padding: 0px 2px 0px 3px;
238
+  font-weight: bold;
239
+}
240
+
241
+.calendar td.time span.hilite {
242
+  border-color: #000;
243
+  background-color: Highlight;
244
+  color: HighlightText;
245
+}
246
+
247
+.calendar td.time span.active {
248
+  border-color: #f00;
249
+  background-color: #000;
250
+  color: #0f0;
251
+}

+ 239
- 0
jscalendar/calendar-tas.css Просмотреть файл

@@ -0,0 +1,239 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+div.calendar { position: relative; }
4
+
5
+.calendar, .calendar table {
6
+  border: 1px solid #655;
7
+  font-size: 11px;
8
+  color: #000;
9
+  cursor: default;
10
+  background: #ffd;
11
+  font-family: tahoma,verdana,sans-serif;
12
+  filter:
13
+progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#DDDCCC,EndColorStr=#FFFFFF);
14
+}
15
+
16
+/* Header part -- contains navigation buttons and day names. */
17
+
18
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
19
+  text-align: center;    /* They are the navigation buttons */
20
+  padding: 2px;          /* Make the buttons seem like they're pressing */
21
+  color:#363636;
22
+}
23
+
24
+.calendar .nav {
25
+  background: #edc url(menuarrow.gif) no-repeat 100% 100%;
26
+}
27
+
28
+.calendar thead .title { /* This holds the current "month, year" */
29
+  font-weight: bold;      /* Pressing it will take you to the current date */
30
+  text-align: center;
31
+  background: #654;
32
+  color: #363636;
33
+  padding: 2px;
34
+  filter:
35
+progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff,EndColorStr=#dddccc);
36
+}
37
+
38
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
39
+  /*background: #3B86A0;*/
40
+  color: #363636;
41
+  font-weight: bold; 	
42
+filter:
43
+progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff,EndColorStr=#3b86a0);
44
+}
45
+
46
+.calendar thead .name { /* Cells <TD> containing the day names */
47
+  border-bottom: 1px solid #655;
48
+  padding: 2px;
49
+  text-align: center;
50
+  color: #363636;
51
+    filter:
52
+progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#DDDCCC,EndColorStr=#FFFFFF);
53
+}
54
+
55
+.calendar thead .weekend { /* How a weekend day name shows in header */
56
+  color: #f00;
57
+}
58
+
59
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
60
+  background-color: #ffcc86;
61
+  color: #000;
62
+  border: 1px solid #b59345;
63
+  padding: 1px;
64
+}
65
+
66
+.calendar thead .active { /* Active (pressed) buttons in header */
67
+  background-color: #c77;
68
+  padding: 2px 0px 0px 2px;
69
+}
70
+
71
+.calendar thead .daynames { /* Row <TR> containing the day names */
72
+  background: #fed;
73
+}
74
+
75
+/* The body part -- contains all the days in month. */
76
+
77
+.calendar tbody .day { /* Cells <TD> containing month days dates */
78
+  width: 2em;
79
+  text-align: right;
80
+  padding: 2px 4px 2px 2px;
81
+}
82
+.calendar tbody .day.othermonth {
83
+  font-size: 80%;
84
+  color: #aaa;
85
+}
86
+.calendar tbody .day.othermonth.oweekend {
87
+  color: #faa;
88
+}
89
+
90
+.calendar table .wn {
91
+  padding: 2px 3px 2px 2px;
92
+  border-right: 1px solid #000;
93
+  background: #fed;
94
+}
95
+
96
+.calendar tbody .rowhilite td {
97
+ background: #ddf;
98
+  
99
+}
100
+
101
+.calendar tbody .rowhilite td.wn {
102
+  background: #efe;
103
+}
104
+
105
+.calendar tbody td.hilite { /* Hovered cells <TD> */
106
+  background: #ffe;
107
+  padding: 1px 3px 1px 1px;
108
+  border: 1px solid #bbb;
109
+}
110
+
111
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
112
+  background: #ddc;
113
+  padding: 2px 2px 0px 2px;
114
+}
115
+
116
+.calendar tbody td.selected { /* Cell showing today date */
117
+  font-weight: bold;
118
+  border: 1px solid #000;
119
+  padding: 1px 3px 1px 1px;
120
+  background: #fea;
121
+}
122
+
123
+.calendar tbody td.weekend { /* Cells showing weekend days */
124
+  color: #f00;
125
+}
126
+
127
+.calendar tbody td.today { font-weight: bold; }
128
+
129
+.calendar tbody .disabled { color: #999; }
130
+
131
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
132
+  visibility: hidden;
133
+}
134
+
135
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
136
+  display: none;
137
+}
138
+
139
+/* The footer part -- status bar and "Close" button */
140
+
141
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
142
+  text-align: center;
143
+  background: #988;
144
+  color: #000;
145
+  
146
+}
147
+
148
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
149
+  border-top: 1px solid #655;
150
+  background: #dcb;
151
+  color: #363636;
152
+  font-weight: bold;
153
+	filter:
154
+progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#FFFFFF,EndColorStr=#DDDCCC);
155
+}
156
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
157
+  background: #faa;
158
+  border: 1px solid #f40;
159
+  padding: 1px;
160
+}
161
+
162
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
163
+  background: #c77;
164
+  padding: 2px 0px 0px 2px;
165
+}
166
+
167
+/* Combo boxes (menus that display months/years for direct selection) */
168
+
169
+.combo {
170
+  position: absolute;
171
+  display: none;
172
+  top: 0px;
173
+  left: 0px;
174
+  width: 4em;
175
+  cursor: default;
176
+  border: 1px solid #655;
177
+  background: #ffe;
178
+  color: #000;
179
+  font-size: smaller;
180
+  z-index: 100;
181
+}
182
+
183
+.combo .label,
184
+.combo .label-IEfix {
185
+  text-align: center;
186
+  padding: 1px;
187
+}
188
+
189
+.combo .label-IEfix {
190
+  width: 4em;
191
+}
192
+
193
+.combo .hilite {
194
+  background: #fc8;
195
+}
196
+
197
+.combo .active {
198
+  border-top: 1px solid #a64;
199
+  border-bottom: 1px solid #a64;
200
+  background: #fee;
201
+  font-weight: bold;
202
+}
203
+
204
+.calendar td.time {
205
+  border-top: 1px solid #a88;
206
+  padding: 1px 0px;
207
+  text-align: center;
208
+  background-color: #fed;
209
+}
210
+
211
+.calendar td.time .hour,
212
+.calendar td.time .minute,
213
+.calendar td.time .ampm {
214
+  padding: 0px 3px 0px 4px;
215
+  border: 1px solid #988;
216
+  font-weight: bold;
217
+  background-color: #fff;
218
+}
219
+
220
+.calendar td.time .ampm {
221
+  text-align: center;
222
+}
223
+
224
+.calendar td.time .colon {
225
+  padding: 0px 2px 0px 3px;
226
+  font-weight: bold;
227
+}
228
+
229
+.calendar td.time span.hilite {
230
+  border-color: #000;
231
+  background-color: #866;
232
+  color: #fff;
233
+}
234
+
235
+.calendar td.time span.active {
236
+  border-color: #f00;
237
+  background-color: #000;
238
+  color: #0f0;
239
+}

+ 271
- 0
jscalendar/calendar-win2k-1.css Просмотреть файл

@@ -0,0 +1,271 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+.calendar {
4
+  position: relative;
5
+  display: none;
6
+  border-top: 2px solid #fff;
7
+  border-right: 2px solid #000;
8
+  border-bottom: 2px solid #000;
9
+  border-left: 2px solid #fff;
10
+  font-size: 11px;
11
+  color: #000;
12
+  cursor: default;
13
+  background: #d4d0c8;
14
+  font-family: tahoma,verdana,sans-serif;
15
+}
16
+
17
+.calendar table {
18
+  border-top: 1px solid #000;
19
+  border-right: 1px solid #fff;
20
+  border-bottom: 1px solid #fff;
21
+  border-left: 1px solid #000;
22
+  font-size: 11px;
23
+  color: #000;
24
+  cursor: default;
25
+  background: #d4d0c8;
26
+  font-family: tahoma,verdana,sans-serif;
27
+}
28
+
29
+/* Header part -- contains navigation buttons and day names. */
30
+
31
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
32
+  text-align: center;
33
+  padding: 1px;
34
+  border-top: 1px solid #fff;
35
+  border-right: 1px solid #000;
36
+  border-bottom: 1px solid #000;
37
+  border-left: 1px solid #fff;
38
+}
39
+
40
+.calendar .nav {
41
+  background: transparent url(menuarrow.gif) no-repeat 100% 100%;
42
+}
43
+
44
+.calendar thead .title { /* This holds the current "month, year" */
45
+  font-weight: bold;
46
+  padding: 1px;
47
+  border: 1px solid #000;
48
+  background: #848078;
49
+  color: #fff;
50
+  text-align: center;
51
+}
52
+
53
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
54
+}
55
+
56
+.calendar thead .daynames { /* Row <TR> containing the day names */
57
+}
58
+
59
+.calendar thead .name { /* Cells <TD> containing the day names */
60
+  border-bottom: 1px solid #000;
61
+  padding: 2px;
62
+  text-align: center;
63
+  background: #f4f0e8;
64
+}
65
+
66
+.calendar thead .weekend { /* How a weekend day name shows in header */
67
+  color: #f00;
68
+}
69
+
70
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
71
+  border-top: 2px solid #fff;
72
+  border-right: 2px solid #000;
73
+  border-bottom: 2px solid #000;
74
+  border-left: 2px solid #fff;
75
+  padding: 0px;
76
+  background-color: #e4e0d8;
77
+}
78
+
79
+.calendar thead .active { /* Active (pressed) buttons in header */
80
+  padding: 2px 0px 0px 2px;
81
+  border-top: 1px solid #000;
82
+  border-right: 1px solid #fff;
83
+  border-bottom: 1px solid #fff;
84
+  border-left: 1px solid #000;
85
+  background-color: #c4c0b8;
86
+}
87
+
88
+/* The body part -- contains all the days in month. */
89
+
90
+.calendar tbody .day { /* Cells <TD> containing month days dates */
91
+  width: 2em;
92
+  text-align: right;
93
+  padding: 2px 4px 2px 2px;
94
+}
95
+.calendar tbody .day.othermonth {
96
+  font-size: 80%;
97
+  color: #aaa;
98
+}
99
+.calendar tbody .day.othermonth.oweekend {
100
+  color: #faa;
101
+}
102
+
103
+.calendar table .wn {
104
+  padding: 2px 3px 2px 2px;
105
+  border-right: 1px solid #000;
106
+  background: #f4f0e8;
107
+}
108
+
109
+.calendar tbody .rowhilite td {
110
+  background: #e4e0d8;
111
+}
112
+
113
+.calendar tbody .rowhilite td.wn {
114
+  background: #d4d0c8;
115
+}
116
+
117
+.calendar tbody td.hilite { /* Hovered cells <TD> */
118
+  padding: 1px 3px 1px 1px;
119
+  border-top: 1px solid #fff;
120
+  border-right: 1px solid #000;
121
+  border-bottom: 1px solid #000;
122
+  border-left: 1px solid #fff;
123
+}
124
+
125
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
126
+  padding: 2px 2px 0px 2px;
127
+  border-top: 1px solid #000;
128
+  border-right: 1px solid #fff;
129
+  border-bottom: 1px solid #fff;
130
+  border-left: 1px solid #000;
131
+}
132
+
133
+.calendar tbody td.selected { /* Cell showing selected date */
134
+  font-weight: bold;
135
+  border-top: 1px solid #000;
136
+  border-right: 1px solid #fff;
137
+  border-bottom: 1px solid #fff;
138
+  border-left: 1px solid #000;
139
+  padding: 2px 2px 0px 2px;
140
+  background: #e4e0d8;
141
+}
142
+
143
+.calendar tbody td.weekend { /* Cells showing weekend days */
144
+  color: #f00;
145
+}
146
+
147
+.calendar tbody td.today { /* Cell showing today date */
148
+  font-weight: bold;
149
+  color: #00f;
150
+}
151
+
152
+.calendar tbody .disabled { color: #999; }
153
+
154
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
155
+  visibility: hidden;
156
+}
157
+
158
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
159
+  display: none;
160
+}
161
+
162
+/* The footer part -- status bar and "Close" button */
163
+
164
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
165
+}
166
+
167
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
168
+  background: #f4f0e8;
169
+  padding: 1px;
170
+  border: 1px solid #000;
171
+  background: #848078;
172
+  color: #fff;
173
+  text-align: center;
174
+}
175
+
176
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
177
+  border-top: 1px solid #fff;
178
+  border-right: 1px solid #000;
179
+  border-bottom: 1px solid #000;
180
+  border-left: 1px solid #fff;
181
+  padding: 1px;
182
+  background: #e4e0d8;
183
+}
184
+
185
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
186
+  padding: 2px 0px 0px 2px;
187
+  border-top: 1px solid #000;
188
+  border-right: 1px solid #fff;
189
+  border-bottom: 1px solid #fff;
190
+  border-left: 1px solid #000;
191
+}
192
+
193
+/* Combo boxes (menus that display months/years for direct selection) */
194
+
195
+.calendar .combo {
196
+  position: absolute;
197
+  display: none;
198
+  width: 4em;
199
+  top: 0px;
200
+  left: 0px;
201
+  cursor: default;
202
+  border-top: 1px solid #fff;
203
+  border-right: 1px solid #000;
204
+  border-bottom: 1px solid #000;
205
+  border-left: 1px solid #fff;
206
+  background: #e4e0d8;
207
+  font-size: 90%;
208
+  padding: 1px;
209
+  z-index: 100;
210
+}
211
+
212
+.calendar .combo .label,
213
+.calendar .combo .label-IEfix {
214
+  text-align: center;
215
+  padding: 1px;
216
+}
217
+
218
+.calendar .combo .label-IEfix {
219
+  width: 4em;
220
+}
221
+
222
+.calendar .combo .active {
223
+  background: #c4c0b8;
224
+  padding: 0px;
225
+  border-top: 1px solid #000;
226
+  border-right: 1px solid #fff;
227
+  border-bottom: 1px solid #fff;
228
+  border-left: 1px solid #000;
229
+}
230
+
231
+.calendar .combo .hilite {
232
+  background: #048;
233
+  color: #fea;
234
+}
235
+
236
+.calendar td.time {
237
+  border-top: 1px solid #000;
238
+  padding: 1px 0px;
239
+  text-align: center;
240
+  background-color: #f4f0e8;
241
+}
242
+
243
+.calendar td.time .hour,
244
+.calendar td.time .minute,
245
+.calendar td.time .ampm {
246
+  padding: 0px 3px 0px 4px;
247
+  border: 1px solid #889;
248
+  font-weight: bold;
249
+  background-color: #fff;
250
+}
251
+
252
+.calendar td.time .ampm {
253
+  text-align: center;
254
+}
255
+
256
+.calendar td.time .colon {
257
+  padding: 0px 2px 0px 3px;
258
+  font-weight: bold;
259
+}
260
+
261
+.calendar td.time span.hilite {
262
+  border-color: #000;
263
+  background-color: #766;
264
+  color: #fff;
265
+}
266
+
267
+.calendar td.time span.active {
268
+  border-color: #f00;
269
+  background-color: #000;
270
+  color: #0f0;
271
+}

+ 271
- 0
jscalendar/calendar-win2k-2.css Просмотреть файл

@@ -0,0 +1,271 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+.calendar {
4
+  position: relative;
5
+  display: none;
6
+  border-top: 2px solid #fff;
7
+  border-right: 2px solid #000;
8
+  border-bottom: 2px solid #000;
9
+  border-left: 2px solid #fff;
10
+  font-size: 11px;
11
+  color: #000;
12
+  cursor: default;
13
+  background: #d4c8d0;
14
+  font-family: tahoma,verdana,sans-serif;
15
+}
16
+
17
+.calendar table {
18
+  border-top: 1px solid #000;
19
+  border-right: 1px solid #fff;
20
+  border-bottom: 1px solid #fff;
21
+  border-left: 1px solid #000;
22
+  font-size: 11px;
23
+  color: #000;
24
+  cursor: default;
25
+  background: #d4c8d0;
26
+  font-family: tahoma,verdana,sans-serif;
27
+}
28
+
29
+/* Header part -- contains navigation buttons and day names. */
30
+
31
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
32
+  text-align: center;
33
+  padding: 1px;
34
+  border-top: 1px solid #fff;
35
+  border-right: 1px solid #000;
36
+  border-bottom: 1px solid #000;
37
+  border-left: 1px solid #fff;
38
+}
39
+
40
+.calendar .nav {
41
+  background: transparent url(menuarrow.gif) no-repeat 100% 100%;
42
+}
43
+
44
+.calendar thead .title { /* This holds the current "month, year" */
45
+  font-weight: bold;
46
+  padding: 1px;
47
+  border: 1px solid #000;
48
+  background: #847880;
49
+  color: #fff;
50
+  text-align: center;
51
+}
52
+
53
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
54
+}
55
+
56
+.calendar thead .daynames { /* Row <TR> containing the day names */
57
+}
58
+
59
+.calendar thead .name { /* Cells <TD> containing the day names */
60
+  border-bottom: 1px solid #000;
61
+  padding: 2px;
62
+  text-align: center;
63
+  background: #f4e8f0;
64
+}
65
+
66
+.calendar thead .weekend { /* How a weekend day name shows in header */
67
+  color: #f00;
68
+}
69
+
70
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
71
+  border-top: 2px solid #fff;
72
+  border-right: 2px solid #000;
73
+  border-bottom: 2px solid #000;
74
+  border-left: 2px solid #fff;
75
+  padding: 0px;
76
+  background-color: #e4d8e0;
77
+}
78
+
79
+.calendar thead .active { /* Active (pressed) buttons in header */
80
+  padding: 2px 0px 0px 2px;
81
+  border-top: 1px solid #000;
82
+  border-right: 1px solid #fff;
83
+  border-bottom: 1px solid #fff;
84
+  border-left: 1px solid #000;
85
+  background-color: #c4b8c0;
86
+}
87
+
88
+/* The body part -- contains all the days in month. */
89
+
90
+.calendar tbody .day { /* Cells <TD> containing month days dates */
91
+  width: 2em;
92
+  text-align: right;
93
+  padding: 2px 4px 2px 2px;
94
+}
95
+.calendar tbody .day.othermonth {
96
+  font-size: 80%;
97
+  color: #aaa;
98
+}
99
+.calendar tbody .day.othermonth.oweekend {
100
+  color: #faa;
101
+}
102
+
103
+.calendar table .wn {
104
+  padding: 2px 3px 2px 2px;
105
+  border-right: 1px solid #000;
106
+  background: #f4e8f0;
107
+}
108
+
109
+.calendar tbody .rowhilite td {
110
+  background: #e4d8e0;
111
+}
112
+
113
+.calendar tbody .rowhilite td.wn {
114
+  background: #d4c8d0;
115
+}
116
+
117
+.calendar tbody td.hilite { /* Hovered cells <TD> */
118
+  padding: 1px 3px 1px 1px;
119
+  border-top: 1px solid #fff;
120
+  border-right: 1px solid #000;
121
+  border-bottom: 1px solid #000;
122
+  border-left: 1px solid #fff;
123
+}
124
+
125
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
126
+  padding: 2px 2px 0px 2px;
127
+  border-top: 1px solid #000;
128
+  border-right: 1px solid #fff;
129
+  border-bottom: 1px solid #fff;
130
+  border-left: 1px solid #000;
131
+}
132
+
133
+.calendar tbody td.selected { /* Cell showing selected date */
134
+  font-weight: bold;
135
+  border-top: 1px solid #000;
136
+  border-right: 1px solid #fff;
137
+  border-bottom: 1px solid #fff;
138
+  border-left: 1px solid #000;
139
+  padding: 2px 2px 0px 2px;
140
+  background: #e4d8e0;
141
+}
142
+
143
+.calendar tbody td.weekend { /* Cells showing weekend days */
144
+  color: #f00;
145
+}
146
+
147
+.calendar tbody td.today { /* Cell showing today date */
148
+  font-weight: bold;
149
+  color: #00f;
150
+}
151
+
152
+.calendar tbody .disabled { color: #999; }
153
+
154
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
155
+  visibility: hidden;
156
+}
157
+
158
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
159
+  display: none;
160
+}
161
+
162
+/* The footer part -- status bar and "Close" button */
163
+
164
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
165
+}
166
+
167
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
168
+  background: #f4e8f0;
169
+  padding: 1px;
170
+  border: 1px solid #000;
171
+  background: #847880;
172
+  color: #fff;
173
+  text-align: center;
174
+}
175
+
176
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
177
+  border-top: 1px solid #fff;
178
+  border-right: 1px solid #000;
179
+  border-bottom: 1px solid #000;
180
+  border-left: 1px solid #fff;
181
+  padding: 1px;
182
+  background: #e4d8e0;
183
+}
184
+
185
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
186
+  padding: 2px 0px 0px 2px;
187
+  border-top: 1px solid #000;
188
+  border-right: 1px solid #fff;
189
+  border-bottom: 1px solid #fff;
190
+  border-left: 1px solid #000;
191
+}
192
+
193
+/* Combo boxes (menus that display months/years for direct selection) */
194
+
195
+.calendar .combo {
196
+  position: absolute;
197
+  display: none;
198
+  width: 4em;
199
+  top: 0px;
200
+  left: 0px;
201
+  cursor: default;
202
+  border-top: 1px solid #fff;
203
+  border-right: 1px solid #000;
204
+  border-bottom: 1px solid #000;
205
+  border-left: 1px solid #fff;
206
+  background: #e4d8e0;
207
+  font-size: 90%;
208
+  padding: 1px;
209
+  z-index: 100;
210
+}
211
+
212
+.calendar .combo .label,
213
+.calendar .combo .label-IEfix {
214
+  text-align: center;
215
+  padding: 1px;
216
+}
217
+
218
+.calendar .combo .label-IEfix {
219
+  width: 4em;
220
+}
221
+
222
+.calendar .combo .active {
223
+  background: #d4c8d0;
224
+  padding: 0px;
225
+  border-top: 1px solid #000;
226
+  border-right: 1px solid #fff;
227
+  border-bottom: 1px solid #fff;
228
+  border-left: 1px solid #000;
229
+}
230
+
231
+.calendar .combo .hilite {
232
+  background: #408;
233
+  color: #fea;
234
+}
235
+
236
+.calendar td.time {
237
+  border-top: 1px solid #000;
238
+  padding: 1px 0px;
239
+  text-align: center;
240
+  background-color: #f4f0e8;
241
+}
242
+
243
+.calendar td.time .hour,
244
+.calendar td.time .minute,
245
+.calendar td.time .ampm {
246
+  padding: 0px 3px 0px 4px;
247
+  border: 1px solid #889;
248
+  font-weight: bold;
249
+  background-color: #fff;
250
+}
251
+
252
+.calendar td.time .ampm {
253
+  text-align: center;
254
+}
255
+
256
+.calendar td.time .colon {
257
+  padding: 0px 2px 0px 3px;
258
+  font-weight: bold;
259
+}
260
+
261
+.calendar td.time span.hilite {
262
+  border-color: #000;
263
+  background-color: #766;
264
+  color: #fff;
265
+}
266
+
267
+.calendar td.time span.active {
268
+  border-color: #f00;
269
+  background-color: #000;
270
+  color: #0f0;
271
+}

+ 265
- 0
jscalendar/calendar-win2k-cold-1.css Просмотреть файл

@@ -0,0 +1,265 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+.calendar {
4
+  position: relative;
5
+  display: none;
6
+  border-top: 2px solid #fff;
7
+  border-right: 2px solid #000;
8
+  border-bottom: 2px solid #000;
9
+  border-left: 2px solid #fff;
10
+  font-size: 11px;
11
+  color: #000;
12
+  cursor: default;
13
+  background: #c8d0d4;
14
+  font-family: tahoma,verdana,sans-serif;
15
+}
16
+
17
+.calendar table {
18
+  border-top: 1px solid #000;
19
+  border-right: 1px solid #fff;
20
+  border-bottom: 1px solid #fff;
21
+  border-left: 1px solid #000;
22
+  font-size: 11px;
23
+  color: #000;
24
+  cursor: default;
25
+  background: #c8d0d4;
26
+  font-family: tahoma,verdana,sans-serif;
27
+}
28
+
29
+/* Header part -- contains navigation buttons and day names. */
30
+
31
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
32
+  text-align: center;
33
+  padding: 1px;
34
+  border-top: 1px solid #fff;
35
+  border-right: 1px solid #000;
36
+  border-bottom: 1px solid #000;
37
+  border-left: 1px solid #fff;
38
+}
39
+
40
+.calendar .nav {
41
+  background: transparent url(menuarrow.gif) no-repeat 100% 100%;
42
+}
43
+
44
+.calendar thead .title { /* This holds the current "month, year" */
45
+  font-weight: bold;
46
+  padding: 1px;
47
+  border: 1px solid #000;
48
+  background: #788084;
49
+  color: #fff;
50
+  text-align: center;
51
+}
52
+
53
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
54
+}
55
+
56
+.calendar thead .daynames { /* Row <TR> containing the day names */
57
+}
58
+
59
+.calendar thead .name { /* Cells <TD> containing the day names */
60
+  border-bottom: 1px solid #000;
61
+  padding: 2px;
62
+  text-align: center;
63
+  background: #e8f0f4;
64
+}
65
+
66
+.calendar thead .weekend { /* How a weekend day name shows in header */
67
+  color: #f00;
68
+}
69
+
70
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
71
+  border-top: 2px solid #fff;
72
+  border-right: 2px solid #000;
73
+  border-bottom: 2px solid #000;
74
+  border-left: 2px solid #fff;
75
+  padding: 0px;
76
+  background-color: #d8e0e4;
77
+}
78
+
79
+.calendar thead .active { /* Active (pressed) buttons in header */
80
+  padding: 2px 0px 0px 2px;
81
+  border-top: 1px solid #000;
82
+  border-right: 1px solid #fff;
83
+  border-bottom: 1px solid #fff;
84
+  border-left: 1px solid #000;
85
+  background-color: #b8c0c4;
86
+}
87
+
88
+/* The body part -- contains all the days in month. */
89
+
90
+.calendar tbody .day { /* Cells <TD> containing month days dates */
91
+  width: 2em;
92
+  text-align: right;
93
+  padding: 2px 4px 2px 2px;
94
+}
95
+.calendar tbody .day.othermonth {
96
+  font-size: 80%;
97
+  color: #aaa;
98
+}
99
+.calendar tbody .day.othermonth.oweekend {
100
+  color: #faa;
101
+}
102
+
103
+.calendar table .wn {
104
+  padding: 2px 3px 2px 2px;
105
+  border-right: 1px solid #000;
106
+  background: #e8f4f0;
107
+}
108
+
109
+.calendar tbody .rowhilite td {
110
+  background: #d8e4e0;
111
+}
112
+
113
+.calendar tbody .rowhilite td.wn {
114
+  background: #c8d4d0;
115
+}
116
+
117
+.calendar tbody td.hilite { /* Hovered cells <TD> */
118
+  padding: 1px 3px 1px 1px;
119
+  border: 1px solid;
120
+  border-color: #fff #000 #000 #fff;
121
+}
122
+
123
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
124
+  padding: 2px 2px 0px 2px;
125
+  border: 1px solid;
126
+  border-color: #000 #fff #fff #000;
127
+}
128
+
129
+.calendar tbody td.selected { /* Cell showing selected date */
130
+  font-weight: bold;
131
+  padding: 2px 2px 0px 2px;
132
+  border: 1px solid;
133
+  border-color: #000 #fff #fff #000;
134
+  background: #d8e0e4;
135
+}
136
+
137
+.calendar tbody td.weekend { /* Cells showing weekend days */
138
+  color: #f00;
139
+}
140
+
141
+.calendar tbody td.today { /* Cell showing today date */
142
+  font-weight: bold;
143
+  color: #00f;
144
+}
145
+
146
+.calendar tbody .disabled { color: #999; }
147
+
148
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
149
+  visibility: hidden;
150
+}
151
+
152
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
153
+  display: none;
154
+}
155
+
156
+/* The footer part -- status bar and "Close" button */
157
+
158
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
159
+}
160
+
161
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
162
+  background: #e8f0f4;
163
+  padding: 1px;
164
+  border: 1px solid #000;
165
+  background: #788084;
166
+  color: #fff;
167
+  text-align: center;
168
+}
169
+
170
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
171
+  border-top: 1px solid #fff;
172
+  border-right: 1px solid #000;
173
+  border-bottom: 1px solid #000;
174
+  border-left: 1px solid #fff;
175
+  padding: 1px;
176
+  background: #d8e0e4;
177
+}
178
+
179
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
180
+  padding: 2px 0px 0px 2px;
181
+  border-top: 1px solid #000;
182
+  border-right: 1px solid #fff;
183
+  border-bottom: 1px solid #fff;
184
+  border-left: 1px solid #000;
185
+}
186
+
187
+/* Combo boxes (menus that display months/years for direct selection) */
188
+
189
+.calendar .combo {
190
+  position: absolute;
191
+  display: none;
192
+  width: 4em;
193
+  top: 0px;
194
+  left: 0px;
195
+  cursor: default;
196
+  border-top: 1px solid #fff;
197
+  border-right: 1px solid #000;
198
+  border-bottom: 1px solid #000;
199
+  border-left: 1px solid #fff;
200
+  background: #d8e0e4;
201
+  font-size: 90%;
202
+  padding: 1px;
203
+  z-index: 100;
204
+}
205
+
206
+.calendar .combo .label,
207
+.calendar .combo .label-IEfix {
208
+  text-align: center;
209
+  padding: 1px;
210
+}
211
+
212
+.calendar .combo .label-IEfix {
213
+  width: 4em;
214
+}
215
+
216
+.calendar .combo .active {
217
+  background: #c8d0d4;
218
+  padding: 0px;
219
+  border-top: 1px solid #000;
220
+  border-right: 1px solid #fff;
221
+  border-bottom: 1px solid #fff;
222
+  border-left: 1px solid #000;
223
+}
224
+
225
+.calendar .combo .hilite {
226
+  background: #048;
227
+  color: #aef;
228
+}
229
+
230
+.calendar td.time {
231
+  border-top: 1px solid #000;
232
+  padding: 1px 0px;
233
+  text-align: center;
234
+  background-color: #e8f0f4;
235
+}
236
+
237
+.calendar td.time .hour,
238
+.calendar td.time .minute,
239
+.calendar td.time .ampm {
240
+  padding: 0px 3px 0px 4px;
241
+  border: 1px solid #889;
242
+  font-weight: bold;
243
+  background-color: #fff;
244
+}
245
+
246
+.calendar td.time .ampm {
247
+  text-align: center;
248
+}
249
+
250
+.calendar td.time .colon {
251
+  padding: 0px 2px 0px 3px;
252
+  font-weight: bold;
253
+}
254
+
255
+.calendar td.time span.hilite {
256
+  border-color: #000;
257
+  background-color: #667;
258
+  color: #fff;
259
+}
260
+
261
+.calendar td.time span.active {
262
+  border-color: #f00;
263
+  background-color: #000;
264
+  color: #0f0;
265
+}

+ 271
- 0
jscalendar/calendar-win2k-cold-2.css Просмотреть файл

@@ -0,0 +1,271 @@
1
+/* The main calendar widget.  DIV containing a table. */
2
+
3
+.calendar {
4
+  position: relative;
5
+  display: none;
6
+  border-top: 2px solid #fff;
7
+  border-right: 2px solid #000;
8
+  border-bottom: 2px solid #000;
9
+  border-left: 2px solid #fff;
10
+  font-size: 11px;
11
+  color: #000;
12
+  cursor: default;
13
+  background: #c8d4d0;
14
+  font-family: tahoma,verdana,sans-serif;
15
+}
16
+
17
+.calendar table {
18
+  border-top: 1px solid #000;
19
+  border-right: 1px solid #fff;
20
+  border-bottom: 1px solid #fff;
21
+  border-left: 1px solid #000;
22
+  font-size: 11px;
23
+  color: #000;
24
+  cursor: default;
25
+  background: #c8d4d0;
26
+  font-family: tahoma,verdana,sans-serif;
27
+}
28
+
29
+/* Header part -- contains navigation buttons and day names. */
30
+
31
+.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
32
+  text-align: center;
33
+  padding: 1px;
34
+  border-top: 1px solid #fff;
35
+  border-right: 1px solid #000;
36
+  border-bottom: 1px solid #000;
37
+  border-left: 1px solid #fff;
38
+}
39
+
40
+.calendar .nav {
41
+  background: transparent url(menuarrow.gif) no-repeat 100% 100%;
42
+}
43
+
44
+.calendar thead .title { /* This holds the current "month, year" */
45
+  font-weight: bold;
46
+  padding: 1px;
47
+  border: 1px solid #000;
48
+  background: #788480;
49
+  color: #fff;
50
+  text-align: center;
51
+}
52
+
53
+.calendar thead .headrow { /* Row <TR> containing navigation buttons */
54
+}
55
+
56
+.calendar thead .daynames { /* Row <TR> containing the day names */
57
+}
58
+
59
+.calendar thead .name { /* Cells <TD> containing the day names */
60
+  border-bottom: 1px solid #000;
61
+  padding: 2px;
62
+  text-align: center;
63
+  background: #e8f4f0;
64
+}
65
+
66
+.calendar thead .weekend { /* How a weekend day name shows in header */
67
+  color: #f00;
68
+}
69
+
70
+.calendar thead .hilite { /* How do the buttons in header appear when hover */
71
+  border-top: 2px solid #fff;
72
+  border-right: 2px solid #000;
73
+  border-bottom: 2px solid #000;
74
+  border-left: 2px solid #fff;
75
+  padding: 0px;
76
+  background-color: #d8e4e0;
77
+}
78
+
79
+.calendar thead .active { /* Active (pressed) buttons in header */
80
+  padding: 2px 0px 0px 2px;
81
+  border-top: 1px solid #000;
82
+  border-right: 1px solid #fff;
83
+  border-bottom: 1px solid #fff;
84
+  border-left: 1px solid #000;
85
+  background-color: #b8c4c0;
86
+}
87
+
88
+/* The body part -- contains all the days in month. */
89
+
90
+.calendar tbody .day { /* Cells <TD> containing month days dates */
91
+  width: 2em;
92
+  text-align: right;
93
+  padding: 2px 4px 2px 2px;
94
+}
95
+.calendar tbody .day.othermonth {
96
+  font-size: 80%;
97
+  color: #aaa;
98
+}
99
+.calendar tbody .day.othermonth.oweekend {
100
+  color: #faa;
101
+}
102
+
103
+.calendar table .wn {
104
+  padding: 2px 3px 2px 2px;
105
+  border-right: 1px solid #000;
106
+  background: #e8f4f0;
107
+}
108
+
109
+.calendar tbody .rowhilite td {
110
+  background: #d8e4e0;
111
+}
112
+
113
+.calendar tbody .rowhilite td.wn {
114
+  background: #c8d4d0;
115
+}
116
+
117
+.calendar tbody td.hilite { /* Hovered cells <TD> */
118
+  padding: 1px 3px 1px 1px;
119
+  border-top: 1px solid #fff;
120
+  border-right: 1px solid #000;
121
+  border-bottom: 1px solid #000;
122
+  border-left: 1px solid #fff;
123
+}
124
+
125
+.calendar tbody td.active { /* Active (pressed) cells <TD> */
126
+  padding: 2px 2px 0px 2px;
127
+  border-top: 1px solid #000;
128
+  border-right: 1px solid #fff;
129
+  border-bottom: 1px solid #fff;
130
+  border-left: 1px solid #000;
131
+}
132
+
133
+.calendar tbody td.selected { /* Cell showing selected date */
134
+  font-weight: bold;
135
+  border-top: 1px solid #000;
136
+  border-right: 1px solid #fff;
137
+  border-bottom: 1px solid #fff;
138
+  border-left: 1px solid #000;
139
+  padding: 2px 2px 0px 2px;
140
+  background: #d8e4e0;
141
+}
142
+
143
+.calendar tbody td.weekend { /* Cells showing weekend days */
144
+  color: #f00;
145
+}
146
+
147
+.calendar tbody td.today { /* Cell showing today date */
148
+  font-weight: bold;
149
+  color: #00f;
150
+}
151
+
152
+.calendar tbody .disabled { color: #999; }
153
+
154
+.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
155
+  visibility: hidden;
156
+}
157
+
158
+.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
159
+  display: none;
160
+}
161
+
162
+/* The footer part -- status bar and "Close" button */
163
+
164
+.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
165
+}
166
+
167
+.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
168
+  background: #e8f4f0;
169
+  padding: 1px;
170
+  border: 1px solid #000;
171
+  background: #788480;
172
+  color: #fff;
173
+  text-align: center;
174
+}
175
+
176
+.calendar tfoot .hilite { /* Hover style for buttons in footer */
177
+  border-top: 1px solid #fff;
178
+  border-right: 1px solid #000;
179
+  border-bottom: 1px solid #000;
180
+  border-left: 1px solid #fff;
181
+  padding: 1px;
182
+  background: #d8e4e0;
183
+}
184
+
185
+.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
186
+  padding: 2px 0px 0px 2px;
187
+  border-top: 1px solid #000;
188
+  border-right: 1px solid #fff;
189
+  border-bottom: 1px solid #fff;
190
+  border-left: 1px solid #000;
191
+}
192
+
193
+/* Combo boxes (menus that display months/years for direct selection) */
194
+
195
+.calendar .combo {
196
+  position: absolute;
197
+  display: none;
198
+  width: 4em;
199
+  top: 0px;
200
+  left: 0px;
201
+  cursor: default;
202
+  border-top: 1px solid #fff;
203
+  border-right: 1px solid #000;
204
+  border-bottom: 1px solid #000;
205
+  border-left: 1px solid #fff;
206
+  background: #d8e4e0;
207
+  font-size: 90%;
208
+  padding: 1px;
209
+  z-index: 100;
210
+}
211
+
212
+.calendar .combo .label,
213
+.calendar .combo .label-IEfix {
214
+  text-align: center;
215
+  padding: 1px;
216
+}
217
+
218
+.calendar .combo .label-IEfix {
219
+  width: 4em;
220
+}
221
+
222
+.calendar .combo .active {
223
+  background: #c8d4d0;
224
+  padding: 0px;
225
+  border-top: 1px solid #000;
226
+  border-right: 1px solid #fff;
227
+  border-bottom: 1px solid #fff;
228
+  border-left: 1px solid #000;
229
+}
230
+
231
+.calendar .combo .hilite {
232
+  background: #048;
233
+  color: #aef;
234
+}
235
+
236
+.calendar td.time {
237
+  border-top: 1px solid #000;
238
+  padding: 1px 0px;
239
+  text-align: center;
240
+  background-color: #e8f0f4;
241
+}
242
+
243
+.calendar td.time .hour,
244
+.calendar td.time .minute,
245
+.calendar td.time .ampm {
246
+  padding: 0px 3px 0px 4px;
247
+  border: 1px solid #889;
248
+  font-weight: bold;
249
+  background-color: #fff;
250
+}
251
+
252
+.calendar td.time .ampm {
253
+  text-align: center;
254
+}
255
+
256
+.calendar td.time .colon {
257
+  padding: 0px 2px 0px 3px;
258
+  font-weight: bold;
259
+}
260
+
261
+.calendar td.time span.hilite {
262
+  border-color: #000;
263
+  background-color: #667;
264
+  color: #fff;
265
+}
266
+
267
+.calendar td.time span.active {
268
+  border-color: #f00;
269
+  background-color: #000;
270
+  color: #0f0;
271
+}

+ 1811
- 0
jscalendar/calendar.js
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 119
- 0
jscalendar/calendar.php Просмотреть файл

@@ -0,0 +1,119 @@
1
+<?php
2
+
3
+/**
4
+ *  File: calendar.php | (c) dynarch.com 2004
5
+ *  Distributed as part of "The Coolest DHTML Calendar"
6
+ *  under the same terms.
7
+ *  -----------------------------------------------------------------
8
+ *  This file implements a simple PHP wrapper for the calendar.  It
9
+ *  allows you to easily include all the calendar files and setup the
10
+ *  calendar by instantiating and calling a PHP object.
11
+ */
12
+
13
+define('NEWLINE', "\n");
14
+
15
+class DHTML_Calendar {
16
+    var $calendar_lib_path;
17
+
18
+    var $calendar_file;
19
+    var $calendar_lang_file;
20
+    var $calendar_setup_file;
21
+    var $calendar_theme_file;
22
+    var $calendar_options;
23
+
24
+    function DHTML_Calendar($calendar_lib_path = '/calendar/',
25
+                            $lang              = 'en',
26
+                            $theme             = 'calendar-win2k-1',
27
+                            $stripped          = true) {
28
+        if ($stripped) {
29
+            $this->calendar_file = 'calendar_stripped.js';
30
+            $this->calendar_setup_file = 'calendar-setup_stripped.js';
31
+        } else {
32
+            $this->calendar_file = 'calendar.js';
33
+            $this->calendar_setup_file = 'calendar-setup.js';
34
+        }
35
+        $this->calendar_lang_file = 'lang/calendar-' . $lang . '.js';
36
+        $this->calendar_theme_file = $theme.'.css';
37
+        $this->calendar_lib_path = preg_replace('/\/+$/', '/', $calendar_lib_path);
38
+        $this->calendar_options = array('ifFormat' => '%Y/%m/%d',
39
+                                        'daFormat' => '%Y/%m/%d');
40
+    }
41
+
42
+    function set_option($name, $value) {
43
+        $this->calendar_options[$name] = $value;
44
+    }
45
+
46
+    function load_files() {
47
+        echo $this->get_load_files_code();
48
+    }
49
+
50
+    function get_load_files_code() {
51
+        $code  = ( '<link rel="stylesheet" type="text/css" media="all" href="' .
52
+                   $this->calendar_lib_path . $this->calendar_theme_file .
53
+                   '" />' . NEWLINE );
54
+        $code .= ( '<script type="text/javascript" src="' .
55
+                   $this->calendar_lib_path . $this->calendar_file .
56
+                   '"></script>' . NEWLINE );
57
+        $code .= ( '<script type="text/javascript" src="' .
58
+                   $this->calendar_lib_path . $this->calendar_lang_file .
59
+                   '"></script>' . NEWLINE );
60
+        $code .= ( '<script type="text/javascript" src="' .
61
+                   $this->calendar_lib_path . $this->calendar_setup_file .
62
+                   '"></script>' );
63
+        return $code;
64
+    }
65
+
66
+    function _make_calendar($other_options = array()) {
67
+        $js_options = $this->_make_js_hash(array_merge($this->calendar_options, $other_options));
68
+        $code  = ( '<script type="text/javascript">Calendar.setup({' .
69
+                   $js_options .
70
+                   '});</script>' );
71
+        return $code;
72
+    }
73
+
74
+    function make_input_field($cal_options = array(), $field_attributes = array()) {
75
+        $id = $this->_gen_id();
76
+        $attrstr = $this->_make_html_attr(array_merge($field_attributes,
77
+                                                      array('id'   => $this->_field_id($id),
78
+                                                            'type' => 'text')));
79
+        echo '<input ' . $attrstr .'/>';
80
+        echo '<a href="#" id="'. $this->_trigger_id($id) . '">' .
81
+            '<img align="middle" border="0" src="' . $this->calendar_lib_path . 'img.gif" alt="" /></a>';
82
+
83
+        $options = array_merge($cal_options,
84
+                               array('inputField' => $this->_field_id($id),
85
+                                     'button'     => $this->_trigger_id($id)));
86
+        echo $this->_make_calendar($options);
87
+    }
88
+
89
+    /// PRIVATE SECTION
90
+
91
+    function _field_id($id) { return 'f-calendar-field-' . $id; }
92
+    function _trigger_id($id) { return 'f-calendar-trigger-' . $id; }
93
+    function _gen_id() { static $id = 0; return ++$id; }
94
+
95
+    function _make_js_hash($array) {
96
+        $jstr = '';
97
+        reset($array);
98
+        while (list($key, $val) = each($array)) {
99
+            if (is_bool($val))
100
+                $val = $val ? 'true' : 'false';
101
+            else if (!is_numeric($val))
102
+                $val = '"'.$val.'"';
103
+            if ($jstr) $jstr .= ',';
104
+            $jstr .= '"' . $key . '":' . $val;
105
+        }
106
+        return $jstr;
107
+    }
108
+
109
+    function _make_html_attr($array) {
110
+        $attrstr = '';
111
+        reset($array);
112
+        while (list($key, $val) = each($array)) {
113
+            $attrstr .= $key . '="' . $val . '" ';
114
+        }
115
+        return $attrstr;
116
+    }
117
+};
118
+
119
+?>

+ 14
- 0
jscalendar/calendar_stripped.js
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 109
- 0
jscalendar/dayinfo.html Просмотреть файл

@@ -0,0 +1,109 @@
1
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2
+<html> <head>
3
+<title>How to include additional info in day cells</title>
4
+<script type="text/javascript" src="calendar.js"></script>
5
+<script type="text/javascript" src="lang/calendar-en.js"></script>
6
+<script type="text/javascript" src="calendar-setup.js"></script>
7
+<script type="text/javascript">
8
+  // define info for dates in this table:
9
+  var dateInfo = {
10
+    "20050308" : "Mishoo's&nbsp;birthday",
11
+    "20050310" : "foo",
12
+    "20050315" : "bar",
13
+    "20050318" : "25$",
14
+    "20050324" : "60$"
15
+  };
16
+</script>
17
+<style type="text/css">
18
+  @import url(calendar-win2k-1.css);
19
+  .calendar .inf { font-size: 80%; color: #444; }
20
+  .calendar .wn { font-weight: bold; vertical-align: top; }
21
+</style>
22
+</head>
23
+
24
+<body>
25
+<h1>How to include additional info in day cells</h1>
26
+
27
+<div id="flatcal" style="float: right"></div>
28
+
29
+<script type="text/javascript">
30
+  function getDateText(date, d) {
31
+    var inf = dateInfo[date.print("%Y%m%d")];
32
+    if (!inf) {
33
+      return d + "<div class='inf'>&nbsp;</div>";
34
+    } else {
35
+      return d + "<div class='inf'>" + inf + "</div>";
36
+    }
37
+  };
38
+  function flatCallback(cal) {
39
+    if (cal.dateClicked) {
40
+      // do something here
41
+      window.status = "Selected: " + cal.date;
42
+      var inf = dateInfo[cal.date.print("%Y%m%d")];
43
+      if (inf) {
44
+        window.status += ".  Additional info: " + inf;
45
+      }
46
+    }
47
+  };
48
+  Calendar.setup({
49
+     flat: "flatcal",
50
+     dateText: getDateText,
51
+     flatCallback: flatCallback
52
+  });
53
+</script>
54
+
55
+<p>The idea is simple:</p>
56
+
57
+<ol>
58
+  <li>
59
+    <p>Define a callback that takes two parameters like this:</p>
60
+    <pre>function getDateText(date, d)</pre>
61
+    <p>
62
+      This function will receive the date object as the first
63
+      parameter and the current date number (1..31) as the second (you
64
+      can get it as well by calling date.getDate() but since it's very
65
+      probably useful I thought I'd pass it too so that we can avoid a
66
+      function call).
67
+    </p>
68
+    <p>
69
+      This function <em>must</em> return the text to be inserted in
70
+      the cell of the passed date.  That is, one should at least
71
+      "return d;".
72
+    </p>
73
+  </li>
74
+  <li>
75
+    Pass the above function as the "dateText" parameter to
76
+    Calendar.setup.
77
+  </li>
78
+</ol>
79
+
80
+<p>
81
+  The function could simply look like:
82
+</p>
83
+
84
+<pre
85
+>  function getDateText(date, d) {
86
+    if (d == 12) {
87
+      return "12th";
88
+    } else if (d == 13) {
89
+      return "bad luck";
90
+    } /* ... etc ... */
91
+  }</pre>
92
+
93
+<p>
94
+  but it's easy to imagine that this approach sucks.  For a better
95
+  way, see the source of this page and note the usage of an externally
96
+  defined "dateText" object which maps "date" to "date info", also
97
+  taking into account the year and month.  This object can be easily
98
+  generated from a database, and the getDateText function becomes
99
+  extremely simple (and static).
100
+</p>
101
+
102
+<p>
103
+  Cheers!
104
+</p>
105
+
106
+<hr />
107
+<address><a href="http://dynarch.com/mishoo/">mishoo</a></address>
108
+<!-- hhmts start --> Last modified: Sat Mar  5 17:18:06 EET 2005 <!-- hhmts end -->
109
+</body> </html>

Двоичные данные
jscalendar/doc/html/field-button.jpg Просмотреть файл


+ 193
- 0
jscalendar/doc/html/reference-Z-S.css Просмотреть файл

@@ -0,0 +1,193 @@
1
+
2
+               body {
3
+               color: black;
4
+               /*   background-color: #e5e5e5;*/
5
+               background-color: #ffffff;
6
+               /*background-color: beige;*/
7
+               margin-top: 2em;
8
+               margin-left: 8%;
9
+               margin-right: 8%;
10
+               }
11
+
12
+               h1,h2,h3,h4,h5,h6 {
13
+               margin-top: .5em;
14
+               }
15
+
16
+               .title {
17
+               font-size: 200%;
18
+               font-weight: normal;
19
+               }
20
+
21
+               .partheading {
22
+               font-size: 100%;
23
+               }
24
+
25
+               .chapterheading {
26
+               font-size: 100%;
27
+               }
28
+
29
+               .beginsection {
30
+               font-size: 110%;
31
+               }
32
+
33
+               .tiny {
34
+               font-size: 40%;
35
+               }
36
+
37
+               .scriptsize {
38
+               font-size: 60%;
39
+               }
40
+
41
+               .footnotesize {
42
+               font-size: 75%;
43
+               }
44
+
45
+               .small {
46
+               font-size: 90%;
47
+               }
48
+
49
+               .normalsize {
50
+               font-size: 100%;
51
+               }
52
+
53
+               .large {
54
+               font-size: 120%;
55
+               }
56
+
57
+               .largecap {
58
+               font-size: 150%;
59
+               }
60
+
61
+               .largeup {
62
+               font-size: 200%;
63
+               }
64
+
65
+               .huge {
66
+               font-size: 300%;
67
+               }
68
+
69
+               .hugecap {
70
+               font-size: 350%;
71
+               }
72
+
73
+               pre {
74
+               margin-left: 2em;
75
+               }
76
+
77
+               blockquote {
78
+               margin-left: 2em;
79
+               }
80
+
81
+               ol {
82
+               list-style-type: decimal;
83
+               }
84
+
85
+               ol ol {
86
+               list-style-type: lower-alpha;
87
+               }
88
+
89
+               ol ol ol {
90
+               list-style-type: lower-roman;
91
+               }
92
+
93
+               ol ol ol ol {
94
+               list-style-type: upper-alpha;
95
+               }
96
+
97
+               /*
98
+               .verbatim {
99
+               color: #4d0000;
100
+               }
101
+               */
102
+
103
+               tt i {
104
+               font-family: serif;
105
+               }
106
+
107
+               .verbatim em {
108
+               font-family: serif;
109
+               }
110
+
111
+               .scheme em {
112
+               font-family: serif;
113
+               color: black;
114
+               }
115
+
116
+               .scheme {
117
+               color: brown;
118
+               }
119
+
120
+               .scheme .keyword {
121
+               color: #990000;
122
+               font-weight: bold;
123
+               }
124
+
125
+               .scheme .builtin {
126
+               color: #990000;
127
+               }
128
+
129
+               .scheme .variable {
130
+               color: navy;
131
+               }
132
+
133
+               .scheme .global {
134
+               color: purple;
135
+               }
136
+
137
+               .scheme .selfeval {
138
+               color: green;
139
+               }
140
+
141
+               .scheme .comment {
142
+               color:  teal;
143
+               }
144
+
145
+               .schemeresponse {
146
+               color: green;
147
+               }
148
+
149
+               .navigation {
150
+               color: red;
151
+               text-align: right;
152
+               font-size: medium;
153
+               font-style: italic;
154
+               }
155
+
156
+               .disable {
157
+               /* color: #e5e5e5; */
158
+               color: gray;
159
+               }
160
+
161
+               .smallcaps {
162
+               font-size: 75%;
163
+               }
164
+
165
+               .smallprint {
166
+               color: gray;
167
+               font-size: 75%;
168
+               text-align: right;
169
+               }
170
+
171
+               /*
172
+               .smallprint hr {
173
+               text-align: left;
174
+               width: 40%;
175
+               }
176
+               */
177
+
178
+               .footnoterule {
179
+               text-align: left;
180
+               width: 40%;
181
+               }
182
+
183
+               .colophon {
184
+               color: gray;
185
+               font-size: 80%;
186
+               text-align: right;
187
+               }
188
+
189
+               .colophon a {
190
+               color: gray;
191
+               }
192
+
193
+               

+ 34
- 0
jscalendar/doc/html/reference.css Просмотреть файл

@@ -0,0 +1,34 @@
1
+html { margin: 0px; padding: 0px; background-color: #08f; color: #444; font-family: georgia,serif; }
2
+body { margin: 2em 8%; background-color: #fff; padding: 1em; border: 2px ridge #048; }
3
+
4
+a:link, a:visited { text-decoration: none; color: #00f; }
5
+a:hover { color: #f00; text-decoration: underline; }
6
+a:active { color: #f84; }
7
+
8
+h1, h2, h3, h4, h5, h6 { font-family: tahoma,verdana,sans-serif; }
9
+
10
+h2, h3 { font-weight: normal; }
11
+
12
+h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover { text-decoration: none; }
13
+
14
+h1 { font-size: 170%; border: 2px ridge #048; letter-spacing: 2px; color: #000; margin-left: -2em; margin-right: -2em; 
15
+background-color: #fff; padding: 2px 1em; background-color: #def; }
16
+h2 { font-size: 140%; color: #222; }
17
+h3 { font-size: 120%; color: #444; }
18
+
19
+h1.title { font-size: 300%; font-family: georgia,serif; font-weight: normal; color: #846; letter-spacing: -1px;
20
+border: none;
21
+padding: none;
22
+background-color: #fff;
23
+border-bottom: 3px double #624; padding-bottom: 2px; margin-left: 8%; margin-right: 8%; }
24
+
25
+.colophon { padding-top: 2em; color: #999; font-size: 90%; font-family: georgia,"times new roman",serif; }
26
+.colophon a:link, .colophon a:visited { color: #755; }
27
+.colophon a:hover { color: #422; text-decoration: underline; }
28
+
29
+.footnote { font-size: 90%; font-style: italic; font-family: georgia,"times new roman",serif; margin: 0px 3em; }
30
+.footnote sup { font-size: 120%; padding: 0px 0.3em; position: relative; top: -0.2em; }
31
+
32
+.small { font-size: 90%; }
33
+
34
+.verbatim { background-color: #eee; padding: 0.2em 1em; border: 1px solid #aaa; }

+ 1738
- 0
jscalendar/doc/html/reference.html
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Двоичные данные
jscalendar/doc/reference.pdf Просмотреть файл


Двоичные данные
jscalendar/img.gif Просмотреть файл


+ 330
- 0
jscalendar/index.html Просмотреть файл

@@ -0,0 +1,330 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+<html xmlns="http://www.w3.org/1999/xhtml">
4
+<!-- $Id: index.html,v 1.15 2005/03/05 14:38:10 mishoo Exp $ -->
5
+
6
+<head>
7
+<meta http-equiv="content-type" content="text/xml; charset=utf-8" />
8
+<title>The Coolest DHTML Calendar - Online Demo</title>
9
+<link rel="stylesheet" type="text/css" media="all" href="skins/aqua/theme.css" title="Aqua" />
10
+<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-blue.css" title="winter" />
11
+<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-blue2.css" title="blue" />
12
+<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-brown.css" title="summer" />
13
+<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-green.css" title="green" />
14
+<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-1.css" title="win2k-1" />
15
+<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-2.css" title="win2k-2" />
16
+<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-cold-1.css" title="win2k-cold-1" />
17
+<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-cold-2.css" title="win2k-cold-2" />
18
+<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-system.css" title="system" />
19
+
20
+<!-- import the calendar script -->
21
+<script type="text/javascript" src="calendar.js"></script>
22
+
23
+<!-- import the language module -->
24
+<script type="text/javascript" src="lang/calendar-en.js"></script>
25
+
26
+<!-- other languages might be available in the lang directory; please check
27
+your distribution archive. -->
28
+
29
+<!-- helper script that uses the calendar -->
30
+<script type="text/javascript">
31
+
32
+var oldLink = null;
33
+// code to change the active stylesheet
34
+function setActiveStyleSheet(link, title) {
35
+  var i, a, main;
36
+  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
37
+    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
38
+      a.disabled = true;
39
+      if(a.getAttribute("title") == title) a.disabled = false;
40
+    }
41
+  }
42
+  if (oldLink) oldLink.style.fontWeight = 'normal';
43
+  oldLink = link;
44
+  link.style.fontWeight = 'bold';
45
+  return false;
46
+}
47
+
48
+// This function gets called when the end-user clicks on some date.
49
+function selected(cal, date) {
50
+  cal.sel.value = date; // just update the date in the input field.
51
+  if (cal.dateClicked && (cal.sel.id == "sel1" || cal.sel.id == "sel3"))
52
+    // if we add this call we close the calendar on single-click.
53
+    // just to exemplify both cases, we are using this only for the 1st
54
+    // and the 3rd field, while 2nd and 4th will still require double-click.
55
+    cal.callCloseHandler();
56
+}
57
+
58
+// And this gets called when the end-user clicks on the _selected_ date,
59
+// or clicks on the "Close" button.  It just hides the calendar without
60
+// destroying it.
61
+function closeHandler(cal) {
62
+  cal.hide();                        // hide the calendar
63
+//  cal.destroy();
64
+  _dynarch_popupCalendar = null;
65
+}
66
+
67
+// This function shows the calendar under the element having the given id.
68
+// It takes care of catching "mousedown" signals on document and hiding the
69
+// calendar if the click was outside.
70
+function showCalendar(id, format, showsTime, showsOtherMonths) {
71
+  var el = document.getElementById(id);
72
+  if (_dynarch_popupCalendar != null) {
73
+    // we already have some calendar created
74
+    _dynarch_popupCalendar.hide();                 // so we hide it first.
75
+  } else {
76
+    // first-time call, create the calendar.
77
+    var cal = new Calendar(1, null, selected, closeHandler);
78
+    // uncomment the following line to hide the week numbers
79
+    // cal.weekNumbers = false;
80
+    if (typeof showsTime == "string") {
81
+      cal.showsTime = true;
82
+      cal.time24 = (showsTime == "24");
83
+    }
84
+    if (showsOtherMonths) {
85
+      cal.showsOtherMonths = true;
86
+    }
87
+    _dynarch_popupCalendar = cal;                  // remember it in the global var
88
+    cal.setRange(1900, 2070);        // min/max year allowed.
89
+    cal.create();
90
+  }
91
+  _dynarch_popupCalendar.setDateFormat(format);    // set the specified date format
92
+  _dynarch_popupCalendar.parseDate(el.value);      // try to parse the text in field
93
+  _dynarch_popupCalendar.sel = el;                 // inform it what input field we use
94
+
95
+  // the reference element that we pass to showAtElement is the button that
96
+  // triggers the calendar.  In this example we align the calendar bottom-right
97
+  // to the button.
98
+  _dynarch_popupCalendar.showAtElement(el.nextSibling, "Br");        // show the calendar
99
+
100
+  return false;
101
+}
102
+
103
+var MINUTE = 60 * 1000;
104
+var HOUR = 60 * MINUTE;
105
+var DAY = 24 * HOUR;
106
+var WEEK = 7 * DAY;
107
+
108
+// If this handler returns true then the "date" given as
109
+// parameter will be disabled.  In this example we enable
110
+// only days within a range of 10 days from the current
111
+// date.
112
+// You can use the functions date.getFullYear() -- returns the year
113
+// as 4 digit number, date.getMonth() -- returns the month as 0..11,
114
+// and date.getDate() -- returns the date of the month as 1..31, to
115
+// make heavy calculations here.  However, beware that this function
116
+// should be very fast, as it is called for each day in a month when
117
+// the calendar is (re)constructed.
118
+function isDisabled(date) {
119
+  var today = new Date();
120
+  return (Math.abs(date.getTime() - today.getTime()) / DAY) > 10;
121
+}
122
+
123
+function flatSelected(cal, date) {
124
+  var el = document.getElementById("preview");
125
+  el.innerHTML = date;
126
+}
127
+
128
+function showFlatCalendar() {
129
+  var parent = document.getElementById("display");
130
+
131
+  // construct a calendar giving only the "selected" handler.
132
+  var cal = new Calendar(0, null, flatSelected);
133
+
134
+  // hide week numbers
135
+  cal.weekNumbers = false;
136
+
137
+  // We want some dates to be disabled; see function isDisabled above
138
+  cal.setDisabledHandler(isDisabled);
139
+  cal.setDateFormat("%A, %B %e");
140
+
141
+  // this call must be the last as it might use data initialized above; if
142
+  // we specify a parent, as opposite to the "showCalendar" function above,
143
+  // then we create a flat calendar -- not popup.  Hidden, though, but...
144
+  cal.create(parent);
145
+
146
+  // ... we can show it here.
147
+  cal.show();
148
+}
149
+</script>
150
+
151
+<style type="text/css">
152
+.ex { font-weight: bold; background: #fed; color: #080 }
153
+.help { color: #080; font-style: italic; }
154
+body { background: #fea; font: 10pt tahoma,verdana,sans-serif; }
155
+table { font: 13px verdana,tahoma,sans-serif; }
156
+a { color: #00f; }
157
+a:visited { color: #00f; }
158
+a:hover { color: #f00; background: #fefaf0; }
159
+a:active { color: #08f; }
160
+.key { border: 1px solid #000; background: #fff; color: #008;
161
+padding: 0px 5px; cursor: default; font-size: 80%; }
162
+</style>
163
+
164
+</head>
165
+<body onload="showFlatCalendar()">
166
+
167
+<h2><a href="http://www.dynarch.com/projects/calendar/"
168
+title="Visit the project website">jscalendar</a>-1.0
169
+"It is happening again"</h2>
170
+
171
+<p>
172
+<div style="float: right; border: 1px solid #b87; padding: 2px; font-size: 90%; background: #ffb;">
173
+Theme:<br />
174
+<a href="#" id="defaultTheme" onclick="return setActiveStyleSheet(this, 'Aqua');">Aqua</a>
175
+|
176
+<a href="#" onclick="return setActiveStyleSheet(this, 'winter');">winter</a>
177
+|
178
+<a href="#" onclick="return setActiveStyleSheet(this, 'blue');">blue</a>
179
+|
180
+<a href="#" onclick="return setActiveStyleSheet(this, 'summer');">summer</a>
181
+|
182
+<a href="#" onclick="return setActiveStyleSheet(this, 'green');">green</a>
183
+<br />
184
+<a href="#" onclick="return setActiveStyleSheet(this, 'win2k-1');">win2k-1</a>
185
+|
186
+<a href="#" onclick="return setActiveStyleSheet(this, 'win2k-2');">win2k-2</a>
187
+|
188
+<a href="#" onclick="return setActiveStyleSheet(this, 'win2k-cold-1');">win2k-cold-1</a>
189
+|
190
+<a href="#" onclick="return setActiveStyleSheet(this, 'win2k-cold-2');">win2k-cold-2</a>
191
+<br />
192
+<a href="#" onclick="return setActiveStyleSheet(this, 'system');">system</a>
193
+<script type="text/javascript">
194
+setActiveStyleSheet(document.getElementById("defaultTheme"), "Aqua");
195
+</script>
196
+</div>
197
+<a href="release-notes.html">Release notes</a>.
198
+<br />
199
+Set it up in minutes:
200
+  <a href="simple-1.html">popup calendar</a>,
201
+  <a href="simple-2.html">flat calendar</a>.
202
+Other samples:
203
+  <a href="simple-3.html">special days</a>,
204
+  <a href="dayinfo.html">day info</a>,
205
+  <a href="multiple-dates.html">multiple dates selection</a>
206
+<br />
207
+Documentation:
208
+  <a href="doc/html/reference.html">HTML</a>,
209
+  <a href="doc/reference.pdf">PDF</a>.
210
+<br />
211
+</p>
212
+
213
+<div style="padding-left:20px; font-size: 90%; font-style: italic;">
214
+
215
+</div>
216
+
217
+<table style="width: 100%">
218
+<tr valign="top">
219
+<td style="background: #ffa; padding: 5px; border: 1px solid #995;">
220
+
221
+<form action="#">
222
+<div style="background: #995; color: #ffa; font-weight: bold; padding: 2px;">
223
+Popup examples
224
+</div>
225
+
226
+<br />
227
+
228
+<b>Date #1:</b> <input type="text" name="date1" id="sel1" size="30"
229
+><input type="reset" value=" ... "
230
+onclick="return showCalendar('sel1', '%Y-%m-%d [%W] %H:%M', '24', true);"> %Y-%m-%d [%W] %H:%M -- single
231
+click<br />
232
+
233
+<b>Date #2:</b> <input type="text" name="date2" id="sel2" size="30"
234
+><input type="reset" value=" ... "
235
+onclick="return showCalendar('sel2', '%a, %b %e, %Y [%I:%M %p]', '12');"> %a, %b %e, %Y [%I:%M %p]
236
+-- double click
237
+
238
+<br /><br />
239
+<!--
240
+if you remove this comment and leave the following HTML code
241
+you will see a horrible effect, in all supported browsers (IE and Mozilla).
242
+-->
243
+<SELECT multiple size="4" name="component-select">
244
+  <OPTION selected value="Component_1_a">Component_1</OPTION>
245
+  <OPTION selected value="Component_1_b">Component_2</OPTION>
246
+  <OPTION>Component_3</OPTION>
247
+  <OPTION>Component_4</OPTION>
248
+  <OPTION>Component_5</OPTION>
249
+  <OPTION>Component_6</OPTION>
250
+  <OPTION>Component_7</OPTION>
251
+</SELECT>
252
+this select should hide when the calendar is above it.
253
+<br /><br />
254
+
255
+<b>Date #3:</b> <input type="text" name="date3" id="sel3" size="30"
256
+><input type="reset" value=" ... "
257
+onclick="return showCalendar('sel3', '%d/%m/%Y');"> %d/%m/%Y
258
+-- single click
259
+<br />
260
+
261
+<b>Date #4:</b> <input type="text" name="date4" id="sel4" size="30"
262
+><input type="reset" value=" ... "
263
+onclick="return showCalendar('sel4', '%A, %B %e, %Y');"> %A, %B %e, %Y --
264
+double click
265
+
266
+</form>
267
+
268
+<p>This is release <b>1.0</b>.  Works on MSIE/Win 5.0 or better (really),
269
+Opera 7+, Mozilla, Firefox, Netscape 6.x, 7.0 and all other Gecko-s,
270
+Konqueror and Safari.</p>
271
+
272
+<h4>Keyboard navigation</h4>
273
+
274
+<p>Starting with version 0.9.2, you can also use the keyboard to select
275
+dates (only for popup calendars; does <em>not</em> work with Opera
276
+7 or Konqueror/Safari).  The following keys are available:</p>
277
+
278
+<ul>
279
+
280
+  <li><span class="key">&larr;</span> , <span class="key">&rarr;</span> ,
281
+  <span class="key">&uarr;</span> , <span class="key">&darr;</span> -- select date</li>
282
+  <li><span class="key">CTRL</span> + <span class="key">&larr;</span> ,
283
+  <span class="key">&rarr;</span> -- select month</li>
284
+  <li><span class="key">CTRL</span> + <span class="key">&uarr;</span> ,
285
+  <span class="key">&darr;</span> -- select year</li>
286
+  <li><span class="key">SPACE</span> -- go to <em>today</em> date</li>
287
+  <li><span class="key">ENTER</span> -- accept the currently selected date</li>
288
+  <li><span class="key">ESC</span> -- cancel selection</li>
289
+
290
+</ul>
291
+
292
+          </td>
293
+
294
+          <td style="padding: 5px; margin: 5px; border: 1px solid #984; background: #ed9; width: 19em;">
295
+
296
+            <div style="background: #984; color: #fea; font-weight: bold; padding: 2px; text-align: center">
297
+              Flat calendar
298
+            </div>
299
+
300
+            <p style="width: 12em"><small>A non-popup version will appear below as soon
301
+              as the page is loaded.  Note that it doesn't show the week number.</small></p>
302
+
303
+            <!-- the calendar will be inserted here -->
304
+            <div id="display" style="float: right; clear: both;"></div>
305
+            <div id="preview" style="font-size: 80%; text-align: center; padding: 2px">&nbsp;</div>
306
+
307
+            <p style="clear: both;"><small>
308
+              The example above uses the <code>setDisabledHandler()</code> member function
309
+              to setup a handler that would only enable days withing a range of 10 days,
310
+              forward or backward, from the current date.
311
+            </small></p>
312
+
313
+          </div>
314
+
315
+          </td>
316
+
317
+        </tr>
318
+      </table>
319
+
320
+<hr /><address>
321
+&copy; <a href="http://www.dynarch.com/">dynarch.com</a> 2002-2005 <br />
322
+Author: <a href="http://www.bazon.net/mishoo/">Mihai
323
+Bazon</a><br /> Distributed under the <a
324
+href="http://www.gnu.org/licenses/lgpl.html">GNU LGPL</a>.</address>
325
+
326
+<p style="font-size: smaller">If you use this script on a public page we
327
+would love it if you would <a href="http://www.dynarch.com/contact.html">let us
328
+know</a>.</p>
329
+
330
+</body></html>

+ 39
- 0
jscalendar/lang/calendar-af.js Просмотреть файл

@@ -0,0 +1,39 @@
1
+// ** I18N Afrikaans
2
+Calendar._DN = new Array
3
+("Sondag",
4
+ "Maandag",
5
+ "Dinsdag",
6
+ "Woensdag",
7
+ "Donderdag",
8
+ "Vrydag",
9
+ "Saterdag",
10
+ "Sondag");
11
+Calendar._MN = new Array
12
+("Januarie",
13
+ "Februarie",
14
+ "Maart",
15
+ "April",
16
+ "Mei",
17
+ "Junie",
18
+ "Julie",
19
+ "Augustus",
20
+ "September",
21
+ "Oktober",
22
+ "November",
23
+ "Desember");
24
+
25
+// tooltips
26
+Calendar._TT = {};
27
+Calendar._TT["TOGGLE"] = "Verander eerste dag van die week";
28
+Calendar._TT["PREV_YEAR"] = "Vorige jaar (hou vir keuselys)";
29
+Calendar._TT["PREV_MONTH"] = "Vorige maand (hou vir keuselys)";
30
+Calendar._TT["GO_TODAY"] = "Gaan na vandag";
31
+Calendar._TT["NEXT_MONTH"] = "Volgende maand (hou vir keuselys)";
32
+Calendar._TT["NEXT_YEAR"] = "Volgende jaar (hou vir keuselys)";
33
+Calendar._TT["SEL_DATE"] = "Kies datum";
34
+Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te skuif";
35
+Calendar._TT["PART_TODAY"] = " (vandag)";
36
+Calendar._TT["MON_FIRST"] = "Vertoon Maandag eerste";
37
+Calendar._TT["SUN_FIRST"] = "Display Sunday first";
38
+Calendar._TT["CLOSE"] = "Close";
39
+Calendar._TT["TODAY"] = "Today";

+ 101
- 0
jscalendar/lang/calendar-al.js Просмотреть файл

@@ -0,0 +1,101 @@
1
+// Calendar ALBANIAN language
2
+//author Rigels Gordani rige@hotmail.com
3
+
4
+// ditet
5
+Calendar._DN = new Array
6
+("E Diele",
7
+"E Hene",
8
+"E Marte",
9
+"E Merkure",
10
+"E Enjte",
11
+"E Premte",
12
+"E Shtune",
13
+"E Diele");
14
+
15
+//ditet shkurt
16
+Calendar._SDN = new Array
17
+("Die",
18
+"Hen",
19
+"Mar",
20
+"Mer",
21
+"Enj",
22
+"Pre",
23
+"Sht",
24
+"Die");
25
+
26
+// muajt
27
+Calendar._MN = new Array
28
+("Janar",
29
+"Shkurt",
30
+"Mars",
31
+"Prill",
32
+"Maj",
33
+"Qeshor",
34
+"Korrik",
35
+"Gusht",
36
+"Shtator",
37
+"Tetor",
38
+"Nentor",
39
+"Dhjetor");
40
+
41
+// muajte shkurt
42
+Calendar._SMN = new Array
43
+("Jan",
44
+"Shk",
45
+"Mar",
46
+"Pri",
47
+"Maj",
48
+"Qes",
49
+"Kor",
50
+"Gus",
51
+"Sht",
52
+"Tet",
53
+"Nen",
54
+"Dhj");
55
+
56
+// ndihmesa
57
+Calendar._TT = {};
58
+Calendar._TT["INFO"] = "Per kalendarin";
59
+
60
+Calendar._TT["ABOUT"] =
61
+"Zgjedhes i ores/dates ne DHTML \n" +
62
+"\n\n" +"Zgjedhja e Dates:\n" +
63
+"- Perdor butonat \xab, \xbb per te zgjedhur vitin\n" +
64
+"- Perdor  butonat" + String.fromCharCode(0x2039) + ", " + 
65
+String.fromCharCode(0x203a) +
66
+" per te  zgjedhur muajin\n" +
67
+"- Mbani shtypur butonin e mousit per nje zgjedje me te shpejte.";
68
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
69
+"Zgjedhja e kohes:\n" +
70
+"- Kliko tek ndonje nga pjeset e ores per ta rritur ate\n" +
71
+"- ose kliko me Shift per ta zvogeluar ate\n" +
72
+"- ose cliko dhe terhiq per zgjedhje me te shpejte.";
73
+
74
+Calendar._TT["PREV_YEAR"] = "Viti i shkuar (prit per menune)";
75
+Calendar._TT["PREV_MONTH"] = "Muaji i shkuar (prit per menune)";
76
+Calendar._TT["GO_TODAY"] = "Sot";
77
+Calendar._TT["NEXT_MONTH"] = "Muaji i ardhshem (prit per menune)";
78
+Calendar._TT["NEXT_YEAR"] = "Viti i ardhshem (prit per menune)";
79
+Calendar._TT["SEL_DATE"] = "Zgjidh daten";
80
+Calendar._TT["DRAG_TO_MOVE"] = "Terhiqe per te levizur";
81
+Calendar._TT["PART_TODAY"] = " (sot)";
82
+
83
+// "%s" eshte dita e pare e javes
84
+// %s do te zevendesohet me emrin e dite
85
+Calendar._TT["DAY_FIRST"] = "Trego te %s te paren";
86
+
87
+
88
+Calendar._TT["WEEKEND"] = "0,6";
89
+
90
+Calendar._TT["CLOSE"] = "Mbyll";
91
+Calendar._TT["TODAY"] = "Sot";
92
+Calendar._TT["TIME_PART"] = "Kliko me (Shift-)ose terhiqe per te ndryshuar 
93
+vleren";
94
+
95
+// date formats
96
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
97
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
98
+
99
+Calendar._TT["WK"] = "Java";
100
+Calendar._TT["TIME"] = "Koha:";
101
+

+ 124
- 0
jscalendar/lang/calendar-bg.js Просмотреть файл

@@ -0,0 +1,124 @@
1
+// ** I18N
2
+
3
+// Calendar BG language
4
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
5
+// Translator: Valentin Sheiretsky, <valio@valio.eu.org>
6
+// Encoding: Windows-1251
7
+// Distributed under the same terms as the calendar itself.
8
+
9
+// For translators: please use UTF-8 if possible.  We strongly believe that
10
+// Unicode is the answer to a real internationalized world.  Also please
11
+// include your contact information in the header, as can be seen above.
12
+
13
+// full day names
14
+Calendar._DN = new Array
15
+("Íåäåëÿ",
16
+ "Ïîíåäåëíèê",
17
+ "Âòîðíèê",
18
+ "Ñðÿäà",
19
+ "×åòâúðòúê",
20
+ "Ïåòúê",
21
+ "Ñúáîòà",
22
+ "Íåäåëÿ");
23
+
24
+// Please note that the following array of short day names (and the same goes
25
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
26
+// for exemplification on how one can customize the short day names, but if
27
+// they are simply the first N letters of the full name you can simply say:
28
+//
29
+//   Calendar._SDN_len = N; // short day name length
30
+//   Calendar._SMN_len = N; // short month name length
31
+//
32
+// If N = 3 then this is not needed either since we assume a value of 3 if not
33
+// present, to be compatible with translation files that were written before
34
+// this feature.
35
+
36
+// short day names
37
+Calendar._SDN = new Array
38
+("Íåä",
39
+ "Ïîí",
40
+ "Âòî",
41
+ "Ñðÿ",
42
+ "×åò",
43
+ "Ïåò",
44
+ "Ñúá",
45
+ "Íåä");
46
+
47
+// full month names
48
+Calendar._MN = new Array
49
+("ßíóàðè",
50
+ "Ôåâðóàðè",
51
+ "Ìàðò",
52
+ "Àïðèë",
53
+ "Ìàé",
54
+ "Þíè",
55
+ "Þëè",
56
+ "Àâãóñò",
57
+ "Ñåïòåìâðè",
58
+ "Îêòîìâðè",
59
+ "Íîåìâðè",
60
+ "Äåêåìâðè");
61
+
62
+// short month names
63
+Calendar._SMN = new Array
64
+("ßíó",
65
+ "Ôåâ",
66
+ "Ìàð",
67
+ "Àïð",
68
+ "Ìàé",
69
+ "Þíè",
70
+ "Þëè",
71
+ "Àâã",
72
+ "Ñåï",
73
+ "Îêò",
74
+ "Íîå",
75
+ "Äåê");
76
+
77
+// tooltips
78
+Calendar._TT = {};
79
+Calendar._TT["INFO"] = "Èíôîðìàöèÿ çà êàëåíäàðà";
80
+
81
+Calendar._TT["ABOUT"] =
82
+"DHTML Date/Time Selector\n" +
83
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
84
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
85
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
86
+"\n\n" +
87
+"Date selection:\n" +
88
+"- Use the \xab, \xbb buttons to select year\n" +
89
+"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
90
+"- Hold mouse button on any of the above buttons for faster selection.";
91
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
92
+"Time selection:\n" +
93
+"- Click on any of the time parts to increase it\n" +
94
+"- or Shift-click to decrease it\n" +
95
+"- or click and drag for faster selection.";
96
+
97
+Calendar._TT["PREV_YEAR"] = "Ïðåäíà ãîäèíà (çàäðúæòå çà ìåíþ)";
98
+Calendar._TT["PREV_MONTH"] = "Ïðåäåí ìåñåö (çàäðúæòå çà ìåíþ)";
99
+Calendar._TT["GO_TODAY"] = "Èçáåðåòå äíåñ";
100
+Calendar._TT["NEXT_MONTH"] = "Ñëåäâàù ìåñåö (çàäðúæòå çà ìåíþ)";
101
+Calendar._TT["NEXT_YEAR"] = "Ñëåäâàùà ãîäèíà (çàäðúæòå çà ìåíþ)";
102
+Calendar._TT["SEL_DATE"] = "Èçáåðåòå äàòà";
103
+Calendar._TT["DRAG_TO_MOVE"] = "Ïðåìåñòâàíå";
104
+Calendar._TT["PART_TODAY"] = " (äíåñ)";
105
+
106
+// the following is to inform that "%s" is to be the first day of week
107
+// %s will be replaced with the day name.
108
+Calendar._TT["DAY_FIRST"] = "%s êàòî ïúðâè äåí";
109
+
110
+// This may be locale-dependent.  It specifies the week-end days, as an array
111
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
112
+// means Monday, etc.
113
+Calendar._TT["WEEKEND"] = "0,6";
114
+
115
+Calendar._TT["CLOSE"] = "Çàòâîðåòå";
116
+Calendar._TT["TODAY"] = "Äíåñ";
117
+Calendar._TT["TIME_PART"] = "(Shift-)Click èëè drag çà äà ïðîìåíèòå ñòîéíîñòòà";
118
+
119
+// date formats
120
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
121
+Calendar._TT["TT_DATE_FORMAT"] = "%A - %e %B %Y";
122
+
123
+Calendar._TT["WK"] = "Ñåäì";
124
+Calendar._TT["TIME"] = "×àñ:";

+ 123
- 0
jscalendar/lang/calendar-big5-utf8.js Просмотреть файл

@@ -0,0 +1,123 @@
1
+// ** I18N
2
+
3
+// Calendar big5-utf8 language
4
+// Author: Gary Fu, <gary@garyfu.idv.tw>
5
+// Encoding: utf8
6
+// Distributed under the same terms as the calendar itself.
7
+
8
+// For translators: please use UTF-8 if possible.  We strongly believe that
9
+// Unicode is the answer to a real internationalized world.  Also please
10
+// include your contact information in the header, as can be seen above.
11
+	
12
+// full day names
13
+Calendar._DN = new Array
14
+("星期日",
15
+ "星期一",
16
+ "星期二",
17
+ "星期三",
18
+ "星期四",
19
+ "星期五",
20
+ "星期六",
21
+ "星期日");
22
+
23
+// Please note that the following array of short day names (and the same goes
24
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
25
+// for exemplification on how one can customize the short day names, but if
26
+// they are simply the first N letters of the full name you can simply say:
27
+//
28
+//   Calendar._SDN_len = N; // short day name length
29
+//   Calendar._SMN_len = N; // short month name length
30
+//
31
+// If N = 3 then this is not needed either since we assume a value of 3 if not
32
+// present, to be compatible with translation files that were written before
33
+// this feature.
34
+
35
+// short day names
36
+Calendar._SDN = new Array
37
+("日",
38
+ "一",
39
+ "二",
40
+ "三",
41
+ "四",
42
+ "五",
43
+ "六",
44
+ "日");
45
+
46
+// full month names
47
+Calendar._MN = new Array
48
+("一月",
49
+ "二月",
50
+ "三月",
51
+ "四月",
52
+ "五月",
53
+ "六月",
54
+ "七月",
55
+ "八月",
56
+ "九月",
57
+ "十月",
58
+ "十一月",
59
+ "十二月");
60
+
61
+// short month names
62
+Calendar._SMN = new Array
63
+("一月",
64
+ "二月",
65
+ "三月",
66
+ "四月",
67
+ "五月",
68
+ "六月",
69
+ "七月",
70
+ "八月",
71
+ "九月",
72
+ "十月",
73
+ "十一月",
74
+ "十二月");
75
+
76
+// tooltips
77
+Calendar._TT = {};
78
+Calendar._TT["INFO"] = "關於";
79
+
80
+Calendar._TT["ABOUT"] =
81
+"DHTML Date/Time Selector\n" +
82
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
83
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
84
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
85
+"\n\n" +
86
+"日期選擇方法:\n" +
87
+"- 使用 \xab, \xbb 按鈕可選擇年份\n" +
88
+"- 使用 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 按鈕可選擇月份\n" +
89
+"- 按住上面的按鈕可以加快選取";
90
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
91
+"時間選擇方法:\n" +
92
+"- 點擊任何的時間部份可增加其值\n" +
93
+"- 同時按Shift鍵再點擊可減少其值\n" +
94
+"- 點擊並拖曳可加快改變的值";
95
+
96
+Calendar._TT["PREV_YEAR"] = "上一年 (按住選單)";
97
+Calendar._TT["PREV_MONTH"] = "下一年 (按住選單)";
98
+Calendar._TT["GO_TODAY"] = "到今日";
99
+Calendar._TT["NEXT_MONTH"] = "上一月 (按住選單)";
100
+Calendar._TT["NEXT_YEAR"] = "下一月 (按住選單)";
101
+Calendar._TT["SEL_DATE"] = "選擇日期";
102
+Calendar._TT["DRAG_TO_MOVE"] = "拖曳";
103
+Calendar._TT["PART_TODAY"] = " (今日)";
104
+
105
+// the following is to inform that "%s" is to be the first day of week
106
+// %s will be replaced with the day name.
107
+Calendar._TT["DAY_FIRST"] = "將 %s 顯示在前";
108
+
109
+// This may be locale-dependent.  It specifies the week-end days, as an array
110
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
111
+// means Monday, etc.
112
+Calendar._TT["WEEKEND"] = "0,6";
113
+
114
+Calendar._TT["CLOSE"] = "關閉";
115
+Calendar._TT["TODAY"] = "今日";
116
+Calendar._TT["TIME_PART"] = "點擊or拖曳可改變時間(同時按Shift為減)";
117
+
118
+// date formats
119
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
120
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
121
+
122
+Calendar._TT["WK"] = "週";
123
+Calendar._TT["TIME"] = "Time:";

+ 123
- 0
jscalendar/lang/calendar-big5.js Просмотреть файл

@@ -0,0 +1,123 @@
1
+// ** I18N
2
+
3
+// Calendar big5 language
4
+// Author: Gary Fu, <gary@garyfu.idv.tw>
5
+// Encoding: big5
6
+// Distributed under the same terms as the calendar itself.
7
+
8
+// For translators: please use UTF-8 if possible.  We strongly believe that
9
+// Unicode is the answer to a real internationalized world.  Also please
10
+// include your contact information in the header, as can be seen above.
11
+	
12
+// full day names
13
+Calendar._DN = new Array
14
+("星期日",
15
+ "星期一",
16
+ "星期二",
17
+ "星期三",
18
+ "星期四",
19
+ "星期五",
20
+ "星期六",
21
+ "星期日");
22
+
23
+// Please note that the following array of short day names (and the same goes
24
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
25
+// for exemplification on how one can customize the short day names, but if
26
+// they are simply the first N letters of the full name you can simply say:
27
+//
28
+//   Calendar._SDN_len = N; // short day name length
29
+//   Calendar._SMN_len = N; // short month name length
30
+//
31
+// If N = 3 then this is not needed either since we assume a value of 3 if not
32
+// present, to be compatible with translation files that were written before
33
+// this feature.
34
+
35
+// short day names
36
+Calendar._SDN = new Array
37
+("日",
38
+ "一",
39
+ "二",
40
+ "三",
41
+ "四",
42
+ "五",
43
+ "六",
44
+ "日");
45
+
46
+// full month names
47
+Calendar._MN = new Array
48
+("一月",
49
+ "二月",
50
+ "三月",
51
+ "四月",
52
+ "五月",
53
+ "六月",
54
+ "七月",
55
+ "八月",
56
+ "九月",
57
+ "十月",
58
+ "十一月",
59
+ "十二月");
60
+
61
+// short month names
62
+Calendar._SMN = new Array
63
+("一月",
64
+ "二月",
65
+ "三月",
66
+ "四月",
67
+ "五月",
68
+ "六月",
69
+ "七月",
70
+ "八月",
71
+ "九月",
72
+ "十月",
73
+ "十一月",
74
+ "十二月");
75
+
76
+// tooltips
77
+Calendar._TT = {};
78
+Calendar._TT["INFO"] = "關於";
79
+
80
+Calendar._TT["ABOUT"] =
81
+"DHTML Date/Time Selector\n" +
82
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
83
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
84
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
85
+"\n\n" +
86
+"日期選擇方法:\n" +
87
+"- 使用 \xab, \xbb 按鈕可選擇年份\n" +
88
+"- 使用 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 按鈕可選擇月份\n" +
89
+"- 按住上面的按鈕可以加快選取";
90
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
91
+"時間選擇方法:\n" +
92
+"- 點擊任何的時間部份可增加其值\n" +
93
+"- 同時按Shift鍵再點擊可減少其值\n" +
94
+"- 點擊並拖曳可加快改變的值";
95
+
96
+Calendar._TT["PREV_YEAR"] = "上一年 (按住選單)";
97
+Calendar._TT["PREV_MONTH"] = "下一年 (按住選單)";
98
+Calendar._TT["GO_TODAY"] = "到今日";
99
+Calendar._TT["NEXT_MONTH"] = "上一月 (按住選單)";
100
+Calendar._TT["NEXT_YEAR"] = "下一月 (按住選單)";
101
+Calendar._TT["SEL_DATE"] = "選擇日期";
102
+Calendar._TT["DRAG_TO_MOVE"] = "拖曳";
103
+Calendar._TT["PART_TODAY"] = " (今日)";
104
+
105
+// the following is to inform that "%s" is to be the first day of week
106
+// %s will be replaced with the day name.
107
+Calendar._TT["DAY_FIRST"] = "將 %s 顯示在前";
108
+
109
+// This may be locale-dependent.  It specifies the week-end days, as an array
110
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
111
+// means Monday, etc.
112
+Calendar._TT["WEEKEND"] = "0,6";
113
+
114
+Calendar._TT["CLOSE"] = "關閉";
115
+Calendar._TT["TODAY"] = "今日";
116
+Calendar._TT["TIME_PART"] = "點擊or拖曳可改變時間(同時按Shift為減)";
117
+
118
+// date formats
119
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
120
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
121
+
122
+Calendar._TT["WK"] = "週";
123
+Calendar._TT["TIME"] = "Time:";

+ 108
- 0
jscalendar/lang/calendar-br.js Просмотреть файл

@@ -0,0 +1,108 @@
1
+// ** I18N
2
+
3
+// Calendar pt-BR language
4
+// Author: Fernando Dourado, <fernando.dourado@ig.com.br>
5
+// Encoding: any
6
+// Distributed under the same terms as the calendar itself.
7
+
8
+// For translators: please use UTF-8 if possible.  We strongly believe that
9
+// Unicode is the answer to a real internationalized world.  Also please
10
+// include your contact information in the header, as can be seen above.
11
+
12
+// full day names
13
+Calendar._DN = new Array
14
+("Domingo",
15
+ "Segunda",
16
+ "Terça",
17
+ "Quarta",
18
+ "Quinta",
19
+ "Sexta",
20
+ "Sabádo",
21
+ "Domingo");
22
+
23
+// Please note that the following array of short day names (and the same goes
24
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
25
+// for exemplification on how one can customize the short day names, but if
26
+// they are simply the first N letters of the full name you can simply say:
27
+//
28
+//   Calendar._SDN_len = N; // short day name length
29
+//   Calendar._SMN_len = N; // short month name length
30
+//
31
+// If N = 3 then this is not needed either since we assume a value of 3 if not
32
+// present, to be compatible with translation files that were written before
33
+// this feature.
34
+
35
+// short day names
36
+// [No changes using default values]
37
+
38
+// full month names
39
+Calendar._MN = new Array
40
+("Janeiro",
41
+ "Fevereiro",
42
+ "Março",
43
+ "Abril",
44
+ "Maio",
45
+ "Junho",
46
+ "Julho",
47
+ "Agosto",
48
+ "Setembro",
49
+ "Outubro",
50
+ "Novembro",
51
+ "Dezembro");
52
+
53
+// short month names
54
+// [No changes using default values]
55
+
56
+// tooltips
57
+Calendar._TT = {};
58
+Calendar._TT["INFO"] = "Sobre o calendário";
59
+
60
+Calendar._TT["ABOUT"] =
61
+"DHTML Date/Time Selector\n" +
62
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
63
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
64
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
65
+"\n\n" +
66
+"Translate to portuguese Brazil (pt-BR) by Fernando Dourado (fernando.dourado@ig.com.br)\n" +
67
+"Tradução para o português Brasil (pt-BR) por Fernando Dourado (fernando.dourado@ig.com.br)" +
68
+"\n\n" +
69
+"Selecionar data:\n" +
70
+"- Use as teclas \xab, \xbb para selecionar o ano\n" +
71
+"- Use as teclas " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o mês\n" +
72
+"- Clique e segure com o mouse em qualquer botão para selecionar rapidamente.";
73
+
74
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
75
+"Selecionar hora:\n" +
76
+"- Clique em qualquer uma das partes da hora para aumentar\n" +
77
+"- ou Shift-clique para diminuir\n" +
78
+"- ou clique e arraste para selecionar rapidamente.";
79
+
80
+Calendar._TT["PREV_YEAR"] = "Ano anterior (clique e segure para menu)";
81
+Calendar._TT["PREV_MONTH"] = "Mês anterior (clique e segure para menu)";
82
+Calendar._TT["GO_TODAY"] = "Ir para a data atual";
83
+Calendar._TT["NEXT_MONTH"] = "Próximo mês (clique e segure para menu)";
84
+Calendar._TT["NEXT_YEAR"] = "Próximo ano (clique e segure para menu)";
85
+Calendar._TT["SEL_DATE"] = "Selecione uma data";
86
+Calendar._TT["DRAG_TO_MOVE"] = "Clique e segure para mover";
87
+Calendar._TT["PART_TODAY"] = " (hoje)";
88
+
89
+// the following is to inform that "%s" is to be the first day of week
90
+// %s will be replaced with the day name.
91
+Calendar._TT["DAY_FIRST"] = "Exibir %s primeiro";
92
+
93
+// This may be locale-dependent.  It specifies the week-end days, as an array
94
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
95
+// means Monday, etc.
96
+Calendar._TT["WEEKEND"] = "0,6";
97
+
98
+Calendar._TT["CLOSE"] = "Fechar";
99
+Calendar._TT["TODAY"] = "Hoje";
100
+Calendar._TT["TIME_PART"] = "(Shift-)Clique ou arraste para mudar o valor";
101
+
102
+// date formats
103
+Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
104
+Calendar._TT["TT_DATE_FORMAT"] = "%d de %B de %Y";
105
+
106
+Calendar._TT["WK"] = "sem";
107
+Calendar._TT["TIME"] = "Hora:";
108
+

+ 123
- 0
jscalendar/lang/calendar-ca.js Просмотреть файл

@@ -0,0 +1,123 @@
1
+// ** I18N
2
+
3
+// Calendar CA language
4
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
5
+// Encoding: any
6
+// Distributed under the same terms as the calendar itself.
7
+
8
+// For translators: please use UTF-8 if possible.  We strongly believe that
9
+// Unicode is the answer to a real internationalized world.  Also please
10
+// include your contact information in the header, as can be seen above.
11
+
12
+// full day names
13
+Calendar._DN = new Array
14
+("Diumenge",
15
+ "Dilluns",
16
+ "Dimarts",
17
+ "Dimecres",
18
+ "Dijous",
19
+ "Divendres",
20
+ "Dissabte",
21
+ "Diumenge");
22
+
23
+// Please note that the following array of short day names (and the same goes
24
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
25
+// for exemplification on how one can customize the short day names, but if
26
+// they are simply the first N letters of the full name you can simply say:
27
+//
28
+//   Calendar._SDN_len = N; // short day name length
29
+//   Calendar._SMN_len = N; // short month name length
30
+//
31
+// If N = 3 then this is not needed either since we assume a value of 3 if not
32
+// present, to be compatible with translation files that were written before
33
+// this feature.
34
+
35
+// short day names
36
+Calendar._SDN = new Array
37
+("Diu",
38
+ "Dil",
39
+ "Dmt",
40
+ "Dmc",
41
+ "Dij",
42
+ "Div",
43
+ "Dis",
44
+ "Diu");
45
+
46
+// full month names
47
+Calendar._MN = new Array
48
+("Gener",
49
+ "Febrer",
50
+ "Març",
51
+ "Abril",
52
+ "Maig",
53
+ "Juny",
54
+ "Juliol",
55
+ "Agost",
56
+ "Setembre",
57
+ "Octubre",
58
+ "Novembre",
59
+ "Desembre");
60
+
61
+// short month names
62
+Calendar._SMN = new Array
63
+("Gen",
64
+ "Feb",
65
+ "Mar",
66
+ "Abr",
67
+ "Mai",
68
+ "Jun",
69
+ "Jul",
70
+ "Ago",
71
+ "Set",
72
+ "Oct",
73
+ "Nov",
74
+ "Des");
75
+
76
+// tooltips
77
+Calendar._TT = {};
78
+Calendar._TT["INFO"] = "Sobre el calendari";
79
+
80
+Calendar._TT["ABOUT"] =
81
+"DHTML Selector de Data/Hora\n" +
82
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
83
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
84
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
85
+"\n\n" +
86
+"Sel.lecció de Dates:\n" +
87
+"- Fes servir els botons \xab, \xbb per sel.leccionar l'any\n" +
88
+"- Fes servir els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per se.lecciconar el mes\n" +
89
+"- Manté el ratolí apretat en qualsevol dels anteriors per sel.lecció ràpida.";
90
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
91
+"Time selection:\n" +
92
+"- claca en qualsevol de les parts de la hora per augmentar-les\n" +
93
+"- o Shift-click per decrementar-la\n" +
94
+"- or click and arrastra per sel.lecció ràpida.";
95
+
96
+Calendar._TT["PREV_YEAR"] = "Any anterior (Mantenir per menu)";
97
+Calendar._TT["PREV_MONTH"] = "Mes anterior (Mantenir per menu)";
98
+Calendar._TT["GO_TODAY"] = "Anar a avui";
99
+Calendar._TT["NEXT_MONTH"] = "Mes següent (Mantenir per menu)";
100
+Calendar._TT["NEXT_YEAR"] = "Any següent (Mantenir per menu)";
101
+Calendar._TT["SEL_DATE"] = "Sel.leccionar data";
102
+Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per moure";
103
+Calendar._TT["PART_TODAY"] = " (avui)";
104
+
105
+// the following is to inform that "%s" is to be the first day of week
106
+// %s will be replaced with the day name.
107
+Calendar._TT["DAY_FIRST"] = "Mostra %s primer";
108
+
109
+// This may be locale-dependent.  It specifies the week-end days, as an array
110
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
111
+// means Monday, etc.
112
+Calendar._TT["WEEKEND"] = "0,6";
113
+
114
+Calendar._TT["CLOSE"] = "Tanca";
115
+Calendar._TT["TODAY"] = "Avui";
116
+Calendar._TT["TIME_PART"] = "(Shift-)Click a arrastra per canviar el valor";
117
+
118
+// date formats
119
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
120
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
121
+
122
+Calendar._TT["WK"] = "st";
123
+Calendar._TT["TIME"] = "Hora:";

+ 65
- 0
jscalendar/lang/calendar-cs-utf8.js Просмотреть файл

@@ -0,0 +1,65 @@
1
+/* 
2
+	calendar-cs-win.js
3
+	language: Czech
4
+	encoding: windows-1250
5
+	author: Lubos Jerabek (xnet@seznam.cz)
6
+	        Jan Uhlir (espinosa@centrum.cz)
7
+*/
8
+
9
+// ** I18N
10
+Calendar._DN  = new Array('Neděle','Pondělí','Úterý','Středa','Čtvrtek','Pátek','Sobota','Neděle');
11
+Calendar._SDN = new Array('Ne','Po','Út','St','Čt','Pá','So','Ne');
12
+Calendar._MN  = new Array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec');
13
+Calendar._SMN = new Array('Led','Úno','Bře','Dub','Kvě','Črv','Čvc','Srp','Zář','Říj','Lis','Pro');
14
+
15
+// tooltips
16
+Calendar._TT = {};
17
+Calendar._TT["INFO"] = "O komponentě kalendář";
18
+Calendar._TT["TOGGLE"] = "Změna prvního dne v týdnu";
19
+Calendar._TT["PREV_YEAR"] = "Předchozí rok (přidrž pro menu)";
20
+Calendar._TT["PREV_MONTH"] = "Předchozí měsíc (přidrž pro menu)";
21
+Calendar._TT["GO_TODAY"] = "Dnešní datum";
22
+Calendar._TT["NEXT_MONTH"] = "Další měsíc (přidrž pro menu)";
23
+Calendar._TT["NEXT_YEAR"] = "Další rok (přidrž pro menu)";
24
+Calendar._TT["SEL_DATE"] = "Vyber datum";
25
+Calendar._TT["DRAG_TO_MOVE"] = "Chyť a táhni, pro přesun";
26
+Calendar._TT["PART_TODAY"] = " (dnes)";
27
+Calendar._TT["MON_FIRST"] = "Ukaž jako první Pondělí";
28
+//Calendar._TT["SUN_FIRST"] = "Ukaž jako první Neděli";
29
+
30
+Calendar._TT["ABOUT"] =
31
+"DHTML Date/Time Selector\n" +
32
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
33
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
34
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
35
+"\n\n" +
36
+"Výběr datumu:\n" +
37
+"- Use the \xab, \xbb buttons to select year\n" +
38
+"- Použijte tlačítka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k výběru měsíce\n" +
39
+"- Podržte tlačítko myši na jakémkoliv z těch tlačítek pro rychlejší výběr.";
40
+
41
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
42
+"Výběr času:\n" +
43
+"- Klikněte na jakoukoliv z částí výběru času pro zvýšení.\n" +
44
+"- nebo Shift-click pro snížení\n" +
45
+"- nebo klikněte a táhněte pro rychlejší výběr.";
46
+
47
+// the following is to inform that "%s" is to be the first day of week
48
+// %s will be replaced with the day name.
49
+Calendar._TT["DAY_FIRST"] = "Zobraz %s první";
50
+
51
+// This may be locale-dependent.  It specifies the week-end days, as an array
52
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
53
+// means Monday, etc.
54
+Calendar._TT["WEEKEND"] = "0,6";
55
+
56
+Calendar._TT["CLOSE"] = "Zavřít";
57
+Calendar._TT["TODAY"] = "Dnes";
58
+Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo táhni pro změnu hodnoty";
59
+
60
+// date formats
61
+Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
62
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
63
+
64
+Calendar._TT["WK"] = "wk";
65
+Calendar._TT["TIME"] = "Čas:";

+ 65
- 0
jscalendar/lang/calendar-cs-win.js Просмотреть файл

@@ -0,0 +1,65 @@
1
+/* 
2
+	calendar-cs-win.js
3
+	language: Czech
4
+	encoding: windows-1250
5
+	author: Lubos Jerabek (xnet@seznam.cz)
6
+	        Jan Uhlir (espinosa@centrum.cz)
7
+*/
8
+
9
+// ** I18N
10
+Calendar._DN  = new Array('Nedìle','Pondìlí','Úterý','Støeda','Ètvrtek','Pátek','Sobota','Nedìle');
11
+Calendar._SDN = new Array('Ne','Po','Út','St','Èt','Pá','So','Ne');
12
+Calendar._MN  = new Array('Leden','Únor','Bøezen','Duben','Kvìten','Èerven','Èervenec','Srpen','Záøí','Øíjen','Listopad','Prosinec');
13
+Calendar._SMN = new Array('Led','Úno','Bøe','Dub','Kvì','Èrv','Èvc','Srp','Záø','Øíj','Lis','Pro');
14
+
15
+// tooltips
16
+Calendar._TT = {};
17
+Calendar._TT["INFO"] = "O komponentì kalendáø";
18
+Calendar._TT["TOGGLE"] = "Zmìna prvního dne v týdnu";
19
+Calendar._TT["PREV_YEAR"] = "Pøedchozí rok (pøidrž pro menu)";
20
+Calendar._TT["PREV_MONTH"] = "Pøedchozí mìsíc (pøidrž pro menu)";
21
+Calendar._TT["GO_TODAY"] = "Dnešní datum";
22
+Calendar._TT["NEXT_MONTH"] = "Další mìsíc (pøidrž pro menu)";
23
+Calendar._TT["NEXT_YEAR"] = "Další rok (pøidrž pro menu)";
24
+Calendar._TT["SEL_DATE"] = "Vyber datum";
25
+Calendar._TT["DRAG_TO_MOVE"] = "Chy� a táhni, pro pøesun";
26
+Calendar._TT["PART_TODAY"] = " (dnes)";
27
+Calendar._TT["MON_FIRST"] = "Ukaž jako první Pondìlí";
28
+//Calendar._TT["SUN_FIRST"] = "Ukaž jako první Nedìli";
29
+
30
+Calendar._TT["ABOUT"] =
31
+"DHTML Date/Time Selector\n" +
32
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
33
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
34
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
35
+"\n\n" +
36
+"Výbìr datumu:\n" +
37
+"- Use the \xab, \xbb buttons to select year\n" +
38
+"- Použijte tlaèítka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k výbìru mìsíce\n" +
39
+"- Podržte tlaèítko myši na jakémkoliv z tìch tlaèítek pro rychlejší výbìr.";
40
+
41
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
42
+"Výbìr èasu:\n" +
43
+"- Kliknìte na jakoukoliv z èástí výbìru èasu pro zvýšení.\n" +
44
+"- nebo Shift-click pro snížení\n" +
45
+"- nebo kliknìte a táhnìte pro rychlejší výbìr.";
46
+
47
+// the following is to inform that "%s" is to be the first day of week
48
+// %s will be replaced with the day name.
49
+Calendar._TT["DAY_FIRST"] = "Zobraz %s první";
50
+
51
+// This may be locale-dependent.  It specifies the week-end days, as an array
52
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
53
+// means Monday, etc.
54
+Calendar._TT["WEEKEND"] = "0,6";
55
+
56
+Calendar._TT["CLOSE"] = "Zavøít";
57
+Calendar._TT["TODAY"] = "Dnes";
58
+Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo táhni pro zmìnu hodnoty";
59
+
60
+// date formats
61
+Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
62
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
63
+
64
+Calendar._TT["WK"] = "wk";
65
+Calendar._TT["TIME"] = "Èas:";

+ 123
- 0
jscalendar/lang/calendar-da.js Просмотреть файл

@@ -0,0 +1,123 @@
1
+// ** I18N
2
+
3
+// Calendar DA language
4
+// Author: Michael Thingmand Henriksen, <michael (a) thingmand dot dk>
5
+// Encoding: any
6
+// Distributed under the same terms as the calendar itself.
7
+
8
+// For translators: please use UTF-8 if possible. We strongly believe that
9
+// Unicode is the answer to a real internationalized world. Also please
10
+// include your contact information in the header, as can be seen above.
11
+
12
+// full day names
13
+Calendar._DN = new Array
14
+("Søndag",
15
+"Mandag",
16
+"Tirsdag",
17
+"Onsdag",
18
+"Torsdag",
19
+"Fredag",
20
+"Lørdag",
21
+"Søndag");
22
+
23
+// Please note that the following array of short day names (and the same goes
24
+// for short month names, _SMN) isn't absolutely necessary. We give it here
25
+// for exemplification on how one can customize the short day names, but if
26
+// they are simply the first N letters of the full name you can simply say:
27
+//
28
+// Calendar._SDN_len = N; // short day name length
29
+// Calendar._SMN_len = N; // short month name length
30
+//
31
+// If N = 3 then this is not needed either since we assume a value of 3 if not
32
+// present, to be compatible with translation files that were written before
33
+// this feature.
34
+
35
+// short day names
36
+Calendar._SDN = new Array
37
+("Søn",
38
+"Man",
39
+"Tir",
40
+"Ons",
41
+"Tor",
42
+"Fre",
43
+"Lør",
44
+"Søn");
45
+
46
+// full month names
47
+Calendar._MN = new Array
48
+("Januar",
49
+"Februar",
50
+"Marts",
51
+"April",
52
+"Maj",
53
+"Juni",
54
+"Juli",
55
+"August",
56
+"September",
57
+"Oktober",
58
+"November",
59
+"December");
60
+
61
+// short month names
62
+Calendar._SMN = new Array
63
+("Jan",
64
+"Feb",
65
+"Mar",
66
+"Apr",
67
+"Maj",
68
+"Jun",
69
+"Jul",
70
+"Aug",
71
+"Sep",
72
+"Okt",
73
+"Nov",
74
+"Dec");
75
+
76
+// tooltips
77
+Calendar._TT = {};
78
+Calendar._TT["INFO"] = "Om Kalenderen";
79
+
80
+Calendar._TT["ABOUT"] =
81
+"DHTML Date/Time Selector\n" +
82
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
83
+"For den seneste version besøg: http://www.dynarch.com/projects/calendar/\n"; +
84
+"Distribueret under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detajler." +
85
+"\n\n" +
86
+"Valg af dato:\n" +
87
+"- Brug \xab, \xbb knapperne for at vælge år\n" +
88
+"- Brug " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knapperne for at vælge måned\n" +
89
+"- Hold knappen på musen nede på knapperne ovenfor for hurtigere valg.";
90
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
91
+"Valg af tid:\n" +
92
+"- Klik på en vilkårlig del for større værdi\n" +
93
+"- eller Shift-klik for for mindre værdi\n" +
94
+"- eller klik og træk for hurtigere valg.";
95
+
96
+Calendar._TT["PREV_YEAR"] = "Ét år tilbage (hold for menu)";
97
+Calendar._TT["PREV_MONTH"] = "Én måned tilbage (hold for menu)";
98
+Calendar._TT["GO_TODAY"] = "Gå til i dag";
99
+Calendar._TT["NEXT_MONTH"] = "Én måned frem (hold for menu)";
100
+Calendar._TT["NEXT_YEAR"] = "Ét år frem (hold for menu)";
101
+Calendar._TT["SEL_DATE"] = "Vælg dag";
102
+Calendar._TT["DRAG_TO_MOVE"] = "Træk vinduet";
103
+Calendar._TT["PART_TODAY"] = " (i dag)";
104
+
105
+// the following is to inform that "%s" is to be the first day of week
106
+// %s will be replaced with the day name.
107
+Calendar._TT["DAY_FIRST"] = "Vis %s først";
108
+
109
+// This may be locale-dependent. It specifies the week-end days, as an array
110
+// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
111
+// means Monday, etc.
112
+Calendar._TT["WEEKEND"] = "0,6";
113
+
114
+Calendar._TT["CLOSE"] = "Luk";
115
+Calendar._TT["TODAY"] = "I dag";
116
+Calendar._TT["TIME_PART"] = "(Shift-)klik eller træk for at ændre værdi";
117
+
118
+// date formats
119
+Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
120
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
121
+
122
+Calendar._TT["WK"] = "Uge";
123
+Calendar._TT["TIME"] = "Tid:";

+ 124
- 0
jscalendar/lang/calendar-de.js Просмотреть файл

@@ -0,0 +1,124 @@
1
+// ** I18N
2
+
3
+// Calendar DE language
4
+// Author: Jack (tR), <jack@jtr.de>
5
+// Encoding: any
6
+// Distributed under the same terms as the calendar itself.
7
+
8
+// For translators: please use UTF-8 if possible.  We strongly believe that
9
+// Unicode is the answer to a real internationalized world.  Also please
10
+// include your contact information in the header, as can be seen above.
11
+
12
+// full day names
13
+Calendar._DN = new Array
14
+("Sonntag",
15
+ "Montag",
16
+ "Dienstag",
17
+ "Mittwoch",
18
+ "Donnerstag",
19
+ "Freitag",
20
+ "Samstag",
21
+ "Sonntag");
22
+
23
+// Please note that the following array of short day names (and the same goes
24
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
25
+// for exemplification on how one can customize the short day names, but if
26
+// they are simply the first N letters of the full name you can simply say:
27
+//
28
+//   Calendar._SDN_len = N; // short day name length
29
+//   Calendar._SMN_len = N; // short month name length
30
+//
31
+// If N = 3 then this is not needed either since we assume a value of 3 if not
32
+// present, to be compatible with translation files that were written before
33
+// this feature.
34
+
35
+// short day names
36
+Calendar._SDN = new Array
37
+("So",
38
+ "Mo",
39
+ "Di",
40
+ "Mi",
41
+ "Do",
42
+ "Fr",
43
+ "Sa",
44
+ "So");
45
+
46
+// full month names
47
+Calendar._MN = new Array
48
+("Januar",
49
+ "Februar",
50
+ "M\u00e4rz",
51
+ "April",
52
+ "Mai",
53
+ "Juni",
54
+ "Juli",
55
+ "August",
56
+ "September",
57
+ "Oktober",
58
+ "November",
59
+ "Dezember");
60
+
61
+// short month names
62
+Calendar._SMN = new Array
63
+("Jan",
64
+ "Feb",
65
+ "M\u00e4r",
66
+ "Apr",
67
+ "May",
68
+ "Jun",
69
+ "Jul",
70
+ "Aug",
71
+ "Sep",
72
+ "Okt",
73
+ "Nov",
74
+ "Dez");
75
+
76
+// tooltips
77
+Calendar._TT = {};
78
+Calendar._TT["INFO"] = "\u00DCber dieses Kalendarmodul";
79
+
80
+Calendar._TT["ABOUT"] =
81
+"DHTML Date/Time Selector\n" +
82
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this ;-)
83
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
84
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
85
+"\n\n" +
86
+"Datum ausw\u00e4hlen:\n" +
87
+"- Benutzen Sie die \xab, \xbb Buttons um das Jahr zu w\u00e4hlen\n" +
88
+"- Benutzen Sie die " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " Buttons um den Monat zu w\u00e4hlen\n" +
89
+"- F\u00fcr eine Schnellauswahl halten Sie die Maustaste \u00fcber diesen Buttons fest.";
90
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
91
+"Zeit ausw\u00e4hlen:\n" +
92
+"- Klicken Sie auf die Teile der Uhrzeit, um diese zu erh\u00F6hen\n" +
93
+"- oder klicken Sie mit festgehaltener Shift-Taste um diese zu verringern\n" +
94
+"- oder klicken und festhalten f\u00fcr Schnellauswahl.";
95
+
96
+Calendar._TT["TOGGLE"] = "Ersten Tag der Woche w\u00e4hlen";
97
+Calendar._TT["PREV_YEAR"] = "Voriges Jahr (Festhalten f\u00fcr Schnellauswahl)";
98
+Calendar._TT["PREV_MONTH"] = "Voriger Monat (Festhalten f\u00fcr Schnellauswahl)";
99
+Calendar._TT["GO_TODAY"] = "Heute ausw\u00e4hlen";
100
+Calendar._TT["NEXT_MONTH"] = "N\u00e4chst. Monat (Festhalten f\u00fcr Schnellauswahl)";
101
+Calendar._TT["NEXT_YEAR"] = "N\u00e4chst. Jahr (Festhalten f\u00fcr Schnellauswahl)";
102
+Calendar._TT["SEL_DATE"] = "Datum ausw\u00e4hlen";
103
+Calendar._TT["DRAG_TO_MOVE"] = "Zum Bewegen festhalten";
104
+Calendar._TT["PART_TODAY"] = " (Heute)";
105
+
106
+// the following is to inform that "%s" is to be the first day of week
107
+// %s will be replaced with the day name.
108
+Calendar._TT["DAY_FIRST"] = "Woche beginnt mit %s ";
109
+
110
+// This may be locale-dependent.  It specifies the week-end days, as an array
111
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
112
+// means Monday, etc.
113
+Calendar._TT["WEEKEND"] = "0,6";
114
+
115
+Calendar._TT["CLOSE"] = "Schlie\u00dfen";
116
+Calendar._TT["TODAY"] = "Heute";
117
+Calendar._TT["TIME_PART"] = "(Shift-)Klick oder Festhalten und Ziehen um den Wert zu \u00e4ndern";
118
+
119
+// date formats
120
+Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
121
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
122
+
123
+Calendar._TT["WK"] = "wk";
124
+Calendar._TT["TIME"] = "Zeit:";

+ 45
- 0
jscalendar/lang/calendar-du.js Просмотреть файл

@@ -0,0 +1,45 @@
1
+// ** I18N
2
+Calendar._DN = new Array
3
+("Zondag",
4
+ "Maandag",
5
+ "Dinsdag",
6
+ "Woensdag",
7
+ "Donderdag",
8
+ "Vrijdag",
9
+ "Zaterdag",
10
+ "Zondag");
11
+Calendar._MN = new Array
12
+("Januari",
13
+ "Februari",
14
+ "Maart",
15
+ "April",
16
+ "Mei",
17
+ "Juni",
18
+ "Juli",
19
+ "Augustus",
20
+ "September",
21
+ "Oktober",
22
+ "November",
23
+ "December");
24
+
25
+// tooltips
26
+Calendar._TT = {};
27
+Calendar._TT["TOGGLE"] = "Toggle startdag van de week";
28
+Calendar._TT["PREV_YEAR"] = "Vorig jaar (indrukken voor menu)";
29
+Calendar._TT["PREV_MONTH"] = "Vorige month (indrukken voor menu)";
30
+Calendar._TT["GO_TODAY"] = "Naar Vandaag";
31
+Calendar._TT["NEXT_MONTH"] = "Volgende Maand (indrukken voor menu)";
32
+Calendar._TT["NEXT_YEAR"] = "Volgend jaar (indrukken voor menu)";
33
+Calendar._TT["SEL_DATE"] = "Selecteer datum";
34
+Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te verplaatsen";
35
+Calendar._TT["PART_TODAY"] = " (vandaag)";
36
+Calendar._TT["MON_FIRST"] = "Toon Maandag eerst";
37
+Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst";
38
+Calendar._TT["CLOSE"] = "Sluiten";
39
+Calendar._TT["TODAY"] = "Vandaag";
40
+
41
+// date formats
42
+Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
43
+Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
44
+
45
+Calendar._TT["WK"] = "wk";

+ 89
- 0
jscalendar/lang/calendar-el.js Просмотреть файл

@@ -0,0 +1,89 @@
1
+// ** I18N
2
+Calendar._DN = new Array
3
+("Κυριακή",
4
+ "Δευτέρα",
5
+ "Τρίτη",
6
+ "Τετάρτη",
7
+ "Πέμπτη",
8
+ "Παρασκευή",
9
+ "Σάββατο",
10
+ "Κυριακή");
11
+
12
+Calendar._SDN = new Array
13
+("Κυ",
14
+ "Δε",
15
+ "Tρ",
16
+ "Τε",
17
+ "Πε",
18
+ "Πα",
19
+ "Σα",
20
+ "Κυ");
21
+
22
+Calendar._MN = new Array
23
+("Ιανουάριος",
24
+ "Φεβρουάριος",
25
+ "Μάρτιος",
26
+ "Απρίλιος",
27
+ "Μάϊος",
28
+ "Ιούνιος",
29
+ "Ιούλιος",
30
+ "Αύγουστος",
31
+ "Σεπτέμβριος",
32
+ "Οκτώβριος",
33
+ "Νοέμβριος",
34
+ "Δεκέμβριος");
35
+
36
+Calendar._SMN = new Array
37
+("Ιαν",
38
+ "Φεβ",
39
+ "Μαρ",
40
+ "Απρ",
41
+ "Μαι",
42
+ "Ιουν",
43
+ "Ιουλ",
44
+ "Αυγ",
45
+ "Σεπ",
46
+ "Οκτ",
47
+ "Νοε",
48
+ "Δεκ");
49
+
50
+// tooltips
51
+Calendar._TT = {};
52
+Calendar._TT["INFO"] = "Για το ημερολόγιο";
53
+
54
+Calendar._TT["ABOUT"] =
55
+"Επιλογέας ημερομηνίας/ώρας σε DHTML\n" +
56
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
57
+"Για τελευταία έκδοση: http://www.dynarch.com/projects/calendar/\n" +
58
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
59
+"\n\n" +
60
+"Επιλογή ημερομηνίας:\n" +
61
+"- Χρησιμοποιείστε τα κουμπιά \xab, \xbb για επιλογή έτους\n" +
62
+"- Χρησιμοποιείστε τα κουμπιά " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " για επιλογή μήνα\n" +
63
+"- Κρατήστε κουμπί ποντικού πατημένο στα παραπάνω κουμπιά για πιο γρήγορη επιλογή.";
64
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
65
+"Επιλογή ώρας:\n" +
66
+"- Κάντε κλικ σε ένα από τα μέρη της ώρας για αύξηση\n" +
67
+"- ή Shift-κλικ για μείωση\n" +
68
+"- ή κλικ και μετακίνηση για πιο γρήγορη επιλογή.";
69
+Calendar._TT["TOGGLE"] = "Μπάρα πρώτης ημέρας της εβδομάδας";
70
+Calendar._TT["PREV_YEAR"] = "Προηγ. έτος (κρατήστε για το μενού)";
71
+Calendar._TT["PREV_MONTH"] = "Προηγ. μήνας (κρατήστε για το μενού)";
72
+Calendar._TT["GO_TODAY"] = "Σήμερα";
73
+Calendar._TT["NEXT_MONTH"] = "Επόμενος μήνας (κρατήστε για το μενού)";
74
+Calendar._TT["NEXT_YEAR"] = "Επόμενο έτος (κρατήστε για το μενού)";
75
+Calendar._TT["SEL_DATE"] = "Επιλέξτε ημερομηνία";
76
+Calendar._TT["DRAG_TO_MOVE"] = "Σύρτε για να μετακινήσετε";
77
+Calendar._TT["PART_TODAY"] = " (σήμερα)";
78
+Calendar._TT["MON_FIRST"] = "Εμφάνιση Δευτέρας πρώτα";
79
+Calendar._TT["SUN_FIRST"] = "Εμφάνιση Κυριακής πρώτα";
80
+Calendar._TT["CLOSE"] = "Κλείσιμο";
81
+Calendar._TT["TODAY"] = "Σήμερα";
82
+Calendar._TT["TIME_PART"] = "(Shift-)κλικ ή μετακίνηση για αλλαγή";
83
+
84
+// date formats
85
+Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
86
+Calendar._TT["TT_DATE_FORMAT"] = "D, d M";
87
+
88
+Calendar._TT["WK"] = "εβδ";
89
+

+ 127
- 0
jscalendar/lang/calendar-en.js Просмотреть файл

@@ -0,0 +1,127 @@
1
+// ** I18N
2
+
3
+// Calendar EN language
4
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
5
+// Encoding: any
6
+// Distributed under the same terms as the calendar itself.
7
+
8
+// For translators: please use UTF-8 if possible.  We strongly believe that
9
+// Unicode is the answer to a real internationalized world.  Also please
10
+// include your contact information in the header, as can be seen above.
11
+
12
+// full day names
13
+Calendar._DN = new Array
14
+("Sunday",
15
+ "Monday",
16
+ "Tuesday",
17
+ "Wednesday",
18
+ "Thursday",
19
+ "Friday",
20
+ "Saturday",
21
+ "Sunday");
22
+
23
+// Please note that the following array of short day names (and the same goes
24
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
25
+// for exemplification on how one can customize the short day names, but if
26
+// they are simply the first N letters of the full name you can simply say:
27
+//
28
+//   Calendar._SDN_len = N; // short day name length
29
+//   Calendar._SMN_len = N; // short month name length
30
+//
31
+// If N = 3 then this is not needed either since we assume a value of 3 if not
32
+// present, to be compatible with translation files that were written before
33
+// this feature.
34
+
35
+// short day names
36
+Calendar._SDN = new Array
37
+("Sun",
38
+ "Mon",
39
+ "Tue",
40
+ "Wed",
41
+ "Thu",
42
+ "Fri",
43
+ "Sat",
44
+ "Sun");
45
+
46
+// First day of the week. "0" means display Sunday first, "1" means display
47
+// Monday first, etc.
48
+Calendar._FD = 0;
49
+
50
+// full month names
51
+Calendar._MN = new Array
52
+("January",
53
+ "February",
54
+ "March",
55
+ "April",
56
+ "May",
57
+ "June",
58
+ "July",
59
+ "August",
60
+ "September",
61
+ "October",
62
+ "November",
63
+ "December");
64
+
65
+// short month names
66
+Calendar._SMN = new Array
67
+("Jan",
68
+ "Feb",
69
+ "Mar",
70
+ "Apr",
71
+ "May",
72
+ "Jun",
73
+ "Jul",
74
+ "Aug",
75
+ "Sep",
76
+ "Oct",
77
+ "Nov",
78
+ "Dec");
79
+
80
+// tooltips
81
+Calendar._TT = {};
82
+Calendar._TT["INFO"] = "About the calendar";
83
+
84
+Calendar._TT["ABOUT"] =
85
+"DHTML Date/Time Selector\n" +
86
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
87
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
88
+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
89
+"\n\n" +
90
+"Date selection:\n" +
91
+"- Use the \xab, \xbb buttons to select year\n" +
92
+"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
93
+"- Hold mouse button on any of the above buttons for faster selection.";
94
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
95
+"Time selection:\n" +
96
+"- Click on any of the time parts to increase it\n" +
97
+"- or Shift-click to decrease it\n" +
98
+"- or click and drag for faster selection.";
99
+
100
+Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)";
101
+Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)";
102
+Calendar._TT["GO_TODAY"] = "Go Today";
103
+Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)";
104
+Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)";
105
+Calendar._TT["SEL_DATE"] = "Select date";
106
+Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";
107
+Calendar._TT["PART_TODAY"] = " (today)";
108
+
109
+// the following is to inform that "%s" is to be the first day of week
110
+// %s will be replaced with the day name.
111
+Calendar._TT["DAY_FIRST"] = "Display %s first";
112
+
113
+// This may be locale-dependent.  It specifies the week-end days, as an array
114
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
115
+// means Monday, etc.
116
+Calendar._TT["WEEKEND"] = "0,6";
117
+
118
+Calendar._TT["CLOSE"] = "Close";
119
+Calendar._TT["TODAY"] = "Today";
120
+Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
121
+
122
+// date formats
123
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
124
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
125
+
126
+Calendar._TT["WK"] = "wk";
127
+Calendar._TT["TIME"] = "Time:";

+ 129
- 0
jscalendar/lang/calendar-es.js Просмотреть файл

@@ -0,0 +1,129 @@
1
+// ** I18N
2
+
3
+// Calendar ES (spanish) language
4
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
5
+// Updater: Servilio Afre Puentes <servilios@yahoo.com>
6
+// Updated: 2004-06-03
7
+// Encoding: utf-8
8
+// Distributed under the same terms as the calendar itself.
9
+
10
+// For translators: please use UTF-8 if possible.  We strongly believe that
11
+// Unicode is the answer to a real internationalized world.  Also please
12
+// include your contact information in the header, as can be seen above.
13
+
14
+// full day names
15
+Calendar._DN = new Array
16
+("Domingo",
17
+ "Lunes",
18
+ "Martes",
19
+ "Miércoles",
20
+ "Jueves",
21
+ "Viernes",
22
+ "Sábado",
23
+ "Domingo");
24
+
25
+// Please note that the following array of short day names (and the same goes
26
+// for short month names, _SMN) isn't absolutely necessary.  We give it here
27
+// for exemplification on how one can customize the short day names, but if
28
+// they are simply the first N letters of the full name you can simply say:
29
+//
30
+//   Calendar._SDN_len = N; // short day name length
31
+//   Calendar._SMN_len = N; // short month name length
32
+//
33
+// If N = 3 then this is not needed either since we assume a value of 3 if not
34
+// present, to be compatible with translation files that were written before
35
+// this feature.
36
+
37
+// short day names
38
+Calendar._SDN = new Array
39
+("Dom",
40
+ "Lun",
41
+ "Mar",
42
+ "Mié",
43
+ "Jue",
44
+ "Vie",
45
+ "Sáb",
46
+ "Dom");
47
+
48
+// First day of the week. "0" means display Sunday first, "1" means display
49
+// Monday first, etc.
50
+Calendar._FD = 1;
51
+
52
+// full month names
53
+Calendar._MN = new Array
54
+("Enero",
55
+ "Febrero",
56
+ "Marzo",
57
+ "Abril",
58
+ "Mayo",
59
+ "Junio",
60
+ "Julio",
61
+ "Agosto",
62
+ "Septiembre",
63
+ "Octubre",
64
+ "Noviembre",
65
+ "Diciembre");
66
+
67
+// short month names
68
+Calendar._SMN = new Array
69
+("Ene",
70
+ "Feb",
71
+ "Mar",
72
+ "Abr",
73
+ "May",
74
+ "Jun",
75
+ "Jul",
76
+ "Ago",
77
+ "Sep",
78
+ "Oct",
79
+ "Nov",
80
+ "Dic");
81
+
82
+// tooltips
83
+Calendar._TT = {};
84
+Calendar._TT["INFO"] = "Acerca del calendario";
85
+
86
+Calendar._TT["ABOUT"] =
87
+"Selector DHTML de Fecha/Hora\n" +
88
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
89
+"Para conseguir la última versión visite: http://www.dynarch.com/projects/calendar/\n" +
90
+"Distribuido bajo licencia GNU LGPL. Visite http://gnu.org/licenses/lgpl.html para más detalles." +
91
+"\n\n" +
92
+"Selección de fecha:\n" +
93
+"- Use los botones \xab, \xbb para seleccionar el año\n" +
94
+"- Use los botones " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" +
95
+"- Mantenga pulsado el ratón en cualquiera de estos botones para una selección rápida.";
96
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
97
+"Selección de hora:\n" +
98
+"- Pulse en cualquiera de las partes de la hora para incrementarla\n" +
99
+"- o pulse las mayúsculas mientras hace clic para decrementarla\n" +
100
+"- o haga clic y arrastre el ratón para una selección más rápida.";
101
+
102
+Calendar._TT["PREV_YEAR"] = "Año anterior (mantener para menú)";
103
+Calendar._TT["PREV_MONTH"] = "Mes anterior (mantener para menú)";
104
+Calendar._TT["GO_TODAY"] = "Ir a hoy";
105
+Calendar._TT["NEXT_MONTH"] = "Mes siguiente (mantener para menú)";
106
+Calendar._TT["NEXT_YEAR"] = "Año siguiente (mantener para menú)";
107
+Calendar._TT["SEL_DATE"] = "Seleccionar fecha";
108
+Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar para mover";
109
+Calendar._TT["PART_TODAY"] = " (hoy)";
110
+
111
+// the following is to inform that "%s" is to be the first day of week
112
+// %s will be replaced with the day name.
113
+Calendar._TT["DAY_FIRST"] = "Hacer %s primer día de la semana";
114
+
115
+// This may be locale-dependent.  It specifies the week-end days, as an array
116
+// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
117
+// means Monday, etc.
118
+Calendar._TT["WEEKEND"] = "0,6";
119
+
120
+Calendar._TT["CLOSE"] = "Cerrar";
121
+Calendar._TT["TODAY"] = "Hoy";
122
+Calendar._TT["TIME_PART"] = "(Mayúscula-)Clic o arrastre para cambiar valor";
123
+
124
+// date formats
125
+Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
126
+Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
127
+
128
+Calendar._TT["WK"] = "sem";
129
+Calendar._TT["TIME"] = "Hora:";

+ 98
- 0
jscalendar/lang/calendar-fi.js Просмотреть файл

@@ -0,0 +1,98 @@
1
+// ** I18N
2
+
3
+// Calendar FI language (Finnish, Suomi)
4
+// Author: Jarno Käyhkö, <gambler@phnet.fi>
5
+// Encoding: UTF-8
6
+// Distributed under the same terms as the calendar itself.
7
+
8
+// full day names
9
+Calendar._DN = new Array
10
+("Sunnuntai",
11
+ "Maanantai",
12
+ "Tiistai",
13
+ "Keskiviikko",
14
+ "Torstai",
15
+ "Perjantai",
16
+ "Lauantai",
17
+ "Sunnuntai");
18
+
19
+// short day names
20
+Calendar._SDN = new Array
21
+("Su",
22
+ "Ma",
23
+ "Ti",
24
+ "Ke",
25
+ "To",
26
+ "Pe",
27
+ "La",
28
+ "Su");
29
+
30
+// full month names
31
+Calendar._MN = new Array
32
+("Tammikuu",
33
+ "Helmikuu",
34
+ "Maaliskuu",
35
+ "Huhtikuu",
36
+ "Toukokuu",
37
+ "Kesäkuu",
38
+ "Heinäkuu",
39
+ "Elokuu",
40
+ "Syyskuu",
41
+ "Lokakuu",
42
+ "Marraskuu",
43
+ "Joulukuu");
44
+
45
+// short month names
46
+Calendar._SMN = new Array
47
+("Tam",
48
+ "Hel",
49
+ "Maa",
50
+ "Huh",
51
+ "Tou",
52
+ "Kes",
53
+ "Hei",
54
+ "Elo",
55
+ "Syy",
56
+ "Lok",
57
+ "Mar",
58
+ "Jou");
59
+
60
+// tooltips
61
+Calendar._TT = {};
62
+Calendar._TT["INFO"] = "Tietoja kalenterista";
63
+
64
+Calendar._TT["ABOUT"] =
65
+"DHTML Date/Time Selector\n" +
66
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
67
+"Uusin versio osoitteessa: http://www.dynarch.com/projects/calendar/\n" +
68
+"Julkaistu GNU LGPL lisenssin alaisuudessa. Lisätietoja osoitteessa http://gnu.org/licenses/lgpl.html" +
69
+"\n\n" +
70
+"Päivämäärä valinta:\n" +
71
+"- Käytä \xab, \xbb painikkeita valitaksesi vuosi\n" +
72
+"- Käytä " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " painikkeita valitaksesi kuukausi\n" +
73
+"- Pitämällä hiiren painiketta minkä tahansa yllä olevan painikkeen kohdalla, saat näkyviin valikon nopeampaan siirtymiseen.";
74
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
75
+"Ajan valinta:\n" +
76
+"- Klikkaa kellonajan numeroita lisätäksesi aikaa\n" +
77
+"- tai pitämällä Shift-näppäintä pohjassa saat aikaa taaksepäin\n" +
78
+"- tai klikkaa ja pidä hiiren painike pohjassa sekä liikuta hiirtä muuttaaksesi aikaa nopeasti eteen- ja taaksepäin.";
79
+
80
+Calendar._TT["PREV_YEAR"] = "Edell. vuosi (paina hetki, näet valikon)";
81
+Calendar._TT["PREV_MONTH"] = "Edell. kuukausi (paina hetki, näet valikon)";
82
+Calendar._TT["GO_TODAY"] = "Siirry tähän päivään";
83
+Calendar._TT["NEXT_MONTH"] = "Seur. kuukausi (paina hetki, näet valikon)";
84
+Calendar._TT["NEXT_YEAR"] = "Seur. vuosi (paina hetki, näet valikon)";
85
+Calendar._TT["SEL_DATE"] = "Valitse päivämäärä";
86
+Calendar._TT["DRAG_TO_MOVE"] = "Siirrä kalenterin paikkaa";
87
+Calendar._TT["PART_TODAY"] = " (tänään)";
88
+Calendar._TT["MON_FIRST"] = "Näytä maanantai ensimmäisenä";
89
+Calendar._TT["SUN_FIRST"] = "Näytä sunnuntai ensimmäisenä";
90
+Calendar._TT["CLOSE"] = "Sulje";
91
+Calendar._TT["TODAY"] = "Tänään";
92
+Calendar._TT["TIME_PART"] = "(Shift-) Klikkaa tai liikuta muuttaaksesi aikaa";
93
+
94
+// date formats
95
+Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
96
+Calendar._TT["TT_DATE_FORMAT"] = "%d.%m.%Y";
97
+
98
+Calendar._TT["WK"] = "Vko";

+ 0
- 0
jscalendar/lang/calendar-fr.js Просмотреть файл


Некоторые файлы не были показаны из-за большого количества измененных файлов