Count per Day - Version 3.2.5

Version Description

  • Bugfix: compatibility fix for WordPress 3.5
Download this release

Release Info

Developer Tom Braider
Plugin Icon 128x128 Count per Day
Version 3.2.5
Comparing to
See all releases

Code changes from version 3.2.4 to 3.2.5

ajax.php CHANGED
@@ -1,39 +1,39 @@
1
- <?php
2
- if ( $_GET['f'] == 'count' )
3
- {
4
- // answer only for 20 seconds after calling
5
- if ( empty($_GET['time']) || time() - $_GET['time'] > 20 )
6
{
7
- header("HTTP/1.0 403 Forbidden");
8
- die();
9
}
10
-
11
- if (!session_id()) session_start();
12
- $cpd_wp = (!empty($_SESSION['cpd_wp'])) ? $_SESSION['cpd_wp'] : '../../../';
13
- require_once($cpd_wp.'wp-load.php');
14
-
15
- $cpd_funcs = array ( 'show',
16
- 'getReadsAll', 'getReadsToday', 'getReadsYesterday', 'getReadsLastWeek', 'getReadsThisMonth',
17
- 'getUserAll', 'getUserToday', 'getUserYesterday', 'getUserLastWeek', 'getUserThisMonth',
18
- 'getUserPerDay', 'getUserOnline', 'getFirstCount' );
19
-
20
- $page = (int) $_GET['page'];
21
- if ( is_numeric($page) )
22
- {
23
- $count_per_day->count( '', $page );
24
- foreach ( $cpd_funcs as $f )
25
- {
26
- if ( ($f == 'show' && $page) || $f != 'show' )
27
- {
28
- echo $f.'===';
29
- if ( $f == 'getUserPerDay' )
30
- eval('echo $count_per_day->getUserPerDay('.$count_per_day->options['dashboard_last_days'].');');
31
- else if ( $f == 'show' )
32
- eval('echo $count_per_day->show("", "", false, false, '.$page.');');
33
- else
34
- eval('echo $count_per_day->'.$f.'();');
35
- echo '|';
36
- }
37
- }
38
- }
39
- }
1
+ <?php
2
+ if ( $_GET['f'] == 'count' )
3
+ {
4
+ // answer only for 20 seconds after calling
5
+ if ( empty($_GET['time']) || time() - $_GET['time'] > 20 )
6
{
7
+ header("HTTP/1.0 403 Forbidden");
8
+ die();
9
}
10
+
11
+ if (!session_id()) session_start();
12
+ $cpd_wp = (!empty($_SESSION['cpd_wp'])) ? $_SESSION['cpd_wp'] : '../../../';
13
+ require_once($cpd_wp.'wp-load.php');
14
+
15
+ $cpd_funcs = array ( 'show',
16
+ 'getReadsAll', 'getReadsToday', 'getReadsYesterday', 'getReadsLastWeek', 'getReadsThisMonth',
17
+ 'getUserAll', 'getUserToday', 'getUserYesterday', 'getUserLastWeek', 'getUserThisMonth',
18
+ 'getUserPerDay', 'getUserOnline', 'getFirstCount' );
19
+
20
+ $page = (int) $_GET['page'];
21
+ if ( is_numeric($page) )
22
+ {
23
+ $count_per_day->count( '', $page );
24
+ foreach ( $cpd_funcs as $f )
25
+ {
26
+ if ( ($f == 'show' && $page) || $f != 'show' )
27
+ {
28
+ echo $f.'===';
29
+ if ( $f == 'getUserPerDay' )
30
+ eval('echo $count_per_day->getUserPerDay('.$count_per_day->options['dashboard_last_days'].');');
31
+ else if ( $f == 'show' )
32
+ eval('echo $count_per_day->show("", "", false, false, '.$page.');');
33
+ else
34
+ eval('echo $count_per_day->'.$f.'();');
35
+ echo '|';
36
+ }
37
+ }
38
+ }
39
+ }
counter-core.php CHANGED
@@ -214,14 +214,14 @@ function mysqlQuery( $kind = '', $sql, $func = '' )
214
return;
215
$t = microtime(true);
216
$con = $wpdb->dbh;
217
- $preparedSql = $wpdb->prepare($sql);
218
$r = false;
219
if ($kind == 'var')
220
$r = $wpdb->get_var( $preparedSql );
221
else if ($kind == 'count')
222
{
223
$sql = 'SELECT COUNT(*) FROM ('.trim($sql,';').') t';
224
- $r = $wpdb->get_var( $wpdb->prepare($sql) );
225
}
226
else if ($kind == 'rows')
227
{
@@ -360,7 +360,7 @@ function checkVersion()
360
if (!empty($_GET['networkwide']))
361
{
362
$old_blog = $wpdb->blogid;
363
- $blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs"));
364
foreach ($blogids as $blog_id)
365
{
366
// create tables in all sub blogs
214
return;
215
$t = microtime(true);
216
$con = $wpdb->dbh;
217
+ $preparedSql = $wpdb->prepare($sql, null);
218
$r = false;
219
if ($kind == 'var')
220
$r = $wpdb->get_var( $preparedSql );
221
else if ($kind == 'count')
222
{
223
$sql = 'SELECT COUNT(*) FROM ('.trim($sql,';').') t';
224
+ $r = $wpdb->get_var( $wpdb->prepare($sql, null) );
225
}
226
else if ($kind == 'rows')
227
{
360
if (!empty($_GET['networkwide']))
361
{
362
$old_blog = $wpdb->blogid;
363
+ $blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs", null));
364
foreach ($blogids as $blog_id)
365
{
366
// create tables in all sub blogs
counter.php CHANGED
@@ -3,14 +3,14 @@
3
Plugin Name: Count Per Day
4
Plugin URI: http://www.tomsdimension.de/wp-plugins/count-per-day
5
Description: Counter, shows reads and visitors per page; today, yesterday, last week, last months ... on dashboard, per shortcode or in widget.
6
- Version: 3.2.4
7
License: Postcardware
8
Author: Tom Braider
9
Author URI: http://www.tomsdimension.de
10
*/
11
12
$cpd_dir_name = 'count-per-day';
13
- $cpd_version = '3.2.4';
14
15
$cpd_path = str_replace('/', DIRECTORY_SEPARATOR, ABSPATH.PLUGINDIR.'/'.$cpd_dir_name.'/');
16
include_once($cpd_path.'counter-core.php');
@@ -53,7 +53,7 @@ function show( $before='', $after=' reads', $show = true, $count = true, $page =
53
// get count from collection
54
$c = $this->getCollectedPostReads($page);
55
// add current data
56
- $c += $this->mysqlQuery('var', $wpdb->prepare("SELECT COUNT(*) FROM $wpdb->cpd_counter WHERE page='$page'"), 'show '.__LINE__);
57
if ($show)
58
echo $before.$c.$after;
59
else
3
Plugin Name: Count Per Day
4
Plugin URI: http://www.tomsdimension.de/wp-plugins/count-per-day
5
Description: Counter, shows reads and visitors per page; today, yesterday, last week, last months ... on dashboard, per shortcode or in widget.
6
+ Version: 3.2.5
7
License: Postcardware
8
Author: Tom Braider
9
Author URI: http://www.tomsdimension.de
10
*/
11
12
$cpd_dir_name = 'count-per-day';
13
+ $cpd_version = '3.2.5';
14
15
$cpd_path = str_replace('/', DIRECTORY_SEPARATOR, ABSPATH.PLUGINDIR.'/'.$cpd_dir_name.'/');
16
include_once($cpd_path.'counter-core.php');
53
// get count from collection
54
$c = $this->getCollectedPostReads($page);
55
// add current data
56
+ $c += $this->mysqlQuery('var', $wpdb->prepare("SELECT COUNT(*) FROM $wpdb->cpd_counter WHERE page='$page'", null), 'show '.__LINE__);
57
if ($show)
58
echo $before.$c.$after;
59
else
geoip/GeoIP.dat CHANGED
Binary file
geoip/cpd_geoip.inc ADDED
@@ -0,0 +1,713 @@
1
+ <?php
2
+
3
+ /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
4
+ /* geoip.inc
5
+ *
6
+ * Copyright (C) 2007 MaxMind LLC
7
+ *
8
+ * This library is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * This library is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with this library; if not, write to the Free Software
20
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
+ */
22
+
23
+ define("GEOIP_COUNTRY_BEGIN", 16776960);
24
+ define("GEOIP_STATE_BEGIN_REV0", 16700000);
25
+ define("GEOIP_STATE_BEGIN_REV1", 16000000);
26
+ define("GEOIP_STANDARD", 0);
27
+ define("GEOIP_MEMORY_CACHE", 1);
28
+ define("GEOIP_SHARED_MEMORY", 2);
29
+ define("STRUCTURE_INFO_MAX_SIZE", 20);
30
+ define("DATABASE_INFO_MAX_SIZE", 100);
31
+ define("GEOIP_COUNTRY_EDITION", 106);
32
+ define("GEOIP_PROXY_EDITION", 8);
33
+ define("GEOIP_ASNUM_EDITION", 9);
34
+ define("GEOIP_NETSPEED_EDITION", 10);
35
+ define("GEOIP_REGION_EDITION_REV0", 112);
36
+ define("GEOIP_REGION_EDITION_REV1", 3);
37
+ define("GEOIP_CITY_EDITION_REV0", 111);
38
+ define("GEOIP_CITY_EDITION_REV1", 2);
39
+ define("GEOIP_ORG_EDITION", 110);
40
+ define("GEOIP_ISP_EDITION", 4);
41
+ define("SEGMENT_RECORD_LENGTH", 3);
42
+ define("STANDARD_RECORD_LENGTH", 3);
43
+ define("ORG_RECORD_LENGTH", 4);
44
+ define("MAX_RECORD_LENGTH", 4);
45
+ define("MAX_ORG_RECORD_LENGTH", 300);
46
+ define("GEOIP_SHM_KEY", 0x4f415401);
47
+ define("US_OFFSET", 1);
48
+ define("CANADA_OFFSET", 677);
49
+ define("WORLD_OFFSET", 1353);
50
+ define("FIPS_RANGE", 360);
51
+ define("GEOIP_UNKNOWN_SPEED", 0);
52
+ define("GEOIP_DIALUP_SPEED", 1);
53
+ define("GEOIP_CABLEDSL_SPEED", 2);
54
+ define("GEOIP_CORPORATE_SPEED", 3);
55
+ define("GEOIP_DOMAIN_EDITION", 11);
56
+ define("GEOIP_COUNTRY_EDITION_V6", 12);
57
+ define("GEOIP_LOCATIONA_EDITION", 13);
58
+ define("GEOIP_ACCURACYRADIUS_EDITION", 14);
59
+ define("GEOIP_CITYCOMBINED_EDITION", 15);
60
+ define("GEOIP_CITY_EDITION_REV1_V6", 30);
61
+ define("GEOIP_CITY_EDITION_REV0_V6",31);
62
+ define("GEOIP_NETSPEED_EDITION_REV1",32);
63
+ define("GEOIP_NETSPEED_EDITION_REV1_V6",33);
64
+ define("GEOIP_USERTYPE_EDITION",28);
65
+ define("GEOIP_USERTYPE_EDITION_V6",29);
66
+ define("GEOIP_ASNUM_EDITION_V6",21);
67
+ define("GEOIP_ISP_EDITION_V6",22);
68
+ define("GEOIP_ORG_EDITION_V6",23);
69
+ define("GEOIP_DOMAIN_EDITION_V6",24);
70
+
71
+ define("CITYCOMBINED_FIXED_RECORD", 7 );
72
+
73
+ class GeoIPCpD {
74
+ var $flags;
75
+ var $filehandle;
76
+ var $memory_buffer;
77
+ var $databaseType;
78
+ var $databaseSegments;
79
+ var $record_length;
80
+ var $shmid;
81
+ var $GEOIP_COUNTRY_CODE_TO_NUMBER = array(
82
+ "" => 0, "AP" => 1, "EU" => 2, "AD" => 3, "AE" => 4, "AF" => 5,
83
+ "AG" => 6, "AI" => 7, "AL" => 8, "AM" => 9, "CW" => 10, "AO" => 11,
84
+ "AQ" => 12, "AR" => 13, "AS" => 14, "AT" => 15, "AU" => 16, "AW" => 17,
85
+ "AZ" => 18, "BA" => 19, "BB" => 20, "BD" => 21, "BE" => 22, "BF" => 23,
86
+ "BG" => 24, "BH" => 25, "BI" => 26, "BJ" => 27, "BM" => 28, "BN" => 29,
87
+ "BO" => 30, "BR" => 31, "BS" => 32, "BT" => 33, "BV" => 34, "BW" => 35,
88
+ "BY" => 36, "BZ" => 37, "CA" => 38, "CC" => 39, "CD" => 40, "CF" => 41,
89
+ "CG" => 42, "CH" => 43, "CI" => 44, "CK" => 45, "CL" => 46, "CM" => 47,
90
+ "CN" => 48, "CO" => 49, "CR" => 50, "CU" => 51, "CV" => 52, "CX" => 53,
91
+ "CY" => 54, "CZ" => 55, "DE" => 56, "DJ" => 57, "DK" => 58, "DM" => 59,
92
+ "DO" => 60, "DZ" => 61, "EC" => 62, "EE" => 63, "EG" => 64, "EH" => 65,
93
+ "ER" => 66, "ES" => 67, "ET" => 68, "FI" => 69, "FJ" => 70, "FK" => 71,
94
+ "FM" => 72, "FO" => 73, "FR" => 74, "SX" => 75, "GA" => 76, "GB" => 77,
95
+ "GD" => 78, "GE" => 79, "GF" => 80, "GH" => 81, "GI" => 82, "GL" => 83,
96
+ "GM" => 84, "GN" => 85, "GP" => 86, "GQ" => 87, "GR" => 88, "GS" => 89,
97
+ "GT" => 90, "GU" => 91, "GW" => 92, "GY" => 93, "HK" => 94, "HM" => 95,
98
+ "HN" => 96, "HR" => 97, "HT" => 98, "HU" => 99, "ID" => 100, "IE" => 101,
99
+ "IL" => 102, "IN" => 103, "IO" => 104, "IQ" => 105, "IR" => 106, "IS" => 107,
100
+ "IT" => 108, "JM" => 109, "JO" => 110, "JP" => 111, "KE" => 112, "KG" => 113,
101
+ "KH" => 114, "KI" => 115, "KM" => 116, "KN" => 117, "KP" => 118, "KR" => 119,
102
+ "KW" => 120, "KY" => 121, "KZ" => 122, "LA" => 123, "LB" => 124, "LC" => 125,
103
+ "LI" => 126, "LK" => 127, "LR" => 128, "LS" => 129, "LT" => 130, "LU" => 131,
104
+ "LV" => 132, "LY" => 133, "MA" => 134, "MC" => 135, "MD" => 136, "MG" => 137,
105
+ "MH" => 138, "MK" => 139, "ML" => 140, "MM" => 141, "MN" => 142, "MO" => 143,
106
+ "MP" => 144, "MQ" => 145, "MR" => 146, "MS" => 147, "MT" => 148, "MU" => 149,
107
+ "MV" => 150, "MW" => 151, "MX" => 152, "MY" => 153, "MZ" => 154, "NA" => 155,
108
+ "NC" => 156, "NE" => 157, "NF" => 158, "NG" => 159, "NI" => 160, "NL" => 161,
109
+ "NO" => 162, "NP" => 163, "NR" => 164, "NU" => 165, "NZ" => 166, "OM" => 167,
110
+ "PA" => 168, "PE" => 169, "PF" => 170, "PG" => 171, "PH" => 172, "PK" => 173,
111
+ "PL" => 174, "PM" => 175, "PN" => 176, "PR" => 177, "PS" => 178, "PT" => 179,
112
+ "PW" => 180, "PY" => 181, "QA" => 182, "RE" => 183, "RO" => 184, "RU" => 185,
113
+ "RW" => 186, "SA" => 187, "SB" => 188, "SC" => 189, "SD" => 190, "SE" => 191,
114
+ "SG" => 192, "SH" => 193, "SI" => 194, "SJ" => 195, "SK" => 196, "SL" => 197,
115
+ "SM" => 198, "SN" => 199, "SO" => 200, "SR" => 201, "ST" => 202, "SV" => 203,
116
+ "SY" => 204, "SZ" => 205, "TC" => 206, "TD" => 207, "TF" => 208, "TG" => 209,
117
+ "TH" => 210, "TJ" => 211, "TK" => 212, "TM" => 213, "TN" => 214, "TO" => 215,
118
+ "TL" => 216, "TR" => 217, "TT" => 218, "TV" => 219, "TW" => 220, "TZ" => 221,
119
+ "UA" => 222, "UG" => 223, "UM" => 224, "US" => 225, "UY" => 226, "UZ" => 227,
120
+ "VA" => 228, "VC" => 229, "VE" => 230, "VG" => 231, "VI" => 232, "VN" => 233,
121
+ "VU" => 234, "WF" => 235, "WS" => 236, "YE" => 237, "YT" => 238, "RS" => 239,
122
+ "ZA" => 240, "ZM" => 241, "ME" => 242, "ZW" => 243, "A1" => 244, "A2" => 245,
123
+ "O1" => 246, "AX" => 247, "GG" => 248, "IM" => 249, "JE" => 250, "BL" => 251,
124
+ "MF" => 252, "BQ" => 253,
125
+ );
126
+ var $GEOIP_COUNTRY_CODES = array(
127
+ "","AP","EU","AD","AE","AF","AG","AI","AL","AM","CW",
128
+ "AO","AQ","AR","AS","AT","AU","AW","AZ","BA","BB",
129
+ "BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO",
130
+ "BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD",
131
+ "CF","CG","CH","CI","CK","CL","CM","CN","CO","CR",
132
+ "CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO",
133
+ "DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ",
134
+ "FK","FM","FO","FR","SX","GA","GB","GD","GE","GF",
135
+ "GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT",
136
+ "GU","GW","GY","HK","HM","HN","HR","HT","HU","ID",
137
+ "IE","IL","IN","IO","IQ","IR","IS","IT","JM","JO",
138
+ "JP","KE","KG","KH","KI","KM","KN","KP","KR","KW",
139
+ "KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT",
140
+ "LU","LV","LY","MA","MC","MD","MG","MH","MK","ML",
141
+ "MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV",
142
+ "MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI",
143
+ "NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF",
144
+ "PG","PH","PK","PL","PM","PN","PR","PS","PT","PW",
145
+ "PY","QA","RE","RO","RU","RW","SA","SB","SC","SD",
146
+ "SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO",
147
+ "SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH",
148
+ "TJ","TK","TM","TN","TO","TL","TR","TT","TV","TW",
149
+ "TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE",
150
+ "VG","VI","VN","VU","WF","WS","YE","YT","RS","ZA",
151
+ "ZM","ME","ZW","A1","A2","O1","AX","GG","IM","JE",
152
+ "BL","MF", "BQ");
153
+ var $GEOIP_COUNTRY_CODES3 = array(
154
+ "","AP","EU","AND","ARE","AFG","ATG","AIA","ALB","ARM","CUW",
155
+ "AGO","ATA","ARG","ASM","AUT","AUS","ABW","AZE","BIH","BRB",
156
+ "BGD","BEL","BFA","BGR","BHR","BDI","BEN","BMU","BRN","BOL",
157
+ "BRA","BHS","BTN","BVT","BWA","BLR","BLZ","CAN","CCK","COD",
158
+ "CAF","COG","CHE","CIV","COK","CHL","CMR","CHN","COL","CRI",
159
+ "CUB","CPV","CXR","CYP","CZE","DEU","DJI","DNK","DMA","DOM",
160
+ "DZA","ECU","EST","EGY","ESH","ERI","ESP","ETH","FIN","FJI",
161
+ "FLK","FSM","FRO","FRA","SXM","GAB","GBR","GRD","GEO","GUF",
162
+ "GHA","GIB","GRL","GMB","GIN","GLP","GNQ","GRC","SGS","GTM",
163
+ "GUM","GNB","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN",
164
+ "IRL","ISR","IND","IOT","IRQ","IRN","ISL","ITA","JAM","JOR",
165
+ "JPN","KEN","KGZ","KHM","KIR","COM","KNA","PRK","KOR","KWT",
166
+ "CYM","KAZ","LAO","LBN","LCA","LIE","LKA","LBR","LSO","LTU",
167
+ "LUX","LVA","LBY","MAR","MCO","MDA","MDG","MHL","MKD","MLI",
168
+ "MMR","MNG","MAC","MNP","MTQ","MRT","MSR","MLT","MUS","MDV",
169
+ "MWI","MEX","MYS","MOZ","NAM","NCL","NER","NFK","NGA","NIC",
170
+ "NLD","NOR","NPL","NRU","NIU","NZL","OMN","PAN","PER","PYF",
171
+ "PNG","PHL","PAK","POL","SPM","PCN","PRI","PSE","PRT","PLW",
172
+ "PRY","QAT","REU","ROU","RUS","RWA","SAU","SLB","SYC","SDN",
173
+ "SWE","SGP","SHN","SVN","SJM","SVK","SLE","SMR","SEN","SOM",
174
+ "SUR","STP","SLV","SYR","SWZ","TCA","TCD","ATF","TGO","THA",
175
+ "TJK","TKL","TKM","TUN","TON","TLS","TUR","TTO","TUV","TWN",
176
+ "TZA","UKR","UGA","UMI","USA","URY","UZB","VAT","VCT","VEN",
177
+ "VGB","VIR","VNM","VUT","WLF","WSM","YEM","MYT","SRB","ZAF",
178
+ "ZMB","MNE","ZWE","A1","A2","O1","ALA","GGY","IMN","JEY",
179
+ "BLM","MAF", "BES"
180
+ );
181
+ var $GEOIP_COUNTRY_NAMES = array(
182
+ "","Asia/Pacific Region","Europe","Andorra","United Arab Emirates","Afghanistan","Antigua and Barbuda","Anguilla","Albania","Armenia","Curacao",
183
+ "Angola","Antarctica","Argentina","American Samoa","Austria","Australia","Aruba","Azerbaijan","Bosnia and Herzegovina","Barbados",
184
+ "Bangladesh","Belgium","Burkina Faso","Bulgaria","Bahrain","Burundi","Benin","Bermuda","Brunei Darussalam","Bolivia",
185
+ "Brazil","Bahamas","Bhutan","Bouvet Island","Botswana","Belarus","Belize","Canada","Cocos (Keeling) Islands","Congo, The Democratic Republic of the",
186
+ "Central African Republic","Congo","Switzerland","Cote D'Ivoire","Cook Islands","Chile","Cameroon","China","Colombia","Costa Rica",
187
+ "Cuba","Cape Verde","Christmas Island","Cyprus","Czech Republic","Germany","Djibouti","Denmark","Dominica","Dominican Republic",
188
+ "Algeria","Ecuador","Estonia","Egypt","Western Sahara","Eritrea","Spain","Ethiopia","Finland","Fiji",
189
+ "Falkland Islands (Malvinas)","Micronesia, Federated States of","Faroe Islands","France","Sint Maarten (Dutch part)","Gabon","United Kingdom","Grenada","Georgia","French Guiana",
190
+ "Ghana","Gibraltar","Greenland","Gambia","Guinea","Guadeloupe","Equatorial Guinea","Greece","South Georgia and the South Sandwich Islands","Guatemala",
191
+ "Guam","Guinea-Bissau","Guyana","Hong Kong","Heard Island and McDonald Islands","Honduras","Croatia","Haiti","Hungary","Indonesia",
192
+ "Ireland","Israel","India","British Indian Ocean Territory","Iraq","Iran, Islamic Republic of","Iceland","Italy","Jamaica","Jordan",
193
+ "Japan","Kenya","Kyrgyzstan","Cambodia","Kiribati","Comoros","Saint Kitts and Nevis","Korea, Democratic People's Republic of","Korea, Republic of","Kuwait",
194
+ "Cayman Islands","Kazakhstan","Lao People's Democratic Republic","Lebanon","Saint Lucia","Liechtenstein","Sri Lanka","Liberia","Lesotho","Lithuania",
195
+ "Luxembourg","Latvia","Libya","Morocco","Monaco","Moldova, Republic of","Madagascar","Marshall Islands","Macedonia","Mali",
196
+ "Myanmar","Mongolia","Macau","Northern Mariana Islands","Martinique","Mauritania","Montserrat","Malta","Mauritius","Maldives",
197
+ "Malawi","Mexico","Malaysia","Mozambique","Namibia","New Caledonia","Niger","Norfolk Island","Nigeria","Nicaragua",
198
+ "Netherlands","Norway","Nepal","Nauru","Niue","New Zealand","Oman","Panama","Peru","French Polynesia",
199
+ "Papua New Guinea","Philippines","Pakistan","Poland","Saint Pierre and Miquelon","Pitcairn Islands","Puerto Rico","Palestinian Territory","Portugal","Palau",
200
+ "Paraguay","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saudi Arabia","Solomon Islands","Seychelles","Sudan",
201
+ "Sweden","Singapore","Saint Helena","Slovenia","Svalbard and Jan Mayen","Slovakia","Sierra Leone","San Marino","Senegal","Somalia","Suriname",
202
+ "Sao Tome and Principe","El Salvador","Syrian Arab Republic","Swaziland","Turks and Caicos Islands","Chad","French Southern Territories","Togo","Thailand",
203
+ "Tajikistan","Tokelau","Turkmenistan","Tunisia","Tonga","Timor-Leste","Turkey","Trinidad and Tobago","Tuvalu","Taiwan",
204
+ "Tanzania, United Republic of","Ukraine","Uganda","United States Minor Outlying Islands","United States","Uruguay","Uzbekistan","Holy See (Vatican City State)","Saint Vincent and the Grenadines","Venezuela",
205
+ "Virgin Islands, British","Virgin Islands, U.S.","Vietnam","Vanuatu","Wallis and Futuna","Samoa","Yemen","Mayotte","Serbia","South Africa",
206
+ "Zambia","Montenegro","Zimbabwe","Anonymous Proxy","Satellite Provider","Other","Aland Islands","Guernsey","Isle of Man","Jersey",
207
+ "Saint Barthelemy","Saint Martin", "Bonaire, Saint Eustatius and Saba"
208
+ );
209
+
210
+ var $GEOIP_CONTINENT_CODES = array(
211
+ "--", "AS","EU","EU","AS","AS","NA","NA","EU","AS","NA",
212
+ "AF","AN","SA","OC","EU","OC","NA","AS","EU","NA",
213
+ "AS","EU","AF","EU","AS","AF","AF","NA","AS","SA",
214
+ "SA","NA","AS","AN","AF","EU","NA","NA","AS","AF",
215
+ "AF","AF","EU","AF","OC","SA","AF","AS","SA","NA",
216
+ "NA","AF","AS","AS","EU","EU","AF","EU","NA","NA",
217
+ "AF","SA","EU","AF","AF","AF","EU","AF","EU","OC",
218
+ "SA","OC","EU","EU","NA","AF","EU","NA","AS","SA",
219
+ "AF","EU","NA","AF","AF","NA","AF","EU","AN","NA",
220
+ "OC","AF","SA","AS","AN","NA","EU","NA","EU","AS",
221
+ "EU","AS","AS","AS","AS","AS","EU","EU","NA","AS",
222
+ "AS","AF","AS","AS","OC","AF","NA","AS","AS","AS",
223
+ "NA","AS","AS","AS","NA","EU","AS","AF","AF","EU",
224
+ "EU","EU","AF","AF","EU","EU","AF","OC","EU","AF",
225
+ "AS","AS","AS","OC","NA","AF","NA","EU","AF","AS",
226
+ "AF","NA","AS","AF","AF","OC","AF","OC","AF","NA",
227
+ "EU","EU","AS","OC","OC","OC","AS","NA","SA","OC",
228
+ "OC","AS","AS","EU","NA","OC","NA","AS","EU","OC",
229
+ "SA","AS","AF","EU","EU","AF","AS","OC","AF","AF",
230
+ "EU","AS","AF","EU","EU","EU","AF","EU","AF","AF",
231
+ "SA","AF","NA","AS","AF","NA","AF","AN","AF","AS",
232
+ "AS","OC","AS","AF","OC","AS","EU","NA","OC","AS",
233
+ "AF","EU","AF","OC","NA","SA","AS","EU","NA","SA",
234
+ "NA","NA","AS","OC","OC","OC","AS","AF","EU","AF",
235
+ "AF","EU","AF","--","--","--","EU","EU","EU","EU",
236
+ "NA","NA","NA"
237
+ );
238
+
239
+ }
240
+ function cpd_geoip_load_shared_mem ($file) {
241
+
242
+ $fp = fopen($file, "rb");
243
+ if (!$fp) {
244
+ print "error opening $file: $php_errormsg\n";
245
+ exit;
246
+ }
247
+ $s_array = fstat($fp);
248
+ $size = $s_array['size'];
249
+ if ($shmid = @shmop_open (GEOIP_SHM_KEY, "w", 0, 0)) {
250
+ shmop_delete ($shmid);
251
+ shmop_close ($shmid);
252
+ }
253
+ $shmid = shmop_open (GEOIP_SHM_KEY, "c", 0644, $size);
254
+ shmop_write ($shmid, fread($fp, $size), 0);
255
+ shmop_close ($shmid);
256
+ }
257
+
258
+ function cpd_setup_segments($gi){
259
+ $gi->databaseType = GEOIP_COUNTRY_EDITION;
260
+ $gi->record_length = STANDARD_RECORD_LENGTH;
261
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
262
+ $offset = @shmop_size ($gi->shmid) - 3;
263
+ for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
264
+ $delim = @shmop_read ($gi->shmid, $offset, 3);
265
+ $offset += 3;
266
+ if ($delim == (chr(255).chr(255).chr(255))) {
267
+ $gi->databaseType = ord(@shmop_read ($gi->shmid, $offset, 1));
268
+ $offset++;
269
+
270
+ if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){
271
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
272
+ } else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1){
273
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
274
+ } else if (($gi->databaseType == GEOIP_CITY_EDITION_REV0)||
275
+ ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
276
+ || ($gi->databaseType == GEOIP_ORG_EDITION)
277
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
278
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
279
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
280
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
281
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
282
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
283
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
284
+ || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
285
+ || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
286
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
287
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
288
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
289
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
290
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION)
291
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)){
292
+ $gi->databaseSegments = 0;
293
+ $buf = @shmop_read ($gi->shmid, $offset, SEGMENT_RECORD_LENGTH);
294
+ for ($j = 0;$j < SEGMENT_RECORD_LENGTH;$j++){
295
+ $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
296
+ }
297
+ if (($gi->databaseType == GEOIP_ORG_EDITION)
298
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
299
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
300
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
301
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
302
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)) {
303
+ $gi->record_length = ORG_RECORD_LENGTH;
304
+ }
305
+ }
306
+ break;
307
+ } else {
308
+ $offset -= 4;
309
+ }
310
+ }
311
+ if (($gi->databaseType == GEOIP_COUNTRY_EDITION)||
312
+ ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6)||
313
+ ($gi->databaseType == GEOIP_PROXY_EDITION)||
314
+ ($gi->databaseType == GEOIP_NETSPEED_EDITION)){
315
+ $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
316
+ }
317
+ } else {
318
+ $filepos = ftell($gi->filehandle);
319
+ fseek($gi->filehandle, -3, SEEK_END);
320
+ for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
321
+ $delim = fread($gi->filehandle,3);
322
+ if ($delim == (chr(255).chr(255).chr(255))){
323
+ $gi->databaseType = ord(fread($gi->filehandle,1));
324
+ if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){
325
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
326
+ }
327
+ else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1){
328
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
329
+ } else if (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
330
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
331
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
332
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
333
+ || ($gi->databaseType == GEOIP_ORG_EDITION)
334
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
335
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
336
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
337
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
338
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
339
+ || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
340
+ || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
341
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
342
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
343
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
344
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
345
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
346
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
347
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION)
348
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)){
349
+ $gi->databaseSegments = 0;
350
+ $buf = fread($gi->filehandle,SEGMENT_RECORD_LENGTH);
351
+ for ($j = 0;$j < SEGMENT_RECORD_LENGTH;$j++){
352
+ $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
353
+ }
354
+ if ( ( $gi->databaseType == GEOIP_ORG_EDITION )
355
+ || ( $gi->databaseType == GEOIP_DOMAIN_EDITION )
356
+ || ( $gi->databaseType == GEOIP_ISP_EDITION )
357
+ || ( $gi->databaseType == GEOIP_ORG_EDITION_V6 )
358
+ || ( $gi->databaseType == GEOIP_DOMAIN_EDITION_V6 )
359
+ || ( $gi->databaseType == GEOIP_ISP_EDITION_V6 )) {
360
+ $gi->record_length = ORG_RECORD_LENGTH;
361
+ }
362
+ }
363
+ break;
364
+ } else {
365
+ fseek($gi->filehandle, -4, SEEK_CUR);
366
+ }
367
+ }
368
+ if (($gi->databaseType == GEOIP_COUNTRY_EDITION)||
369
+ ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6)||
370
+ ($gi->databaseType == GEOIP_PROXY_EDITION)||
371
+ ($gi->databaseType == GEOIP_NETSPEED_EDITION)){
372
+ $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
373
+ }
374
+ fseek($gi->filehandle,$filepos,SEEK_SET);
375
+ }
376
+ return $gi;
377
+ }
378
+
379
+ function cpd_geoip_open($filename, $flags) {
380
+ $gi = new GeoIPCpD;
381
+ $gi->flags = $flags;
382
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
383
+ $gi->shmid = @shmop_open (GEOIP_SHM_KEY, "a", 0, 0);
384
+ } else {
385
+ $gi->filehandle = fopen($filename,"rb") or die( "Can not open $filename\n" );
386
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
387
+ $s_array = fstat($gi->filehandle);
388
+ $gi->memory_buffer = fread($gi->filehandle, $s_array['size']);
389
+ }
390
+ }
391
+
392
+ $gi = cpd_setup_segments($gi);
393
+ return $gi;
394
+ }
395
+
396
+ function cpd_geoip_close($gi) {
397
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
398
+ return true;
399
+ }
400
+
401
+ return fclose($gi->filehandle);
402
+ }
403
+
404
+ function cpd_geoip_country_id_by_name_v6($gi, $name) {
405
+ $rec = dns_get_record($name, DNS_AAAA);
406
+ if ( !$rec ) {
407
+ return false;
408
+ }
409
+ $addr = $rec[0]["ipv6"];
410
+ if (!$addr || $addr == $name) {
411
+ return false;
412
+ }
413
+ return cpd_geoip_country_id_by_addr_v6($gi, $addr);
414
+ }
415
+
416
+ function cpd_geoip_country_id_by_name($gi, $name) {
417
+ $addr = gethostbyname($name);
418
+ if (!$addr || $addr == $name) {
419
+ return false;
420
+ }
421
+ return cpd_geoip_country_id_by_addr($gi, $addr);
422
+ }
423
+
424
+ function cpd_geoip_country_code_by_name_v6($gi, $name) {
425
+ $country_id = cpd_geoip_country_id_by_name_v6($gi,$name);
426
+ if ($country_id !== false) {
427
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
428
+ }
429
+ return false;
430
+ }
431
+
432
+ function cpd_geoip_country_code_by_name($gi, $name) {
433
+ $country_id = cpd_geoip_country_id_by_name($gi,$name);
434
+ if ($country_id !== false) {
435
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
436
+ }
437
+ return false;
438
+ }
439
+
440
+ function cpd_geoip_country_name_by_name_v6($gi, $name) {
441
+ $country_id = cpd_geoip_country_id_by_name_v6($gi,$name);
442
+ if ($country_id !== false) {
443
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
444
+ }
445
+ return false;
446
+ }
447
+
448
+ function cpd_geoip_country_name_by_name($gi, $name) {
449
+ $country_id = cpd_geoip_country_id_by_name($gi,$name);
450
+ if ($country_id !== false) {
451
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
452
+ }
453
+ return false;
454
+ }
455
+
456
+ function cpd_geoip_country_id_by_addr_v6($gi, $addr) {
457
+ $ipnum = inet_pton($addr);
458
+ return cpd_geoip_seek_country_v6($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
459
+ }
460
+
461
+ function cpd_geoip_country_id_by_addr($gi, $addr) {
462
+ $ipnum = ip2long($addr);
463
+ return cpd_geoip_seek_country($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
464
+ }
465
+
466
+ function cpd_geoip_country_code_by_addr_v6($gi, $addr) {
467
+ $country_id = cpd_geoip_country_id_by_addr_v6($gi,$addr);
468
+ if ($country_id !== false) {
469
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
470
+ }
471
+ return false;
472
+ }
473
+
474
+ function cpd_geoip_country_code_by_addr($gi, $addr) {
475
+ if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
476
+ $record = cpd_geoip_record_by_addr($gi,$addr);
477
+ if ( $record !== false ) {
478
+ return $record->country_code;
479
+ }
480
+ } else {
481
+ $country_id = cpd_geoip_country_id_by_addr($gi,$addr);
482
+ if ($country_id !== false) {
483
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
484
+ }
485
+ }
486
+ return false;
487
+ }
488
+
489
+ function cpd_geoip_country_name_by_addr_v6($gi, $addr) {
490
+ $country_id = cpd_geoip_country_id_by_addr_v6($gi,$addr);
491
+ if ($country_id !== false) {
492
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
493
+ }
494
+ return false;
495
+ }
496
+
497
+ function cpd_geoip_country_name_by_addr($gi, $addr) {
498
+ if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
499
+ $record = cpd_geoip_record_by_addr($gi,$addr);
500
+ return $record->country_name;
501
+ } else {
502
+ $country_id = cpd_geoip_country_id_by_addr($gi,$addr);
503
+ if ($country_id !== false) {
504
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
505
+ }
506
+ }
507
+ return false;
508
+ }
509
+
510
+ function cpd_geoip_seek_country_v6($gi, $ipnum) {
511
+
512
+ # arrays from unpack start with offset 1
513
+ # yet another php mystery. array_merge work around
514
+ # this broken behaviour
515
+ $v6vec = array_merge(unpack( "C16", $ipnum));
516
+
517
+ $offset = 0;
518
+ for ($depth = 127; $depth >= 0; --$depth) {
519
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
520
+ // workaround php's broken substr, strpos, etc handling with
521
+ // mbstring.func_overload and mbstring.internal_encoding
522
+ $enc = mb_internal_encoding();
523
+ mb_internal_encoding('ISO-8859-1');
524
+
525
+ $buf = substr($gi->memory_buffer,
526
+ 2 * $gi->record_length * $offset,
527
+ 2 * $gi->record_length);
528
+
529
+ mb_internal_encoding($enc);
530
+ } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
531
+ $buf = @shmop_read ($gi->shmid,
532
+ 2 * $gi->record_length * $offset,
533
+ 2 * $gi->record_length );
534
+ } else {
535
+ fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
536
+ or die("fseek failed");
537
+ $buf = fread($gi->filehandle, 2 * $gi->record_length);
538
+ }
539
+ $x = array(0,0);
540
+ for ($i = 0; $i < 2; ++$i) {
541
+ for ($j = 0; $j < $gi->record_length; ++$j) {
542
+ $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
543
+ }
544
+ }
545
+
546
+ $bnum = 127 - $depth;
547
+ $idx = $bnum >> 3;
548
+ $b_mask = 1 << ( $bnum & 7 ^ 7 );
549
+ if (($v6vec[$idx] & $b_mask) > 0) {
550
+ if ($x[1] >= $gi->databaseSegments) {
551
+ return $x[1];
552
+ }
553
+ $offset = $x[1];
554
+ } else {
555
+ if ($x[0] >= $gi->databaseSegments) {
556
+ return $x[0];
557
+ }
558
+ $offset = $x[0];
559
+ }
560
+ }
561
+ trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
562
+ return false;
563
+ }
564
+
565
+ function cpd_geoip_seek_country($gi, $ipnum) {
566
+ $offset = 0;
567
+ for ($depth = 31; $depth >= 0; --$depth) {
568
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
569
+ // workaround php's broken substr, strpos, etc handling with
570
+ // mbstring.func_overload and mbstring.internal_encoding
571
+ $enc = mb_internal_encoding();
572
+ mb_internal_encoding('ISO-8859-1');
573
+
574
+ $buf = substr($gi->memory_buffer,
575
+ 2 * $gi->record_length * $offset,
576
+ 2 * $gi->record_length);
577
+
578
+ mb_internal_encoding($enc);
579
+ } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
580
+ $buf = @shmop_read ($gi->shmid,
581
+ 2 * $gi->record_length * $offset,
582
+ 2 * $gi->record_length );
583
+ } else {
584
+ fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
585
+ or die("fseek failed");
586
+ $buf = fread($gi->filehandle, 2 * $gi->record_length);
587
+ }
588
+ $x = array(0,0);
589
+ for ($i = 0; $i < 2; ++$i) {
590
+ for ($j = 0; $j < $gi->record_length; ++$j) {
591
+ $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
592
+ }
593
+ }
594
+ if ($ipnum & (1 << $depth)) {
595
+ if ($x[1] >= $gi->databaseSegments) {
596
+ return $x[1];
597
+ }
598
+ $offset = $x[1];
599
+ } else {
600
+ if ($x[0] >= $gi->databaseSegments) {
601
+ return $x[0];
602
+ }
603
+ $offset = $x[0];
604
+ }
605
+ }
606
+ trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
607
+ return false;
608
+ }
609
+
610
+ function cpd_common_get_org($gi, $seek_org){
611
+ $record_pointer = $seek_org + (2 * $gi->record_length - 1) * $gi->databaseSegments;
612
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
613
+ $org_buf = @shmop_read ($gi->shmid, $record_pointer, MAX_ORG_RECORD_LENGTH);
614
+ } else {
615
+ fseek($gi->filehandle, $record_pointer, SEEK_SET);
616
+ $org_buf = fread($gi->filehandle,MAX_ORG_RECORD_LENGTH);
617
+ }
618
+ // workaround php's broken substr, strpos, etc handling with
619
+ // mbstring.func_overload and mbstring.internal_encoding
620
+ $enc = mb_internal_encoding();
621
+ mb_internal_encoding('ISO-8859-1');
622
+ $org_buf = substr($org_buf, 0, strpos($org_buf, "\0"));
623
+ mb_internal_encoding($enc);
624
+ return $org_buf;
625
+ }
626
+
627
+ function cpd_get_org_v6($gi,$ipnum){
628
+ $seek_org = cpd_geoip_seek_country_v6($gi,$ipnum);
629
+ if ($seek_org == $gi->databaseSegments) {
630
+ return NULL;
631
+ }
632
+ return cpd_common_get_org($gi, $seek_org);
633
+ }
634
+
635
+ function cpd_get_org($gi,$ipnum){
636
+ $seek_org = cpd_geoip_seek_country($gi,$ipnum);
637
+ if ($seek_org == $gi->databaseSegments) {
638
+ return NULL;
639
+ }
640
+ return cpd_common_get_org($gi, $seek_org);
641
+ }
642
+
643
+
644
+
645
+ function cpd_geoip_name_by_addr_v6 ($gi,$addr) {
646
+ if ($addr == NULL) {
647
+ return 0;
648
+ }
649
+ $ipnum = inet_pton($addr);
650
+ return cpd_get_org_v6($gi, $ipnum);
651
+ }
652
+
653
+ function cpd_geoip_name_by_addr ($gi,$addr) {
654
+ if ($addr == NULL) {
655
+ return 0;
656
+ }
657
+ $ipnum = ip2long($addr);
658
+ return cpd_get_org($gi, $ipnum);
659
+ }
660
+
661
+ function cpd_geoip_org_by_addr ($gi,$addr) {
662
+ return cpd_geoip_name_by_addr($gi, $addr);
663
+ }
664
+
665
+ function cpd_get_region($gi,$ipnum){
666
+ if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){
667
+ $seek_region = cpd_geoip_seek_country($gi,$ipnum) - GEOIP_STATE_BEGIN_REV0;
668
+ if ($seek_region >= 1000){
669
+ $country_code = "US";
670
+ $region = chr(($seek_region - 1000)/26 + 65) . chr(($seek_region - 1000)%26 + 65);
671
+ } else {
672
+ $country_code = $gi->GEOIP_COUNTRY_CODES[$seek_region];
673
+ $region = "";
674
+ }
675
+ return array ($country_code,$region);
676
+ } else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
677
+ $seek_region = cpd_geoip_seek_country($gi,$ipnum) - GEOIP_STATE_BEGIN_REV1;
678
+ //print $seek_region;
679
+ if ($seek_region < US_OFFSET){
680
+ $country_code = "";
681
+ $region = "";
682
+ } else if ($seek_region < CANADA_OFFSET) {
683
+ $country_code = "US";
684
+ $region = chr(($seek_region - US_OFFSET)/26 + 65) . chr(($seek_region - US_OFFSET)%26 + 65);
685
+ } else if ($seek_region < WORLD_OFFSET) {
686
+ $country_code = "CA";
687
+ $region = chr(($seek_region - CANADA_OFFSET)/26 + 65) . chr(($seek_region - CANADA_OFFSET)%26 + 65);
688
+ } else {
689
+ $country_code = $gi->GEOIP_COUNTRY_CODES[($seek_region - WORLD_OFFSET) / FIPS_RANGE];
690
+ $region = "";
691
+ }
692
+ return array ($country_code,$region);
693
+ }
694
+ }
695
+
696
+ function cpd_geoip_region_by_addr ($gi,$addr) {
697
+ if ($addr == NULL) {
698
+ return 0;
699
+ }
700
+ $ipnum = ip2long($addr);
701
+ return cpd_get_region($gi, $ipnum);
702
+ }
703
+
704
+ function cpd_getdnsattributes ($l,$ip){
705
+ $r = new Net_DNS_Resolver();
706
+ $r->nameservers = array("ws1.maxmind.com");
707
+ $p = $r->search($l."." . $ip .".s.maxmind.com","TXT","IN");
708
+ $str = is_object($p->answer[0])?$p->answer[0]->string():'';
709
+ $str = substr( $str, 1, -1 );
710
+ return $str;
711
+ }
712
+
713
+ ?>
geoip/geoip.php CHANGED
@@ -1,121 +1,121 @@
1
- <?php
2
- /**
3
- * Filename: geoip.php
4
- * Count Per Day - GeoIP Addon
5
- */
6
-
7
- /**
8
- */
9
- if (!class_exists('GeoIpCpD'))
10
- include_once('geoip.inc');
11
-
12
- class CpdGeoIp
13
- {
14
-
15
- /**
16
- * gets country of ip adress
17
- * @param $ip IP
18
- * @return array e.g. ( 'de', image div , 'Germany' )
19
- */
20
- function getCountry( $ip )
21
- {
22
- global $cpd_path;
23
-
24
- $gi = cpd_geoip_open($cpd_path.'/geoip/GeoIP.dat', GEOIP_STANDARD);
25
- $c = strtolower(cpd_geoip_country_code_by_addr($gi, $ip));
26
-
27
- if ( empty($c) )
28
- $c = 'unknown';
29
- $cname = cpd_geoip_country_name_by_addr($gi, $ip);
30
- $country = array( $c, '<div class="cpd-flag cpd-flag-'.$c.'" title="'.$cname.'"></div>', $cname );
31
- cpd_geoip_close($gi);
32
-
33
- return $country;
34
- }
35
-
36
- /**
37
- * updates CountPerDay table
38
- */
39
- function updateDB()
40
- {
41
- global $count_per_day, $cpd_path, $wpdb;
42
-
43
- $count_per_day->mysqlQuery('rows', "SELECT country FROM $wpdb->cpd_counter LIMIT 1", 'GeoIP updateDB Table '.__LINE__);
44
- if ((int) mysql_errno() == 1054)
45
- // add row "country" to table
46
- $count_per_day->mysqlQuery('', "ALTER TABLE $wpdb->cpd_counter ADD `country` CHAR( 2 ) NOT NULL", 'GeoIP updateDB create column '.__LINE__);
47
-
48
- $limit = 20;
49
- $res = $count_per_day->mysqlQuery('rows', "SELECT ip, $count_per_day->ntoa(ip) realip FROM $wpdb->cpd_counter WHERE country LIKE '' GROUP BY ip LIMIT $limit", 'GeoIP updateDB '.__LINE__);
50
- $gi = cpd_geoip_open($cpd_path.'/geoip/GeoIP.dat', GEOIP_STANDARD);
51
-
52
- foreach ($res as $r)
53
- {
54
- $c = '';
55
- $ip = explode('.', $r->realip);
56
- if ( $ip[0] == 10
57
- || $ip[0] == 127
58
- || ($ip[0] == 169 && $ip[1] == 254)
59
- || ($ip[0] == 172 && $ip[1] >= 16 && $ip[1] <= 31)
60
- || ($ip[0] == 192 && $ip[1] == 168) )
61
- // set local IPs to '-'
62
- $c = '-';
63
- else
64
- // get country
65
- $c = strtolower(cpd_geoip_country_code_by_addr($gi, $r->realip));
66
-
67
- if ( !empty($c) )
68
- $count_per_day->mysqlQuery('', "UPDATE $wpdb->cpd_counter SET country = '$c' WHERE ip = '$r->ip'", 'GeoIP updateDB '.__LINE__);
69
- }
70
-
71
- cpd_geoip_close($gi);
72
-
73
- $rest = $count_per_day->mysqlQuery('var', "SELECT COUNT(*) FROM $wpdb->cpd_counter WHERE country like ''", 'GeoIP updateDB '.__LINE__);
74
- return (int) $rest;
75
- }
76
-
77
- /**
78
- * updates the GeoIP database file
79
- * works only if directory geoip has rights 777, set it in ftp client
80
- */
81
- function updateGeoIpFile()
82
- {
83
- global $cpd_path;
84
-
85
- // function checks
86
- if ( !ini_get('allow_url_fopen') )
87
- return 'Sorry, <code>allow_url_fopen</code> is disabled!';
88
-
89
- if ( !function_exists('gzopen') )
90
- return __('Sorry, necessary functions (zlib) not installed or enabled in php.ini.', 'cpd');
91
-
92
- $gzfile = 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz';
93
- $file = $cpd_path.'/geoip/GeoIP.dat';
94
-
95
- // get remote file
96
- $h = gzopen($gzfile, 'rb');
97
- $content = gzread($h, 1500000);
98
- fclose($h);
99
-
100
- // delete local file
101
- if (is_file($file))
102
- unlink($file);
103
-
104
- // file deleted?
105
- $del = (is_file($file)) ? 0 : 1;
106
-
107
- // write new locale file
108
- $h = fopen($file, 'wb');
109
- fwrite($h, $content);
110
- fclose($h);
111
-
112
- @chmod($file, 0755);
113
- if (is_file($file) && $del)
114
- return __('New GeoIP database installed.', 'cpd');
115
- else
116
- return __('Sorry, an error occurred. Try again or check the access rights of directory "geoip" is 777.', 'cpd');
117
- }
118
-
119
-
120
- }
121
?>
1
+ <?php
2
+ /**
3
+ * Filename: geoip.php
4
+ * Count Per Day - GeoIP Addon
5
+ */
6
+
7
+ /**
8
+ */
9
+ if (!class_exists('GeoIpCpD'))
10
+ include_once('geoip.inc');
11
+
12
+ class CpdGeoIp
13
+ {
14
+
15
+ /**
16
+ * gets country of ip adress
17
+ * @param $ip IP
18
+ * @return array e.g. ( 'de', image div , 'Germany' )
19
+ */
20
+ function getCountry( $ip )
21
+ {
22
+ global $cpd_path;
23
+
24
+ $gi = cpd_geoip_open($cpd_path.'/geoip/GeoIP.dat', GEOIP_STANDARD);
25
+ $c = strtolower(cpd_geoip_country_code_by_addr($gi, $ip));
26
+
27
+ if ( empty($c) )
28
+ $c = 'unknown';
29
+ $cname = cpd_geoip_country_name_by_addr($gi, $ip);
30
+ $country = array( $c, '<div class="cpd-flag cpd-flag-'.$c.'" title="'.$cname.'"></div>', $cname );
31
+ cpd_geoip_close($gi);
32
+
33
+ return $country;
34
+ }
35
+
36
+ /**
37
+ * updates CountPerDay table
38
+ */
39
+ function updateDB()
40
+ {
41
+ global $count_per_day, $cpd_path, $wpdb;
42
+
43
+ $count_per_day->mysqlQuery('rows', "SELECT country FROM $wpdb->cpd_counter LIMIT 1", 'GeoIP updateDB Table '.__LINE__);
44
+ if ((int) mysql_errno() == 1054)
45
+ // add row "country" to table
46
+ $count_per_day->mysqlQuery('', "ALTER TABLE $wpdb->cpd_counter ADD `country` CHAR( 2 ) NOT NULL", 'GeoIP updateDB create column '.__LINE__);
47
+
48
+ $limit = 20;
49
+ $res = $count_per_day->mysqlQuery('rows', "SELECT ip, $count_per_day->ntoa(ip) realip FROM $wpdb->cpd_counter WHERE country LIKE '' GROUP BY ip LIMIT $limit", 'GeoIP updateDB '.__LINE__);
50
+ $gi = cpd_geoip_open($cpd_path.'/geoip/GeoIP.dat', GEOIP_STANDARD);
51
+
52
+ foreach ($res as $r)
53
+ {
54
+ $c = '';
55
+ $ip = explode('.', $r->realip);
56
+ if ( $ip[0] == 10
57
+ || $ip[0] == 127
58
+ || ($ip[0] == 169 && $ip[1] == 254)
59
+ || ($ip[0] == 172 && $ip[1] >= 16 && $ip[1] <= 31)
60
+ || ($ip[0] == 192 && $ip[1] == 168) )
61
+ // set local IPs to '-'
62
+ $c = '-';
63
+ else
64
+ // get country
65
+ $c = strtolower(cpd_geoip_country_code_by_addr($gi, $r->realip));
66
+
67
+ if ( !empty($c) )
68
+ $count_per_day->mysqlQuery('', "UPDATE $wpdb->cpd_counter SET country = '$c' WHERE ip = '$r->ip'", 'GeoIP updateDB '.__LINE__);
69
+ }
70
+
71
+ cpd_geoip_close($gi);
72
+
73
+ $rest = $count_per_day->mysqlQuery('var', "SELECT COUNT(*) FROM $wpdb->cpd_counter WHERE country like ''", 'GeoIP updateDB '.__LINE__);
74
+ return (int) $rest;
75
+ }
76
+
77
+ /**
78
+ * updates the GeoIP database file
79
+ * works only if directory geoip has rights 777, set it in ftp client
80
+ */
81
+ function updateGeoIpFile()
82
+ {
83
+ global $cpd_path;
84
+
85
+ // function checks
86
+ if ( !ini_get('allow_url_fopen') )
87
+ return 'Sorry, <code>allow_url_fopen</code> is disabled!';
88
+
89
+ if ( !function_exists('gzopen') )
90
+ return __('Sorry, necessary functions (zlib) not installed or enabled in php.ini.', 'cpd');
91
+
92
+ $gzfile = 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz';
93
+ $file = $cpd_path.'/geoip/GeoIP.dat';
94
+
95
+ // get remote file
96
+ $h = gzopen($gzfile, 'rb');
97
+ $content = gzread($h, 1500000);
98
+ fclose($h);
99
+
100
+ // delete local file
101
+ if (is_file($file))
102
+ unlink($file);
103
+
104
+ // file deleted?
105
+ $del = (is_file($file)) ? 0 : 1;
106
+
107
+ // write new locale file
108
+ $h = fopen($file, 'wb');
109
+ fwrite($h, $content);
110
+ fclose($h);
111
+
112
+ @chmod($file, 0755);
113
+ if (is_file($file) && $del)
114
+ return __('New GeoIP database installed.', 'cpd');
115
+ else
116
+ return __('Sorry, an error occurred. Try again or check the access rights of directory "geoip" is 777.', 'cpd');
117
+ }
118
+
119
+
120
+ }
121
?>
js/jquery.flot.min.js CHANGED
@@ -1,6 +1,6 @@
1
- /* Javascript plotting library for jQuery, v. 0.7.
2
- *
3
- * Released under the MIT license by IOLA, December 2007.
4
- *
5
- */
6
(function(b){b.color={};b.color.make=function(d,e,g,f){var c={};c.r=d||0;c.g=e||0;c.b=g||0;c.a=f!=null?f:1;c.add=function(h,j){for(var k=0;k<h.length;++k){c[h.charAt(k)]+=j}return c.normalize()};c.scale=function(h,j){for(var k=0;k<h.length;++k){c[h.charAt(k)]*=j}return c.normalize()};c.toString=function(){if(c.a>=1){return"rgb("+[c.r,c.g,c.b].join(",")+")"}else{return"rgba("+[c.r,c.g,c.b,c.a].join(",")+")"}};c.normalize=function(){function h(k,j,l){return j<k?k:(j>l?l:j)}c.r=h(0,parseInt(c.r),255);c.g=h(0,parseInt(c.g),255);c.b=h(0,parseInt(c.b),255);c.a=h(0,c.a,1);return c};c.clone=function(){return b.color.make(c.r,c.b,c.g,c.a)};return c.normalize()};b.color.extract=function(d,e){var c;do{c=d.css(e).toLowerCase();if(c!=""&&c!="transparent"){break}d=d.parent()}while(!b.nodeName(d.get(0),"body"));if(c=="rgba(0, 0, 0, 0)"){c="transparent"}return b.color.parse(c)};b.color.parse=function(c){var d,f=b.color.make;if(d=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10))}if(d=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10),parseFloat(d[4]))}if(d=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55)}if(d=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55,parseFloat(d[4]))}if(d=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)){return f(parseInt(d[1],16),parseInt(d[2],16),parseInt(d[3],16))}if(d=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)){return f(parseInt(d[1]+d[1],16),parseInt(d[2]+d[2],16),parseInt(d[3]+d[3],16))}var e=b.trim(c).toLowerCase();if(e=="transparent"){return f(255,255,255,0)}else{d=a[e]||[0,0,0];return f(d[0],d[1],d[2])}};var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);(function(c){function b(av,ai,J,af){var Q=[],O={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{show:null,position:"bottom",mode:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null,twelveHourClock:false},yaxis:{autoscaleMargin:0.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left",horizontal:false},shadowSize:3},grid:{show:true,aboveData:false,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},hooks:{}},az=null,ad=null,y=null,H=null,A=null,p=[],aw=[],q={left:0,right:0,top:0,bottom:0},G=0,I=0,h=0,w=0,ak={processOptions:[],processRawData:[],processDatapoints:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},aq=this;aq.setData=aj;aq.setupGrid=t;aq.draw=W;aq.getPlaceholder=function(){return av};aq.getCanvas=function(){return az};aq.getPlotOffset=function(){return q};aq.width=function(){return h};aq.height=function(){return w};aq.offset=function(){var aB=y.offset();aB.left+=q.left;aB.top+=q.top;return aB};aq.getData=function(){return Q};aq.getAxes=function(){var aC={},aB;c.each(p.concat(aw),function(aD,aE){if(aE){aC[aE.direction+(aE.n!=1?aE.n:"")+"axis"]=aE}});return aC};aq.getXAxes=function(){return p};aq.getYAxes=function(){return aw};aq.c2p=C;aq.p2c=ar;aq.getOptions=function(){return O};aq.highlight=x;aq.unhighlight=T;aq.triggerRedrawOverlay=f;aq.pointOffset=function(aB){return{left:parseInt(p[aA(aB,"x")-1].p2c(+aB.x)+q.left),top:parseInt(aw[aA(aB,"y")-1].p2c(+aB.y)+q.top)}};aq.shutdown=ag;aq.resize=function(){B();g(az);g(ad)};aq.hooks=ak;F(aq);Z(J);X();aj(ai);t();W();ah();function an(aD,aB){aB=[aq].concat(aB);for(var aC=0;aC<aD.length;++aC){aD[aC].apply(this,aB)}}function F(){for(var aB=0;aB<af.length;++aB){var aC=af[aB];aC.init(aq);if(aC.options){c.extend(true,O,aC.options)}}}function Z(aC){var aB;c.extend(true,O,aC);if(O.xaxis.color==null){O.xaxis.color=O.grid.color}if(O.yaxis.color==null){O.yaxis.color=O.grid.color}if(O.xaxis.tickColor==null){O.xaxis.tickColor=O.grid.tickColor}if(O.yaxis.tickColor==null){O.yaxis.tickColor=O.grid.tickColor}if(O.grid.borderColor==null){O.grid.borderColor=O.grid.color}if(O.grid.tickColor==null){O.grid.tickColor=c.color.parse(O.grid.color).scale("a",0.22).toString()}for(aB=0;aB<Math.max(1,O.xaxes.length);++aB){O.xaxes[aB]=c.extend(true,{},O.xaxis,O.xaxes[aB])}for(aB=0;aB<Math.max(1,O.yaxes.length);++aB){O.yaxes[aB]=c.extend(true,{},O.yaxis,O.yaxes[aB])}if(O.xaxis.noTicks&&O.xaxis.ticks==null){O.xaxis.ticks=O.xaxis.noTicks}if(O.yaxis.noTicks&&O.yaxis.ticks==null){O.yaxis.ticks=O.yaxis.noTicks}if(O.x2axis){O.xaxes[1]=c.extend(true,{},O.xaxis,O.x2axis);O.xaxes[1].position="top"}if(O.y2axis){O.yaxes[1]=c.extend(true,{},O.yaxis,O.y2axis);O.yaxes[1].position="right"}if(O.grid.coloredAreas){O.grid.markings=O.grid.coloredAreas}if(O.grid.coloredAreasColor){O.grid.markingsColor=O.grid.coloredAreasColor}if(O.lines){c.extend(true,O.series.lines,O.lines)}if(O.points){c.extend(true,O.series.points,O.points)}if(O.bars){c.extend(true,O.series.bars,O.bars)}if(O.shadowSize!=null){O.series.shadowSize=O.shadowSize}for(aB=0;aB<O.xaxes.length;++aB){V(p,aB+1).options=O.xaxes[aB]}for(aB=0;aB<O.yaxes.length;++aB){V(aw,aB+1).options=O.yaxes[aB]}for(var aD in ak){if(O.hooks[aD]&&O.hooks[aD].length){ak[aD]=ak[aD].concat(O.hooks[aD])}}an(ak.processOptions,[O])}function aj(aB){Q=Y(aB);ax();z()}function Y(aE){var aC=[];for(var aB=0;aB<aE.length;++aB){var aD=c.extend(true,{},O.series);if(aE[aB].data!=null){aD.data=aE[aB].data;delete aE[aB].data;c.extend(true,aD,aE[aB]);aE[aB].data=aD.data}else{aD.data=aE[aB]}aC.push(aD)}return aC}function aA(aC,aD){var aB=aC[aD+"axis"];if(typeof aB=="object"){aB=aB.n}if(typeof aB!="number"){aB=1}return aB}function m(){return c.grep(p.concat(aw),function(aB){return aB})}function C(aE){var aC={},aB,aD;for(aB=0;aB<p.length;++aB){aD=p[aB];if(aD&&aD.used){aC["x"+aD.n]=aD.c2p(aE.left)}}for(aB=0;aB<aw.length;++aB){aD=aw[aB];if(aD&&aD.used){aC["y"+aD.n]=aD.c2p(aE.top)}}if(aC.x1!==undefined){aC.x=aC.x1}if(aC.y1!==undefined){aC.y=aC.y1}return aC}function ar(aF){var aD={},aC,aE,aB;for(aC=0;aC<p.length;++aC){aE=p[aC];if(aE&&aE.used){aB="x"+aE.n;if(aF[aB]==null&&aE.n==1){aB="x"}if(aF[aB]!=null){aD.left=aE.p2c(aF[aB]);break}}}for(aC=0;aC<aw.length;++aC){aE=aw[aC];if(aE&&aE.used){aB="y"+aE.n;if(aF[aB]==null&&aE.n==1){aB="y"}if(aF[aB]!=null){aD.top=aE.p2c(aF[aB]);break}}}return aD}function V(aC,aB){if(!aC[aB-1]){aC[aB-1]={n:aB,direction:aC==p?"x":"y",options:c.extend(true,{},aC==p?O.xaxis:O.yaxis)}}return aC[aB-1]}function ax(){var aG;var aM=Q.length,aB=[],aE=[];for(aG=0;aG<Q.length;++aG){var aJ=Q[aG].color;if(aJ!=null){--aM;if(typeof aJ=="number"){aE.push(aJ)}else{aB.push(c.color.parse(Q[aG].color))}}}for(aG=0;aG<aE.length;++aG){aM=Math.max(aM,aE[aG]+1)}var aC=[],aF=0;aG=0;while(aC.length<aM){var aI;if(O.colors.length==aG){aI=c.color.make(100,100,100)}else{aI=c.color.parse(O.colors[aG])}var aD=aF%2==1?-1:1;aI.scale("rgb",1+aD*Math.ceil(aF/2)*0.2);aC.push(aI);++aG;if(aG>=O.colors.length){aG=0;++aF}}var aH=0,aN;for(aG=0;aG<Q.length;++aG){aN=Q[aG];if(aN.color==null){aN.color=aC[aH].toString();++aH}else{if(typeof aN.color=="number"){aN.color=aC[aN.color].toString()}}if(aN.lines.show==null){var aL,aK=true;for(aL in aN){if(aN[aL]&&aN[aL].show){aK=false;break}}if(aK){aN.lines.show=true}}aN.xaxis=V(p,aA(aN,"x"));aN.yaxis=V(aw,aA(aN,"y"))}}function z(){var aO=Number.POSITIVE_INFINITY,aI=Number.NEGATIVE_INFINITY,aB=Number.MAX_VALUE,aU,aS,aR,aN,aD,aJ,aT,aP,aH,aG,aC,a0,aX,aL;function aF(a3,a2,a1){if(a2<a3.datamin&&a2!=-aB){a3.datamin=a2}if(a1>a3.datamax&&a1!=aB){a3.datamax=a1}}c.each(m(),function(a1,a2){a2.datamin=aO;a2.datamax=aI;a2.used=false});for(aU=0;aU<Q.length;++aU){aJ=Q[aU];aJ.datapoints={points:[]};an(ak.processRawData,[aJ,aJ.data,aJ.datapoints])}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];var aZ=aJ.data,aW=aJ.datapoints.format;if(!aW){aW=[];aW.push({x:true,number:true,required:true});aW.push({y:true,number:true,required:true});if(aJ.bars.show||(aJ.lines.show&&aJ.lines.fill)){aW.push({y:true,number:true,required:false,defaultValue:0});if(aJ.bars.horizontal){delete aW[aW.length-1].y;aW[aW.length-1].x=true}}aJ.datapoints.format=aW}if(aJ.datapoints.pointsize!=null){continue}aJ.datapoints.pointsize=aW.length;aP=aJ.datapoints.pointsize;aT=aJ.datapoints.points;insertSteps=aJ.lines.show&&aJ.lines.steps;aJ.xaxis.used=aJ.yaxis.used=true;for(aS=aR=0;aS<aZ.length;++aS,aR+=aP){aL=aZ[aS];var aE=aL==null;if(!aE){for(aN=0;aN<aP;++aN){a0=aL[aN];aX=aW[aN];if(aX){if(aX.number&&a0!=null){a0=+a0;if(isNaN(a0)){a0=null}else{if(a0==Infinity){a0=aB}else{if(a0==-Infinity){a0=-aB}}}}if(a0==null){if(aX.required){aE=true}if(aX.defaultValue!=null){a0=aX.defaultValue}}}aT[aR+aN]=a0}}if(aE){for(aN=0;aN<aP;++aN){a0=aT[aR+aN];if(a0!=null){aX=aW[aN];if(aX.x){aF(aJ.xaxis,a0,a0)}if(aX.y){aF(aJ.yaxis,a0,a0)}}aT[aR+aN]=null}}else{if(insertSteps&&aR>0&&aT[aR-aP]!=null&&aT[aR-aP]!=aT[aR]&&aT[aR-aP+1]!=aT[aR+1]){for(aN=0;aN<aP;++aN){aT[aR+aP+aN]=aT[aR+aN]}aT[aR+1]=aT[aR-aP+1];aR+=aP}}}}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];an(ak.processDatapoints,[aJ,aJ.datapoints])}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];aT=aJ.datapoints.points,aP=aJ.datapoints.pointsize;var aK=aO,aQ=aO,aM=aI,aV=aI;for(aS=0;aS<aT.length;aS+=aP){if(aT[aS]==null){continue}for(aN=0;aN<aP;++aN){a0=aT[aS+aN];aX=aW[aN];if(!aX||a0==aB||a0==-aB){continue}if(aX.x){if(a0<aK){aK=a0}if(a0>aM){aM=a0}}if(aX.y){if(a0<aQ){aQ=a0}if(a0>aV){aV=a0}}}}if(aJ.bars.show){var aY=aJ.bars.align=="left"?0:-aJ.bars.barWidth/2;if(aJ.bars.horizontal){aQ+=aY;aV+=aY+aJ.bars.barWidth}else{aK+=aY;aM+=aY+aJ.bars.barWidth}}aF(aJ.xaxis,aK,aM);aF(aJ.yaxis,aQ,aV)}c.each(m(),function(a1,a2){if(a2.datamin==aO){a2.datamin=null}if(a2.datamax==aI){a2.datamax=null}})}function j(aB,aC){var aD=document.createElement("canvas");aD.className=aC;aD.width=G;aD.height=I;if(!aB){c(aD).css({position:"absolute",left:0,top:0})}c(aD).appendTo(av);if(!aD.getContext){aD=window.G_vmlCanvasManager.initElement(aD)}aD.getContext("2d").save();return aD}function B(){G=av.width();I=av.height();if(G<=0||I<=0){throw"Invalid dimensions for plot, width = "+G+", height = "+I}}function g(aC){if(aC.width!=G){aC.width=G}if(aC.height!=I){aC.height=I}var aB=aC.getContext("2d");aB.restore();aB.save()}function X(){var aC,aB=av.children("canvas.base"),aD=av.children("canvas.overlay");if(aB.length==0||aD==0){av.html("");av.css({padding:0});if(av.css("position")=="static"){av.css("position","relative")}B();az=j(true,"base");ad=j(false,"overlay");aC=false}else{az=aB.get(0);ad=aD.get(0);aC=true}H=az.getContext("2d");A=ad.getContext("2d");y=c([ad,az]);if(aC){av.data("plot").shutdown();aq.resize();A.clearRect(0,0,G,I);y.unbind();av.children().not([az,ad]).remove()}av.data("plot",aq)}function ah(){if(O.grid.hoverable){y.mousemove(aa);y.mouseleave(l)}if(O.grid.clickable){y.click(R)}an(ak.bindEvents,[y])}function ag(){if(M){clearTimeout(M)}y.unbind("mousemove",aa);y.unbind("mouseleave",l);y.unbind("click",R);an(ak.shutdown,[y])}function r(aG){function aC(aH){return aH}var aF,aB,aD=aG.options.transform||aC,aE=aG.options.inverseTransform;if(aG.direction=="x"){aF=aG.scale=h/Math.abs(aD(aG.max)-aD(aG.min));aB=Math.min(aD(aG.max),aD(aG.min))}else{aF=aG.scale=w/Math.abs(aD(aG.max)-aD(aG.min));aF=-aF;aB=Math.max(aD(aG.max),aD(aG.min))}if(aD==aC){aG.p2c=function(aH){return(aH-aB)*aF}}else{aG.p2c=function(aH){return(aD(aH)-aB)*aF}}if(!aE){aG.c2p=function(aH){return aB+aH/aF}}else{aG.c2p=function(aH){return aE(aB+aH/aF)}}}function L(aD){var aB=aD.options,aF,aJ=aD.ticks||[],aI=[],aE,aK=aB.labelWidth,aG=aB.labelHeight,aC;function aH(aM,aL){return c('<div style="position:absolute;top:-10000px;'+aL+'font-size:smaller"><div class="'+aD.direction+"Axis "+aD.direction+aD.n+'Axis">'+aM.join("")+"</div></div>").appendTo(av)}if(aD.direction=="x"){if(aK==null){aK=Math.floor(G/(aJ.length>0?aJ.length:1))}if(aG==null){aI=[];for(aF=0;aF<aJ.length;++aF){aE=aJ[aF].label;if(aE){aI.push('<div class="tickLabel" style="float:left;width:'+aK+'px">'+aE+"</div>")}}if(aI.length>0){aI.push('<div style="clear:left"></div>');aC=aH(aI,"width:10000px;");aG=aC.height();aC.remove()}}}else{if(aK==null||aG==null){for(aF=0;aF<aJ.length;++aF){aE=aJ[aF].label;if(aE){aI.push('<div class="tickLabel">'+aE+"</div>")}}if(aI.length>0){aC=aH(aI,"");if(aK==null){aK=aC.children().width()}if(aG==null){aG=aC.find("div.tickLabel").height()}aC.remove()}}}if(aK==null){aK=0}if(aG==null){aG=0}aD.labelWidth=aK;aD.labelHeight=aG}function au(aD){var aC=aD.labelWidth,aL=aD.labelHeight,aH=aD.options.position,aF=aD.options.tickLength,aG=O.grid.axisMargin,aJ=O.grid.labelMargin,aK=aD.direction=="x"?p:aw,aE;var aB=c.grep(aK,function(aN){return aN&&aN.options.position==aH&&aN.reserveSpace});if(c.inArray(aD,aB)==aB.length-1){aG=0}if(aF==null){aF="full"}var aI=c.grep(aK,function(aN){return aN&&aN.reserveSpace});var aM=c.inArray(aD,aI)==0;if(!aM&&aF=="full"){aF=5}if(!isNaN(+aF)){aJ+=+aF}if(aD.direction=="x"){aL+=aJ;if(aH=="bottom"){q.bottom+=aL+aG;aD.box={top:I-q.bottom,height:aL}}else{aD.box={top:q.top+aG,height:aL};q.top+=aL+aG}}else{aC+=aJ;if(aH=="left"){aD.box={left:q.left+aG,width:aC};q.left+=aC+aG}else{q.right+=aC+aG;aD.box={left:G-q.right,width:aC}}}aD.position=aH;aD.tickLength=aF;aD.box.padding=aJ;aD.innermost=aM}function U(aB){if(aB.direction=="x"){aB.box.left=q.left;aB.box.width=h}else{aB.box.top=q.top;aB.box.height=w}}function t(){var aC,aE=m();c.each(aE,function(aF,aG){aG.show=aG.options.show;if(aG.show==null){aG.show=aG.used}aG.reserveSpace=aG.show||aG.options.reserveSpace;n(aG)});allocatedAxes=c.grep(aE,function(aF){return aF.reserveSpace});q.left=q.right=q.top=q.bottom=0;if(O.grid.show){c.each(allocatedAxes,function(aF,aG){S(aG);P(aG);ap(aG,aG.ticks);L(aG)});for(aC=allocatedAxes.length-1;aC>=0;--aC){au(allocatedAxes[aC])}var aD=O.grid.minBorderMargin;if(aD==null){aD=0;for(aC=0;aC<Q.length;++aC){aD=Math.max(aD,Q[aC].points.radius+Q[aC].points.lineWidth/2)}}for(var aB in q){q[aB]+=O.grid.borderWidth;q[aB]=Math.max(aD,q[aB])}}h=G-q.left-q.right;w=I-q.bottom-q.top;c.each(aE,function(aF,aG){r(aG)});if(O.grid.show){c.each(allocatedAxes,function(aF,aG){U(aG)});k()}o()}function n(aE){var aF=aE.options,aD=+(aF.min!=null?aF.min:aE.datamin),aB=+(aF.max!=null?aF.max:aE.datamax),aH=aB-aD;if(aH==0){var aC=aB==0?1:0.01;if(aF.min==null){aD-=aC}if(aF.max==null||aF.min!=null){aB+=aC}}else{var aG=aF.autoscaleMargin;if(aG!=null){if(aF.min==null){aD-=aH*aG;if(aD<0&&aE.datamin!=null&&aE.datamin>=0){aD=0}}if(aF.max==null){aB+=aH*aG;if(aB>0&&aE.datamax!=null&&aE.datamax<=0){aB=0}}}}aE.min=aD;aE.max=aB}function S(aG){var aM=aG.options;var aH;if(typeof aM.ticks=="number"&&aM.ticks>0){aH=aM.ticks}else{aH=0.3*Math.sqrt(aG.direction=="x"?G:I)}var aT=(aG.max-aG.min)/aH,aO,aB,aN,aR,aS,aQ,aI;if(aM.mode=="time"){var aJ={second:1000,minute:60*1000,hour:60*60*1000,day:24*60*60*1000,month:30*24*60*60*1000,year:365.2425*24*60*60*1000};var aK=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[0.25,"month"],[0.5,"month"],[1,"month"],[2,"month"],[3,"month"],[6,"month"],[1,"year"]];var aC=0;if(aM.minTickSize!=null){if(typeof aM.tickSize=="number"){aC=aM.tickSize}else{aC=aM.minTickSize[0]*aJ[aM.minTickSize[1]]}}for(var aS=0;aS<aK.length-1;++aS){if(aT<(aK[aS][0]*aJ[aK[aS][1]]+aK[aS+1][0]*aJ[aK[aS+1][1]])/2&&aK[aS][0]*aJ[aK[aS][1]]>=aC){break}}aO=aK[aS][0];aN=aK[aS][1];if(aN=="year"){aQ=Math.pow(10,Math.floor(Math.log(aT/aJ.year)/Math.LN10));aI=(aT/aJ.year)/aQ;if(aI<1.5){aO=1}else{if(aI<3){aO=2}else{if(aI<7.5){aO=5}else{aO=10}}}aO*=aQ}aG.tickSize=aM.tickSize||[aO,aN];aB=function(aX){var a2=[],a0=aX.tickSize[0],a3=aX.tickSize[1],a1=new Date(aX.min);var aW=a0*aJ[a3];if(a3=="second"){a1.setUTCSeconds(a(a1.getUTCSeconds(),a0))}if(a3=="minute"){a1.setUTCMinutes(a(a1.getUTCMinutes(),a0))}if(a3=="hour"){a1.setUTCHours(a(a1.getUTCHours(),a0))}if(a3=="month"){a1.setUTCMonth(a(a1.getUTCMonth(),a0))}if(a3=="year"){a1.setUTCFullYear(a(a1.getUTCFullYear(),a0))}a1.setUTCMilliseconds(0);if(aW>=aJ.minute){a1.setUTCSeconds(0)}if(aW>=aJ.hour){a1.setUTCMinutes(0)}if(aW>=aJ.day){a1.setUTCHours(0)}if(aW>=aJ.day*4){a1.setUTCDate(1)}if(aW>=aJ.year){a1.setUTCMonth(0)}var a5=0,a4=Number.NaN,aY;do{aY=a4;a4=a1.getTime();a2.push(a4);if(a3=="month"){if(a0<1){a1.setUTCDate(1);var aV=a1.getTime();a1.setUTCMonth(a1.getUTCMonth()+1);var aZ=a1.getTime();a1.setTime(a4+a5*aJ.hour+(aZ-aV)*a0);a5=a1.getUTCHours();a1.setUTCHours(0)}else{a1.setUTCMonth(a1.getUTCMonth()+a0)}}else{if(a3=="year"){a1.setUTCFullYear(a1.getUTCFullYear()+a0)}else{a1.setTime(a4+aW)}}}while(a4<aX.max&&a4!=aY);return a2};aR=function(aV,aY){var a0=new Date(aV);if(aM.timeformat!=null){return c.plot.formatDate(a0,aM.timeformat,aM.monthNames)}var aW=aY.tickSize[0]*aJ[aY.tickSize[1]];var aX=aY.max-aY.min;var aZ=(aM.twelveHourClock)?" %p":"";if(aW<aJ.minute){fmt="%h:%M:%S"+aZ}else{if(aW<aJ.day){if(aX<2*aJ.day){fmt="%h:%M"+aZ}else{fmt="%b %d %h:%M"+aZ}}else{if(aW<aJ.month){fmt="%b %d"}else{if(aW<aJ.year){if(aX<aJ.year){fmt="%b"}else{fmt="%b %y"}}else{fmt="%y"}}}}return c.plot.formatDate(a0,fmt,aM.monthNames)}}else{var aU=aM.tickDecimals;var aP=-Math.floor(Math.log(aT)/Math.LN10);if(aU!=null&&aP>aU){aP=aU}aQ=Math.pow(10,-aP);aI=aT/aQ;if(aI<1.5){aO=1}else{if(aI<3){aO=2;if(aI>2.25&&(aU==null||aP+1<=aU)){aO=2.5;++aP}}else{if(aI<7.5){aO=5}else{aO=10}}}aO*=aQ;if(aM.minTickSize!=null&&aO<aM.minTickSize){aO=aM.minTickSize}aG.tickDecimals=Math.max(0,aU!=null?aU:aP);aG.tickSize=aM.tickSize||aO;aB=function(aX){var aZ=[];var a0=a(aX.min,aX.tickSize),aW=0,aV=Number.NaN,aY;do{aY=aV;aV=a0+aW*aX.tickSize;aZ.push(aV);++aW}while(aV<aX.max&&aV!=aY);return aZ};aR=function(aV,aW){return aV.toFixed(aW.tickDecimals)}}if(aM.alignTicksWithAxis!=null){var aF=(aG.direction=="x"?p:aw)[aM.alignTicksWithAxis-1];if(aF&&aF.used&&aF!=aG){var aL=aB(aG);if(aL.length>0){if(aM.min==null){aG.min=Math.min(aG.min,aL[0])}if(aM.max==null&&aL.length>1){aG.max=Math.max(aG.max,aL[aL.length-1])}}aB=function(aX){var aY=[],aV,aW;for(aW=0;aW<aF.ticks.length;++aW){aV=(aF.ticks[aW].v-aF.min)/(aF.max-aF.min);aV=aX.min+aV*(aX.max-aX.min);aY.push(aV)}return aY};if(aG.mode!="time"&&aM.tickDecimals==null){var aE=Math.max(0,-Math.floor(Math.log(aT)/Math.LN10)+1),aD=aB(aG);if(!(aD.length>1&&/\..*0#x2F;.test((aD[1]-aD[0]).toFixed(aE)))){aG.tickDecimals=aE}}}}aG.tickGenerator=aB;if(c.isFunction(aM.tickFormatter)){aG.tickFormatter=function(aV,aW){return""+aM.tickFormatter(aV,aW)}}else{aG.tickFormatter=aR}}function P(aF){var aH=aF.options.ticks,aG=[];if(aH==null||(typeof aH=="number"&&aH>0)){aG=aF.tickGenerator(aF)}else{if(aH){if(c.isFunction(aH)){aG=aH({min:aF.min,max:aF.max})}else{aG=aH}}}var aE,aB;aF.ticks=[];for(aE=0;aE<aG.length;++aE){var aC=null;var aD=aG[aE];if(typeof aD=="object"){aB=+aD[0];if(aD.length>1){aC=aD[1]}}else{aB=+aD}if(aC==null){aC=aF.tickFormatter(aB,aF)}if(!isNaN(aB)){aF.ticks.push({v:aB,label:aC})}}}function ap(aB,aC){if(aB.options.autoscaleMargin&&aC.length>0){if(aB.options.min==null){aB.min=Math.min(aB.min,aC[0].v)}if(aB.options.max==null&&aC.length>1){aB.max=Math.max(aB.max,aC[aC.length-1].v)}}}function W(){H.clearRect(0,0,G,I);var aC=O.grid;if(aC.show&&aC.backgroundColor){N()}if(aC.show&&!aC.aboveData){ac()}for(var aB=0;aB<Q.length;++aB){an(ak.drawSeries,[H,Q[aB]]);d(Q[aB])}an(ak.draw,[H]);if(aC.show&&aC.aboveData){ac()}}function D(aB,aI){var aE,aH,aG,aD,aF=m();for(i=0;i<aF.length;++i){aE=aF[i];if(aE.direction==aI){aD=aI+aE.n+"axis";if(!aB[aD]&&aE.n==1){aD=aI+"axis"}if(aB[aD]){aH=aB[aD].from;aG=aB[aD].to;break}}}if(!aB[aD]){aE=aI=="x"?p[0]:aw[0];aH=aB[aI+"1"];aG=aB[aI+"2"]}if(aH!=null&&aG!=null&&aH>aG){var aC=aH;aH=aG;aG=aC}return{from:aH,to:aG,axis:aE}}function N(){H.save();H.translate(q.left,q.top);H.fillStyle=am(O.grid.backgroundColor,w,0,"rgba(255, 255, 255, 0)");H.fillRect(0,0,h,w);H.restore()}function ac(){var aF;H.save();H.translate(q.left,q.top);var aH=O.grid.markings;if(aH){if(c.isFunction(aH)){var aK=aq.getAxes();aK.xmin=aK.xaxis.min;aK.xmax=aK.xaxis.max;aK.ymin=aK.yaxis.min;aK.ymax=aK.yaxis.max;aH=aH(aK)}for(aF=0;aF<aH.length;++aF){var aD=aH[aF],aC=D(aD,"x"),aI=D(aD,"y");if(aC.from==null){aC.from=aC.axis.min}if(aC.to==null){aC.to=aC.axis.max}if(aI.from==null){aI.from=aI.axis.min}if(aI.to==null){aI.to=aI.axis.max}if(aC.to<aC.axis.min||aC.from>aC.axis.max||aI.to<aI.axis.min||aI.from>aI.axis.max){continue}aC.from=Math.max(aC.from,aC.axis.min);aC.to=Math.min(aC.to,aC.axis.max);aI.from=Math.max(aI.from,aI.axis.min);aI.to=Math.min(aI.to,aI.axis.max);if(aC.from==aC.to&&aI.from==aI.to){continue}aC.from=aC.axis.p2c(aC.from);aC.to=aC.axis.p2c(aC.to);aI.from=aI.axis.p2c(aI.from);aI.to=aI.axis.p2c(aI.to);if(aC.from==aC.to||aI.from==aI.to){H.beginPath();H.strokeStyle=aD.color||O.grid.markingsColor;H.lineWidth=aD.lineWidth||O.grid.markingsLineWidth;H.moveTo(aC.from,aI.from);H.lineTo(aC.to,aI.to);H.stroke()}else{H.fillStyle=aD.color||O.grid.markingsColor;H.fillRect(aC.from,aI.to,aC.to-aC.from,aI.from-aI.to)}}}var aK=m(),aM=O.grid.borderWidth;for(var aE=0;aE<aK.length;++aE){var aB=aK[aE],aG=aB.box,aQ=aB.tickLength,aN,aL,aP,aJ;if(!aB.show||aB.ticks.length==0){continue}H.strokeStyle=aB.options.tickColor||c.color.parse(aB.options.color).scale("a",0.22).toString();H.lineWidth=1;if(aB.direction=="x"){aN=0;if(aQ=="full"){aL=(aB.position=="top"?0:w)}else{aL=aG.top-q.top+(aB.position=="top"?aG.height:0)}}else{aL=0;if(aQ=="full"){aN=(aB.position=="left"?0:h)}else{aN=aG.left-q.left+(aB.position=="left"?aG.width:0)}}if(!aB.innermost){H.beginPath();aP=aJ=0;if(aB.direction=="x"){aP=h}else{aJ=w}if(H.lineWidth==1){aN=Math.floor(aN)+0.5;aL=Math.floor(aL)+0.5}H.moveTo(aN,aL);H.lineTo(aN+aP,aL+aJ);H.stroke()}H.beginPath();for(aF=0;aF<aB.ticks.length;++aF){var aO=aB.ticks[aF].v;aP=aJ=0;if(aO<aB.min||aO>aB.max||(aQ=="full"&&aM>0&&(aO==aB.min||aO==aB.max))){continue}if(aB.direction=="x"){aN=aB.p2c(aO);aJ=aQ=="full"?-w:aQ;if(aB.position=="top"){aJ=-aJ}}else{aL=aB.p2c(aO);aP=aQ=="full"?-h:aQ;if(aB.position=="left"){aP=-aP}}if(H.lineWidth==1){if(aB.direction=="x"){aN=Math.floor(aN)+0.5}else{aL=Math.floor(aL)+0.5}}H.moveTo(aN,aL);H.lineTo(aN+aP,aL+aJ)}H.stroke()}if(aM){H.lineWidth=aM;H.strokeStyle=O.grid.borderColor;H.strokeRect(-aM/2,-aM/2,h+aM,w+aM)}H.restore()}function k(){av.find(".tickLabels").remove();var aG=['<div class="tickLabels" style="font-size:smaller">'];var aJ=m();for(var aD=0;aD<aJ.length;++aD){var aC=aJ[aD],aF=aC.box;if(!aC.show){continue}aG.push('<div class="'+aC.direction+"Axis "+aC.direction+aC.n+'Axis" style="color:'+aC.options.color+'">');for(var aE=0;aE<aC.ticks.length;++aE){var aH=aC.ticks[aE];if(!aH.label||aH.v<aC.min||aH.v>aC.max){continue}var aK={},aI;if(aC.direction=="x"){aI="center";aK.left=Math.round(q.left+aC.p2c(aH.v)-aC.labelWidth/2);if(aC.position=="bottom"){aK.top=aF.top+aF.padding}else{aK.bottom=I-(aF.top+aF.height-aF.padding)}}else{aK.top=Math.round(q.top+aC.p2c(aH.v)-aC.labelHeight/2);if(aC.position=="left"){aK.right=G-(aF.left+aF.width-aF.padding);aI="right"}else{aK.left=aF.left+aF.padding;aI="left"}}aK.width=aC.labelWidth;var aB=["position:absolute","text-align:"+aI];for(var aL in aK){aB.push(aL+":"+aK[aL]+"px")}aG.push('<div class="tickLabel" style="'+aB.join(";")+'">'+aH.label+"</div>")}aG.push("</div>")}aG.push("</div>");av.append(aG.join(""))}function d(aB){if(aB.lines.show){at(aB)}if(aB.bars.show){e(aB)}if(aB.points.show){ao(aB)}}function at(aE){function aD(aP,aQ,aI,aU,aT){var aV=aP.points,aJ=aP.pointsize,aN=null,aM=null;H.beginPath();for(var aO=aJ;aO<aV.length;aO+=aJ){var aL=aV[aO-aJ],aS=aV[aO-aJ+1],aK=aV[aO],aR=aV[aO+1];if(aL==null||aK==null){continue}if(aS<=aR&&aS<aT.min){if(aR<aT.min){continue}aL=(aT.min-aS)/(aR-aS)*(aK-aL)+aL;aS=aT.min}else{if(aR<=aS&&aR<aT.min){if(aS<aT.min){continue}aK=(aT.min-aS)/(aR-aS)*(aK-aL)+aL;aR=aT.min}}if(aS>=aR&&aS>aT.max){if(aR>aT.max){continue}aL=(aT.max-aS)/(aR-aS)*(aK-aL)+aL;aS=aT.max}else{if(aR>=aS&&aR>aT.max){if(aS>aT.max){continue}aK=(aT.max-aS)/(aR-aS)*(aK-aL)+aL;aR=aT.max}}if(aL<=aK&&aL<aU.min){if(aK<aU.min){continue}aS=(aU.min-aL)/(aK-aL)*(aR-aS)+aS;aL=aU.min}else{if(aK<=aL&&aK<aU.min){if(aL<aU.min){continue}aR=(aU.min-aL)/(aK-aL)*(aR-aS)+aS;aK=aU.min}}if(aL>=aK&&aL>aU.max){if(aK>aU.max){continue}aS=(aU.max-aL)/(aK-aL)*(aR-aS)+aS;aL=aU.max}else{if(aK>=aL&&aK>aU.max){if(aL>aU.max){continue}aR=(aU.max-aL)/(aK-aL)*(aR-aS)+aS;aK=aU.max}}if(aL!=aN||aS!=aM){H.moveTo(aU.p2c(aL)+aQ,aT.p2c(aS)+aI)}aN=aK;aM=aR;H.lineTo(aU.p2c(aK)+aQ,aT.p2c(aR)+aI)}H.stroke()}function aF(aI,aQ,aP){var aW=aI.points,aV=aI.pointsize,aN=Math.min(Math.max(0,aP.min),aP.max),aX=0,aU,aT=false,aM=1,aL=0,aR=0;while(true){if(aV>0&&aX>aW.length+aV){break}aX+=aV;var aZ=aW[aX-aV],aK=aW[aX-aV+aM],aY=aW[aX],aJ=aW[aX+aM];if(aT){if(aV>0&&aZ!=null&&aY==null){aR=aX;aV=-aV;aM=2;continue}if(aV<0&&aX==aL+aV){H.fill();aT=false;aV=-aV;aM=1;aX=aL=aR+aV;continue}}if(aZ==null||aY==null){continue}if(aZ<=aY&&aZ<aQ.min){if(aY<aQ.min){continue}aK=(aQ.min-aZ)/(aY-aZ)*(aJ-aK)+aK;aZ=aQ.min}else{if(aY<=aZ&&aY<aQ.min){if(aZ<aQ.min){continue}aJ=(aQ.min-aZ)/(aY-aZ)*(aJ-aK)+aK;aY=aQ.min}}if(aZ>=aY&&aZ>aQ.max){if(aY>aQ.max){continue}aK=(aQ.max-aZ)/(aY-aZ)*(aJ-aK)+aK;aZ=aQ.max}else{if(aY>=aZ&&aY>aQ.max){if(aZ>aQ.max){continue}aJ=(aQ.max-aZ)/(aY-aZ)*(aJ-aK)+aK;aY=aQ.max}}if(!aT){H.beginPath();H.moveTo(aQ.p2c(aZ),aP.p2c(aN));aT=true}if(aK>=aP.max&&aJ>=aP.max){H.lineTo(aQ.p2c(aZ),aP.p2c(aP.max));H.lineTo(aQ.p2c(aY),aP.p2c(aP.max));continue}else{if(aK<=aP.min&&aJ<=aP.min){H.lineTo(aQ.p2c(aZ),aP.p2c(aP.min));H.lineTo(aQ.p2c(aY),aP.p2c(aP.min));continue}}var aO=aZ,aS=aY;if(aK<=aJ&&aK<aP.min&&aJ>=aP.min){aZ=(aP.min-aK)/(aJ-aK)*(aY-aZ)+aZ;aK=aP.min}else{if(aJ<=aK&&aJ<aP.min&&aK>=aP.min){aY=(aP.min-aK)/(aJ-aK)*(aY-aZ)+aZ;aJ=aP.min}}if(aK>=aJ&&aK>aP.max&&aJ<=aP.max){aZ=(aP.max-aK)/(aJ-aK)*(aY-aZ)+aZ;aK=aP.max}else{if(aJ>=aK&&aJ>aP.max&&aK<=aP.max){aY=(aP.max-aK)/(aJ-aK)*(aY-aZ)+aZ;aJ=aP.max}}if(aZ!=aO){H.lineTo(aQ.p2c(aO),aP.p2c(aK))}H.lineTo(aQ.p2c(aZ),aP.p2c(aK));H.lineTo(aQ.p2c(aY),aP.p2c(aJ));if(aY!=aS){H.lineTo(aQ.p2c(aY),aP.p2c(aJ));H.lineTo(aQ.p2c(aS),aP.p2c(aJ))}}}H.save();H.translate(q.left,q.top);H.lineJoin="round";var aG=aE.lines.lineWidth,aB=aE.shadowSize;if(aG>0&&aB>0){H.lineWidth=aB;H.strokeStyle="rgba(0,0,0,0.1)";var aH=Math.PI/18;aD(aE.datapoints,Math.sin(aH)*(aG/2+aB/2),Math.cos(aH)*(aG/2+aB/2),aE.xaxis,aE.yaxis);H.lineWidth=aB/2;aD(aE.datapoints,Math.sin(aH)*(aG/2+aB/4),Math.cos(aH)*(aG/2+aB/4),aE.xaxis,aE.yaxis)}H.lineWidth=aG;H.strokeStyle=aE.color;var aC=ae(aE.lines,aE.color,0,w);if(aC){H.fillStyle=aC;aF(aE.datapoints,aE.xaxis,aE.yaxis)}if(aG>0){aD(aE.datapoints,0,0,aE.xaxis,aE.yaxis)}H.restore()}function ao(aE){function aH(aN,aM,aU,aK,aS,aT,aQ,aJ){var aR=aN.points,aI=aN.pointsize;for(var aL=0;aL<aR.length;aL+=aI){var aP=aR[aL],aO=aR[aL+1];if(aP==null||aP<aT.min||aP>aT.max||aO<aQ.min||aO>aQ.max){continue}H.beginPath();aP=aT.p2c(aP);aO=aQ.p2c(aO)+aK;if(aJ=="circle"){H.arc(aP,aO,aM,0,aS?Math.PI:Math.PI*2,false)}else{aJ(H,aP,aO,aM,aS)}H.closePath();if(aU){H.fillStyle=aU;H.fill()}H.stroke()}}H.save();H.translate(q.left,q.top);var aG=aE.points.lineWidth,aC=aE.shadowSize,aB=aE.points.radius,aF=aE.points.symbol;if(aG>0&&aC>0){var aD=aC/2;H.lineWidth=aD;H.strokeStyle="rgba(0,0,0,0.1)";aH(aE.datapoints,aB,null,aD+aD/2,true,aE.xaxis,aE.yaxis,aF);H.strokeStyle="rgba(0,0,0,0.2)";aH(aE.datapoints,aB,null,aD/2,true,aE.xaxis,aE.yaxis,aF)}H.lineWidth=aG;H.strokeStyle=aE.color;aH(aE.datapoints,aB,ae(aE.points,aE.color),0,false,aE.xaxis,aE.yaxis,aF);H.restore()}function E(aN,aM,aV,aI,aQ,aF,aD,aL,aK,aU,aR,aC){var aE,aT,aJ,aP,aG,aB,aO,aH,aS;if(aR){aH=aB=aO=true;aG=false;aE=aV;aT=aN;aP=aM+aI;aJ=aM+aQ;if(aT<aE){aS=aT;aT=aE;aE=aS;aG=true;aB=false}}else{aG=aB=aO=true;aH=false;aE=aN+aI;aT=aN+aQ;aJ=aV;aP=aM;if(aP<aJ){aS=aP;aP=aJ;aJ=aS;aH=true;aO=false}}if(aT<aL.min||aE>aL.max||aP<aK.min||aJ>aK.max){return}if(aE<aL.min){aE=aL.min;aG=false}if(aT>aL.max){aT=aL.max;aB=false}if(aJ<aK.min){aJ=aK.min;aH=false}if(aP>aK.max){aP=aK.max;aO=false}aE=aL.p2c(aE);aJ=aK.p2c(aJ);aT=aL.p2c(aT);aP=aK.p2c(aP);if(aD){aU.beginPath();aU.moveTo(aE,aJ);aU.lineTo(aE,aP);aU.lineTo(aT,aP);aU.lineTo(aT,aJ);aU.fillStyle=aD(aJ,aP);aU.fill()}if(aC>0&&(aG||aB||aO||aH)){aU.beginPath();aU.moveTo(aE,aJ+aF);if(aG){aU.lineTo(aE,aP+aF)}else{aU.moveTo(aE,aP+aF)}if(aO){aU.lineTo(aT,aP+aF)}else{aU.moveTo(aT,aP+aF)}if(aB){aU.lineTo(aT,aJ+aF)}else{aU.moveTo(aT,aJ+aF)}if(aH){aU.lineTo(aE,aJ+aF)}else{aU.moveTo(aE,aJ+aF)}aU.stroke()}}function e(aD){function aC(aJ,aI,aL,aG,aK,aN,aM){var aO=aJ.points,aF=aJ.pointsize;for(var aH=0;aH<aO.length;aH+=aF){if(aO[aH]==null){continue}E(aO[aH],aO[aH+1],aO[aH+2],aI,aL,aG,aK,aN,aM,H,aD.bars.horizontal,aD.bars.lineWidth)}}H.save();H.translate(q.left,q.top);H.lineWidth=aD.bars.lineWidth;H.strokeStyle=aD.color;var aB=aD.bars.align=="left"?0:-aD.bars.barWidth/2;var aE=aD.bars.fill?function(aF,aG){return ae(aD.bars,aD.color,aF,aG)}:null;aC(aD.datapoints,aB,aB+aD.bars.barWidth,0,aE,aD.xaxis,aD.yaxis);H.restore()}function ae(aD,aB,aC,aF){var aE=aD.fill;if(!aE){return null}if(aD.fillColor){return am(aD.fillColor,aC,aF,aB)}var aG=c.color.parse(aB);aG.a=typeof aE=="number"?aE:0.4;aG.normalize();return aG.toString()}function o(){av.find(".legend").remove();if(!O.legend.show){return}var aH=[],aF=false,aN=O.legend.labelFormatter,aM,aJ;for(var aE=0;aE<Q.length;++aE){aM=Q[aE];aJ=aM.label;if(!aJ){continue}if(aE%O.legend.noColumns==0){if(aF){aH.push("</tr>")}aH.push("<tr>");aF=true}if(aN){aJ=aN(aJ,aM)}aH.push('<td class="legendColorBox"><div style="border:1px solid '+O.legend.labelBoxBorderColor+';padding:1px"><div style="width:4px;height:0;border:5px solid '+aM.color+';overflow:hidden"></div></div></td><td class="legendLabel">'+aJ+"</td>")}if(aF){aH.push("</tr>")}if(aH.length==0){return}var aL='<table style="font-size:smaller;color:'+O.grid.color+'">'+aH.join("")+"</table>";if(O.legend.container!=null){c(O.legend.container).html(aL)}else{var aI="",aC=O.legend.position,aD=O.legend.margin;if(aD[0]==null){aD=[aD,aD]}if(aC.charAt(0)=="n"){aI+="top:"+(aD[1]+q.top)+"px;"}else{if(aC.charAt(0)=="s"){aI+="bottom:"+(aD[1]+q.bottom)+"px;"}}if(aC.charAt(1)=="e"){aI+="right:"+(aD[0]+q.right)+"px;"}else{if(aC.charAt(1)=="w"){aI+="left:"+(aD[0]+q.left)+"px;"}}var aK=c('<div class="legend">'+aL.replace('style="','style="position:absolute;'+aI+";")+"</div>").appendTo(av);if(O.legend.backgroundOpacity!=0){var aG=O.legend.backgroundColor;if(aG==null){aG=O.grid.backgroundColor;if(aG&&typeof aG=="string"){aG=c.color.parse(aG)}else{aG=c.color.extract(aK,"background-color")}aG.a=1;aG=aG.toString()}var aB=aK.children();c('<div style="position:absolute;width:'+aB.width()+"px;height:"+aB.height()+"px;"+aI+"background-color:"+aG+';"> </div>').prependTo(aK).css("opacity",O.legend.backgroundOpacity)}}}var ab=[],M=null;function K(aI,aG,aD){var aO=O.grid.mouseActiveRadius,a0=aO*aO+1,aY=null,aR=false,aW,aU;for(aW=Q.length-1;aW>=0;--aW){if(!aD(Q[aW])){continue}var aP=Q[aW],aH=aP.xaxis,aF=aP.yaxis,aV=aP.datapoints.points,aT=aP.datapoints.pointsize,aQ=aH.c2p(aI),aN=aF.c2p(aG),aC=aO/aH.scale,aB=aO/aF.scale;if(aH.options.inverseTransform){aC=Number.MAX_VALUE}if(aF.options.inverseTransform){aB=Number.MAX_VALUE}if(aP.lines.show||aP.points.show){for(aU=0;aU<aV.length;aU+=aT){var aK=aV[aU],aJ=aV[aU+1];if(aK==null){continue}if(aK-aQ>aC||aK-aQ<-aC||aJ-aN>aB||aJ-aN<-aB){continue}var aM=Math.abs(aH.p2c(aK)-aI),aL=Math.abs(aF.p2c(aJ)-aG),aS=aM*aM+aL*aL;if(aS<a0){a0=aS;aY=[aW,aU/aT]}}}if(aP.bars.show&&!aY){var aE=aP.bars.align=="left"?0:-aP.bars.barWidth/2,aX=aE+aP.bars.barWidth;for(aU=0;aU<aV.length;aU+=aT){var aK=aV[aU],aJ=aV[aU+1],aZ=aV[aU+2];if(aK==null){continue}if(Q[aW].bars.horizontal?(aQ<=Math.max(aZ,aK)&&aQ>=Math.min(aZ,aK)&&aN>=aJ+aE&&aN<=aJ+aX):(aQ>=aK+aE&&aQ<=aK+aX&&aN>=Math.min(aZ,aJ)&&aN<=Math.max(aZ,aJ))){aY=[aW,aU/aT]}}}}if(aY){aW=aY[0];aU=aY[1];aT=Q[aW].datapoints.pointsize;return{datapoint:Q[aW].datapoints.points.slice(aU*aT,(aU+1)*aT),dataIndex:aU,series:Q[aW],seriesIndex:aW}}return null}function aa(aB){if(O.grid.hoverable){u("plothover",aB,function(aC){return aC.hoverable!=false})}}function l(aB){if(O.grid.hoverable){u("plothover",aB,function(aC){return false})}}function R(aB){u("plotclick",aB,function(aC){return aC.clickable!=false})}function u(aC,aB,aD){var aE=y.offset(),aH=aB.pageX-aE.left-q.left,aF=aB.pageY-aE.top-q.top,aJ=C({left:aH,top:aF});aJ.pageX=aB.pageX;aJ.pageY=aB.pageY;var aK=K(aH,aF,aD);if(aK){aK.pageX=parseInt(aK.series.xaxis.p2c(aK.datapoint[0])+aE.left+q.left);aK.pageY=parseInt(aK.series.yaxis.p2c(aK.datapoint[1])+aE.top+q.top)}if(O.grid.autoHighlight){for(var aG=0;aG<ab.length;++aG){var aI=ab[aG];if(aI.auto==aC&&!(aK&&aI.series==aK.series&&aI.point[0]==aK.datapoint[0]&&aI.point[1]==aK.datapoint[1])){T(aI.series,aI.point)}}if(aK){x(aK.series,aK.datapoint,aC)}}av.trigger(aC,[aJ,aK])}function f(){if(!M){M=setTimeout(s,30)}}function s(){M=null;A.save();A.clearRect(0,0,G,I);A.translate(q.left,q.top);var aC,aB;for(aC=0;aC<ab.length;++aC){aB=ab[aC];if(aB.series.bars.show){v(aB.series,aB.point)}else{ay(aB.series,aB.point)}}A.restore();an(ak.drawOverlay,[A])}function x(aD,aB,aF){if(typeof aD=="number"){aD=Q[aD]}if(typeof aB=="number"){var aE=aD.datapoints.pointsize;aB=aD.datapoints.points.slice(aE*aB,aE*(aB+1))}var aC=al(aD,aB);if(aC==-1){ab.push({series:aD,point:aB,auto:aF});f()}else{if(!aF){ab[aC].auto=false}}}function T(aD,aB){if(aD==null&&aB==null){ab=[];f()}if(typeof aD=="number"){aD=Q[aD]}if(typeof aB=="number"){aB=aD.data[aB]}var aC=al(aD,aB);if(aC!=-1){ab.splice(aC,1);f()}}function al(aD,aE){for(var aB=0;aB<ab.length;++aB){var aC=ab[aB];if(aC.series==aD&&aC.point[0]==aE[0]&&aC.point[1]==aE[1]){return aB}}return -1}function ay(aE,aD){var aC=aD[0],aI=aD[1],aH=aE.xaxis,aG=aE.yaxis;if(aC<aH.min||aC>aH.max||aI<aG.min||aI>aG.max){return}var aF=aE.points.radius+aE.points.lineWidth/2;A.lineWidth=aF;A.strokeStyle=c.color.parse(aE.color).scale("a",0.5).toString();var aB=1.5*aF,aC=aH.p2c(aC),aI=aG.p2c(aI);A.beginPath();if(aE.points.symbol=="circle"){A.arc(aC,aI,aB,0,2*Math.PI,false)}else{aE.points.symbol(A,aC,aI,aB,false)}A.closePath();A.stroke()}function v(aE,aB){A.lineWidth=aE.bars.lineWidth;A.strokeStyle=c.color.parse(aE.color).scale("a",0.5).toString();var aD=c.color.parse(aE.color).scale("a",0.5).toString();var aC=aE.bars.align=="left"?0:-aE.bars.barWidth/2;E(aB[0],aB[1],aB[2]||0,aC,aC+aE.bars.barWidth,0,function(){return aD},aE.xaxis,aE.yaxis,A,aE.bars.horizontal,aE.bars.lineWidth)}function am(aJ,aB,aH,aC){if(typeof aJ=="string"){return aJ}else{var aI=H.createLinearGradient(0,aH,0,aB);for(var aE=0,aD=aJ.colors.length;aE<aD;++aE){var aF=aJ.colors[aE];if(typeof aF!="string"){var aG=c.color.parse(aC);if(aF.brightness!=null){aG=aG.scale("rgb",aF.brightness)}if(aF.opacity!=null){aG.a*=aF.opacity}aF=aG.toString()}aI.addColorStop(aE/(aD-1),aF)}return aI}}}c.plot=function(g,e,d){var f=new b(c(g),e,d,c.plot.plugins);return f};c.plot.version="0.7";c.plot.plugins=[];c.plot.formatDate=function(l,f,h){var o=function(d){d=""+d;return d.length==1?"0"+d:d};var e=[];var p=false,j=false;var n=l.getUTCHours();var k=n<12;if(h==null){h=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}if(f.search(/%p|%P/)!=-1){if(n>12){n=n-12}else{if(n==0){n=12}}}for(var g=0;g<f.length;++g){var m=f.charAt(g);if(p){switch(m){case"h":m=""+n;break;case"H":m=o(n);break;case"M":m=o(l.getUTCMinutes());break;case"S":m=o(l.getUTCSeconds());break;case"d":m=""+l.getUTCDate();break;case"m":m=""+(l.getUTCMonth()+1);break;case"y":m=""+l.getUTCFullYear();break;case"b":m=""+h[l.getUTCMonth()];break;case"p":m=(k)?("am"):("pm");break;case"P":m=(k)?("AM"):("PM");break;case"0":m="";j=true;break}if(m&&j){m=o(m);j=false}e.push(m);if(!j){p=false}}else{if(m=="%"){p=true}else{e.push(m)}}}return e.join("")};function a(e,d){return d*Math.floor(e/d)}})(jQuery);
1
+ /* Javascript plotting library for jQuery, v. 0.7.
2
+ *
3
+ * Released under the MIT license by IOLA, December 2007.
4
+ *
5
+ */
6
(function(b){b.color={};b.color.make=function(d,e,g,f){var c={};c.r=d||0;c.g=e||0;c.b=g||0;c.a=f!=null?f:1;c.add=function(h,j){for(var k=0;k<h.length;++k){c[h.charAt(k)]+=j}return c.normalize()};c.scale=function(h,j){for(var k=0;k<h.length;++k){c[h.charAt(k)]*=j}return c.normalize()};c.toString=function(){if(c.a>=1){return"rgb("+[c.r,c.g,c.b].join(",")+")"}else{return"rgba("+[c.r,c.g,c.b,c.a].join(",")+")"}};c.normalize=function(){function h(k,j,l){return j<k?k:(j>l?l:j)}c.r=h(0,parseInt(c.r),255);c.g=h(0,parseInt(c.g),255);c.b=h(0,parseInt(c.b),255);c.a=h(0,c.a,1);return c};c.clone=function(){return b.color.make(c.r,c.b,c.g,c.a)};return c.normalize()};b.color.extract=function(d,e){var c;do{c=d.css(e).toLowerCase();if(c!=""&&c!="transparent"){break}d=d.parent()}while(!b.nodeName(d.get(0),"body"));if(c=="rgba(0, 0, 0, 0)"){c="transparent"}return b.color.parse(c)};b.color.parse=function(c){var d,f=b.color.make;if(d=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10))}if(d=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10),parseFloat(d[4]))}if(d=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55)}if(d=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55,parseFloat(d[4]))}if(d=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)){return f(parseInt(d[1],16),parseInt(d[2],16),parseInt(d[3],16))}if(d=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)){return f(parseInt(d[1]+d[1],16),parseInt(d[2]+d[2],16),parseInt(d[3]+d[3],16))}var e=b.trim(c).toLowerCase();if(e=="transparent"){return f(255,255,255,0)}else{d=a[e]||[0,0,0];return f(d[0],d[1],d[2])}};var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);(function(c){function b(av,ai,J,af){var Q=[],O={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{show:null,position:"bottom",mode:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null,twelveHourClock:false},yaxis:{autoscaleMargin:0.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left",horizontal:false},shadowSize:3},grid:{show:true,aboveData:false,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},hooks:{}},az=null,ad=null,y=null,H=null,A=null,p=[],aw=[],q={left:0,right:0,top:0,bottom:0},G=0,I=0,h=0,w=0,ak={processOptions:[],processRawData:[],processDatapoints:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},aq=this;aq.setData=aj;aq.setupGrid=t;aq.draw=W;aq.getPlaceholder=function(){return av};aq.getCanvas=function(){return az};aq.getPlotOffset=function(){return q};aq.width=function(){return h};aq.height=function(){return w};aq.offset=function(){var aB=y.offset();aB.left+=q.left;aB.top+=q.top;return aB};aq.getData=function(){return Q};aq.getAxes=function(){var aC={},aB;c.each(p.concat(aw),function(aD,aE){if(aE){aC[aE.direction+(aE.n!=1?aE.n:"")+"axis"]=aE}});return aC};aq.getXAxes=function(){return p};aq.getYAxes=function(){return aw};aq.c2p=C;aq.p2c=ar;aq.getOptions=function(){return O};aq.highlight=x;aq.unhighlight=T;aq.triggerRedrawOverlay=f;aq.pointOffset=function(aB){return{left:parseInt(p[aA(aB,"x")-1].p2c(+aB.x)+q.left),top:parseInt(aw[aA(aB,"y")-1].p2c(+aB.y)+q.top)}};aq.shutdown=ag;aq.resize=function(){B();g(az);g(ad)};aq.hooks=ak;F(aq);Z(J);X();aj(ai);t();W();ah();function an(aD,aB){aB=[aq].concat(aB);for(var aC=0;aC<aD.length;++aC){aD[aC].apply(this,aB)}}function F(){for(var aB=0;aB<af.length;++aB){var aC=af[aB];aC.init(aq);if(aC.options){c.extend(true,O,aC.options)}}}function Z(aC){var aB;c.extend(true,O,aC);if(O.xaxis.color==null){O.xaxis.color=O.grid.color}if(O.yaxis.color==null){O.yaxis.color=O.grid.color}if(O.xaxis.tickColor==null){O.xaxis.tickColor=O.grid.tickColor}if(O.yaxis.tickColor==null){O.yaxis.tickColor=O.grid.tickColor}if(O.grid.borderColor==null){O.grid.borderColor=O.grid.color}if(O.grid.tickColor==null){O.grid.tickColor=c.color.parse(O.grid.color).scale("a",0.22).toString()}for(aB=0;aB<Math.max(1,O.xaxes.length);++aB){O.xaxes[aB]=c.extend(true,{},O.xaxis,O.xaxes[aB])}for(aB=0;aB<Math.max(1,O.yaxes.length);++aB){O.yaxes[aB]=c.extend(true,{},O.yaxis,O.yaxes[aB])}if(O.xaxis.noTicks&&O.xaxis.ticks==null){O.xaxis.ticks=O.xaxis.noTicks}if(O.yaxis.noTicks&&O.yaxis.ticks==null){O.yaxis.ticks=O.yaxis.noTicks}if(O.x2axis){O.xaxes[1]=c.extend(true,{},O.xaxis,O.x2axis);O.xaxes[1].position="top"}if(O.y2axis){O.yaxes[1]=c.extend(true,{},O.yaxis,O.y2axis);O.yaxes[1].position="right"}if(O.grid.coloredAreas){O.grid.markings=O.grid.coloredAreas}if(O.grid.coloredAreasColor){O.grid.markingsColor=O.grid.coloredAreasColor}if(O.lines){c.extend(true,O.series.lines,O.lines)}if(O.points){c.extend(true,O.series.points,O.points)}if(O.bars){c.extend(true,O.series.bars,O.bars)}if(O.shadowSize!=null){O.series.shadowSize=O.shadowSize}for(aB=0;aB<O.xaxes.length;++aB){V(p,aB+1).options=O.xaxes[aB]}for(aB=0;aB<O.yaxes.length;++aB){V(aw,aB+1).options=O.yaxes[aB]}for(var aD in ak){if(O.hooks[aD]&&O.hooks[aD].length){ak[aD]=ak[aD].concat(O.hooks[aD])}}an(ak.processOptions,[O])}function aj(aB){Q=Y(aB);ax();z()}function Y(aE){var aC=[];for(var aB=0;aB<aE.length;++aB){var aD=c.extend(true,{},O.series);if(aE[aB].data!=null){aD.data=aE[aB].data;delete aE[aB].data;c.extend(true,aD,aE[aB]);aE[aB].data=aD.data}else{aD.data=aE[aB]}aC.push(aD)}return aC}function aA(aC,aD){var aB=aC[aD+"axis"];if(typeof aB=="object"){aB=aB.n}if(typeof aB!="number"){aB=1}return aB}function m(){return c.grep(p.concat(aw),function(aB){return aB})}function C(aE){var aC={},aB,aD;for(aB=0;aB<p.length;++aB){aD=p[aB];if(aD&&aD.used){aC["x"+aD.n]=aD.c2p(aE.left)}}for(aB=0;aB<aw.length;++aB){aD=aw[aB];if(aD&&aD.used){aC["y"+aD.n]=aD.c2p(aE.top)}}if(aC.x1!==undefined){aC.x=aC.x1}if(aC.y1!==undefined){aC.y=aC.y1}return aC}function ar(aF){var aD={},aC,aE,aB;for(aC=0;aC<p.length;++aC){aE=p[aC];if(aE&&aE.used){aB="x"+aE.n;if(aF[aB]==null&&aE.n==1){aB="x"}if(aF[aB]!=null){aD.left=aE.p2c(aF[aB]);break}}}for(aC=0;aC<aw.length;++aC){aE=aw[aC];if(aE&&aE.used){aB="y"+aE.n;if(aF[aB]==null&&aE.n==1){aB="y"}if(aF[aB]!=null){aD.top=aE.p2c(aF[aB]);break}}}return aD}function V(aC,aB){if(!aC[aB-1]){aC[aB-1]={n:aB,direction:aC==p?"x":"y",options:c.extend(true,{},aC==p?O.xaxis:O.yaxis)}}return aC[aB-1]}function ax(){var aG;var aM=Q.length,aB=[],aE=[];for(aG=0;aG<Q.length;++aG){var aJ=Q[aG].color;if(aJ!=null){--aM;if(typeof aJ=="number"){aE.push(aJ)}else{aB.push(c.color.parse(Q[aG].color))}}}for(aG=0;aG<aE.length;++aG){aM=Math.max(aM,aE[aG]+1)}var aC=[],aF=0;aG=0;while(aC.length<aM){var aI;if(O.colors.length==aG){aI=c.color.make(100,100,100)}else{aI=c.color.parse(O.colors[aG])}var aD=aF%2==1?-1:1;aI.scale("rgb",1+aD*Math.ceil(aF/2)*0.2);aC.push(aI);++aG;if(aG>=O.colors.length){aG=0;++aF}}var aH=0,aN;for(aG=0;aG<Q.length;++aG){aN=Q[aG];if(aN.color==null){aN.color=aC[aH].toString();++aH}else{if(typeof aN.color=="number"){aN.color=aC[aN.color].toString()}}if(aN.lines.show==null){var aL,aK=true;for(aL in aN){if(aN[aL]&&aN[aL].show){aK=false;break}}if(aK){aN.lines.show=true}}aN.xaxis=V(p,aA(aN,"x"));aN.yaxis=V(aw,aA(aN,"y"))}}function z(){var aO=Number.POSITIVE_INFINITY,aI=Number.NEGATIVE_INFINITY,aB=Number.MAX_VALUE,aU,aS,aR,aN,aD,aJ,aT,aP,aH,aG,aC,a0,aX,aL;function aF(a3,a2,a1){if(a2<a3.datamin&&a2!=-aB){a3.datamin=a2}if(a1>a3.datamax&&a1!=aB){a3.datamax=a1}}c.each(m(),function(a1,a2){a2.datamin=aO;a2.datamax=aI;a2.used=false});for(aU=0;aU<Q.length;++aU){aJ=Q[aU];aJ.datapoints={points:[]};an(ak.processRawData,[aJ,aJ.data,aJ.datapoints])}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];var aZ=aJ.data,aW=aJ.datapoints.format;if(!aW){aW=[];aW.push({x:true,number:true,required:true});aW.push({y:true,number:true,required:true});if(aJ.bars.show||(aJ.lines.show&&aJ.lines.fill)){aW.push({y:true,number:true,required:false,defaultValue:0});if(aJ.bars.horizontal){delete aW[aW.length-1].y;aW[aW.length-1].x=true}}aJ.datapoints.format=aW}if(aJ.datapoints.pointsize!=null){continue}aJ.datapoints.pointsize=aW.length;aP=aJ.datapoints.pointsize;aT=aJ.datapoints.points;insertSteps=aJ.lines.show&&aJ.lines.steps;aJ.xaxis.used=aJ.yaxis.used=true;for(aS=aR=0;aS<aZ.length;++aS,aR+=aP){aL=aZ[aS];var aE=aL==null;if(!aE){for(aN=0;aN<aP;++aN){a0=aL[aN];aX=aW[aN];if(aX){if(aX.number&&a0!=null){a0=+a0;if(isNaN(a0)){a0=null}else{if(a0==Infinity){a0=aB}else{if(a0==-Infinity){a0=-aB}}}}if(a0==null){if(aX.required){aE=true}if(aX.defaultValue!=null){a0=aX.defaultValue}}}aT[aR+aN]=a0}}if(aE){for(aN=0;aN<aP;++aN){a0=aT[aR+aN];if(a0!=null){aX=aW[aN];if(aX.x){aF(aJ.xaxis,a0,a0)}if(aX.y){aF(aJ.yaxis,a0,a0)}}aT[aR+aN]=null}}else{if(insertSteps&&aR>0&&aT[aR-aP]!=null&&aT[aR-aP]!=aT[aR]&&aT[aR-aP+1]!=aT[aR+1]){for(aN=0;aN<aP;++aN){aT[aR+aP+aN]=aT[aR+aN]}aT[aR+1]=aT[aR-aP+1];aR+=aP}}}}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];an(ak.processDatapoints,[aJ,aJ.datapoints])}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];aT=aJ.datapoints.points,aP=aJ.datapoints.pointsize;var aK=aO,aQ=aO,aM=aI,aV=aI;for(aS=0;aS<aT.length;aS+=aP){if(aT[aS]==null){continue}for(aN=0;aN<aP;++aN){a0=aT[aS+aN];aX=aW[aN];if(!aX||a0==aB||a0==-aB){continue}if(aX.x){if(a0<aK){aK=a0}if(a0>aM){aM=a0}}if(aX.y){if(a0<aQ){aQ=a0}if(a0>aV){aV=a0}}}}if(aJ.bars.show){var aY=aJ.bars.align=="left"?0:-aJ.bars.barWidth/2;if(aJ.bars.horizontal){aQ+=aY;aV+=aY+aJ.bars.barWidth}else{aK+=aY;aM+=aY+aJ.bars.barWidth}}aF(aJ.xaxis,aK,aM);aF(aJ.yaxis,aQ,aV)}c.each(m(),function(a1,a2){if(a2.datamin==aO){a2.datamin=null}if(a2.datamax==aI){a2.datamax=null}})}function j(aB,aC){var aD=document.createElement("canvas");aD.className=aC;aD.width=G;aD.height=I;if(!aB){c(aD).css({position:"absolute",left:0,top:0})}c(aD).appendTo(av);if(!aD.getContext){aD=window.G_vmlCanvasManager.initElement(aD)}aD.getContext("2d").save();return aD}function B(){G=av.width();I=av.height();if(G<=0||I<=0){throw"Invalid dimensions for plot, width = "+G+", height = "+I}}function g(aC){if(aC.width!=G){aC.width=G}if(aC.height!=I){aC.height=I}var aB=aC.getContext("2d");aB.restore();aB.save()}function X(){var aC,aB=av.children("canvas.base"),aD=av.children("canvas.overlay");if(aB.length==0||aD==0){av.html("");av.css({padding:0});if(av.css("position")=="static"){av.css("position","relative")}B();az=j(true,"base");ad=j(false,"overlay");aC=false}else{az=aB.get(0);ad=aD.get(0);aC=true}H=az.getContext("2d");A=ad.getContext("2d");y=c([ad,az]);if(aC){av.data("plot").shutdown();aq.resize();A.clearRect(0,0,G,I);y.unbind();av.children().not([az,ad]).remove()}av.data("plot",aq)}function ah(){if(O.grid.hoverable){y.mousemove(aa);y.mouseleave(l)}if(O.grid.clickable){y.click(R)}an(ak.bindEvents,[y])}function ag(){if(M){clearTimeout(M)}y.unbind("mousemove",aa);y.unbind("mouseleave",l);y.unbind("click",R);an(ak.shutdown,[y])}function r(aG){function aC(aH){return aH}var aF,aB,aD=aG.options.transform||aC,aE=aG.options.inverseTransform;if(aG.direction=="x"){aF=aG.scale=h/Math.abs(aD(aG.max)-aD(aG.min));aB=Math.min(aD(aG.max),aD(aG.min))}else{aF=aG.scale=w/Math.abs(aD(aG.max)-aD(aG.min));aF=-aF;aB=Math.max(aD(aG.max),aD(aG.min))}if(aD==aC){aG.p2c=function(aH){return(aH-aB)*aF}}else{aG.p2c=function(aH){return(aD(aH)-aB)*aF}}if(!aE){aG.c2p=function(aH){return aB+aH/aF}}else{aG.c2p=function(aH){return aE(aB+aH/aF)}}}function L(aD){var aB=aD.options,aF,aJ=aD.ticks||[],aI=[],aE,aK=aB.labelWidth,aG=aB.labelHeight,aC;function aH(aM,aL){return c('<div style="position:absolute;top:-10000px;'+aL+'font-size:smaller"><div class="'+aD.direction+"Axis "+aD.direction+aD.n+'Axis">'+aM.join("")+"</div></div>").appendTo(av)}if(aD.direction=="x"){if(aK==null){aK=Math.floor(G/(aJ.length>0?aJ.length:1))}if(aG==null){aI=[];for(aF=0;aF<aJ.length;++aF){aE=aJ[aF].label;if(aE){aI.push('<div class="tickLabel" style="float:left;width:'+aK+'px">'+aE+"</div>")}}if(aI.length>0){aI.push('<div style="clear:left"></div>');aC=aH(aI,"width:10000px;");aG=aC.height();aC.remove()}}}else{if(aK==null||aG==null){for(aF=0;aF<aJ.length;++aF){aE=aJ[aF].label;if(aE){aI.push('<div class="tickLabel">'+aE+"</div>")}}if(aI.length>0){aC=aH(aI,"");if(aK==null){aK=aC.children().width()}if(aG==null){aG=aC.find("div.tickLabel").height()}aC.remove()}}}if(aK==null){aK=0}if(aG==null){aG=0}aD.labelWidth=aK;aD.labelHeight=aG}function au(aD){var aC=aD.labelWidth,aL=aD.labelHeight,aH=aD.options.position,aF=aD.options.tickLength,aG=O.grid.axisMargin,aJ=O.grid.labelMargin,aK=aD.direction=="x"?p:aw,aE;var aB=c.grep(aK,function(aN){return aN&&aN.options.position==aH&&aN.reserveSpace});if(c.inArray(aD,aB)==aB.length-1){aG=0}if(aF==null){aF="full"}var aI=c.grep(aK,function(aN){return aN&&aN.reserveSpace});var aM=c.inArray(aD,aI)==0;if(!aM&&aF=="full"){aF=5}if(!isNaN(+aF)){aJ+=+aF}if(aD.direction=="x"){aL+=aJ;if(aH=="bottom"){q.bottom+=aL+aG;aD.box={top:I-q.bottom,height:aL}}else{aD.box={top:q.top+aG,height:aL};q.top+=aL+aG}}else{aC+=aJ;if(aH=="left"){aD.box={left:q.left+aG,width:aC};q.left+=aC+aG}else{q.right+=aC+aG;aD.box={left:G-q.right,width:aC}}}aD.position=aH;aD.tickLength=aF;aD.box.padding=aJ;aD.innermost=aM}function U(aB){if(aB.direction=="x"){aB.box.left=q.left;aB.box.width=h}else{aB.box.top=q.top;aB.box.height=w}}function t(){var aC,aE=m();c.each(aE,function(aF,aG){aG.show=aG.options.show;if(aG.show==null){aG.show=aG.used}aG.reserveSpace=aG.show||aG.options.reserveSpace;n(aG)});allocatedAxes=c.grep(aE,function(aF){return aF.reserveSpace});q.left=q.right=q.top=q.bottom=0;if(O.grid.show){c.each(allocatedAxes,function(aF,aG){S(aG);P(aG);ap(aG,aG.ticks);L(aG)});for(aC=allocatedAxes.length-1;aC>=0;--aC){au(allocatedAxes[aC])}var aD=O.grid.minBorderMargin;if(aD==null){aD=0;for(aC=0;aC<Q.length;++aC){aD=Math.max(aD,Q[aC].points.radius+Q[aC].points.lineWidth/2)}}for(var aB in q){q[aB]+=O.grid.borderWidth;q[aB]=Math.max(aD,q[aB])}}h=G-q.left-q.right;w=I-q.bottom-q.top;c.each(aE,function(aF,aG){r(aG)});if(O.grid.show){c.each(allocatedAxes,function(aF,aG){U(aG)});k()}o()}function n(aE){var aF=aE.options,aD=+(aF.min!=null?aF.min:aE.datamin),aB=+(aF.max!=null?aF.max:aE.datamax),aH=aB-aD;if(aH==0){var aC=aB==0?1:0.01;if(aF.min==null){aD-=aC}if(aF.max==null||aF.min!=null){aB+=aC}}else{var aG=aF.autoscaleMargin;if(aG!=null){if(aF.min==null){aD-=aH*aG;if(aD<0&&aE.datamin!=null&&aE.datamin>=0){aD=0}}if(aF.max==null){aB+=aH*aG;if(aB>0&&aE.datamax!=null&&aE.datamax<=0){aB=0}}}}aE.min=aD;aE.max=aB}function S(aG){var aM=aG.options;var aH;if(typeof aM.ticks=="number"&&aM.ticks>0){aH=aM.ticks}else{aH=0.3*Math.sqrt(aG.direction=="x"?G:I)}var aT=(aG.max-aG.min)/aH,aO,aB,aN,aR,aS,aQ,aI;if(aM.mode=="time"){var aJ={second:1000,minute:60*1000,hour:60*60*1000,day:24*60*60*1000,month:30*24*60*60*1000,year:365.2425*24*60*60*1000};var aK=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[0.25,"month"],[0.5,"month"],[1,"month"],[2,"month"],[3,"month"],[6,"month"],[1,"year"]];var aC=0;if(aM.minTickSize!=null){if(typeof aM.tickSize=="number"){aC=aM.tickSize}else{aC=aM.minTickSize[0]*aJ[aM.minTickSize[1]]}}for(var aS=0;aS<aK.length-1;++aS){if(aT<(aK[aS][0]*aJ[aK[aS][1]]+aK[aS+1][0]*aJ[aK[aS+1][1]])/2&&aK[aS][0]*aJ[aK[aS][1]]>=aC){break}}aO=aK[aS][0];aN=aK[aS][1];if(aN=="year"){aQ=Math.pow(10,Math.floor(Math.log(aT/aJ.year)/Math.LN10));aI=(aT/aJ.year)/aQ;if(aI<1.5){aO=1}else{if(aI<3){aO=2}else{if(aI<7.5){aO=5}else{aO=10}}}aO*=aQ}aG.tickSize=aM.tickSize||[aO,aN];aB=function(aX){var a2=[],a0=aX.tickSize[0],a3=aX.tickSize[1],a1=new Date(aX.min);var aW=a0*aJ[a3];if(a3=="second"){a1.setUTCSeconds(a(a1.getUTCSeconds(),a0))}if(a3=="minute"){a1.setUTCMinutes(a(a1.getUTCMinutes(),a0))}if(a3=="hour"){a1.setUTCHours(a(a1.getUTCHours(),a0))}if(a3=="month"){a1.setUTCMonth(a(a1.getUTCMonth(),a0))}if(a3=="year"){a1.setUTCFullYear(a(a1.getUTCFullYear(),a0))}a1.setUTCMilliseconds(0);if(aW>=aJ.minute){a1.setUTCSeconds(0)}if(aW>=aJ.hour){a1.setUTCMinutes(0)}if(aW>=aJ.day){a1.setUTCHours(0)}if(aW>=aJ.day*4){a1.setUTCDate(1)}if(aW>=aJ.year){a1.setUTCMonth(0)}var a5=0,a4=Number.NaN,aY;do{aY=a4;a4=a1.getTime();a2.push(a4);if(a3=="month"){if(a0<1){a1.setUTCDate(1);var aV=a1.getTime();a1.setUTCMonth(a1.getUTCMonth()+1);var aZ=a1.getTime();a1.setTime(a4+a5*aJ.hour+(aZ-aV)*a0);a5=a1.getUTCHours();a1.setUTCHours(0)}else{a1.setUTCMonth(a1.getUTCMonth()+a0)}}else{if(a3=="year"){a1.setUTCFullYear(a1.getUTCFullYear()+a0)}else{a1.setTime(a4+aW)}}}while(a4<aX.max&&a4!=aY);return a2};aR=function(aV,aY){var a0=new Date(aV);if(aM.timeformat!=null){return c.plot.formatDate(a0,aM.timeformat,aM.monthNames)}var aW=aY.tickSize[0]*aJ[aY.tickSize[1]];var aX=aY.max-aY.min;var aZ=(aM.twelveHourClock)?" %p":"";if(aW<aJ.minute){fmt="%h:%M:%S"+aZ}else{if(aW<aJ.day){if(aX<2*aJ.day){fmt="%h:%M"+aZ}else{fmt="%b %d %h:%M"+aZ}}else{if(aW<aJ.month){fmt="%b %d"}else{if(aW<aJ.year){if(aX<aJ.year){fmt="%b"}else{fmt="%b %y"}}else{fmt="%y"}}}}return c.plot.formatDate(a0,fmt,aM.monthNames)}}else{var aU=aM.tickDecimals;var aP=-Math.floor(Math.log(aT)/Math.LN10);if(aU!=null&&aP>aU){aP=aU}aQ=Math.pow(10,-aP);aI=aT/aQ;if(aI<1.5){aO=1}else{if(aI<3){aO=2;if(aI>2.25&&(aU==null||aP+1<=aU)){aO=2.5;++aP}}else{if(aI<7.5){aO=5}else{aO=10}}}aO*=aQ;if(aM.minTickSize!=null&&aO<aM.minTickSize){aO=aM.minTickSize}aG.tickDecimals=Math.max(0,aU!=null?aU:aP);aG.tickSize=aM.tickSize||aO;aB=function(aX){var aZ=[];var a0=a(aX.min,aX.tickSize),aW=0,aV=Number.NaN,aY;do{aY=aV;aV=a0+aW*aX.tickSize;aZ.push(aV);++aW}while(aV<aX.max&&aV!=aY);return aZ};aR=function(aV,aW){return aV.toFixed(aW.tickDecimals)}}if(aM.alignTicksWithAxis!=null){var aF=(aG.direction=="x"?p:aw)[aM.alignTicksWithAxis-1];if(aF&&aF.used&&aF!=aG){var aL=aB(aG);if(aL.length>0){if(aM.min==null){aG.min=Math.min(aG.min,aL[0])}if(aM.max==null&&aL.length>1){aG.max=Math.max(aG.max,aL[aL.length-1])}}aB=function(aX){var aY=[],aV,aW;for(aW=0;aW<aF.ticks.length;++aW){aV=(aF.ticks[aW].v-aF.min)/(aF.max-aF.min);aV=aX.min+aV*(aX.max-aX.min);aY.push(aV)}return aY};if(aG.mode!="time"&&aM.tickDecimals==null){var aE=Math.max(0,-Math.floor(Math.log(aT)/Math.LN10)+1),aD=aB(aG);if(!(aD.length>1&&/\..*0#x2F;.test((aD[1]-aD[0]).toFixed(aE)))){aG.tickDecimals=aE}}}}aG.tickGenerator=aB;if(c.isFunction(aM.tickFormatter)){aG.tickFormatter=function(aV,aW){return""+aM.tickFormatter(aV,aW)}}else{aG.tickFormatter=aR}}function P(aF){var aH=aF.options.ticks,aG=[];if(aH==null||(typeof aH=="number"&&aH>0)){aG=aF.tickGenerator(aF)}else{if(aH){if(c.isFunction(aH)){aG=aH({min:aF.min,max:aF.max})}else{aG=aH}}}var aE,aB;aF.ticks=[];for(aE=0;aE<aG.length;++aE){var aC=null;var aD=aG[aE];if(typeof aD=="object"){aB=+aD[0];if(aD.length>1){aC=aD[1]}}else{aB=+aD}if(aC==null){aC=aF.tickFormatter(aB,aF)}if(!isNaN(aB)){aF.ticks.push({v:aB,label:aC})}}}function ap(aB,aC){if(aB.options.autoscaleMargin&&aC.length>0){if(aB.options.min==null){aB.min=Math.min(aB.min,aC[0].v)}if(aB.options.max==null&&aC.length>1){aB.max=Math.max(aB.max,aC[aC.length-1].v)}}}function W(){H.clearRect(0,0,G,I);var aC=O.grid;if(aC.show&&aC.backgroundColor){N()}if(aC.show&&!aC.aboveData){ac()}for(var aB=0;aB<Q.length;++aB){an(ak.drawSeries,[H,Q[aB]]);d(Q[aB])}an(ak.draw,[H]);if(aC.show&&aC.aboveData){ac()}}function D(aB,aI){var aE,aH,aG,aD,aF=m();for(i=0;i<aF.length;++i){aE=aF[i];if(aE.direction==aI){aD=aI+aE.n+"axis";if(!aB[aD]&&aE.n==1){aD=aI+"axis"}if(aB[aD]){aH=aB[aD].from;aG=aB[aD].to;break}}}if(!aB[aD]){aE=aI=="x"?p[0]:aw[0];aH=aB[aI+"1"];aG=aB[aI+"2"]}if(aH!=null&&aG!=null&&aH>aG){var aC=aH;aH=aG;aG=aC}return{from:aH,to:aG,axis:aE}}function N(){H.save();H.translate(q.left,q.top);H.fillStyle=am(O.grid.backgroundColor,w,0,"rgba(255, 255, 255, 0)");H.fillRect(0,0,h,w);H.restore()}function ac(){var aF;H.save();H.translate(q.left,q.top);var aH=O.grid.markings;if(aH){if(c.isFunction(aH)){var aK=aq.getAxes();aK.xmin=aK.xaxis.min;aK.xmax=aK.xaxis.max;aK.ymin=aK.yaxis.min;aK.ymax=aK.yaxis.max;aH=aH(aK)}for(aF=0;aF<aH.length;++aF){var aD=aH[aF],aC=D(aD,"x"),aI=D(aD,"y");if(aC.from==null){aC.from=aC.axis.min}if(aC.to==null){aC.to=aC.axis.max}if(aI.from==null){aI.from=aI.axis.min}if(aI.to==null){aI.to=aI.axis.max}if(aC.to<aC.axis.min||aC.from>aC.axis.max||aI.to<aI.axis.min||aI.from>aI.axis.max){continue}aC.from=Math.max(aC.from,aC.axis.min);aC.to=Math.min(aC.to,aC.axis.max);aI.from=Math.max(aI.from,aI.axis.min);aI.to=Math.min(aI.to,aI.axis.max);if(aC.from==aC.to&&aI.from==aI.to){continue}aC.from=aC.axis.p2c(aC.from);aC.to=aC.axis.p2c(aC.to);aI.from=aI.axis.p2c(aI.from);aI.to=aI.axis.p2c(aI.to);if(aC.from==aC.to||aI.from==aI.to){H.beginPath();H.strokeStyle=aD.color||O.grid.markingsColor;H.lineWidth=aD.lineWidth||O.grid.markingsLineWidth;H.moveTo(aC.from,aI.from);H.lineTo(aC.to,aI.to);H.stroke()}else{H.fillStyle=aD.color||O.grid.markingsColor;H.fillRect(aC.from,aI.to,aC.to-aC.from,aI.from-aI.to)}}}var aK=m(),aM=O.grid.borderWidth;for(var aE=0;aE<aK.length;++aE){var aB=aK[aE],aG=aB.box,aQ=aB.tickLength,aN,aL,aP,aJ;if(!aB.show||aB.ticks.length==0){continue}H.strokeStyle=aB.options.tickColor||c.color.parse(aB.options.color).scale("a",0.22).toString();H.lineWidth=1;if(aB.direction=="x"){aN=0;if(aQ=="full"){aL=(aB.position=="top"?0:w)}else{aL=aG.top-q.top+(aB.position=="top"?aG.height:0)}}else{aL=0;if(aQ=="full"){aN=(aB.position=="left"?0:h)}else{aN=aG.left-q.left+(aB.position=="left"?aG.width:0)}}if(!aB.innermost){H.beginPath();aP=aJ=0;if(aB.direction=="x"){aP=h}else{aJ=w}if(H.lineWidth==1){aN=Math.floor(aN)+0.5;aL=Math.floor(aL)+0.5}H.moveTo(aN,aL);H.lineTo(aN+aP,aL+aJ);H.stroke()}H.beginPath();for(aF=0;aF<aB.ticks.length;++aF){var aO=aB.ticks[aF].v;aP=aJ=0;if(aO<aB.min||aO>aB.max||(aQ=="full"&&aM>0&&(aO==aB.min||aO==aB.max))){continue}if(aB.direction=="x"){aN=aB.p2c(aO);aJ=aQ=="full"?-w:aQ;if(aB.position=="top"){aJ=-aJ}}else{aL=aB.p2c(aO);aP=aQ=="full"?-h:aQ;if(aB.position=="left"){aP=-aP}}if(H.lineWidth==1){if(aB.direction=="x"){aN=Math.floor(aN)+0.5}else{aL=Math.floor(aL)+0.5}}H.moveTo(aN,aL);H.lineTo(aN+aP,aL+aJ)}H.stroke()}if(aM){H.lineWidth=aM;H.strokeStyle=O.grid.borderColor;H.strokeRect(-aM/2,-aM/2,h+aM,w+aM)}H.restore()}function k(){av.find(".tickLabels").remove();var aG=['<div class="tickLabels" style="font-size:smaller">'];var aJ=m();for(var aD=0;aD<aJ.length;++aD){var aC=aJ[aD],aF=aC.box;if(!aC.show){continue}aG.push('<div class="'+aC.direction+"Axis "+aC.direction+aC.n+'Axis" style="color:'+aC.options.color+'">');for(var aE=0;aE<aC.ticks.length;++aE){var aH=aC.ticks[aE];if(!aH.label||aH.v<aC.min||aH.v>aC.max){continue}var aK={},aI;if(aC.direction=="x"){aI="center";aK.left=Math.round(q.left+aC.p2c(aH.v)-aC.labelWidth/2);if(aC.position=="bottom"){aK.top=aF.top+aF.padding}else{aK.bottom=I-(aF.top+aF.height-aF.padding)}}else{aK.top=Math.round(q.top+aC.p2c(aH.v)-aC.labelHeight/2);if(aC.position=="left"){aK.right=G-(aF.left+aF.width-aF.padding);aI="right"}else{aK.left=aF.left+aF.padding;aI="left"}}aK.width=aC.labelWidth;var aB=["position:absolute","text-align:"+aI];for(var aL in aK){aB.push(aL+":"+aK[aL]+"px")}aG.push('<div class="tickLabel" style="'+aB.join(";")+'">'+aH.label+"</div>")}aG.push("</div>")}aG.push("</div>");av.append(aG.join(""))}function d(aB){if(aB.lines.show){at(aB)}if(aB.bars.show){e(aB)}if(aB.points.show){ao(aB)}}function at(aE){function aD(aP,aQ,aI,aU,aT){var aV=aP.points,aJ=aP.pointsize,aN=null,aM=null;H.beginPath();for(var aO=aJ;aO<aV.length;aO+=aJ){var aL=aV[aO-aJ],aS=aV[aO-aJ+1],aK=aV[aO],aR=aV[aO+1];if(aL==null||aK==null){continue}if(aS<=aR&&aS<aT.min){if(aR<aT.min){continue}aL=(aT.min-aS)/(aR-aS)*(aK-aL)+aL;aS=aT.min}else{if(aR<=aS&&aR<aT.min){if(aS<aT.min){continue}aK=(aT.min-aS)/(aR-aS)*(aK-aL)+aL;aR=aT.min}}if(aS>=aR&&aS>aT.max){if(aR>aT.max){continue}aL=(aT.max-aS)/(aR-aS)*(aK-aL)+aL;aS=aT.max}else{if(aR>=aS&&aR>aT.max){if(aS>aT.max){continue}aK=(aT.max-aS)/(aR-aS)*(aK-aL)+aL;aR=aT.max}}if(aL<=aK&&aL<aU.min){if(aK<aU.min){continue}aS=(aU.min-aL)/(aK-aL)*(aR-aS)+aS;aL=aU.min}else{if(aK<=aL&&aK<aU.min){if(aL<aU.min){continue}aR=(aU.min-aL)/(aK-aL)*(aR-aS)+aS;aK=aU.min}}if(aL>=aK&&aL>aU.max){if(aK>aU.max){continue}aS=(aU.max-aL)/(aK-aL)*(aR-aS)+aS;aL=aU.max}else{if(aK>=aL&&aK>aU.max){if(aL>aU.max){continue}aR=(aU.max-aL)/(aK-aL)*(aR-aS)+aS;aK=aU.max}}if(aL!=aN||aS!=aM){H.moveTo(aU.p2c(aL)+aQ,aT.p2c(aS)+aI)}aN=aK;aM=aR;H.lineTo(aU.p2c(aK)+aQ,aT.p2c(aR)+aI)}H.stroke()}function aF(aI,aQ,aP){var aW=aI.points,aV=aI.pointsize,aN=Math.min(Math.max(0,aP.min),aP.max),aX=0,aU,aT=false,aM=1,aL=0,aR=0;while(true){if(aV>0&&aX>aW.length+aV){break}aX+=aV;var aZ=aW[aX-aV],aK=aW[aX-aV+aM],aY=aW[aX],aJ=aW[aX+aM];if(aT){if(aV>0&&aZ!=null&&aY==null){aR=aX;aV=-aV;aM=2;continue}if(aV<0&&aX==aL+aV){H.fill();aT=false;aV=-aV;aM=1;aX=aL=aR+aV;continue}}if(aZ==null||aY==null){continue}if(aZ<=aY&&aZ<aQ.min){if(aY<aQ.min){continue}aK=(aQ.min-aZ)/(aY-aZ)*(aJ-aK)+aK;aZ=aQ.min}else{if(aY<=aZ&&aY<aQ.min){if(aZ<aQ.min){continue}aJ=(aQ.min-aZ)/(aY-aZ)*(aJ-aK)+aK;aY=aQ.min}}if(aZ>=aY&&aZ>aQ.max){if(aY>aQ.max){continue}aK=(aQ.max-aZ)/(aY-aZ)*(aJ-aK)+aK;aZ=aQ.max}else{if(aY>=aZ&&aY>aQ.max){if(aZ>aQ.max){continue}aJ=(aQ.max-aZ)/(aY-aZ)*(aJ-aK)+aK;aY=aQ.max}}if(!aT){H.beginPath();H.moveTo(aQ.p2c(aZ),aP.p2c(aN));aT=true}if(aK>=aP.max&&aJ>=aP.max){H.lineTo(aQ.p2c(aZ),aP.p2c(aP.max));H.lineTo(aQ.p2c(aY),aP.p2c(aP.max));continue}else{if(aK<=aP.min&&aJ<=aP.min){H.lineTo(aQ.p2c(aZ),aP.p2c(aP.min));H.lineTo(aQ.p2c(aY),aP.p2c(aP.min));continue}}var aO=aZ,aS=aY;if(aK<=aJ&&aK<aP.min&&aJ>=aP.min){aZ=(aP.min-aK)/(aJ-aK)*(aY-aZ)+aZ;aK=aP.min}else{if(aJ<=aK&&aJ<aP.min&&aK>=aP.min){aY=(aP.min-aK)/(aJ-aK)*(aY-aZ)+aZ;aJ=aP.min}}if(aK>=aJ&&aK>aP.max&&aJ<=aP.max){aZ=(aP.max-aK)/(aJ-aK)*(aY-aZ)+aZ;aK=aP.max}else{if(aJ>=aK&&aJ>aP.max&&aK<=aP.max){aY=(aP.max-aK)/(aJ-aK)*(aY-aZ)+aZ;aJ=aP.max}}if(aZ!=aO){H.lineTo(aQ.p2c(aO),aP.p2c(aK))}H.lineTo(aQ.p2c(aZ),aP.p2c(aK));H.lineTo(aQ.p2c(aY),aP.p2c(aJ));if(aY!=aS){H.lineTo(aQ.p2c(aY),aP.p2c(aJ));H.lineTo(aQ.p2c(aS),aP.p2c(aJ))}}}H.save();H.translate(q.left,q.top);H.lineJoin="round";var aG=aE.lines.lineWidth,aB=aE.shadowSize;if(aG>0&&aB>0){H.lineWidth=aB;H.strokeStyle="rgba(0,0,0,0.1)";var aH=Math.PI/18;aD(aE.datapoints,Math.sin(aH)*(aG/2+aB/2),Math.cos(aH)*(aG/2+aB/2),aE.xaxis,aE.yaxis);H.lineWidth=aB/2;aD(aE.datapoints,Math.sin(aH)*(aG/2+aB/4),Math.cos(aH)*(aG/2+aB/4),aE.xaxis,aE.yaxis)}H.lineWidth=aG;H.strokeStyle=aE.color;var aC=ae(aE.lines,aE.color,0,w);if(aC){H.fillStyle=aC;aF(aE.datapoints,aE.xaxis,aE.yaxis)}if(aG>0){aD(aE.datapoints,0,0,aE.xaxis,aE.yaxis)}H.restore()}function ao(aE){function aH(aN,aM,aU,aK,aS,aT,aQ,aJ){var aR=aN.points,aI=aN.pointsize;for(var aL=0;aL<aR.length;aL+=aI){var aP=aR[aL],aO=aR[aL+1];if(aP==null||aP<aT.min||aP>aT.max||aO<aQ.min||aO>aQ.max){continue}H.beginPath();aP=aT.p2c(aP);aO=aQ.p2c(aO)+aK;if(aJ=="circle"){H.arc(aP,aO,aM,0,aS?Math.PI:Math.PI*2,false)}else{aJ(H,aP,aO,aM,aS)}H.closePath();if(aU){H.fillStyle=aU;H.fill()}H.stroke()}}H.save();H.translate(q.left,q.top);var aG=aE.points.lineWidth,aC=aE.shadowSize,aB=aE.points.radius,aF=aE.points.symbol;if(aG>0&&aC>0){var aD=aC/2;H.lineWidth=aD;H.strokeStyle="rgba(0,0,0,0.1)";aH(aE.datapoints,aB,null,aD+aD/2,true,aE.xaxis,aE.yaxis,aF);H.strokeStyle="rgba(0,0,0,0.2)";aH(aE.datapoints,aB,null,aD/2,true,aE.xaxis,aE.yaxis,aF)}H.lineWidth=aG;H.strokeStyle=aE.color;aH(aE.datapoints,aB,ae(aE.points,aE.color),0,false,aE.xaxis,aE.yaxis,aF);H.restore()}function E(aN,aM,aV,aI,aQ,aF,aD,aL,aK,aU,aR,aC){var aE,aT,aJ,aP,aG,aB,aO,aH,aS;if(aR){aH=aB=aO=true;aG=false;aE=aV;aT=aN;aP=aM+aI;aJ=aM+aQ;if(aT<aE){aS=aT;aT=aE;aE=aS;aG=true;aB=false}}else{aG=aB=aO=true;aH=false;aE=aN+aI;aT=aN+aQ;aJ=aV;aP=aM;if(aP<aJ){aS=aP;aP=aJ;aJ=aS;aH=true;aO=false}}if(aT<aL.min||aE>aL.max||aP<aK.min||aJ>aK.max){return}if(aE<aL.min){aE=aL.min;aG=false}if(aT>aL.max){aT=aL.max;aB=false}if(aJ<aK.min){aJ=aK.min;aH=false}if(aP>aK.max){aP=aK.max;aO=false}aE=aL.p2c(aE);aJ=aK.p2c(aJ);aT=aL.p2c(aT);aP=aK.p2c(aP);if(aD){aU.beginPath();aU.moveTo(aE,aJ);aU.lineTo(aE,aP);aU.lineTo(aT,aP);aU.lineTo(aT,aJ);aU.fillStyle=aD(aJ,aP);aU.fill()}if(aC>0&&(aG||aB||aO||aH)){aU.beginPath();aU.moveTo(aE,aJ+aF);if(aG){aU.lineTo(aE,aP+aF)}else{aU.moveTo(aE,aP+aF)}if(aO){aU.lineTo(aT,aP+aF)}else{aU.moveTo(aT,aP+aF)}if(aB){aU.lineTo(aT,aJ+aF)}else{aU.moveTo(aT,aJ+aF)}if(aH){aU.lineTo(aE,aJ+aF)}else{aU.moveTo(aE,aJ+aF)}aU.stroke()}}function e(aD){function aC(aJ,aI,aL,aG,aK,aN,aM){var aO=aJ.points,aF=aJ.pointsize;for(var aH=0;aH<aO.length;aH+=aF){if(aO[aH]==null){continue}E(aO[aH],aO[aH+1],aO[aH+2],aI,aL,aG,aK,aN,aM,H,aD.bars.horizontal,aD.bars.lineWidth)}}H.save();H.translate(q.left,q.top);H.lineWidth=aD.bars.lineWidth;H.strokeStyle=aD.color;var aB=aD.bars.align=="left"?0:-aD.bars.barWidth/2;var aE=aD.bars.fill?function(aF,aG){return ae(aD.bars,aD.color,aF,aG)}:null;aC(aD.datapoints,aB,aB+aD.bars.barWidth,0,aE,aD.xaxis,aD.yaxis);H.restore()}function ae(aD,aB,aC,aF){var aE=aD.fill;if(!aE){return null}if(aD.fillColor){return am(aD.fillColor,aC,aF,aB)}var aG=c.color.parse(aB);aG.a=typeof aE=="number"?aE:0.4;aG.normalize();return aG.toString()}function o(){av.find(".legend").remove();if(!O.legend.show){return}var aH=[],aF=false,aN=O.legend.labelFormatter,aM,aJ;for(var aE=0;aE<Q.length;++aE){aM=Q[aE];aJ=aM.label;if(!aJ){continue}if(aE%O.legend.noColumns==0){if(aF){aH.push("</tr>")}aH.push("<tr>");aF=true}if(aN){aJ=aN(aJ,aM)}aH.push('<td class="legendColorBox"><div style="border:1px solid '+O.legend.labelBoxBorderColor+';padding:1px"><div style="width:4px;height:0;border:5px solid '+aM.color+';overflow:hidden"></div></div></td><td class="legendLabel">'+aJ+"</td>")}if(aF){aH.push("</tr>")}if(aH.length==0){return}var aL='<table style="font-size:smaller;color:'+O.grid.color+'">'+aH.join("")+"</table>";if(O.legend.container!=null){c(O.legend.container).html(aL)}else{var aI="",aC=O.legend.position,aD=O.legend.margin;if(aD[0]==null){aD=[aD,aD]}if(aC.charAt(0)=="n"){aI+="top:"+(aD[1]+q.top)+"px;"}else{if(aC.charAt(0)=="s"){aI+="bottom:"+(aD[1]+q.bottom)+"px;"}}if(aC.charAt(1)=="e"){aI+="right:"+(aD[0]+q.right)+"px;"}else{if(aC.charAt(1)=="w"){aI+="left:"+(aD[0]+q.left)+"px;"}}var aK=c('<div class="legend">'+aL.replace('style="','style="position:absolute;'+aI+";")+"</div>").appendTo(av);if(O.legend.backgroundOpacity!=0){var aG=O.legend.backgroundColor;if(aG==null){aG=O.grid.backgroundColor;if(aG&&typeof aG=="string"){aG=c.color.parse(aG)}else{aG=c.color.extract(aK,"background-color")}aG.a=1;aG=aG.toString()}var aB=aK.children();c('<div style="position:absolute;width:'+aB.width()+"px;height:"+aB.height()+"px;"+aI+"background-color:"+aG+';"> </div>').prependTo(aK).css("opacity",O.legend.backgroundOpacity)}}}var ab=[],M=null;function K(aI,aG,aD){var aO=O.grid.mouseActiveRadius,a0=aO*aO+1,aY=null,aR=false,aW,aU;for(aW=Q.length-1;aW>=0;--aW){if(!aD(Q[aW])){continue}var aP=Q[aW],aH=aP.xaxis,aF=aP.yaxis,aV=aP.datapoints.points,aT=aP.datapoints.pointsize,aQ=aH.c2p(aI),aN=aF.c2p(aG),aC=aO/aH.scale,aB=aO/aF.scale;if(aH.options.inverseTransform){aC=Number.MAX_VALUE}if(aF.options.inverseTransform){aB=Number.MAX_VALUE}if(aP.lines.show||aP.points.show){for(aU=0;aU<aV.length;aU+=aT){var aK=aV[aU],aJ=aV[aU+1];if(aK==null){continue}if(aK-aQ>aC||aK-aQ<-aC||aJ-aN>aB||aJ-aN<-aB){continue}var aM=Math.abs(aH.p2c(aK)-aI),aL=Math.abs(aF.p2c(aJ)-aG),aS=aM*aM+aL*aL;if(aS<a0){a0=aS;aY=[aW,aU/aT]}}}if(aP.bars.show&&!aY){var aE=aP.bars.align=="left"?0:-aP.bars.barWidth/2,aX=aE+aP.bars.barWidth;for(aU=0;aU<aV.length;aU+=aT){var aK=aV[aU],aJ=aV[aU+1],aZ=aV[aU+2];if(aK==null){continue}if(Q[aW].bars.horizontal?(aQ<=Math.max(aZ,aK)&&aQ>=Math.min(aZ,aK)&&aN>=aJ+aE&&aN<=aJ+aX):(aQ>=aK+aE&&aQ<=aK+aX&&aN>=Math.min(aZ,aJ)&&aN<=Math.max(aZ,aJ))){aY=[aW,aU/aT]}}}}if(aY){aW=aY[0];aU=aY[1];aT=Q[aW].datapoints.pointsize;return{datapoint:Q[aW].datapoints.points.slice(aU*aT,(aU+1)*aT),dataIndex:aU,series:Q[aW],seriesIndex:aW}}return null}function aa(aB){if(O.grid.hoverable){u("plothover",aB,function(aC){return aC.hoverable!=false})}}function l(aB){if(O.grid.hoverable){u("plothover",aB,function(aC){return false})}}function R(aB){u("plotclick",aB,function(aC){return aC.clickable!=false})}function u(aC,aB,aD){var aE=y.offset(),aH=aB.pageX-aE.left-q.left,aF=aB.pageY-aE.top-q.top,aJ=C({left:aH,top:aF});aJ.pageX=aB.pageX;aJ.pageY=aB.pageY;var aK=K(aH,aF,aD);if(aK){aK.pageX=parseInt(aK.series.xaxis.p2c(aK.datapoint[0])+aE.left+q.left);aK.pageY=parseInt(aK.series.yaxis.p2c(aK.datapoint[1])+aE.top+q.top)}if(O.grid.autoHighlight){for(var aG=0;aG<ab.length;++aG){var aI=ab[aG];if(aI.auto==aC&&!(aK&&aI.series==aK.series&&aI.point[0]==aK.datapoint[0]&&aI.point[1]==aK.datapoint[1])){T(aI.series,aI.point)}}if(aK){x(aK.series,aK.datapoint,aC)}}av.trigger(aC,[aJ,aK])}function f(){if(!M){M=setTimeout(s,30)}}function s(){M=null;A.save();A.clearRect(0,0,G,I);A.translate(q.left,q.top);var aC,aB;for(aC=0;aC<ab.length;++aC){aB=ab[aC];if(aB.series.bars.show){v(aB.series,aB.point)}else{ay(aB.series,aB.point)}}A.restore();an(ak.drawOverlay,[A])}function x(aD,aB,aF){if(typeof aD=="number"){aD=Q[aD]}if(typeof aB=="number"){var aE=aD.datapoints.pointsize;aB=aD.datapoints.points.slice(aE*aB,aE*(aB+1))}var aC=al(aD,aB);if(aC==-1){ab.push({series:aD,point:aB,auto:aF});f()}else{if(!aF){ab[aC].auto=false}}}function T(aD,aB){if(aD==null&&aB==null){ab=[];f()}if(typeof aD=="number"){aD=Q[aD]}if(typeof aB=="number"){aB=aD.data[aB]}var aC=al(aD,aB);if(aC!=-1){ab.splice(aC,1);f()}}function al(aD,aE){for(var aB=0;aB<ab.length;++aB){var aC=ab[aB];if(aC.series==aD&&aC.point[0]==aE[0]&&aC.point[1]==aE[1]){return aB}}return -1}function ay(aE,aD){var aC=aD[0],aI=aD[1],aH=aE.xaxis,aG=aE.yaxis;if(aC<aH.min||aC>aH.max||aI<aG.min||aI>aG.max){return}var aF=aE.points.radius+aE.points.lineWidth/2;A.lineWidth=aF;A.strokeStyle=c.color.parse(aE.color).scale("a",0.5).toString();var aB=1.5*aF,aC=aH.p2c(aC),aI=aG.p2c(aI);A.beginPath();if(aE.points.symbol=="circle"){A.arc(aC,aI,aB,0,2*Math.PI,false)}else{aE.points.symbol(A,aC,aI,aB,false)}A.closePath();A.stroke()}function v(aE,aB){A.lineWidth=aE.bars.lineWidth;A.strokeStyle=c.color.parse(aE.color).scale("a",0.5).toString();var aD=c.color.parse(aE.color).scale("a",0.5).toString();var aC=aE.bars.align=="left"?0:-aE.bars.barWidth/2;E(aB[0],aB[1],aB[2]||0,aC,aC+aE.bars.barWidth,0,function(){return aD},aE.xaxis,aE.yaxis,A,aE.bars.horizontal,aE.bars.lineWidth)}function am(aJ,aB,aH,aC){if(typeof aJ=="string"){return aJ}else{var aI=H.createLinearGradient(0,aH,0,aB);for(var aE=0,aD=aJ.colors.length;aE<aD;++aE){var aF=aJ.colors[aE];if(typeof aF!="string"){var aG=c.color.parse(aC);if(aF.brightness!=null){aG=aG.scale("rgb",aF.brightness)}if(aF.opacity!=null){aG.a*=aF.opacity}aF=aG.toString()}aI.addColorStop(aE/(aD-1),aF)}return aI}}}c.plot=function(g,e,d){var f=new b(c(g),e,d,c.plot.plugins);return f};c.plot.version="0.7";c.plot.plugins=[];c.plot.formatDate=function(l,f,h){var o=function(d){d=""+d;return d.length==1?"0"+d:d};var e=[];var p=false,j=false;var n=l.getUTCHours();var k=n<12;if(h==null){h=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}if(f.search(/%p|%P/)!=-1){if(n>12){n=n-12}else{if(n==0){n=12}}}for(var g=0;g<f.length;++g){var m=f.charAt(g);if(p){switch(m){case"h":m=""+n;break;case"H":m=o(n);break;case"M":m=o(l.getUTCMinutes());break;case"S":m=o(l.getUTCSeconds());break;case"d":m=""+l.getUTCDate();break;case"m":m=""+(l.getUTCMonth()+1);break;case"y":m=""+l.getUTCFullYear();break;case"b":m=""+h[l.getUTCMonth()];break;case"p":m=(k)?("am"):("pm");break;case"P":m=(k)?("AM"):("PM");break;case"0":m="";j=true;break}if(m&&j){m=o(m);j=false}e.push(m);if(!j){p=false}}else{if(m=="%"){p=true}else{e.push(m)}}}return e.join("")};function a(e,d){return d*Math.floor(e/d)}})(jQuery);
locale/cpd-az_AZ.po CHANGED
@@ -1,972 +1,972 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Count per Day\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-11-02 12:13+0100\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Madat <translator.baku@gmail.com>\n"
8
- "Language-Team: Webmestre <translator.baku@gmail.com>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
- "X-Poedit-Language: Azerbaijani\n"
14
- "X-Poedit-Country: AZERBAIJAN\n"
15
- "X-Poedit-SourceCharset: utf-8\n"
16
- "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
17
- "X-Poedit-Basepath: P:/xampp/htdocs/wp/wp-content/plugins/count-per-day\n"
18
- "X-Poedit-Bookmarks: \n"
19
- "X-Poedit-SearchPath-0: .\n"
20
- "X-Textdomain-Support: yes"
21
-
22
- #: counter-options.php:49
23
- #@ cpd
24
- msgid "Options updated"
25
- msgstr "Opsiyalar yaddaşda saxlanılıb"
26
-
27
- #: counter-options.php:112
28
- #, php-format
29
- #@ cpd
30
- msgid "Database cleaned. %s rows deleted."
31
- msgstr "Məlumat bazası silinib. %s sətir silinib."
32
-
33
- #: counter-options.php:127
34
- #: counter-options.php:810
35
- #@ cpd
36
- msgid "UNINSTALL Count per Day"
37
- msgstr "DEİNSTALYASİYA Gündəlik Sayğac. "
38
-
39
- #: counter-options.php:132
40
- #: counter-options.php:133
41
- #: counter-options.php:134
42
- #, php-format
43
- #@ cpd
44
- msgid "Table %s deleted"
45
- msgstr "Cədvəl %s silinib"
46
-
47
- #: counter-options.php:135
48
- #@ cpd
49
- msgid "Options deleted"
50
- msgstr "Opsiyalar silinib"
51
-
52
- #: counter-options.php:316
53
- #: counter-options.php:796
54
- #@ cpd
55
- msgid "Uninstall"
56
- msgstr "Deinstalyasiya"
57
-
58
- #: counter-options.php:317
59
- #@ cpd
60
- msgid "Click here"
61
- msgstr "Bura basın"
62
-
63
- #: counter-options.php:317
64
- #@ cpd
65
- msgid "to finish the uninstall and to deactivate \"Count per Day\"."
66
- msgstr "deinstalyasiyanı bitirilməsi və \"Gündəlik Sayğac\" deaktivizasiya üçün. "
67
-
68
- #: counter-options.php:355
69
- #@ cpd
70
- msgid "Online time"
71
- msgstr "Onlayn vaxt"
72
-
73
- #: counter-options.php:356
74
- #@ cpd
75
- msgid "Seconds for online counter. Used for \"Visitors online\" on dashboard page."
76
- msgstr "Onlayn sayğac üçün saniyələr. \"İnstrumentlər panelində\" \"Onlayn qonaqlar \" üçün istifadə olunur."
77
-
78
- #: counter-options.php:359
79
- #@ cpd
80
- msgid "Logged on Users"
81
- msgstr "Daxil olmuş istifadəçilər"
82
-
83
- #: counter-options.php:361
84
- #@ cpd
85
- msgid "count too"
86
- msgstr "onu da saymaq"
87
-
88
- #: counter-options.php:373
89
- #@ cpd
90
- msgid "Auto counter"
91
- msgstr "Avtomatik sayğac"
92
-
93
- #: counter-options.php:374
94
- #@ cpd
95
- msgid "Counts automatically single-posts and pages, no changes on template needed."
96
- msgstr "Ayrica yazıları və səhifələri avtomatik olaraq sayır, heç bir dəyişiklik etmək şablonda lazım olmayacaq."
97
-
98
- #: counter-options.php:377
99
- #@ cpd
100
- msgid "Bots to ignore"
101
- msgstr "Botları əhəmiyyət verməmək"
102
-
103
- #: counter-options.php:561
104
- #@ cpd
105
- msgid "Update options"
106
- msgstr "Opsiyaları yeniləşdirmək"
107
-
108
- #: counter-options.php:656
109
- #: counter-options.php:665
110
- #@ cpd
111
- msgid "Clean the database"
112
- msgstr "Məlumat bazasının silmək"
113
-
114
- #: counter-options.php:659
115
- #@ cpd
116
- msgid "You can clean the counter table by delete the \"spam data\".<br />If you add new bots above the old \"spam data\" keeps in the database.<br />Here you can run the bot filter again and delete the visits of the bots."
117
- msgstr "\"Spam məlumatı \" silərək Siz sayğacını təmizləyə bilərsiniz. <br /> Əgər Siz köhnə \"spam məlumatının \" üstəndən yeni botlarını əlavə etsəniz, Siz məlumat bazasını qorura bilərsiniz. <br /> Burada Siz yenidən bot-filtrı yenidən qoşa bilərsiniz və botun baş çəkməsini silə bilərsiniz."
118
-
119
- #: counter-options.php:799
120
- #@ cpd
121
- msgid "If \"Count per Day\" only disabled the tables in the database will be preserved."
122
- msgstr "Əgər \"Gündəlik sayğac \" aktivizasiya olunubsa, onda cədvəllər məlumat bazasında qorunacaqdır."
123
-
124
- #: counter-options.php:800
125
- #@ cpd
126
- msgid "Here you can delete the tables and disable \"Count per Day\"."
127
- msgstr "Siz burada \"Gündəlik sayğacı\" silə və söndürə bilərsiniz."
128
-
129
- #: counter-options.php:803
130
- #@ cpd
131
- msgid "WARNING"
132
- msgstr "DİQQƏT"
133
-
134
- #: counter-options.php:804
135
- #@ cpd
136
- msgid "These tables (with ALL counter data) will be deleted."
137
- msgstr "Bu cədvəllər (Bütün sayğacın məlumatları ilə birlikdə) silinəcəkdirlər."
138
-
139
- #: counter-options.php:806
140
- #@ cpd
141
- msgid "If \"Count per Day\" re-installed, the counter starts at 0."
142
- msgstr " \"Gündəlin sayğac\" yenidən instalyasiya edildikdən sonra, sayğac 0-dan başlayır."
143
-
144
- #: counter-options.php:786
145
- #: counter-options.php:809
146
- #@ cpd
147
- msgid "Yes"
148
- msgstr "Bəli"
149
-
150
- #: counter-options.php:810
151
- #@ cpd
152
- msgid "You are sure to disable Count per Day and delete all data?"
153
- msgstr "Siz əminsiniz ki, \"Gündəlik sayğacı\" söndürmək və bütün məlumatları silmək istəyirsiniz?"
154
-
155
- #: counter-core.php:754
156
- #: counter.php:1124
157
- #@ cpd
158
- msgid "Statistics"
159
- msgstr "Statistika"
160
-
161
- #: counter-core.php:723
162
- #: counter.php:160
163
- #: counter.php:1010
164
- #: counter.php:1202
165
- #@ cpd
166
- msgid "Total visitors"
167
- msgstr "Ümümi qonaqların sayı"
168
-
169
- #: counter.php:161
170
- #: counter.php:1208
171
- #@ cpd
172
- msgid "Visitors currently online"
173
- msgstr "İndi qonaqların sayı saytda "
174
-
175
- #: counter.php:162
176
- #: counter.php:1203
177
- #@ cpd
178
- msgid "Visitors today"
179
- msgstr "Qonaqlar sayı bu gün"
180
-
181
- #: counter.php:163
182
- #: counter.php:1204
183
- #@ cpd
184
- msgid "Visitors yesterday"
185
- msgstr "Qonaqların sayı dünən"
186
-
187
- #: counter.php:164
188
- #: counter.php:1205
189
- #@ cpd
190
- msgid "Visitors last week"
191
- msgstr "Qonaqların sayı keçən həftə"
192
-
193
- #: counter.php:167
194
- #: counter.php:825
195
- #: counter.php:1209
196
- #@ cpd
197
- msgid "Counter starts on"
198
- msgstr "Sayğac başlanır -dan"
199
-
200
- #: counter-core.php:729
201
- #: counter.php:166
202
- #: counter.php:263
203
- #: counter.php:1012
204
- #: counter.php:1207
205
- #: userperspan.php:34
206
- #@ cpd
207
- msgid "Visitors per day"
208
- msgstr "Gonaqlarn sayı gündə"
209
-
210
- #: counter-core.php:725
211
- #: counter.php:1206
212
- #@ cpd
213
- msgid "Visitors per month"
214
- msgstr "Qonaqların sayı ayda"
215
-
216
- #: counter-core.php:727
217
- #: counter-options.php:438
218
- #@ cpd
219
- msgid "Visitors per post"
220
- msgstr "Qonaqların sayı yazışa görə"
221
-
222
- #: counter-options.php:122
223
- #@ cpd
224
- msgid "Counter reseted."
225
- msgstr "Sayğac yenidən başlayıb"
226
-
227
- #: counter-options.php:403
228
- #@ default
229
- msgid "Dashboard"
230
- msgstr "Konsol"
231
-
232
- #: counter-options.php:439
233
- #: counter-options.php:443
234
- #@ cpd
235
- msgid "How many posts do you want to see on dashboard page?"
236
- msgstr "Konsol səhifəsində neçə yazı Siz görmək istiyardiniz?"
237
-
238
- #: counter-options.php:442
239
- #@ cpd
240
- msgid "Latest Counts - Posts"
241
- msgstr "Son sayğaclar - Yazılar"
242
-
243
- #: counter-options.php:446
244
- #@ cpd
245
- msgid "Latest Counts - Days"
246
- msgstr "Son sayğaclar - Günlər"
247
-
248
- #: counter-options.php:447
249
- #: counter-options.php:451
250
- #: counter-options.php:473
251
- #@ cpd
252
- msgid "How many days do you want look back?"
253
- msgstr "Necə gün əvvəl olan statistikanı görmək istiyərdiniz?"
254
-
255
- #: counter-options.php:450
256
- #@ cpd
257
- msgid "Chart - Days"
258
- msgstr "Cədvəl - Günlər"
259
-
260
- #: counter-options.php:454
261
- #@ cpd
262
- msgid "Chart - Height"
263
- msgstr "Cədvəl - Hündürlük"
264
-
265
- #: counter-options.php:455
266
- #@ cpd
267
- msgid "Height of the biggest bar"
268
- msgstr "Ən böyük olan sütunun hündürlüyü"
269
-
270
- #: counter-options.php:488
271
- #@ cpd
272
- msgid "Show in lists"
273
- msgstr "Siyahıda göstərmək"
274
-
275
- #: counter-options.php:489
276
- #@ cpd
277
- msgid "Show \"Reads per Post\" in a new column in post management views."
278
- msgstr "Yazılaşların idarəetməsində yeni sütunda \"Məlumatları oxumaq\" göstərmək."
279
-
280
- #: counter-options.php:777
281
- #: counter-options.php:787
282
- #@ cpd
283
- msgid "Reset the counter"
284
- msgstr "Sayğacı yenidən 0 qoymaq"
285
-
286
- #: counter-options.php:780
287
- #@ cpd
288
- msgid "You can reset the counter by empty the table. ALL TO 0!<br />Make a backup if you need the current data!"
289
- msgstr "Cədvəli təmizliyərək Siz sayğacı yenidən 0 qoya bilərsiniz. HAMSI 0!<br />Sizə hazırki məlumatlar lazımdırsan onda rezerv kopiyasını saxlayın!"
290
-
291
- #: counter.php:672
292
- #, php-format
293
- #@ cpd
294
- msgid "The %s most visited posts in last %s days:"
295
- msgstr "Son %s gün ərzində ən çox %s oxunan yazılar %s :"
296
-
297
- #: counter-core.php:575
298
- #: counter-options.php:341
299
- #: counter-options.php:565
300
- #@ default
301
- msgid "Settings"
302
- msgstr "Kökləmələr"
303
-
304
- #: counter.php:262
305
- #@ cpd
306
- msgid "Reads per day"
307
- msgstr "Gün ərzində oxunuş"
308
-
309
- #: counter-core.php:639
310
- #: counter-options.php:392
311
- #: counter.php:159
312
- #: counter.php:875
313
- #@ cpd
314
- msgid "Reads"
315
- msgstr "Oxumalar"
316
-
317
- #: counter.php:1196
318
- #@ cpd
319
- msgid "This post"
320
- msgstr "Bu yazı"
321
-
322
- #: counter-options.php:60
323
- #, php-format
324
- #@ cpd
325
- msgid "Countries updated. <b>%s</b> entries in %s without country left"
326
- msgstr "Ölkələr yenilənib. %s-da <b>%s</b> yazılar ölkəsiz qalıblar"
327
-
328
- #: counter-options.php:65
329
- #@ cpd
330
- msgid "update next"
331
- msgstr "sonraki yeniləşdirmək"
332
-
333
- #: counter-options.php:102
334
- #, php-format
335
- #@ cpd
336
- msgid "Mass Bots cleaned. %s counts deleted."
337
- msgstr "Bot cədvəli təmizlənib. %s yazılar silinb."
338
-
339
- #: counter-options.php:362
340
- #@ cpd
341
- msgid "until User Level"
342
- msgstr "istifadəçi səviyyəsinə qədər"
343
-
344
- #: counter-options.php:381
345
- #@ cpd
346
- msgid "Anonymous IP"
347
- msgstr "Anonim IP"
348
-
349
- #: counter-options.php:459
350
- #@ cpd
351
- msgid "Countries"
352
- msgstr "Ölkələr"
353
-
354
- #: counter-options.php:460
355
- #@ cpd
356
- msgid "How many countries do you want to see on dashboard page?"
357
- msgstr "Siyahıda neçə ölkə görmək istiyərdiniz?"
358
-
359
- #: counter-options.php:497
360
- #@ cpd
361
- msgid "Start Values"
362
- msgstr "Başlanğıc məlumatlar"
363
-
364
- #: counter-options.php:501
365
- #@ cpd
366
- msgid "Here you can change the date of first count and add a start count."
367
- msgstr "Burada hesablama tarixini və başlanğıc sayğacı əlavə edə bilərsiniz."
368
-
369
- #: counter-options.php:505
370
- #@ cpd
371
- msgid "Start date"
372
- msgstr "Başlanğıc tarix"
373
-
374
- #: counter-options.php:506
375
- #@ cpd
376
- msgid "Your old Counter starts at?"
377
- msgstr "Sizin köhnə Sayğacınız başlanır?"
378
-
379
- #: counter-options.php:509
380
- #: counter-options.php:513
381
- #@ cpd
382
- msgid "Start count"
383
- msgstr "Sayın başlanğıcı"
384
-
385
- #: counter-options.php:510
386
- #@ cpd
387
- msgid "Add this value to \"Total visitors\"."
388
- msgstr " \"Ümumi qonaqlar\"-ra dəyər əlavə etmək."
389
-
390
- #: counter-options.php:727
391
- #@ cpd
392
- msgid "GeoIP - Countries"
393
- msgstr "GeoIP - Ölkələr"
394
-
395
- #: counter-options.php:736
396
- #@ cpd
397
- msgid "Update old counter data"
398
- msgstr "Köhnə sayğacların məlumatlarını yeniləşdirmək"
399
-
400
- #: counter-options.php:748
401
- #@ cpd
402
- msgid "Update GeoIP database"
403
- msgstr "GeoIP məlumat bazasını yeniləşdirmək"
404
-
405
- #: counter-options.php:743
406
- #@ cpd
407
- msgid "Download a new version of GeoIP.dat file."
408
- msgstr "Yeni GeoIP.dat. versiya fayılını yükləmək."
409
-
410
- #: counter-options.php:753
411
- #@ cpd
412
- msgid "More informations about GeoIP"
413
- msgstr " GeoIP haqqında daha da çox məlumat"
414
-
415
- #: counter-options.php:580
416
- #: massbots.php:35
417
- #@ cpd
418
- msgid "Mass Bots"
419
- msgstr "Mümkün olan botlar"
420
-
421
- #: counter-options.php:584
422
- #, php-format
423
- #@ cpd
424
- msgid "Show all IPs with more than %s page views per day"
425
- msgstr "Gün ərzində %s daha çox olan baxışların bütün IP-lərini göstərmək"
426
-
427
- #: counter-options.php:585
428
- #: notes.php:71
429
- #: userperspan.php:44
430
- #@ cpd
431
- msgid "show"
432
- msgstr "göstərməkl"
433
-
434
- #: counter-options.php:593
435
- #@ cpd
436
- msgid "IP"
437
- msgstr "IP"
438
-
439
- #: counter-options.php:594
440
- #: notes.php:75
441
- #@ cpd
442
- #@ default
443
- msgid "Date"
444
- msgstr "Tarix"
445
-
446
- #: counter-options.php:595
447
- #@ cpd
448
- msgid "Client"
449
- msgstr "Müştəri"
450
-
451
- #: counter-options.php:596
452
- #@ cpd
453
- msgid "Views"
454
- msgstr "Baxış"
455
-
456
- #: counter-options.php:611
457
- #: counter-options.php:627
458
- #, php-format
459
- #@ cpd
460
- msgid "Delete these %s counts"
461
- msgstr "Bu %s sayğacları silmək"
462
-
463
- #: counter-options.php:714
464
- #@ cpd
465
- msgid "Support"
466
- msgstr "Dəstək"
467
-
468
- #: counter-core.php:689
469
- #, php-format
470
- #@ cpd
471
- msgid "Time for Count per Day: <code>%s</code>."
472
- msgstr " Count per Day üçün vaxt: <code>%s</code>"
473
-
474
- #: counter-core.php:690
475
- #@ cpd
476
- msgid "Bug? Problem? Question? Hint? Praise?"
477
- msgstr "Səhv? Problem? Sual? Məsləhət? Alqış?"
478
-
479
- #: counter-core.php:691
480
- #, php-format
481
- #@ cpd
482
- msgid "Write a comment on the <a href=\"%s\">plugin page</a>."
483
- msgstr " <a href=\"%s\">plaginin səhifəsinidə</a> kommentariy yazın."
484
-
485
- #: counter.php:155
486
- #: counter.php:1197
487
- #@ cpd
488
- msgid "Total reads"
489
- msgstr "Ümumi oxunuş"
490
-
491
- #: counter.php:156
492
- #: counter.php:1198
493
- #@ cpd
494
- msgid "Reads today"
495
- msgstr "Bu günkü oxunuş"
496
-
497
- #: counter.php:157
498
- #: counter.php:1199
499
- #@ cpd
500
- msgid "Reads yesterday"
501
- msgstr "Dünənki oxunuş"
502
-
503
- #: counter.php:788
504
- #: notes.php:42
505
- #: notes.php:76
506
- #@ cpd
507
- msgid "Notes"
508
- msgstr "Qeydlər"
509
-
510
- #: counter.php:786
511
- #@ default
512
- msgid "Show"
513
- msgstr "Göstərmək"
514
-
515
- #: counter.php:821
516
- #@ cpd
517
- msgid "Other"
518
- msgstr "Digər"
519
-
520
- #: counter.php:976
521
- #@ default
522
- msgid "Edit Post"
523
- msgstr "Yazışı redaktə etmək"
524
-
525
- #: counter.php:991
526
- #: massbots.php:52
527
- #: userperspan.php:63
528
- #@ default
529
- msgid "Front page displays"
530
- msgstr "Əsas səhifənin göstərişi"
531
-
532
- #: counter-core.php:733
533
- #: counter-options.php:464
534
- #@ cpd
535
- msgid "Browsers"
536
- msgstr "Brauzerlər"
537
-
538
- #: counter-core.php:728
539
- #@ cpd
540
- msgid "Latest Counts"
541
- msgstr "Yaxında keçirilmiş hesablamalar"
542
-
543
- #: counter-core.php:730
544
- #@ default
545
- msgid "Plugin"
546
- msgstr "Plagin"
547
-
548
- #: counter-core.php:738
549
- #@ cpd
550
- msgid "Reads per Country"
551
- msgstr "Ölkələr üzrə oxunuşlar"
552
-
553
- #: counter.php:353
554
- #: counter.php:1041
555
- #@ cpd
556
- msgid "Map"
557
- msgstr "Xəritə"
558
-
559
- #: geoip/geoip.php:93
560
- #@ cpd
561
- msgid "Sorry, necessary functions (zlib) not installed or enabled in php.ini."
562
- msgstr "Bağışlayın, lazım olna funksiyalar (zlib) quraşdırılmayıb yaxud php.ini.-yə daxil olmayıb"
563
-
564
- #: geoip/geoip.php:117
565
- #@ cpd
566
- msgid "New GeoIP database installed."
567
- msgstr "GeoIP-nin yeni məlumat bazası quraşdırılıb."
568
-
569
- #: geoip/geoip.php:119
570
- #@ cpd
571
- msgid "Sorry, an error occurred. Try again or check the access rights of directory \"geoip\" is 777."
572
- msgstr "Bağışlayin. səhv oldu. Yenidən sınayın yaxud \"geoip\" - 777 papkasına keçidi yoxlayın."
573
-
574
- #: notes.php:77
575
- #@ default
576
- msgid "Action"
577
- msgstr "Hərəkət"
578
-
579
- #: notes.php:82
580
- #@ cpd
581
- msgid "add"
582
- msgstr "əlavə etmək"
583
-
584
- #: notes.php:98
585
- #@ cpd
586
- msgid "save"
587
- msgstr "yaddaşda saxlamaq"
588
-
589
- #: notes.php:99
590
- #@ cpd
591
- msgid "delete"
592
- msgstr "silmək"
593
-
594
- #: notes.php:110
595
- #@ cpd
596
- msgid "edit"
597
- msgstr "redaktə etmək"
598
-
599
- #: counter-options.php:385
600
- #@ cpd
601
- msgid "Cache"
602
- msgstr "Keş"
603
-
604
- #: counter-options.php:386
605
- #@ cpd
606
- msgid "I use a cache plugin. Count these visits with ajax."
607
- msgstr "Mən keş olan plagindən istifadə edirəm. Ajax vasitəsi ilə bu gəlişləri saymaq."
608
-
609
- #: counter-options.php:465
610
- #@ cpd
611
- msgid "Substring of the user agent, separated by comma"
612
- msgstr "İstifadəçinin agentinin sətir altı vergül ilə bölünüb"
613
-
614
- #: counter-options.php:554
615
- #@ cpd
616
- msgid "Debug mode"
617
- msgstr "Düzəliş rejimi"
618
-
619
- #: counter-options.php:556
620
- #@ cpd
621
- msgid "Show debug informations at the bottom of all pages."
622
- msgstr "Hər səhifənin sonunda düzəliş məlıumatını əlavə etmək."
623
-
624
- #: counter-core.php:739
625
- #@ cpd
626
- msgid "Visitors per Country"
627
- msgstr "Ölkə üzrə gəlişlər"
628
-
629
- #: userperspan.php:38
630
- #@ cpd
631
- msgid "Start"
632
- msgstr "Başlamaq"
633
-
634
- #: userperspan.php:40
635
- #@ cpd
636
- msgid "End"
637
- msgstr "Son"
638
-
639
- #: userperspan.php:42
640
- #@ cpd
641
- msgid "PostID"
642
- msgstr "ID məlumatlar"
643
-
644
- #: counter-options.php:514
645
- #@ cpd
646
- msgid "Add this value to \"Total reads\"."
647
- msgstr "\"Ümumi oxunuşlar\" -ra dəyərini əlavə etmək."
648
-
649
- #: counter-options.php:730
650
- #@ cpd
651
- msgid "You can get the country data for all entries in database by checking the IP adress against the GeoIP database. This can take a while!"
652
- msgstr "Siz IP adreslərini yoxluyaraq bütün yazılar üçün ölkələr üçün məlumatları ala yenidən bilərsiniz. Bir az vaxt tuta bilər!"
653
-
654
- #: userperspan.php:50
655
- #@ cpd
656
- msgid "no data found"
657
- msgstr "heç bir məlumat tapılmayıb"
658
-
659
- #: counter-options.php:351
660
- #@ cpd
661
- msgid "Counter"
662
- msgstr "Sayğac"
663
-
664
- #: counter-options.php:389
665
- #@ cpd
666
- msgid "Clients and referrers"
667
- msgstr "Müştərilər və istinad olan saytlar"
668
-
669
- #: counter-options.php:392
670
- #@ cpd
671
- msgid "Save and show clients and referrers.<br />Needs a lot of space in the database but gives you more detailed informations of your visitors."
672
- msgstr "Yaddaşda saxlamaq və müştəriləri və istenad olan saytlarını göstərmək. <br />Məlumat bazasında daha da çox həcm tələb edir, lakin gələn qonaqlar barəsində daha da ətraflı məlumat verir."
673
-
674
- #: counter-options.php:476
675
- #@ cpd
676
- msgid "Local URLs"
677
- msgstr "Lokal URL"
678
-
679
- #: counter-options.php:477
680
- #@ cpd
681
- msgid "Show local referrers too."
682
- msgstr "Lokal keçidləri də göstərmək."
683
-
684
- #: counter-options.php:485
685
- #@ default
686
- msgid "Posts"
687
- msgstr "Yazılar"
688
-
689
- #: counter-options.php:485
690
- #@ default
691
- msgid "Pages"
692
- msgstr "Səhifələr"
693
-
694
- #: counter.php:158
695
- #: counter.php:1200
696
- #@ cpd
697
- msgid "Reads last week"
698
- msgstr "Ötən həftənin oxunuşları"
699
-
700
- #: counter.php:985
701
- #@ default
702
- msgid "Category"
703
- msgstr "Kateqoriyalar"
704
-
705
- #: counter.php:988
706
- #@ default
707
- msgid "Tag"
708
- msgstr "Teq"
709
-
710
- #: counter-core.php:692
711
- #@ default
712
- msgid "License"
713
- msgstr "Lisenziya"
714
-
715
- #: counter-core.php:726
716
- #: counter.php:1201
717
- #@ cpd
718
- msgid "Reads per month"
719
- msgstr "Ay ərzində oxunuşlar"
720
-
721
- #: counter-core.php:734
722
- #@ cpd
723
- msgid "Referrer"
724
- msgstr "İstinad olunan sayt"
725
-
726
- #: counter-options.php:468
727
- #@ cpd
728
- msgid "Referrers - Entries"
729
- msgstr "İstenad olan saytlar - Girişlər"
730
-
731
- #: counter-options.php:469
732
- #@ cpd
733
- msgid "How many referrers do you want to see on dashboard page?"
734
- msgstr "Statistika səhifəsində neçə istenad olan saytları Siz görmək istiyərdiniz?"
735
-
736
- #: counter-options.php:472
737
- #@ cpd
738
- msgid "Referrers - Days"
739
- msgstr "İstenad olan saytlar - Günlər"
740
-
741
- #: counter.php:845
742
- #, php-format
743
- #@ cpd
744
- msgid "The %s referrers in last %s days:"
745
- msgstr "%s istenad olan saytlar son %s günlər:"
746
-
747
- #: counter-core.php:724
748
- #@ cpd
749
- msgid "Visitors online"
750
- msgstr "Qonaq onlayn"
751
-
752
- #: counter.php:1220
753
- #@ default
754
- msgid "Title"
755
- msgstr "Başlıq"
756
-
757
- #: counter-core.php:186
758
- #, php-format
759
- #@ cpd
760
- msgid "\"Count per Day\" updated to version %s."
761
- msgstr ""
762
-
763
- #: counter-core.php:917
764
- #@ cpd
765
- msgid "Backup failed! Cannot open file"
766
- msgstr ""
767
-
768
- #: counter-core.php:940
769
- #, php-format
770
- #@ cpd
771
- msgid "Backup of %s entries in progress. Every point complies %s entries."
772
- msgstr ""
773
-
774
- #: counter-core.php:1027
775
- #@ cpd
776
- msgid "Your wp-content directory is not writable. But you can copy the content of this box to a plain text file."
777
- msgstr ""
778
-
779
- #: counter-core.php:1033
780
- #, php-format
781
- #@ cpd
782
- msgid "Backup of counter table saved in %s."
783
- msgstr ""
784
-
785
- #: counter-core.php:1035
786
- #, php-format
787
- #@ cpd
788
- msgid "Backup of counter options and collection saved in %s."
789
- msgstr ""
790
-
791
- #: counter-options.php:170
792
- #@ cpd
793
- msgid "Collection in progress..."
794
- msgstr ""
795
-
796
- #: counter-options.php:240
797
- #@ cpd
798
- msgid "Get Visitors per Post..."
799
- msgstr ""
800
-
801
- #: counter-options.php:261
802
- #@ cpd
803
- msgid "Delete old data..."
804
- msgstr ""
805
-
806
- #: counter-options.php:285
807
- #, php-format
808
- #@ cpd
809
- msgid "Counter entries until %s collected and counter table %s optimized (size before = %s &gt; size after = %s)."
810
- msgstr ""
811
-
812
- #: counter-options.php:294
813
- #@ cpd
814
- msgid "Installation of \"Count per Day\" checked"
815
- msgstr ""
816
-
817
- #: counter-options.php:342
818
- #: counter-options.php:566
819
- #@ default
820
- msgid "Tools"
821
- msgstr ""
822
-
823
- #: counter-options.php:394
824
- #@ cpd
825
- msgid "Save URL only, no query string."
826
- msgstr ""
827
-
828
- #: counter-options.php:419
829
- #@ cpd
830
- msgid "Who can see it"
831
- msgstr ""
832
-
833
- #: counter-options.php:428
834
- #@ cpd
835
- msgid "custom"
836
- msgstr ""
837
-
838
- #: counter-options.php:430
839
- #@ cpd
840
- msgid "and higher are allowed to see the statistics page."
841
- msgstr ""
842
-
843
- #: counter-options.php:432
844
- #, php-format
845
- #@ cpd
846
- msgid "Set the %s capability %s a user need:"
847
- msgstr ""
848
-
849
- #: counter-options.php:522
850
- #@ cpd
851
- msgid "Stylesheet"
852
- msgstr ""
853
-
854
- #: counter-options.php:525
855
- #@ cpd
856
- msgid "NO Stylesheet in Frontend"
857
- msgstr ""
858
-
859
- #: counter-options.php:526
860
- #@ cpd
861
- msgid "Do not load the stylesheet \"counter.css\" in frontend."
862
- msgstr ""
863
-
864
- #: counter-options.php:534
865
- #: counter-options.php:639
866
- #@ cpd
867
- msgid "Backup"
868
- msgstr ""
869
-
870
- #: counter-options.php:537
871
- #@ cpd
872
- msgid "Entries per pass"
873
- msgstr ""
874
-
875
- #: counter-options.php:540
876
- #@ cpd
877
- msgid "How many entries should be saved per pass? Default: 10000"
878
- msgstr ""
879
-
880
- #: counter-options.php:545
881
- #@ cpd
882
- msgid "If your PHP memory limit less then 50 MB and you get a white page or error messages try a smaller value."
883
- msgstr ""
884
-
885
- #: counter-options.php:643
886
- #, php-format
887
- #@ cpd
888
- msgid "Create a backup of the counter table %s in your wp-content directory (if writable)."
889
- msgstr ""
890
-
891
- #: counter-options.php:647
892
- #@ cpd
893
- msgid "Backup the database"
894
- msgstr ""
895
-
896
- #: counter-options.php:674
897
- #: counter-options.php:706
898
- #@ cpd
899
- msgid "Collect old data"
900
- msgstr ""
901
-
902
- #: counter-options.php:679
903
- #, php-format
904
- #@ cpd
905
- msgid "Current size of your counter table %s is %s."
906
- msgstr ""
907
-
908
- #: counter-options.php:681
909
- #@ cpd
910
- msgid "You can collect old data and clean up the counter table.<br/>Reads and visitors will be saved per month, per country and per post.<br/>Clients and referrers will deleted."
911
- msgstr ""
912
-
913
- #: counter-options.php:686
914
- #, php-format
915
- #@ cpd
916
- msgid "Currently your collection contains data until %s."
917
- msgstr ""
918
-
919
- #: counter-options.php:690
920
- #@ cpd
921
- msgid "Normally new data will be added to the collection."
922
- msgstr ""
923
-
924
- #: counter-options.php:696
925
- #@ cpd
926
- msgid "Delete old collection and create a new one which contains only the data currently in counter table."
927
- msgstr ""
928
-
929
- #: counter-options.php:697
930
- #, php-format
931
- #@ cpd
932
- msgid "All collected data until %s will deleted."
933
- msgstr ""
934
-
935
- #: counter-options.php:702
936
- #, php-format
937
- #@ cpd
938
- msgid "Keep entries of last %s full months + current month in counter table."
939
- msgstr ""
940
-
941
- #: counter-options.php:761
942
- #@ cpd
943
- msgid "ReActivation"
944
- msgstr ""
945
-
946
- #: counter-options.php:764
947
- #@ cpd
948
- msgid "Here you can start the installation functions manually.<br/>Same as deactivate and reactivate the plugin."
949
- msgstr ""
950
-
951
- #: counter-options.php:769
952
- #@ cpd
953
- msgid "ReActivate the plugin"
954
- msgstr ""
955
-
956
- #: counter.php:165
957
- #: counter.php:899
958
- #@ cpd
959
- msgid "Visitors"
960
- msgstr ""
961
-
962
- #: counter.php:168
963
- #: counter.php:169
964
- #@ cpd
965
- msgid "Most visited day"
966
- msgstr ""
967
-
968
- #: counter.php:1239
969
- #@ cpd
970
- msgid "drag and drop to sort"
971
- msgstr ""
972
-
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Count per Day\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2008-11-02 12:13+0100\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Madat <translator.baku@gmail.com>\n"
8
+ "Language-Team: Webmestre <translator.baku@gmail.com>\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Poedit-Language: Azerbaijani\n"
14
+ "X-Poedit-Country: AZERBAIJAN\n"
15
+ "X-Poedit-SourceCharset: utf-8\n"
16
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
17
+ "X-Poedit-Basepath: P:/xampp/htdocs/wp/wp-content/plugins/count-per-day\n"
18
+ "X-Poedit-Bookmarks: \n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+ "X-Textdomain-Support: yes"
21
+
22
+ #: counter-options.php:49
23
+ #@ cpd
24
+ msgid "Options updated"
25
+ msgstr "Opsiyalar yaddaşda saxlanılıb"
26
+
27
+ #: counter-options.php:112
28
+ #, php-format
29
+ #@ cpd
30
+ msgid "Database cleaned. %s rows deleted."
31
+ msgstr "Məlumat bazası silinib. %s sətir silinib."
32
+
33
+ #: counter-options.php:127
34
+ #: counter-options.php:810
35
+ #@ cpd
36
+ msgid "UNINSTALL Count per Day"
37
+ msgstr "DEİNSTALYASİYA Gündəlik Sayğac. "
38
+
39
+ #: counter-options.php:132
40
+ #: counter-options.php:133
41
+ #: counter-options.php:134
42
+ #, php-format
43
+ #@ cpd
44
+ msgid "Table %s deleted"
45
+ msgstr "Cədvəl %s silinib"
46
+
47
+ #: counter-options.php:135
48
+ #@ cpd
49
+ msgid "Options deleted"
50
+ msgstr "Opsiyalar silinib"
51
+
52
+ #: counter-options.php:316
53
+ #: counter-options.php:796
54
+ #@ cpd
55
+ msgid "Uninstall"
56
+ msgstr "Deinstalyasiya"
57
+
58
+ #: counter-options.php:317
59
+ #@ cpd
60
+ msgid "Click here"
61
+ msgstr "Bura basın"
62
+
63
+ #: counter-options.php:317
64
+ #@ cpd
65
+ msgid "to finish the uninstall and to deactivate \"Count per Day\"."
66
+ msgstr "deinstalyasiyanı bitirilməsi və \"Gündəlik Sayğac\" deaktivizasiya üçün. "
67
+
68
+ #: counter-options.php:355
69
+ #@ cpd
70
+ msgid "Online time"
71
+ msgstr "Onlayn vaxt"
72
+
73
+ #: counter-options.php:356
74
+ #@ cpd
75
+ msgid "Seconds for online counter. Used for \"Visitors online\" on dashboard page."
76
+ msgstr "Onlayn sayğac üçün saniyələr. \"İnstrumentlər panelində\" \"Onlayn qonaqlar \" üçün istifadə olunur."
77
+
78
+ #: counter-options.php:359
79
+ #@ cpd
80
+ msgid "Logged on Users"
81
+ msgstr "Daxil olmuş istifadəçilər"
82
+
83
+ #: counter-options.php:361
84
+ #@ cpd
85
+ msgid "count too"
86
+ msgstr "onu da saymaq"
87
+
88
+ #: counter-options.php:373
89
+ #@ cpd
90
+ msgid "Auto counter"
91
+ msgstr "Avtomatik sayğac"
92
+
93
+ #: counter-options.php:374
94
+ #@ cpd
95
+ msgid "Counts automatically single-posts and pages, no changes on template needed."
96
+ msgstr "Ayrica yazıları və səhifələri avtomatik olaraq sayır, heç bir dəyişiklik etmək şablonda lazım olmayacaq."
97
+
98
+ #: counter-options.php:377
99
+ #@ cpd
100
+ msgid "Bots to ignore"
101
+ msgstr "Botları əhəmiyyət verməmək"
102
+
103
+ #: counter-options.php:561
104
+ #@ cpd
105
+ msgid "Update options"
106
+ msgstr "Opsiyaları yeniləşdirmək"
107
+
108
+ #: counter-options.php:656
109
+ #: counter-options.php:665
110
+ #@ cpd
111
+ msgid "Clean the database"
112
+ msgstr "Məlumat bazasının silmək"
113
+
114
+ #: counter-options.php:659
115
+ #@ cpd
116
+ msgid "You can clean the counter table by delete the \"spam data\".<br />If you add new bots above the old \"spam data\" keeps in the database.<br />Here you can run the bot filter again and delete the visits of the bots."
117
+ msgstr "\"Spam məlumatı \" silərək Siz sayğacını təmizləyə bilərsiniz. <br /> Əgər Siz köhnə \"spam məlumatının \" üstəndən yeni botlarını əlavə etsəniz, Siz məlumat bazasını qorura bilərsiniz. <br /> Burada Siz yenidən bot-filtrı yenidən qoşa bilərsiniz və botun baş çəkməsini silə bilərsiniz."
118
+
119
+ #: counter-options.php:799
120
+ #@ cpd
121
+ msgid "If \"Count per Day\" only disabled the tables in the database will be preserved."
122
+ msgstr "Əgər \"Gündəlik sayğac \" aktivizasiya olunubsa, onda cədvəllər məlumat bazasında qorunacaqdır."
123
+
124
+ #: counter-options.php:800
125
+ #@ cpd
126
+ msgid "Here you can delete the tables and disable \"Count per Day\"."
127
+ msgstr "Siz burada \"Gündəlik sayğacı\" silə və söndürə bilərsiniz."
128
+
129
+ #: counter-options.php:803
130
+ #@ cpd
131
+ msgid "WARNING"
132
+ msgstr "DİQQƏT"
133
+
134
+ #: counter-options.php:804
135
+ #@ cpd
136
+ msgid "These tables (with ALL counter data) will be deleted."
137
+ msgstr "Bu cədvəllər (Bütün sayğacın məlumatları ilə birlikdə) silinəcəkdirlər."
138
+
139
+ #: counter-options.php:806
140
+ #@ cpd
141
+ msgid "If \"Count per Day\" re-installed, the counter starts at 0."
142
+ msgstr " \"Gündəlin sayğac\" yenidən instalyasiya edildikdən sonra, sayğac 0-dan başlayır."
143
+
144
+ #: counter-options.php:786
145
+ #: counter-options.php:809
146
+ #@ cpd
147
+ msgid "Yes"
148
+ msgstr "Bəli"
149
+
150
+ #: counter-options.php:810
151
+ #@ cpd
152
+ msgid "You are sure to disable Count per Day and delete all data?"
153
+ msgstr "Siz əminsiniz ki, \"Gündəlik sayğacı\" söndürmək və bütün məlumatları silmək istəyirsiniz?"
154
+
155
+ #: counter-core.php:754
156
+ #: counter.php:1124
157
+ #@ cpd
158
+ msgid "Statistics"
159
+ msgstr "Statistika"
160
+
161
+ #: counter-core.php:723
162
+ #: counter.php:160
163
+ #: counter.php:1010
164
+ #: counter.php:1202
165
+ #@ cpd
166
+ msgid "Total visitors"
167
+ msgstr "Ümümi qonaqların sayı"
168
+
169
+ #: counter.php:161
170
+ #: counter.php:1208
171
+ #@ cpd
172
+ msgid "Visitors currently online"
173
+ msgstr "İndi qonaqların sayı saytda "
174
+
175
+ #: counter.php:162
176
+ #: counter.php:1203
177
+ #@ cpd
178
+ msgid "Visitors today"
179
+ msgstr "Qonaqlar sayı bu gün"
180
+
181
+ #: counter.php:163
182
+ #: counter.php:1204
183
+ #@ cpd
184
+ msgid "Visitors yesterday"
185
+ msgstr "Qonaqların sayı dünən"
186
+
187
+ #: counter.php:164
188
+ #: counter.php:1205
189
+ #@ cpd
190
+ msgid "Visitors last week"
191
+ msgstr "Qonaqların sayı keçən həftə"
192
+
193
+ #: counter.php:167
194
+ #: counter.php:825
195
+ #: counter.php:1209
196
+ #@ cpd
197
+ msgid "Counter starts on"
198
+ msgstr "Sayğac başlanır -dan"
199
+
200
+ #: counter-core.php:729
201
+ #: counter.php:166
202
+ #: counter.php:263
203
+ #: counter.php:1012
204
+ #: counter.php:1207
205
+ #: userperspan.php:34
206
+ #@ cpd
207
+ msgid "Visitors per day"
208
+ msgstr "Gonaqlarn sayı gündə"
209
+
210
+ #: counter-core.php:725
211
+ #: counter.php:1206
212
+ #@ cpd
213
+ msgid "Visitors per month"
214
+ msgstr "Qonaqların sayı ayda"
215
+
216
+ #: counter-core.php:727
217
+ #: counter-options.php:438
218
+ #@ cpd
219
+ msgid "Visitors per post"
220
+ msgstr "Qonaqların sayı yazışa görə"
221
+
222
+ #: counter-options.php:122
223
+ #@ cpd
224
+ msgid "Counter reseted."
225
+ msgstr "Sayğac yenidən başlayıb"
226
+
227
+ #: counter-options.php:403
228
+ #@ default
229
+ msgid "Dashboard"
230
+ msgstr "Konsol"
231
+
232
+ #: counter-options.php:439
233
+ #: counter-options.php:443
234
+ #@ cpd
235
+ msgid "How many posts do you want to see on dashboard page?"
236
+ msgstr "Konsol səhifəsində neçə yazı Siz görmək istiyardiniz?"
237
+
238
+ #: counter-options.php:442
239
+ #@ cpd
240
+ msgid "Latest Counts - Posts"
241
+ msgstr "Son sayğaclar - Yazılar"
242
+
243
+ #: counter-options.php:446
244
+ #@ cpd
245
+ msgid "Latest Counts - Days"
246
+ msgstr "Son sayğaclar - Günlər"
247
+
248
+ #: counter-options.php:447
249
+ #: counter-options.php:451
250
+ #: counter-options.php:473
251
+ #@ cpd
252
+ msgid "How many days do you want look back?"
253
+ msgstr "Necə gün əvvəl olan statistikanı görmək istiyərdiniz?"
254
+
255
+ #: counter-options.php:450
256
+ #@ cpd
257
+ msgid "Chart - Days"
258
+ msgstr "Cədvəl - Günlər"
259
+
260
+ #: counter-options.php:454
261
+ #@ cpd
262
+ msgid "Chart - Height"
263
+ msgstr "Cədvəl - Hündürlük"
264
+
265
+ #: counter-options.php:455
266
+ #@ cpd
267
+ msgid "Height of the biggest bar"
268
+ msgstr "Ən böyük olan sütunun hündürlüyü"
269
+
270
+ #: counter-options.php:488
271
+ #@ cpd
272
+ msgid "Show in lists"
273
+ msgstr "Siyahıda göstərmək"
274
+
275
+ #: counter-options.php:489
276
+ #@ cpd
277
+ msgid "Show \"Reads per Post\" in a new column in post management views."
278
+ msgstr "Yazılaşların idarəetməsində yeni sütunda \"Məlumatları oxumaq\" göstərmək."
279
+
280
+ #: counter-options.php:777
281
+ #: counter-options.php:787
282
+ #@ cpd
283
+ msgid "Reset the counter"
284
+ msgstr "Sayğacı yenidən 0 qoymaq"
285
+
286
+ #: counter-options.php:780
287
+ #@ cpd
288
+ msgid "You can reset the counter by empty the table. ALL TO 0!<br />Make a backup if you need the current data!"
289
+ msgstr "Cədvəli təmizliyərək Siz sayğacı yenidən 0 qoya bilərsiniz. HAMSI 0!<br />Sizə hazırki məlumatlar lazımdırsan onda rezerv kopiyasını saxlayın!"
290
+
291
+ #: counter.php:672
292
+ #, php-format
293
+ #@ cpd
294
+ msgid "The %s most visited posts in last %s days:"
295
+ msgstr "Son %s gün ərzində ən çox %s oxunan yazılar %s :"
296
+
297
+ #: counter-core.php:575
298
+ #: counter-options.php:341
299
+ #: counter-options.php:565
300
+ #@ default
301
+ msgid "Settings"
302
+ msgstr "Kökləmələr"
303
+
304
+ #: counter.php:262
305
+ #@ cpd
306
+ msgid "Reads per day"
307
+ msgstr "Gün ərzində oxunuş"
308
+
309
+ #: counter-core.php:639
310
+ #: counter-options.php:392
311
+ #: counter.php:159
312
+ #: counter.php:875
313
+ #@ cpd
314
+ msgid "Reads"
315
+ msgstr "Oxumalar"
316
+
317
+ #: counter.php:1196
318
+ #@ cpd
319
+ msgid "This post"
320
+ msgstr "Bu yazı"
321
+
322
+ #: counter-options.php:60
323
+ #, php-format
324
+ #@ cpd
325
+ msgid "Countries updated. <b>%s</b> entries in %s without country left"
326
+ msgstr "Ölkələr yenilənib. %s-da <b>%s</b> yazılar ölkəsiz qalıblar"
327
+
328
+ #: counter-options.php:65
329
+ #@ cpd
330
+ msgid "update next"
331
+ msgstr "sonraki yeniləşdirmək"
332
+
333
+ #: counter-options.php:102
334
+ #, php-format
335
+ #@ cpd
336
+ msgid "Mass Bots cleaned. %s counts deleted."
337
+ msgstr "Bot cədvəli təmizlənib. %s yazılar silinb."
338
+
339
+ #: counter-options.php:362
340
+ #@ cpd
341
+ msgid "until User Level"
342
+ msgstr "istifadəçi səviyyəsinə qədər"
343
+
344
+ #: counter-options.php:381
345
+ #@ cpd
346
+ msgid "Anonymous IP"
347
+ msgstr "Anonim IP"
348
+
349
+ #: counter-options.php:459
350
+