Image Watermark - Version 1.0.0

Version Description

Download this release

Release Info

Developer dfactory
Plugin Icon 128x128 Image Watermark
Version 1.0.0
Comparing to
See all releases

Version 1.0.0

css/images/bg_fallback.png ADDED
Binary file
css/images/icon_sprite.png ADDED
Binary file
css/images/slider_handles.png ADDED
Binary file
css/images/slider_handles@2x.png ADDED
Binary file
css/images/ui-icons_222222_256x240.png ADDED
Binary file
css/images/ui-icons_454545_256x240.png ADDED
Binary file
css/style.css ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #image-watermark { max-width:70%; margin-right:20px; }
2
+ #image-watermark h3 { font-family: "HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif; font-weight: bold; }
3
+ #image-watermark hr, #df-credits hr { border: solid #ddd; border-width: 1px 0 0; clear: both; height: 0; -moz-box-shadow: 0px 1px 0px #fff; -webkit-box-shadow: 0px 1px 0px #fff; box-shadow: 0px 1px 0px #fff; margin:15px 0; }
4
+ #watermark-submit { margin:20px 0; }
5
+ #watermark-position-table, #watermark-protection-table { margin-bottom:20px; }
6
+ #df-credits { width:25%; min-width:200px; max-width:350px; border:1px solid #ddd; background:#fcfcfc; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px;}
7
+ #df-credits h3 { margin-top:5px; }
8
+ #df-credits h3.metabox-title {
9
+ background: #f9f9f9 url(images/bg_fallback.png) 0 -50px repeat-x; /* Old browsers */
10
+ background: -moz-linear-gradient(top, #2e9fd2 0%, #21759B 100%); /* FF3.6+ */
11
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2e9fd2), color-stop(100%,#21759B)); /* Chrome,Safari4+ */
12
+ background: -webkit-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Chrome10+,Safari5.1+ */
13
+ background: -o-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Opera11.10+ */
14
+ background: -ms-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* IE10+ */
15
+ background: linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* W3C */
16
+ -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
17
+ -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
18
+ box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
19
+ border: 1px solid;
20
+ border-color: #21759b;
21
+ border-bottom-color: #1e6a8d;
22
+ -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5);
23
+ box-shadow: inset 0 1px 0 rgba(120,200,230,0.5);
24
+ color: #fff;
25
+ text-decoration: none;
26
+ text-shadow: 0 1px 0 rgba(0,0,0,0.5);
27
+ margin:0;
28
+ line-height:32px;
29
+ font-weight:normal;
30
+ padding:0 10px;
31
+ }
32
+ #df-credits .inner { padding:15px 10px; }
33
+ #df-credits .df-link { font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif; font-style:italic; margin:0; }
34
+ #df-credits .df-link a { vertical-align: middle; padding: 5px 0 0 7px; }
css/wp-like-ui-theme.css ADDED
@@ -0,0 +1,774 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.7
3
+ *
4
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ui-helper-hidden { display: none; }
14
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .ui-helper-clearfix { display: inline-block; }
18
+ /* required comment for clearfix to work in Opera \*/
19
+ * html .ui-helper-clearfix { height:1%; }
20
+ .ui-helper-clearfix { display:block; }
21
+ /* end clearfix */
22
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
+
24
+
25
+ /* Interaction Cues
26
+ ----------------------------------*/
27
+ .ui-state-disabled { cursor: default !important; }
28
+
29
+
30
+ /* Icons
31
+ ----------------------------------*/
32
+
33
+ /* states and images */
34
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
+
36
+
37
+ /* Misc visuals
38
+ ----------------------------------*/
39
+
40
+ /* Overlays */
41
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
+
43
+
44
+ /*
45
+ * jQuery UI CSS Framework 1.8.7
46
+ *
47
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
48
+ * Dual licensed under the MIT or GPL Version 2 licenses.
49
+ * http://jquery.org/license
50
+ *
51
+ * http://docs.jquery.com/UI/Theming/API
52
+ *
53
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ctl=themeroller
54
+ */
55
+
56
+
57
+ /* Component containers
58
+ ----------------------------------*/
59
+ .ui-widget { font-family: Arial,sans-serif; font-size: 1.1em; }
60
+ .ui-widget .ui-widget { font-size: 1em; }
61
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial,sans-serif; font-size: 1em; }
62
+ .ui-widget-content { border: 1px solid #dfdfdf; background: #ffffff; color: #333333; font-size:12px; }
63
+ .ui-widget-content a { color: #333333; }
64
+ .ui-widget-header { border: 1px solid #dfdfdf; color: #333333; font-weight: normal; }
65
+ .ui-widget-header {
66
+ background: #f3f3f3 url(images/bg_fallback.png) 0 0 repeat-x; /* Old browsers */
67
+ background: -moz-linear-gradient(top, #f9f9f9 0%, #ececec 100%); /* FF3.6+ */
68
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#ececec)); /* Chrome,Safari4+ */
69
+ background: -webkit-linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* Chrome10+,Safari5.1+ */
70
+ background: -o-linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* Opera11.10+ */
71
+ background: -ms-linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* IE10+ */
72
+ background: linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* W3C */
73
+ }
74
+ .ui-widget-header a { color: #333333; }
75
+
76
+ /* Interaction states
77
+ ----------------------------------*/
78
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #dfdfdf; font-weight: normal; color: #333333; }
79
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
80
+ background: #f9f9f9 url(images/bg_fallback.png) 0 0 repeat-x; /* Old browsers */
81
+ background: -moz-linear-gradient(top, #f9f9f9 0%, #ececec 100%); /* FF3.6+ */
82
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#ececec)); /* Chrome,Safari4+ */
83
+ background: -webkit-linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* Chrome10+,Safari5.1+ */
84
+ background: -o-linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* Opera11.10+ */
85
+ background: -ms-linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* IE10+ */
86
+ background: linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* W3C */
87
+ -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.4) inset;
88
+ -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.4) inset;
89
+ box-shadow: 0 1px 0 rgba(255,255,255,0.4) inset;
90
+ }
91
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #333333; text-decoration: none; }
92
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #bbbbbb; font-weight: normal; color: #313131; }
93
+ .ui-state-hover a, .ui-state-hover a:hover { color: #313131; text-decoration: none; }
94
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
95
+ outline: none;
96
+ color: #ffffff;
97
+ border-color: #21759b #21759b #1e6a8d;
98
+ background: #f9f9f9 url(images/bg_fallback.png) 0 -50px repeat-x; /* Old browsers */
99
+ background: -moz-linear-gradient(top, #2e9fd2 0%, #21759B 100%); /* FF3.6+ */
100
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2e9fd2), color-stop(100%,#21759B)); /* Chrome,Safari4+ */
101
+ background: -webkit-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Chrome10+,Safari5.1+ */
102
+ background: -o-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Opera11.10+ */
103
+ background: -ms-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* IE10+ */
104
+ background: linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* W3C */
105
+ -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
106
+ -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
107
+ box-shadow: 0 1px 0 rgba(255,255,255,0.4) inset;
108
+ text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
109
+ }
110
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #fff; text-decoration: none; }
111
+ .ui-widget :active { outline: none; }
112
+
113
+ /* Interaction Cues
114
+ ----------------------------------*/
115
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #e6db55; background: #ffffe0; color: #333; }
116
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #333; }
117
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #cc0000; background: #ffebe8; color: #333; }
118
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
119
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
120
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: normal; }
121
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { font-weight: normal; }
122
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
123
+
124
+ /* Icons
125
+ ----------------------------------*/
126
+
127
+ /* states and images */
128
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
129
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
130
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
131
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_454545_256x240.png); }
132
+ .ui-state-hover .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
133
+ .ui-state-focus .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
134
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
135
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
136
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background: url(images/icon_sprite.png) -16px 0 no-repeat !important; }
137
+ .ui-state-highlight .ui-icon, .ui-state-error .ui-icon { margin-top: -1px; }
138
+
139
+ /* positioning */
140
+ .ui-icon-carat-1-n { background-position: 0 0; }
141
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
142
+ .ui-icon-carat-1-e { background-position: -32px 0; }
143
+ .ui-icon-carat-1-se { background-position: -48px 0; }
144
+ .ui-icon-carat-1-s { background-position: -64px 0; }
145
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
146
+ .ui-icon-carat-1-w { background-position: -96px 0; }
147
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
148
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
149
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
150
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
151
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
152
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
153
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
154
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
155
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
156
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
157
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
158
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
159
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
160
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
161
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
162
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
163
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
164
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
165
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
166
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
167
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
168
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
169
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
170
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
171
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
172
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
173
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
174
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
175
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
176
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
177
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
178
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
179
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
180
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
181
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
182
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
183
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
184
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
185
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
186
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
187
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
188
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
189
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
190
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
191
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
192
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
193
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
194
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
195
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
196
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
197
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
198
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
199
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
200
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
201
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
202
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
203
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
204
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
205
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
206
+ .ui-icon-extlink { background-position: -32px -80px; }
207
+ .ui-icon-newwin { background-position: -48px -80px; }
208
+ .ui-icon-refresh { background-position: -64px -80px; }
209
+ .ui-icon-shuffle { background-position: -80px -80px; }
210
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
211
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
212
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
213
+ .ui-icon-folder-open { background-position: -16px -96px; }
214
+ .ui-icon-document { background-position: -32px -96px; }
215
+ .ui-icon-document-b { background-position: -48px -96px; }
216
+ .ui-icon-note { background-position: -64px -96px; }
217
+ .ui-icon-mail-closed { background-position: -80px -96px; }
218
+ .ui-icon-mail-open { background-position: -96px -96px; }
219
+ .ui-icon-suitcase { background-position: -112px -96px; }
220
+ .ui-icon-comment { background-position: -128px -96px; }
221
+ .ui-icon-person { background-position: -144px -96px; }
222
+ .ui-icon-print { background-position: -160px -96px; }
223
+ .ui-icon-trash { background-position: -176px -96px; }
224
+ .ui-icon-locked { background-position: -192px -96px; }
225
+ .ui-icon-unlocked { background-position: -208px -96px; }
226
+ .ui-icon-bookmark { background-position: -224px -96px; }
227
+ .ui-icon-tag { background-position: -240px -96px; }
228
+ .ui-icon-home { background-position: 0 -112px; }
229
+ .ui-icon-flag { background-position: -16px -112px; }
230
+ .ui-icon-calendar { background-position: -32px -112px; }
231
+ .ui-icon-cart { background-position: -48px -112px; }
232
+ .ui-icon-pencil { background-position: -64px -112px; }
233
+ .ui-icon-clock { background-position: -80px -112px; }
234
+ .ui-icon-disk { background-position: -96px -112px; }
235
+ .ui-icon-calculator { background-position: -112px -112px; }
236
+ .ui-icon-zoomin { background-position: -128px -112px; }
237
+ .ui-icon-zoomout { background-position: -144px -112px; }
238
+ .ui-icon-search { background-position: -160px -112px; }
239
+ .ui-icon-wrench { background-position: -176px -112px; }
240
+ .ui-icon-gear { background-position: -192px -112px; }
241
+ .ui-icon-heart { background-position: -208px -112px; }
242
+ .ui-icon-star { background-position: -224px -112px; }
243
+ .ui-icon-link { background-position: -240px -112px; }
244
+ .ui-icon-cancel { background-position: 0 -128px; }
245
+ .ui-icon-plus { background-position: -16px -128px; }
246
+ .ui-icon-plusthick { background-position: -32px -128px; }
247
+ .ui-icon-minus { background-position: -48px -128px; }
248
+ .ui-icon-minusthick { background-position: -64px -128px; }
249
+ .ui-icon-close { background-position: -80px -128px; }
250
+ .ui-icon-closethick { background-position: -96px -128px; }
251
+ .ui-icon-key { background-position: -112px -128px; }
252
+ .ui-icon-lightbulb { background-position: -128px -128px; }
253
+ .ui-icon-scissors { background-position: -144px -128px; }
254
+ .ui-icon-clipboard { background-position: -160px -128px; }
255
+ .ui-icon-copy { background-position: -176px -128px; }
256
+ .ui-icon-contact { background-position: -192px -128px; }
257
+ .ui-icon-image { background-position: -208px -128px; }
258
+ .ui-icon-video { background-position: -224px -128px; }
259
+ .ui-icon-script { background-position: -240px -128px; }
260
+ .ui-icon-alert { background-position: 0 -144px; }
261
+ .ui-icon-info { background: url(images/icon_sprite.png) 0 0 no-repeat !important; }
262
+ .ui-icon-notice { background-position: -32px -144px; }
263
+ .ui-icon-help { background-position: -48px -144px; }
264
+ .ui-icon-check { background-position: -64px -144px; }
265
+ .ui-icon-bullet { background-position: -80px -144px; }
266
+ .ui-icon-radio-off { background-position: -96px -144px; }
267
+ .ui-icon-radio-on { background-position: -112px -144px; }
268
+ .ui-icon-pin-w { background-position: -128px -144px; }
269
+ .ui-icon-pin-s { background-position: -144px -144px; }
270
+ .ui-icon-play { background-position: 0 -160px; }
271
+ .ui-icon-pause { background-position: -16px -160px; }
272
+ .ui-icon-seek-next { background-position: -32px -160px; }
273
+ .ui-icon-seek-prev { background-position: -48px -160px; }
274
+ .ui-icon-seek-end { background-position: -64px -160px; }
275
+ .ui-icon-seek-start { background-position: -80px -160px; }
276
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
277
+ .ui-icon-seek-first { background-position: -80px -160px; }
278
+ .ui-icon-stop { background-position: -96px -160px; }
279
+ .ui-icon-eject { background-position: -112px -160px; }
280
+ .ui-icon-volume-off { background-position: -128px -160px; }
281
+ .ui-icon-volume-on { background-position: -144px -160px; }
282
+ .ui-icon-power { background-position: 0 -176px; }
283
+ .ui-icon-signal-diag { background-position: -16px -176px; }
284
+ .ui-icon-signal { background-position: -32px -176px; }
285
+ .ui-icon-battery-0 { background-position: -48px -176px; }
286
+ .ui-icon-battery-1 { background-position: -64px -176px; }
287
+ .ui-icon-battery-2 { background-position: -80px -176px; }
288
+ .ui-icon-battery-3 { background-position: -96px -176px; }
289
+ .ui-icon-circle-plus { background-position: 0 -192px; }
290
+ .ui-icon-circle-minus { background-position: -16px -192px; }
291
+ .ui-icon-circle-close { background-position: -32px -192px; }
292
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
293
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
294
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
295
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
296
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
297
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
298
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
299
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
300
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
301
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
302
+ .ui-icon-circle-check { background-position: -208px -192px; }
303
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
304
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
305
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
306
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
307
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
308
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
309
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
310
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
311
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
312
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
313
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
314
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
315
+
316
+
317
+ /* Misc visuals
318
+ ----------------------------------*/
319
+
320
+ /* Corner radius */
321
+ .ui-corner-tl { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; }
322
+ .ui-corner-tr { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
323
+ .ui-corner-bl { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
324
+ .ui-corner-br { -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
325
+ .ui-corner-top { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; }
326
+ .ui-corner-bottom { -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
327
+ .ui-corner-right { -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; }
328
+ .ui-corner-left { -moz-border-radius-topleft: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; }
329
+ .ui-corner-all { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
330
+
331
+ /* Overlays */
332
+ .ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); }
333
+ .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
334
+ * jQuery UI Resizable 1.8.7
335
+ *
336
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
337
+ * Dual licensed under the MIT or GPL Version 2 licenses.
338
+ * http://jquery.org/license
339
+ *
340
+ * http://docs.jquery.com/UI/Resizable#theming
341
+ */
342
+ .ui-resizable { position: relative;}
343
+ .ui-resizable-handle { position: absolute; font-size: 0.1px; z-index: 999; display: block;}
344
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
345
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
346
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
347
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
348
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
349
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
350
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
351
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
352
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
353
+ * jQuery UI Selectable 1.8.7
354
+ *
355
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
356
+ * Dual licensed under the MIT or GPL Version 2 licenses.
357
+ * http://jquery.org/license
358
+ *
359
+ * http://docs.jquery.com/UI/Selectable#theming
360
+ */
361
+ .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
362
+ /*
363
+ * jQuery UI Accordion 1.8.7
364
+ *
365
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
366
+ * Dual licensed under the MIT or GPL Version 2 licenses.
367
+ * http://jquery.org/license
368
+ *
369
+ * http://docs.jquery.com/UI/Accordion#theming
370
+ */
371
+ /* IE/Win - Fix animation bug - #4615 */
372
+ .ui-accordion { width: 100%; }
373
+ .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 0.2em; zoom: 1; height:30px; line-height:30px; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
374
+ .ui-accordion .ui-accordion-header.ui-state-active { -moz-border-radius: 3px 3px 0 0; -webkit-border-radius: 3px 3px 0 0; border-radius: 3px 3px 0 0; }
375
+ .ui-accordion .ui-accordion-content { -moz-border-radius: 0 0 3px 3px; -webkit-border-radius: 0 0 3px 3px; border-radius: 0 0 3px 3px; }
376
+ .ui-accordion .ui-accordion-li-fix { display: inline; }
377
+ .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
378
+ .ui-accordion .ui-accordion-header a { display: block; font-size: 12px; font-weight: normal; padding: 0 .5em 0 1em; }
379
+ .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
380
+ .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; display:none; }
381
+ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; display: none; zoom: 1; }
382
+ .ui-accordion .ui-accordion-content-active { display: block; }/*
383
+ * jQuery UI Autocomplete 1.8.7
384
+ *
385
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
386
+ * Dual licensed under the MIT or GPL Version 2 licenses.
387
+ * http://jquery.org/license
388
+ *
389
+ * http://docs.jquery.com/UI/Autocomplete#theming
390
+ */
391
+ .ui-autocomplete {
392
+ position: absolute; cursor: default; z-index: 3;
393
+ -moz-border-radius: 0;
394
+ -webkit-border-radius: 0;
395
+ border-radius: 0;
396
+ -moz-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
397
+ -webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.3);
398
+ box-shadow: 0 1px 5px rgba(0,0,0,0.3);
399
+ }
400
+
401
+ /* workarounds */
402
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
403
+
404
+ /*
405
+ * jQuery UI Menu 1.8.7
406
+ *
407
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
408
+ * Dual licensed under the MIT or GPL Version 2 licenses.
409
+ * http://jquery.org/license
410
+ *
411
+ * http://docs.jquery.com/UI/Menu#theming
412
+ */
413
+ .ui-menu {
414
+ list-style:none;
415
+ padding: 2px;
416
+ margin: 0;
417
+ display:block;
418
+ float: left;
419
+ }
420
+ .ui-menu .ui-menu {
421
+ margin-top: -3px;
422
+ }
423
+ .ui-menu .ui-menu-item {
424
+ margin:0;
425
+ padding: 0;
426
+ zoom: 1;
427
+ float: left;
428
+ clear: left;
429
+ width: 100%;
430
+ }
431
+ .ui-menu .ui-menu-item a {
432
+ text-decoration:none;
433
+ display:block;
434
+ padding:.2em .4em;
435
+ line-height:1.5;
436
+ zoom:1;
437
+ }
438
+ .ui-menu .ui-menu-item a.ui-state-hover,
439
+ .ui-menu .ui-menu-item a.ui-state-active {
440
+ font-weight: normal;
441
+ margin: -1px;
442
+ background: #5f83b9;
443
+ color: #FFFFFF;
444
+ text-shadow: 0px 1px 1px #234386;
445
+ border-color: #466086;
446
+ -moz-border-radius: 0;
447
+ -webkit-border-radius: 0;
448
+ border-radius: 0;
449
+ }
450
+ /*
451
+ * jQuery UI Button 1.8.7
452
+ *
453
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
454
+ * Dual licensed under the MIT or GPL Version 2 licenses.
455
+ * http://jquery.org/license
456
+ *
457
+ * http://docs.jquery.com/UI/Button#theming
458
+ */
459
+ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; -webkit-user-select: none; -moz-user-select: none; user-select: none; } /* the overflow property removes extra width in IE */
460
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
461
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
462
+ .ui-button-icons-only { width: 3.4em; }
463
+ button.ui-button-icons-only { width: 3.7em; }
464
+
465
+ /* button animation properties */
466
+ .ui-button {
467
+ -webkit-transition: -webkit-box-shadow 0.25s ease-in-out;
468
+ -moz-transition: -moz-box-shadow 0.25s ease-in-out;
469
+ -o-transition: -o-box-shadow 0.25s ease-in-out;
470
+ }
471
+
472
+ /*states*/
473
+ .ui-button.ui-state-hover {
474
+ -moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;
475
+ -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;
476
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;
477
+ }
478
+
479
+ /*button text element */
480
+ .ui-button .ui-button-text { display: block; line-height: 23px; font-size: 12px; font-weight: normal; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
481
+ .ui-button.ui-state-active .ui-button-text { display: block; font-size: 12px; font-weight: normal; text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4); border: 1px solid #21759B #21759B #1E6A8D; }
482
+ .ui-button-text-only .ui-button-text { padding: 0 1em; }
483
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
484
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: 0 1em 0 2.1em; }
485
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: 0 2.1em .0 1em; }
486
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
487
+ /* no icon support for input elements, provide padding by default */
488
+ input.ui-button { font-size: 12px; font-weight: normal; padding: 0 1em !important; height: 30px; line-height:30px; }
489
+ /*remove submit button internal padding in Firefox*/
490
+ input.ui-button::-moz-focus-inner {
491
+ border: 0;
492
+ padding: 0;
493
+ }
494
+ /* fix webkits handling of the box model */
495
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
496
+ input.ui-button {
497
+ height: 30px !important;
498
+ vertical-align: bottom;
499
+ }
500
+ }
501
+
502
+ /*button icon element(s) */
503
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
504
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
505
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
506
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
507
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
508
+
509
+ /*button sets*/
510
+ .ui-buttonset { margin-right: 7px; }
511
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
512
+ .ui-buttonset .ui-button.ui-state-active { color: #ffffff; border-color: #21759B #21759B #1E6A8D; }
513
+ .ui-buttonset .ui-button.ui-state-active {
514
+ background: #f9f9f9 url(images/bg_fallback.png) 0 -50px repeat-x; /* Old browsers */
515
+ background: -moz-linear-gradient(top, #2e9fd2 0%, #21759B 100%); /* FF3.6+ */
516
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2e9fd2), color-stop(100%,#21759B)); /* Chrome,Safari4+ */
517
+ background: -webkit-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Chrome10+,Safari5.1+ */
518
+ background: -o-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Opera11.10+ */
519
+ background: -ms-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* IE10+ */
520
+ background: linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* W3C */
521
+ -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
522
+ -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
523
+ box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
524
+ }
525
+
526
+ /* workarounds */
527
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
528
+ /*
529
+ * jQuery UI Dialog 1.8.7
530
+ *
531
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
532
+ * Dual licensed under the MIT or GPL Version 2 licenses.
533
+ * http://jquery.org/license
534
+ *
535
+ * http://docs.jquery.com/UI/Dialog#theming
536
+ */
537
+ .ui-dialog { position: absolute; padding: 0; width: 300px; overflow: hidden; }
538
+ .ui-dialog {
539
+ -webkit-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
540
+ -moz-box-shadow: 0 2px 12px rgba(0,0,0,0.6);
541
+ box-shadow: 0 2px 12px rgba(0,0,0,0.6);
542
+ outline:none;
543
+ }
544
+ .ui-dialog .ui-dialog-titlebar { padding: 0.7em 1em 0.6em 1em; position: relative; border: none; border-bottom: 1px solid #dfdfdf; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
545
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.5); }
546
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .8em; top: 60%; width: 16px; margin: -10px 0 0 0; padding: 0; height: 16px; overflow:hidden; border:none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; }
547
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; background: url(images/icon_sprite.png) 0 -16px no-repeat; top:0; left:0; margin:0; }
548
+ .ui-dialog .ui-dialog-titlebar-close span.ui-button-text { display:none; }
549
+ .ui-dialog .ui-dialog-titlebar-close:hover span { background-position: -16px -16px; }
550
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; border:none; background:none; }
551
+ .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
552
+ .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
553
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
554
+ .ui-dialog .ui-dialog-buttonpane button {
555
+ margin: .5em .4em .5em 0;
556
+ cursor: pointer;
557
+ outline: none;
558
+ color: #ffffff;
559
+ border-color: #21759b #21759b #1e6a8d;
560
+ background: #f9f9f9 url(images/bg_fallback.png) 0 -50px repeat-x; /* Old browsers */
561
+ background: -moz-linear-gradient(top, #2e9fd2 0%, #21759B 100%); /* FF3.6+ */
562
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2e9fd2), color-stop(100%,#21759B)); /* Chrome,Safari4+ */
563
+ background: -webkit-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Chrome10+,Safari5.1+ */
564
+ background: -o-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Opera11.10+ */
565
+ background: -ms-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* IE10+ */
566
+ background: linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* W3C */
567
+ -moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;
568
+ -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;
569
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;
570
+ }
571
+ .ui-dialog .ui-dialog-buttonpane .ui-button-text {
572
+ text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
573
+ }
574
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
575
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
576
+ /*
577
+ * jQuery UI Slider 1.8.16
578
+ *
579
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
580
+ * Dual licensed under the MIT or GPL Version 2 licenses.
581
+ * http://jquery.org/license
582
+ *
583
+ * http://docs.jquery.com/UI/Slider#theming
584
+ */
585
+ .ui-slider { position: relative; text-align: left; background: #f1f1f1; border: none; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.3) inset; -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.3) inset; box-shadow: 0 1px 3px rgba(0,0,0,0.3) inset; display: inline-block; *display: inline !important; *zoom: 1; }
586
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 17px; height: 21px; cursor: default; background: url(images/slider_handles.png) 0 0 no-repeat; outline: none; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; border: none; }
587
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background: #2e9fd2; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.4) inset; -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.4) inset; box-shadow: 0 1px 3px rgba(0,0,0,0.4) inset; }
588
+ .ui-slider .ui-slider-handle.ui-state-active { background-position: -17px 0; }
589
+
590
+ .ui-slider-horizontal { height: 7px; }
591
+ .ui-slider-horizontal .ui-slider-handle { top: -5px; margin-left: -.6em; }
592
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
593
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
594
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
595
+
596
+ .ui-slider-vertical { width: 7px; height: 100px; }
597
+ .ui-slider-vertical .ui-slider-handle { left: -.4em; margin-left: 0; margin-bottom: -.6em; }
598
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
599
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
600
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }/*
601
+ * jQuery UI Tabs 1.8.7
602
+ *
603
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
604
+ * Dual licensed under the MIT or GPL Version 2 licenses.
605
+ * http://jquery.org/license
606
+ *
607
+ * http://docs.jquery.com/UI/Tabs#theming
608
+ */
609
+ .ui-tabs { position: relative; zoom: 1; border: 0; background: transparent; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
610
+ .ui-tabs .ui-tabs-nav { margin: 0; padding: 0; background: transparent; border-width: 0 0 1px 0; }
611
+ .ui-tabs .ui-tabs-nav {
612
+ -moz-border-radius: 0;
613
+ -webkit-border-radius: 0;
614
+ border-radius: 0;
615
+ }
616
+ .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; -moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset; -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;}
617
+ .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; font-size: 12px; font-weight: normal; outline: none; }
618
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; background: #fff; border-color: #dfdfdf; }
619
+ .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; outline: none; color:#333; }
620
+ .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
621
+ .ui-tabs .ui-tabs-panel { display: block; border-width: 0 1px 1px 1px; padding: 1em 1.4em; background: none; }
622
+ .ui-tabs .ui-tabs-panel { background: #FFF;
623
+ -moz-border-radius: 0;
624
+ -webkit-border-radius: 0;
625
+ border-radius: 0;
626
+ }
627
+ .ui-tabs .ui-tabs-hide { display: none !important; }
628
+ /*
629
+ * jQuery UI Datepicker 1.8.7
630
+ *
631
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
632
+ * Dual licensed under the MIT or GPL Version 2 licenses.
633
+ * http://jquery.org/license
634
+ *
635
+ * http://docs.jquery.com/UI/Datepicker#theming
636
+ */
637
+ .ui-datepicker { width: 17em; padding: 0; display: none; border-color: #DDDDDD; }
638
+ .ui-datepicker {
639
+ -moz-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
640
+ -webkit-box-shadow: 0 4px 8px rgba(0,0,0,0.5);
641
+ box-shadow: 0 4px 8px rgba(0,0,0,0.5);
642
+ }
643
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.35em 0; border: none; border-bottom: 1px solid #dfdfdf; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }
644
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 6px; width: 1.8em; height: 1.8em; }
645
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { border: 1px none; }
646
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
647
+ .ui-datepicker .ui-datepicker-next { right:2px; }
648
+ .ui-datepicker .ui-datepicker-prev span { background-position: 0px -32px !important; }
649
+ .ui-datepicker .ui-datepicker-next span { background-position: -16px -32px !important; }
650
+ .ui-datepicker .ui-datepicker-prev-hover span { background-position: 0px -48px !important; }
651
+ .ui-datepicker .ui-datepicker-next-hover span { background-position: -16px -48px !important; }
652
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; background: url(images/icon_sprite.png) no-repeat; }
653
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; font-size: 12px; text-shadow: 0 1px 0 rgba(255,255,255,0.6); }
654
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
655
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
656
+ .ui-datepicker select.ui-datepicker-month,
657
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
658
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
659
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: normal; border: 0; }
660
+ .ui-datepicker td { border: 0; padding: 1px; }
661
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: center; text-decoration: none; }
662
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
663
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; width:auto; overflow:visible; height:25px; line-height:22px; padding: 0 10px 1px; }
664
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
665
+ .ui-datepicker table .ui-state-highlight { }
666
+ .ui-datepicker table .ui-state-hover {
667
+ border: 1px solid #dfdfdf;
668
+ background: #f9f9f9 url(images/bg_fallback.png) 0 0 repeat-x; /* Old browsers */
669
+ background: -moz-linear-gradient(top, #f9f9f9 0%, #ececec 100%); /* FF3.6+ */
670
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#ececec)); /* Chrome,Safari4+ */
671
+ background: -webkit-linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* Chrome10+,Safari5.1+ */
672
+ background: -o-linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* Opera11.10+ */
673
+ background: -ms-linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* IE10+ */
674
+ background: linear-gradient(top, #f9f9f9 0%,#ececec 100%); /* W3C */
675
+ -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
676
+ -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
677
+ box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
678
+ }
679
+ .ui-datepicker-calendar .ui-state-default { background:none; border-color:#fff; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
680
+ .ui-datepicker-calendar .ui-state-active, .ui-datepicker-calendar .ui-state-active.ui-state-hover {
681
+ outline: none;
682
+ color: #ffffff;
683
+ border-color: #21759b #21759b #1e6a8d;
684
+ background: #f9f9f9 url(images/bg_fallback.png) 0 -50px repeat-x; /* Old browsers */
685
+ background: -moz-linear-gradient(top, #2e9fd2 0%, #21759B 100%); /* FF3.6+ */
686
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2e9fd2), color-stop(100%,#21759B)); /* Chrome,Safari4+ */
687
+ background: -webkit-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Chrome10+,Safari5.1+ */
688
+ background: -o-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* Opera11.10+ */
689
+ background: -ms-linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* IE10+ */
690
+ background: linear-gradient(top, #2e9fd2 0%,#21759B 100%); /* W3C */
691
+ -moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;
692
+ -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;
693
+ box-shadow: 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 0 rgba(255,255,255,0.4) inset;
694
+ text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
695
+ font-weight: normal;
696
+ }
697
+
698
+ /* with multiple calendars */
699
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
700
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
701
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
702
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
703
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
704
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
705
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
706
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
707
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
708
+ .ui-datepicker-row-break { clear:both; width:100%; }
709
+
710
+ /* RTL support */
711
+ .ui-datepicker-rtl { direction: rtl; }
712
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
713
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
714
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
715
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
716
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
717
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
718
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
719
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
720
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
721
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
722
+
723
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
724
+ .ui-datepicker-cover {
725
+ display: none; /*sorry for IE5*/
726
+ display/**/: block; /*sorry for IE5*/
727
+ position: absolute; /*must have*/
728
+ z-index: -1; /*must have*/
729
+ filter: mask(); /*must have*/
730
+ top: -4px; /*must have*/
731
+ left: -4px; /*must have*/
732
+ width: 200px; /*must have*/
733
+ height: 200px; /*must have*/
734
+ }
735
+ /*
736
+ * jQuery UI Progressbar 1.8.16
737
+ *
738
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
739
+ * Dual licensed under the MIT or GPL Version 2 licenses.
740
+ * http://jquery.org/license
741
+ *
742
+ * http://docs.jquery.com/UI/Progressbar#theming
743
+ */
744
+ .ui-progressbar { height: 10px; text-align: left; border: 0 none; background: #f1f1f1; border: none; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.3) inset; -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.3) inset; box-shadow: 0 1px 3px rgba(0,0,0,0.3) inset;
745
+ }
746
+ .ui-progressbar .ui-progressbar-value { margin: -1px; height:100%; border: 0 none; }
747
+ .ui-progressbar .ui-progressbar-value { background: #2e9fd2; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.4) inset; -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.4) inset; box-shadow: 0 1px 3px rgba(0,0,0,0.4) inset;
748
+ }
749
+
750
+ /* Extra Input Field Styling */
751
+ .ui-form textarea, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]) {
752
+ color:#333;
753
+ padding: 3px;
754
+ -webkit-border-radius: 2px;
755
+ -moz-border-radius: 2px;
756
+ border-radius: 2px;
757
+ border: 1px solid #dfdfdf;
758
+ outline: none;
759
+ -webkit-transition: all 0.25s ease-in-out;
760
+ -moz-transition: all 0.25 ease-in-out;
761
+ -o-transition: all 0.25s ease-in-out;
762
+ -moz-box-sizing: border-box;
763
+ font-family:Arial, Helvetica, sans-serif;
764
+ font-size:12px;
765
+ }
766
+ .ui-form textarea:hover, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):hover {
767
+ border: 1px solid #dfdfdf;
768
+ }
769
+ .ui-form textarea:focus, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):focus {
770
+ border: 1px solid #aaa;
771
+ -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
772
+ -moz-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
773
+ box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
774
+ }
image-watermark.php ADDED
@@ -0,0 +1,896 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: Image Watermark
4
+ Description: Image Watermark allows you to automatically watermark images uploaded to the WordPress Media Library.
5
+ Version: 1.0.0
6
+ Author: dFactory
7
+ Author URI: http://www.dfactory.eu/
8
+ Plugin URI: http://www.dfactory.eu/plugins/image-watermark/
9
+ License: MIT License
10
+ License URI: http://opensource.org/licenses/MIT
11
+
12
+ Image Watermark
13
+ Copyright (C) 2013, Digital Factory - info@digitalfactory.pl
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+
22
+
23
+ global $wp_version;
24
+
25
+ if(version_compare(PHP_VERSION, '5.0', '<') || version_compare($wp_version, '3.5', '<'))
26
+ {
27
+ wp_die(__('Sorry, Image Watermark plugin requires at least PHP 5.0 and WP 3.5 or higher.'));
28
+ }
29
+
30
+ class ImageWatermark
31
+ {
32
+ private $_messages = array();
33
+ private $_image_sizes = array('thumbnail', 'medium', 'large', 'fullsize');
34
+ private $_watermark_positions = array (
35
+ 'x' => array('left', 'center', 'right'),
36
+ 'y' => array('top', 'middle', 'bottom'),
37
+ );
38
+ protected $_options = array(
39
+ 'df_watermark_on' => array(),
40
+ 'df_watermark_cpt_on' => array(),
41
+ 'df_watermark_type' => 'image',
42
+ 'df_watermark_image' => array(
43
+ 'url' => 0,
44
+ 'width' => 80,
45
+ 'plugin_off' => 1,
46
+ 'position' => 'bottom_right',
47
+ 'watermark_size_type' => 2,
48
+ 'offset_width' => 0,
49
+ 'offset_height' => 0,
50
+ 'absolute_width' => 0,
51
+ 'absolute_height' => 0,
52
+ 'transparent' => 50
53
+ ),
54
+ 'df_image_protection' => array(
55
+ 'rightclick' => 0,
56
+ 'draganddrop' => 0,
57
+ 'forlogged' => 0,
58
+ )
59
+ );
60
+
61
+
62
+ public function __construct()
63
+ {
64
+ // register installer function
65
+ register_activation_hook(__FILE__, array(&$this, 'activate_watermark'));
66
+
67
+ //actions
68
+ add_action('plugins_loaded', array(&$this, 'load_textdomain'));
69
+ add_action('admin_enqueue_scripts', array(&$this, 'watermark_scripts_styles'));
70
+ add_action('admin_menu', array(&$this, 'watermark_admin_menu'));
71
+ add_action('wp_footer', array(&$this, 'watermark_no_right_click'));
72
+
73
+ // check if post_id is "-1", meaning we're uploading watermark image
74
+ if(!(array_key_exists('post_id', $_REQUEST) && $_REQUEST['post_id'] == -1))
75
+ {
76
+ add_filter('wp_handle_upload_prefilter', array(&$this, 'delay_upload_filter'), 10, 1);
77
+ }
78
+ }
79
+
80
+
81
+ public function delay_upload_filter($value)
82
+ {
83
+ if(isset($_REQUEST['post_id']))
84
+ {
85
+ $option = get_option('df_watermark_cpt_on');
86
+
87
+ if($option[0] === 'everywhere' || in_array(get_post_type($_REQUEST['post_id']), array_keys($option)) === TRUE)
88
+ {
89
+ add_filter('wp_generate_attachment_metadata', array(&$this, 'apply_watermark'));
90
+ }
91
+ }
92
+
93
+ return $value;
94
+ }
95
+
96
+
97
+ public function load_textdomain()
98
+ {
99
+ load_plugin_textdomain('image-watermark', FALSE, basename(dirname(__FILE__)).'/languages');
100
+ }
101
+
102
+
103
+ // Enqueue scripts and styles
104
+ public function watermark_scripts_styles($page)
105
+ {
106
+ if($page !== 'settings_page_watermark-options')
107
+ return;
108
+
109
+ wp_enqueue_media();
110
+
111
+ wp_enqueue_script(
112
+ 'upload-manager',
113
+ plugins_url('/js/upload-manager.js', __FILE__)
114
+ );
115
+
116
+ wp_enqueue_script(
117
+ 'wp-like',
118
+ plugins_url('js/wp-like.js', __FILE__),
119
+ array('jquery', 'jquery-ui-core', 'jquery-ui-button')
120
+ );
121
+
122
+ wp_enqueue_script(
123
+ 'watermark-admin-script',
124
+ plugins_url('js/admin.js', __FILE__),
125
+ array('jquery', 'wp-like')
126
+ );
127
+
128
+ wp_localize_script(
129
+ 'upload-manager',
130
+ 'upload_manager_args',
131
+ array(
132
+ 'title' => __('Select watermark', 'image-watermark'),
133
+ 'originalSize' => __('Original size', 'image-watermark'),
134
+ 'frame' => 'select',
135
+ 'button' => array('text' => __('Add watermark', 'image-watermark')),
136
+ 'multiple' => FALSE,
137
+ )
138
+ );
139
+
140
+ wp_enqueue_style('thickbox');
141
+ wp_enqueue_style('watermark-style', plugins_url('css/style.css', __FILE__));
142
+ wp_enqueue_style('wp-like-ui-theme', plugins_url('css/wp-like-ui-theme.css', __FILE__));
143
+ }
144
+
145
+
146
+ // Create options page in menu & print styles & scripts
147
+ public function watermark_admin_menu()
148
+ {
149
+ $watermark_settings_page = add_options_page(
150
+ __('Image Watermark Options', 'image-watermark'),
151
+ __('Watermark', 'image-watermark'),
152
+ 'manage_options',
153
+ 'watermark-options',
154
+ array(&$this, 'watermark_options_page')
155
+ );
156
+ }
157
+
158
+
159
+ // Block right click on images
160
+ public function watermark_no_right_click()
161
+ {
162
+ $options = $this->get_option('df_image_protection');
163
+
164
+ if(($options['forlogged'] == 0 && is_user_logged_in()) || ($options['draganddrop'] == 0 && $options['rightclick'] == 0))
165
+ {
166
+ return;
167
+ }
168
+
169
+ // Oj nieladnie :)
170
+ // to wszystko powinno siedziec np. w tym no-right-click.js lub oddzielnym pliku js, enqueue_script? (jesli to cos robi na froncie)
171
+
172
+ echo '
173
+ <script language="javascript" type="text/javascript">
174
+ var df_nrc_extra="'.($options['rightclick'] == 1 ? 'Y' : 'N').'";
175
+ var df_nrc_drag="'.($options['draganddrop'] == 1 ? 'Y' : 'N').'";
176
+ </script>
177
+ <script language="javascript" type="text/javascript" src="'.addslashes(WP_PLUGIN_URL.'/image-watermark'.'/js/no-right-click.js').'">
178
+ </script>';
179
+ }
180
+
181
+
182
+ private function getCustomPostTypes()
183
+ {
184
+ return array_merge(array('post', 'page'), get_post_types(array('_builtin' => FALSE), 'names'));
185
+ }
186
+
187
+
188
+ /**
189
+ * Display options page
190
+ */
191
+ public function watermark_options_page()
192
+ {
193
+ // if user clicked "Save Changes" save them
194
+ if(isset($_POST['submit']))
195
+ {
196
+ foreach($this->_options as $option => $value)
197
+ {
198
+ if(array_key_exists($option, $_POST))
199
+ {
200
+ switch($option)
201
+ {
202
+ case 'df_watermark_on':
203
+ {
204
+ $tmp = array();
205
+
206
+ foreach($this->_image_sizes as $size)
207
+ {
208
+ if(in_array($size, array_keys($_POST[$option])))
209
+ {
210
+ $tmp[$size] = 1;
211
+ }
212
+ }
213
+
214
+ update_option($option, $tmp);
215
+ break;
216
+ }
217
+ case 'df_watermark_cpt_on':
218
+ {
219
+ if($_POST['df_watermark_cpt_on'] === 'everywhere')
220
+ {
221
+ update_option($option, array('everywhere'));
222
+ }
223
+ elseif($_POST['df_watermark_cpt_on'] === 'specific')
224
+ {
225
+ if(isset($_POST['df_watermark_cpt_on_type']))
226
+ {
227
+ $tmp = array();
228
+
229
+ foreach($this->getCustomPostTypes() as $cpt)
230
+ {
231
+ if(in_array($cpt, array_keys($_POST['df_watermark_cpt_on_type'])))
232
+ {
233
+ $tmp[$cpt] = 1;
234
+ }
235
+ }
236
+
237
+ if(count($tmp) === 0) update_option($option, array('everywhere'));
238
+ else update_option($option, $tmp);
239
+ }
240
+ else update_option($option, array('everywhere'));
241
+ }
242
+
243
+ break;
244
+ }
245
+ case 'df_watermark_image':
246
+ {
247
+ $tmp = array();
248
+
249
+ foreach($this->_options[$option] as $image_option => $value_i)
250
+ {
251
+ switch($image_option)
252
+ {
253
+ case 'width':
254
+ case 'plugin_off':
255
+ case 'watermark_size_type':
256
+ case 'offset_width':
257
+ case 'offset_height':
258
+ case 'absolute_width':
259
+ case 'absolute_height':
260
+ case 'transparent':
261
+ $tmp[$image_option] = (int)(isset($_POST[$option][$image_option]) ? $_POST[$option][$image_option] : $this->_options[$option][$image_option]);
262
+ break;
263
+
264
+ case 'url':
265
+ $tmp[$image_option] = (isset($_POST[$option][$image_option]) ? (int)$_POST[$option][$image_option] : $this->_options[$option][$image_option]);
266
+ break;
267
+
268
+ case 'position':
269
+ $positions = array();
270
+
271
+ foreach($this->_watermark_positions['y'] as $position_y)
272
+ {
273
+ foreach($this->_watermark_positions['x'] as $position_x)
274
+ {
275
+ $positions[] = $position_y.'_'.$position_x;
276
+ }
277
+ }
278
+
279
+ $tmp[$image_option] = (isset($_POST[$option][$image_option]) && in_array($_POST[$option][$image_option], $positions) ? $_POST[$option][$image_option] : $this->_options[$option][$image_option]);
280
+ break;
281
+ }
282
+ }
283
+
284
+ update_option($option, $tmp);
285
+ break;
286
+ }
287
+ case 'df_image_protection':
288
+ {
289
+ $tmp = array();
290
+
291
+ foreach($this->_options[$option] as $protection => $value_p)
292
+ {
293
+ if(in_array($protection, array_keys($_POST[$option])))
294
+ {
295
+ $tmp[$protection] = 1;
296
+ }
297
+ }
298
+
299
+ update_option($option, $tmp);
300
+ break;
301
+ }
302
+ }
303
+ }
304
+ else
305
+ {
306
+ update_option($option, $value);
307
+ }
308
+ }
309
+ }
310
+
311
+ if(!extension_loaded('gd'))
312
+ {
313
+ $this->_messages['error'][] = __('Image Watermark will not work properly without GD PHP extension.', 'image-watermark');
314
+ }
315
+
316
+ foreach($this->_messages as $namespace => $messages)
317
+ {
318
+ foreach($messages as $message)
319
+ {
320
+ echo '
321
+ <div class="'.$namespace.'">
322
+ <p>
323
+ <strong>'.$message.'</strong>
324
+ </p>
325
+ </div>';
326
+ }
327
+ }
328
+
329
+ $watermark_image = $this->get_option('df_watermark_image');
330
+ $image_protection = $this->get_option('df_image_protection');
331
+ ?>
332
+ <div class="wrap">
333
+ <div id="icon-options-general" class="icon32"><br /></div>
334
+ <h2><?php echo __('Image Watermark Settings', 'image-watermark'); ?></h2>
335
+ <div id="image-watermark" class="postbox-container">
336
+ <div class="metabox-holder">
337
+ <form method="post" action="">
338
+ <h3><?php echo __('General settings', 'image-watermark'); ?></h3>
339
+ <table id="watermark-general-table" class="form-table">
340
+ <tr valign="top">
341
+ <th scope="row"><?php echo __('Enable watermark', 'image-watermark'); ?></th>
342
+ <td class="wr_width">
343
+ <fieldset class="wr_width">
344
+ <legend class="screen-reader-text"><span><?php echo __('Width', 'image-watermark'); ?></span></legend>
345
+ <div id="run-watermark">
346
+ <label for="plugin_on"><?php echo __('on', 'image-watermark'); ?></label>
347
+ <input type="radio" id="plugin_on" value="0" name="df_watermark_image[plugin_off]" <?php checked($watermark_image['plugin_off'], 0, TRUE); ?> />
348
+ <label for="plugin_off"><?php echo __('off', 'image-watermark'); ?></label>
349
+ <input type="radio" id="plugin_off" value="1" name="df_watermark_image[plugin_off]" <?php checked($watermark_image['plugin_off'], 1, TRUE); ?> />
350
+ </div>
351
+ <p class="howto"><?php echo __('Enable or disable watermark for uploaded images.', 'image-watermark'); ?></p>
352
+ </fieldset>
353
+ </td>
354
+ </tr>
355
+ </table>
356
+ <table id="watermark-for-table" class="form-table">
357
+ <tr valign="top">
358
+ <th scope="row"><?php echo __('Enable watermark for', 'image-watermark'); ?></th>
359
+ <td class="wr_width">
360
+ <fieldset class="wr_width">
361
+ <legend class="screen-reader-text"><span><?php echo __('Enable watermark for', 'image-watermark'); ?></span></legend>
362
+ <?php $watermark_on = array_keys($this->get_option('df_watermark_on')); ?>
363
+ <div id="thumbnail-select">
364
+ <?php foreach($this->_image_sizes as $image_size) : ?>
365
+ <input name="df_watermark_on[<?php echo $image_size; ?>]" type="checkbox" id="<?php echo $image_size; ?>" value="1" <?php echo (in_array($image_size, $watermark_on) ? ' checked="checked"' : ''); ?> />
366
+ <label for="<?php echo $image_size; ?>"><?php echo $image_size; ?></label>
367
+ <?php endforeach; ?>
368
+ </div>
369
+ <p class="howto"><?php echo __('Check image sizes on which watermark should appear.', 'image-watermark'); ?></p>
370
+ <legend class="screen-reader-text"><span><?php echo __('Enable watermark for', 'image-watermark'); ?></span></legend>
371
+ <?php $watermark_cpt_on = array_keys($this->get_option('df_watermark_cpt_on'));
372
+ if(in_array('everywhere', $watermark_cpt_on) && count($watermark_cpt_on) === 1)
373
+ { $first_checked = TRUE; $second_checked = FALSE; $watermark_cpt_on = array(); }
374
+ else { $first_checked = FALSE; $second_checked = TRUE; } ?>
375
+ <div id="cpt-specific">
376
+ <input id="df_option_everywhere" type="radio" name="df_watermark_cpt_on" value="everywhere" <?php echo ($first_checked === TRUE ? 'checked="checked"' : ''); ?>/><label for="df_option_everywhere"><?php _e('everywhere', 'image-watermark'); ?></label>
377
+ <input id="df_option_cpt" type="radio" name="df_watermark_cpt_on" value="specific" <?php echo ($second_checked === TRUE ? 'checked="checked"' : ''); ?> /><label for="df_option_cpt"><?php _e('on selected post types only', 'image-watermark'); ?></label>
378
+ </div>
379
+ <div id="cpt-select" <? echo ($second_checked === FALSE ? 'style="display: none;"' : ''); ?>>
380
+ <?php foreach($this->getCustomPostTypes() as $cpt) : ?>
381
+ <input name="df_watermark_cpt_on_type[<?php echo $cpt; ?>]" type="checkbox" id="<?php echo $cpt; ?>" value="1" <?php echo (in_array($cpt, $watermark_cpt_on) ? ' checked="checked"' : ''); ?> />
382
+ <label for="<?php echo $cpt; ?>"><?php echo $cpt; ?></label>
383
+ <?php endforeach; ?>
384
+ </div>
385
+ <p class="howto"><?php echo __('Check custom post types on which watermark should be applied to uploaded images.', 'image-watermark'); ?></p>
386
+ </fieldset>
387
+ </td>
388
+ </tr>
389
+ </table>
390
+ <hr />
391
+ <h3><?php echo __('Watermark position', 'image-watermark'); ?></h3>
392
+ <table id="watermark-position-table" class="form-table">
393
+ <tr valign="top">
394
+ <th scope="row"><?php echo __('Watermark alignment','image-watermark'); ?></th>
395
+ <td>
396
+ <fieldset>
397
+ <legend class="screen-reader-text"><span><?php __('Watermark alignment','image-watermark'); ?></span></legend>
398
+ <table id="watermark_position" border="1">
399
+ <?php $watermark_position = $watermark_image['position']; ?>
400
+ <?php foreach($this->_watermark_positions['y'] as $y) : ?>
401
+ <tr>
402
+ <?php foreach($this->_watermark_positions['x'] as $x) : ?>
403
+ <td title="<?php echo ucfirst($y . ' ' . $x); ?>">
404
+ <input name="df_watermark_image[position]" type="radio" value="<?php echo $y . '_' . $x; ?>"<?php echo ($watermark_position == $y . '_' . $x ? ' checked="checked"' : NULL); ?> />
405
+ </td>
406
+ <?php endforeach; ?>
407
+ </tr>
408
+ <?php endforeach; ?>
409
+ </table>
410
+ <p class="howto"><?php echo __('Choose the position of watermark image.','image-watermark'); ?></p>
411
+ </fieldset>
412
+ </td>
413
+ </tr>
414
+ <tr valign="top">
415
+ <th scope="row"><?php echo __('Watermark offset','image-watermark'); ?></th>
416
+ <td>
417
+ <fieldset>
418
+ <legend class="screen-reader-text"><span><?php echo __('Watermark offset','image-watermark'); ?></span></legend>
419
+ <?php echo __('x:','image-watermark'); ?> <input type="text" size="5" name="df_watermark_image[offset_width]" value="<?php echo $watermark_image['offset_width']; ?>"> <?php echo __('px','image-watermark'); ?>
420
+ <br />
421
+ <?php echo __('y:','image-watermark'); ?> <input type="text" size="5" name="df_watermark_image[offset_height]" value="<?php echo $watermark_image['offset_height']; ?>"> <?php echo __('px','image-watermark'); ?>
422
+ </fieldset>
423
+ </td>
424
+ </tr>
425
+ </table>
426
+ <hr />
427
+ <h3><?php echo __('Watermark image','image-watermark'); ?></h3>
428
+ <p class="howto"><?php echo __('Configure your watermark image. Allowed file formats are: jpg, png, gif.','image-watermark'); ?></p>
429
+ <table id="watermark-image-table" class="form-table">
430
+ <tr valign="top">
431
+ <th scope="row"><?php echo __('Watermark image','image-watermark'); ?></th>
432
+ <td>
433
+ <input id="upload_image" type="hidden" name="df_watermark_image[url]" value="<?php echo (int)$watermark_image['url']; ?>" />
434
+ <input id="upload_image_button" type="button" class="button button-secondary" value="<?php echo __('Select image','image-watermark'); ?>" />
435
+ <input id="turn_off_image_button" type="button" class="button button-secondary" value="<?php echo __('Turn off image','image-watermark'); ?>" />
436
+ <p class="howto"><?php _e('You have to save changes after the selection or removal of the image.', 'image-watermark'); ?></p>
437
+ </td>
438
+ </tr>
439
+ <tr valign="top">
440
+ <th scope="row"><?php echo __('Watermark preview', 'image-watermark'); ?></th>
441
+ <td class="wr_width">
442
+ <fieldset class="wr_width">
443
+ <legend class="screen-reader-text"><span><?php echo __('Watermark Preview', 'image-watermark'); ?></span></legend>
444
+ <div id="previewImg_imageDiv">
445
+ <?php if($watermark_image['url'] !== NULL && $watermark_image['url'] != 0) {
446
+ $image = wp_get_attachment_image_src($watermark_image['url'], array(300, 300), FALSE);
447
+ ?>
448
+ <img id="previewImg_image" src="<? echo $image[0]; ?>" alt="" width="300" />
449
+ <? } else { ?>
450
+ <span id="previewImg_image">
451
+ <?php _e('Watermak has not been selected yet.', 'image-watermark');?>
452
+ </span>
453
+ <?php } ?>
454
+ <span id="previewImg_image_hidden" style="display: none;">
455
+ <?php _e('Watermak has not been selected yet.', 'image-watermark');?>
456
+ </span>
457
+ </div>
458
+ <p id="previewImg_imageDivSize" class="howto"></p>
459
+ </fieldset>
460
+ </td>
461
+ </tr>
462
+ <tr valign="top">
463
+ <th scope="row"><?php echo __('Watermark size', 'image-watermark'); ?></th>
464
+ <td class="wr_width">
465
+ <fieldset class="wr_width">
466
+ <legend class="screen-reader-text"><span><?php echo __('Width', 'image-watermark'); ?></span></legend>
467
+ <div id="watermark-type">
468
+ <label for="type1"><?php echo __('original', 'image-watermark'); ?></label>
469
+ <input type="radio" id="type1" value="0" name="df_watermark_image[watermark_size_type]" <?php checked($watermark_image['watermark_size_type'], 0, TRUE); ?> />
470
+ <label for="type2"><?php echo __('custom', 'image-watermark'); ?></label>
471
+ <input type="radio" id="type2" value="1" name="df_watermark_image[watermark_size_type]" <?php checked($watermark_image['watermark_size_type'], 1, TRUE); ?> />
472
+ <label for="type3"><?php echo __('scaled', 'image-watermark'); ?></label>
473
+ <input type="radio" id="type3" value="2" name="df_watermark_image[watermark_size_type]" <?php checked($watermark_image['watermark_size_type'], 2, TRUE); ?> />
474
+ </div>
475
+ <p class="howto"><?php echo __('Select method of aplying watermark size.', 'image-watermark'); ?></p>
476
+ </fieldset>
477
+ </td>
478
+ </tr>
479
+ <tr valign="top" id="watermark_size_custom">
480
+ <th scope="row"><?php echo __('Watermark custom size', 'image-watermark'); ?></th>
481
+ <td class="wr_width">
482
+ <fieldset class="wr_width">
483
+ <legend class="screen-reader-text"><span><?php echo __('Width', 'image-watermark'); ?></span></legend>
484
+ <?php echo __('x:', 'image-watermark'); ?> <input type="text" size="5" name="df_watermark_image[absolute_width]" value="<?php echo $watermark_image['absolute_width']; ?>"> <?php echo __('px', 'image-watermark'); ?>
485
+ <br />
486
+ <?php echo __('y:', 'image-watermark'); ?> <input type="text" size="5" name="df_watermark_image[absolute_height]" value="<?php echo $watermark_image['absolute_height']; ?>"> <?php echo __('px','image-watermark'); ?>
487
+ </fieldset>
488
+ <p class="howto"><?php echo __('Those dimensions will be used if "custom" method is selected above.', 'image-watermark'); ?></p>
489
+ </td>
490
+ </tr>
491
+ <tr valign="top" id="watermark_size_scale">
492
+ <th scope="row"><?php echo __('Scale of watermark in relation to image width', 'image-watermark'); ?></th>
493
+ <td class="wr_width">
494
+ <fieldset class="wr_width">
495
+ <legend class="screen-reader-text"><span><?php echo __('Width', 'image-watermark'); ?></span></legend>
496
+ <input type="text" size="5" name="df_watermark_image[width]" value="<?php echo $watermark_image['width']; ?>">%
497
+ </fieldset>
498
+ <p class="howto"><?php echo __('This value will be used if "scaled" method if selected above. <br />Enter a number ranging from 0 to 100. 100 makes width of watermark image equal to width of the image it is applied to.','image-watermark'); ?></p>
499
+ </td>
500
+ </tr>
501
+ <tr valign="top">
502
+ <th scope="row"><?php echo __('Watermark transparency / opacity','image-watermark'); ?></th>
503
+ <td class="wr_width">
504
+ <fieldset class="wr_width">
505
+ <input type="text" size="5" name="df_watermark_image[transparent]" value="<?php echo $watermark_image['transparent']; ?>">%
506
+ </fieldset>
507
+ <p class="howto"><?php echo __('Enter a number ranging from 0 to 100. 0 makes watermark image completely transparent, 100 shows it as is.','image-watermark'); ?></p>
508
+ </td>
509
+ </tr>
510
+ </table>
511
+ <input type="hidden" name="action" value="update" />
512
+ <hr />
513
+ <h3><?php echo __('Image protection','image-watermark'); ?></h3>
514
+ <table id="watermark-protection-table" class="form-table">
515
+ <tr>
516
+ <th><?php echo __('Disable right mouse click on images','image-watermark'); ?></th>
517
+ <td><input type="checkbox" <?php checked($image_protection['rightclick'], 1, TRUE); ?> value="1" name="df_image_protection[rightclick]"></td>
518
+ </tr>
519
+ <tr>
520
+ <th><?php echo __('Prevent drag and drop','image-watermark'); ?></th>
521
+ <td><input type="checkbox" <?php checked($image_protection['draganddrop'], 1, TRUE); ?> value="1" name="df_image_protection[draganddrop]"></td>
522
+ </tr>
523
+ <tr>
524
+ <th><?php echo __('Disable image protection for logged-in users','image-watermark'); ?></th>
525
+ <td><input type="checkbox" <?php checked($image_protection['forlogged'], 1, TRUE); ?> value="1" name="df_image_protection[forlogged]"></td>
526
+ </tr>
527
+ </table>
528
+ <hr />
529
+ <input type="submit" id="watermark-submit" class="button button-primary" name="submit" value="<?php echo __('Save Changes','image-watermark'); ?>" />
530
+ </form>
531
+ </div>
532
+ </div>
533
+
534
+ <div id="df-credits" class="postbox-container">
535
+ <h3 class="metabox-title"><?php _e('Image Watermark','image-watermark'); ?></h3>
536
+ <div class="inner">
537
+ <h3><?php _e('Need support?','image-watermark'); ?></h3>
538
+ <p><?php _e('If you are having problems with this plugin, please talk about them in the','image-watermark'); ?> <a href="http://dfactory.eu/support/" target="_blank" title="<?php _e('Support forum','image-watermark'); ?>"><?php _e('Support forum','image-watermark'); ?></a>.</p>
539
+ <hr />
540
+ <h3><?php _e('Do you like this plugin?','image-watermark'); ?></h3>
541
+ <p><?php _e('Rate it 5 on WordPress.org','image-watermark'); ?><br />
542
+ <?php _e('Blog about it & link to the','image-watermark'); ?> <a href="http://dfactory.eu/plugins/image-watermark/" target="_blank" title="<?php _e('plugin page','image-watermark'); ?>"><?php _e('plugin page','image-watermark'); ?></a>.<br />
543
+ <?php _e('Check out our other','image-watermark'); ?> <a href="http://dfactory.eu/plugins/" target="_blank" title="<?php _e('WordPress plugins','image-watermark'); ?>"><?php _e('WordPress plugins','image-watermark'); ?></a>.
544
+ </p>
545
+
546
+ <hr />
547
+ <p class="df-link"><?php echo __('Created by', 'restrict-widgets'); ?><a href="http://www.dfactory.eu" target="_blank" title="dFactory - Quality plugins for WordPress"><img src="<?php echo plugins_url( 'images/logo-dfactory.png' , __FILE__ ); ?>" title="dFactory - Quality plugins for WordPress" alt="dFactory - Quality plugins for WordPress" /></a></p>
548
+
549
+ </div>
550
+ </div>
551
+
552
+ </div>
553
+ <?php
554
+ }
555
+
556
+
557
+ /**
558
+ * Get option by setting name with default value if option is unexistent
559
+ *
560
+ * @param string $setting
561
+ * @return mixed
562
+ */
563
+ protected function get_option($setting)
564
+ {
565
+ if(is_array($this->_options[$setting]))
566
+ {
567
+ $options = array_merge($this->_options[$setting], get_option($setting));
568
+ }
569
+ else
570
+ {
571
+ $options = get_option($setting, $this->_options[$setting]);
572
+ }
573
+
574
+ return $options;
575
+ }
576
+
577
+
578
+ /**
579
+ * Get array with options
580
+ *
581
+ * @return array
582
+ */
583
+ private function get_options()
584
+ {
585
+ $options = array();
586
+
587
+ // loop through default options and get user defined options
588
+ foreach($this->_options as $option => $value)
589
+ {
590
+ $options[$option] = $this->get_option($option);
591
+ }
592
+
593
+ return $options;
594
+ }
595
+
596
+
597
+ /**
598
+ * Plugin installation method
599
+ */
600
+ public function activate_watermark()
601
+ {
602
+ // record install time
603
+ add_option('df_watermark_installed', time(), NULL, 'no');
604
+ add_option('df_watermark_cpt_on', array('everywhere'), NULL, 'no');
605
+
606
+ // loop through default options and add them into DB
607
+ foreach($this->_options as $option => $value)
608
+ {
609
+ add_option($option, $value, NULL, 'no');
610
+ }
611
+ }
612
+
613
+
614
+ /**
615
+ * Apply watermark to selected image sizes
616
+ *
617
+ * @param array $data
618
+ * @return array
619
+ */
620
+ public function apply_watermark($data)
621
+ {
622
+ // get settings for watermarking
623
+ $upload_dir = wp_upload_dir();
624
+ $watermark_on = $this->get_option('df_watermark_on');
625
+
626
+ // loop through image sizes...
627
+ foreach($watermark_on as $image_size => $on)
628
+ {
629
+ if($on === 1)
630
+ {
631
+ switch($image_size)
632
+ {
633
+ case 'fullsize':
634
+ $filepath = $upload_dir['basedir'].DIRECTORY_SEPARATOR.$data['file'];
635
+ break;
636
+
637
+ default:
638
+ if(!empty($data['sizes']) && array_key_exists($image_size, $data['sizes']))
639
+ {
640
+ $filepath = $upload_dir['basedir'].DIRECTORY_SEPARATOR.dirname($data['file']).DIRECTORY_SEPARATOR.$data['sizes'][$image_size]['file'];
641
+ }
642
+ else
643
+ {
644
+ // early getaway
645
+ continue 2;
646
+ }
647
+ }
648
+
649
+ // ...and apply watermark
650
+ $this->do_watermark($filepath);
651
+ }
652
+ }
653
+
654
+ // pass forward attachment metadata
655
+ return $data;
656
+ }
657
+
658
+
659
+ /**
660
+ * Apply watermark to certain image
661
+ *
662
+ * @param string $filepath
663
+ * @return boolean
664
+ */
665
+ public function do_watermark($filepath)
666
+ {
667
+ // get image mime type
668
+ $mime_type = wp_check_filetype($filepath);
669
+ $mime_type = $mime_type['type'];
670
+ // get watermark settings
671
+ $options = $this->get_options();
672
+
673
+ if($options['df_watermark_image']['plugin_off'] === 1)
674
+ {
675
+ return TRUE;
676
+ }
677
+
678
+ // get image resource
679
+ $image = $this->get_image_resource($filepath, $mime_type);
680
+
681
+ if($options['df_watermark_type'] === 'image')
682
+ {
683
+ // add watermark image to image
684
+ $this->add_watermark_image($image, $options);
685
+ }
686
+
687
+ // save watermarked image
688
+ return $this->save_image_file($image, $mime_type, $filepath);
689
+ }
690
+
691
+
692
+ /**
693
+ * Add watermark image to image
694
+ *
695
+ * @param resource $image
696
+ * @param array $opt
697
+ * @return resource
698
+ */
699
+ private function add_watermark_image($image, array $opt)
700
+ {
701
+ // get size and url of watermark
702
+ $size_type = $opt['df_watermark_image']['watermark_size_type'];
703
+ $url = $opt['df_watermark_image']['url'];
704
+ $file = pathinfo($url);
705
+ $ext = $file['extension'];
706
+
707
+ switch($ext)
708
+ {
709
+ case 'jpg':
710
+ case 'jpeg':
711
+ $watermark = imagecreatefromjpeg("$url");
712
+ break;
713
+
714
+ case 'gif':
715
+ $watermark = imagecreatefromgif("$url");
716
+ break;
717
+
718
+ default:
719
+ $watermark = imagecreatefrompng("$url");
720
+ }
721
+
722
+ $watermark_width = imagesx($watermark);
723
+ $watermark_height = imagesy($watermark);
724
+ $img_width = imagesx($image);
725
+ $img_height = imagesy($image);
726
+
727
+ if($size_type == 1) // custom
728
+ {
729
+ $w = $opt['df_watermark_image']['absolute_width'];
730
+ $h = $opt['df_watermark_image']['absolute_height'];
731
+ }
732
+ elseif($size_type == 2) // scale
733
+ {
734
+ $size = $opt['df_watermark_image']['width'] / 100;
735
+ $ratio = (($img_width * $size) / $watermark_width);
736
+ $w = ($watermark_width * $ratio);
737
+ $h = ($watermark_height * $ratio);
738
+ }
739
+ else
740
+ {
741
+ $size = 1;
742
+ $w = ($watermark_width * $size);
743
+ $h = ($watermark_height * $size);
744
+ }
745
+
746
+ $offset_w = $opt['df_watermark_image']['offset_width'];
747
+ $offset_h = $opt['df_watermark_image']['offset_height'];
748
+
749
+ switch($opt['df_watermark_image']['position'])
750
+ {
751
+ case 'top_left':
752
+ $dest_x = $dest_y = 0;
753
+ break;
754
+
755
+ case 'top_center':
756
+ $dest_x = ($img_width / 2) - ($w / 2);
757
+ $dest_y = 0;
758
+ break;
759
+
760
+ case 'top_right':
761
+ $dest_x = $img_width - $w;
762
+ $dest_y = 0;
763
+ break;
764
+
765
+ case 'middle_left':
766
+ $dest_x = 0;
767
+ $dest_y = ($img_height / 2) - ($h / 2);
768
+ break;
769
+
770
+ case 'middle_right':
771
+ $dest_x = $img_width - $w;
772
+ $dest_y = ($img_height / 2) - ($h / 2);
773
+ break;
774
+
775
+ case 'bottom_left':
776
+ $dest_x = 0;
777
+ $dest_y = $img_height - $h;
778
+ break;
779
+
780
+ case 'bottom_center':
781
+ $dest_x = ($img_width / 2) - ($w / 2);
782
+ $dest_y = $img_height - $h;
783
+ break;
784
+
785
+ case 'bottom_right':
786
+ $dest_x = $img_width - $w;
787
+ $dest_y = $img_height - $h;
788
+ break;
789
+
790
+ default:
791
+ $dest_x = ($img_width / 2) - ($w / 2);
792
+ $dest_y = ($img_height / 2) - ($h / 2);
793
+ }
794
+
795
+ $dest_x += $offset_w;
796
+ $dest_y += $offset_h;
797
+ $resized = $this->resize($watermark, $url, $w, $h);
798
+ $this->imagecopymerge_alpha($image, $resized, $dest_x, $dest_y, 0, 0, $w, $h, $opt['df_watermark_image']['transparent']);
799
+
800
+ return $image;
801
+ }
802
+
803
+
804
+ private function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct)
805
+ {
806
+ // creating a cut resource
807
+ $cut = imagecreateTRUEcolor($src_w, $src_h);
808
+ // copying relevant section from background to the cut resource
809
+ imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
810
+ // copying relevant section from watermark to the cut resource
811
+ imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
812
+ // insert cut resource to destination image
813
+ imagecopymerge($dst_im, $cut, $dst_x, $dst_y, 0, 0, $src_w, $src_h, $pct);
814
+ }
815
+
816
+
817
+ private function resize($im, $path, $nWidth, $nHeight)
818
+ {
819
+ $imgInfo = getimagesize($path);
820
+ $newImg = imagecreateTRUEcolor($nWidth, $nHeight);
821
+
822
+ // Check if this image is PNG or GIF, then set if Transparent
823
+ if($imgInfo[2] == 1 || $imgInfo[2] == 3)
824
+ {
825
+ imagealphablending($newImg, FALSE);
826
+ imagesavealpha($newImg, TRUE);
827
+ $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
828
+ imagefilledrectangle($newImg, 0, 0, $nWidth, $nHeight, $transparent);
829
+ }
830
+
831
+ imagecopyresampled($newImg, $im, 0, 0, 0, 0, $nWidth, $nHeight, $imgInfo[0], $imgInfo[1]);
832
+ return $newImg;
833
+ }
834
+
835
+
836
+ /**
837
+ * Get image resource accordingly to mimetype
838
+ *
839
+ * @param string $filepath
840
+ * @param string $mime_type
841
+ * @return resource
842
+ */
843
+ private function get_image_resource($filepath, $mime_type)
844
+ {
845
+ switch($mime_type)
846
+ {
847
+ case 'image/jpeg':
848
+ return imagecreatefromjpeg($filepath);
849
+
850
+ case 'image/png':
851
+ $res = imagecreatefrompng($filepath);
852
+ $transparent = imagecolorallocatealpha($res, 255, 255, 254, 127);
853
+ imagefilledrectangle($res, 0, 0, imagesx($res), imagesy($res), $transparent);
854
+ return $res;
855
+
856
+ case 'image/gif':
857
+ $res = imagecreatefromgif($filepath);
858
+ $transparent = imagecolorallocatealpha($res, 255, 255, 254, 127);
859
+ imagefilledrectangle($res, 0, 0, imagesx($res), imagesy($res), $transparent);
860
+ return $res;
861
+
862
+ default:
863
+ return FALSE;
864
+ }
865
+ }
866
+
867
+
868
+ /**
869
+ * Save image from image resource
870
+ *
871
+ * @param resource $image
872
+ * @param string $mime_type
873
+ * @param string $filepath
874
+ * @return boolean
875
+ */
876
+ private function save_image_file($image, $mime_type, $filepath)
877
+ {
878
+ switch($mime_type)
879
+ {
880
+ case 'image/jpeg':
881
+ return imagejpeg($image, $filepath, apply_filters('jpeg_quality', 90));
882
+
883
+ case 'image/png':
884
+ return imagepng($image, $filepath);
885
+
886
+ case 'image/gif':
887
+ return imagegif($image, $filepath);
888
+
889
+ default:
890
+ return FALSE;
891
+ }
892
+ }
893
+ }
894
+
895
+ $wpm_in = new ImageWatermark();
896
+ ?>
images/logo-dfactory.png ADDED
Binary file
index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ // Silence is golden.
js/admin.js ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function ($)
2
+ {
3
+ $(document).ready(function ()
4
+ {
5
+ //hover states on the static widgets
6
+ $('#dialog_link, ul#icons li').hover(
7
+ function() { $(this).addClass('ui-state-hover'); },
8
+ function() { $(this).removeClass('ui-state-hover'); }
9
+ );
10
+
11
+ // Button
12
+ $("#divButton, #linkButton, #submitButton, #inputButton").button();
13
+
14
+ // Button Set
15
+ $("#run-watermark, #thumbnail-select, #watermark-type, #cpt-select, #cpt-specific").buttonset();
16
+
17
+ $('#df_option_everywhere, #df_option_cpt').change(function()
18
+ {
19
+ if($('#cpt-specific input[name=df_watermark_cpt_on]:checked').val() == 'everywhere')
20
+ {
21
+ $('#cpt-select').fadeOut('slow');
22
+ }
23
+ else if($('#cpt-specific input[name=df_watermark_cpt_on]:checked').val() == 'specific')
24
+ {
25
+ $('#cpt-select').fadeIn('slow');
26
+ }
27
+ });
28
+ });
29
+ })(jQuery);
js/no-right-click.js ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**************************************************************************
2
+ This javascript is used by the no-right-click-images plugin for wordpress.
3
+ Version 2.2
4
+ Please give credit as no-right-click-images.js by Keith P. Graham
5
+ http://www.blogseye.com
6
+ **************************************************************************/
7
+ var df_nrc_targImg=null;
8
+ var df_nrc_targSrc=null;
9
+ var df_nrc_inContext=false;
10
+ var df_nrc_notimage=new Image();
11
+ var df_nrc_limit=0;
12
+ function df_nrc_dragdropAll(event) {
13
+ try {
14
+ var ev=event||window.event;
15
+ var targ=ev.srcElement||ev.target;
16
+ if (targ.tagName.toUpperCase()=="A") {
17
+ // is this IE and are we dragging a link to the image?
18
+ var hr=targ.href;
19
+ hr=hr.toUpperCase();
20
+ if (hr.indexOf('.JPG')||hr.indexOf('.PNG')||hr.indexOf('.GIF')) {
21
+ ev.returnValue=false;
22
+ if (ev.preventDefault) {
23
+ ev.preventDefault();
24
+ }
25
+ df_nrc_inContext=false;
26
+ return false;
27
+ }
28
+ }
29
+ if (targ.tagName.toUpperCase()!="IMG") return true;
30
+ ev.returnValue=false;
31
+ if (ev.preventDefault) {
32
+ ev.preventDefault();
33
+ }
34
+ df_nrc_inContext=false;
35
+ return false;
36
+ } catch (er) {
37
+ //alert(er);
38
+ }
39
+ return true;
40
+ }
41
+ function df_nrc_dragdrop(event) {
42
+ // I am beginning to doubt if this event ever fires
43
+ try {
44
+ var ev=event||window.event;
45
+ var targ=ev.srcElement||ev.target;
46
+ ev.returnValue=false;
47
+ if (ev.preventDefault) {
48
+ ev.preventDefault();
49
+ }
50
+ ev.returnValue=false;
51
+ df_nrc_inContext=false;
52
+ return false;
53
+ } catch (er) {
54
+ //alert(er);
55
+ }
56
+ return true;
57
+ }
58
+ function df_nrc_context(event) {
59
+ try {
60
+ df_nrc_inContext=true;
61
+ var ev=event||window.event;
62
+ var targ=ev.srcElement||ev.target;
63
+ df_nrc_replace(targ);
64
+ ev.returnValue=false;
65
+ if (ev.preventDefault) {
66
+ ev.preventDefault();
67
+ }
68
+ ev.returnValue=false;
69
+ df_nrc_targImg=targ;
70
+ } catch (er) {
71
+ //alert(er);
72
+ }
73
+ return false;
74
+ }
75
+ function df_nrc_contextAll(event) {
76
+ try {
77
+ if (df_nrc_targImg==null) {
78
+ return true;
79
+ }
80
+ df_nrc_inContext=true;
81
+ var ev=event||window.event;
82
+ var targ=ev.srcElement||ev.target;
83
+ if (targ.tagName.toUpperCase()=="IMG") {
84
+ ev.returnValue=false;
85
+ if (ev.preventDefault) {
86
+ ev.preventDefault();
87
+ }
88
+ ev.returnValue=false;
89
+ df_nrc_replace(targ);
90
+ return false;
91
+ }
92
+ return true;
93
+ } catch (er) {
94
+ //alert(er);
95
+ }
96
+ return false;
97
+ }
98
+ function kpg_nrc1_mousedown(event) {
99
+ try {
100
+ df_nrc_inContext=false;
101
+ var ev=event||window.event;
102
+ var targ=ev.srcElement||ev.target;
103
+ if (ev.button==2) {
104
+ df_nrc_replace(targ);
105
+ return false;
106
+ }
107
+ df_nrc_targImg=targ;
108
+ if (df_nrc_drag=='Y') {
109
+ if (ev.preventDefault) {
110
+ ev.preventDefault();
111
+ }
112
+ }
113
+ return true;
114
+ } catch (er) {
115
+ //alert(er);
116
+ }
117
+ return true;
118
+ }
119
+ function kpg_nrc1_mousedownAll(event) {
120
+ try {
121
+ df_nrc_inContext=false;
122
+ var ev=event||window.event;
123
+ var targ=ev.srcElement||ev.target;
124
+ if (targ.style.backgroundImage!=''&&ev.button==2) {
125
+ targ.oncontextmenu=function(event) { return false;} //iffy - might not work
126
+ }
127
+ if (targ.tagName.toUpperCase()=="IMG") {
128
+ if (ev.button==2) {
129
+ df_nrc_replace(targ);
130
+ return false;
131
+ }
132
+ if (df_nrc_drag=='Y') {
133
+ if (ev.preventDefault) {
134
+ ev.preventDefault();
135
+ }
136
+ }
137
+ df_nrc_targImg=targ;
138
+ }
139
+ return true;
140
+ } catch (er) {
141
+ //alert(er);
142
+ }
143
+ return true;
144
+ }
145
+ function df_nrc_replace(targ) {
146
+ return false;
147
+ if (df_nrc_targImg!=null && df_nrc_targImg.src==df_nrc_notimage.src) {
148
+ // restore the old image before hiding this one
149
+ df_nrc_targImg.src=df_nrc_targSrc;
150
+ df_nrc_targImg=null;
151
+ df_nrc_targSrc=null;
152
+ }
153
+ df_nrc_targImg=targ;
154
+ if (df_nrc_extra!='Y') return;
155
+ var w=targ.width+'';
156
+ var h=targ.height+'';
157
+ if (w.indexOf('px')<=0) w=w+'px';
158
+ if (h.indexOf('px')<=0) h=h+'px';
159
+ df_nrc_targSrc=targ.src;
160
+ targ.src=df_nrc_notimage.src;
161
+ targ.style.width=w;
162
+ targ.style.height=h;
163
+ df_nrc_limit=0;
164
+ var t=setTimeout("df_nrc_restore()",500);
165
+ return false;
166
+ }
167
+ function df_nrc_restore() {
168
+ if (df_nrc_inContext) {
169
+ if (df_nrc_limit<=20) {
170
+ df_nrc_limit++;
171
+ var t=setTimeout("df_nrc_restore()",500);
172
+ return;
173
+ }
174
+ }
175
+ df_nrc_limit=0;
176
+ if (df_nrc_targImg==null) return;
177
+ if (df_nrc_targSrc==null) return;
178
+ df_nrc_targImg.src=df_nrc_targSrc;
179
+ df_nrc_targImg=null;
180
+ df_nrc_targSrc=null;
181
+ return;
182
+ }
183
+ // sets the image onclick event
184
+ // need to check for dblclick to see if there is a right double click in IE
185
+ function df_nrc_action(event) {
186
+ try {
187
+ document.onmousedown=function(event) { return kpg_nrc1_mousedownAll(event);}
188
+ document.oncontextmenu=function(event) { return df_nrc_contextAll(event);}
189
+ document.oncopy=function(event) { return df_nrc_contextAll(event);}
190
+ if (df_nrc_drag=='Y') document.ondragstart=function(event) { return df_nrc_dragdropAll(event);}
191
+ var b=document.getElementsByTagName("IMG");
192
+ for (var i = 0; i < b.length; i++) {
193
+ b[i].oncontextmenu=function(event) { return df_nrc_context(event);}
194
+ b[i].oncopy=function(event) { return df_nrc_context(event);}
195
+ b[i].onmousedown=function(event) { return kpg_nrc1_mousedown(event);}
196
+ if (df_nrc_drag=='Y') b[i].ondragstart=function(event) { return df_nrc_dragdrop(event);}
197
+ }
198
+ } catch (er) {
199
+ return false;
200
+ }
201
+ }
202
+ if (document.addEventListener) {
203
+ document.addEventListener("DOMContentLoaded", function(event) { df_nrc_action(event); }, false);
204
+ } else if (window.attachEvent) {
205
+ window.attachEvent("onload", function(event) { df_nrc_action(event); });
206
+ } else {
207
+ var oldFunc = window.onload;
208
+ window.onload = function() {
209
+ if (oldFunc) {
210
+ oldFunc();
211
+ }
212
+ df_nrc_action('load');
213
+ };
214
+ }
js/upload-manager.js ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function($) {
2
+ watermarkFileUpload = {
3
+ frame: function() {
4
+ if ( this._frameWatermark )
5
+ return this._frameWatermark;
6
+
7
+ this._frameWatermark = wp.media({
8
+ title: upload_manager_args.title,
9
+ frame: upload_manager_args.frame,
10
+ button: upload_manager_args.button,
11
+ multiple: upload_manager_args.multiple,
12
+ library: {
13
+ type: 'image'
14
+ }
15
+ });
16
+
17
+ this._frameWatermark.on( 'open', this.updateFrame ).state('library').on( 'select', this.select );
18
+ return this._frameWatermark;
19
+ },
20
+ select: function() {
21
+ var attachment = this.frame.state().get('selection').first();
22
+ $('#upload_image').val(attachment.attributes.id);
23
+
24
+ if($('span#previewImg_image').length > 0)
25
+ {
26
+ $('span#previewImg_image').replaceWith('<img id="previewImg_image" src="'+attachment.attributes.url+'" alt="" width="300" />');
27
+ }
28
+ else
29
+ {
30
+ $('img#previewImg_image').attr('src', attachment.attributes.url);
31
+ }
32
+
33
+ var img = new Image();
34
+ img.src = attachment.attributes.url;
35
+
36
+ $('div#previewImg_imageDiv img#previewImg_image').show();
37
+ $('div#previewImg_imageDiv span#previewImg_image_hidden').hide();
38
+ $('p#previewImg_imageDivSize').show();
39
+
40
+ img.onload = function()
41
+ {
42
+ $('#previewImg_imageDivSize').html(upload_manager_args.originalSize+': <strong>'+this.width+'</strong>px / <strong>'+this.height+'</strong>px');
43
+ }
44
+ },
45
+ init: function() {
46
+ $('#wpbody').on('click', 'input#upload_image_button', function(e) {
47
+ e.preventDefault();
48
+ watermarkFileUpload.frame().open();
49
+ });
50
+ }
51
+ };
52
+
53
+ watermarkFileUpload.init();
54
+
55
+ $(document).on('click', '#turn_off_image_button', function(event) {
56
+ $('#upload_image').val(0);
57
+ $('div#previewImg_imageDiv img#previewImg_image').hide();
58
+ $('div#previewImg_imageDiv span#previewImg_image_hidden').show();
59
+ $('p#previewImg_imageDivSize').hide();
60
+ });
61
+ });
js/wp-like.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ (function ($) {
2
+ $(document).ready(function ()
3
+ {
4
+ // Button
5
+ $("#divButton, #linkButton, #submitButton, #inputButton").button();
6
+ });
7
+ })(jQuery);
languages/image-watermark-pl_PL.mo ADDED
Binary file
languages/image-watermark-pl_PL.po ADDED
@@ -0,0 +1,311 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: WordPress Watermark\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2013-03-19 22:56+0100\n"
6
+ "PO-Revision-Date: 2013-03-19 23:00+0100\n"
7
+ "Last-Translator: Bartosz Arendt <info@digitalfactory.pl>\n"
8
+ "Language-Team: Digital Factory <info@digitalfactory.pl>\n"
9
+ "Language: pl_PL\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
14
+ "X-Poedit-Basepath: .\n"
15
+ "X-Poedit-SourceCharset: utf-8\n"
16
+ "X-Generator: Poedit 1.5.5\n"
17
+ "X-Poedit-SearchPath-0: ..\n"
18
+
19
+ #: ../wordpress-watermark.php:26
20
+ msgid ""
21
+ "Sorry, WordPress Watermark plugin requires at least PHP 5.0 and WP 3.5 or "
22
+ "higher."
23
+ msgstr ""
24
+ "Przykro nam, ale ta wtyczka wymaga PHP w wersji co najmniej 5.0 WordPressa w "
25
+ "wersji 3.5 lub wyższej.."
26
+
27
+ #: ../wordpress-watermark.php:131
28
+ msgid "Select watermark"
29
+ msgstr "Wybierz znak wodny"
30
+
31
+ #: ../wordpress-watermark.php:132
32
+ msgid "Original size"
33
+ msgstr "Rozmiar oryginalny"
34
+
35
+ #: ../wordpress-watermark.php:134
36
+ msgid "Add watermark"
37
+ msgstr "Dodaj znak wodny"
38
+
39
+ #: ../wordpress-watermark.php:149
40
+ msgid "WordPress Watermark Options"
41
+ msgstr "Ustawienia znaku wodnego"
42
+
43
+ #: ../wordpress-watermark.php:150
44
+ msgid "Watermark"
45
+ msgstr "Znak wodny"
46
+
47
+ #: ../wordpress-watermark.php:312
48
+ msgid "WordPress Watermark will not work properly without GD PHP extension."
49
+ msgstr ""
50
+ "Znak wodny nie może funkcjonować bez zainstalowanego rozszerzenia GD PHP."
51
+
52
+ #: ../wordpress-watermark.php:333
53
+ msgid "WordPress Watermark Settings"
54
+ msgstr "Ustawienia znaku wodnego"
55
+
56
+ #: ../wordpress-watermark.php:337
57
+ msgid "General settings"
58
+ msgstr "Ustawienia ogólne"
59
+
60
+ #: ../wordpress-watermark.php:340
61
+ msgid "Enable watermark"
62
+ msgstr "Włącz znak wodny"
63
+
64
+ #: ../wordpress-watermark.php:343 ../wordpress-watermark.php:465
65
+ #: ../wordpress-watermark.php:482 ../wordpress-watermark.php:494
66
+ msgid "Width"
67
+ msgstr "Szerokość"
68
+
69
+ #: ../wordpress-watermark.php:345
70
+ msgid "on"
71
+ msgstr "włączony"
72
+
73
+ #: ../wordpress-watermark.php:347
74
+ msgid "off"
75
+ msgstr "wyłączony"
76
+
77
+ #: ../wordpress-watermark.php:350
78
+ msgid "Enable or disable watermark for uploaded images."
79
+ msgstr "Włącz lub wyłącz dodawanie znaku wodnego do wgrywanych obrazków."
80
+
81
+ #: ../wordpress-watermark.php:357 ../wordpress-watermark.php:360
82
+ #: ../wordpress-watermark.php:369
83
+ msgid "Enable watermark for"
84
+ msgstr "Dodawaj znak wodny do"
85
+
86
+ #: ../wordpress-watermark.php:368
87
+ msgid "Check image sizes on which watermark should appear."
88
+ msgstr "Zaznacz wielkości obrazków dla których ma być dodawany znak wodny."
89
+
90
+ #: ../wordpress-watermark.php:375
91
+ msgid "everywhere"
92
+ msgstr "wszędzie"
93
+
94
+ #: ../wordpress-watermark.php:376
95
+ msgid "on selected post types only"
96
+ msgstr "na wybranych typach wpisów"
97
+
98
+ #: ../wordpress-watermark.php:384
99
+ msgid ""
100
+ "Check custom post types on which watermark should be applied to uploaded "
101
+ "images."
102
+ msgstr ""
103
+ "Zaznacz własne typy wpisów w których znak wodny będzie dodawany do "
104
+ "wgrywanych obrazków."
105
+
106
+ #: ../wordpress-watermark.php:390
107
+ msgid "Watermark position"
108
+ msgstr "Pozycja znaku wodnego"
109
+
110
+ #: ../wordpress-watermark.php:393 ../wordpress-watermark.php:396
111
+ msgid "Watermark alignment"
112
+ msgstr "Wyrównanie znaku wodnego"
113
+
114
+ #: ../wordpress-watermark.php:409
115
+ msgid "Choose the position of watermark image."
116
+ msgstr "Wybierz pozycję znaku wodnego na obrazkach"
117
+
118
+ #: ../wordpress-watermark.php:414 ../wordpress-watermark.php:417
119
+ msgid "Watermark offset"
120
+ msgstr "Korekcja pozycji"
121
+
122
+ #: ../wordpress-watermark.php:418 ../wordpress-watermark.php:483
123
+ msgid "x:"
124
+ msgstr "x:"
125
+
126
+ #: ../wordpress-watermark.php:418 ../wordpress-watermark.php:420
127
+ #: ../wordpress-watermark.php:483 ../wordpress-watermark.php:485
128
+ msgid "px"
129
+ msgstr "pikseli"
130
+
131
+ #: ../wordpress-watermark.php:420 ../wordpress-watermark.php:485
132
+ msgid "y:"
133
+ msgstr "y:"
134
+
135
+ #: ../wordpress-watermark.php:426 ../wordpress-watermark.php:430
136
+ msgid "Watermark image"
137
+ msgstr "Obrazek znaku wodnego"
138
+
139
+ #: ../wordpress-watermark.php:427
140
+ msgid ""
141
+ "Configure your watermark image. Allowed file formats are: jpg, png, gif."
142
+ msgstr ""
143
+ "Skonfiguruj obrazek znaku wodnego. Dozwolone formaty plików to: jpg, png i "
144
+ "gif."
145
+
146
+ #: ../wordpress-watermark.php:433
147
+ msgid "Select image"
148
+ msgstr "Wybierz obrazek"
149
+
150
+ #: ../wordpress-watermark.php:434
151
+ msgid "Turn off image"
152
+ msgstr "Wyłącz obrazek"
153
+
154
+ #: ../wordpress-watermark.php:435
155
+ msgid "You have to save changes after the selection or removal of the image."
156
+ msgstr "Po zapisaniu zmian lub wybraniu obrazka powienieneś zapisać zmiany."
157
+
158
+ #: ../wordpress-watermark.php:439
159
+ msgid "Watermark preview"
160
+ msgstr "Podgląd obrazka"
161
+
162
+ #: ../wordpress-watermark.php:442
163
+ msgid "Watermark Preview"
164
+ msgstr "Podgląd obrazka"
165
+
166
+ #: ../wordpress-watermark.php:450 ../wordpress-watermark.php:454
167
+ msgid "Watermak has not been selected yet."
168
+ msgstr "Znak wodny nie został jeszcze wybrany."
169
+
170
+ #: ../wordpress-watermark.php:462
171
+ msgid "Watermark size"
172
+ msgstr "Wielkość znaku wodnego"
173
+
174
+ #: ../wordpress-watermark.php:467
175
+ msgid "original"
176
+ msgstr "oryginalna"
177
+
178
+ #: ../wordpress-watermark.php:469
179
+ msgid "custom"
180
+ msgstr "własna"
181
+
182
+ #: ../wordpress-watermark.php:471
183
+ msgid "scaled"
184
+ msgstr "skalowana"
185
+
186
+ #: ../wordpress-watermark.php:474
187
+ msgid "Select method of aplying watermark size."
188
+ msgstr "Wybierz sposób określania wielkości znaku wodnego."
189
+
190
+ #: ../wordpress-watermark.php:479
191
+ msgid "Watermark custom size"
192
+ msgstr "Własna wielkość"
193
+
194
+ #: ../wordpress-watermark.php:487
195
+ msgid "Those dimensions will be used if \"custom\" method is selected above."
196
+ msgstr ""
197
+ "Te wymiary zostaną zastosowane, jeśli wybrałeś \"własną\" wielkość znaku "
198
+ "wodnego. "
199
+
200
+ #: ../wordpress-watermark.php:491
201
+ msgid "Scale of watermark in relation to image width"
202
+ msgstr "Wielkość znaku wodnego w stosunku do szerokości obrazków"
203
+
204
+ #: ../wordpress-watermark.php:497
205
+ msgid ""
206
+ "This value will be used if \"scaled\" method if selected above. <br />Enter "
207
+ "a number ranging from 0 to 100. 100 makes width of watermark image equal to "
208
+ "width of the image it is applied to."
209
+ msgstr ""
210
+ "Te wartości zostaną zastosowane, jeśli wybrałeś \"skalowaną\" wielkość znaku "
211
+ "wodnego. <br />Wpisz liczbę z zakresu od 0 do 100. Wpisanie 100 spowoduje, "
212
+ "że wielkość znaku wodnego będzie równa wielkości obrazka, do którego jest "
213
+ "dodawany."
214
+
215
+ #: ../wordpress-watermark.php:501
216
+ msgid "Watermark transparency / opacity"
217
+ msgstr "Przezroczystość znaku wodnego"
218
+
219
+ #: ../wordpress-watermark.php:506
220
+ msgid ""
221
+ "Enter a number ranging from 0 to 100. 0 makes watermark image completely "
222
+ "transparent, 100 shows it as is."
223
+ msgstr ""
224
+ "Wpisz liczbę z zakresu od 0 do 100. Wpisanie 0 spowoduje, że znak wodny "
225
+ "będzie całkowicie przezroczysty, 100 że widoczny taki jak jest."
226
+
227
+ #: ../wordpress-watermark.php:512
228
+ msgid "Image protection"
229
+ msgstr "Ochrona obrazków"
230
+
231
+ #: ../wordpress-watermark.php:515
232
+ msgid "Disable right mouse click on images"
233
+ msgstr "Wyłącz możliwość kliknięcia prawym przyciskiem myszy na obrazku"
234
+
235
+ #: ../wordpress-watermark.php:519
236
+ msgid "Prevent drag and drop"
237
+ msgstr "Wyłącz możliwość przeciągania i upuszczania obrazków"
238
+
239
+ #: ../wordpress-watermark.php:523
240
+ msgid "Disable image protection for logged-in users"
241
+ msgstr "Wyłącz ochronę zdjęć dla zalogowanych użytkowników"
242
+
243
+ #: ../wordpress-watermark.php:528
244
+ msgid "Save Changes"
245
+ msgstr "Zapisz zmiany"
246
+
247
+ #: ../wordpress-watermark.php:534
248
+ msgid "WordPress Watermark"
249
+ msgstr "Znak wodny"
250
+
251
+ #: ../wordpress-watermark.php:536
252
+ msgid "Need support?"
253
+ msgstr "Potrzebujesz pomocy?"
254
+
255
+ #: ../wordpress-watermark.php:537
256
+ msgid ""
257
+ "If you are having problems with this plugin, please talk about them in the"
258
+ msgstr "Jeśli masz jakiekolwiek problemy z tą wtyczką, powiedz o tym na"
259
+
260
+ #: ../wordpress-watermark.php:537
261
+ msgid "Support forum"
262
+ msgstr "Forum pomocy"
263
+
264
+ #: ../wordpress-watermark.php:539
265
+ msgid "Do you like this plugin?"
266
+ msgstr "Lubisz tę wtyczkę?"
267
+
268
+ #: ../wordpress-watermark.php:540
269
+ msgid "Rate it 5 on WordPress.org"
270
+ msgstr "Oceń ją na 5 na WordPress.org"
271
+
272
+ #: ../wordpress-watermark.php:541
273
+ msgid "Blog about it & link to the"
274
+ msgstr "Napisz o niej i dodaj link do"
275
+
276
+ #: ../wordpress-watermark.php:541
277
+ msgid "plugin page"
278
+ msgstr "strony wtyczki"
279
+
280
+ #: ../wordpress-watermark.php:542
281
+ msgid "Check out our other"
282
+ msgstr "Sprawdź inne"
283
+
284
+ #: ../wordpress-watermark.php:542
285
+ msgid "WordPress plugins"
286
+ msgstr "wtyczki do WordPressa"
287
+
288
+ #: ../wordpress-watermark.php:546
289
+ msgid "Created by"
290
+ msgstr "Stworzone przez"
291
+
292
+ #~ msgid "Options updated."
293
+ #~ msgstr "Ustawienia zostały zaktualizowane"
294
+
295
+ #~ msgid "Watermark image URL"
296
+ #~ msgstr "Ścieżka do obrazka"
297
+
298
+ #~ msgid "Upload Image"
299
+ #~ msgstr "Wgraj obrazek"
300
+
301
+ #~ msgid ""
302
+ #~ "Enter an URL, upload an image or select image from media library.<br /"
303
+ #~ "><b>Important:</b> You must select a <b>file URL</b> while inserting "
304
+ #~ "image."
305
+ #~ msgstr ""
306
+ #~ "Podaj adres URL, wgraj obrazek lub wybierz obrazek z biblioteki mediów."
307
+ #~ "<br /><b>Ważne:</b> Dodając obrazek musisz zaznaczyć <b>Adres URL pliku</"
308
+ #~ "b>."
309
+
310
+ #~ msgid "Settings"
311
+ #~ msgstr "Ustawienia"
languages/image-watermark.pot ADDED
@@ -0,0 +1,274 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: WordPress Watermark\n"
4
+ "POT-Creation-Date: 2013-03-19 22:56+0100\n"
5
+ "PO-Revision-Date: 2013-03-21 10:12+0100\n"
6
+ "Last-Translator: Bartosz Arendt <info@digitalfactory.pl>\n"
7
+ "Language-Team: dFactory <info@dfactory.pl>\n"
8
+ "Language: English\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.5.5\n"
13
+ "X-Poedit-KeywordsList: gettext;gettext_noop;__;_e;esc_attr__;esc_attr_e\n"
14
+ "X-Poedit-Basepath: .\n"
15
+ "X-Poedit-SourceCharset: UTF-8\n"
16
+ "X-Poedit-SearchPath-0: ..\n"
17
+
18
+ #: ../wordpress-watermark.php:26
19
+ msgid ""
20
+ "Sorry, WordPress Watermark plugin requires at least PHP 5.0 and WP 3.5 or "
21
+ "higher."
22
+ msgstr ""
23
+
24
+ #: ../wordpress-watermark.php:131
25
+ msgid "Select watermark"
26
+ msgstr ""
27
+
28
+ #: ../wordpress-watermark.php:132
29
+ msgid "Original size"
30
+ msgstr ""
31
+
32
+ #: ../wordpress-watermark.php:134
33
+ msgid "Add watermark"
34
+ msgstr ""
35
+
36
+ #: ../wordpress-watermark.php:149
37
+ msgid "WordPress Watermark Options"
38
+ msgstr ""
39
+
40
+ #: ../wordpress-watermark.php:150
41
+ msgid "Watermark"
42
+ msgstr ""
43
+
44
+ #: ../wordpress-watermark.php:312
45
+ msgid "WordPress Watermark will not work properly without GD PHP extension."
46
+ msgstr ""
47
+
48
+ #: ../wordpress-watermark.php:333
49
+ msgid "WordPress Watermark Settings"
50
+ msgstr ""
51
+
52
+ #: ../wordpress-watermark.php:337
53
+ msgid "General settings"
54
+ msgstr ""
55
+
56
+ #: ../wordpress-watermark.php:340
57
+ msgid "Enable watermark"
58
+ msgstr ""
59
+
60
+ #: ../wordpress-watermark.php:343 ../wordpress-watermark.php:465
61
+ #: ../wordpress-watermark.php:482 ../wordpress-watermark.php:494
62
+ msgid "Width"
63
+ msgstr ""
64
+
65
+ #: ../wordpress-watermark.php:345
66
+ msgid "on"
67
+ msgstr ""
68
+
69
+ #: ../wordpress-watermark.php:347
70
+ msgid "off"
71
+ msgstr ""
72
+
73
+ #: ../wordpress-watermark.php:350
74
+ msgid "Enable or disable watermark for uploaded images."
75
+ msgstr ""
76
+
77
+ #: ../wordpress-watermark.php:357 ../wordpress-watermark.php:360
78
+ #: ../wordpress-watermark.php:369
79
+ msgid "Enable watermark for"
80
+ msgstr ""
81
+
82
+ #: ../wordpress-watermark.php:368
83
+ msgid "Check image sizes on which watermark should appear."
84
+ msgstr ""
85
+
86
+ #: ../wordpress-watermark.php:375
87
+ msgid "everywhere"
88
+ msgstr ""
89
+
90
+ #: ../wordpress-watermark.php:376
91
+ msgid "on selected post types only"
92
+ msgstr ""
93
+
94
+ #: ../wordpress-watermark.php:384
95
+ msgid ""
96
+ "Check custom post types on which watermark should be applied to uploaded "
97
+ "images."
98
+ msgstr ""
99
+
100
+ #: ../wordpress-watermark.php:390
101
+ msgid "Watermark position"
102
+ msgstr ""
103
+
104
+ #: ../wordpress-watermark.php:393 ../wordpress-watermark.php:396
105
+ msgid "Watermark alignment"
106
+ msgstr ""
107
+
108
+ #: ../wordpress-watermark.php:409
109
+ msgid "Choose the position of watermark image."
110
+ msgstr ""
111
+
112
+ #: ../wordpress-watermark.php:414 ../wordpress-watermark.php:417
113
+ msgid "Watermark offset"
114
+ msgstr ""
115
+
116
+ #: ../wordpress-watermark.php:418 ../wordpress-watermark.php:483
117
+ msgid "x:"
118
+ msgstr ""
119
+
120
+ #: ../wordpress-watermark.php:418 ../wordpress-watermark.php:420
121
+ #: ../wordpress-watermark.php:483 ../wordpress-watermark.php:485
122
+ msgid "px"
123
+ msgstr ""
124
+
125
+ #: ../wordpress-watermark.php:420 ../wordpress-watermark.php:485
126
+ msgid "y:"
127
+ msgstr ""
128
+
129
+ #: ../wordpress-watermark.php:426 ../wordpress-watermark.php:430
130
+ msgid "Watermark image"
131
+ msgstr ""
132
+
133
+ #: ../wordpress-watermark.php:427
134
+ msgid ""
135
+ "Configure your watermark image. Allowed file formats are: jpg, png, gif."
136
+ msgstr ""
137
+
138
+ #: ../wordpress-watermark.php:433
139
+ msgid "Select image"
140
+ msgstr ""
141
+
142
+ #: ../wordpress-watermark.php:434
143
+ msgid "Turn off image"
144
+ msgstr ""
145
+
146
+ #: ../wordpress-watermark.php:435
147
+ msgid "You have to save changes after the selection or removal of the image."
148
+ msgstr ""
149
+
150
+ #: ../wordpress-watermark.php:439
151
+ msgid "Watermark preview"
152
+ msgstr ""
153
+
154
+ #: ../wordpress-watermark.php:442
155
+ msgid "Watermark Preview"
156
+ msgstr ""
157
+
158
+ #: ../wordpress-watermark.php:450 ../wordpress-watermark.php:454
159
+ msgid "Watermak has not been selected yet."
160
+ msgstr ""
161
+
162
+ #: ../wordpress-watermark.php:462
163
+ msgid "Watermark size"
164
+ msgstr ""
165
+
166
+ #: ../wordpress-watermark.php:467
167
+ msgid "original"
168
+ msgstr ""
169
+
170
+ #: ../wordpress-watermark.php:469
171
+ msgid "custom"
172
+ msgstr ""
173
+
174
+ #: ../wordpress-watermark.php:471
175
+ msgid "scaled"
176
+ msgstr ""
177
+
178
+ #: ../wordpress-watermark.php:474
179
+ msgid "Select method of aplying watermark size."
180
+ msgstr ""
181
+
182
+ #: ../wordpress-watermark.php:479
183
+ msgid "Watermark custom size"
184
+ msgstr ""
185
+
186
+ #: ../wordpress-watermark.php:487
187
+ msgid "Those dimensions will be used if \"custom\" method is selected above."
188
+ msgstr ""
189
+
190
+ #: ../wordpress-watermark.php:491
191
+ msgid "Scale of watermark in relation to image width"
192
+ msgstr ""
193
+
194
+ #: ../wordpress-watermark.php:497
195
+ msgid ""
196
+ "This value will be used if \"scaled\" method if selected above. <br />Enter "
197
+ "a number ranging from 0 to 100. 100 makes width of watermark image equal to "
198
+ "width of the image it is applied to."
199
+ msgstr ""
200
+
201
+ #: ../wordpress-watermark.php:501
202
+ msgid "Watermark transparency / opacity"
203
+ msgstr ""
204
+
205
+ #: ../wordpress-watermark.php:506
206
+ msgid ""
207
+ "Enter a number ranging from 0 to 100. 0 makes watermark image completely "
208
+ "transparent, 100 shows it as is."
209
+ msgstr ""
210
+
211
+ #: ../wordpress-watermark.php:512
212
+ msgid "Image protection"
213
+ msgstr ""
214
+
215
+ #: ../wordpress-watermark.php:515
216
+ msgid "Disable right mouse click on images"
217
+ msgstr ""
218
+
219
+ #: ../wordpress-watermark.php:519
220
+ msgid "Prevent drag and drop"
221
+ msgstr ""
222
+
223
+ #: ../wordpress-watermark.php:523
224
+ msgid "Disable image protection for logged-in users"
225
+ msgstr ""
226
+
227
+ #: ../wordpress-watermark.php:528
228
+ msgid "Save Changes"
229
+ msgstr ""
230
+
231
+ #: ../wordpress-watermark.php:534
232
+ msgid "WordPress Watermark"
233
+ msgstr ""
234
+
235
+ #: ../wordpress-watermark.php:536
236
+ msgid "Need support?"
237
+ msgstr ""
238
+
239
+ #: ../wordpress-watermark.php:537
240
+ msgid ""
241
+ "If you are having problems with this plugin, please talk about them in the"
242
+ msgstr ""
243
+
244
+ #: ../wordpress-watermark.php:537
245
+ msgid "Support forum"
246
+ msgstr ""
247
+
248
+ #: ../wordpress-watermark.php:539
249
+ msgid "Do you like this plugin?"
250
+ msgstr ""
251
+
252
+ #: ../wordpress-watermark.php:540
253
+ msgid "Rate it 5 on WordPress.org"
254
+ msgstr ""
255
+
256
+ #: ../wordpress-watermark.php:541
257
+ msgid "Blog about it & link to the"
258
+ msgstr ""
259
+
260
+ #: ../wordpress-watermark.php:541
261
+ msgid "plugin page"
262
+ msgstr ""
263
+
264
+ #: ../wordpress-watermark.php:542
265
+ msgid "Check out our other"
266
+ msgstr ""
267
+
268
+ #: ../wordpress-watermark.php:542
269
+ msgid "WordPress plugins"
270
+ msgstr ""
271
+
272
+ #: ../wordpress-watermark.php:546
273
+ msgid "Created by"
274
+ msgstr ""
readme.txt ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Image Watermark ===
2
+ Contributors: dfactory
3
+ Tags: image, images, picture, watermark, watermarking, protection, image protection, image security
4
+ Requires at least: 3.5
5
+ Tested up to: 3.5.1
6
+ Stable tag: 1.0
7
+ License: MIT License
8
+ License URI: http://opensource.org/licenses/MIT
9
+
10
+ Image Watermark allows you to automatically watermark images uploaded to the WordPress Media Library.
11
+
12
+ == Description ==
13
+
14
+ [Image Watermark](http://www.dfactory.eu/plugins/image-watermark/) allows you to automatically watermark images uploaded to the WordPress Media Library.
15
+
16
+ For more information, check out plugin page at [dFactory](http://www.dfactory.eu/) or plugin [support forum](http://www.dfactory.eu/support/forum/image-watermark/).
17
+
18
+ = Features include: =
19
+
20
+ * Choose the position of watermark image
21
+ * Upload custom watermark image
22
+ * Watermark image preview
23
+ * Set watermark offset
24
+ * Select post types where watermark will be aplied to images or select adding watermark during any image upload
25
+ * Select from 3 methods of aplying watermark size � original, custom or scaled
26
+ * Set watermark transparency / opacity
27
+ * Protect your images from copying via drag&drop
28
+ * Disable right mouse click on images
29
+ * Disable image protection for logged-in users
30
+ * .pot file for translations included
31
+
32
+
33
+ == Installation ==
34
+
35
+ 1. Install Image Watermark either via the WordPress.org plugin directory, or by uploading the files to your server</li>
36
+ 1. Activate the plugin through the 'Plugins' menu in WordPress</li>
37
+ 1. Go to the Watermark menu in Settings and set your watermarking options.</li>
38
+
39
+ == Frequently Asked Questions ==
40
+
41
+ No questions yet.
42
+
43
+ == Screenshots ==
44
+
45
+ 1. screenshot-1.png
46
+ 1. screenshot-2.png
47
+
48
+ == Changelog ==
49
+
50
+ = 1.0 =
51
+ Initial release
52
+
53
+ == Upgrade Notice ==
54
+
55
+ The current version of Image Watermark requires WordPress 3.5 or higher. If you use older version of WordPress, you need to upgrade WordPress first.
screenshot-1.png ADDED
Binary file
screenshot-2.png ADDED
Binary file