aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/memberlist.php
blob: c2a995da4c7e3ca89ef20d7c3d871f855036b2a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
<?php
/**
*
* @package phpBB3
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup(array('memberlist', 'groups'));

// Setting a variable to let the style designer know where he is...
$template->assign_var('S_IN_MEMBERLIST', true);

// Grab data
$mode		= request_var('mode', '');
$action		= request_var('action', '');
$user_id	= request_var('u', ANONYMOUS);
$username	= request_var('un', '', true);
$group_id	= request_var('g', 0);
$topic_id	= request_var('t', 0);

// Redirect when old mode is used
if ($mode == 'leaders')
{
	send_status_line(301, 'Moved Permanently');
	redirect(append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=team'));
}

// Check our mode...
if (!in_array($mode, array('', 'group', 'viewprofile', 'email', 'contact', 'searchuser', 'team', 'livesearch')))
{
	trigger_error('NO_MODE');
}

switch ($mode)
{
	case 'email':
	break;

	default:
		// Can this user view profiles/memberlist?
		if (!$auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
		{
			if ($user->data['user_id'] != ANONYMOUS)
			{
				trigger_error('NO_VIEW_USERS');
			}

			login_box('', ((isset($user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)])) ? $user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)] : $user->lang['LOGIN_EXPLAIN_MEMBERLIST']));
		}
	break;
}

$start	= request_var('start', 0);
$submit = (isset($_POST['submit'])) ? true : false;

$default_key = 'c';
$sort_key = request_var('sk', $default_key);
$sort_dir = request_var('sd', 'a');

// What do you want to do today? ... oops, I think that line is taken ...
switch ($mode)
{
	case 'team':
		// Display a listing of board admins, moderators
		include($phpbb_root_path . 'includes/functions_user.' . $phpEx);

		$page_title = $user->lang['THE_TEAM'];
		$template_html = 'memberlist_team.html';

		$sql = 'SELECT *
			FROM ' . TEAMPAGE_TABLE . '
			ORDER BY teampage_position ASC';
		$result = $db->sql_query($sql, 3600);
		$teampage_data = $db->sql_fetchrowset($result);
		$db->sql_freeresult($result);

		$sql_ary = array(
			'SELECT'	=> 'g.group_id, g.group_name, g.group_colour, g.group_type, ug.user_id as ug_user_id, t.teampage_id',

			'FROM'		=> array(GROUPS_TABLE => 'g'),

			'LEFT_JOIN'	=> array(
				array(
					'FROM'	=> array(TEAMPAGE_TABLE => 't'),
					'ON'	=> 't.group_id = g.group_id',
				),
				array(
					'FROM'	=> array(USER_GROUP_TABLE => 'ug'),
					'ON'	=> 'ug.group_id = g.group_id AND ug.user_pending = 0 AND ug.user_id = ' . (int) $user->data['user_id'],
				),
			),
		);

		$result = $db->sql_query($db->sql_build_query('SELECT', $sql_ary));

		$group_ids = $groups_ary = array();
		while ($row = $db->sql_fetchrow($result))
		{
			if ($row['group_type'] == GROUP_HIDDEN && !$auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel') && $row['ug_user_id'] != $user->data['user_id'])
			{
				$row['group_name'] = $user->lang['GROUP_UNDISCLOSED'];
				$row['u_group'] = '';
			}
			else
			{
				$row['group_name'] = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
				$row['u_group'] = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&amp;g=' . $row['group_id']);
			}

			if ($row['teampage_id'])
			{
				// Only put groups into the array we want to display.
				// We are fetching all groups, to ensure we got all data for default groups.
				$group_ids[] = (int) $row['group_id'];
			}
			$groups_ary[(int) $row['group_id']] = $row;
		}
		$db->sql_freeresult($result);

		$sql_ary = array(
			'SELECT'	=> 'u.user_id, u.group_id as default_group, u.username, u.username_clean, u.user_colour, u.user_rank, u.user_posts, u.user_allow_pm, g.group_id',

			'FROM'		=> array(
				USER_GROUP_TABLE => 'ug',
			),

			'LEFT_JOIN'	=> array(
				array(
					'FROM'	=> array(USERS_TABLE => 'u'),
					'ON'	=> 'ug.user_id = u.user_id AND ug.user_pending = 0',
				),
				array(
					'FROM'	=> array(GROUPS_TABLE => 'g'),
					'ON'	=> 'ug.group_id = g.group_id',
				),
			),

			'WHERE'		=> $db->sql_in_set('g.group_id', $group_ids, false, true),

			'ORDER_BY'	=> 'u.username_clean ASC',
		);

		$result = $db->sql_query($db->sql_build_query('SELECT', $sql_ary));

		$user_ary = $user_ids = $group_users = array();
		while ($row = $db->sql_fetchrow($result))
		{
			$row['forums'] = '';
			$row['forums_ary'] = array();
			$user_ary[(int) $row['user_id']] = $row;
			$user_ids[] = (int) $row['user_id'];
			$group_users[(int) $row['group_id']][] = (int) $row['user_id'];
		}
		$db->sql_freeresult($result);

		$user_ids = array_unique($user_ids);

		if (!empty($user_ids) && $config['teampage_forums'])
		{
			$template->assign_var('S_DISPLAY_MODERATOR_FORUMS', true);
			// Get all moderators
			$perm_ary = $auth->acl_get_list($user_ids, array('m_'), false);

			foreach ($perm_ary as $forum_id => $forum_ary)
			{
				foreach ($forum_ary as $auth_option => $id_ary)
				{
					foreach ($id_ary as $id)
					{
						if (!$forum_id)
						{
							$user_ary[$id]['forums'] = $user->lang['ALL_FORUMS'];
						}
						else
						{
							$user_ary[$id]['forums_ary'][] = $forum_id;
						}
					}
				}
			}

			$sql = 'SELECT forum_id, forum_name
				FROM ' . FORUMS_TABLE;
			$result = $db->sql_query($sql);

			$forums = array();
			while ($row = $db->sql_fetchrow($result))
			{
				$forums[$row['forum_id']] = $row['forum_name'];
			}
			$db->sql_freeresult($result);

			foreach ($user_ary as $user_id => $user_data)
			{
				if (!$user_data['forums'])
				{
					foreach ($user_data['forums_ary'] as $forum_id)
					{
						$user_ary[$user_id]['forums_options'] = true;
						if (isset($forums[$forum_id]))
						{
							if ($auth->acl_get('f_list', $forum_id))
							{
								$user_ary[$user_id]['forums'] .= '<option value="">' . $forums[$forum_id] . '</option>';
							}
						}
					}
				}
			}
		}

		$parent_team = 0;
		foreach ($teampage_data as $team_data)
		{
			// If this team entry has no group, it's a category
			if (!$team_data['group_id'])
			{
				$template->assign_block_vars('group', array(
					'GROUP_NAME'  => $team_data['teampage_name'],
				));

				$parent_team = (int) $team_data['teampage_id'];
				continue;
			}

			$group_data = $groups_ary[(int) $team_data['group_id']];
			$group_id = (int) $team_data['group_id'];

			if (!$team_data['teampage_parent'])
			{
				// If the group does not have a parent category, we display the groupname as category
				$template->assign_block_vars('group', array(
					'GROUP_NAME'	=> $group_data['group_name'],
					'GROUP_COLOR'	=> $group_data['group_colour'],
					'U_GROUP'		=> $group_data['u_group'],
				));
			}

			// Display group members.
			if (!empty($group_users[$group_id]))
			{
				foreach ($group_users[$group_id] as $user_id)
				{
					if (isset($user_ary[$user_id]))
					{
						$row = $user_ary[$user_id];
						if ($config['teampage_memberships'] == 1 && ($group_id != $groups_ary[$row['default_group']]['group_id']) && $groups_ary[$row['default_group']]['teampage_id'])
						{
							// Display users in their primary group, instead of the first group, when it is displayed on the teampage.
							continue;
						}

						$rank_title = $rank_img = $rank_img_src = '';
						get_user_rank($row['user_rank'], (($row['user_id'] == ANONYMOUS) ? false : $row['user_posts']), $rank_title, $rank_img, $rank_img_src);

						$template->assign_block_vars('group.user', array(
							'USER_ID'		=> $row['user_id'],
							'FORUMS'		=> $row['forums'],
							'FORUM_OPTIONS'	=> (isset($row['forums_options'])) ? true : false,
							'RANK_TITLE'	=> $rank_title,

							'GROUP_NAME'	=> $groups_ary[$row['default_group']]['group_name'],
							'GROUP_COLOR'	=> $groups_ary[$row['default_group']]['group_colour'],
							'U_GROUP'		=> $groups_ary[$row['default_group']]['u_group'],

							'RANK_IMG'		=> $rank_img,
							'RANK_IMG_SRC'	=> $rank_img_src,

							'U_PM'			=> ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose&amp;u=' . $row['user_id']) : '',

							'USERNAME_FULL'		=> get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
							'USERNAME'			=> get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
							'USER_COLOR'		=> get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
							'U_VIEW_PROFILE'	=> get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
						));

						if ($config['teampage_memberships'] != 2)
						{
							unset($user_ary[$user_id]);
						}
					}
				}
			}
		}

		$template->assign_vars(array(
			'PM_IMG'		=> $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']))
		);
	break;

	case 'contact':

		$page_title = $user->lang['IM_USER'];
		$template_html = 'memberlist_im.html';

		if (!$auth->acl_get('u_sendim'))
		{
			trigger_error('NOT_AUTHORISED');
		}

		$presence_img = '';
		switch ($action)
		{
			case 'jabber':
				$lang = 'JABBER';
				$sql_field = 'user_jabber';
				$s_select = (@extension_loaded('xml') && $config['jab_enable']) ? 'S_SEND_JABBER' : 'S_NO_SEND_JABBER';
				$s_action = append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=contact&amp;action=$action&amp;u=$user_id");
			break;

			default:
				trigger_error('NO_MODE', E_USER_ERROR);
			break;
		}

		// Grab relevant data
		$sql = "SELECT user_id, username, user_email, user_lang, $sql_field
			FROM " . USERS_TABLE . "
			WHERE user_id = $user_id
				AND user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
		$result = $db->sql_query($sql);
		$row = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);

		if (!$row)
		{
			trigger_error('NO_USER');
		}
		else if (empty($row[$sql_field]))
		{
			trigger_error('IM_NO_DATA');
		}

		// Post data grab actions
		switch ($action)
		{
			case 'jabber':
				add_form_key('memberlist_messaging');

				if ($submit && @extension_loaded('xml') && $config['jab_enable'])
				{
					if (check_form_key('memberlist_messaging'))
					{

						include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);

						$subject = sprintf($user->lang['IM_JABBER_SUBJECT'], $user->data['username'], $config['server_name']);
						$message = utf8_normalize_nfc(request_var('message', '', true));

						if (empty($message))
						{
							trigger_error('EMPTY_MESSAGE_IM');
						}

						$messenger = new messenger(false);

						$messenger->template('profile_send_im', $row['user_lang']);
						$messenger->subject(htmlspecialchars_decode($subject));

						$messenger->replyto($user->data['user_email']);
						$messenger->set_addresses($row);

						$messenger->assign_vars(array(
							'BOARD_CONTACT'	=> $config['board_contact'],
							'FROM_USERNAME'	=> htmlspecialchars_decode($user->data['username']),
							'TO_USERNAME'	=> htmlspecialchars_decode($row['username']),
							'MESSAGE'		=> htmlspecialchars_decode($message))
						);

						$messenger->send(NOTIFY_IM);

						$s_select = 'S_SENT_JABBER';
					}
					else
					{
						trigger_error('FORM_INVALID');
					}
				}
			break;
		}

		// Send vars to the template
		$template->assign_vars(array(
			'IM_CONTACT'	=> $row[$sql_field],
			'A_IM_CONTACT'	=> addslashes($row[$sql_field]),

			'USERNAME'		=> $row['username'],
			'CONTACT_NAME'	=> $row[$sql_field],
			'SITENAME'		=> $config['sitename'],

			'PRESENCE_IMG'		=> $presence_img,

			'L_SEND_IM_EXPLAIN'	=> $user->lang['IM_' . $lang],
			'L_IM_SENT_JABBER'	=> sprintf($user->lang['IM_SENT_JABBER'], $row['username']),

			$s_select			=> true,
			'S_IM_ACTION'		=> $s_action)
		);

	break;

	case 'viewprofile':
		// Display a profile
		if ($user_id == ANONYMOUS && !$username)
		{
			trigger_error('NO_USER');
		}

		// Get user...
		$sql = 'SELECT *
			FROM ' . USERS_TABLE . '
			WHERE ' . (($username) ? "username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'" : "user_id = $user_id");
		$result = $db->sql_query($sql);
		$member = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);

		if (!$member)
		{
			trigger_error('NO_USER');
		}

		// a_user admins and founder are able to view inactive users and bots to be able to manage them more easily
		// Normal users are able to see at least users having only changed their profile settings but not yet reactivated.
		if (!$auth->acl_get('a_user') && $user->data['user_type'] != USER_FOUNDER)
		{
			if ($member['user_type'] == USER_IGNORE)
			{
				trigger_error('NO_USER');
			}
			else if ($member['user_type'] == USER_INACTIVE && $member['user_inactive_reason'] != INACTIVE_PROFILE)
			{
				trigger_error('NO_USER');
			}
		}

		$user_id = (int) $member['user_id'];

		// Get group memberships
		// Also get visiting user's groups to determine hidden group memberships if necessary.
		$auth_hidden_groups = ($user_id === (int) $user->data['user_id'] || $auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) ? true : false;
		$sql_uid_ary = ($auth_hidden_groups) ? array($user_id) : array($user_id, (int) $user->data['user_id']);

		// Do the SQL thang
		$sql = 'SELECT g.group_id, g.group_name, g.group_type, ug.user_id
			FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug
			WHERE ' . $db->sql_in_set('ug.user_id', $sql_uid_ary) . '
				AND g.group_id = ug.group_id
				AND ug.user_pending = 0';
		$result = $db->sql_query($sql);

		// Divide data into profile data and current user data
		$profile_groups = $user_groups = array();
		while ($row = $db->sql_fetchrow($result))
		{
			$row['user_id'] = (int) $row['user_id'];
			$row['group_id'] = (int) $row['group_id'];

			if ($row['user_id'] == $user_id)
			{
				$profile_groups[] = $row;
			}
			else
			{
				$user_groups[$row['group_id']] = $row['group_id'];
			}
		}
		$db->sql_freeresult($result);

		// Filter out hidden groups and sort groups by name
		$group_data = $group_sort = array();
		foreach ($profile_groups as $row)
		{
			if ($row['group_type'] == GROUP_SPECIAL)
			{
				// Lookup group name in language dictionary
				if (isset($user->lang['G_' . $row['group_name']]))
				{
					$row['group_name'] = $user->lang['G_' . $row['group_name']];
				}
			}
			else if (!$auth_hidden_groups && $row['group_type'] == GROUP_HIDDEN && !isset($user_groups[$row['group_id']]))
			{
				// Skip over hidden groups the user cannot see
				continue;
			}

			$group_sort[$row['group_id']] = utf8_clean_string($row['group_name']);
			$group_data[$row['group_id']] = $row;
		}
		unset($profile_groups);
		unset($user_groups);
		asort($group_sort);

		$group_options = '';
		foreach ($group_sort as $group_id => $null)
		{
			$row = $group_data[$group_id];

			$group_options .= '<option value="' . $row['group_id'] . '"' . (($row['group_id'] == $member['group_id']) ? ' selected="selected"' : '') . '>' . $row['group_name'] . '</option>';
		}
		unset($group_data);
		unset($group_sort);

		// What colour is the zebra
		$sql = 'SELECT friend, foe
			FROM ' . ZEBRA_TABLE . "
			WHERE zebra_id = $user_id
				AND user_id = {$user->data['user_id']}";

		$result = $db->sql_query($sql);
		$row = $db->sql_fetchrow($result);
		$foe = ($row['foe']) ? true : false;
		$friend = ($row['friend']) ? true : false;
		$db->sql_freeresult($result);

		if ($config['load_onlinetrack'])
		{
			$sql = 'SELECT MAX(session_time) AS session_time, MIN(session_viewonline) AS session_viewonline
				FROM ' . SESSIONS_TABLE . "
				WHERE session_user_id = $user_id";
			$result = $db->sql_query($sql);
			$row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			$member['session_time'] = (isset($row['session_time'])) ? $row['session_time'] : 0;
			$member['session_viewonline'] = (isset($row['session_viewonline'])) ? $row['session_viewonline'] :	0;
			unset($row);
		}

		if ($config['load_user_activity'])
		{
			display_user_activity($member);
		}

		// Do the relevant calculations
		$memberdays = max(1, round((time() - $member['user_regdate']) / 86400));
		$posts_per_day = $member['user_posts'] / $memberdays;
		$percentage = ($config['num_posts']) ? min(100, ($member['user_posts'] / $config['num_posts']) * 100) : 0;


		if ($member['user_sig'])
		{
			$parse_flags = ($member['user_sig_bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
			$member['user_sig'] = generate_text_for_display($member['user_sig'], $member['user_sig_bbcode_uid'], $member['user_sig_bbcode_bitfield'], $parse_flags, true);
		}

		$poster_avatar = phpbb_get_user_avatar($member);

		// We need to check if the modules 'zebra' ('friends' & 'foes' mode),  'notes' ('user_notes' mode) and  'warn' ('warn_user' mode) are accessible to decide if we can display appropriate links
		$zebra_enabled = $friends_enabled = $foes_enabled = $user_notes_enabled = $warn_user_enabled = false;

		// Only check if the user is logged in
		if ($user->data['is_registered'])
		{
			if (!class_exists('p_master'))
			{
				include($phpbb_root_path . 'includes/functions_module.' . $phpEx);
			}
			$module = new p_master();

			$module->list_modules('ucp');
			$module->list_modules('mcp');

			$user_notes_enabled = ($module->loaded('mcp_notes', 'user_notes')) ? true : false;
			$warn_user_enabled = ($module->loaded('mcp_warn', 'warn_user')) ? true : false;
			$zebra_enabled = ($module->loaded('ucp_zebra')) ? true : false;
			$friends_enabled = ($module->loaded('ucp_zebra', 'friends')) ? true : false;
			$foes_enabled = ($module->loaded('ucp_zebra', 'foes')) ? true : false;

			unset($module);
		}

		/**
		* Modify user data before we display the profile
		*
		* @event core.memberlist_view_profile
		* @var	array	member					Array with user's data
		* @var	bool	user_notes_enabled		Is the mcp user notes module
		*										enabled?
		* @var	bool	warn_user_enabled		Is the mcp warnings module
		*										enabled?
		* @var	bool	zebra_enabled			Is the ucp zebra module
		*										enabled?
		* @var	bool	friends_enabled			Is the ucp friends module
		*										enabled?
		* @var	bool	foes_enabled			Is the ucp foes module
		*										enabled?
		* @var	bool    friend					Is the user friend?
		* @var	bool	foe						Is the user foe?
		* @since 3.1-A1
		* @changed 3.1.0-b2 Added friend and foe status
		*/
		$vars = array('member', 'user_notes_enabled', 'warn_user_enabled', 'zebra_enabled', 'friends_enabled', 'foes_enabled', 'friend', 'foe');
		extract($phpbb_dispatcher->trigger_event('core.memberlist_view_profile', compact($vars)));

		$template->assign_vars(show_profile($member, $user_notes_enabled, $warn_user_enabled));

		// Custom Profile Fields
		$profile_fields = array();
		if ($config['load_cpf_viewprofile'])
		{
			$cp = $phpbb_container->get('profilefields.manager');
			$profile_fields = $cp->grab_profile_fields_data($user_id);
			$profile_fields = (isset($profile_fields[$user_id])) ? $cp->generate_profile_fields_template_data($profile_fields[$user_id]) : array();
		}

		// If the user has m_approve permission or a_user permission, then list then display unapproved posts
		if ($auth->acl_getf_global('m_approve') || $auth->acl_get('a_user'))
		{
			$sql = 'SELECT COUNT(post_id) as posts_in_queue
				FROM ' . POSTS_TABLE . '
				WHERE poster_id = ' . $user_id . '
					AND post_visibility = ' . ITEM_UNAPPROVED;
			$result = $db->sql_query($sql);
			$member['posts_in_queue'] = (int) $db->sql_fetchfield('posts_in_queue');
			$db->sql_freeresult($result);
		}
		else
		{
			$member['posts_in_queue'] = 0;
		}

		$template->assign_vars(array(
			'L_POSTS_IN_QUEUE'	=> $user->lang('NUM_POSTS_IN_QUEUE', $member['posts_in_queue']),

			'POSTS_DAY'			=> $user->lang('POST_DAY', $posts_per_day),
			'POSTS_PCT'			=> $user->lang('POST_PCT', $percentage),

			'SIGNATURE'		=> $member['user_sig'],
			'POSTS_IN_QUEUE'=> $member['posts_in_queue'],

			'AVATAR_IMG'	=> $poster_avatar,
			'PM_IMG'		=> $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']),
			'EMAIL_IMG'		=> $user->img('icon_contact_email', $user->lang['EMAIL']),
			'JABBER_IMG'	=> $user->img('icon_contact_jabber', $user->lang['JABBER']),
			'SEARCH_IMG'	=> $user->img('icon_user_search', $user->lang['SEARCH']),

			'S_PROFILE_ACTION'	=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group'),
			'S_GROUP_OPTIONS'	=> $group_options,
			'S_CUSTOM_FIELDS'	=> (isset($profile_fields['row']) && sizeof($profile_fields['row'])) ? true : false,

			'U_USER_ADMIN'			=> ($auth->acl_get('a_user')) ? append_sid("{$phpbb_admin_path}index.$phpEx", 'i=users&amp;mode=overview&amp;u=' . $user_id, true, $user->session_id) : '',
			'U_USER_BAN'			=> ($auth->acl_get('m_ban') && $user_id != $user->data['user_id']) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=ban&amp;mode=user&amp;u=' . $user_id, true, $user->session_id) : '',
			'U_MCP_QUEUE'			=> ($auth->acl_getf_global('m_approve')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue', true, $user->session_id) : '',

			'U_SWITCH_PERMISSIONS'	=> ($auth->acl_get('a_switchperm') && $user->data['user_id'] != $user_id) ? append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=switch_perm&amp;u={$user_id}&amp;hash=" . generate_link_hash('switchperm')) : '',

			'S_USER_NOTES'		=> ($user_notes_enabled) ? true : false,
			'S_WARN_USER'		=> ($warn_user_enabled) ? true : false,
			'S_ZEBRA'			=> ($user->data['user_id'] != $user_id && $user->data['is_registered'] && $zebra_enabled) ? true : false,
			'U_ADD_FRIEND'		=> (!$friend && !$foe && $friends_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;add=' . urlencode(htmlspecialchars_decode($member['username']))) : '',
			'U_ADD_FOE'			=> (!$friend && !$foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;mode=foes&amp;add=' . urlencode(htmlspecialchars_decode($member['username']))) : '',
			'U_REMOVE_FRIEND'	=> ($friend && $friends_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;remove=1&amp;usernames[]=' . $user_id) : '',
			'U_REMOVE_FOE'		=> ($foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;remove=1&amp;mode=foes&amp;usernames[]=' . $user_id) : '',
		));

		if (!empty($profile_fields['row']))
		{
			$template->assign_vars($profile_fields['row']);
		}

		if (!empty($profile_fields['blockrow']))
		{
			foreach ($profile_fields['blockrow'] as $field_data)
			{
				$template->assign_block_vars('custom_fields', $field_data);
			}
		}

		// Inactive reason/account?
		if ($member['user_type'] == USER_INACTIVE)
		{
			$user->add_lang('acp/common');

			$inactive_reason = $user->lang['INACTIVE_REASON_UNKNOWN'];

			switch ($member['user_inactive_reason'])
			{
				case INACTIVE_REGISTER:
					$inactive_reason = $user->lang['INACTIVE_REASON_REGISTER'];
				break;

				case INACTIVE_PROFILE:
					$inactive_reason = $user->lang['INACTIVE_REASON_PROFILE'];
				break;

				case INACTIVE_MANUAL:
					$inactive_reason = $user->lang['INACTIVE_REASON_MANUAL'];
				break;

				case INACTIVE_REMIND:
					$inactive_reason = $user->lang['INACTIVE_REASON_REMIND'];
				break;
			}

			$template->assign_vars(array(
				'S_USER_INACTIVE'		=> true,
				'USER_INACTIVE_REASON'	=> $inactive_reason)
			);
		}

		// Now generate page title
		$page_title = sprintf($user->lang['VIEWING_PROFILE'], $member['username']);
		$template_html = 'memberlist_view.html';

	break;

	case 'email':

		// Send an email
		$page_title = $user->lang['SEND_EMAIL'];
		$template_html = 'memberlist_email.html';

		add_form_key('memberlist_email');

		if (!$config['email_enable'])
		{
			trigger_error('EMAIL_DISABLED');
		}

		if (!$auth->acl_get('u_sendemail'))
		{
			trigger_error('NO_EMAIL');
		}

		// Are we trying to abuse the facility?
		if (time() - $user->data['user_emailtime'] < $config['flood_interval'])
		{
			trigger_error('FLOOD_EMAIL_LIMIT');
		}

		// Determine action...
		$user_id = request_var('u', 0);
		$topic_id = request_var('t', 0);

		// Send email to user...
		if ($user_id)
		{
			if ($user_id == ANONYMOUS || !$config['board_email_form'])
			{
				trigger_error('NO_EMAIL');
			}

			// Get the appropriate username, etc.
			$sql = 'SELECT username, user_email, user_allow_viewemail, user_lang, user_jabber, user_notify_type
				FROM ' . USERS_TABLE . "
				WHERE user_id = $user_id
					AND user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
			$result = $db->sql_query($sql);
			$row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			if (!$row)
			{
				trigger_error('NO_USER');
			}

			// Can we send email to this user?
			if (!$row['user_allow_viewemail'] && !$auth->acl_get('a_user'))
			{
				trigger_error('NO_EMAIL');
			}
		}
		else if ($topic_id)
		{
			// Send topic heads-up to email address
			$sql = 'SELECT forum_id, topic_title
				FROM ' . TOPICS_TABLE . "
				WHERE topic_id = $topic_id";
			$result = $db->sql_query($sql);
			$row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			if (!$row)
			{
				trigger_error('NO_TOPIC');
			}

			if ($row['forum_id'])
			{
				if (!$auth->acl_get('f_read', $row['forum_id']))
				{
					trigger_error('SORRY_AUTH_READ');
				}

				if (!$auth->acl_get('f_email', $row['forum_id']))
				{
					trigger_error('NO_EMAIL');
				}
			}
			else
			{
				// If global announcement, we need to check if the user is able to at least read and email in one forum...
				if (!$auth->acl_getf_global('f_read'))
				{
					trigger_error('SORRY_AUTH_READ');
				}

				if (!$auth->acl_getf_global('f_email'))
				{
					trigger_error('NO_EMAIL');
				}
			}
		}
		else
		{
			trigger_error('NO_EMAIL');
		}

		$error = array();

		$name		= utf8_normalize_nfc(request_var('name', '', true));
		$email		= request_var('email', '');
		$email_lang = request_var('lang', $config['default_lang']);
		$subject	= utf8_normalize_nfc(request_var('subject', '', true));
		$message	= utf8_normalize_nfc(request_var('message', '', true));
		$cc			= (isset($_POST['cc_email'])) ? true : false;
		$submit		= (isset($_POST['submit'])) ? true : false;

		if ($submit)
		{
			if (!check_form_key('memberlist_email'))
			{
				$error[] = 'FORM_INVALID';
			}
			if ($user_id)
			{
				if (!$subject)
				{
					$error[] = $user->lang['EMPTY_SUBJECT_EMAIL'];
				}

				if (!$message)
				{
					$error[] = $user->lang['EMPTY_MESSAGE_EMAIL'];
				}

				$name = $row['username'];
				$email_lang = $row['user_lang'];
				$email = $row['user_email'];
			}
			else
			{
				if (!$email || !preg_match('/^' . get_preg_expression('email') . '$/i', $email))
				{
					$error[] = $user->lang['EMPTY_ADDRESS_EMAIL'];
				}

				if (!$name)
				{
					$error[] = $user->lang['EMPTY_NAME_EMAIL'];
				}
			}

			if (!sizeof($error))
			{
				$sql = 'UPDATE ' . USERS_TABLE . '
					SET user_emailtime = ' . time() . '
					WHERE user_id = ' . $user->data['user_id'];
				$result = $db->sql_query($sql);

				include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
				$messenger = new messenger(false);
				$email_tpl = ($user_id) ? 'profile_send_email' : 'email_notify';

				$mail_to_users = array();

				$mail_to_users[] = array(
					'email_lang'		=> $email_lang,
					'email'				=> $email,
					'name'				=> $name,
					'username'			=> ($user_id) ? $row['username'] : '',
					'to_name'			=> $name,
					'user_jabber'		=> ($user_id) ? $row['user_jabber'] : '',
					'user_notify_type'	=> ($user_id) ? $row['user_notify_type'] : NOTIFY_EMAIL,
					'topic_title'		=> (!$user_id) ? $row['topic_title'] : '',
					'forum_id'			=> (!$user_id) ? $row['forum_id'] : 0,
				);

				// Ok, now the same email if CC specified, but without exposing the users email address
				if ($cc)
				{
					$mail_to_users[] = array(
						'email_lang'		=> $user->data['user_lang'],
						'email'				=> $user->data['user_email'],
						'name'				=> $user->data['username'],
						'username'			=> $user->data['username'],
						'to_name'			=> $name,
						'user_jabber'		=> $user->data['user_jabber'],
						'user_notify_type'	=> ($user_id) ? $user->data['user_notify_type'] : NOTIFY_EMAIL,
						'topic_title'		=> (!$user_id) ? $row['topic_title'] : '',
						'forum_id'			=> (!$user_id) ? $row['forum_id'] : 0,
					);
				}

				foreach ($mail_to_users as $row)
				{
					$messenger->template($email_tpl, $row['email_lang']);
					$messenger->replyto($user->data['user_email']);
					$messenger->to($row['email'], $row['name']);

					if ($user_id)
					{
						$messenger->subject(htmlspecialchars_decode($subject));
						$messenger->im($row['user_jabber'], $row['username']);
						$notify_type = $row['user_notify_type'];
					}
					else
					{
						$notify_type = NOTIFY_EMAIL;
					}

					$messenger->anti_abuse_headers($config, $user);

					$messenger->assign_vars(array(
						'BOARD_CONTACT'	=> $config['board_contact'],
						'TO_USERNAME'	=> htmlspecialchars_decode($row['to_name']),
						'FROM_USERNAME'	=> htmlspecialchars_decode($user->data['username']),
						'MESSAGE'		=> htmlspecialchars_decode($message))
					);

					if ($topic_id)
					{
						$messenger->assign_vars(array(
							'TOPIC_NAME'	=> htmlspecialchars_decode($row['topic_title']),
							'U_TOPIC'		=> generate_board_url() . "/viewtopic.$phpEx?f=" . $row['forum_id'] . "&t=$topic_id")
						);
					}

					$messenger->send($notify_type);
				}

				meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
				$message = ($user_id) ? sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>') : sprintf($user->lang['RETURN_TOPIC'],  '<a href="' . append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f={$row['forum_id']}&amp;t=$topic_id") . '">', '</a>');
				trigger_error($user->lang['EMAIL_SENT'] . '<br /><br />' . $message);
			}
		}

		if ($user_id)
		{
			$template->assign_vars(array(
				'S_SEND_USER'	=> true,
				'USERNAME'		=> $row['username'],

				'L_EMAIL_BODY_EXPLAIN'	=> $user->lang['EMAIL_BODY_EXPLAIN'],
				'S_POST_ACTION'			=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=email&amp;u=' . $user_id))
			);
		}
		else
		{
			$template->assign_vars(array(
				'EMAIL'				=> $email,
				'NAME'				=> $name,
				'S_LANG_OPTIONS'	=> language_select($email_lang),

				'L_EMAIL_BODY_EXPLAIN'	=> $user->lang['EMAIL_TOPIC_EXPLAIN'],
				'S_POST_ACTION'			=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=email&amp;t=' . $topic_id))
			);
		}

		$template->assign_vars(array(
			'ERROR_MESSAGE'		=> (sizeof($error)) ? implode('<br />', $error) : '',
			'SUBJECT'			=> $subject,
			'MESSAGE'			=> $message,
			)
		);

	break;
	
	case 'livesearch':
		$q=request_var('q', '', true);
		$hint="";
		$sql = "SELECT username, user_id
				FROM " . USERS_TABLE . " u
				WHERE username LIKE '".$q."%' AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ")";	
		$result = $db->sql_query($sql);
		$i=1;
		while ($i<=10 && $row = $db->sql_fetchrow($result))
		{	
			$j=($i%2)+1;
			$hint.="<tr class='bg".$j." row".$j."'><td><a href='" . 
				$phpbb_root_path."memberlist.$phpEx". "?mode=viewprofile&u=" . $row['user_id'] . 
				"' target='_blank'>" . 
				$row['username'] . "</a></td></tr>";
				$i++;
		}
		echo $hint;
		exit();
	break;
	
	case 'group':
	default:
		// The basic memberlist
		$page_title = $user->lang['MEMBERLIST'];
		$template_html = 'memberlist_body.html';
		$pagination = $phpbb_container->get('pagination');

		// Sorting
		$sort_key_text = array('a' => $user->lang['SORT_USERNAME'], 'c' => $user->lang['SORT_JOINED'], 'd' => $user->lang['SORT_POST_COUNT'], 'k' => $user->lang['JABBER']);
		$sort_key_sql = array('a' => 'u.username_clean', 'c' => 'u.user_regdate', 'd' => 'u.user_posts',  'k' => 'u.user_jabber');

		if ($auth->acl_get('a_user'))
		{
			$sort_key_text['e'] = $user->lang['SORT_EMAIL'];
			$sort_key_sql['e'] = 'u.user_email';
		}

		if ($auth->acl_get('u_viewonline'))
		{
			$sort_key_text['l'] = $user->lang['SORT_LAST_ACTIVE'];
			$sort_key_sql['l'] = 'u.user_lastvisit';
		}

		$sort_key_text['m'] = $user->lang['SORT_RANK'];
		$sort_key_sql['m'] = 'u.user_rank';

		$sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']);

		$s_sort_key = '';
		foreach ($sort_key_text as $key => $value)
		{
			$selected = ($sort_key == $key) ? ' selected="selected"' : '';
			$s_sort_key .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
		}

		$s_sort_dir = '';
		foreach ($sort_dir_text as $key => $value)
		{
			$selected = ($sort_dir == $key) ? ' selected="selected"' : '';
			$s_sort_dir .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
		}

		// Additional sorting options for user search ... if search is enabled, if not
		// then only admins can make use of this (for ACP functionality)
		$sql_select = $sql_where_data = $sql_from = $sql_where = $order_by = '';


		$form			= request_var('form', '');
		$field			= request_var('field', '');
		$select_single 	= request_var('select_single', false);

		// Search URL parameters, if any of these are in the URL we do a search
		$search_params = array('username', 'email', 'jabber', 'search_group_id', 'joined_select', 'active_select', 'count_select', 'joined', 'active', 'count', 'ip');

		// We validate form and field here, only id/class allowed
		$form = (!preg_match('/^[a-z0-9_-]+$/i', $form)) ? '' : $form;
		$field = (!preg_match('/^[a-z0-9_-]+$/i', $field)) ? '' : $field;
		if ((($mode == '' || $mode == 'searchuser') || sizeof(array_intersect($request->variable_names(\phpbb\request\request_interface::GET), $search_params)) > 0) && ($config['load_search'] || $auth->acl_get('a_')))
		{
			$username	= request_var('username', '', true);
			$email		= strtolower(request_var('email', ''));
			$jabber		= request_var('jabber', '');
			$search_group_id	= request_var('search_group_id', 0);

			// when using these, make sure that we actually have values defined in $find_key_match
			$joined_select	= request_var('joined_select', 'lt');
			$active_select	= request_var('active_select', 'lt');
			$count_select	= request_var('count_select', 'eq');

			$joined			= explode('-', request_var('joined', ''));
			$active			= explode('-', request_var('active', ''));
			$count			= (request_var('count', '') !== '') ? request_var('count', 0) : '';
			$ipdomain		= request_var('ip', '');

			$find_key_match = array('lt' => '<', 'gt' => '>', 'eq' => '=');

			$find_count = array('lt' => $user->lang['LESS_THAN'], 'eq' => $user->lang['EQUAL_TO'], 'gt' => $user->lang['MORE_THAN']);
			$s_find_count = '';
			foreach ($find_count as $key => $value)
			{
				$selected = ($count_select == $key) ? ' selected="selected"' : '';
				$s_find_count .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
			}

			$find_time = array('lt' => $user->lang['BEFORE'], 'gt' => $user->lang['AFTER']);
			$s_find_join_time = '';
			foreach ($find_time as $key => $value)
			{
				$selected = ($joined_select == $key) ? ' selected="selected"' : '';
				$s_find_join_time .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
			}

			$s_find_active_time = '';
			foreach ($find_time as $key => $value)
			{
				$selected = ($active_select == $key) ? ' selected="selected"' : '';
				$s_find_active_time .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
			}

			$sql_where .= ($username) ? ' AND u.username_clean ' . $db->sql_like_expression(str_replace('*', $db->any_char, utf8_clean_string($username))) : '';
			$sql_where .= ($auth->acl_get('a_user') && $email) ? ' AND u.user_email ' . $db->sql_like_expression(str_replace('*', $db->any_char, $email)) . ' ' : '';
			$sql_where .= ($jabber) ? ' AND u.user_jabber ' . $db->sql_like_expression(str_replace('*', $db->any_char, $jabber)) . ' ' : '';
			$sql_where .= (is_numeric($count) && isset($find_key_match[$count_select])) ? ' AND u.user_posts ' . $find_key_match[$count_select] . ' ' . (int) $count . ' ' : '';

			if (isset($find_key_match[$joined_select]) && sizeof($joined) == 3)
			{
				$joined_time = gmmktime(0, 0, 0, (int) $joined[1], (int) $joined[2], (int) $joined[0]);

				if ($joined_time !== false)
				{
					$sql_where .= " AND u.user_regdate " . $find_key_match[$joined_select] . ' ' . $joined_time;
				}
			}

			if (isset($find_key_match[$active_select]) && sizeof($active) == 3 && $auth->acl_get('u_viewonline'))
			{
				$active_time = gmmktime(0, 0, 0, (int) $active[1], (int) $active[2], (int) $active[0]);

				if ($active_time !== false)
				{
					$sql_where .= " AND u.user_lastvisit " . $find_key_match[$active_select] . ' ' . $active_time;
				}
			}

			$sql_where .= ($search_group_id) ? " AND u.user_id = ug.user_id AND ug.group_id = $search_group_id AND ug.user_pending = 0 " : '';

			if ($search_group_id)
			{
				$sql_from = ', ' . USER_GROUP_TABLE . ' ug ';
			}

			if ($ipdomain && $auth->acl_getf_global('m_info'))
			{
				if (strspn($ipdomain, 'abcdefghijklmnopqrstuvwxyz'))
				{
					$hostnames = gethostbynamel($ipdomain);

					if ($hostnames !== false)
					{
						$ips = "'" . implode('\', \'', array_map(array($db, 'sql_escape'), preg_replace('#([0-9]{1,3}\.[0-9]{1,3}[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})#', "\\1", gethostbynamel($ipdomain)))) . "'";
					}
					else
					{
						$ips = false;
					}
				}
				else
				{
					$ips = "'" . str_replace('*', '%', $db->sql_escape($ipdomain)) . "'";
				}

				if ($ips === false)
				{
					// A minor fudge but it does the job :D
					$sql_where .= " AND u.user_id = 0";
				}
				else
				{
					$ip_forums = array_keys($auth->acl_getf('m_info', true));

					$sql = 'SELECT DISTINCT poster_id
						FROM ' . POSTS_TABLE . '
						WHERE poster_ip ' . ((strpos($ips, '%') !== false) ? 'LIKE' : 'IN') . " ($ips)
							AND " . $db->sql_in_set('forum_id', $ip_forums);
					$result = $db->sql_query($sql);

					if ($row = $db->sql_fetchrow($result))
					{
						$ip_sql = array();
						do
						{
							$ip_sql[] = $row['poster_id'];
						}
						while ($row = $db->sql_fetchrow($result));

						$sql_where .= ' AND ' . $db->sql_in_set('u.user_id', $ip_sql);
					}
					else
					{
						// A minor fudge but it does the job :D
						$sql_where .= " AND u.user_id = 0";
					}
					unset($ip_forums);

					$db->sql_freeresult($result);
				}
			}
		}

		$first_char = request_var('first_char', '');

		if ($first_char == 'other')
		{
			for ($i = 97; $i < 123; $i++)
			{
				$sql_where .= ' AND u.username_clean NOT ' . $db->sql_like_expression(chr($i) . $db->any_char);
			}
		}
		else if ($first_char)
		{
			$sql_where .= ' AND u.username_clean ' . $db->sql_like_expression(substr($first_char, 0, 1) . $db->any_char);
		}

		// Are we looking at a usergroup? If so, fetch additional info
		// and further restrict the user info query
		if ($mode == 'group')
		{
			// We JOIN here to save a query for determining membership for hidden groups. ;)
			$sql = 'SELECT g.*, ug.user_id
				FROM ' . GROUPS_TABLE . ' g
				LEFT JOIN ' . USER_GROUP_TABLE . ' ug ON (ug.user_pending = 0 AND ug.user_id = ' . $user->data['user_id'] . " AND ug.group_id = $group_id)
				WHERE g.group_id = $group_id";
			$result = $db->sql_query($sql);
			$group_row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			if (!$group_row)
			{
				trigger_error('NO_GROUP');
			}

			switch ($group_row['group_type'])
			{
				case GROUP_OPEN:
					$group_row['l_group_type'] = 'OPEN';
				break;

				case GROUP_CLOSED:
					$group_row['l_group_type'] = 'CLOSED';
				break;

				case GROUP_HIDDEN:
					$group_row['l_group_type'] = 'HIDDEN';

					// Check for membership or special permissions
					if (!$auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel') && $group_row['user_id'] != $user->data['user_id'])
					{
						trigger_error('NO_GROUP');
					}
				break;

				case GROUP_SPECIAL:
					$group_row['l_group_type'] = 'SPECIAL';
				break;

				case GROUP_FREE:
					$group_row['l_group_type'] = 'FREE';
				break;
			}

			$avatar_img = phpbb_get_group_avatar($group_row);

			// ... same for group rank
			$rank_title = $rank_img = $rank_img_src = '';
			if ($group_row['group_rank'])
			{
				get_user_rank($group_row['group_rank'], false, $rank_title, $rank_img, $rank_img_src);

				if ($rank_img)
				{
					$rank_img .= '<br />';
				}
			}

			$template->assign_vars(array(
				'GROUP_DESC'	=> generate_text_for_display($group_row['group_desc'], $group_row['group_desc_uid'], $group_row['group_desc_bitfield'], $group_row['group_desc_options']),
				'GROUP_NAME'	=> ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name'],
				'GROUP_COLOR'	=> $group_row['group_colour'],
				'GROUP_TYPE'	=> $user->lang['GROUP_IS_' . $group_row['l_group_type']],
				'GROUP_RANK'	=> $rank_title,

				'AVATAR_IMG'	=> $avatar_img,
				'RANK_IMG'		=> $rank_img,
				'RANK_IMG_SRC'	=> $rank_img_src,

				'U_PM'			=> ($auth->acl_get('u_sendpm') && $auth->acl_get('u_masspm_group') && $group_row['group_receive_pm'] && $config['allow_privmsg'] && $config['allow_mass_pm']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose&amp;g=' . $group_id) : '',)
			);

			$sql_select = ', ug.group_leader';
			$sql_from = ', ' . USER_GROUP_TABLE . ' ug ';
			$order_by = 'ug.group_leader DESC, ';

			$sql_where .= " AND ug.user_pending = 0 AND u.user_id = ug.user_id AND ug.group_id = $group_id";
			$sql_where_data = " AND u.user_id = ug.user_id AND ug.group_id = $group_id";
		}

		// Sorting and order
		if (!isset($sort_key_sql[$sort_key]))
		{
			$sort_key = $default_key;
		}

		$order_by .= $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC');

		// Unfortunately we must do this here for sorting by rank, else the sort order is applied wrongly
		if ($sort_key == 'm')
		{
			$order_by .= ', u.user_posts DESC';
		}

		// Count the users ...
		if ($sql_where)
		{
			$sql = 'SELECT COUNT(u.user_id) AS total_users
				FROM ' . USERS_TABLE . " u$sql_from
				WHERE u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ")
				$sql_where";
			$result = $db->sql_query($sql);
			$total_users = (int) $db->sql_fetchfield('total_users');
			$db->sql_freeresult($result);
		}
		else
		{
			$total_users = $config['num_users'];
		}

		// Build a relevant pagination_url
		$params = $sort_params = array();

		// We do not use request_var() here directly to save some calls (not all variables are set)
		$check_params = array(
			'g'				=> array('g', 0),
			'sk'			=> array('sk', $default_key),
			'sd'			=> array('sd', 'a'),
			'form'			=> array('form', ''),
			'field'			=> array('field', ''),
			'select_single'	=> array('select_single', $select_single),
			'username'		=> array('username', '', true),
			'email'			=> array('email', ''),
			'jabber'		=> array('jabber', ''),
			'search_group_id'	=> array('search_group_id', 0),
			'joined_select'	=> array('joined_select', 'lt'),
			'active_select'	=> array('active_select', 'lt'),
			'count_select'	=> array('count_select', 'eq'),
			'joined'		=> array('joined', ''),
			'active'		=> array('active', ''),
			'count'			=> (request_var('count', '') !== '') ? array('count', 0) : array('count', ''),
			'ip'			=> array('ip', ''),
			'first_char'	=> array('first_char', ''),
		);

		$u_first_char_params = array();
		foreach ($check_params as $key => $call)
		{
			if (!isset($_REQUEST[$key]))
			{
				continue;
			}

			$param = call_user_func_array('request_var', $call);
			$param = urlencode($key) . '=' . ((is_string($param)) ? urlencode($param) : $param);
			$params[] = $param;

			if ($key != 'first_char')
			{
				$u_first_char_params[] = $param;
			}
			if ($key != 'sk' && $key != 'sd')
			{
				$sort_params[] = $param;
			}
		}

		$u_hide_find_member = append_sid("{$phpbb_root_path}memberlist.$phpEx", "start=$start" . (!empty($params) ? '&amp;' . implode('&amp;', $params) : ''));

		if ($mode)
		{
			$params[] = "mode=$mode";
			$u_first_char_params[] = "mode=$mode";
		}
		$sort_params[] = "mode=$mode";

		$pagination_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&amp;', $params));
		$sort_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&amp;', $sort_params));

		unset($search_params, $sort_params);

		$u_first_char_params = implode('&amp;', $u_first_char_params);
		$u_first_char_params .= ($u_first_char_params) ? '&amp;' : '';

		$first_characters = array();
		$first_characters[''] = $user->lang['ALL'];
		for ($i = 97; $i < 123; $i++)
		{
			$first_characters[chr($i)] = chr($i - 32);
		}
		$first_characters['other'] = $user->lang['OTHER'];

		foreach ($first_characters as $char => $desc)
		{
			$template->assign_block_vars('first_char', array(
				'DESC'			=> $desc,
				'VALUE'			=> $char,
				'S_SELECTED'	=> ($first_char == $char) ? true : false,
				'U_SORT'		=> append_sid("{$phpbb_root_path}memberlist.$phpEx", $u_first_char_params . 'first_char=' . $char) . '#memberlist',
			));
		}

		// Some search user specific data
		if (($mode == '' || $mode == 'searchuser') && ($config['load_search'] || $auth->acl_get('a_')))
		{
			$group_selected = request_var('search_group_id', 0);
			$s_group_select = '<option value="0"' . ((!$group_selected) ? ' selected="selected"' : '') . '>&nbsp;</option>';
			$group_ids = array();

			/**
			* @todo add this to a separate function (function is responsible for returning the groups the user is able to see based on the users group membership)
			*/

			if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
			{
				$sql = 'SELECT group_id, group_name, group_type
					FROM ' . GROUPS_TABLE;

				if (!$config['coppa_enable'])
				{
					$sql .= " WHERE group_name <> 'REGISTERED_COPPA'";
				}

				$sql .= ' ORDER BY group_name ASC';
			}
			else
			{
				$sql = 'SELECT g.group_id, g.group_name, g.group_type
					FROM ' . GROUPS_TABLE . ' g
					LEFT JOIN ' . USER_GROUP_TABLE . ' ug
						ON (
							g.group_id = ug.group_id
							AND ug.user_id = ' . $user->data['user_id'] . '
							AND ug.user_pending = 0
						)
					WHERE (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')';

				if (!$config['coppa_enable'])
				{
					$sql .= " AND g.group_name <> 'REGISTERED_COPPA'";
				}

				$sql .= ' ORDER BY g.group_name ASC';
			}
			$result = $db->sql_query($sql);

			while ($row = $db->sql_fetchrow($result))
			{
				$group_ids[] = $row['group_id'];
				$s_group_select .= '<option value="' . $row['group_id'] . '"' . (($group_selected == $row['group_id']) ? ' selected="selected"' : '') . '>' . (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']) . '</option>';
			}
			$db->sql_freeresult($result);

			if ($group_selected !== 0 && !in_array($group_selected, $group_ids))
			{
				trigger_error('NO_GROUP');
			}

			$template->assign_vars(array(
				'USERNAME'	=> $username,
				'EMAIL'		=> $email,
				'JABBER'	=> $jabber,
				'JOINED'	=> implode('-', $joined),
				'ACTIVE'	=> implode('-', $active),
				'COUNT'		=> $count,
				'IP'		=> $ipdomain,

				'S_IP_SEARCH_ALLOWED'	=> ($auth->acl_getf_global('m_info')) ? true : false,
				'S_EMAIL_SEARCH_ALLOWED'=> ($auth->acl_get('a_user')) ? true : false,
				'S_IN_SEARCH_POPUP'		=> ($form && $field) ? true : false,
				'S_SEARCH_USER'			=> ($mode == 'searchuser' || ($mode == '' && $submit)),
				'S_FORM_NAME'			=> $form,
				'S_FIELD_NAME'			=> $field,
				'S_SELECT_SINGLE'		=> $select_single,
				'S_COUNT_OPTIONS'		=> $s_find_count,
				'S_SORT_OPTIONS'		=> $s_sort_key,
				'S_JOINED_TIME_OPTIONS'	=> $s_find_join_time,
				'S_ACTIVE_TIME_OPTIONS'	=> $s_find_active_time,
				'S_GROUP_SELECT'		=> $s_group_select,
				'S_USER_SEARCH_ACTION'	=> append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=searchuser&amp;form=$form&amp;field=$field"),
				'S_LIVE_SEARCH_ACTION'  => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=livesearch", $is_amp = false))
			);
		}

		$start = $pagination->validate_start($start, $config['topics_per_page'], $config['num_users']);

		// Get us some users :D
		$sql = "SELECT u.user_id
			FROM " . USERS_TABLE . " u
				$sql_from
			WHERE u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ")
				$sql_where
			ORDER BY $order_by";
		$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);

		$user_list = array();
		while ($row = $db->sql_fetchrow($result))
		{
			$user_list[] = (int) $row['user_id'];
		}
		$db->sql_freeresult($result);

		// Load custom profile fields
		if ($config['load_cpf_memberlist'])
		{
			$cp = $phpbb_container->get('profilefields.manager');

			$cp_row = $cp->generate_profile_fields_template_headlines('field_show_on_ml');
			foreach ($cp_row as $profile_field)
			{
				$template->assign_block_vars('custom_fields', $profile_field);
			}
		}

		$leaders_set = false;
		// So, did we get any users?
		if (sizeof($user_list))
		{
			// Session time?! Session time...
			$sql = 'SELECT session_user_id, MAX(session_time) AS session_time
				FROM ' . SESSIONS_TABLE . '
				WHERE session_time >= ' . (time() - $config['session_length']) . '
					AND ' . $db->sql_in_set('session_user_id', $user_list) . '
				GROUP BY session_user_id';
			$result = $db->sql_query($sql);

			$session_times = array();
			while ($row = $db->sql_fetchrow($result))
			{
				$session_times[$row['session_user_id']] = $row['session_time'];
			}
			$db->sql_freeresult($result);

			// Do the SQL thang
			if ($mode == 'group')
			{
				$sql = "SELECT u.*
						$sql_select
					FROM " . USERS_TABLE . " u
						$sql_from
					WHERE " . $db->sql_in_set('u.user_id', $user_list) . "
						$sql_where_data";
			}
			else
			{
				$sql = 'SELECT *
					FROM ' . USERS_TABLE . '
					WHERE ' . $db->sql_in_set('user_id', $user_list);
			}
			$result = $db->sql_query($sql);

			$id_cache = array();
			while ($row = $db->sql_fetchrow($result))
			{
				$row['session_time'] = (!empty($session_times[$row['user_id']])) ? $session_times[$row['user_id']] : 0;
				$row['last_visit'] = (!empty($row['session_time'])) ? $row['session_time'] : $row['user_lastvisit'];

				$id_cache[$row['user_id']] = $row;
			}
			$db->sql_freeresult($result);

			// Load custom profile fields
			if ($config['load_cpf_memberlist'])
			{
				// Grab all profile fields from users in id cache for later use - similar to the poster cache
				$profile_fields_cache = $cp->grab_profile_fields_data($user_list);

				// Filter the fields we don't want to show
				foreach ($profile_fields_cache as $user_id => $user_profile_fields)
				{
					foreach ($user_profile_fields as $field_ident => $profile_field)
					{
						if (!$profile_field['data']['field_show_on_ml'])
						{
							unset($profile_fields_cache[$user_id][$field_ident]);
						}
					}
				}
			}

			// If we sort by last active date we need to adjust the id cache due to user_lastvisit not being the last active date...
			if ($sort_key == 'l')
			{
//				uasort($id_cache, create_function('$first, $second', "return (\$first['last_visit'] == \$second['last_visit']) ? 0 : ((\$first['last_visit'] < \$second['last_visit']) ? $lesser_than : ($lesser_than * -1));"));
				usort($user_list,  '_sort_last_active');
			}

			for ($i = 0, $end = sizeof($user_list); $i < $end; ++$i)
			{
				$user_id = $user_list[$i];
				$row = $id_cache[$user_id];
				$is_leader = (isset($row['group_leader']) && $row['group_leader']) ? true : false;
				$leaders_set = ($leaders_set || $is_leader);

				$cp_row = array();
				if ($config['load_cpf_memberlist'])
				{
					$cp_row = (isset($profile_fields_cache[$user_id])) ? $cp->generate_profile_fields_template_data($profile_fields_cache[$user_id], false) : array();
				}

				$memberrow = array_merge(show_profile($row), array(
					'ROW_NUMBER'		=> $i + ($start + 1),

					'S_CUSTOM_PROFILE'	=> (isset($cp_row['row']) && sizeof($cp_row['row'])) ? true : false,
					'S_GROUP_LEADER'	=> $is_leader,

					'U_VIEW_PROFILE'	=> get_username_string('profile', $user_id, $row['username']),
				));

				if (isset($cp_row['row']) && sizeof($cp_row['row']))
				{
					$memberrow = array_merge($memberrow, $cp_row['row']);
				}

				$template->assign_block_vars('memberrow', $memberrow);

				if (isset($cp_row['blockrow']) && sizeof($cp_row['blockrow']))
				{
					foreach ($cp_row['blockrow'] as $field_data)
					{
						$template->assign_block_vars('memberrow.custom_fields', $field_data);
					}
				}

				unset($id_cache[$user_id]);
			}
		}

		$pagination->generate_template_pagination($pagination_url, 'pagination', 'start', $total_users, $config['topics_per_page'], $start);

		// Generate page
		$template->assign_vars(array(
			'TOTAL_USERS'	=> $user->lang('LIST_USERS', (int) $total_users),

			'PROFILE_IMG'	=> $user->img('icon_user_profile', $user->lang['PROFILE']),
			'PM_IMG'		=> $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']),
			'EMAIL_IMG'		=> $user->img('icon_contact_email', $user->lang['EMAIL']),
			'JABBER_IMG'	=> $user->img('icon_contact_jabber', $user->lang['JABBER']),
			'SEARCH_IMG'	=> $user->img('icon_user_search', $user->lang['SEARCH']),

			'U_FIND_MEMBER'			=> ($config['load_search'] || $auth->acl_get('a_')) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser' . (($start) ? "&amp;start=$start" : '') . (!empty($params) ? '&amp;' . implode('&amp;', $params) : '')) : '',
			'U_HIDE_FIND_MEMBER'	=> ($mode == 'searchuser' || ($mode == '' && $submit)) ? $u_hide_find_member : '',
			'U_SORT_USERNAME'		=> $sort_url . '&amp;sk=a&amp;sd=' . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
			'U_SORT_JOINED'			=> $sort_url . '&amp;sk=c&amp;sd=' . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'),
			'U_SORT_POSTS'			=> $sort_url . '&amp;sk=d&amp;sd=' . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'),
			'U_SORT_EMAIL'			=> $sort_url . '&amp;sk=e&amp;sd=' . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'),
			'U_SORT_ACTIVE'			=> ($auth->acl_get('u_viewonline')) ? $sort_url . '&amp;sk=l&amp;sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a') : '',
			'U_SORT_RANK'			=> $sort_url . '&amp;sk=m&amp;sd=' . (($sort_key == 'm' && $sort_dir == 'a') ? 'd' : 'a'),
			'U_LIST_CHAR'			=> $sort_url . '&amp;sk=a&amp;sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a'),

			'S_SHOW_GROUP'		=> ($mode == 'group') ? true : false,
			'S_VIEWONLINE'		=> $auth->acl_get('u_viewonline'),
			'S_LEADERS_SET'		=> $leaders_set,
			'S_MODE_SELECT'		=> $s_sort_key,
			'S_ORDER_SELECT'	=> $s_sort_dir,
			'S_MODE_ACTION'		=> $pagination_url)
		);
}

// Output the page
page_header($page_title);

$template->set_filenames(array(
	'body' => $template_html)
);
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

page_footer();

/**
* Prepare profile data
*/
function show_profile($data, $user_notes_enabled = false, $warn_user_enabled = false)
{
	global $config, $auth, $template, $user, $phpEx, $phpbb_root_path, $phpbb_dispatcher;

	$username = $data['username'];
	$user_id = $data['user_id'];

	$rank_title = $rank_img = $rank_img_src = '';
	get_user_rank($data['user_rank'], (($user_id == ANONYMOUS) ? false : $data['user_posts']), $rank_title, $rank_img, $rank_img_src);

	if ((!empty($data['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_user'))
	{
		$email = ($config['board_email_form'] && $config['email_enable']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=email&amp;u=' . $user_id) : (($config['board_hide_emails'] && !$auth->acl_get('a_user')) ? '' : 'mailto:' . $data['user_email']);
	}
	else
	{
		$email = '';
	}

	if ($config['load_onlinetrack'])
	{
		$update_time = $config['load_online_time'] * 60;
		$online = (time() - $update_time < $data['session_time'] && ((isset($data['session_viewonline']) && $data['session_viewonline']) || $auth->acl_get('u_viewonline'))) ? true : false;
	}
	else
	{
		$online = false;
	}

	if ($data['user_allow_viewonline'] || $auth->acl_get('u_viewonline'))
	{
		$last_active = (!empty($data['session_time'])) ? $data['session_time'] : $data['user_lastvisit'];
	}
	else
	{
		$last_active = '';
	}

	$age = '';

	if ($config['allow_birthdays'] && $data['user_birthday'])
	{
		list($bday_day, $bday_month, $bday_year) = array_map('intval', explode('-', $data['user_birthday']));

		if ($bday_year)
		{
			$now = $user->create_datetime();
			$now = phpbb_gmgetdate($now->getTimestamp() + $now->getOffset());

			$diff = $now['mon'] - $bday_month;
			if ($diff == 0)
			{
				$diff = ($now['mday'] - $bday_day < 0) ? 1 : 0;
			}
			else
			{
				$diff = ($diff < 0) ? 1 : 0;
			}

			$age = max(0, (int) ($now['year'] - $bday_year - $diff));
		}
	}

	// Dump it out to the template
	$template_data = array(
		'AGE'			=> $age,
		'RANK_TITLE'	=> $rank_title,
		'JOINED'		=> $user->format_date($data['user_regdate']),
		'LAST_ACTIVE'		=> (empty($last_active)) ? ' - ' : $user->format_date($last_active),
		'POSTS'			=> ($data['user_posts']) ? $data['user_posts'] : 0,
		'WARNINGS'		=> isset($data['user_warnings']) ? $data['user_warnings'] : 0,

		'USERNAME_FULL'		=> get_username_string('full', $user_id, $username, $data['user_colour']),
		'USERNAME'			=> get_username_string('username', $user_id, $username, $data['user_colour']),
		'USER_COLOR'		=> get_username_string('colour', $user_id, $username, $data['user_colour']),
		'U_VIEW_PROFILE'	=> get_username_string('profile', $user_id, $username, $data['user_colour']),

		'A_USERNAME'		=> addslashes(get_username_string('username', $user_id, $username, $data['user_colour'])),

		'AVATAR_IMG'		=> phpbb_get_user_avatar($data),
		'ONLINE_IMG'		=> (!$config['load_onlinetrack']) ? '' : (($online) ? $user->img('icon_user_online', 'ONLINE') : $user->img('icon_user_offline', 'OFFLINE')),
		'S_ONLINE'			=> ($config['load_onlinetrack'] && $online) ? true : false,
		'RANK_IMG'			=> $rank_img,
		'RANK_IMG_SRC'		=> $rank_img_src,
		'S_JABBER_ENABLED'	=> ($config['jab_enable']) ? true : false,

		'S_WARNINGS'	=> ($auth->acl_getf_global('m_') || $auth->acl_get('m_warn')) ? true : false,

		'U_SEARCH_USER'	=> ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", "author_id=$user_id&amp;sr=posts") : '',
		'U_NOTES'		=> ($user_notes_enabled && $auth->acl_getf_global('m_')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=notes&amp;mode=user_notes&amp;u=' . $user_id, true, $user->session_id) : '',
		'U_WARN'		=> ($warn_user_enabled && $auth->acl_get('m_warn')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=warn&amp;mode=warn_user&amp;u=' . $user_id, true, $user->session_id) : '',
		'U_PM'			=> ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($data['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose&amp;u=' . $user_id) : '',
		'U_EMAIL'		=> $email,
		'U_JABBER'		=> ($data['user_jabber'] && $auth->acl_get('u_sendim')) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=contact&amp;action=jabber&amp;u=' . $user_id) : '',

		'USER_JABBER'		=> $data['user_jabber'],
		'USER_JABBER_IMG'	=> ($data['user_jabber']) ? $user->img('icon_contact_jabber', $data['user_jabber']) : '',

		'L_VIEWING_PROFILE'	=> sprintf($user->lang['VIEWING_PROFILE'], $username),
	);

	/**
	* Preparing a user's data before displaying it in profile and memberlist
	*
	* @event core.memberlist_prepare_profile_data
	* @var	array	data				Array with user's data
	* @var	array	template_data		Template array with user's data
	* @since 3.1-A1
	*/
	$vars = array('data', 'template_data');
	extract($phpbb_dispatcher->trigger_event('core.memberlist_prepare_profile_data', compact($vars)));

	return $template_data;
}

function _sort_last_active($first, $second)
{
	global $id_cache, $sort_dir;

	$lesser_than = ($sort_dir === 'd') ? -1 : 1;

	if (isset($id_cache[$first]['group_leader']) && $id_cache[$first]['group_leader'] && (!isset($id_cache[$second]['group_leader']) || !$id_cache[$second]['group_leader']))
	{
		return -1;
	}
	else if (isset($id_cache[$second]['group_leader']) && (!isset($id_cache[$first]['group_leader']) || !$id_cache[$first]['group_leader']) && $id_cache[$second]['group_leader'])
	{
		return 1;
	}
	else
	{
		return $lesser_than * (int) ($id_cache[$first]['last_visit'] - $id_cache[$second]['last_visit']);
	}
}
ass='del'>-}
-
-.poem p {
- padding-left: 0.5em;
- border-left: 1px solid #FFD700;
- }
-
-/* HeaderTabs */
-
-#headertabs {
- border: 1px solid #AAAAAA;
- }
-
-/* Syntax Hightlight Geshi */
-.mw-geshi {
- padding: 1em;
- margin: 1em 0;
- border: 1px dashed #2fab6f;
- border-radius: 6px;
- overflow-y: hidden;
-}
-
-.mw-geshi ol {
- padding-left: 1em;
-}
-
-/* Cite Extension */
-ol.references {
- font-size: 0.9em;
-}
-
-sup.reference {
- font-size: 0.8em;
- line-height: 0.8em;
- vertical-align: top;
- position: relative;
- top: -0.2em;
- white-space: nowrap;
-}
-
-.reference * {
- vertical-align: top;
-}
-
-ol.references>li:target {
- background-color: #def;
-}
-
-sup.reference:target {
- background-color: #def;
-}
-
-/* Google Maps */
-.pmap {
- margin-top: -5px;
- margin-bottom: 5px;
-}
-
-.google-map {
- margin-bottom: 1.5em;
- width: auto;
-}
-
-/* Semantic MediaWiki */
-table.smwtable tr.smwfooter td.sortbottom {
- padding-top: 3px;
- padding-bottom: 3px;
-}
-
-table.smwtable {
- margin: 1em 1em 1em 0;
- border: 1px #aaa solid;
- border-collapse: collapse;
- empty-cells: show;
- border-radius: 6px;
-}
-
-table.smwtable th {
- background-color: #e0e9e9;
- border: 1px #aaa solid;
- padding: 0.2em;
- white-space: nowrap;
- padding: 0.2em;
-}
-
-table.smwtable td {
- border: 1px #aaa solid;
- padding: 0.2em;
-}
-
-table.smwtable caption {
- margin-left: inherit;
- margin-right: inherit;
- font-weight: bold;
-}
-
-table.smwtable tr.row-odd {
- background-color: #F9F9F9;
-}
-table.smwtable tr.row-odd td{
- border-top: none;
- border-bottom: none;
-}
-
-table.smwtable tr.row-even {
- background-color: #F1F1F1;
-}
-table.smwtable tr.row-even td{
- border-top: none;
- border-bottom: none;
-}
-
-.smwttactiveinline {
- white-space: nowrap;
-}
-
-.smwfact {
- border-radius: 6px;
- box-shadow: 2px 2px 2px grey;
-}
-
-#content div.smwfact table.smwfacttable {
- border-radius: 0px;
-}
-
-.smwtt {
- font-size: 10pt;
-}
-
-#content table.smwb-factbox, #content table.smwb-ifactbox {
- border-radius: 0px;
-}
-
-/* Semantic Drilldown */
-div div#drilldown-categories-wrapper {
- padding-left: 0;
- padding-right: 0;
-}
-/* Semantic Forms */
-input.createboxInput {
- margin-top: 1px;
- margin-bottom: 1px;
-}
-/*
-.mandatoryFieldSpan {
- border: 1px solid #8B0000;
- border-radius: 3px;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- background: #FFA07A;
-}
-
-.inputSpan {
- padding-top: 5px;
- padding-bottom: 7px;
-}
-*/
-
-.formtable td {
- padding-top: 7px;
- padding-bottom: 7px;
-}
-
-.formtable th {
- padding-top: 7px;
- padding-bottom: 7px;
- padding-right: 4px;
-}
-
-#sfForm div.warningbox {
- border: 1px solid #FF8C00 !important;
-}
-
-.checkboxLabel, .ui-widget {
- white-space: nowrap;
-}
-
-
-/* Semantic Result Formats */
-#bodyContent table.navigation_table tr td.month_name {
- font-size: 18pt;
-}
-
-#bodyContent table.month_calendar tr.weekdays {
- background: #E0E9E9;
-}
-
-#bodyContent table.month_calendar td.today div.day {
- background: #E0E9E9;
-}
-
-#bodyContent table.month_calendar td.weekend_day div.day {
- color: red;
-}
-
-#bodyContent .srf-datatables select {
- padding: 4px;
-}
-
-/* WikiEditor */
-div.wikiEditor-ui div.section {
- padding-left: 0;
-}
-
-div.wikiEditor-ui div.wikiEditor-ui-top {
- font-size: 8.5pt;
-}
-
-div.wikiEditor-ui div.wikiEditor-ui-tabs div{
- font-size: 9pt;
- padding-bottom: 1px;
-}
-
-/* Liquid Threads */
-div.lqt-thread-toolbar {
- right: 3em;
-}
-
-.lqt-thread-toolbar-command-list {
- display: inline;
-}
-
-.lqt-talkpage-header {
- border-radius: 6px;
- border-width: 1px;
- }
-
-.lqt_header_content {
- border-bottom-right-radius: 6px;
- border-width: 1px;
- }
-
-body.skin-cavendish a.lqt_watchlist_messages_notice {
- border-radius: 6px;
- background-color: #F2DEDE;
- border-color: #EED3D7;
- color: #B94A48;
- padding: 0.5em 1.5em;
-}
-
-/* Flagged Revisions */
-div.flaggedrevs_basic, div.flaggedrevs_quality, div.flaggedrevs_pristine, div.flaggedrevs_notice {
- border-radius: 6px;
-}
-
-table.flaggedrevs_editnotice {
- margin-bottom: 1em;
-}
-
-/* OpenID */
-#p-personal .pBody li#pt-openidlogin {
- background: none;
- padding-left: 0;
-}
-
-.openid_large_link {
- border-radius: 6px;
- border-width: 1px;
-}
-.openid_small_providers_block {
- padding-right: 5em;
-}
-#provider_form_openid input {
- margin-top: 5px;
-}
-
-/* Input Box */
-.inputbox-element {
- white-space: nowrap;
- display: inline-block;
-}
-
-/* 4sq */
-table .tips-4sq blockquote {
- margin-right: 20px;
- margin-left: 20px;
- overflow-wrap: break-word;
- word-wrap: break-word;
-}
-
-/* yelp */
-table .yelp-reviews blockquote {
- margin-right: 20px;
- margin-left: 20px;
-}
-
-/* Social Sidebar WeCoWi*/
-
-#nav div li span.social {
- padding-bottom: 6px;
- padding-top: 6px;
-}
-
-#nav div li#buffer span.social {
- padding-left: 19px;
-}
-
-#nav div li#facebook span span {
- margin-left: -10px;
- margin-top: -5px;
-}
-
-#nav div li#facebook span.social {
- height: 19px;
-}
-
-#nav div li#twitter span.social iframe {
- margin-left: 9px;
-}
-
-#nav a.twitter-share-button {
- font-weight: normal;
- border: none;
- padding-left: 10px;
- padding-right: 0;
- padding-top: 0;
- padding-bottom: 0;
-}
-
-#nav li#google span.social, #nav li#flattr span.social {
- padding-left: 20px;
-}
diff --git a/cavendish/external.png b/cavendish/external.png
deleted file mode 100644
index 2bd5f77..0000000
--- a/cavendish/external.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/folder.png b/cavendish/folder.png
deleted file mode 100644
index f0ef991..0000000
--- a/cavendish/folder.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/headbg.jpg b/cavendish/headbg.jpg
deleted file mode 100644
index 5491c6e..0000000
--- a/cavendish/headbg.jpg
+++ /dev/null
Binary files differ
diff --git a/cavendish/header.css b/cavendish/header.css
deleted file mode 100644
index 2d6c22a..0000000
--- a/cavendish/header.css
+++ /dev/null
@@ -1,9 +0,0 @@
-#header h6 a
-{
- font-family:JournalRegular;
- text-indent: 0;
- font-size: 37pt;
- color: #2DAAE1;
- padding-left: 15px;
- text-shadow:0.1em 0.1em 0.2em gray;
-}
diff --git a/cavendish/header_logo.gif b/cavendish/header_logo.gif
deleted file mode 100644
index e00acf1..0000000
--- a/cavendish/header_logo.gif
+++ /dev/null
Binary files differ
diff --git a/cavendish/key-point_bl.gif b/cavendish/key-point_bl.gif
deleted file mode 100644
index fe6f825..0000000
--- a/cavendish/key-point_bl.gif
+++ /dev/null
Binary files differ
diff --git a/cavendish/key-point_tl.gif b/cavendish/key-point_tl.gif
deleted file mode 100644
index 87d7cd0..0000000
--- a/cavendish/key-point_tl.gif
+++ /dev/null
Binary files differ
diff --git a/cavendish/locked.png b/cavendish/locked.png
deleted file mode 100644
index 7b81697..0000000
--- a/cavendish/locked.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/magnify-clip.png b/cavendish/magnify-clip.png
deleted file mode 100644
index 992aa2e..0000000
--- a/cavendish/magnify-clip.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/minus.png b/cavendish/minus.png
deleted file mode 100644
index e56f9de..0000000
--- a/cavendish/minus.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/newspaper.png b/cavendish/newspaper.png
deleted file mode 100644
index b7f11c3..0000000
--- a/cavendish/newspaper.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/plus.png b/cavendish/plus.png
deleted file mode 100644
index 4b5a7bf..0000000
--- a/cavendish/plus.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/print.css b/cavendish/print.css
deleted file mode 100644
index a31df21..0000000
--- a/cavendish/print.css
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Stylesheet for Printing*/
-body {
- margin-left: 5em;
- margin-right: 5em;
- font-size: 11pt;
-}
-
-#p-personal, #side, #header, #skin-info, #f-numberofwatchingusers, #f-viewcount, #f-privacy, #f-about, #f-disclaimer{
- display:none;
-}
-
-.f-iconsection #f-copyrightico {
- display: block;
-}
-
-#qrcode {
- display:block;
- margin-left: 10px;
- text-align:right;
-}
-
-#footer #f-list li {
- white-space:normal;
-}
-
-#footer li {
- list-style-type: none;
-}
-
-#footer table {
- width: 100%;
-}
-
-#catlinks {
- border-top: 1px solid #AAAAAA;
- margin-top: 1em;
- padding-top: 1em;
-}
-
-#catlinks ul li {
- font-style:italic;
-}
-
-table.float-right, table.floatright, div.float-right, div.floatright {
- clear: right;
- float: right;
- margin-left: 0.7em;
- margin-right: 0;
- position: relative;
-}
-
-table.float-left, table.floatleft, div.float-left, div.floatleft{
- clear: left;
- float: left;
- margin-right: 0.7em;
- margin-left: 0;
- position: relative;
-}
-
-table p {
- margin: 0;
-} \ No newline at end of file
diff --git a/cavendish/required.gif b/cavendish/required.gif
deleted file mode 100644
index bd71976..0000000
--- a/cavendish/required.gif
+++ /dev/null
Binary files differ
diff --git a/cavendish/rtl.css b/cavendish/rtl.css
deleted file mode 100644
index 0d6b48e..0000000
--- a/cavendish/rtl.css
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
-Right-to-left fixes for MonoBook.
-Places sidebar on right, tweaks various alignment issues.
-
-Works mostly ok nicely on Safari 1.2.1; fine in Mozilla.
-
-Safari bugs (1.2.1):
-* Tabs are still appearing in left-to-right order. (Try after localizing)
-
-Opera bugs (7.23 linux):
-* Some bits of ltr text (sidebar box titles) have forward and backward versions overlapping each other
-
-IE/mac bugs:
-* The thing barfs on Hebrew and Arabic anyway, so no point testing.
-
-Missing features due to lack of support:
-* external link icons
-
-To test:
-* Opera6
-* IE 5.0
-* etc
-
-*/
-body {
- direction: rtl;
-/* unicode-bidi: bidi-override;*/
- unicode-bidi: embed;
-}
-#column-content {
- margin: 0 -12.2em 0 0;
- float: left;
-}
-#column-content #content{
- margin-left: 0;
- margin-right: 12.2em;
- border-right: 1px solid #aaaaaa;
- border-left: none;
-}
-html>body .portlet {
- float: right;
- clear: right;
-}
-/* recover IEMac (might be fine with the float, but usually it's close to IE */
-*>body .portlet {
- float: none;
- clear: none;
-}
-.pBody {
- padding-right: 0.8em;
- padding-left: 0.5em;
-}
-
-/* Fix alignment */
-.documentByLine,
-.portletDetails,
-.portletMore,
-#p-personal {
- text-align: left;
-}
-
-div div.thumbcaption {
- text-align: right;
-}
-
-div.magnify,
-#div.townBox,
-#p-logo {
- left: auto;
- right: 0;
-}
-#p-personal {
- left: auto;
- right: 0;
-}
-
-#p-cactions {
- left: auto;
- right: 11.5em;
- padding-left: 0;
- padding-right: 1em;
-}
-#p-cactions li {
- margin-left: 0.3em;
- margin-right: 0;
- float: right;
-}
-* html #p-cactions li a {
- display: block;
- padding-bottom: 0;
-}
-* html #p-cactions li a:hover {
- padding-bottom: 0.2em;
-}
-/* offsets to distinguish the tab groups */
-li#ca-talk {
- margin-right: auto;
- margin-left: 1.6em;
-}
-li#ca-watch,li#ca-unwatch {
- margin-right: 1.6em !important;
-}
-
-/* Fix margins for non-css2 browsers */
-/* top right bottom left */
-
-ul {
- margin-left: 0;
- margin-right: 1.5em;
-}
-ol {
- margin-left: 0;
- margin-right: 2.4em;
-}
-dd {
- margin-left: 0;
- margin-right: 1.6em;
-}
-#contentSub {
- margin-right: 1em;
- margin-left: 0;
-}
-.tocindent {
- margin-left: 0;
- margin-right: 2em;
-}
-div.tright, div.floatright, table.floatright {
- clear: none;
-}
-div.tleft, div.floatleft, table.floatleft {
- clear: left;
-}
-div.townBox {
- margin-left: 0;
- margin-right: 1em;
-}
-div.townBox dl dd {
- margin-left: 0;
- margin-right: 1.1em;
-}
-#p-personal li {
- margin-left: 0;
- margin-right: 1em;
-}
-
-li#ca-talk,
-li#ca-watch {
- margin-right: auto;
- margin-left: 1.6em;
-}
-
-#p-personal li {
- float: left;
-}
-/* Fix link icons */
-.external {
- padding: 0 !important;
- background: none !important;
-}
-#footer {
- clear: both;
-}
-* html #footer {
- margin-left: 0;
- margin-right: 13.6em;
- border-left: 0;
- border-right: 1px solid #fabd23;
-}
-* html #column-content {
- float: none;
- margin-left: 0;
- margin-right: 0;
-}
-* html #column-content #content {
- margin-left: 0;
- margin-top: 3em;
-}
-* html #column-one { right: 0; }
-
-/* js pref toc */
-
-#preftoc {
- margin-right: 1em;
-}
-
-.errorbox, .successbox, #preftoc li, .prefsection fieldset {
- float: right;
-}
-
-.prefsection {
- padding-right: 2em;
-}
-
-/* workaround for moz bug, displayed bullets on left side */
-
-#toc ul {
- text-align: right;
-}
-
-#toc ul ul {
- margin: 0 2em 0 0;
-}
-
-input#wpSave, input#wpDiff {
- margin-right: 0;
- margin-left: .33em;
-}
-
-#userlogin {
- float: right;
- margin: 0 0 1em 3em;
-}
-
-.editsection, .mw-editsection {
- float: left;
-} \ No newline at end of file
diff --git a/cavendish/speech-bubble-left-4.png b/cavendish/speech-bubble-left-4.png
deleted file mode 100644
index 6608d22..0000000
--- a/cavendish/speech-bubble-left-4.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/style.php b/cavendish/style.php
deleted file mode 100644
index a68550e..0000000
--- a/cavendish/style.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php header("Content-type: text/css");
-include('config.php');
-?>
-#header h6 a {
- background-color: transparent;
- background-image: url("<?php echo $cavendishLogoURL ?>");
- background-repeat: no-repeat;
- width: <?php echo $cavendishLogoWidth ?>px;
- height: <?php echo $cavendishLogoHeight ?>px;
- margin-top: <?php echo $cavendishLogoMargin ?>px;
- }
-<?php
-if ($cavendishSiteWith) { ?>
-#globalWrapper {
- width: <?php echo $cavendishSiteWith ?>px;
- }
-<?php
-}
-if ($cavendishSidebarSearchbox) { ?>
- #nav #p-search {
- display:none;
- }<?php
-}
-if ($cavendishQRCodeMode=='all'){ ?>
-#f-poweredbyico {
- display:none;
-}
-<?php
-}
-if ($cavendishQRCodeMode=='print'){ ?>
-#qrcode {
- display:none;
-}
-<?php
-}
-?>
- \ No newline at end of file
diff --git a/cavendish/subsite_back.gif b/cavendish/subsite_back.gif
deleted file mode 100644
index 1fe411d..0000000
--- a/cavendish/subsite_back.gif
+++ /dev/null
Binary files differ
diff --git a/cavendish/subsite_back.png b/cavendish/subsite_back.png
deleted file mode 100644
index 11baba1..0000000
--- a/cavendish/subsite_back.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/subsite_mozilla-org.gif b/cavendish/subsite_mozilla-org.gif
deleted file mode 100644
index b18706f..0000000
--- a/cavendish/subsite_mozilla-org.gif
+++ /dev/null
Binary files differ
diff --git a/cavendish/top-left.png b/cavendish/top-left.png
deleted file mode 100644
index b5d7835..0000000
--- a/cavendish/top-left.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/top-mid.png b/cavendish/top-mid.png
deleted file mode 100644
index 37d3276..0000000
--- a/cavendish/top-mid.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/top-right.png b/cavendish/top-right.png
deleted file mode 100644
index 5c8c450..0000000
--- a/cavendish/top-right.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/user.gif b/cavendish/user.gif
deleted file mode 100644
index bc93439..0000000
--- a/cavendish/user.gif
+++ /dev/null
Binary files differ
diff --git a/cavendish/video.png b/cavendish/video.png
deleted file mode 100644
index 5615e09..0000000
--- a/cavendish/video.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/wiki-indexed.png b/cavendish/wiki-indexed.png
deleted file mode 100644
index 189a2ae..0000000
--- a/cavendish/wiki-indexed.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/wiki.png b/cavendish/wiki.png
deleted file mode 100644
index 69fce98..0000000
--- a/cavendish/wiki.png
+++ /dev/null
Binary files differ
diff --git a/cavendish/wiki_header_logo.gif b/cavendish/wiki_header_logo.gif
deleted file mode 100644
index ac06c7b..0000000
--- a/cavendish/wiki_header_logo.gif
+++ /dev/null
Binary files differ
diff --git a/cologneblue/print.css b/cologneblue/print.css
deleted file mode 100644
index d4b0551..0000000
--- a/cologneblue/print.css
+++ /dev/null
@@ -1,6 +0,0 @@
-#sitetitle,
-#sitesub,
-#titlelinks,
-#footer-navigation {
- display: none;
-}
diff --git a/cologneblue/screen.css b/cologneblue/screen.css
deleted file mode 100644
index ef9cf8f..0000000
--- a/cologneblue/screen.css
+++ /dev/null
@@ -1,277 +0,0 @@
-body {
- margin: 0;
- padding: 0;
- color: black;
- font-family: serif;
-}
-
-#specialform {
- display: inline;
-}
-
-#content {
- top: 0;
- margin: 0;
- padding: 0;
-}
-
-#mw-data-after-content {
- font-family: Verdana, Arial, sans-serif;
- color: black;
- font-size: 8pt;
-}
-
-#powersearch {
- background: #DDEEFF;
- border-style: solid;
- border-width: 1px;
- padding: 2px;
-}
-
-#quickbar {
- width: 140px;
- top: 18ex;
- padding: 2px;
- visibility: visible;
- z-index: 99;
-}
-
-#article, #article td, #article th, #article p {
- font-family: Verdana, Arial, sans-serif;
- font-size: 10pt;
- color: black;
-}
-
-#article p {
- padding-top: 0;
- padding-bottom: 0;
- margin-top: 1ex;
- margin-bottom: 0;
-}
-
-p, pre, .mw-code, td, th, li, dd, dt {
- line-height: 12pt;
-}
-
-textarea {
- overflow: auto;
- width: 100%;
- display: block;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-#footer {
- margin-right: 2%;
- margin-top: 1em;
- padding: 4px;
- font-family: verdana, arial, sans-serif;
- font-size: 10pt;
- text-align: center;
-}
-
-#footer form {
- display: inline;
-}
-
-#cb-ca-edit {
- font-weight: bold;
-}
-
-#pagestats {
- font-family: Verdana, Arial, sans-serif;
- color: black;
- font-size: 9pt;
-}
-
-
-
-#quickbar {
- font-family: Verdana, Arial, sans-serif;
- font-size: 8pt;
- font-weight: bold;
- line-height: 9.5pt;
- text-decoration: none;
- color: black;
- padding: 0;
- margin-top: 0;
-}
-
-#quickbar a {
- color: #446688;
-}
-
-/* Hide, but keep accessible for screen-readers */
-#mw-navigation h2 {
- position: absolute;
- top: -9999px;
-}
-
-#quickbar h3 {
- font-family: Verdana, Arial, sans-serif;
- font-size: 10pt;
- font-weight: bold;
- line-height: 12pt;
- text-decoration: none;
- color: #666666;
- padding: 0;
- margin-bottom: 2px;
- margin-top: 6px;
-}
-
-#quickbar form {
- padding: 0;
- margin-top: 0;
-}
-
-#quickbar .portlet ul,
-#quickbar .portlet li {
- list-style-type: none;
- margin: 0;
- padding: 0;
- line-height: inherit;
-}
-
-div.after-portlet {
- display: inline;
- padding-left: .5em;
-}
-
-h1 {
- color: #666666;
- font-family: Verdana, Arial, sans-serif;
- font-size: 180%;
- line-height: 21pt;
-}
-
-h1#firstHeading {
- padding-bottom: 0;
- margin-bottom: 0;
-}
-
-#article p.subtitle, #article p.subpages, #article p.tagline {
- color: #666666;
- font-size: 11pt;
- font-weight: bold;
- padding-top: 0;
- margin-top: 0;
- padding-bottom: 1ex;
-}
-
-a {
- color: #223366;
-}
-
-a.external {
- color: #336644;
-}
-
-a:visited {
- color: #8D0749;
-}
-
-a.printable {
- text-decoration: underline;
-}
-
-a.stub, #quickbar a.stub {
- color: #772233;
- text-decoration: none;
-}
-
-a.new, #quickbar span.new a, #footer span.new a {
- color: #CC2200;
-}
-
-h2, h3, h4, h5, h6 {
- margin-bottom: 0;
-}
-
-small {
- font-size: 75%;
-}
-
-input.mw-searchInput {
- width: 106px;
-}
-
-/* Directionality-specific styles */
-#quickbar { position: absolute; left: 4px; }
-#article { margin-left: 148px; margin-right: 4px; }
-#footer { margin-left: 152px; }
-
-
-#sitetitle, #sitesub, #toplinks, #linkcollection {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-#sitetitle, #toplinks {
- color: white;
- text-transform: uppercase;
- height: 32pt;
-}
-#sitetitle {
- padding-left: 8px;
- font-family: Times, serif;
- font-weight: normal;
- font-size: 32pt;
- line-height: 32pt;
- background-color: #6688AA;
-}
-#sitetitle a, #toplinks a {
- color: white;
- text-decoration: none;
-}
-/* Bring #sitetitle to top. Otherwise #toplinks is overlaid over it, making the link unclickable. */
-#sitetitle a {
- position: relative;
- z-index: 10
-}
-
-#toplinks {
- font-family: Verdana, Arial, sans-serif;
- position: absolute;
- top: 0;
- right: 8px;
- width: 100%;
- font-size: 8pt;
-}
-#toplinks a {
- font-size: 10pt;
-}
-#toplinks p {
- position: absolute;
- right: 0;
- margin: 0;
- width: 100%;
- text-align: right;
-}
-#toplinks #syslinks {
- bottom: 0;
-}
-#toplinks #variantlinks {
- bottom: 12pt;
-}
-
-#sitesub {
- float: left;
- margin-left: 8px;
- font-family: Verdana, Arial, sans-serif;
- font-size: 9pt;
- font-weight: bold;
- color: black;
-}
-
-#linkcollection {
- margin-top: 0.5em;
- font-size: small;
- margin-right: 8px;
- text-align: right;
- padding-left: 140px;
-}
-/* Override text justification (user preference), see bug 31990 */
-#linkcollection * {
- text-align: right;
-}
diff --git a/common/IEFixes.js b/common/IEFixes.js
deleted file mode 100644
index 545acad..0000000
--- a/common/IEFixes.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * IE fixes javascript loaded by wikibits.js for IE <= 6.0
- */
-/*global isMSIE55:true, doneIETransform:true, doneIEAlphaFix:true */
-/*global hookit:true, fixalpha:true */
-( function ( mw, $ ) {
-
-var expandedURLs, hasClass;
-
-// Also returns true for IE6, 7, 8, 9 and 10. createPopup is removed in IE11.
-// Good thing this is only loaded for IE <= 6 by wikibits.
-// Might as well set it to true.
-isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup );
-doneIETransform = false;
-doneIEAlphaFix = false;
-
-hookit = function () {
- if ( !doneIETransform && document.getElementById && document.getElementById( 'bodyContent' ) ) {
- doneIETransform = true;
- fixalpha();
- }
-};
-
-if ( document.attachEvent ) {
- document.attachEvent( 'onreadystatechange', hookit );
-}
-
-// png alpha transparency fixes
-fixalpha = function ( logoId ) {
- // bg
- if ( isMSIE55 && !doneIEAlphaFix ) {
- var bg, imageUrl, linkFix, logoa, logospan, plogo;
- plogo = document.getElementById( logoId || 'p-logo' );
- if ( !plogo ) {
- return;
- }
-
- logoa = plogo.getElementsByTagName('a')[0];
- if ( !logoa ) {
- return;
- }
-
- bg = logoa.currentStyle.backgroundImage;
- imageUrl = bg.substring( 5, bg.length - 2 );
-
- doneIEAlphaFix = true;
-
- if ( imageUrl.substr( imageUrl.length - 4 ).toLowerCase() === '.png' ) {
- logospan = logoa.appendChild( document.createElement( 'span' ) );
-
- logoa.style.backgroundImage = 'none';
- logospan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl + ')';
- logospan.style.height = '100%';
- logospan.style.position = 'absolute';
- logospan.style.width = logoa.currentStyle.width;
- logospan.style.cursor = 'hand';
- // Center image with hack for IE5.5
- if ( document.documentElement.dir === 'rtl' ) {
- logospan.style.right = '50%';
- logospan.style.setExpression( 'marginRight', '"-" + (this.offsetWidth / 2) + "px"' );
- } else {
- logospan.style.left = '50%';
- logospan.style.setExpression( 'marginLeft', '"-" + (this.offsetWidth / 2) + "px"' );
- }
- logospan.style.top = '50%';
- logospan.style.setExpression( 'marginTop', '"-" + (this.offsetHeight / 2) + "px"' );
-
- linkFix = logoa.appendChild( logoa.cloneNode() );
- linkFix.style.position = 'absolute';
- linkFix.style.height = '100%';
- linkFix.style.width = '100%';
- }
- }
-};
-
-if ( isMSIE55 ) {
- // ondomready
- $( fixalpha );
-}
-
-// Expand links for printing
-hasClass = function ( classText, classWanted ) {
- var i = 0, classArr = classText.split(/\s/);
- for ( i = 0; i < classArr.length; i++ ) {
- if ( classArr[i].toLowerCase() === classWanted.toLowerCase() ) {
- return true;
- }
- }
- return false;
-};
-
-window.onbeforeprint = function () {
- var allLinks, contentEl, expandedLink, expandedText, i;
-
- expandedURLs = [];
- contentEl = document.getElementById( 'content' );
-
- if ( contentEl ) {
- allLinks = contentEl.getElementsByTagName( 'a' );
-
- for ( i = 0; i < allLinks.length; i++ ) {
- if ( hasClass( allLinks[i].className, 'external' ) && !hasClass( allLinks[i].className, 'free' ) ) {
- expandedLink = document.createElement( 'span' );
- expandedText = document.createTextNode( ' (' + allLinks[i].href + ')' );
- expandedLink.appendChild( expandedText );
- allLinks[i].parentNode.insertBefore( expandedLink, allLinks[i].nextSibling );
- expandedURLs[i] = expandedLink;
- }
- }
- }
-};
-
-window.onafterprint = function () {
- for ( var i = 0; i < expandedURLs.length; i++ ) {
- if ( expandedURLs[i] ) {
- expandedURLs[i].removeNode( true );
- }
- }
-};
-
-}( mediaWiki, jQuery ) );
diff --git a/common/ajax.js b/common/ajax.js
deleted file mode 100644
index ab0c793..0000000
--- a/common/ajax.js
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- * Remote Scripting Library
- * Copyright 2005 modernmethod, inc
- * Under the 3-clause BSD license
- * http://www.modernmethod.com/sajax/
- */
-
-/*jshint camelcase:false */
-/*global alert */
-( function ( mw ) {
-
-/**
- * if sajax_debug_mode is true, this function outputs given the message into
- * the element with id = sajax_debug; if no such element exists in the document,
- * it is injected.
- */
-function debug( text ) {
- if ( !window.sajax_debug_mode ) {
- return false;
- }
-
- var e = document.getElementById( 'sajax_debug' );
-
- if ( !e ) {
- e = document.createElement( 'p' );
- e.className = 'sajax_debug';
- e.id = 'sajax_debug';
-
- var b = document.getElementsByTagName( 'body' )[0];
-
- if ( b.firstChild ) {
- b.insertBefore( e, b.firstChild );
- } else {
- b.appendChild( e );
- }
- }
-
- var m = document.createElement( 'div' );
- m.appendChild( document.createTextNode( text ) );
-
- e.appendChild( m );
-
- return true;
-}
-
-/**
- * Compatibility wrapper for creating a new XMLHttpRequest object.
- */
-function createXhr() {
- debug( 'sajax_init_object() called..' );
- var a;
- try {
- // Try the new style before ActiveX so we don't
- // unnecessarily trigger warnings in IE 7 when
- // set to prompt about ActiveX usage
- a = new XMLHttpRequest();
- } catch ( xhrE ) {
- try {
- a = new window.ActiveXObject( 'Msxml2.XMLHTTP' );
- } catch ( msXmlE ) {
- try {
- a = new window.ActiveXObject( 'Microsoft.XMLHTTP' );
- } catch ( msXhrE ) {
- a = null;
- }
- }
- }
- if ( !a ) {
- debug( 'Could not create connection object.' );
- }
-
- return a;
-}
-
-/**
- * Perform an AJAX call to MediaWiki. Calls are handled by AjaxDispatcher.php
- * func_name - the name of the function to call. Must be registered in $wgAjaxExportList
- * args - an array of arguments to that function
- * target - the target that will handle the result of the call. If this is a function,
- * if will be called with the XMLHttpRequest as a parameter; if it's an input
- * element, its value will be set to the resultText; if it's another type of
- * element, its innerHTML will be set to the resultText.
- *
- * Example:
- * sajax_do_call( 'doFoo', [1, 2, 3], document.getElementById( 'showFoo' ) );
- *
- * This will call the doFoo function via MediaWiki's AjaxDispatcher, with
- * (1, 2, 3) as the parameter list, and will show the result in the element
- * with id = showFoo
- */
-function doAjaxRequest( func_name, args, target ) {
- var i, x, uri, post_data;
- uri = mw.util.wikiScript() + '?action=ajax';
- if ( window.sajax_request_type === 'GET' ) {
- if ( uri.indexOf( '?' ) === -1 ) {
- uri = uri + '?rs=' + encodeURIComponent( func_name );
- } else {
- uri = uri + '&rs=' + encodeURIComponent( func_name );
- }
- for ( i = 0; i < args.length; i++ ) {
- uri = uri + '&rsargs[]=' + encodeURIComponent( args[i] );
- }
- //uri = uri + '&rsrnd=' + new Date().getTime();
- post_data = null;
- } else {
- post_data = 'rs=' + encodeURIComponent( func_name );
- for ( i = 0; i < args.length; i++ ) {
- post_data = post_data + '&rsargs[]=' + encodeURIComponent( args[i] );
- }
- }
- x = createXhr();
- if ( !x ) {
- alert( 'AJAX not supported' );
- return false;
- }
-
- try {
- x.open( window.sajax_request_type, uri, true );
- } catch ( e ) {
- if ( location.hostname === 'localhost' ) {
- alert( 'Your browser blocks XMLHttpRequest to "localhost", try using a real hostname for development/testing.' );
- }
- throw e;
- }
- if ( window.sajax_request_type === 'POST' ) {
- x.setRequestHeader( 'Method', 'POST ' + uri + ' HTTP/1.1' );
- x.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
- }
- x.setRequestHeader( 'Pragma', 'cache=yes' );
- x.setRequestHeader( 'Cache-Control', 'no-transform' );
- x.onreadystatechange = function () {
- if ( x.readyState !== 4 ) {
- return;
- }
-
- debug( 'received (' + x.status + ' ' + x.statusText + ') ' + x.responseText );
-
- //if ( x.status != 200 )
- // alert( 'Error: ' + x.status + ' ' + x.statusText + ': ' + x.responseText );
- //else
-
- if ( typeof target === 'function' ) {
- target( x );
- } else if ( typeof target === 'object' ) {
- if ( target.tagName === 'INPUT' ) {
- if ( x.status === 200 ) {
- target.value = x.responseText;
- }
- //else alert( 'Error: ' + x.status + ' ' + x.statusText + ' (' + x.responseText + ')' );
- } else {
- if ( x.status === 200 ) {
- target.innerHTML = x.responseText;
- } else {
- target.innerHTML = '<div class="error">Error: ' + x.status +
- ' ' + x.statusText + ' (' + x.responseText + ')</div>';
- }
- }
- } else {
- alert( 'Bad target for sajax_do_call: not a function or object: ' + target );
- }
- };
-
- debug( func_name + ' uri = ' + uri + ' / post = ' + post_data );
- x.send( post_data );
- debug( func_name + ' waiting..' );
-
- return true;
-}
-
-/**
- * @return {boolean} Whether the browser supports AJAX
- */
-function wfSupportsAjax() {
- var request = createXhr(),
- supportsAjax = request ? true : false;
-
- request = undefined;
- return supportsAjax;
-}
-
-// Expose + Mark as deprecated
-var deprecationNotice = 'Sajax is deprecated, use jQuery.ajax or mediawiki.api instead.';
-
-// Variables
-mw.log.deprecate( window, 'sajax_debug_mode', false, deprecationNotice );
-mw.log.deprecate( window, 'sajax_request_type', 'GET', deprecationNotice );
-// Methods
-mw.log.deprecate( window, 'sajax_debug', debug, deprecationNotice );
-mw.log.deprecate( window, 'sajax_init_object', createXhr, deprecationNotice );
-mw.log.deprecate( window, 'sajax_do_call', doAjaxRequest, deprecationNotice );
-mw.log.deprecate( window, 'wfSupportsAjax', wfSupportsAjax, deprecationNotice );
-
-}( mediaWiki ) );
diff --git a/common/commonContent.css b/common/commonContent.css
deleted file mode 100644
index 41d20fb..0000000
--- a/common/commonContent.css
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * MediaWiki style sheet for general styles on complex content
- *
- * Styles for complex things which are a standard part of page content
- * (ie: the CSS classing built into the system), like the TOC.
- */
-
-/* Table of Contents */
-#toc,
-.toc,
-.mw-warning {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
-}
-
-/**
- * We want to display the ToC element with intrinsic width in block mode. The fit-content
- * value for width is however not supported by large groups of browsers.
- *
- * We use display:table. Even though it should only contain other table-* display
- * elements, there are no known problems with using this.
- *
- * Because IE < 8, FF 2 and other older browsers don't support display:table, we fallback to
- * using inline-block mode, which features at least intrinsic width, but won't clear preceding
- * inline elements. In practice inline elements surrounding the TOC are uncommon enough that
- * this is an acceptable sacrifice.
- */
-#toc,
-.toc {
- display: -moz-inline-block;
- display: inline-block;
- display: table;
-
- /* IE7 and earlier */
- zoom: 1;
- *display: inline;
-
- padding: 7px;
-}
-
-/* CSS for backwards-compatibility with cached page renders and creative uses in wikitext */
-table#toc,
-table.toc {
- border-collapse: collapse;
-}
-/* Remove additional paddings inside table-cells that are not present in <div>s */
-table#toc td,
-table.toc td {
- padding: 0;
-}
-
-#toc h2,
-.toc h2 {
- display: inline;
- border: none;
- padding: 0;
- font-size: 100%;
- font-weight: bold;
-}
-#toc #toctitle,
-.toc #toctitle,
-#toc .toctitle,
-.toc .toctitle {
- text-align: center;
-}
-#toc ul,
-.toc ul {
- list-style-type: none;
- list-style-image: none;
- margin-left: 0;
- padding: 0;
- text-align: left;
-}
-#toc ul ul,
-.toc ul ul {
- margin: 0 0 0 2em;
-}
-#toc .toctoggle,
-.toc .toctoggle {
- font-size: 94%;
-}
-
-.toccolours {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
-}
-
-/* Warning */
-.mw-warning {
- margin-left: 50px;
- margin-right: 50px;
- text-align: center;
-}
-
-/* Images */
-/* @noflip */div.floatright, table.floatright {
- margin: 0 0 .5em .5em;
- border: 0;
-}
-div.floatright p { font-style: italic; }
-/* @noflip */div.floatleft, table.floatleft {
- margin: 0 .5em .5em 0;
- border: 0;
-}
-div.floatleft p { font-style: italic; }
-/* Thumbnails */
-div.thumb {
- margin-bottom: .5em;
- width: auto;
- background-color: transparent;
-}
-div.thumbinner {
- border: 1px solid #ccc;
- padding: 3px !important;
- background-color: #f9f9f9;
- font-size: 94%;
- text-align: center;
- overflow: hidden;
-}
-html .thumbimage {
- border: 1px solid #ccc;
-}
-html .thumbcaption {
- border: none;
- line-height: 1.4em;
- padding: 3px !important;
- font-size: 94%;
-}
-div.magnify {
- border: none !important;
- background: none !important;
- margin-left: 3px;
-}
-div.magnify a, div.magnify img {
- display: block;
- border: none !important;
- background: none !important;
-}
-/* @noflip */div.tright {
- margin: .5em 0 1.3em 1.4em;
-}
-/* @noflip */div.tleft {
- margin: .5em 1.4em 1.3em 0;
-}
-img.thumbborder {
- border: 1px solid #dddddd;
-}
diff --git a/common/commonElements.css b/common/commonElements.css
deleted file mode 100644
index ad7942a..0000000
--- a/common/commonElements.css
+++ /dev/null
@@ -1,235 +0,0 @@
-/**
- * MediaWiki style sheet for general styles on basic content elements
- *
- * Styles for basic elements: links, lists, etc...
- *
- * This style sheet is used by the Monobook and Vector skins.
- */
-
-/* Links */
-a {
- text-decoration: none;
- color: #0645ad;
- background: none;
-}
-a:visited {
- color: #0b0080;
-}
-a:active {
- color: #faa700;
-}
-a:hover, a:focus {
- text-decoration: underline;
-}
-a.stub {
- color: #772233;
-}
-a.new, #p-personal a.new {
- color: #ba0000;
-}
-a.new:visited, #p-personal a.new:visited {
- color: #a55858;
-}
-
-/* Interwiki Styling */
-.mw-body a.extiw,
-.mw-body a.extiw:active {
- color: #36b;
-}
-.mw-body a.extiw:visited {
- color: #636;
-}
-.mw-body a.extiw:active {
- color: #b63;
-}
-
-/* External links */
-.mw-body a.external {
- color: #36b;
-}
-.mw-body a.external:visited {
- color: #636; /* bug 3112 */
-}
-.mw-body a.external:active {
- color: #b63;
-}
-
-/* Inline Elements */
-img {
- border: none;
- vertical-align: middle;
-}
-hr {
- height: 1px;
- color: #aaa;
- background-color: #aaa;
- border: 0;
- margin: .2em 0;
-}
-
-/* Structural Elements */
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- color: black;
- background: none;
- font-weight: normal;
- margin: 0;
- overflow: hidden;
- padding-top: .5em;
- padding-bottom: .17em;
- border-bottom: 1px solid #aaa;
-}
-h1 {
- font-size: 188%;
-}
-h2 {
- font-size: 150%;
-}
-h3,
-h4,
-h5,
-h6 {
- border-bottom: none;
- font-weight: bold;
-}
-h3 {
- font-size: 132%;
-}
-h4 {
- font-size: 116%;
-}
-h5 {
- font-size: 108%;
-}
-h6 {
- font-size: 100%;
-}
-
-/* Some space under the headers in the content area */
-h1,
-h2 {
- margin-bottom: .6em;
-}
-h3,
-h4,
-h5 {
- margin-bottom: .3em;
-}
-
-p {
- margin: .4em 0 .5em 0;
- line-height: 1.5em;
-}
-p img {
- margin: 0;
-}
-
-ul {
- line-height: 1.5em;
- list-style-type: square;
- margin: .3em 0 0 1.6em;
- padding: 0;
-}
-ol {
- line-height: 1.5em;
- margin: .3em 0 0 3.2em;
- padding: 0;
- list-style-image: none;
-}
-li {
- margin-bottom: .1em;
-}
-dt {
- font-weight: bold;
- margin-bottom: .1em;
-}
-dl {
- margin-top: .2em;
- margin-bottom: .5em;
-}
-dd {
- line-height: 1.5em;
- margin-left: 1.6em;
- margin-bottom: .1em;
-}
-
-/* IE 6 and 7 lack support for quotes aroud the <q> element ('::before' and '::after'
- pseudoelements, 'quotes' property). Let's italicize it instead (using the star hack). */
-q {
- *font-style: italic;
-}
-
-pre, code, tt, kbd, samp, .mw-code {
- /*
- * Some browsers will render the monospace text too small, namely Firefox, Chrome and Safari.
- * Specifying any valid, second value will trigger correct behavior without forcing a different font.
- */
- font-family: monospace, Courier;
-}
-code {
- background-color: #f9f9f9;
-}
-pre, .mw-code {
- padding: 1em;
- border: 1px solid #ddd;
- color: black;
- background-color: #f9f9f9;
-}
-
-/* Tables */
-table {
- font-size: 100%;
-}
-
-/* Forms */
-fieldset {
- border: 1px solid #2f6fab;
- margin: 1em 0 1em 0;
- padding: 0 1em 1em;
- line-height: 1.5em;
-}
-fieldset.nested {
- margin: 0 0 0.5em 0;
- padding: 0 0.5em 0.5em;
-}
-legend {
- padding: .5em;
- font-size: 95%;
-}
-form {
- border: none;
- margin: 0;
-}
-textarea {
- width: 100%;
- padding: .1em;
- display: block;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-select {
- vertical-align: top;
-}
-
-/* Emulate Center */
-.center {
- width: 100%;
- text-align: center;
-}
-*.center * {
- margin-left: auto;
- margin-right: auto;
-}
-/* Small for tables and similar */
-.small {
- font-size: 94%;
-}
-table.small {
- font-size: 100%;
-}
-
diff --git a/common/commonInterface.css b/common/commonInterface.css
deleted file mode 100644
index 7eca070..0000000
--- a/common/commonInterface.css
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * MediaWiki style sheet for common core styles on interfaces
- *
- * Styles for the Monobook/Vector pattern of laying out common interfaces.
- * These ids/classes are not built into the system,
- * they are outputted by the actual MonoBook/Vector code by convention.
- */
-
-/* Categories */
-.catlinks {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- padding: 5px;
- margin-top: 1em;
- clear: both;
-}
-
-/* User Message */
-.usermessage {
- background-color: #ffce7b;
- border: 1px solid #ffa500;
- color: black;
- font-weight: bold;
- margin: 2em 0 1em;
- padding: .5em 1em;
- vertical-align: middle;
-}
-
-/* Site Notice (includes notices from CentralNotice extension) */
-#siteNotice {
- position: relative;
- text-align: center;
- margin: 0;
-}
-#localNotice {
- margin-bottom: 0.9em;
-}
-
-/* First h1 */
-.firstHeading,
-#firstHeading {
- margin-bottom: .1em;
- /* These two rules hack around bug 2013 (fix for more limited bug 11325).
- * When bug 2013 is fixed properly, they should be removed. */
- line-height: 1.2em;
- padding-bottom: 0;
-}
-
-/* Sub-navigation */
-#siteSub {
- display: none;
-}
-#jump-to-nav {
- /* Negate #contentSub's margin and replicate it so that the jump to links don't affect the spacing */
- margin-top: -1.4em;
- margin-bottom: 1.4em
-}
-#contentSub, #contentSub2 {
- font-size: 84%;
- line-height: 1.2em;
- margin: 0 0 1.4em 1em;
- color: #545454;
- width: auto;
-}
-span.subpages {
- display: block;
-}
-
diff --git a/common/commonPrint.css b/common/commonPrint.css
deleted file mode 100644
index 65f3fbe..0000000
--- a/common/commonPrint.css
+++ /dev/null
@@ -1,401 +0,0 @@
-/**
- * MediaWiki Print style sheet for CSS2-capable browsers.
- * Copyright Gabriel Wicke, http://www.aulinx.de/
- *
- * Derived from the plone (http://plone.org/) styles
- * Copyright Alexander Limi
- */
-
-/* Thanks to A List Apart (http://alistapart.com/) for useful extras */
-a.stub,
-a.new {
- color: #ba0000;
- text-decoration: none;
-}
-
-#toc {
- border: 1px solid #aaaaaa;
- background-color: #f9f9f9;
- padding: 5px;
- display: -moz-inline-block;
- display: inline-block;
- display: table;
- /* IE7 and earlier */
- zoom: 1;
- *display: inline;
-}
-
-/* images */
-div.floatright {
- float: right;
- clear: right;
- position: relative;
- margin: 0.5em 0 0.8em 1.4em;
-}
-div.floatright p {
- font-style: italic;
-}
-div.floatleft {
- float: left;
- clear: left;
- position: relative;
- margin: 0.5em 1.4em 0.8em 0;
-}
-div.floatleft p {
- font-style: italic;
-}
-div.center {
- text-align: center;
-}
-
-/* thumbnails */
-div.thumb {
- border: none;
- width: auto;
- margin-top: 0.5em;
- margin-bottom: 0.8em;
- background-color: transparent;
-}
-div.thumbinner {
- border:1px solid #cccccc;
- padding: 3px !important;
- background-color: White;
- font-size: 94%;
- text-align: center;
- overflow: hidden;
-}
-html .thumbimage {
- border: 1px solid #cccccc;
-}
-html .thumbcaption {
- border: none;
- text-align: left;
- line-height: 1.4em;
- padding: 3px !important;
- font-size: 94%;
-}
-
-div.magnify {
- display: none;
-}
-/* @noflip */
-div.tright {
- float: right;
- clear: right;
- margin: 0.5em 0 0.8em 1.4em;
-}
-/* @noflip */
-div.tleft {
- float: left;
- clear: left;
- margin: 0.5em 1.4em 0.8em 0;
-}
-img.thumbborder {
- border: 1px solid #dddddd;
-}
-
-/* table standards */
-table.rimage {
- float: right;
- width: 1pt;
- position: relative;
- margin-left: 1em;
- margin-bottom: 1em;
- text-align: center;
-}
-
-body {
- background: white;
- color: black;
- margin: 0;
- padding: 0;
-}
-
-.noprint,
-div#jump-to-nav,
-.mw-jump,
-div.top,
-div#column-one,
-#colophon,
-.mw-editsection,
-.mw-editsection-like,
-.toctoggle,
-.tochidden,
-div#f-poweredbyico,
-div#f-copyrightico,
-li#viewcount,
-li#about,
-li#disclaimer,
-li#mobileview,
-li#privacy,
-#footer-places,
-.mw-hidden-catlinks,
-tr.mw-metadata-show-hide-extended,
-span.mw-filepage-other-resolutions,
-#filetoc,
-.usermessage,
-.patrollink,
-#mw-navigation {
- /* Hides all the elements irrelevant for printing */
- display: none;
-}
-
-ul {
- list-style-type: square;
-}
-
-#content {
- background: none;
- border: none !important;
- padding: 0 !important;
- margin: 0 !important;
- direction: ltr;
-}
-#footer {
- background : white;
- color : black;
- margin-top: 1em;
- border-top: 1px solid #AAA;
- direction: ltr;
-}
-
-h1, h2, h3, h4, h5, h6 {
- font-weight: bold;
-}
-
-dt {
- font-weight: bold;
-}
-
-p {
- margin: 1em 0;
- line-height: 1.2em;
-}
-
-pre, .mw-code {
- border: 1pt dashed black;
- white-space: pre;
- font-size: 8pt;
- overflow: auto;
- padding: 1em 0;
- background: white;
- color: black;
-}
-
-table.listing,
-table.listing td {
- border: 1pt solid black;
- border-collapse: collapse;
-}
-
-a {
- color: black !important;
- background: none !important;
- padding: 0 !important;
-}
-
-a:link, a:visited {
- color: #520;
- background: transparent;
- text-decoration: underline;
-}
-
-#content a.external.text:after,
-#content a.external.autonumber:after {
- /* Expand URLs for printing */
- content: " (" attr(href) ")";
-}
-
-#globalWrapper {
- width: 100% !important;
- min-width: 0 !important;
-}
-
-#content {
- background: white;
- color: black;
-}
-
-#column-content {
- margin: 0 !important;
-}
-
-#column-content #content {
- padding: 1em;
- margin: 0 !important;
-}
-
-/* MSIE/Win doesn't understand 'inherit' */
-a,
-a.external,
-a.new,
-a.stub {
- color: black !important;
- text-decoration: none !important;
-}
-
-/* Continue ... */
-a,
-a.external,
-a.new,
-a.stub {
- color: inherit !important;
- text-decoration: inherit !important;
-}
-
-img {
- border: none;
- vertical-align: middle;
-}
-
-/* math */
-span.texhtml {
- font-family: serif;
-}
-
-#siteNotice {
- display: none;
-}
-
-/* Galleries (see shared.css for more info) */
-li.gallerybox {
- vertical-align: top;
- display: -moz-inline-box;
- display: inline-block;
-}
-
-ul.gallery, li.gallerybox {
- zoom: 1;
- *display: inline;
-}
-
-ul.gallery {
- margin: 2px;
- padding: 2px;
- display: block;
-}
-
-li.gallerycaption {
- font-weight: bold;
- text-align: center;
- display: block;
- word-wrap: break-word;
-}
-
-li.gallerybox div.thumb {
- text-align: center;
- border: 1px solid #ccc;
- margin: 2px;
-}
-
-div.gallerytext {
- overflow: hidden;
- font-size: 94%;
- padding: 2px 4px;
- word-wrap: break-word;
-}
-
-/**
- * Diff rendering
- */
-table.diff {
- background: white;
-}
-td.diff-otitle {
- background: #ffffff;
-}
-td.diff-ntitle {
- background: #ffffff;
-}
-td.diff-addedline {
- background: #ccffcc;
- font-size: smaller;
- border: solid 2px black;
-}
-td.diff-deletedline {
- background: #ffffaa;
- font-size: smaller;
- border: dotted 2px black;
-}
-td.diff-context {
- background: #eeeeee;
- font-size: smaller;
-}
-.diffchange {
- color: silver;
- font-weight: bold;
- text-decoration: underline;
-}
-
-/**
- * Table rendering
- * As on shared.css but with white background.
- */
-table.wikitable,
-table.mw_metadata {
- margin: 1em 0;
- border: 1px #aaa solid;
- background: white;
- border-collapse: collapse;
-}
-table.wikitable > tr > th, table.wikitable > tr > td,
-table.wikitable > * > tr > th, table.wikitable > * > tr > td,
-.mw_metadata th, .mw_metadata td {
- border: 1px #aaa solid;
- padding: 0.2em;
-}
-table.wikitable > tr > th,
-table.wikitable > * > tr > th,
-.mw_metadata th {
- text-align: center;
- background: white;
- font-weight: bold;
-}
-table.wikitable > caption,
-.mw_metadata caption {
- font-weight: bold;
-}
-
-a.sortheader {
- margin: 0 0.3em;
-}
-
-/* Some pagination options */
-.wikitable, .thumb, img {
- page-break-inside: avoid;
-}
-h2, h3, h4, h5, h6 {
- page-break-after: avoid;
-}
-p {
- widows: 3;
- orphans: 3;
-}
-
-/**
- * Categories
- */
-.catlinks ul {
- display: inline;
- margin: 0;
- padding: 0;
- list-style: none;
- list-style-type: none;
- list-style-image: none;
- vertical-align: middle !ie;
-}
-
-.catlinks li {
- display: inline-block;
- line-height: 1.15em;
- padding: 0 .4em;
- border-left: 1px solid #AAA;
- margin: 0.1em 0;
- zoom: 1;
- display: inline !ie;
-}
-
-.catlinks li:first-child {
- padding-left: .2em;
- border-left: none;
-}
diff --git a/common/config-cc.css b/common/config-cc.css
deleted file mode 100644
index d81218e..0000000
--- a/common/config-cc.css
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * Copy of CC standard stylesheet, plus tweaks for iframe usage
- */
-
-body {
- margin: 0;
- background: #eee;
- font-family: Verdana;
- color: #333;
-}
-
-#main {
- border: 1px solid #D0D0D0;
- background: #fff;
- margin: 0.5em;
-}
-
-/**
- * Looks like you have to specify the width of #menu
- * or IE5 Mac stretches it all the way across the div, and
- * Opera streches it half way.
- */
-
-#main #menu {
- border-left: 1px dotted #ccc;
- float: right;
- width: 230px;
- background: white;
- margin: 0 0 10px 10px;
-}
-
-td, h3, p, h1, pre {
- margin: 0 20px 20px 20px;
- font-size: 11px;
- line-height: 140%;
-}
-
-.header {
- padding-left: 10px;
- padding-top: 10px;
-}
-
-.nav {
- padding-left: 10px;
- padding-bottom: 10px;
- font-size: 11px;
- margin-bottom: 16px;
-}
-
-#menu p {
- font-size: 11px;
-}
-
-.dent {
- margin-left: 64px;
-}
-
diff --git a/common/config.css b/common/config.css
deleted file mode 100644
index d646273..0000000
--- a/common/config.css
+++ /dev/null
@@ -1,143 +0,0 @@
-.env-check {
- font-size: 90%;
- margin: 1em 0 1em 2.5em;
-}
-
-.config-section {
- margin-top: 2em;
-}
-.config-block {
- margin-top: 2em;
- display: block;
-
-}
-.config-block-label {
- display: block;
- margin-bottom: .2em;
-}
-.config-block-label label, .config-label {
- font-weight: bold;
- padding-right: .5em;
- padding-top: .2em;
-}
-.config-block-elements {
- margin-left: 2em;
-}
-.config-block-elements li {
- list-style: none;
-}
-.config-input {
- clear: left;
- zoom: 100%; /* IE hack */
-}
-
-.config-page-wrapper {
- padding: 0.5em;
-}
-
-.config-page-list {
- float: right;
- width: 12em;
- border: 1px solid #aaa;
- background: #fff;
- padding: 0.5em;
- /* 3em left margin to leave space between the list and the page-content */
- margin: 0.5em 0.5em 0.5em 3.5em;
-}
-
-.config-page {
- padding: 0.5em 0.5em 0.5em 2em;
- margin: 0.5em 0.5em 0.5em 0.5em;
- background: #eee;
-}
-
-.config-submit {
- clear: left;
- text-align: center;
- padding: 1em;
-}
-
-.config-submit input {
- margin-left: 0.5em;
- margin-right: 0.5em;
-}
-
-.config-page-disabled {
- color: #aaa;
-}
-
-.config-error-box {
- border: 2px solid #f00;
-}
-
-.config-page-current {
- font-weight: bold;
-}
-
-.config-message {
- display: list-item;
- line-height: 1.5em;
- /* @embed */
- list-style-image: url(images/bullet.gif);
- list-style-type: square;
-}
-
-.config-input-text {
- width: 20em;
- margin-right: 1em;
-}
-
-.config-input-check {
- margin-left: 10em;
-}
-
-.error {
- color: red;
- background-color: #fff;
- font-weight: bold;
- left: 1em;
- font-size: 100%;
-}
-
-.config-settings-block {
- list-style-type: none;
- list-style-image: none;
- margin: 0;
- padding: 0;
-}
-
-.btn-install {
- font-weight: bold;
- font-size: 110%;
- padding: .2em .3em;
-}
-
-.success-message {
- font-weight: bold;
- font-size: 110%;
- color: green;
-}
-.success-box {
- font-size: 130%;
-}
-
-.config-cc-wrapper {
- clear: left;
- /* If you change this height, also change it in WebInstaller_Options::submitCC() */
- height: 54em;
-}
-
-.config-plainlink a {
- background: none !important;
- padding: 0 !important;
-}
-
-.config-download-link {
- font-size: 1.8em;
- margin-left: 2em;
-}
-
-#config-live-log {
- overflow: hidden;
- min-width: 20em;
-}
diff --git a/common/config.js b/common/config.js
deleted file mode 100644
index 2886e08..0000000
--- a/common/config.js
+++ /dev/null
@@ -1,108 +0,0 @@
-( function ( $ ) {
- $( function () {
- var $label, labelText;
-
- function syncText() {
- var value = $(this).val()
- .replace( /[\[\]\{\}|#<>%+? ]/g, '_' )
- .replace( /&/, '&amp;' )
- .replace( /__+/g, '_' )
- .replace( /^_+/, '' )
- .replace( /_+$/, '' );
- value = value.substr( 0, 1 ).toUpperCase() + value.substr( 1 );
- $label.text( labelText.replace( '$1', value ) );
- }
-
- // Set up the help system
- $( '.mw-help-field-data' )
- .hide()
- .closest( '.mw-help-field-container' )
- .find( '.mw-help-field-hint' )
- .show()
- .click( function () {
- $(this)
- .closest( '.mw-help-field-container' )
- .find( '.mw-help-field-data' )
- .slideToggle( 'fast' );
- } );
-
- // Show/hide code for DB-specific options
- // FIXME: Do we want slow, fast, or even non-animated (instantaneous) showing/hiding here?
- $( '.dbRadio' ).each( function () {
- $( document.getElementById( $(this).attr( 'rel' ) ) ).hide();
- } );
- $( document.getElementById( $( '.dbRadio:checked' ).attr( 'rel' ) ) ).show();
- $( '.dbRadio' ).click( function () {
- var $checked = $( '.dbRadio:checked' ),
- $wrapper = $( document.getElementById( $checked.attr( 'rel' ) ) );
- if ( $wrapper.is( ':hidden' ) ) {
- $( '.dbWrapper' ).hide( 'slow' );
- $wrapper.show( 'slow' );
- }
- } );
-
- // Scroll to the bottom of upgrade log
- $( '#config-live-log' ).children( 'textarea' ).each( function () {
- this.scrollTop = this.scrollHeight;
- } );
-
- // Show/hide Creative Commons thingy
- $( '.licenseRadio' ).click( function () {
- var $wrapper = $( '#config-cc-wrapper' );
- if ( $( '#config__LicenseCode_cc-choose' ).is( ':checked' ) ) {
- $wrapper.show( 'slow' );
- } else {
- $wrapper.hide( 'slow' );
- }
- } );
-
- // Show/hide random stuff (email, upload)
- $( '.showHideRadio' ).click( function () {
- var $wrapper = $( '#' + $(this).attr( 'rel' ) );
- if ( $(this).is( ':checked' ) ) {
- $wrapper.show( 'slow' );
- } else {
- $wrapper.hide( 'slow' );
- }
- } );
- $( '.hideShowRadio' ).click( function () {
- var $wrapper = $( '#' + $(this).attr( 'rel' ) );
- if ( $(this).is( ':checked' ) ) {
- $wrapper.hide( 'slow' );
- } else {
- $wrapper.show( 'slow' );
- }
- } );
-
- // Hide "other" textboxes by default
- // Should not be done in CSS for javascript disabled compatibility
- $( '.enabledByOther' ).closest( '.config-block' ).hide();
-
- // Enable/disable "other" textboxes
- $( '.enableForOther' ).click( function () {
- var $textbox = $( document.getElementById( $(this).attr( 'rel' ) ) );
- // FIXME: Ugh, this is ugly
- if ( $(this).val() === 'other' ) {
- $textbox.removeProp( 'readonly' ).closest( '.config-block' ).slideDown( 'fast' );
- } else {
- $textbox.prop( 'readonly', true ).closest( '.config-block' ).slideUp( 'fast' );
- }
- } );
-
- // Synchronize radio button label for sitename with textbox
- $label = $( 'label[for=config__NamespaceType_site-name]' );
- labelText = $label.text();
- $label.text( labelText.replace( '$1', '' ) );
- $( '#config_wgSitename' ).on( 'keyup change', syncText ).each( syncText );
-
- // Show/Hide memcached servers when needed
- $( 'input[name$="config_wgMainCacheType"]' ).change( function () {
- var $memc = $( '#config-memcachewrapper' );
- if ( $( 'input[name$="config_wgMainCacheType"]:checked' ).val() === 'memcached' ) {
- $memc.show( 'slow' );
- } else {
- $memc.hide( 'slow' );
- }
- } );
- } );
-}( jQuery ) );
diff --git a/common/feed.css b/common/feed.css
deleted file mode 100644
index 9439663..0000000
--- a/common/feed.css
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-Make RSS and Atom feeds at least semi-legible to folk who accidentally
-load them in a browser...
-
-Compatibility:
-* Mozilla is fine.
-* Safari 1.2: the RSS <link> text isn't shown
-* Opera 7.5 uses the style sheet instead of its native RSS mode.
-* IE/Mac 5.2: none of the :before content works; doesn't get the charset right and displays garbage for non-ASCII.
-* IE/Win 6.0: No background color, borders, font size, font weight, or :before content.
-
-*/
-
-/* RSS: */ rss, channel, title, link, description, language, generator, lastBuildDate, item, pubDate, author, comments, creator,
-/* Atom: */ feed, id, modified, tagline, entry, issued, created, updated, summary, comment {
- display: block;
-}
-
-rss, feed {
- background: white;
- color: black;
- margin: 1em;
- font-family: "Verdana", "Tahoma", "Arial", "Helvetica", sans-serif;
- line-height: 1.5em;
- font-size: 76%;
-}
-
-rss:before {
- content: "This RSS feed is meant to be read in a syndicated news reader, and isn't ideal for a web browser.";
-}
-
-feed:before {
- content: "This Atom feed is meant to be read in a syndicated news reader, and isn't ideal for a web browser.";
-}
-rss:before, feed:before {
- color: red;
- text-align: center;
- line-height: 2em;
-}
-
-channel>title,
-item>title,
-feed>title,
-entry>title {
- font-weight: bold;
- border-bottom: solid 1px #aaa;
- margin-left: -0.5em;
-}
-channel>title, feed>title {
- font-size: larger;
-}
-item>title, entry>title {
- font-size: large;
-}
-item, entry {
- margin-top: 1em;
- margin-left: 2em;
-}
-
-item>description, entry>summary {
- white-space: pre;
- overflow: auto;
- background: #f8f8ff;
-}
-
-pubDate:before { content: "Date: " }
-link:before { content: "Link: " }
-author:before, creator:before { content: "Author: " }
-description:before { content: "Description: " }
-id:before { content: "Id: " }
-
-generator:before { content: "Generator: " }
-language:before { content: "Language: " }
-lastBuildDate:before { content: "Updated: " }
-comments:before { content: "Comments page: " }
-
-tagline:before { content: "Tagline: " }
-issued:before { content: "Issued: " }
-created:before { content: "Created: " }
-modified:before { content: "Modified: " }
-updated:before { content: "Updated: " }
-summary:before { content: "Summary: " }
-comment:before { content: "Comment: " }
-
-pubDate:before, link:before, author:before, description:before,
-language:before, generator:before, lastBuildDate:before, comments:before,
-tagline:before, issued:before, created:before, modified:before,
-summary:before, comment:before, creator:before, id:before, updated:before {
- color: #224;
- font-weight: bold;
-}
-
-feed link:after {
- content: attr(href);
-}
diff --git a/common/images/Arr_.png b/common/images/Arr_.png
deleted file mode 100644
index bc67a4b..0000000
--- a/common/images/Arr_.png
+++ /dev/null
Binary files differ
diff --git a/common/images/Arr_d.png b/common/images/Arr_d.png
deleted file mode 100644
index 58a9fc6..0000000
--- a/common/images/Arr_d.png
+++ /dev/null
Binary files differ
diff --git a/common/images/Arr_l.png b/common/images/Arr_l.png
deleted file mode 100644
index 2246254..0000000
--- a/common/images/Arr_l.png
+++ /dev/null
Binary files differ
diff --git a/common/images/Arr_r.png b/common/images/Arr_r.png
deleted file mode 100644
index 467a555..0000000
--- a/common/images/Arr_r.png
+++ /dev/null
Binary files differ
diff --git a/common/images/Arr_u.png b/common/images/Arr_u.png
deleted file mode 100644
index 1aa543a..0000000
--- a/common/images/Arr_u.png
+++ /dev/null
Binary files differ
diff --git a/common/images/Checker-16x16.png b/common/images/Checker-16x16.png
deleted file mode 100644
index 3e9e3d0..0000000
--- a/common/images/Checker-16x16.png
+++ /dev/null
Binary files differ
diff --git a/common/images/Zoom_sans.gif b/common/images/Zoom_sans.gif
deleted file mode 100644
index 56a49de..0000000
--- a/common/images/Zoom_sans.gif
+++ /dev/null
Binary files differ
diff --git a/common/images/add.png b/common/images/add.png
deleted file mode 100644
index 3497423..0000000
--- a/common/images/add.png
+++ /dev/null
Binary files differ
diff --git a/common/images/ajax-loader.gif b/common/images/ajax-loader.gif
deleted file mode 100644
index 72203fd..0000000
--- a/common/images/ajax-loader.gif
+++ /dev/null
Binary files differ
diff --git a/common/images/ar/button_bold.png b/common/images/ar/button_bold.png
deleted file mode 100644
index e524f6c..0000000
--- a/common/images/ar/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/common/images/ar/button_headline.png b/common/images/ar/button_headline.png
deleted file mode 100644
index 398e561..0000000
--- a/common/images/ar/button_headline.png
+++ /dev/null
Binary files differ
diff --git a/common/images/ar/button_italic.png b/common/images/ar/button_italic.png
deleted file mode 100644
index 6ec73e9..0000000
--- a/common/images/ar/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/common/images/ar/button_link.png b/common/images/ar/button_link.png
deleted file mode 100644
index c9c63f6..0000000
--- a/common/images/ar/button_link.png
+++ /dev/null
Binary files differ
diff --git a/common/images/ar/button_nowiki.png b/common/images/ar/button_nowiki.png
deleted file mode 100644
index 743ea61..0000000
--- a/common/images/ar/button_nowiki.png
+++ /dev/null
Binary files differ
diff --git a/common/images/arrow_disabled_first_25.png b/common/images/arrow_disabled_first_25.png
deleted file mode 100644
index 78a493e..0000000
--- a/common/images/arrow_disabled_first_25.png
+++ /dev/null
Binary files differ
diff --git a/common/images/arrow_disabled_last_25.png b/common/images/arrow_disabled_last_25.png
deleted file mode 100644
index 2a64fd0..0000000
--- a/common/images/arrow_disabled_last_25.png
+++ /dev/null
Binary files differ
diff --git a/common/images/arrow_disabled_left_25.png b/common/images/arrow_disabled_left_25.png
deleted file mode 100644
index 83df068..0000000
--- a/common/images/arrow_disabled_left_25.png
+++ /dev/null
Binary files differ
diff --git a/common/images/arrow_disabled_right_25.png b/common/images/arrow_disabled_right_25.png
deleted file mode 100644
index aa4fbf8..0000000
--- a/common/images/arrow_disabled_right_25.png
+++ /dev/null
Binary files differ
diff --git a/common/images/arrow_first_25.png b/common/images/arrow_first_25.png
deleted file mode 100644
index 52b32a5..0000000
--- a/common/images/arrow_first_25.png
+++ /dev/null
Binary files differ
diff --git a/common/images/arrow_last_25.png b/common/images/arrow_last_25.png
deleted file mode 100644
index caf5033..0000000
--- a/common/images/arrow_last_25.png
+++ /dev/null
Binary files differ
diff --git a/common/images/arrow_left_25.png b/common/images/arrow_left_25.png
deleted file mode 100644
index f363bf6..0000000
--- a/common/images/arrow_left_25.png
+++ /dev/null
Binary files differ
diff --git a/common/images/arrow_right_25.png b/common/images/arrow_right_25.png
deleted file mode 100644
index 3f8fee3..0000000
--- a/common/images/arrow_right_25.png
+++ /dev/null
Binary files differ
diff --git a/common/images/be-tarask/button_bold.png b/common/images/be-tarask/button_bold.png
deleted file mode 100644
index 5c10cfe..0000000
--- a/common/images/be-tarask/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/common/images/be-tarask/button_italic.png b/common/images/be-tarask/button_italic.png
deleted file mode 100644
index 72209d7..0000000
--- a/common/images/be-tarask/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/common/images/be-tarask/button_link.png b/common/images/be-tarask/button_link.png
deleted file mode 100644
index 09c86fb..0000000
--- a/common/images/be-tarask/button_link.png
+++ /dev/null
Binary files differ
diff --git a/common/images/bullet.gif b/common/images/bullet.gif
deleted file mode 100644
index b43de48..0000000
--- a/common/images/bullet.gif
+++ /dev/null
Binary files differ
diff --git a/common/images/button_bold.png b/common/images/button_bold.png
deleted file mode 100644
index 75c3f10..0000000
--- a/common/images/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_extlink.png b/common/images/button_extlink.png
deleted file mode 100644
index 458943c..0000000
--- a/common/images/button_extlink.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_headline.png b/common/images/button_headline.png
deleted file mode 100644
index 9cf751d..0000000
--- a/common/images/button_headline.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_hr.png b/common/images/button_hr.png
deleted file mode 100644
index 47e1ca4..0000000
--- a/common/images/button_hr.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_image.png b/common/images/button_image.png
deleted file mode 100644
index 6919296..0000000
--- a/common/images/button_image.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_italic.png b/common/images/button_italic.png
deleted file mode 100644
index 527fbd1..0000000
--- a/common/images/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_link.png b/common/images/button_link.png
deleted file mode 100644
index eb5634b..0000000
--- a/common/images/button_link.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_media.png b/common/images/button_media.png
deleted file mode 100644
index 4194ec1..0000000
--- a/common/images/button_media.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_nowiki.png b/common/images/button_nowiki.png
deleted file mode 100644
index 2ba818d..0000000
--- a/common/images/button_nowiki.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_sig.png b/common/images/button_sig.png
deleted file mode 100644
index fe34b3f..0000000
--- a/common/images/button_sig.png
+++ /dev/null
Binary files differ
diff --git a/common/images/button_template.png b/common/images/button_template.png
deleted file mode 100644
index 94d9d0b..0000000
--- a/common/images/button_template.png
+++ /dev/null
Binary files differ
diff --git a/common/images/cc-0.png b/common/images/cc-0.png
deleted file mode 100644
index 9d3fe5f..0000000
--- a/common/images/cc-0.png
+++ /dev/null
Binary files differ
diff --git a/common/images/cc-by-nc-sa.png b/common/images/cc-by-nc-sa.png
deleted file mode 100644
index 0d24a71..0000000
--- a/common/images/cc-by-nc-sa.png
+++ /dev/null
Binary files differ
diff --git a/common/images/cc-by-sa.png b/common/images/cc-by-sa.png
deleted file mode 100644
index 518fb64..0000000
--- a/common/images/cc-by-sa.png
+++ /dev/null
Binary files differ
diff --git a/common/images/cc-by.png b/common/images/cc-by.png
deleted file mode 100644
index 9cca2f9..0000000
--- a/common/images/cc-by.png
+++ /dev/null
Binary files differ
diff --git a/common/images/closewindow.png b/common/images/closewindow.png
deleted file mode 100644
index 990702e..0000000
--- a/common/images/closewindow.png
+++ /dev/null
Binary files differ
diff --git a/common/images/closewindow19x19.png b/common/images/closewindow19x19.png
deleted file mode 100644
index c96d9ff..0000000
--- a/common/images/closewindow19x19.png
+++ /dev/null
Binary files differ
diff --git a/common/images/critical-32.png b/common/images/critical-32.png
deleted file mode 100644
index 9b38e6a..0000000
--- a/common/images/critical-32.png
+++ /dev/null
Binary files differ
diff --git a/common/images/cyrl/LICENSE b/common/images/cyrl/LICENSE
deleted file mode 100644
index bedcec6..0000000
--- a/common/images/cyrl/LICENSE
+++ /dev/null
@@ -1,17 +0,0 @@
-button_bold.png
----------------
-Source : http://commons.wikimedia.org/wiki/Image:Button_bold_ukr.png
-License: Public domain
-Author : Alexey Belomoev
-
-button_italic.png
-------------------------
-Source : http://commons.wikimedia.org/wiki/Image:Button_italic_ukr.png
-License: Public domain
-Author : Alexey Belomoev
-
-button_link.png
------------------
-Source : http://commons.wikimedia.org/wiki/Image:Button_internal_link_ukr.png
-License: GPL
-Author : Saproj, Erik Möller
diff --git a/common/images/cyrl/button_bold.png b/common/images/cyrl/button_bold.png
deleted file mode 100644
index eae30d9..0000000
--- a/common/images/cyrl/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/common/images/cyrl/button_italic.png b/common/images/cyrl/button_italic.png
deleted file mode 100644
index b958d22..0000000
--- a/common/images/cyrl/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/common/images/cyrl/button_link.png b/common/images/cyrl/button_link.png
deleted file mode 100644
index 12ad373..0000000
--- a/common/images/cyrl/button_link.png
+++ /dev/null
Binary files differ
diff --git a/common/images/de/button_bold.png b/common/images/de/button_bold.png
deleted file mode 100644
index 367d5bc..0000000
--- a/common/images/de/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/common/images/de/button_italic.png b/common/images/de/button_italic.png
deleted file mode 100644
index fdd8c9f..0000000
--- a/common/images/de/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/common/images/diffunderline.gif b/common/images/diffunderline.gif
deleted file mode 100644
index e062c56..0000000
--- a/common/images/diffunderline.gif
+++ /dev/null
Binary files differ
diff --git a/common/images/download-32.png b/common/images/download-32.png
deleted file mode 100644
index e5b8318..0000000
--- a/common/images/download-32.png
+++ /dev/null
Binary files differ
diff --git a/common/images/fa/button_bold.png b/common/images/fa/button_bold.png
deleted file mode 100644
index c54d094..0000000
--- a/common/images/fa/button_bold.png
+++ /dev/null
Binary files differ
diff --git a/common/images/fa/button_headline.png b/common/images/fa/button_headline.png
deleted file mode 100644
index 9890d15..0000000
--- a/common/images/fa/button_headline.png
+++ /dev/null
Binary files differ
diff --git a/common/images/fa/button_italic.png b/common/images/fa/button_italic.png
deleted file mode 100644
index 33f91ed..0000000
--- a/common/images/fa/button_italic.png
+++ /dev/null
Binary files differ
diff --git a/common/images/fa/button_link.png b/common/images/fa/button_link.png
deleted file mode 100644
index 76b939e..0000000
--- a/common/images/fa/button_link.png
+++ /dev/null
Binary files differ
diff --git a/common/images/fa/button_nowiki.png b/common/images/fa/button_nowiki.png
deleted file mode 100644
index 743ea61..0000000
--- a/common/images/fa/button_nowiki.png
+++ /dev/null
Binary files differ
diff --git a/common/images/feed-icon.png b/common/images/feed-icon.png
deleted file mode 100644
index 00f49f6..0000000
--- a/common/images/feed-icon.png
+++ /dev/null
Binary files differ
diff --git a/common/images/feed-icon.svg b/common/images/feed-icon.svg
deleted file mode 100644
index 6e5f570..0000000
--- a/common/images/feed-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 256 256"><defs><linearGradient x1=".085" y1=".085" x2=".915" y2=".915" id="a"><stop offset="0" stop-color="#E3702D"/><stop offset=".107" stop-color="#EA7D31"/><stop offset=".35" stop-color="#F69537"/><stop offset=".5" stop-color="#FB9E3A"/><stop offset=".702" stop-color="#EA7C31"/><stop offset=".887" stop-color="#DE642B"/><stop offset="1" stop-color="#D95B29"/></linearGradient></defs><rect width="256" height="256" rx="55" ry="55" fill="#CC5D15"/><rect width="246" height="246" rx="50" ry="50" x="5" y="5" fill="#F49C52"/><rect width="236" height="236" rx="47" ry="47" x="10" y="10" fill="url(#a)"/><circle cx="68" cy="189" r="24" fill="#FFF"/><path d="M160 213h-34a82 82 0 0 0-82-82v-34a116 116 0 0 1 116 116zM184 213a140 140 0 0 0-140-140v-35a175 175 0 0 1 175 175z" fill="#FFF"/></svg> \ No newline at end of file
diff --git a/common/images/gnu-fdl.png b/common/images/gnu-fdl.png
deleted file mode 100644
index 3feaf57..0000000
--- a/common/images/gnu-fdl.png
+++ /dev/null
Binary files differ
diff --git a/common/images/help-question-hover.gif b/common/images/help-question-hover.gif
deleted file mode 100644
index 515138d..0000000
--- a/common/images/help-question-hover.gif
+++ /dev/null
Binary files differ
diff --git a/common/images/help-question.gif b/common/images/help-question.gif
deleted file mode 100644
index b4fc9c5..0000000
--- a/common/images/help-question.gif
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/COPYING b/common/images/icons/COPYING
deleted file mode 100644
index 136530a..0000000
--- a/common/images/icons/COPYING
+++ /dev/null
@@ -1,43 +0,0 @@
-The icons used here are derived from the crystalsvg icons in the the
-pics/crystalsvg/ directory of kdelibs-3.4.0 they were modified on 2005-05-15
-by Ævar Arnfjörð Bjarmason for use in MediaWiki.
-
-What follows is the contents of the LICENSE.crystalsvg file found in the pics/
-subdirectory of kdelibs-3.4.0:
-
-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-This copyright and license notice covers all CrystalSVG images.
-Note the license notice contains an add-on.
-********************************************************************************
-KDE Crystal theme icons.
-Copyright (C) 2002 and following years KDE Artists
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation,
-version 2.1 of the License.
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
- **** NOTE THIS ADD-ON ****
-The GNU Lesser General Public License or LGPL is written for software libraries
-in the first place. We expressly want the LGPL to be valid for this artwork
-library too.
-KDE Crystal theme icons is a special kind of software library, it is an
-artwork library, it's elements can be used in a Graphical User Interface, or
-GUI.
-Source code, for this library means:
- - for vectors svg;
- - for pixels, if applicable, the multi-layered formats xcf or psd, or
-otherwise png.
-The LGPL in some sections obliges you to make the files carry
-notices. With images this is in some cases impossible or hardly useful.
-With this library a notice is placed at a prominent place in the directory
-containing the elements. You may follow this practice.
-The exception in section 6 of the GNU Lesser General Public License covers
-the use of elements of this art library in a GUI.
-kde-artists [at] kde.org
-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/common/images/icons/fileicon-c.png b/common/images/icons/fileicon-c.png
deleted file mode 100644
index 0d603b7..0000000
--- a/common/images/icons/fileicon-c.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-cpp.png b/common/images/icons/fileicon-cpp.png
deleted file mode 100644
index 123688f..0000000
--- a/common/images/icons/fileicon-cpp.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-deb.png b/common/images/icons/fileicon-deb.png
deleted file mode 100644
index 87ca3fa..0000000
--- a/common/images/icons/fileicon-deb.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-djvu.png b/common/images/icons/fileicon-djvu.png
deleted file mode 100644
index 1da2276..0000000
--- a/common/images/icons/fileicon-djvu.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-djvu.xcf b/common/images/icons/fileicon-djvu.xcf
deleted file mode 100644
index 8043dcd..0000000
--- a/common/images/icons/fileicon-djvu.xcf
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-dvi.png b/common/images/icons/fileicon-dvi.png
deleted file mode 100644
index f37878d..0000000
--- a/common/images/icons/fileicon-dvi.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-exe.png b/common/images/icons/fileicon-exe.png
deleted file mode 100644
index dc020eb..0000000
--- a/common/images/icons/fileicon-exe.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-h.png b/common/images/icons/fileicon-h.png
deleted file mode 100644
index 339bf02..0000000
--- a/common/images/icons/fileicon-h.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-html.png b/common/images/icons/fileicon-html.png
deleted file mode 100644
index f28f8a2..0000000
--- a/common/images/icons/fileicon-html.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-iso.png b/common/images/icons/fileicon-iso.png
deleted file mode 100644
index c73d229..0000000
--- a/common/images/icons/fileicon-iso.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-java.png b/common/images/icons/fileicon-java.png
deleted file mode 100644
index a1b4f22..0000000
--- a/common/images/icons/fileicon-java.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-mid.png b/common/images/icons/fileicon-mid.png
deleted file mode 100644
index ce2bebb..0000000
--- a/common/images/icons/fileicon-mid.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-mov.png b/common/images/icons/fileicon-mov.png
deleted file mode 100644
index 952de1f..0000000
--- a/common/images/icons/fileicon-mov.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-o.png b/common/images/icons/fileicon-o.png
deleted file mode 100644
index f3523d9..0000000
--- a/common/images/icons/fileicon-o.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-ogg.png b/common/images/icons/fileicon-ogg.png
deleted file mode 100644
index ef4d801..0000000
--- a/common/images/icons/fileicon-ogg.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-ogg.xcf b/common/images/icons/fileicon-ogg.xcf
deleted file mode 100644
index a91024b..0000000
--- a/common/images/icons/fileicon-ogg.xcf
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-pdf.png b/common/images/icons/fileicon-pdf.png
deleted file mode 100644
index 8c8da92..0000000
--- a/common/images/icons/fileicon-pdf.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-ps.png b/common/images/icons/fileicon-ps.png
deleted file mode 100644
index e872833..0000000
--- a/common/images/icons/fileicon-ps.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-psd.png b/common/images/icons/fileicon-psd.png
deleted file mode 100644
index 598f190..0000000
--- a/common/images/icons/fileicon-psd.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-rm.png b/common/images/icons/fileicon-rm.png
deleted file mode 100644
index 81dbe0b..0000000
--- a/common/images/icons/fileicon-rm.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-rpm.png b/common/images/icons/fileicon-rpm.png
deleted file mode 100644
index 1903aac..0000000
--- a/common/images/icons/fileicon-rpm.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-svg.png b/common/images/icons/fileicon-svg.png
deleted file mode 100644
index b782113..0000000
--- a/common/images/icons/fileicon-svg.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-tar.png b/common/images/icons/fileicon-tar.png
deleted file mode 100644
index e5fd1b7..0000000
--- a/common/images/icons/fileicon-tar.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-tex.png b/common/images/icons/fileicon-tex.png
deleted file mode 100644
index a437284..0000000
--- a/common/images/icons/fileicon-tex.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-ttf.png b/common/images/icons/fileicon-ttf.png
deleted file mode 100644
index 1ed4e74..0000000
--- a/common/images/icons/fileicon-ttf.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon-txt.png b/common/images/icons/fileicon-txt.png
deleted file mode 100644
index 9e988e7..0000000
--- a/common/images/icons/fileicon-txt.png
+++ /dev/null
Binary files differ
diff --git a/common/images/icons/fileicon.png b/common/images/icons/fileicon.png
deleted file mode 100644
index 59696a3..0000000
--- a/common/images/icons/fileicon.png
+++ /dev/null
Binary files differ
diff --git a/common/images/info-32.png b/common/images/info-32.png
deleted file mode 100644
index ab09e1d..0000000
--- a/common/images/info-32.png
+++ /dev/null
Binary files differ
diff --git a/common/images/ksh/LICENSE b/common/images/ksh/LICENSE
deleted file mode 100644
index ba56f97..0000000
--- a/common/images/ksh/LICENSE
+++ /dev/null
@@ -1,7 +0,0 @@
-
-button_S_italic.png
--------------------
-Source : http://commons.wikimedia.org/wiki/Image:Button_S_italic.png
-License: Public domain
-Author : Purodha Blissenbach, http://ksh.wikipedia.org/wiki/User:Purodha
-
diff --git a/common/images/ksh/button_S_italic.png b/common/images/ksh/button_S_italic.png
deleted file mode 100644
index 15496c0..0000000
--- a/common/images/ksh/button_S_italic.png
+++ /dev/null
Binary files differ
diff --git a/common/images/link_icon.gif b/common/images/link_icon.gif
deleted file mode 100644
index 168c1a2..0000000
--- a/common/images/link_icon.gif
+++ /dev/null
Binary files differ
diff --git a/common/images/magnify-clip-rtl.png b/common/images/magnify-clip-rtl.png
deleted file mode 100644
index ff85c07..0000000
--- a/common/images/magnify-clip-rtl.png
+++ /dev/null
Binary files differ
diff --git a/common/images/magnify-clip.png b/common/images/magnify-clip.png
deleted file mode 100644
index 00a9cee..0000000
--- a/common/images/magnify-clip.png
+++ /dev/null
Binary files differ
diff --git a/common/images/mediawiki.png b/common/images/mediawiki.png
deleted file mode 100644
index 8c42118..0000000
--- a/common/images/mediawiki.png
+++ /dev/null
Binary files differ
diff --git a/common/images/nextredirectltr.png b/common/images/nextredirectltr.png
deleted file mode 100644
index cd657c3..0000000
--- a/common/images/nextredirectltr.png
+++ /dev/null
Binary files differ
diff --git a/common/images/nextredirectrtl.png b/common/images/nextredirectrtl.png
deleted file mode 100644
index b788f33..0000000
--- a/common/images/nextredirectrtl.png
+++ /dev/null
Binary files differ
diff --git a/common/images/poweredby_mediawiki_88x31.png b/common/images/poweredby_mediawiki_88x31.png
deleted file mode 100644
index 30e1d2e..0000000
--- a/common/images/poweredby_mediawiki_88x31.png
+++ /dev/null
Binary files differ
diff --git a/common/images/public-domain.png b/common/images/public-domain.png
deleted file mode 100644
index ebf0107..0000000
--- a/common/images/public-domain.png
+++ /dev/null
Binary files differ
diff --git a/common/images/question-small.png b/common/images/question-small.png
deleted file mode 100644
index f7405d2..0000000
--- a/common/images/question-small.png
+++ /dev/null
Binary files differ
diff --git a/common/images/question.svg b/common/images/question.svg
deleted file mode 100644
index 98fbe8d..0000000
--- a/common/images/question.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="21.059" height="21.06"><path fill="#575757" d="M10.529 0c-5.814 0-10.529 4.714-10.529 10.529s4.715 10.53 10.529 10.53c5.816 0 10.529-4.715 10.529-10.53s-4.712-10.529-10.529-10.529zm-.002 16.767c-.861 0-1.498-.688-1.498-1.516 0-.862.637-1.534 1.498-1.534.828 0 1.5.672 1.5 1.534 0 .827-.672 1.516-1.5 1.516zm2.137-6.512c-.723.568-1 .931-1 1.739v.5h-2.205v-.603c0-1.517.449-2.136 1.154-2.688.707-.552 1.139-.845 1.139-1.637 0-.672-.414-1.051-1.24-1.051-.707 0-1.328.189-1.982.638l-1.051-1.807c.861-.604 1.93-1.034 3.342-1.034 1.912 0 3.516 1.051 3.516 3.066-.001 1.43-.794 2.188-1.673 2.877z"/></svg> \ No newline at end of file
diff --git a/common/images/redirectltr.png b/common/images/redirectltr.png
deleted file mode 100644
index 695f2a1..0000000
--- a/common/images/redirectltr.png
+++ /dev/null
Binary files differ
diff --git a/common/images/redirectrtl.png b/common/images/redirectrtl.png
deleted file mode 100644
index c954a2a..0000000
--- a/common/images/redirectrtl.png
+++ /dev/null
Binary files differ
diff --git a/common/images/remove.png b/common/images/remove.png
deleted file mode 100644
index cd03d6d..0000000
--- a/common/images/remove.png
+++ /dev/null
Binary files differ
diff --git a/common/images/spinner.gif b/common/images/spinner.gif
deleted file mode 100644
index 6146be4..0000000
--- a/common/images/spinner.gif
+++ /dev/null
Binary files differ
diff --git a/common/images/tick-32.png b/common/images/tick-32.png
deleted file mode 100644
index 34cfa9c..0000000
--- a/common/images/tick-32.png
+++ /dev/null
Binary files differ
diff --git a/common/images/tipsy-arrow.gif b/common/images/tipsy-arrow.gif
deleted file mode 100644
index 9f1a15b..0000000
--- a/common/images/tipsy-arrow.gif
+++ /dev/null
Binary files differ
diff --git a/common/images/tooltip_icon.png b/common/images/tooltip_icon.png
deleted file mode 100644
index ba5718a..0000000
--- a/common/images/tooltip_icon.png
+++ /dev/null
Binary files differ
diff --git a/common/images/warning-32.png b/common/images/warning-32.png
deleted file mode 100644
index 0400734..0000000
--- a/common/images/warning-32.png
+++ /dev/null
Binary files differ
diff --git a/common/images/wiki.png b/common/images/wiki.png
deleted file mode 100644
index 48595b0..0000000
--- a/common/images/wiki.png
+++ /dev/null
Binary files differ
diff --git a/common/oldshared.css b/common/oldshared.css
deleted file mode 100644
index eea8b8e..0000000
--- a/common/oldshared.css
+++ /dev/null
@@ -1,469 +0,0 @@
-/**
- * oldshared.css
- * This file contains CSS settings common to Wikistandard, Nostalgia and
- * CologneBlue, the old pre-Monobook skins
- */
-
-/* For clarity, explicitly state some recommendations from
- * http://www.w3.org/TR/CSS21/sample.html to make sure the editsection links scale right
- */
-
-h1 { font-size: 2em; }
-h2 { font-size: 1.5em; }
-h3 { font-size: 1.17em; }
-h4 { font-size: 1.11em; }
-h5 { font-size: 1.05em; }
-h6 { font-size: 1em; }
-h1, h2, h3, h4, h5, h6 {
- font-weight: bolder;
-}
-
-/* Now the custom parts */
-
-#footer { clear: both }
-/* images */
-/* @noflip */
-div.floatright {
- float: right;
- clear: right;
- margin: 0 0 1em 1em;
-}
-
-/* @noflip */
-div.floatright p {
- font-style: italic;
-}
-
-/* @noflip */
-div.floatleft {
- float: left;
- clear: left;
- margin: 0.3em 0.5em 0.5em 0;
-}
-
-/* @noflip */
-div.floatleft p {
- font-style: italic;
-}
-
-/* table standards */
-table.rimage {
- float: right;
- margin-left: 1em;
- margin-bottom: 1em;
- text-align: center;
- font-size: smaller;
-}
-
-/* thumbnails */
-div.thumb {
- margin-bottom: .5em;
- border-style: solid;
- border-color: white;
- width: auto;
-}
-div.thumbinner {
- border: 1px solid #ccc;
- padding: 3px !important;
- background-color: #f9f9f9;
- font-size: 94%;
- text-align: center;
- overflow: hidden;
-}
-html .thumbimage {
- border: 1px solid #ccc;
-}
-html .thumbcaption {
- border: none;
- text-align: left;
- line-height: 1.4em;
- padding: 3px !important;
- font-size: 94%;
-}
-div.magnify {
- float: right;
- border: none !important;
- background: none !important;
- margin-left: 3px;
-}
-div.magnify a,
-div.magnify img {
- display: block;
- border: none !important;
- background: none !important;
-}
-/* @noflip */
-div.tright {
- clear: right;
- float: right;
- border-width: .5em 0 .8em 1.4em;
-}
-/* @noflip */
-div.tleft {
- float: left;
- clear: left;
- margin-right: .5em;
- border-width: .5em 1.4em .8em 0;
-}
-img.thumbborder {
- border: 1px solid #dddddd;
-}
-
-/* Page history styling */
-/* the auto-generated edit comments */
-.autocomment { color: #4b4b4b; }
-
-img { border: none; }
-
-#toc,
-.toc {
- border: 1px solid #bba;
- background-color: #f7f8ff;
- padding: 5px;
- font-size: 95%;
- text-align: center;
- display: -moz-inline-block;
- display: inline-block;
- display: table;
-
- /* IE7 and earlier */
- zoom: 1;
- *display: inline;
-
- padding: 7px;
-}
-/* CSS for backwards-compatibility with cached page renders and creative uses in wikitext */
-table#toc,
-table.toc {
- border-collapse: collapse;
-}
-/* Remove additional paddings inside table-cells that are not present in <div>s */
-table#toc td,
-table.toc td {
- padding: 0;
-}
-#toc h2,
-.toc h2 {
- display: inline;
- border: none;
- padding: 0;
- font-size: 100%;
- font-weight: bold;
-}
-#toc ul,
-.toc ul {
- list-style-type: none;
- list-style-image: none;
- padding: 0;
- text-align: left;
-}
-#toc ul ul,
-.toc ul ul {
- margin: 0 0 0 2em;
-}
-#toc .toctoggle,
-.toc .toctoggle {
- font-size: 94%;
-}
-
-.error {
- color: red;
- font-size: larger;
-}
-
-/* preference page with js-genrated toc */
-#preftoc {
- float: left;
- margin: 1em 1em 1em 1em;
- width: 13em;
-}
-#preftoc li {
- border: 1px solid White;
-}
-#preftoc li.selected {
- background-color:#f9f9f9;
- border:1px dashed #aaaaaa;
-}
-#preftoc a,
-#preftoc a:active {
- display: block;
- color: #005189;
-}
-.mw-prefs-buttons {
- clear: left;
- float: left;
- margin-top: 1em;
-}
-div.htmlform-tip {
- font-size: 94%;
- margin-top: 0.4em;
- color: #666;
-}
-fieldset.prefsection {
- margin-top: 1em;
-}
-fieldset.operaprefsection {
- margin-left: 15em;
-}
-
-/* emulate center */
-.center {
- width: 100%;
- text-align: center;
-}
-*.center * {
- margin-left: auto;
- margin-right: auto;
-}
-
-/* small for tables and similar */
-.small {
- font-size: 94%;
-}
-table.small {
- font-size: 100%;
-}
-
-/* use this instead of #toc for page content */
-.toccolours {
- border: 1px solid #aaaaaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
-}
-#siteNotice {
- border: 1px solid #aaaaaa;
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-.redirectText {
- font-size: 150%;
- margin: 5px;
-}
-.sharedUploadNotice {
- font-style: italic;
-}
-span.unpatrolled {
- font-weight: bold;
- color: red;
-}
-
-span.updatedmarker {
- color: black;
- background-color: #00FF00;
-}
-
-div.gallerybox {
- width: 150px;
-}
-
-span.comment {
- font-style: italic;
-}
-
-span.changedby {
- font-size: 95%;
-}
-
-.previewnote {
- text-align: center;
- color: #cc0000;
-}
-.editExternally {
- border-style: solid;
- border-width: 1px;
- border-color: gray;
- background: #ffffff;
- padding: 3px;
- margin-top: 0.5em;
- float: left;
- font-size: small;
- text-align: center;
-}
-.editExternallyHelp {
- font-style: italic;
- color: gray;
-}
-
-li span.deleted {
- text-decoration: line-through;
- color: #888;
- font-style: italic;
-}
-
-/* Classes for Exif data display */
-table.mw_metadata {
- margin-left: 0.5em;
-}
-
-table.mw_metadata caption {
- font-weight: bold;
-}
-table.mw_metadata th {
- font-weight: normal;
-}
-table.mw_metadata td {
- padding: 0.1em;
-}
-
-table.mw_metadata {
- border: none;
- border-collapse: collapse;
-}
-table.mw_metadata td,
-table.mw_metadata th {
- border: 1px solid #aaaaaa;
- padding-left: 4px;
- padding-right: 4px;
-}
-table.mw_metadata th {
- background-color: #f9f9f9;
-}
-table.mw_metadata td {
- background-color: #fcfcfc;
-}
-table.mw_metadata td.spacer {
- background: inherit;
- border-top: none;
- border-bottom: none;
-}
-table.collapsed tr.collapsable {
- display: none;
-}
-
-.visualClear {
- clear: both;
-}
-
-/* Allmessages table */
-#allmessagestable th {
- background-color: #b2b2ff;
-}
-
-#allmessagestable tr.orig {
- background-color: #ffe2e2;
-}
-
-#allmessagestable tr.new {
- background-color: #e2ffe2;
-}
-
-#allmessagestable tr.def {
- background-color: #f0f0ff;
-}
-
-#jump-to-nav {
- display: none;
-}
-
-div.multipageimagenavbox {
- border: solid 1px silver;
- padding: 4px;
- margin: 1em;
- background: #f0f0f0;
-}
-
-div.multipageimagenavbox div.thumb {
- border: none;
- margin-left: 2em;
- margin-right: 2em;
-}
-
-div.multipageimagenavbox hr {
- margin: 6px;
-}
-
-table.multipageimage td {
- text-align: center;
-}
-
-/*
- Table pager (e.g. Special:Imagelist)
- - remove underlines from the navigation link
- - collapse borders
- - set the borders to outsets (similar to Special:Allmessages)
- - remove line wrapping for all td and th, set background color
- - restore line wrapping for the last two table cells (description and size)
-*/
-.TablePager_nav a {
- text-decoration: none;
-}
-.TablePager {
- border-collapse: collapse;
-}
-.TablePager,
-.TablePager td,
-.TablePager th {
- border: 0.15em solid #777777;
- padding: 0 0.15em 0 0.15em;
-}
-.TablePager th {
- background-color: #eeeeff;
-}
-.TablePager td {
- background-color: #ffffff;
-}
-.TablePager tr:hover td {
- background-color: #eeeeff;
-}
-
-.imagelist td,
-.imagelist th {
- white-space: nowrap;
-}
-.imagelist .TablePager_col_links {
- background-color: #eeeeff;
-}
-.imagelist .TablePager_col_img_description {
- white-space: normal;
-}
-.imagelist th.TablePager_sort {
- background-color: #ccccff;
-}
-
-.templatesUsed {
- margin-top: 1em;
-}
-
-.MediaTransformError {
- border: thin solid #777;
- background-color: #ccc;
- padding: 0.1em;
-}
-.MediaTransformError td {
- text-align: center;
- vertical-align: middle;
- font-size: 90%;
-}
-
-form#specialpages {
- display: inline;
-}
-
-body {
- direction: ltr;
- unicode-bidi: embed;
- background-color: #ffffec;
-}
-body.ns-0 {
- background-color: white;
-}
-
-/** RTL specific CSS starts here **/
-
-/**
- * Lists:
- * The following lines don't have a visible effect on non-Gecko browsers
- * They fix a problem with Gecko browsers rendering lists to the right of
- * left-floated objects in an RTL layout.
- */
-/* @noflip */
-html > body.rtl div#article ul {
- display: table;
-}
-/* @noflip */
-html > body.rtl div#bodyContent ul#filetoc {
- display: block;
-}
-
-/* RTL specific CSS ends here **/
diff --git a/common/protect.js b/common/protect.js
deleted file mode 100644
index dc142ca..0000000
--- a/common/protect.js
+++ /dev/null
@@ -1,387 +0,0 @@
-( function ( mw, $ ) {
-
-var ProtectionForm = window.ProtectionForm = {
- existingMatch: false,
-
- /**
- * Set up the protection chaining interface (i.e. "unlock move permissions" checkbox)
- * on the protection form
- *
- * @param opts Object : parameters with members:
- * tableId Identifier of the table containing UI bits
- * labelText Text to use for the checkbox label
- * numTypes The number of protection types
- * existingMatch True if all the existing expiry times match
- */
- init: function ( opts ) {
- var box, boxbody, row, cell, check, label;
-
- if ( !( document.createTextNode && document.getElementById && document.getElementsByTagName ) ) {
- return false;
- }
-
- box = document.getElementById( opts.tableId );
- if ( !box ) {
- return false;
- }
-
- boxbody = box.getElementsByTagName( 'tbody' )[0];
- row = document.createElement( 'tr' );
- boxbody.insertBefore( row, boxbody.firstChild.nextSibling );
-
- this.existingMatch = opts.existingMatch;
-
- cell = document.createElement( 'td' );
- row.appendChild( cell );
- // If there is only one protection type, there is nothing to chain
- if ( opts.numTypes > 1 ) {
- check = document.createElement( 'input' );
- check.id = 'mwProtectUnchained';
- check.type = 'checkbox';
- $( check ).click( function () {
- ProtectionForm.onChainClick();
- } );
-
- label = document.createElement( 'label' );
- label.htmlFor = 'mwProtectUnchained';
- label.appendChild( document.createTextNode( opts.labelText ) );
-
- cell.appendChild( check );
- cell.appendChild( document.createTextNode( ' ' ) );
- cell.appendChild( label );
-
- check.checked = !this.areAllTypesMatching();
- this.enableUnchainedInputs( check.checked );
- }
-
- $( '#mwProtect-reason' ).byteLimit( 180 );
-
- this.updateCascadeCheckbox();
-
- return true;
- },
-
- /**
- * Sets the disabled attribute on the cascade checkbox depending on the current selected levels
- */
- updateCascadeCheckbox: function () {
- var i, lists, items, selected;
-
- // For non-existent titles, there is no cascade option
- if ( !document.getElementById( 'mwProtect-cascade' ) ) {
- return;
- }
- lists = this.getLevelSelectors();
- for ( i = 0; i < lists.length; i++ ) {
- if ( lists[i].selectedIndex > -1 ) {
- items = lists[i].getElementsByTagName( 'option' );
- selected = items[ lists[i].selectedIndex ].value;
- if ( !this.isCascadeableLevel( selected ) ) {
- document.getElementById( 'mwProtect-cascade' ).checked = false;
- document.getElementById( 'mwProtect-cascade' ).disabled = true;
- return;
- }
- }
- }
- document.getElementById( 'mwProtect-cascade' ).disabled = false;
- },
-
- /**
- * Checks if a cerain protection level is cascadeable.
- * @param level {String}
- * @return {Boolean}
- */
- isCascadeableLevel: function ( level ) {
- var cascadeLevels, len, i;
-
- cascadeLevels = mw.config.get( 'wgCascadeableLevels' );
- // cascadeLevels isn't defined on all pages
- if ( cascadeLevels ) {
- for ( i = 0, len = cascadeLevels.length; i < len; i += 1 ) {
- if ( cascadeLevels[i] === level ) {
- return true;
- }
- }
- }
- return false;
- },
-
- /**
- * When protection levels are locked together, update the rest
- * when one action's level changes
- *
- * @param source Element Level selector that changed
- */
- updateLevels: function ( source ) {
- if ( !this.isUnchained() ) {
- this.setAllSelectors( source.selectedIndex );
- }
- this.updateCascadeCheckbox();
- },
-
- /**
- * When protection levels are locked together, update the
- * expiries when one changes
- *
- * @param source Element expiry input that changed
- */
-
- updateExpiry: function ( source ) {
- var expiry, listId, list;
-
- if ( !this.isUnchained() ) {
- expiry = source.value;
- this.forEachExpiryInput( function ( element ) {
- element.value = expiry;
- } );
- }
- listId = source.id.replace( /^mwProtect-(\w+)-expires$/, 'mwProtectExpirySelection-$1' );
- list = document.getElementById( listId );
- if ( list && list.value !== 'othertime' ) {
- if ( this.isUnchained() ) {
- list.value = 'othertime';
- } else {
- this.forEachExpirySelector( function ( element ) {
- element.value = 'othertime';
- } );
- }
- }
- },
-
- /**
- * When protection levels are locked together, update the
- * expiry lists when one changes and clear the custom inputs
- *
- * @param source Element expiry selector that changed
- */
- updateExpiryList: function ( source ) {
- var expiry;
- if ( !this.isUnchained() ) {
- expiry = source.value;
- this.forEachExpirySelector( function ( element ) {
- element.value = expiry;
- } );
- this.forEachExpiryInput( function ( element ) {
- element.value = '';
- } );
- }
- },
-
- /**
- * Update chain status and enable/disable various bits of the UI
- * when the user changes the "unlock move permissions" checkbox
- */
- onChainClick: function () {
- if ( this.isUnchained() ) {
- this.enableUnchainedInputs( true );
- } else {
- this.setAllSelectors( this.getMaxLevel() );
- this.enableUnchainedInputs( false );
- }
- this.updateCascadeCheckbox();
- },
-
- /**
- * Returns true if the named attribute in all objects in the given array are matching
- */
- matchAttribute: function ( objects, attrName ) {
- var i, element, value;
-
- // Check levels
- value = null;
- for ( i = 0; i < objects.length; i++ ) {
- element = objects[i];
- if ( value === null ) {
- value = element[attrName];
- } else {
- if ( value !== element[attrName] ) {
- return false;
- }
- }
- }
- return true;
- },
-
- /**
- * Are all actions protected at the same level, with the same expiry time?
- *
- * @return boolean
- */
- areAllTypesMatching: function () {
- return this.existingMatch
- && this.matchAttribute( this.getLevelSelectors(), 'selectedIndex' )
- && this.matchAttribute( this.getExpirySelectors(), 'selectedIndex' )
- && this.matchAttribute( this.getExpiryInputs(), 'value' );
- },
-
- /**
- * Is protection chaining off?
- *
- * @return bool
- */
- isUnchained: function () {
- var element = document.getElementById( 'mwProtectUnchained' );
- return element
- ? element.checked
- : true; // No control, so we need to let the user set both levels
- },
-
- /**
- * Find the highest protection level in any selector
- */
- getMaxLevel: function () {
- var maxIndex = -1;
- this.forEachLevelSelector( function ( element ) {
- if ( element.selectedIndex > maxIndex ) {
- maxIndex = element.selectedIndex;
- }
- } );
- return maxIndex;
- },
-
- /**
- * Protect all actions at the specified level
- *
- * @param index int Protection level
- */
- setAllSelectors: function ( index ) {
- this.forEachLevelSelector( function ( element ) {
- if ( element.selectedIndex !== index ) {
- element.selectedIndex = index;
- }
- } );
- },
-
- /**
- * Apply a callback to each protection selector
- *
- * @param func callable Callback function
- */
- forEachLevelSelector: function ( func ) {
- var i, selectors;
-
- selectors = this.getLevelSelectors();
- for ( i = 0; i < selectors.length; i++ ) {
- func( selectors[i] );
- }
- },
-
- /**
- * Get a list of all protection selectors on the page
- *
- * @return Array
- */
- getLevelSelectors: function () {
- var i, ours, all, element;
-
- all = document.getElementsByTagName( 'select' );
- ours = [];
- for ( i = 0; i < all.length; i++ ) {
- element = all[i];
- if ( element.id.match( /^mwProtect-level-/ ) ) {
- ours[ours.length] = element;
- }
- }
- return ours;
- },
-
- /**
- * Apply a callback to each expiry input
- *
- * @param func callable Callback function
- */
- forEachExpiryInput: function ( func ) {
- var i, inputs;
-
- inputs = this.getExpiryInputs();
- for ( i = 0; i < inputs.length; i++ ) {
- func( inputs[i] );
- }
- },
-
- /**
- * Get a list of all expiry inputs on the page
- *
- * @return Array
- */
- getExpiryInputs: function () {
- var i, all, element, ours;
-
- all = document.getElementsByTagName( 'input' );
- ours = [];
- for ( i = 0; i < all.length; i++ ) {
- element = all[i];
- if ( element.name.match( /^mwProtect-expiry-/ ) ) {
- ours[ours.length] = element;
- }
- }
- return ours;
- },
-
- /**
- * Apply a callback to each expiry selector list
- * @param func callable Callback function
- */
- forEachExpirySelector: function ( func ) {
- var i, inputs;
-
- inputs = this.getExpirySelectors();
- for ( i = 0; i < inputs.length; i++ ) {
- func( inputs[i] );
- }
- },
-
- /**
- * Get a list of all expiry selector lists on the page
- *
- * @return Array
- */
- getExpirySelectors: function () {
- var i, all, ours, element;
-
- all = document.getElementsByTagName( 'select' );
- ours = [];
- for ( i = 0; i < all.length; i++ ) {
- element = all[i];
- if ( element.id.match( /^mwProtectExpirySelection-/ ) ) {
- ours[ours.length] = element;
- }
- }
- return ours;
- },
-
- /**
- * Enable/disable protection selectors and expiry inputs
- *
- * @param val boolean Enable?
- */
- enableUnchainedInputs: function ( val ) {
- var first = true;
-
- this.forEachLevelSelector( function ( element ) {
- if ( first ) {
- first = false;
- } else {
- element.disabled = !val;
- }
- } );
- first = true;
- this.forEachExpiryInput( function ( element ) {
- if ( first ) {
- first = false;
- } else {
- element.disabled = !val;
- }
- } );
- first = true;
- this.forEachExpirySelector( function ( element ) {
- if ( first ) {
- first = false;
- } else {
- element.disabled = !val;
- }
- } );
- }
-};
-
-}( mediaWiki, jQuery ) );
diff --git a/common/shared.css b/common/shared.css
deleted file mode 100644
index 6b052b3..0000000
--- a/common/shared.css
+++ /dev/null
@@ -1,1216 +0,0 @@
-/**
- * CSS in this file is used by *all* skins (that have any CSS at all). Be
- * careful what you put in here, since what looks good in one skin may not in
- * another, but don't ignore the poor pre-Monobook users either.
- */
-
-/* GENERAL CLASSES FOR DIRECTIONALITY SUPPORT */
-
-/**
- * These classes should be used for text depending on the content direction.
- * Content stuff like editsection, ul/ol and TOC depend on this.
- */
-.mw-content-ltr {
- /* @noflip */
- direction: ltr;
-}
-.mw-content-rtl {
- /* @noflip */
- direction: rtl;
-}
-
-/* Most input fields should be in site direction */
-.sitedir-ltr textarea,
-.sitedir-ltr input {
- /* @noflip */
- direction: ltr;
-}
-.sitedir-rtl textarea,
-.sitedir-rtl input {
- /* @noflip */
- direction: rtl;
-}
-
-/* User-Agent styles for new HTML5 elements */
-mark {
- background-color: yellow;
- color: black;
-}
-
-/* Input types that should follow user direction, like buttons */
-/* TODO: What about buttons in wikipage content ? */
-input[type="submit"],
-input[type="button"],
-input[type="reset"],
-input[type="file"] {
- direction: ltr;
-}
-
-/* Override default values */
-textarea[dir="ltr"],
-input[dir="ltr"] {
- /* @noflip */
- direction: ltr;
-}
-textarea[dir="rtl"],
-input[dir="rtl"] {
- /* @noflip */
- direction: rtl;
-}
-
-/* Default style for semantic tags */
-abbr[title],
-.explain[title] {
- border-bottom: 1px dotted;
- cursor: help;
-}
-
-/* Colored watchlist and recent changes numbers */
-.mw-plusminus-pos {
- color: #006400; /* dark green */
-}
-.mw-plusminus-neg {
- color: #8b0000; /* dark red */
-}
-.mw-plusminus-null {
- color: #aaa; /* gray */
-}
-
-/**
- * Links to redirects appear italicized on [[Special:AllPages]], [[Special:PrefixIndex]],
- * [[Special:Watchlist/edit]] and in category listings.
- */
-.allpagesredirect,
-.redirect-in-category,
-.watchlistredir {
- font-style: italic;
-}
-
-/* Comment and username portions of RC entries */
-span.comment {
- font-style: italic;
-}
-
-span.changedby {
- font-size: 95%;
-}
-
-/* Math */
-.texvc {
- direction: ltr;
- unicode-bidi: embed;
-}
-img.tex {
- vertical-align: middle;
-}
-span.texhtml {
- font-family: serif;
-}
-
-/**
- * Add a bit of margin space between the preview and the toolbar.
- * This replaces the ugly <p><br /></p> we used to insert into the page source
- */
-#wikiPreview.ontop {
- margin-bottom: 1em;
-}
-
-/* Stop floats from intruding into edit area in previews */
-#editform,
-#toolbar,
-#wpTextbox1 {
- clear: both;
-}
-
-#toolbar img {
- cursor: pointer;
-}
-
-/**
- * File description page
- */
-
-div.mw-filepage-resolutioninfo {
- font-size: smaller;
-}
-
-/**
- * File histories
- */
-h2#filehistory {
- clear: both;
-}
-
-table.filehistory th,
-table.filehistory td {
- vertical-align: top;
-}
-table.filehistory th {
- text-align: left;
-}
-table.filehistory td.mw-imagepage-filesize,
-table.filehistory th.mw-imagepage-filesize {
- white-space: nowrap;
-}
-
-table.filehistory td.filehistory-selected {
- font-weight: bold;
-}
-
-/**
- * Add a checkered background image on hover for file
- * description pages. (bug 26470)
- */
-.filehistory a img,
-#file img:hover {
- /* @embed */
- background: white url(images/Checker-16x16.png) repeat;
-}
-
-/**
- * rev_deleted stuff
- */
-li span.deleted,
-span.history-deleted {
- text-decoration: line-through;
- color: #888;
- font-style: italic;
-}
-
-/**
- * Patrol stuff
- */
-.not-patrolled {
- background-color: #ffa;
-}
-
-.unpatrolled {
- font-weight: bold;
- color: red;
-}
-
-div.patrollink {
- font-size: 75%;
- text-align: right;
-}
-
-/**
- * Forms
- */
-td.mw-label {
- text-align: right;
-}
-td.mw-input {
- text-align: left;
-}
-td.mw-submit {
- text-align: left;
-}
-
-td.mw-label {
- vertical-align: top;
-}
-.prefsection td.mw-label {
- width: 20%;
-}
-.prefsection table {
- width: 100%;
-}
-.prefsection table.mw-htmlform-matrix {
- width: auto;
-}
-
-.mw-icon-question {
- /* SVG support using a transparent gradient to guarantee cross-browser
- * compatibility (browsers able to understand gradient syntax support also SVG).
- * http://pauginer.tumblr.com/post/36614680636/invisible-gradient-technique */
- background-image: url(images/question-small.png);
- /* @embed */
- background-image: -webkit-linear-gradient(transparent, transparent), url(images/question.svg);
- /* @embed */
- background-image: linear-gradient(transparent, transparent), url(images/question.svg);
- background-repeat: no-repeat;
- background-size: 13px 13px;
- display: inline-block;
- height: 13px;
- width: 13px;
- margin-left: 4px;
-}
-
-.mw-icon-question:lang(ar),
-.mw-icon-question:lang(fa),
-.mw-icon-question:lang(ur) {
- -webkit-transform: scaleX(-1);
- -ms-transform: scaleX(-1);
- transform: scaleX(-1);
-}
-
-td.mw-submit {
- white-space: nowrap;
-}
-
-table.mw-htmlform-nolabel td.mw-label {
- width: 1px;
-}
-
-tr.mw-htmlform-vertical-label td.mw-label {
- text-align: left !important;
-}
-
-.mw-htmlform-invalid-input td.mw-input input {
- border-color: red;
-}
-
-.mw-htmlform-flatlist div.mw-htmlform-flatlist-item {
- display: inline;
- margin-right: 1em;
- white-space: nowrap;
-}
-
-.mw-htmlform-matrix td {
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-
-input#wpSummary {
- width: 80%;
- margin-bottom: 1em;
-}
-
-/**
- * Image captions
- */
-/* @noflip */
-.mw-content-ltr .thumbcaption {
- text-align: left;
-}
-/* @noflip */
-.mw-content-rtl .thumbcaption {
- text-align: right;
-}
-/* @noflip */
-.mw-content-ltr .magnify {
- float: right;
-}
-/* @noflip */
-.mw-content-rtl .magnify {
- float: left;
-}
-
-/**
- * Categories
- */
-#catlinks {
- /**
- * Overrides text justification (user preference)
- * See bug 31990
- */
- text-align: left;
-}
-.catlinks ul {
- display: inline;
- margin: 0;
- padding: 0;
- list-style: none;
- list-style-type: none;
- list-style-image: none;
- vertical-align: middle !ie;
-}
-
-.catlinks li {
- display: inline-block;
- line-height: 1.25em;
- border-left: 1px solid #AAA;
- margin: 0.125em 0;
- padding: 0 0.5em;
- zoom: 1;
- display: inline !ie;
-}
-
-.catlinks li:first-child {
- padding-left: 0.25em;
- border-left: none;
-}
-
-/* (bug 5346) make category redirects italic */
-.catlinks li a.mw-redirect {
- font-style: italic;
-}
-/**
- * Hidden categories
- */
-.mw-hidden-cats-hidden {
- display: none;
-}
-.catlinks-allhidden {
- display: none;
-}
-
-/* Convenience links to edit block, delete and protect reasons */
-p.mw-ipb-conveniencelinks,
-p.mw-protect-editreasons,
-p.mw-filedelete-editreasons,
-p.mw-delete-editreasons,
-p.mw-revdel-editreasons {
- font-size: 90%;
- text-align: right;
-}
-
-/**
- * OpenSearch ajax suggestions
- */
-.os-suggest {
- overflow: auto;
- overflow-x: hidden;
- position: absolute;
- top: 0;
- left: 0;
- width: 0;
- background-color: white;
- border-style: solid;
- border-color: #AAAAAA;
- border-width: 1px;
- z-index:99;
- font-size:95%;
-}
-
-table.os-suggest-results {
- font-size: 95%;
- cursor: pointer;
- border: 0;
- border-collapse: collapse;
- width: 100%;
-}
-
-.os-suggest-result,
-.os-suggest-result-hl {
- white-space: nowrap;
- background-color: white;
- color: black;
- padding: 2px;
-}
-.os-suggest-result-hl,
-.os-suggest-result-hl-webkit {
- background-color: #4C59A6;
- color: white;
-}
-
-.os-suggest-toggle {
- position: relative;
- left: 1ex;
- font-size: 65%;
-}
-.os-suggest-toggle-def {
- position: absolute;
- top: 0;
- left: 0;
- font-size: 65%;
- visibility: hidden;
-}
-
-/* Page history styling */
-
-/* The auto-generated edit comments */
-.autocomment {
- color: gray;
-}
-#pagehistory .history-user {
- margin-left: 0.4em;
- margin-right: 0.2em;
-}
-#pagehistory span.minor {
- font-weight: bold;
-}
-#pagehistory li {
- border: 1px solid white;
-}
-#pagehistory li.selected {
- background-color: #f9f9f9;
- border: 1px dashed #aaa;
-}
-
-.mw-history-revisiondelete-button, #mw-fileduplicatesearch-icon {
- float: right;
-}
-
-/** Generic minor/bot/newpage styling (recent changes) */
-.newpage,
-.minoredit,
-.botedit {
- font-weight: bold;
-}
-
-#shared-image-dup,
-#shared-image-conflict {
- font-style: italic;
-}
-
-/**
- * Recreating deleted page warning
- * Reupload file warning
- * Page protection warning
- * incl. log entries for these warnings
- */
-div.mw-warning-with-logexcerpt {
- padding: 3px;
- margin-bottom: 3px;
- border: 2px solid #2F6FAB;
- clear: both;
-}
-div.mw-warning-with-logexcerpt ul li {
- font-size: 90%;
-}
-
-/* (show/hide) revision deletion links */
-span.mw-revdelundel-link,
-strong.mw-revdelundel-link {
- font-size: 90%;
-}
-span.mw-revdelundel-hidden,
-input.mw-revdelundel-hidden {
- visibility: hidden;
-}
-
-td.mw-revdel-checkbox,
-th.mw-revdel-checkbox {
- padding-right: 10px;
- text-align: center;
-}
-
-/* red links; see bug 36276 */
-a.new {
- color: #BA0000;
-}
-
-/* feed links */
-a.feedlink {
- /* SVG support using a transparent gradient to guarantee cross-browser
- * compatibility (browsers able to understand gradient syntax support also SVG).
- * http://pauginer.tumblr.com/post/36614680636/invisible-gradient-technique */
- background-image: url(images/feed-icon.png);
- /* @embed */
- background-image: -webkit-linear-gradient(transparent, transparent), url(images/feed-icon.svg);
- /* @embed */
- background-image: linear-gradient(transparent, transparent), url(images/feed-icon.svg);
- background-position: center left;
- background-repeat: no-repeat;
- background-size: 12px 12px;
- padding-left: 16px;
-}
-
-/* Plainlinks - this can be used to switch
- * off special external link styling */
-.plainlinks a {
- background: none !important;
- padding: 0 !important;
-}
-/* External URLs should always be treated as LTR (bug 4330) */
-/* @noflip */ .rtl a.external.free,
-.rtl a.external.autonumber {
- direction: ltr;
- unicode-bidi: embed;
-}
-
-/**
- * wikitable class for skinning normal tables
- * keep in sync with commonPrint.css
- */
-table.wikitable {
- margin: 1em 0;
- background-color: #f9f9f9;
- border: 1px #aaa solid;
- border-collapse: collapse;
- color: black;
-}
-table.wikitable > tr > th,
-table.wikitable > tr > td,
-table.wikitable > * > tr > th,
-table.wikitable > * > tr > td {
- border: 1px #aaa solid;
- padding: 0.2em;
-}
-table.wikitable > tr > th,
-table.wikitable > * > tr > th {
- background-color: #f2f2f2;
- text-align: center;
-}
-table.wikitable > caption {
- font-weight: bold;
-}
-
-/**
- * Hide collapsable rows in a collapsed table.
- *
- * Used by ImagePage and the mediawiki.action.view.metadata module.
- */
-table.collapsed tr.collapsable {
- display: none;
-}
-
-/* success and error messages */
-.error,
-.warning,
-.success {
- font-size: larger;
-}
-.error {
- color: #cc0000;
-}
-.warning {
- color: #705000;
-}
-.success {
- color: #009000;
-}
-
-.errorbox,
-.warningbox,
-.successbox {
- border: 1px solid;
- padding: .5em 1em;
- margin-bottom: 1em;
- display: -moz-inline-block;
- display: inline-block;
- zoom: 1;
- *display: inline;
-}
-.errorbox h2,
-.warningbox h2,
-.successbox h2 {
- font-size: 1em;
- color: inherit;
- font-weight: bold;
- display: inline;
- margin: 0 .5em 0 0;
- border: none;
-}
-.errorbox {
- color: #cc0000;
- border-color: #fac5c5;
- background-color: #fae3e3;
-}
-.warningbox {
- color: #705000;
- border-color: #fde29b;
- background-color: #fdf1d1;
-}
-.successbox {
- color: #009000;
- border-color: #b7fdb5;
- background-color: #e1fddf;
-}
-
-/* general info/warning box for SP */
-.mw-infobox {
- border: 2px solid #ff7f00;
- margin: 0.5em;
- clear: left;
- overflow: hidden;
-}
-
-.mw-infobox-left {
- margin: 7px;
- float: left;
- width: 35px;
-}
-
-.mw-infobox-right {
- margin: 0.5em 0.5em 0.5em 49px;
-}
-
-/* Note on preview page */
-.previewnote {
- color: #c00;
- margin-bottom: 1em;
-}
-
-.previewnote p {
- text-indent: 3em;
- margin: 0.8em 0;
-}
-
-.visualClear {
- clear: both;
-}
-
-/**
- * Data table style
- *
- * Transparent table with suddle borders
- * and blue row-highlighting.
- */
-.mw-datatable {
- border-collapse: collapse;
-}
-.mw-datatable,
-.mw-datatable td,
-.mw-datatable th {
- border: 1px solid #aaaaaa;
- padding: 0 0.15em 0 0.15em;
-}
-.mw-datatable th {
- background-color: #ddddff;
-}
-.mw-datatable td {
- background-color: #ffffff;
-}
-.mw-datatable tr:hover td {
- background-color: #eeeeff;
-}
-
-
-/**
- * TablePager tables generated by the TablePager PHP class
- * in MediaWiki (e.g. Special:ListFiles).
- */
-.TablePager {
- min-width: 80%;
-}
-.TablePager_nav {
- margin: 0 auto;
-}
-.TablePager_nav td {
- padding: 3px;
- text-align: center;
-}
-.TablePager_nav a {
- text-decoration: none;
-}
-
-.imagelist td,
-.imagelist th {
- white-space: nowrap;
-}
-.imagelist .TablePager_col_links {
- background-color: #eeeeff;
-}
-.imagelist .TablePager_col_img_description {
- white-space: normal;
-}
-.imagelist th.TablePager_sort {
- background-color: #ccccff;
-}
-
-/* filetoc */
-ul#filetoc {
- text-align: center;
- border: 1px solid #aaaaaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
- margin-bottom: 0.5em;
- margin-left: 0;
- margin-right: 0;
-}
-
-#filetoc li {
- display: inline;
- list-style-type: none;
- padding-right: 2em;
-}
-
-/* Classes for Exif data display */
-table.mw_metadata {
- font-size: 0.8em;
- margin-left: 0.5em;
- margin-bottom: 0.5em;
- width: 400px;
-}
-
-table.mw_metadata caption {
- font-weight: bold;
-}
-
-table.mw_metadata th {
- font-weight: normal;
-}
-
-table.mw_metadata td {
- padding: 0.1em;
-}
-
-table.mw_metadata {
- border: none;
- border-collapse: collapse;
-}
-
-table.mw_metadata td,
-table.mw_metadata th {
- text-align: center;
- border: 1px solid #aaaaaa;
- padding-left: 5px;
- padding-right: 5px;
-}
-
-table.mw_metadata th {
- background-color: #f9f9f9;
-}
-
-table.mw_metadata td {
- background-color: #fcfcfc;
-}
-
-table.mw_metadata ul.metadata-langlist {
- list-style-type: none;
- list-style-image: none;
- padding-right: 5px;
- padding-left: 5px;
- margin: 0;
-}
-
-/* Correct directionality when page dir is different from site/user dir */
-.mw-content-ltr ul,
-.mw-content-rtl .mw-content-ltr ul {
- /* @noflip */
- margin: 0.3em 0 0 1.6em;
- padding: 0;
-}
-.mw-content-rtl ul,
-.mw-content-ltr .mw-content-rtl ul {
- /* @noflip */
- margin: 0.3em 1.6em 0 0;
- padding: 0;
-}
-.mw-content-ltr ol,
-.mw-content-rtl .mw-content-ltr ol {
- /* @noflip */
- margin: 0.3em 0 0 3.2em;
- padding: 0;
-}
-.mw-content-rtl ol,
-.mw-content-ltr .mw-content-rtl ol {
- /* @noflip */
- margin: 0.3em 3.2em 0 0;
- padding: 0;
-}
-/* @noflip */
-.mw-content-ltr dd,
-.mw-content-rtl .mw-content-ltr dd {
- margin-left: 1.6em;
- margin-right: 0;
-}
-/* @noflip */
-.mw-content-rtl dd,
-.mw-content-ltr .mw-content-rtl dd {
- margin-right: 1.6em;
- margin-left: 0;
-}
-
-/* Galleries */
-/* These display attributes look nonsensical, but are needed to support IE and FF2 */
-/* Don't forget to update commonPrint.css */
-li.gallerybox {
- vertical-align: top;
- display: -moz-inline-box;
- display: inline-block;
-}
-
-ul.gallery,
-li.gallerybox {
- zoom: 1;
- *display: inline;
-}
-
-ul.gallery {
- margin: 2px;
- padding: 2px;
- display: block;
-}
-
-li.gallerycaption {
- font-weight: bold;
- text-align: center;
- display: block;
- word-wrap: break-word;
-}
-
-li.gallerybox div.thumb {
- text-align: center;
- border: 1px solid #ccc;
- background-color: #f9f9f9;
- margin: 2px;
-}
-
-li.gallerybox div.thumb img {
- display: block;
- margin: 0 auto;
-}
-
-div.gallerytext {
- overflow: hidden;
- font-size: 94%;
- padding: 2px 4px;
- word-wrap: break-word;
-}
-
-/* new gallery stuff */
-ul.mw-gallery-nolines li.gallerybox div.thumb {
- background-color: transparent;
- border: none;
-}
-
-ul.mw-gallery-nolines li.gallerybox div.gallerytext {
- text-align: center;
-}
-
-/* height constrained gallery */
-
-ul.mw-gallery-packed li.gallerybox div.thumb,
-ul.mw-gallery-packed-overlay li.gallerybox div.thumb,
-ul.mw-gallery-packed-hover li.gallerybox div.thumb {
- background-color: transparent;
- border: none;
-}
-ul.mw-gallery-packed li.gallerybox div.thumb img,
-ul.mw-gallery-packed-overlay li.gallerybox div.thumb img,
-ul.mw-gallery-packed-hover li.gallerybox div.thumb img {
- margin: 0 auto;
-}
-
-ul.mw-gallery-packed-hover li.gallerybox,
-ul.mw-gallery-packed-overlay li.gallerybox {
- position:relative;
-}
-
-ul.mw-gallery-packed-hover div.gallerytextwrapper {
- overflow: hidden;
- height: 0;
-}
-
-ul.mw-gallery-packed-hover li.gallerybox:hover div.gallerytextwrapper,
-ul.mw-gallery-packed-overlay li.gallerybox div.gallerytextwrapper,
-ul.mw-gallery-packed-hover li.gallerybox.mw-gallery-focused div.gallerytextwrapper {
- position:absolute;
- background: white;
- background: rgba(255, 255, 255, 0.8);
- padding: 5px 10px;
- bottom: 0;
- left: 0; /* Needed for IE */
- height: auto;
- font-weight: bold;
- margin: 2px; /* correspond to style on div.thumb */
-}
-
-ul.mw-gallery-packed-hover,
-ul.mw-gallery-packed-overlay,
-ul.mw-gallery-packed {
- text-align: center;
-}
-
-.mw-ajax-loader {
- /* @embed */
- background-image: url(images/ajax-loader.gif);
- background-position: center center;
- background-repeat: no-repeat;
- padding: 16px;
- position: relative;
- top: -16px;
-}
-
-.mw-small-spinner {
- padding: 10px !important;
- margin-right: 0.6em;
- /* @embed */
- background-image: url(images/spinner.gif);
- background-position: center center;
- background-repeat: no-repeat;
-}
-
-/* Language specific height correction for titles. Ref Bug 29405 and Bug 30809 */
-/* Languages like hi or ml require slightly more vertical space to show diacritics properly */
-h1:lang(anp),
-h1:lang(as),
-h1:lang(bh), /* Macrolanguage, used on bh.wikipedia.org, should be removed one day */
-h1:lang(bho),
-h1:lang(bn),
-h1:lang(gu),
-h1:lang(hi),
-h1:lang(kn),
-h1:lang(ks),
-h1:lang(ml),
-h1:lang(mr),
-h1:lang(my),
-h1:lang(mai),
-h1:lang(ne),
-h1:lang(new),
-h1:lang(or),
-h1:lang(pa),
-h1:lang(pi),
-h1:lang(sa),
-h1:lang(ta),
-h1:lang(te) {
- line-height: 1.6em !important;
-}
-h2:lang(anp), h3:lang(anp), h4:lang(anp), h5:lang(anp), h6:lang(anp),
-h2:lang(as), h3:lang(as), h4:lang(as), h5:lang(as), h6:lang(as),
-h2:lang(bho), h3:lang(bho), h4:lang(bho), h5:lang(bho), h6:lang(bho),
-h2:lang(bh), h3:lang(bh), h4:lang(bh), h5:lang(bh), h6:lang(bh),
-h2:lang(bn), h3:lang(bn), h4:lang(bn), h5:lang(bn), h6:lang(bn),
-h2:lang(gu), h3:lang(gu), h4:lang(gu), h5:lang(gu), h6:lang(gu),
-h2:lang(hi), h3:lang(hi), h4:lang(hi), h5:lang(hi), h6:lang(hi),
-h2:lang(kn), h3:lang(kn), h4:lang(kn), h5:lang(kn), h6:lang(kn),
-h2:lang(ks), h3:lang(ks), h4:lang(ks), h5:lang(ks), h6:lang(ks),
-h2:lang(ml), h3:lang(ml), h4:lang(ml), h5:lang(ml), h6:lang(ml),
-h2:lang(mr), h3:lang(mr), h4:lang(mr), h5:lang(mr), h6:lang(mr),
-h2:lang(my), h3:lang(my), h4:lang(my), h5:lang(my), h6:lang(my),
-h2:lang(mai), h3:lang(mai), h4:lang(mai), h5:lang(mai), h6:lang(mai),
-h2:lang(ne), h3:lang(ne), h4:lang(ne), h5:lang(ne), h6:lang(ne),
-h2:lang(new), h3:lang(new), h4:lang(new), h5:lang(new), h6:lang(new),
-h2:lang(or), h3:lang(or), h4:lang(or), h5:lang(or), h6:lang(or),
-h2:lang(pa), h3:lang(pa), h4:lang(pa), h5:lang(pa), h6:lang(pa),
-h2:lang(pi), h3:lang(pi), h4:lang(pi), h5:lang(pi), h6:lang(pi),
-h2:lang(sa), h3:lang(sa), h4:lang(sa), h5:lang(sa), h6:lang(sa),
-h2:lang(ta), h3:lang(ta), h4:lang(ta), h5:lang(ta), h6:lang(ta),
-h2:lang(te), h3:lang(te), h4:lang(te), h5:lang(te), h6:lang(te) {
- line-height: 1.2em;
-}
-
-/* Localised ordered list numbering for some languages */
-ol:lang(bcc) li,
-ol:lang(bqi) li,
-ol:lang(fa) li,
-ol:lang(glk) li,
-ol:lang(kk-arab) li,
-ol:lang(mzn) li {
- list-style-type: -moz-persian;
- list-style-type: persian;
-}
-
-ol:lang(ckb) li {
- list-style-type: -moz-arabic-indic;
- list-style-type: arabic-indic;
-}
-
-ol:lang(hi) li,
-ol:lang(mr) li {
- list-style-type: -moz-devanagari;
- list-style-type: devanagari;
-}
-
-ol:lang(as) li,
-ol:lang(bn) li {
- list-style-type: -moz-bengali;
- list-style-type: bengali;
-}
-
-ol:lang(or) li {
- list-style-type: -moz-oriya;
- list-style-type: oriya;
-}
-
-#toc ul, .toc ul {
- margin: .3em 0;
-}
-
-/* Correct directionality when page dir is different from site/user dir */
-/* @noflip */ .mw-content-ltr .toc ul,
-.mw-content-ltr #toc ul,
-.mw-content-rtl .mw-content-ltr .toc ul,
-.mw-content-rtl .mw-content-ltr #toc ul {
- text-align: left;
-}
-/* @noflip */ .mw-content-rtl .toc ul,
-.mw-content-rtl #toc ul,
-.mw-content-ltr .mw-content-rtl .toc ul,
-.mw-content-ltr .mw-content-rtl #toc ul {
- text-align: right;
-}
-/* @noflip */ .mw-content-ltr .toc ul ul,
-.mw-content-ltr #toc ul ul,
-.mw-content-rtl .mw-content-ltr .toc ul ul,
-.mw-content-rtl .mw-content-ltr #toc ul ul {
- margin: 0 0 0 2em;
-}
-/* @noflip */ .mw-content-rtl .toc ul ul,
-.mw-content-rtl #toc ul ul,
-.mw-content-ltr .mw-content-rtl .toc ul ul,
-.mw-content-ltr .mw-content-rtl #toc ul ul {
- margin: 0 2em 0 0;
-}
-
-#toc #toctitle,
-.toc #toctitle,
-#toc .toctitle,
-.toc .toctitle {
- direction: ltr;
-}
-
-/* tooltip styles */
-.mw-help-field-hint {
- display: none;
- margin-left: 2px;
- margin-bottom: -8px;
- padding: 0 0 0 15px;
- /* @embed */
- background-image: url(images/help-question.gif);
- background-position: left center;
- background-repeat: no-repeat;
- cursor: pointer;
- font-size: .8em;
- text-decoration: underline;
- color: #0645ad;
-}
-.mw-help-field-hint:hover {
- /* @embed */
- background-image: url(images/help-question-hover.gif);
-}
-.mw-help-field-data {
- display: block;
- background-color: #d6f3ff;
- padding:5px 8px 4px 8px;
- border: 1px solid #5dc9f4;
- margin-left: 20px;
-}
-.tipsy {
- padding: 5px 5px 10px;
- font-size: 12px;
- position: absolute;
- z-index: 100000;
- overflow: visible;
-}
-.tipsy-inner {
- padding: 5px 8px 4px 8px;
- background-color: #d6f3ff;
- color: black;
- border: 1px solid #5dc9f4;
- max-width: 300px;
- text-align: left;
-}
-.tipsy-arrow {
- position: absolute;
- /* @embed */
- background: url(images/tipsy-arrow.gif) no-repeat top left;
- width: 13px;
- height: 13px;
-}
-.tipsy-se .tipsy-arrow {
- bottom: -2px;
- right: 10px;
- background-position: 0% 100%;
-}
-
-#mw-clearyourcache,
-#mw-sitecsspreview,
-#mw-sitejspreview,
-#mw-usercsspreview,
-#mw-userjspreview {
- direction: ltr;
- unicode-bidi: embed;
-}
-
-/* Correct user & content directionality when viewing a diff */
-.diff-currentversion-title,
-.diff {
- direction: ltr;
- unicode-bidi: embed;
-}
-/* @noflip */ .diff-contentalign-right td {
- direction: rtl;
- unicode-bidi: embed;
-}
-/* @noflip */ .diff-contentalign-left td {
- direction: ltr;
- unicode-bidi: embed;
-}
-.diff-multi,
-.diff-otitle,
-.diff-ntitle,
-.diff-lineno {
- direction: ltr !important;
- unicode-bidi: embed;
-}
-
-#mw-revision-info,
-#mw-revision-info-current,
-#mw-revision-nav {
- direction: ltr;
- display: inline;
-}
-
-/* Images */
-
-/* @noflip */ div.tright,
-div.floatright,
-table.floatright {
- clear: right;
- float: right;
-}
-/* @noflip */ div.tleft,
-div.floatleft,
-table.floatleft {
- float: left;
- clear: left;
-}
-div.floatright,
-table.floatright,
-div.floatleft,
-table.floatleft {
- position: relative;
-}
-
-/* bug 12205 */
-#mw-credits a {
- unicode-bidi: embed;
-}
-
-/* Accessibility */
-.mw-jump,
-#jump-to-nav {
- overflow: hidden;
- height: 0;
- zoom: 1; /* http://webaim.org/techniques/skipnav/#iequirk */
-}
-
-/* Print footer should be hidden by default in screen. */
-.printfooter {
- display: none;
-}
-
-/* For developers */
-.xdebug-error {
- position: absolute;
- z-index: 99;
-}
-
-.mw-editsection,
-.toctoggle,
-#jump-to-nav {
- -moz-user-select: none;
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-/* Display editsection links smaller and next to headings */
-.mw-editsection,
-.mw-editsection-like {
- font-size: small;
- font-weight: normal;
- margin-left: 1em;
- vertical-align: baseline;
- /* Reset line-height; headings tend to have it set to larger values */
- line-height: 1em;
- /* As .mw-editsection is a <span> (inline element), it is treated as part */
- /* of the heading content when selecting text by multiple clicks and thus */
- /* selected together with heading content, despite the user-select: none; */
- /* rule set above. This enforces non-selection without changing the look. */
- display: inline-block;
-}
-
-/* Correct directionality when page dir is different from site/user dir */
-/* @noflip */
-.mw-content-ltr .mw-editsection,
-.mw-content-rtl .mw-content-ltr .mw-editsection {
- margin-left: 1em;
-}
-/* @noflip */
-.mw-content-rtl .mw-editsection,
-.mw-content-ltr .mw-content-rtl .mw-editsection {
- margin-right: 1em;
-}
-
-/* Prevent citations and subscripts from interfering with the line-height */
-sup,
-sub {
- line-height: 1;
-}
diff --git a/common/upload.js b/common/upload.js
deleted file mode 100644
index 7933caf..0000000
--- a/common/upload.js
+++ /dev/null
@@ -1,355 +0,0 @@
-/*jshint camelcase:false */
-( function ( mw, $ ) {
-var licenseSelectorCheck, wgUploadWarningObj, wgUploadLicenseObj, fillDestFilename,
- ajaxUploadDestCheck = mw.config.get( 'wgAjaxUploadDestCheck' ),
- fileExtensions = mw.config.get( 'wgFileExtensions' ),
- $spinnerDestCheck, $spinnerLicense;
-
-licenseSelectorCheck = window.licenseSelectorCheck = function () {
- var selector = document.getElementById( 'wpLicense' ),
- selection = selector.options[selector.selectedIndex].value;
- if ( selector.selectedIndex > 0 ) {
- if ( !selection ) {
- // Option disabled, but browser is broken and doesn't respect this
- selector.selectedIndex = 0;
- }
- }
- // We might show a preview
- wgUploadLicenseObj.fetchPreview( selection );
-};
-
-function uploadSetup() {
- // Disable URL box if the URL copy upload source type is not selected
- var ein,
- selector, ua, isMacIe, i,
- optionsTable, row, td,
- wpLicense, wpLicenseRow, wpLicenseTbody,
- uploadSourceIds, len, onchange,
- e = document.getElementById( 'wpSourceTypeurl' );
- if ( e ) {
- if ( !e.checked ) {
- ein = document.getElementById( 'wpUploadFileURL' );
- if ( ein ) {
- ein.disabled = true;
- }
- }
- }
-
- // For MSIE/Mac: non-breaking spaces cause the <option> not to render.
- // But for some reason, setting the text to itself works
- selector = document.getElementById( 'wpLicense' );
- if ( selector ) {
- ua = navigator.userAgent;
- isMacIe = ua.indexOf( 'MSIE' ) !== -1 && ua.indexOf( 'Mac' ) !== -1;
- if ( isMacIe ) {
- for ( i = 0; i < selector.options.length; i++ ) {
- selector.options[i].text = selector.options[i].text;
- }
- }
- }
-
- // AJAX wpDestFile warnings
- if ( ajaxUploadDestCheck ) {
- // Insert an event handler that fetches upload warnings when wpDestFile
- // has been changed
- document.getElementById( 'wpDestFile' ).onchange = function () {
- wgUploadWarningObj.checkNow( this.value );
- };
- // Insert a row where the warnings will be displayed just below the
- // wpDestFile row
- optionsTable = document.getElementById( 'mw-htmlform-description' ).tBodies[0];
- row = optionsTable.insertRow( 1 );
- td = document.createElement( 'td' );
- td.id = 'wpDestFile-warning';
- td.colSpan = 2;
-
- row.appendChild( td );
- }
-
- wpLicense = document.getElementById( 'wpLicense' );
- if ( mw.config.get( 'wgAjaxLicensePreview' ) && wpLicense ) {
- // License selector check
- wpLicense.onchange = licenseSelectorCheck;
-
- // License selector table row
- wpLicenseRow = wpLicense.parentNode.parentNode;
- wpLicenseTbody = wpLicenseRow.parentNode;
-
- row = document.createElement( 'tr' );
- td = document.createElement( 'td' );
- row.appendChild( td );
- td = document.createElement( 'td' );
- td.id = 'mw-license-preview';
- row.appendChild( td );
-
- wpLicenseTbody.insertBefore( row, wpLicenseRow.nextSibling );
- }
-
- // fillDestFile setup
- uploadSourceIds = mw.config.get( 'wgUploadSourceIds' );
- len = uploadSourceIds.length;
- onchange = function () {
- fillDestFilename( this.id );
- };
- for ( i = 0; i < len; i += 1 ) {
- document.getElementById( uploadSourceIds[i] ).onchange = onchange;
- }
-}
-
-wgUploadWarningObj = window.wgUploadWarningObj = {
- responseCache: { '': '&nbsp;' },
- nameToCheck: '',
- typing: false,
- delay: 500, // ms
- timeoutID: false,
-
- keypress: function () {
- var cached, destFile, warningElt;
-
- if ( !ajaxUploadDestCheck ) {
- return;
- }
-
- // Find file to upload
- destFile = document.getElementById( 'wpDestFile' );
- warningElt = document.getElementById( 'wpDestFile-warning' );
- if ( !destFile || !warningElt ) {
- return;
- }
-
- this.nameToCheck = destFile.value;
-
- // Clear timer
- if ( this.timeoutID ) {
- clearTimeout( this.timeoutID );
- }
- // Check response cache
- for ( cached in this.responseCache ) {
- if ( this.nameToCheck === cached ) {
- this.setWarning(this.responseCache[this.nameToCheck]);
- return;
- }
- }
-
- this.timeoutID = setTimeout( function () {
- wgUploadWarningObj.timeout();
- }, this.delay );
- },
-
- checkNow: function ( fname ) {
- if ( !ajaxUploadDestCheck ) {
- return;
- }
- if ( this.timeoutID ) {
- clearTimeout( this.timeoutID );
- }
- this.nameToCheck = fname;
- this.timeout();
- },
-
- timeout: function () {
- if ( !ajaxUploadDestCheck || this.nameToCheck === '' ) {
- return;
- }
- $spinnerDestCheck = $.createSpinner().insertAfter( '#wpDestFile' );
-
- var uploadWarningObj = this;
- ( new mw.Api() ).get( {
- action: 'query',
- titles: ( new mw.Title( this.nameToCheck, mw.config.get( 'wgNamespaceIds' ).file ) ).getPrefixedText(),
- prop: 'imageinfo',
- iiprop: 'uploadwarning',
- indexpageids: ''
- } ).done( function ( result ) {
- var resultOut = '';
- if ( result.query ) {
- resultOut = result.query.pages[result.query.pageids[0]].imageinfo[0];
- }
- uploadWarningObj.processResult( resultOut, uploadWarningObj.nameToCheck );
- } );
- },
-
- processResult: function ( result, fileName ) {
- $spinnerDestCheck.remove();
- $spinnerDestCheck = undefined;
- this.setWarning( result.html );
- this.responseCache[fileName] = result.html;
- },
-
- setWarning: function ( warning ) {
- var warningElt = document.getElementById( 'wpDestFile-warning' ),
- ackElt = document.getElementsByName( 'wpDestFileWarningAck' );
-
- this.setInnerHTML( warningElt, warning );
-
- // Set a value in the form indicating that the warning is acknowledged and
- // doesn't need to be redisplayed post-upload
- if ( !warning ) {
- ackElt[0].value = '';
- } else {
- ackElt[0].value = '1';
- }
-
- },
- setInnerHTML: function ( element, text ) {
- // Check for no change to avoid flicker in IE 7
- if ( element.innerHTML !== text ) {
- element.innerHTML = text;
- }
- }
-};
-
-fillDestFilename = window.fillDestFilename = function ( id ) {
- var e, path, slash, backslash, fname,
- found, ext, i,
- destFile;
- if ( !mw.config.get( 'wgUploadAutoFill' ) ) {
- return;
- }
- if ( !document.getElementById ) {
- return;
- }
- // Remove any previously flagged errors
- e = document.getElementById( 'mw-upload-permitted' );
- if ( e ) {
- e.className = '';
- }
-
- e = document.getElementById( 'mw-upload-prohibited' );
- if ( e ) {
- e.className = '';
- }
-
- path = document.getElementById( id ).value;
- // Find trailing part
- slash = path.lastIndexOf( '/' );
- backslash = path.lastIndexOf( '\\' );
- if ( slash === -1 && backslash === -1 ) {
- fname = path;
- } else if ( slash > backslash ) {
- fname = path.substring( slash + 1, 10000 );
- } else {
- fname = path.substring( backslash + 1, 10000 );
- }
-
- // Clear the filename if it does not have a valid extension.
- // URLs are less likely to have a useful extension, so don't include them in the
- // extension check.
- if ( mw.config.get( 'wgStrictFileExtensions' ) && fileExtensions && id !== 'wpUploadFileURL' ) {
- found = false;
- if ( fname.lastIndexOf( '.' ) !== -1 ) {
- ext = fname.substr( fname.lastIndexOf( '.' ) + 1 );
- for ( i = 0; i < fileExtensions.length; i += 1 ) {
- if ( fileExtensions[i].toLowerCase() === ext.toLowerCase() ) {
- found = true;
- break;
- }
- }
- }
- if ( !found ) {
- // Not a valid extension
- // Clear the upload and set mw-upload-permitted to error
- document.getElementById( id ).value = '';
- e = document.getElementById( 'mw-upload-permitted' );
- if ( e ) {
- e.className = 'error';
- }
-
- e = document.getElementById( 'mw-upload-prohibited' );
- if ( e ) {
- e.className = 'error';
- }
-
- // Clear wpDestFile as well
- e = document.getElementById( 'wpDestFile' );
- if ( e ) {
- e.value = '';
- }
-
- return false;
- }
- }
-
- // Replace spaces by underscores
- fname = fname.replace( / /g, '_' );
- // Capitalise first letter if needed
- if ( mw.config.get( 'wgCapitalizeUploads' ) ) {
- fname = fname.charAt( 0 ).toUpperCase().concat( fname.substring( 1, 10000 ) );
- }
-
- // Output result
- destFile = document.getElementById( 'wpDestFile' );
- if ( destFile ) {
- // Call decodeURIComponent function to remove possible URL-encoded characters
- // from the file name (bug 30390). Especially likely with upload-form-url.
- // decodeURIComponent can throw an exception in input is invalid utf-8
- try {
- destFile.value = decodeURIComponent( fname );
- } catch ( err ) {
- destFile.value = fname;
- }
- wgUploadWarningObj.checkNow( fname );
- }
-};
-
-window.toggleFilenameFiller = function () {
- if ( !document.getElementById ) {
- return;
- }
- var destName = document.getElementById( 'wpDestFile' ).value;
- mw.config.set( 'wgUploadAutoFill', !destName );
-};
-
-wgUploadLicenseObj = window.wgUploadLicenseObj = {
-
- responseCache: { '': '' },
-
- fetchPreview: function ( license ) {
- var cached, title;
- if ( !mw.config.get( 'wgAjaxLicensePreview' ) ) {
- return;
- }
- for ( cached in this.responseCache ) {
- if ( cached === license ) {
- this.showPreview( this.responseCache[license] );
- return;
- }
- }
-
- $spinnerLicense = $.createSpinner().insertAfter( '#wpLicense' );
-
- title = document.getElementById( 'wpDestFile' ).value;
- if ( !title ) {
- title = 'File:Sample.jpg';
- }
-
- ( new mw.Api() ).get( {
- action: 'parse',
- text: '{{' + license + '}}',
- title: title,
- prop: 'text',
- pst: ''
- } ).done( function ( result ) {
- wgUploadLicenseObj.processResult( result, license );
- } );
- },
-
- processResult: function ( result, license ) {
- $spinnerLicense.remove();
- $spinnerLicense = undefined;
- this.responseCache[license] = result.parse.text['*'];
- this.showPreview( this.responseCache[license] );
- },
-
- showPreview: function ( preview ) {
- var previewPanel = document.getElementById( 'mw-license-preview' );
- if ( previewPanel.innerHTML !== preview ) {
- previewPanel.innerHTML = preview;
- }
- }
-
-};
-
-$( uploadSetup );
-
-}( mediaWiki, jQuery ) );
diff --git a/common/wikibits.js b/common/wikibits.js
deleted file mode 100644
index 516035e..0000000
--- a/common/wikibits.js
+++ /dev/null
@@ -1,243 +0,0 @@
-/**
- * MediaWiki legacy wikibits
- */
-( function ( mw, $ ) {
- var msg,
- win = window,
- ua = navigator.userAgent.toLowerCase(),
- isIE6 = ( /msie ([0-9]{1,}[\.0-9]{0,})/.exec( ua ) && parseFloat( RegExp.$1 ) <= 6.0 ),
- isGecko = /gecko/.test( ua ) && !/khtml|spoofer|netscape\/7\.0/.test( ua ),
- onloadFuncts = [];
-
-if ( mw.config.get( 'wgBreakFrames' ) ) {
- // Note: In IE < 9 strict comparison to window is non-standard (the standard didn't exist yet)
- // it works only comparing to window.self or window.window (http://stackoverflow.com/q/4850978/319266)
- if ( win.top !== win.self ) {
- // Un-trap us from framesets
- win.top.location = win.location;
- }
-}
-
-/**
- * Legacy function to scroll to an id while viewing the page over a redirect.
- * Superseeded by module 'mediawiki.action.view.redirectToFragment' in version 1.23.
- * Kepted because cache can contain still inline script calls to this function.
- * Should be removed in version 1.24.
- * @deprecated since 1.23 Use mediawiki.action.view.redirectToFragment instead
- */
-mw.log.deprecate( win, 'redirectToFragment', function ( fragment ) {
- var webKitVersion,
- match = navigator.userAgent.match( /AppleWebKit\/(\d+)/ );
- if ( match ) {
- webKitVersion = parseInt( match[1], 10 );
- if ( webKitVersion < 420 ) {
- // Released Safari w/ WebKit 418.9.1 messes up horribly
- // Nightlies of 420+ are ok
- return;
- }
- }
- if ( !win.location.hash ) {
- win.location.hash = fragment;
-
- // Mozilla needs to wait until after load, otherwise the window doesn't
- // scroll. See <https://bugzilla.mozilla.org/show_bug.cgi?id=516293>.
- // There's no obvious way to detect this programmatically, so we use
- // version-testing. If Firefox fixes the bug, they'll jump twice, but
- // better twice than not at all, so make the fix hit future versions as
- // well.
- if ( isGecko ) {
- $( function () {
- if ( win.location.hash === fragment ) {
- win.location.hash = fragment;
- }
- } );
- }
- }
-}, 'Use the module mediawiki.action.view.redirectToFragment instead.' );
-
-/**
- * User-agent sniffing.
- *
- * @deprecated since 1.17 Use jquery.client instead
- */
-
-msg = 'Use feature detection or module jquery.client instead.';
-
-mw.log.deprecate( win, 'clientPC', ua, msg );
-
-// Ignored dummy values
-mw.log.deprecate( win, 'is_gecko', false, msg );
-mw.log.deprecate( win, 'is_chrome_mac', false, msg );
-mw.log.deprecate( win, 'is_chrome', false, msg );
-mw.log.deprecate( win, 'webkit_version', false, msg );
-mw.log.deprecate( win, 'is_safari_win', false, msg );
-mw.log.deprecate( win, 'is_safari', false, msg );
-mw.log.deprecate( win, 'webkit_match', false, msg );
-mw.log.deprecate( win, 'is_ff2', false, msg );
-mw.log.deprecate( win, 'ff2_bugs', false, msg );
-mw.log.deprecate( win, 'is_ff2_win', false, msg );
-mw.log.deprecate( win, 'is_ff2_x11', false, msg );
-mw.log.deprecate( win, 'opera95_bugs', false, msg );
-mw.log.deprecate( win, 'opera7_bugs', false, msg );
-mw.log.deprecate( win, 'opera6_bugs', false, msg );
-mw.log.deprecate( win, 'is_opera_95', false, msg );
-mw.log.deprecate( win, 'is_opera_preseven', false, msg );
-mw.log.deprecate( win, 'is_opera', false, msg );
-mw.log.deprecate( win, 'ie6_bugs', false, msg );
-
-/**
- * DOM utilities for handling of events, text nodes and selecting elements
- *
- * @deprecated since 1.17 Use jQuery instead
- */
-msg = 'Use jQuery instead.';
-
-// Ignored dummy values
-mw.log.deprecate( win, 'doneOnloadHook', undefined, msg );
-mw.log.deprecate( win, 'onloadFuncts', [], msg );
-mw.log.deprecate( win, 'runOnloadHook', $.noop, msg );
-mw.log.deprecate( win, 'changeText', $.noop, msg );
-mw.log.deprecate( win, 'killEvt', $.noop, msg );
-mw.log.deprecate( win, 'addHandler', $.noop, msg );
-mw.log.deprecate( win, 'hookEvent', $.noop, msg );
-mw.log.deprecate( win, 'addClickHandler', $.noop, msg );
-mw.log.deprecate( win, 'removeHandler', $.noop, msg );
-mw.log.deprecate( win, 'getElementsByClassName', function () { return []; }, msg );
-mw.log.deprecate( win, 'getInnerText', function () { return ''; }, msg );
-
-// Run a function after the window onload event is fired
-mw.log.deprecate( win, 'addOnloadHook', function ( hookFunct ) {
- if ( onloadFuncts ) {
- onloadFuncts.push(hookFunct);
- } else {
- // If func queue is gone the event has happened already,
- // run immediately instead of queueing.
- hookFunct();
- }
-}, msg );
-
-$( win ).on( 'load', function () {
- var i, functs;
-
- // Don't run twice
- if ( !onloadFuncts ) {
- return;
- }
-
- // Deference and clear onloadFuncts before running any
- // hooks to make sure we don't miss any addOnloadHook
- // calls.
- functs = onloadFuncts.slice();
- onloadFuncts = undefined;
-
- // Execute the queued functions
- for ( i = 0; i < functs.length; i++ ) {
- functs[i]();
- }
-} );
-
-/**
- * Toggle checkboxes with shift selection
- *
- * @deprecated since 1.17 Use jquery.checkboxShiftClick instead
- */
-msg = 'Use jquery.checkboxShiftClick instead.';
-mw.log.deprecate( win, 'checkboxes', [], msg );
-mw.log.deprecate( win, 'lastCheckbox', null, msg );
-mw.log.deprecate( win, 'setupCheckboxShiftClick', $.noop, msg );
-mw.log.deprecate( win, 'addCheckboxClickHandlers', $.noop, msg );
-mw.log.deprecate( win, 'checkboxClickHandler', $.noop, msg );
-
-/**
- * Add a button to the default editor toolbar
- *
- * @deprecated since 1.17 Use mw.toolbar instead
- */
-mw.log.deprecate( win, 'mwEditButtons', [], 'Use mw.toolbar instead.' );
-mw.log.deprecate( win, 'mwCustomEditButtons', [], 'Use mw.toolbar instead.' );
-
-/**
- * Spinner creation, injection and removal
- *
- * @deprecated since 1.18 Use jquery.spinner instead
- */
-mw.log.deprecate( win, 'injectSpinner', $.noop, 'Use jquery.spinner instead.' );
-mw.log.deprecate( win, 'removeSpinner', $.noop, 'Use jquery.spinner instead.' );
-
-/**
- * Escape utilities
- *
- * @deprecated since 1.18 Use mw.html instead
- */
-mw.log.deprecate( win, 'escapeQuotes', $.noop, 'Use mw.html instead.' );
-mw.log.deprecate( win, 'escapeQuotesHTML', $.noop, 'Use mw.html instead.' );
-
-/**
- * Display a message to the user
- *
- * @deprecated since 1.17 Use mediawiki.notify instead
- * @param {string|HTMLElement} message To be put inside the message box
- */
-mw.log.deprecate( win, 'jsMsg', mw.util.jsMessage, 'Use mediawiki.notify instead.' );
-
-/**
- * Misc. utilities
- *
- * @deprecated since 1.17 Use mediawiki.util instead
- */
-msg = 'Use mediawiki.util instead.';
-mw.log.deprecate( win, 'tooltipAccessKeyPrefix', 'alt-', msg );
-mw.log.deprecate( win, 'tooltipAccessKeyRegexp', /\[(alt-)?(.)\]$/, msg );
-mw.log.deprecate( win, 'updateTooltipAccessKeys', mw.util.updateTooltipAccessKeys, msg );
-mw.log.deprecate( win, 'addPortletLink', mw.util.addPortletLink, msg );
-mw.log.deprecate( win, 'appendCSS', mw.util.addCSS, msg );
-
-/**
- * Wikipage import methods
- */
-
-// included-scripts tracker
-win.loadedScripts = {};
-
-win.importScript = function ( page ) {
- var uri = mw.config.get( 'wgScript' ) + '?title=' +
- mw.util.wikiUrlencode( page ) +
- '&action=raw&ctype=text/javascript';
- return win.importScriptURI( uri );
-};
-
-win.importScriptURI = function ( url ) {
- if ( win.loadedScripts[url] ) {
- return null;
- }
- win.loadedScripts[url] = true;
- var s = document.createElement( 'script' );
- s.setAttribute( 'src', url );
- s.setAttribute( 'type', 'text/javascript' );
- document.getElementsByTagName( 'head' )[0].appendChild( s );
- return s;
-};
-
-win.importStylesheet = function ( page ) {
- var uri = mw.config.get( 'wgScript' ) + '?title=' +
- mw.util.wikiUrlencode( page ) +
- '&action=raw&ctype=text/css';
- return win.importStylesheetURI( uri );
-};
-
-win.importStylesheetURI = function ( url, media ) {
- var l = document.createElement( 'link' );
- l.rel = 'stylesheet';
- l.href = url;
- if ( media ) {
- l.media = media;
- }
- document.getElementsByTagName('head')[0].appendChild( l );
- return l;
-};
-
-if ( isIE6 ) {
- win.importScriptURI( mw.config.get( 'stylepath' ) + '/common/IEFixes.js' );
-}
-
-}( mediaWiki, jQuery ) );
diff --git a/modern/audio.png b/modern/audio.png
deleted file mode 100644
index 68c8768..0000000
--- a/modern/audio.png
+++ /dev/null
Binary files differ
diff --git a/modern/bullet.gif b/modern/bullet.gif
deleted file mode 100644
index b43de48..0000000
--- a/modern/bullet.gif
+++ /dev/null
Binary files differ
diff --git a/modern/discussionitem_icon.gif b/modern/discussionitem_icon.gif
deleted file mode 100644
index e3ca6d9..0000000
--- a/modern/discussionitem_icon.gif
+++ /dev/null
Binary files differ
diff --git a/modern/document.png b/modern/document.png
deleted file mode 100644
index ee46a50..0000000
--- a/modern/document.png
+++ /dev/null
Binary files differ
diff --git a/modern/external.png b/modern/external.png
deleted file mode 100644
index 6308383..0000000
--- a/modern/external.png
+++ /dev/null
Binary files differ
diff --git a/modern/file_icon.gif b/modern/file_icon.gif
deleted file mode 100644
index 69dbeaf..0000000
--- a/modern/file_icon.gif
+++ /dev/null
Binary files differ
diff --git a/modern/footer-grad.png b/modern/footer-grad.png
deleted file mode 100644
index 72b8724..0000000
--- a/modern/footer-grad.png
+++ /dev/null
Binary files differ
diff --git a/modern/link_icon.gif b/modern/link_icon.gif
deleted file mode 100644
index 168c1a2..0000000
--- a/modern/link_icon.gif
+++ /dev/null
Binary files differ
diff --git a/modern/lock_icon.gif b/modern/lock_icon.gif
deleted file mode 100644
index 8284403..0000000
--- a/modern/lock_icon.gif
+++ /dev/null
Binary files differ
diff --git a/modern/mail_icon.gif b/modern/mail_icon.gif
deleted file mode 100644
index cf5680d..0000000
--- a/modern/mail_icon.gif
+++ /dev/null
Binary files differ
diff --git a/modern/main.css b/modern/main.css
deleted file mode 100644
index 6f73f0e..0000000
--- a/modern/main.css
+++ /dev/null
@@ -1,912 +0,0 @@
-body {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- font-size: x-small;
-
-
- font-family: sans-serif;
- color: black;
- background-color: #f0f0f0;
-
- direction: ltr;
- unicode-bidi: embed;
-}
-
-#mw_main,
-#p-personal,
-#mw_header,
-.os-suggest {
- font-size: 130%;
-}
-
-#mw_header {
- position: absolute;
- top: 0;
- left: 0;
- margin: 0 0 0 0;
- padding: 0 0em 0 0em;
- border: none;
- height: 2em;
- width: 100%;
-
- background-color: #003366;
- color: white;
-}
-
-#mw_header h1 {
- margin: 0 0 0 0.5em;
- padding: 0 0 0 0;
- text-decoration: none;
- font-size: 150%;
-}
-
-#p-personal {
- position: absolute;
- top: 2em;
- left: 0;
- height: 1.5em;
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- width: 100%;
-
-}
-
-#p-personal div.pBody {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- height: 1.5em;
- font-variant: small-caps;
-}
-
-#p-personal h3 {
- display: none;
-}
-
-#p-personal ul {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- display: block;
- height: 1.5em;
- background-color: #3c78b5;
-}
-
-#p-personal li {
- display: block;
- float: left;
- height: 1.5em;
- margin: 0 0 0 0;
- vertical-align: middle;
-
- font-weight: bold;
- text-transform: lowercase;
-}
-
-#p-personal li a {
- text-decoration: none;
- color: white;
- padding: 0 1em 0 1em;
-}
-
-#p-personal li a:hover {
- text-decoration: none;
- color: white;
-}
-
-#p-personal li:hover {
- background-color: #003366;
-}
-
-#jump-to-nav {
- display: none;
-}
-
-#mw_contentwrapper {
- width: 100%;
- margin: 0 0 0 -15em;
- float: right;
-}
-
-#mw_content {
- margin: 0 0 0 14em;
-
- background-color: white;
- border-top: solid 1px #bbbbbb;
- border-left: solid 1px #bbbbbb;
- border-bottom: solid 1px #bbbbbb;
-
- line-height: 1.5em;
- padding: 0 1em 1em 1em;
-}
-
-#mw_portlets {
- width: 14em;
-
- border-right: solid 1px #bbbbbb;
- background-color: #f0f0f0;
-}
-
-/* Hide, but keep accessible for screen-readers */
-#mw_portlets h2 {
- position: absolute;
- top: -9999px;
-}
-
-#mw_main {
- padding: 0 0 0 0;
- margin: 0 0 0 0;
- margin-top: 3.5em;
-}
-
-div.mw_clear {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- clear: both;
-}
-
-.portlet {
- padding: 0 0 0 0;
- margin: 0 0 0 0;
-}
-
-.portlet div.pBody {
- padding: 0em 0 0.5em 0;
-}
-
-textarea {
- width: 100%;
- padding: .1em;
- display: block;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-#searchBody {
- text-align: center;
-}
-
-#searchInput {
- width: 85%;
- margin-left: auto;
- margin-right: auto;
-}
-
-#p-search #searchform div div {
- margin-top: .4em;
-}
-
-.portlet h3 {
- padding: 0.1em 0 0.3em 1em;
- margin: 0 0 0 0;
- background-color: #dddddd;
- font-weight: bold;
- font-size: 0.83em;
- border-bottom: solid 1px #3c78b5;
- height: 1.1em;
-}
-
-.portlet ul {
- margin: 0 0 0 1.5em;
- padding: 0 0 0 0;
-}
-
-#mw_portlets .portlet ul {
- line-height: 1.4em;
-}
-
-ul {
- /* @embed */
- list-style-image: url(bullet.gif);
-}
-
-#p-cactions {
- height: 1.5em;
- padding: 0 0 0 0;
- margin: 0 0 0 14em;
-}
-
-#p-cactions div.pBody {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
-}
-
-#p-cactions a,
-#p-cactions a:hover {
- color: black;
- text-decoration: none;
-}
-
-#p-cactions ul {
- display: inline;
- margin: 0 0 0 0;
- padding: 0 0 0 0;
-}
-
-#p-cactions li {
- margin: 0 0.5em 0 0.5em;
- padding: 0 0.2em 0 0.2em;
- display: block;
- float: left;
- height: 1.5em;
- text-transform: lowercase;
-}
-
-#p-cactions li.selected {
- background-color: #bbbbbb;
-}
-
-#p-cactions li a,
-#p-cactions li a:hover,
-#p-cactions li a:visited {
- text-decoration: underline;
- color: #003366;
-}
-
-#p-cactions li.selected a,
-#p-cactions li.selected a:hover,
-#p-cactions li.selected a:visited {
- text-decoration: none;
- color: white;
-}
-
-#p-cactions h3 {
- display: none;
-}
-
-#siteSub {
- display: none;
-}
-
-#footer {
- background-color: #f0f0f0;
- /* @embed */
- background: url(footer-grad.png) repeat-x 0 0;
- padding: 10px 1em 1em 1em;
- clear:both;
- color: #444444;
-}
-
-#footer a,
-#footer a:hover,
-#footer a:visited {
- color: #444444;
- text-decoration: underline;
-}
-
-img {
- border: none;
-}
-
-#footer li {
- display: inline;
- list-style-type: none;
- padding: 0 0 0 0;
- margin: 0 0 0 0;
-}
-
-#footer ul {
- padding: 0 0 0 0;
- margin: 0 0 0 0;
-}
-
-p {
- margin: 1em 0 1em 0;
-}
-
-hr {
- height: 1px;
- color: #aaa;
- background-color: #aaa;
- border: 0;
- margin: .2em 0 .2em 0;
-}
-
-#contentSub {
- color: #545454;
- font-size: small;
- padding-left: 2em;
-}
-
-#mw_portlets form {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
-}
-
-a {
- text-decoration: none;
- color: #003366;
- background: none;
-}
-a:visited {
- color: #5a3696;
-}
-a:active {
- color: #faa700;
-}
-a:hover {
- text-decoration: underline;
-}
-a.stub {
- color: #772233;
-}
-a.new {
- color: #ba0000;
-}
-a.new:visited {
- color: #a55858;
-}
-
-h1, h2 {
- border-bottom: solid 1px #003366;
-}
-
-h1, h2, h3, h4, h5, h6 {
- overflow: hidden;
-}
-
-#preftoc {
- width: 100%;
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- height: 1.5em;
- clear: right;
-}
-
-#preftoc li {
- margin: 0 0.5em 0 0.5em;
- padding: 0 0.2em 0 0.2em;
- display: block;
- float: left;
- height: 1.5em;
- text-transform: lowercase;
-}
-
-#preferences {
- margin: 0 0 0 0;
- padding: 0em 1em 1em 1em;
- border: solid 1px #bbbbbb;
- clear: left; /* Multi-line toc should not push data to horizontally */
-}
-
-#preferences fieldset {
- margin-top: 0;
- border: none;
-}
-
-.mainLegend {
- display: none;
-}
-
-.htmlform-tip {
- font-size: x-small;
- padding: .2em 2em;
- color: #666;
-}
-
-.prefsection legend {
- font-weight: bold;
-}
-
-#preftoc li.selected {
- background-color: #bbbbbb;
-}
-
-#preftoc li a,
-#preftoc li a:hover,
-#preftoc li a:visited {
- text-decoration: underline;
- color: #003366;
-}
-
-#preftoc li.selected a,
-#preftoc li.selected a:hover,
-#preftoc li.selected a:visited {
- text-decoration: none;
- color: white;
-}
-#mw_content a.external {
- /* @embed */
- background: url(external.png) center right no-repeat;
- padding-right: 13px;
-}
-#mw_content a.external[href ^="https://"],
-.link-https {
- /* @embed */
- background: url(lock_icon.gif) center right no-repeat;
- padding-right: 16px;
-}
-#mw_content a.external[href ^="mailto:"],
-.link-mailto {
- /* @embed */
- background: url(mail_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#mw_content a.external[href ^="news:"] {
- /* @embed */
- background: url(news_icon.png) center right no-repeat;
- padding-right: 18px;
-}
-#mw_content a.external[href ^="ftp://"],
-.link-ftp {
- /* @embed */
- background: url(file_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#mw_content a.external[href ^="irc://"],
-#mw_content a.external[href ^="ircs://"],
-.link-irc {
- /* @embed */
- background: url(discussionitem_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-
-#mw_content a.external[href $=".ogg"], #mw_content a.external[href $=".OGG"],
-#mw_content a.external[href $=".mid"], #mw_content a.external[href $=".MID"],
-#mw_content a.external[href $=".midi"], #mw_content a.external[href $=".MIDI"],
-#mw_content a.external[href $=".mp3"], #mw_content a.external[href $=".MP3"],
-#mw_content a.external[href $=".wav"], #mw_content a.external[href $=".WAV"],
-#mw_content a.external[href $=".wma"], #mw_content a.external[href $=".WMA"],
-.link-audio {
- /* @embed */
- background: url(audio.png) center right no-repeat;
- padding-right: 13px;
-}
-#mw_content a.external[href $=".ogm"], #mw_content a.external[href $=".OGM"],
-#mw_content a.external[href $=".avi"], #mw_content a.external[href $=".AVI"],
-#mw_content a.external[href $=".mpeg"], #mw_content a.external[href $=".MPEG"],
-#mw_content a.external[href $=".mpg"], #mw_content a.external[href $=".MPG"],
-.link-video {
- /* @embed */
- background: url(video.png) center right no-repeat;
- padding-right: 13px;
-}
-#mw_content a.external[href $=".pdf"], #mw_content a.external[href $=".PDF"],
-#mw_content a.external[href *=".pdf#"], #mw_content a.external[href *=".PDF#"],
-#mw_content a.external[href *=".pdf?"], #mw_content a.external[href *=".PDF?"],
-.link-document {
- /* @embed */
- background: url(document.png) center right no-repeat;
- padding-right: 12px;
-}
-
-/* images */
-/* @noflip */div.floatright, table.floatright {
- margin: 0 0 .5em .5em;
- border: 0;
-}
-div.floatright p {
- font-style: italic;
-}
-/* @noflip */div.floatleft, table.floatleft {
- margin: 0 .5em .5em 0;
- border: 0;
-}
-div.floatleft p {
- font-style: italic;
-}
-
-/* thumbnails */
-div.thumb {
- margin-bottom: .5em;
- width: auto;
-}
-div.thumbinner {
- border: 1px solid #ccc;
- padding: 3px !important;
- background-color: #f9f9f9;
- font-size: 94%;
- text-align: center;
- overflow: hidden;
-}
-html .thumbimage {
- border: 1px solid #ccc;
-}
-html .thumbcaption {
- border: none;
- text-align: left;
- line-height: 1.4em;
- padding: 3px !important;
- font-size: 94%;
-}
-div.magnify {
- float: right;
- border: none !important;
- background: none !important;
- margin-left: 3px;
-}
-div.magnify a, div.magnify img {
- display: block;
- border: none !important;
- background: none !important;
-}
-/* @noflip */div.tright {
- margin: .5em 0 .8em 1.4em;
-}
-/* @noflip */div.tleft {
- margin: .5em 1.4em .8em 0;
-}
-img.thumbborder {
- border: 1px solid #dddddd;
-}
-.mw-warning {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
-}
-
-#toc,
-.toc {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- border-spacing: 0;
- background-color: #f0f0f0;
- border: solid 1px #bbbbbb;
- display: -moz-inline-block;
- display: inline-block;
- display: table;
-
- /* IE7 and earliers */
- zoom: 1;
- *display: inline;
-
- padding: 7px;
-}
-
-/* CSS for backwards-compatibility with cached page renders and creative uses in wikitext */
-table#toc,
-table.toc {
- border-collapse: collapse;
-}
-
-/* Remove additional paddings inside table-cells that are not present in <div>s */
-table#toc td,
-table.toc td {
- padding: 0;
-}
-
-#toc tr, #toc td {
- margin: 0 0 0 0;
- padding: 0 0 0 0;
-}
-
-#toctitle {
- border-bottom: solid 1px #3c78b5;
- background-color: #dddddd;
- margin: 0 0 0 0;
-}
-
-#toc h2,
-.toc h2 {
- display: inline;
- border: none;
- padding: 0;
- font-size: 100%;
- font-weight: bold;
-}
-#toc #toctitle,
-.toc #toctitle,
-#toc .toctitle,
-.toc .toctitle {
- text-align: center;
-}
-
-#toc ul,
-.toc ul {
- list-style-type: none;
- list-style-image: none;
- margin: 0 1em 0 1em;
- padding: 0;
- text-align: left;
-}
-
-#toc ul ul,
-.toc ul ul {
- margin: 0 0 0 2em;
-}
-
-#toc .toctoggle,
-.toc .toctoggle {
- font-size: 94%;
-}
-
-.mw-warning {
- margin-left: 50px;
- margin-right: 50px;
- text-align: center;
-}
-
-.catlinks {
- border: solid 1px #bbbbbb;
- background-color: #f0f0f0;
- padding: 0.1em 0.3em 0.1em 0.3em;
- margin: 0 0 0 0;
-}
-
-#mw_header h1,
-#p-personal,
-#p-cactions {
- overflow: hidden;
-}
-
-/* disable interwiki styling */
-#mw_content a.extiw,
-#mw_content a.extiw:active {
- color: #36b;
-}
-#mw_content a.external {
- color: #36b;
-}
-
-
-.redirectText {
- font-size: 150%;
- margin: 5px;
-}
-
-.printfooter {
- display: none;
-}
-
-.sharedUploadNotice {
- font-style: italic;
-}
-
-span.updatedmarker {
- color: black;
- background-color: #0f0;
-}
-
-.previewnote {
- text-indent: 3em;
- color: #c00;
- border-bottom: 1px solid #aaa;
- padding-bottom: 1em;
- margin-bottom: 1em;
-}
-
-.previewnote p {
- margin: 0;
- padding: 0;
-}
-
-.editExternally {
- border: 1px solid gray;
- background-color: #ffffff;
- padding: 3px;
- margin-top: 0.5em;
- float: left;
- font-size: small;
- text-align: center;
-}
-.editExternallyHelp {
- font-style: italic;
- color: gray;
-}
-
-.toggle {
- margin-left: 2em;
- text-indent: -2em;
-}
-
-table.collapsed tr.collapsable {
- display: none;
-}
-
-input#wpSummary {
- width: 80%;
-}
-
-/* @bug 1714 */
-input#wpSave, input#wpDiff {
- margin-right: 0.33em;
-}
-
-#wpSave {
- font-weight: bold;
-}
-
-/* noarticletext */
-div.noarticletext {
- border: 1px solid #ccc;
- background: #fff;
- padding: .2em 1em;
- color: #000;
-}
-
-div#searchTargetContainer {
- left: 10px;
- top: 10px;
- width: 90%;
- background: white;
-}
-
-div#searchTarget {
- padding: 3px;
- margin: 5px;
- background: #F0F0F0;
- border: solid 1px blue;
-}
-
-div#searchTarget ul li {
- list-style: none;
-}
-
-div#searchTarget ul li:before {
- color: orange;
- content: "\00BB \0020";
-}
-
-div#searchTargetHide {
- float: right;
- border: solid 1px black;
- background: #DCDCDC;
- padding: 2px;
-}
-
-div.multipageimagenavbox {
- border: solid 1px silver;
- padding: 4px;
- margin: 1em;
- background: #f0f0f0;
-}
-
-div.multipageimagenavbox div.thumb {
- border: none;
- margin-left: 2em;
- margin-right: 2em;
-}
-
-div.multipageimagenavbox hr {
- margin: 6px;
-}
-
-table.multipageimage td {
- text-align: center;
-}
-
-.templatesUsed {
- margin-top: 1.5em;
-}
-
-.mw-summary-preview {
- margin: 0.1em 0;
-}
-
-/* Friendlier slave lag warnings */
-div.mw-lag-warn-normal,
-div.mw-lag-warn-high {
- padding: 3px;
- text-align: center;
- margin: 3px auto;
-}
-div.mw-lag-warn-normal {
- border: 1px solid #FFCC66;
- background-color: #FFFFCC;
-}
-div.mw-lag-warn-high {
- font-weight: bold;
- border: 2px solid #FF0033;
- background-color: #FFCCCC;
-}
-
-.MediaTransformError {
- background-color: #ccc;
- padding: 0.1em;
-}
-.MediaTransformError td {
- text-align: center;
- vertical-align: middle;
- font-size: 90%;
-}
-ul {
- line-height: 1.5em;
- list-style-type: square;
- margin: .3em 0 0 1.5em;
- padding: 0;
- /* @embed */
- list-style-image: url(bullet.gif);
-}
-ol {
- line-height: 1.5em;
- margin: .3em 0 0 3.2em;
- padding: 0;
- list-style-image: none;
-}
-li {
- margin-bottom: .1em;
-}
-dt {
- font-weight: bold;
- margin-bottom: .1em;
-}
-dl {
- margin-top: .2em;
- margin-bottom: .5em;
-}
-
-#p-cactions li.new a {
- color: #cc2200;
-}
-
-span.subpages {
- font-size: 80%;
- display: block;
-}
-
-pre, .mw-code {
- border: solid 1px #3c78b5;
- padding: 0.4em;
- background-color: #f0f0f0;
-}
-
-.usermessage {
- background-color: #dadaff;
-}
-
-.mw-topboxes {
- border-collapse: collapse;
- margin: 0 -1em 1em -1em;
- padding: 0 0 8px 0;
- /* @embed */
- background: url(footer-grad.png) repeat-x bottom left;
-}
-
-.mw-topbox p {
- padding: 0 0 0 0;
- margin: 0 0 0 0;
-}
-
-.mw-topbox {
- color: black;
- font-weight: bold;
- margin: 0 0 0 0;
- padding: 0 1em 0 1em;
- vertical-align: middle;
- border-collapse: collapse;
- border-bottom: solid 1px #bbbbbb;
-}
-
-#siteSub {
- background-color: #dddddd;
-}
-
-/* emulate center */
-.center {
- width: 100%;
- text-align: center;
-}
-*.center * {
- margin-left: auto;
- margin-right: auto;
-}
-
-/* table standards */
-.toccolours {
- border: 1px solid #bbbbbb;
- background-color: #f0f0f0;
- border-spacing: 0pt;
- margin: 0pt;
- padding: 0pt;
-}
-
-/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
-.tipsy {
- font-size: 130%;
-}
-
-/**
- * Lists:
- * The following lines don't have a visible effect on non-Gecko browsers
- * They fix a problem ith Gecko browsers rendering lists to the right of
- * left-floated objects in an RTL layout.
- */
-/* @noflip */
-html > body.rtl div#mw_contentholder ul {
- display: table;
-}
-
-/* @noflip */
-html > body.rtl div#mw_contentholder ul#filetoc {
- display: block;
-}
diff --git a/modern/news_icon.png b/modern/news_icon.png
deleted file mode 100644
index 4d3cb47..0000000
--- a/modern/news_icon.png
+++ /dev/null
Binary files differ
diff --git a/modern/print.css b/modern/print.css
deleted file mode 100644
index 150d2d2..0000000
--- a/modern/print.css
+++ /dev/null
@@ -1,10 +0,0 @@
-#mw_portlets,
-#p-cactions,
-#p-personal,
-#jump-to-nav,
-#footer,
-.mw-editsection,
-.mw-editsection-like,
-.noprint {
- display: none;
-}
diff --git a/modern/video.png b/modern/video.png
deleted file mode 100644
index e535c0c..0000000
--- a/modern/video.png
+++ /dev/null
Binary files differ
diff --git a/monobook/IE60Fixes.css b/monobook/IE60Fixes.css
deleted file mode 100644
index f3e4100..0000000
--- a/monobook/IE60Fixes.css
+++ /dev/null
@@ -1,112 +0,0 @@
-/* 6.0 - only fixes */
-/* content area */
-/* workaround for various ie float bugs */
-div#column-content {
- float: none;
- margin-left: 0;
- height: 1%;
-}
-div#column-content div#content {
- margin-left: 12.2em;
- margin-top: 3em;
- height: 1%;
-}
-.rtl div#column-content div#content {
- margin-right: 12.2em;
- margin-left: 0;
-}
-div#column-one {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 4;
-}
-.rtl div#column-one {
- left: auto;
- right: 0;
-}
-div#footer {
- margin-left: 13.6em;
- border-left: 1px solid #fabd23;
-}
-.rtl div#footer {
- margin-left: 0;
- margin-right: 13.6em;
- border-left: none;
- border-right: 1px solid #fabd23;
-}
-
-/* float/negative margin brokenness */
-* html div#footer {
- margin-top: 0;
-}
-
-* html div#column-content {
- display: inline;
- margin-bottom: 0;
-}
-
-/* the tabs */
-
-#p-cactions {
- z-index: 3;
-}
-
-#p-cactions li {
- padding-bottom: 0 !important;
- border: none;
- background-color: transparent;
- cursor: default;
- float: none !important;
-}
-#p-cactions li a {
- display: inline-block !important;
- vertical-align: top;
- padding-bottom: 0;
- border: solid #aaa;
- border-width: 1px 1px 0;
-}
-#p-cactions li.selected a {
- border-color: #fabd23;
- padding-bottom: 0.17em;
-}
-#p-cactions li a:hover {
- padding-bottom: 0.17em;
-}
-#p-navigation a {
- display: inline-block;
- width: 100%;
-}
-#portal-personaltools {
- padding-bottom: 0.1em;
-}
-
-.rtl a.feedlink {
- background-position: right;
- padding-right: 0;
- padding-left: 16px;
-}
-
-/* show the hand */
-#p-logo a,
-#p-logo a:hover {
- cursor: pointer;
-}
-div.visualClear {
- width:100%;
- line-height: 0;
-}
-textarea {
- width: 96%;
-}
-
-#catlinks,
-div.tright,
-div.tleft {
- position: relative;
-}
-
-/* bug 12846 */
-body.rtl #preftoc a, body.rtl #preftoc a:active {
- float: left;
-}
diff --git a/monobook/IE70Fixes.css b/monobook/IE70Fixes.css
deleted file mode 100644
index e8d3a8f..0000000
--- a/monobook/IE70Fixes.css
+++ /dev/null
@@ -1,92 +0,0 @@
-/* 7.0 - only fixes */
-/* content area */
-/* workaround for various ie float bugs */
-
-/* This bit is needed to make links clickable... WTF */
-div#column-content div#content {
- margin-left: 12.2em;
- margin-top: 3em;
- height: 1%;
-}
-.rtl div#column-content div#content {
- margin-right: 12.2em;
- margin-left: 0;
-}
-
-
-.rtl div#column-one {
- /* For some reason it tries to inherit the padding-top into every div,
- * and I can't figure out how to get it back off.
- * Margin works correctly for this use, though.
- */
- padding-top: 0;
- margin-top: 160px;
-}
-
-/* These elements also have padding-left: 20px; in main.css, but in RTL mode this is flipped.
- * That's good in normal browsers, but in IE7 it needs to not be flipped for some daft reason.
- * Also clear the right margin (originally margin-left: 1em)
- */
-li#pt-userpage, li#pt-anonuserpage, li#pt-login {
- padding-left: 20px;
- margin-right: 0;
-}
-
-.rtl a.feedlink {
- background-position: right;
- padding-right: 0;
- padding-left: 16px;
-}
-/* the tabs */
-
-#p-cactions {
- z-index: 3;
-}
-
-
-#p-cactions li {
- padding-bottom: 0 !important;
- border: none;
- background-color: transparent;
- cursor: default;
- float: none !important;
-}
-
-#p-cactions li a {
- display: inline-block !important;
- vertical-align: top;
- padding-bottom: 0;
- border: solid #aaa;
- border-width: 1px 1px 0;
-}
-#p-cactions li.selected a {
- border-color: #fabd23;
- padding-bottom: 0.17em;
-}
-#p-cactions li a:hover {
- padding-bottom: 0.17em;
-}
-#p-navigation a {
- display: inline-block;
- width: 100%;
-}
-#portal-personaltools {
- padding-bottom: 0.1em;
-}
-textarea {
- width: 96%;
-}
-
-/*
-#catlinks,
-div.tright,
-div.tleft {
- position: relative;
-}
-*/
-
-
-div#footer li {
- /* Work around bug with inline <li> tags with right margins and nowrap */
- margin-right: 0;
-}
diff --git a/monobook/audio.png b/monobook/audio.png
deleted file mode 100644
index 68c8768..0000000
--- a/monobook/audio.png
+++ /dev/null
Binary files differ
diff --git a/monobook/bullet.gif b/monobook/bullet.gif
deleted file mode 100644
index b43de48..0000000
--- a/monobook/bullet.gif
+++ /dev/null
Binary files differ
diff --git a/monobook/discussionitem_icon.gif b/monobook/discussionitem_icon.gif
deleted file mode 100644
index e3ca6d9..0000000
--- a/monobook/discussionitem_icon.gif
+++ /dev/null
Binary files differ
diff --git a/monobook/document.png b/monobook/document.png
deleted file mode 100644
index ee46a50..0000000
--- a/monobook/document.png
+++ /dev/null
Binary files differ
diff --git a/monobook/external-ltr.png b/monobook/external-ltr.png
deleted file mode 100644
index 6308383..0000000
--- a/monobook/external-ltr.png
+++ /dev/null
Binary files differ
diff --git a/monobook/external-rtl.png b/monobook/external-rtl.png
deleted file mode 100644
index 5313234..0000000
--- a/monobook/external-rtl.png
+++ /dev/null
Binary files differ
diff --git a/monobook/file_icon.gif b/monobook/file_icon.gif
deleted file mode 100644
index 69dbeaf..0000000
--- a/monobook/file_icon.gif
+++ /dev/null
Binary files differ
diff --git a/monobook/headbg.jpg b/monobook/headbg.jpg
deleted file mode 100644
index 5491c6e..0000000
--- a/monobook/headbg.jpg
+++ /dev/null
Binary files differ
diff --git a/monobook/link_icon.gif b/monobook/link_icon.gif
deleted file mode 100644
index 168c1a2..0000000
--- a/monobook/link_icon.gif
+++ /dev/null
Binary files differ
diff --git a/monobook/lock_icon.gif b/monobook/lock_icon.gif
deleted file mode 100644
index f71cd9b..0000000
--- a/monobook/lock_icon.gif
+++ /dev/null
Binary files differ
diff --git a/monobook/magnify-clip.png b/monobook/magnify-clip.png
deleted file mode 100644
index ffd7637..0000000
--- a/monobook/magnify-clip.png
+++ /dev/null
Binary files differ
diff --git a/monobook/mail_icon.gif b/monobook/mail_icon.gif
deleted file mode 100644
index cf5680d..0000000
--- a/monobook/mail_icon.gif
+++ /dev/null
Binary files differ
diff --git a/monobook/main.css b/monobook/main.css
deleted file mode 100644
index c32e869..0000000
--- a/monobook/main.css
+++ /dev/null
@@ -1,835 +0,0 @@
-/*
-** MediaWiki 'monobook' style sheet for CSS2-capable browsers.
-** Copyright Gabriel Wicke - http://wikidev.net/
-** License: GPL (http://www.gnu.org/copyleft/gpl.html)
-**
-** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John
-** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher,
-** Michael Zeltner and Geir Bækholt)
-** All you guys rock :)
-*/
-
-div#column-content {
- width: 100%;
- float: right;
- margin: 0 0 .6em -12.2em;
- padding: 0;
-}
-div#content {
- margin: 2.8em 0 0 12.2em;
- padding: 1em;
- position: relative;
- z-index: 2;
-}
-div#column-one {
- padding-top: 160px;
-}
-/* Hide, but keep accessible for screen-readers */
-#column-one h2 {
- position: absolute;
- top: -9999px;
-}
-div#content {
- background: white;
- color: black;
- border: 1px solid #aaa;
- border-right: none;
- line-height: 1.5em;
-}
-/* the left column width is specified in class .portlet */
-
-/* Font size:
-** We take advantage of keyword scaling- browsers won't go below 9px
-** More at http://www.w3.org/2003/07/30-font-size
-** http://style.cleverchimp.com/font_size_intervals/altintervals.html
-*/
-
-body {
- font: x-small sans-serif;
- /* @embed */
- background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat;
- color: black;
- margin: 0;
- padding: 0;
- direction: ltr; /* Needed for RTL flipping */
- unicode-bidi: embed;
-}
-
-/* scale back up to a sane default */
-div#globalWrapper {
- font-size: 127%;
- width: 100%;
- margin: 0;
- padding: 0;
-}
-
-/* general styles */
-a {
- color: #002bb8;
-}
-a:visited {
- color: #5a3696;
-}
-a.new,
-#p-personal a.new {
- color: #cc2200;
-}
-
-ul {
- list-style-type: square;
- /* @embed */
- list-style-image: url(bullet.gif);
-}
-
-input.historysubmit {
- padding: 0 .3em .3em .3em !important;
- font-size: 94%;
- cursor: pointer;
- height: 1.7em !important;
- margin-left: 1.6em;
-}
-
-pre, .mw-code {
- line-height: 1.1em;
-}
-
-#firstHeading {
- padding-top: 0;
-}
-/*
-** the main content area
-*/
-
-#siteNotice {
- font-size: 95%;
- padding: 0 0.9em;
-}
-#localNotice {
- margin: 0;
-}
-#siteNotice p {
- margin: 0;
- padding: 0;
-}
-
-/*
-** classes for special content elements like town boxes
-** intended to be referenced directly from the wiki src
-*/
-
-/*
-** User styles
-*/
-/* table standards */
-table.rimage {
- float: right;
- position: relative;
- margin-left: 1em;
- margin-bottom: 1em;
- text-align: center;
-}
-
-/*
-** edit views etc
-*/
-.special li {
- line-height: 1.4em;
- margin: 0;
- padding: 0;
-}
-
-/*
-** keep the whitespace in front of the ^=, hides rule from konqueror
-** this is css3, the validator doesn't like it when validating as css2
-*/
-#bodyContent a.external {
- /* @embed */
- background: url(external-ltr.png) center right no-repeat;
- padding-right: 13px;
-}
-#bodyContent a.external[href ^="https://"],
-.link-https {
- /* @embed */
- background: url(lock_icon.gif) center right no-repeat;
- padding-right: 16px;
-}
-#bodyContent a.external[href ^="mailto:"],
-.link-mailto {
- /* @embed */
- background: url(mail_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href ^="news:"] {
- /* @embed */
- background: url(news_icon.png) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href ^="ftp://"],
-.link-ftp {
- /* @embed */
- background: url(file_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href ^="irc://"],
-#bodyContent a.external[href ^="ircs://"],
-.link-irc {
- /* @embed */
- background: url(discussionitem_icon.gif) center right no-repeat;
- padding-right: 18px;
-}
-#bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"],
-#bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"],
-#bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"],
-#bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"],
-#bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"],
-#bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"],
-.link-audio {
- /* @embed */
- background: url(audio.png) center right no-repeat;
- padding-right: 13px;
-}
-#bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"],
-#bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"],
-#bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"],
-#bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"],
-.link-video {
- /* @embed */
- background: url(video.png) center right no-repeat;
- padding-right: 13px;
-}
-#bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"],
-#bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"],
-#bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"],
-.link-document {
- /* @embed */
- background: url(document.png) center right no-repeat;
- padding-right: 12px;
-}
-
-/* Interwiki Styling */
-#bodyContent a.extiw,
-#bodyContent a.extiw:active {
- color: #36b;
-}
-
-/* External links */
-#bodyContent a.external {
- color: #36b;
-}
-
-/*
-** Structural Elements
-*/
-
-/*
-** general portlet styles (elements in the quickbar)
-*/
-.portlet {
- border: none;
- margin: 0 0 .5em;
- padding: 0;
- float: none;
- width: 11.6em;
- overflow: hidden;
-}
-.portlet h3 {
- background: transparent;
- padding: 0 1em 0 .5em;
- display: inline;
- height: 1em;
- text-transform: lowercase;
- font-size: 91%;
- font-weight: normal;
- white-space: nowrap;
-}
-.pBody {
- font-size: 95%;
- background-color: white;
- color: black;
- border-collapse: collapse;
- border: 1px solid #aaa;
- padding: 0 .8em .3em .5em;
-}
-/* allows .pBody styles to wrap around content added via BaseTemplateAfterPortlet hook */
-.pBody:after {
- content: '';
- clear: both;
- display: block;
-}
-.portlet ul {
- line-height: 1.5em;
- font-size: 95%;
-}
-.portlet li {
- padding: 0;
- margin: 0;
-}
-
-/*
-** Logo properties
-*/
-
-#p-logo {
- top: 0;
- left: 0;
- position: absolute; /*needed to use z-index */
- z-index: 3;
- height: 155px;
- width: 12em;
- overflow: visible;
-}
-#p-logo h3 {
- display: none;
-}
-#p-logo a,
-#p-logo a:hover {
- display: block;
- height: 155px;
- width: 12.2em;
- background-repeat: no-repeat;
- background-position: 35% 50% !important;
- text-decoration: none;
-}
-
-/*
-** Search portlet
-*/
-#p-search {
- position: relative;
- z-index: 3;
-}
-input.searchButton {
- margin-top: 1px;
- font-size: 95%;
-}
-#searchGoButton {
- padding-left: .5em;
- padding-right: .5em;
- font-weight: bold;
-}
-#searchInput {
- width: 10.9em;
- margin: 0;
- font-size: 95%;
-}
-#p-search .pBody {
- padding: .5em .4em .4em .4em;
- text-align: center;
-}
-#p-search #searchform div div {
- margin-top: .4em;
- font-size: 95%;
-}
-/*
-** the personal toolbar
-*/
-#p-personal {
- position: absolute;
- left: 0;
- top: 0;
- z-index: 3;
-}
-#p-personal {
- width: 100%;
- white-space: nowrap;
- padding: 0;
- margin: 0;
- border: none;
- background: none;
- overflow: visible;
- line-height: 1.2em;
-}
-#p-personal h3 {
- display: none;
-}
-#p-personal .portlet,
-#p-personal .pBody {
- z-index: 0;
- padding: 0;
- margin: 0;
- border: none;
- overflow: visible;
- background: none;
-}
-/* this is the ul contained in the portlet */
-#p-personal ul {
- border: none;
- line-height: 1.4em;
- color: #2f6fab;
- padding: 0 2em 0 3em;
- margin: 0;
- text-align: right;
- list-style-type: none;
- list-style-image: none;
- z-index: 0;
- background: none;
- cursor: default;
-}
-#p-personal li {
- z-index: 0;
- border: none;
- padding: 0;
- display: inline;
- color: #2f6fab;
- margin-left: 1em;
- line-height: 1.2em;
- background: none;
-}
-#p-personal li a {
- text-decoration: none;
- color: #005896;
- padding-bottom: .2em;
- background: none;
-}
-#p-personal li a:hover {
- background-color: white;
- padding-bottom: .2em;
- text-decoration: none;
-}
-#p-personal li.active a:hover {
- background-color: transparent;
-}
-/* The icon in front of the username / login link */
-li#pt-userpage,
-li#pt-anonuserpage,
-li#pt-login {
- /* @embed */
- background: url(user.gif) top left no-repeat;
- padding-left: 20px;
-}
-#p-personal ul {
- text-transform: lowercase;
-}
-/* Don't lowercase username or IP addresses (IPv6) */
-li#pt-userpage,
-li#pt-anonuserpage {
- text-transform: none;
-}
-#p-personal li.active {
- font-weight: bold;
-}
-/*
-** the page-related actions- page/talk, edit etc
-*/
-#p-cactions {
- position: absolute;
- top: 1.3em;
- left: 11.5em;
- margin: 0;
- white-space: nowrap;
- width: 76%;
- line-height: 1.1em;
- overflow: visible;
- background: none;
- border-collapse: collapse;
- padding-left: 1em;
- font-size: 95%;
-}
-#p-cactions ul {
- list-style-type: none;
- list-style-image: none;
-}
-#p-cactions li {
- display: inline;
- border: 1px solid #aaa;
- border-bottom: none;
- padding: 0 0 1em 0;
- margin: 0 .3em 0 0;
- overflow: visible;
- background: white;
-}
-#p-cactions li.selected {
- border-color: #fabd23;
- font-weight: bold;
-}
-#p-cactions li a {
- background-color: #fbfbfb;
- color: #002bb8;
- border: none;
- padding: 0 .8em .3em;
- position: relative;
- z-index: 0;
- margin: 0;
- text-decoration: none;
-}
-#p-cactions li.selected a {
- z-index: 3;
- background-color: white;
-}
-#p-cactions .new a {
- color: #ba0000;
-}
-#p-cactions li a:hover {
- z-index: 3;
- text-decoration: none;
- background-color: white;
-}
-#p-cactions h3 {
- display: none;
-}
-#p-cactions li.istalk {
- margin-right: 0;
-}
-#p-cactions li.istalk a {
- padding-right: .5em;
-}
-#p-cactions #ca-addsection a {
- padding-left: .4em;
- padding-right: .4em;
-}
-/* offsets to distinguish the tab groups */
-li#ca-talk {
- margin-right: 1.6em;
-}
-li#ca-watch,
-li#ca-unwatch,
-li#ca-varlang-0,
-li#ca-print {
- margin-left: 1.6em;
-}
-#p-cactions .pBody {
- font-size: 1em;
- background-color: transparent;
- color: inherit;
- border-collapse: inherit;
- border: 0;
- padding: 0;
-}
-#p-cactions li a {
- text-transform: lowercase;
-}
-
-#p-lang {
- position: relative;
- z-index: 3;
-}
-
-/* Override text-transform on languages where capitalization is significant */
-.capitalize-all-nouns .portlet h3,
-.capitalize-all-nouns #p-personal ul,
-.capitalize-all-nouns #p-cactions ul li a {
- text-transform: none;
-}
-
-/* TODO: #t-iscite is only used by the Cite extension, come up with some
- * system which allows extensions to add to this file on the fly
- */
-#t-ispermalink, #t-iscite {
- color: #999;
-}
-/*
-** footer
-*/
-div#footer {
- background-color: white;
- border-top: 1px solid #fabd23;
- border-bottom: 1px solid #fabd23;
- margin: .6em 0 1em 0;
- overflow: hidden;
- padding: .4em 0 .3em 0;
- text-align: center;
- font-size: 90%;
-}
-div#footer li {
- display: inline;
- margin: 0 1.3em;
-}
-#f-poweredbyico, #f-copyrightico {
- margin: 0 8px;
- position: relative;
- top: -2px; /* Bump it up just a tad */
-}
-#f-poweredbyico {
- float: right;
- height: 1%;
-}
-#f-copyrightico {
- float: left;
- height: 1%;
-}
-
-.mw-htmlform-submit {
- font-weight: bold;
- padding-left: .3em;
- padding-right: .3em;
- margin-right: 2em;
-}
-
-/* js pref toc */
-#preftoc {
- margin: 0;
- padding: 0;
- width: 100%;
- clear: both;
-}
-#preftoc li {
- background-color: #f0f0f0;
- color: #000;
-}
-#preftoc li {
- margin: 1px -2px 1px 2px;
- float: left;
- padding: 2px 0 3px 0;
- border: 1px solid #fff;
- border-right-color: #716f64;
- border-bottom: 0;
- position: relative;
- white-space: nowrap;
- list-style-type: none;
- list-style-image: none;
- z-index: 3;
-}
-#preftoc li.selected {
- font-weight: bold;
- background-color: #f9f9f9;
- border: 1px solid #aaa;
- border-bottom: none;
- cursor: default;
- top: 1px;
- padding-top: 2px;
- margin-right: -3px;
-}
-#preftoc > li.selected {
- top: 2px;
-}
-#preftoc a,
-#preftoc a:active {
- display: block;
- color: #000;
- padding: 0 .7em;
- position: relative;
- text-decoration: none;
-}
-#preftoc li.selected a {
- cursor: default;
- text-decoration: none;
-}
-#preferences {
- margin: 0;
- border: 1px solid #aaa;
- clear: both;
- padding: 1.5em;
- background-color: #F9F9F9;
-}
-.prefsection {
- border: none;
- padding: 0;
- margin: 0;
-}
-
-.prefsection legend {
- font-weight: bold;
-}
-.prefsection table, .prefsection legend {
- background-color: #F9F9F9;
-}
-.mainLegend {
- display: none;
-}
-td.htmlform-tip {
- font-size: x-small;
- padding: .2em 2em;
- color: #666;
-}
-
-.preferences-login {
- clear: both;
- margin-bottom: 1.5em;
-}
-
-.prefcache {
- font-size: 90%;
- margin-top: 2em;
-}
-
-#userloginprompt, #languagelinks {
- font-size: 85%;
-}
-
-#login-sectiontip {
- font-size: 85%;
- line-height: 1.2;
- padding-top: 2em;
-}
-
-#userloginlink a, #wpLoginattempt, #wpCreateaccount {
- font-weight: bold;
-}
-
-/**
- * This was originally added by Gabriel Wicke in r3681 (committed on 25 May 2004)
- * with the commit message "tweaks to page history".
- * Unlike the other IE/Mac fixes that used to be present here, this seems to get
- * applied on more modern browsers, so let's keep it here until someone has the
- * time to properly test it out.
- */
-#pagehistory li.selected {
- position: relative;
-}
-
-.redirectText {
- font-size: 150%;
- margin: 5px;
-}
-
-div.patrollink {
- clear: both;
-}
-
-.sharedUploadNotice {
- font-style: italic;
-}
-
-span.updatedmarker {
- color: black;
- background-color: #0f0;
-}
-
-.editExternally {
- border: 1px solid gray;
- background-color: #ffffff;
- padding: 3px;
- margin-top: 0.5em;
- float: left;
- font-size: small;
- text-align: center;
-}
-.editExternallyHelp {
- font-style: italic;
- color: gray;
-}
-
-.toggle {
- margin-left: 2em;
- text-indent: -2em;
-}
-
-/* @bug 1714 */
-input#wpSave,
-input#wpDiff {
- margin-right: 0.33em;
-}
-
-#wpSave {
- font-weight: bold;
-}
-
-/* noarticletext */
-div.noarticletext {
- border: 1px solid #ccc;
- background: #fff;
- padding: .2em 1em;
- color: #000;
-}
-
-div#searchTargetContainer {
- left: 10px;
- top: 10px;
- width: 90%;
- background: white;
-}
-
-div#searchTarget {
- padding: 3px;
- margin: 5px;
- background: #F0F0F0;
- border: solid 1px blue;
-}
-
-div#searchTarget ul li {
- list-style-type: none;
- list-style-image: none;
-}
-
-div#searchTarget ul li:before {
- color: orange;
- content: "\00BB \0020";
-}
-
-div#searchTargetHide {
- float: right;
- border: solid 1px black;
- background: #DCDCDC;
- padding: 2px;
-}
-
-#powersearch p {
- margin-top: 0;
-}
-
-div.multipageimagenavbox {
- border: solid 1px silver;
- padding: 4px;
- margin: 1em;
- background: #f0f0f0;
-}
-
-div.multipageimagenavbox div.thumb {
- border: none;
- margin-left: 2em;
- margin-right: 2em;
-}
-
-div.multipageimagenavbox hr {
- margin: 6px;
-}
-
-table.multipageimage td {
- text-align: center;
-}
-
-.templatesUsed {
- margin-top: 1.5em;
-}
-
-.mw-summary-preview {
- margin: 0.1em 0;
-}
-
-/* Friendlier slave lag warnings */
-div.mw-lag-warn-normal,
-div.mw-lag-warn-high {
- padding: 3px;
- text-align: center;
- margin: 3px auto;
-}
-div.mw-lag-warn-normal {
- border: 1px solid #FFCC66;
- background-color: #FFFFCC;
-}
-div.mw-lag-warn-high {
- font-weight: bold;
- border: 2px solid #FF0033;
- background-color: #FFCCCC;
-}
-
-.MediaTransformError {
- background-color: #ccc;
- padding: 0.1em;
-}
-.MediaTransformError td {
- text-align: center;
- vertical-align: middle;
- font-size: 90%;
-}
-
-/* God-damned hack for the crappy layout */
-.os-suggest {
- font-size: 127%;
-}
-
-/* Sometimes people don't want personal tools to be lowercase! */
-.no-text-transform {
- text-transform: none;
-}
-
-/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
-.tipsy {
- font-size: 127%;
-}
-
-/* mediawiki.notification */
-.skin-monobook .mw-notification {
- -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.125);
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.125);
-}
diff --git a/monobook/news_icon.png b/monobook/news_icon.png
deleted file mode 100644
index 4d3cb47..0000000
--- a/monobook/news_icon.png
+++ /dev/null
Binary files differ
diff --git a/monobook/required.gif b/monobook/required.gif
deleted file mode 100644
index bd71976..0000000
--- a/monobook/required.gif
+++ /dev/null
Binary files differ
diff --git a/monobook/user.gif b/monobook/user.gif
deleted file mode 100644
index 34b4839..0000000
--- a/monobook/user.gif
+++ /dev/null
Binary files differ
diff --git a/monobook/video.png b/monobook/video.png
deleted file mode 100644
index d86dbe0..0000000
--- a/monobook/video.png
+++ /dev/null
Binary files differ
diff --git a/monobook/wiki-indexed.png b/monobook/wiki-indexed.png
deleted file mode 100644
index 799ebac..0000000
--- a/monobook/wiki-indexed.png
+++ /dev/null
Binary files differ
diff --git a/monobook/wiki.png b/monobook/wiki.png
deleted file mode 100644
index 8c42118..0000000
--- a/monobook/wiki.png
+++ /dev/null
Binary files differ
diff --git a/vector/collapsibleNav.js b/vector/collapsibleNav.js
deleted file mode 100644
index 45258e5..0000000
--- a/vector/collapsibleNav.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Collapsible navigation for Vector
- */
-( function ( mw, $ ) {
- 'use strict';
- var map;
-
- // Use the same function for all navigation headings - don't repeat
- function toggle( $element ) {
- var isCollapsed = $element.parent().is( '.collapsed' );
-
- $.cookie(
- 'vector-nav-' + $element.parent().attr( 'id' ),
- isCollapsed,
- { 'expires': 30, 'path': '/' }
- );
-
- $element
- .parent()
- .toggleClass( 'expanded' )
- .toggleClass( 'collapsed' )
- .find( '.body' )
- .slideToggle( 'fast' );
- isCollapsed = !isCollapsed;
-
- $element
- .find( '> a' )
- .attr( {
- 'aria-pressed': isCollapsed ? 'false' : 'true',
- 'aria-expanded': isCollapsed ? 'false' : 'true'
- } );
- }
-
- /* Browser Support */
-
- map = {
- // Left-to-right languages
- ltr: {
- // Collapsible Nav is broken in Opera < 9.6 and Konqueror < 4
- opera: [['>=', 9.6]],
- konqueror: [['>=', 4.0]],
- blackberry: false,
- ipod: false,
- iphone: false,
- ps3: false
- },
- // Right-to-left languages
- rtl: {
- opera: [['>=', 9.6]],
- konqueror: [['>=', 4.0]],
- blackberry: false,
- ipod: false,
- iphone: false,
- ps3: false
- }
- };
- if ( !$.client.test( map ) ) {
- return true;
- }
-
- $( function ( $ ) {
- var $headings, tabIndex;
-
- /* General Portal Modification */
-
- // Always show the first portal
- $( '#mw-panel > .portal:first' ).addClass( 'first persistent' );
- // Apply a class to the entire panel to activate styles
- $( '#mw-panel' ).addClass( 'collapsible-nav' );
- // Use cookie data to restore preferences of what to show and hide
- $( '#mw-panel > .portal:not(.persistent)' )
- .each( function ( i ) {
- var id = $(this).attr( 'id' ),
- state = $.cookie( 'vector-nav-' + id );
- $(this).find( 'ul:first' ).attr( 'id', id + '-list' );
- // Add anchor tag to heading for better accessibility
- $( this ).find( 'h3' ).wrapInner(
- $( '<a>' )
- .attr( {
- href: '#',
- 'aria-haspopup': 'true',
- 'aria-controls': id + '-list',
- role: 'button'
- } )
- .click( false )
- );
- // In the case that we are not showing the new version, let's show the languages by default
- if (
- state === 'true' ||
- ( state === null && i < 1 ) ||
- ( state === null && id === 'p-lang' )
- ) {
- $(this)
- .addClass( 'expanded' )
- .removeClass( 'collapsed' )
- .find( '.body' )
- .hide() // bug 34450
- .show();
- $(this).find( 'h3 > a' )
- .attr( {
- 'aria-pressed': 'true',
- 'aria-expanded': 'true'
- } );
- } else {
- $(this)
- .addClass( 'collapsed' )
- .removeClass( 'expanded' );
- $(this).find( 'h3 > a' )
- .attr( {
- 'aria-pressed': 'false',
- 'aria-expanded': 'false'
- } );
- }
- // Re-save cookie
- if ( state !== null ) {
- $.cookie( 'vector-nav-' + $(this).attr( 'id' ), state, { 'expires': 30, 'path': '/' } );
- }
- } );
-
- /* Tab Indexing */
-
- $headings = $( '#mw-panel > .portal:not(.persistent) > h3' );
-
- // Get the highest tab index
- tabIndex = $( document ).lastTabIndex() + 1;
-
- // Fix the search not having a tabindex
- $( '#searchInput' ).attr( 'tabindex', tabIndex++ );
-
- // Make it keyboard accessible
- $headings.attr( 'tabindex', function () {
- return tabIndex++;
- });
-
- // Toggle the selected menu's class and expand or collapse the menu
- $( '#mw-panel' )
- .delegate( '.portal:not(.persistent) > h3', 'keydown', function ( e ) {
- // Make the space and enter keys act as a click
- if ( e.which === 13 /* Enter */ || e.which === 32 /* Space */ ) {
- toggle( $(this) );
- }
- } )
- .delegate( '.portal:not(.persistent) > h3', 'mousedown', function ( e ) {
- if ( e.which !== 3 ) { // Right mouse click
- toggle( $(this) );
- $(this).blur();
- }
- return false;
- } );
- });
-
-}( mediaWiki, jQuery ) );
diff --git a/vector/collapsibleTabs.js b/vector/collapsibleTabs.js
deleted file mode 100644
index 0e49744..0000000
--- a/vector/collapsibleTabs.js
+++ /dev/null
@@ -1,208 +0,0 @@
-/**
- * Collapsible tabs jQuery Plugin
- */
-( function ( $ ) {
- var rtl = $( 'html' ).attr( 'dir' ) === 'rtl';
- $.fn.collapsibleTabs = function ( options ) {
- // return if the function is called on an empty jquery object
- if ( !this.length ) {
- return this;
- }
- // Merge options into the defaults
- var $settings = $.extend( {}, $.collapsibleTabs.defaults, options );
-
- this.each( function () {
- var $el = $( this );
- // add the element to our array of collapsible managers
- $.collapsibleTabs.instances = ( $.collapsibleTabs.instances.length === 0 ?
- $el : $.collapsibleTabs.instances.add( $el ) );
- // attach the settings to the elements
- $el.data( 'collapsibleTabsSettings', $settings );
- // attach data to our collapsible elements
- $el.children( $settings.collapsible ).each( function () {
- $.collapsibleTabs.addData( $( this ) );
- } );
- } );
-
- // if we haven't already bound our resize handler, bind it now
- if ( !$.collapsibleTabs.boundEvent ) {
- $( window ).on( 'resize', $.debounce( 500, function () {
- $.collapsibleTabs.handleResize();
- } ) );
- $.collapsibleTabs.boundEvent = true;
- }
-
- // call our resize handler to setup the page
- $.collapsibleTabs.handleResize();
- return this;
- };
- /**
- * Returns the amount of horizontal distance between the two tabs groups
- * (#left-navigation and #right-navigation), in pixels. If negative, this
- * means that the tabs overlap, and the value is the width of overlapping
- * parts.
- *
- * Used in default expandCondition and collapseCondition.
- *
- * @return {Numeric} distance/overlap in pixels
- */
- function calculateTabDistance() {
- var $leftTab, $rightTab, leftEnd, rightStart;
-
- // In RTL, #right-navigation is actually on the left and vice versa.
- // Hooray for descriptive naming.
- if ( !rtl ) {
- $leftTab = $( '#left-navigation' );
- $rightTab = $( '#right-navigation' );
- } else {
- $leftTab = $( '#right-navigation' );
- $rightTab = $( '#left-navigation' );
- }
-
- leftEnd = $leftTab.offset().left + $leftTab.width();
- rightStart = $rightTab.offset().left;
-
- return rightStart - leftEnd;
- }
- $.collapsibleTabs = {
- instances: [],
- boundEvent: null,
- defaults: {
- expandedContainer: '#p-views ul',
- collapsedContainer: '#p-cactions ul',
- collapsible: 'li.collapsible',
- shifting: false,
- expandCondition: function ( eleWidth ) {
- // If there are at least eleWidth + 1 pixels of free space, expand.
- // We add 1 because .width() will truncate fractional values
- // but .offset() will not.
- return calculateTabDistance() >= (eleWidth + 1);
- },
- collapseCondition: function () {
- // If there's an overlap, collapse.
- return calculateTabDistance() < 0;
- }
- },
- addData: function ( $collapsible ) {
- var $settings = $collapsible.parent().data( 'collapsibleTabsSettings' );
- if ( $settings ) {
- $collapsible.data( 'collapsibleTabsSettings', {
- expandedContainer: $settings.expandedContainer,
- collapsedContainer: $settings.collapsedContainer,
- expandedWidth: $collapsible.width(),
- prevElement: $collapsible.prev()
- } );
- }
- },
- getSettings: function ( $collapsible ) {
- var $settings = $collapsible.data( 'collapsibleTabsSettings' );
- if ( !$settings ) {
- $.collapsibleTabs.addData( $collapsible );
- $settings = $collapsible.data( 'collapsibleTabsSettings' );
- }
- return $settings;
- },
- handleResize: function () {
- $.collapsibleTabs.instances.each( function () {
- var $el = $( this ),
- data = $.collapsibleTabs.getSettings( $el );
-
- if ( data.shifting ) {
- return;
- }
-
- // if the two navigations are colliding
- if ( $el.children( data.collapsible ).length > 0 && data.collapseCondition() ) {
-
- $el.trigger( 'beforeTabCollapse' );
- // move the element to the dropdown menu
- $.collapsibleTabs.moveToCollapsed( $el.children( data.collapsible + ':last' ) );
- }
-
- // if there are still moveable items in the dropdown menu,
- // and there is sufficient space to place them in the tab container
- if ( $( data.collapsedContainer + ' ' + data.collapsible ).length > 0 &&
- data.expandCondition( $.collapsibleTabs.getSettings( $( data.collapsedContainer ).children(
- data.collapsible + ':first' ) ).expandedWidth ) ) {
- //move the element from the dropdown to the tab
- $el.trigger( 'beforeTabExpand' );
- $.collapsibleTabs
- .moveToExpanded( data.collapsedContainer + ' ' + data.collapsible + ':first' );
- }
- } );
- },
- moveToCollapsed: function ( ele ) {
- var outerData, expContainerSettings, target,
- $moving = $( ele );
-
- outerData = $.collapsibleTabs.getSettings( $moving );
- if ( !outerData ) {
- return;
- }
- expContainerSettings = $.collapsibleTabs.getSettings( $( outerData.expandedContainer ) );
- if ( !expContainerSettings ) {
- return;
- }
- expContainerSettings.shifting = true;
-
- // Remove the element from where it's at and put it in the dropdown menu
- target = outerData.collapsedContainer;
- $moving.css( 'position', 'relative' )
- .css( ( rtl ? 'left' : 'right' ), 0 )
- .animate( { width: '1px' }, 'normal', function () {
- var data, expContainerSettings;
- $( this ).hide();
- // add the placeholder
- $( '<span class="placeholder" style="display: none;"></span>' ).insertAfter( this );
- $( this ).detach().prependTo( target ).data( 'collapsibleTabsSettings', outerData );
- $( this ).attr( 'style', 'display: list-item;' );
- data = $.collapsibleTabs.getSettings( $( ele ) );
- if ( data ) {
- expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) );
- if ( expContainerSettings ) {
- expContainerSettings.shifting = false;
- $.collapsibleTabs.handleResize();
- }
- }
- } );
- },
- moveToExpanded: function ( ele ) {
- var data, expContainerSettings, $target, expandedWidth,
- $moving = $( ele );
-
- data = $.collapsibleTabs.getSettings( $moving );
- if ( !data ) {
- return;
- }
- expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) );
- if ( !expContainerSettings ) {
- return;
- }
- expContainerSettings.shifting = true;
-
- // grab the next appearing placeholder so we can use it for replacing
- $target = $( data.expandedContainer ).find( 'span.placeholder:first' );
- expandedWidth = data.expandedWidth;
- $moving.css( 'position', 'relative' ).css( ( rtl ? 'right' : 'left' ), 0 ).css( 'width', '1px' );
- $target.replaceWith(
- $moving
- .detach()
- .css( 'width', '1px' )
- .data( 'collapsibleTabsSettings', data )
- .animate( { width: expandedWidth + 'px' }, 'normal', function () {
- $( this ).attr( 'style', 'display: block;' );
- var data, expContainerSettings;
- data = $.collapsibleTabs.getSettings( $( this ) );
- if ( data ) {
- expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) );
- if ( expContainerSettings ) {
- expContainerSettings.shifting = false;
- $.collapsibleTabs.handleResize();
- }
- }
- } )
- );
- }
- };
-
-}( jQuery ) );
diff --git a/vector/components/animations.less b/vector/components/animations.less
deleted file mode 100644
index 9163779..0000000
--- a/vector/components/animations.less
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Animate between standard and high definition layouts */
-body.vector-animateLayout {
- div#content,
- div#footer,
- #left-navigation {
- .transition(margin-left 250ms, padding 250ms;);
- }
-
- #p-logo {
- .transition(left 250ms);
- }
-
- #mw-panel {
- .transition(padding-right 250ms);
- }
-
- #p-search {
- .transition(margin-right 250ms);
- }
-
- #p-personal {
- .transition(right 250ms);
- }
-
- #mw-head-base {
- .transition(margin-left 250ms);
- }
-}
diff --git a/vector/components/collapsibleNav.less b/vector/components/collapsibleNav.less
deleted file mode 100644
index e6f5c9a..0000000
--- a/vector/components/collapsibleNav.less
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * LESS Stylesheet for collapsible nav
- */
-@import "mediawiki.mixins.less";
-
-#mw-panel.collapsible-nav {
- .portal {
- background-position: left top;
- background-repeat: no-repeat;
- .background-image('images/portal-break.png');
- padding: 0.25em 0 !important;
- margin: -11px 9px 10px 11px;
-
- h3 {
- font-size: @menu-main-heading-font-size;
- color: @collapsible-nav-heading-color;
- font-weight: normal;
- background-position: left center;
- background-repeat: no-repeat;
- .background-image-svg('images/arrow-expanded.svg', 'images/arrow-expanded.png');
- padding: @collapsible-nav-heading-padding;
- margin-bottom: 0;
-
- &:hover {
- cursor: pointer;
- text-decoration: none;
- }
-
- a {
- color: @collapsible-nav-heading-color;
- text-decoration: none;
- }
- }
-
- .body {
- margin: @collapsible-nav-body-margin;
- background-image: none !important;
- padding-top: 0;
- display: none;
-
- ul {
- li {
- padding: 0.25em 0;
- }
- }
- }
-
-
- /* First */
- &.first {
- background-image: none;
- margin-top: 0;
- h3 {
- display: none;
- }
- }
-
- /* Persistent */
- &.persistent {
- .body {
- display: block;
- margin-left: 0.5em;
- }
-
- h3 {
- background-image: none !important;
- padding-left: 0.7em;
- cursor: default;
- }
- }
-
- /* Collapsed */
- &.collapsed {
- h3 {
- color: @collapsible-nav-heading-collapsed-color;
- background-position: left center;
- background-repeat: no-repeat;
- .background-image-svg('images/arrow-collapsed-ltr.svg', 'images/arrow-collapsed-ltr.png');
- margin-bottom: 0;
-
- &:hover {
- text-decoration: underline;
- }
-
- a {
- color: @collapsible-nav-heading-collapsed-color;
- }
- }
- }
- }
-}
diff --git a/vector/components/common.less b/vector/components/common.less
deleted file mode 100644
index 25ba301..0000000
--- a/vector/components/common.less
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Any rules which should not be flipped automatically in right-to-left situations should be
- * prepended with @noflip in a comment block.
- *
- * This stylesheet employs a few CSS trick to accomplish compatibility with a wide range of web
- * browsers. The most common trick is to use some styles in IE6 only. This is accomplished by using
- * a rule that makes things work in IE6, and then following it with a rule that begins with
- * "html > body" or use a child selector ">", which is ignored by IE6 because it does not support
- * the child selector. You can spot this by looking for the "OVERRIDDEN BY COMPLIANT BROWSERS" and
- * "IGNORED BY IE6" comments.
- */
-@import "mediawiki.mixins";
-
-/* Framework */
-html {
- font-size: @html-font-size;
-}
-html,
-body {
- height: 100%;
- margin: 0;
- padding: 0;
- font-family: @content-font-family;
-}
-body {
- background-color: @menu-background-color;
-}
-
-/* Content */
-div#content {
- margin-left: 10em;
- padding: @content-padding;
- /* Border on top, left, and bottom side */
- border: 1px solid @content-border-color;
- border-right-width: 0;
- /* Merge the border with tabs' one (in their background image) */
- margin-top: -1px;
- background-color: @body-background-color;
- color: @content-font-color;
- direction: ltr;
-
- .mw-editsection,
- .mw-editsection-like {
- font-family: @content-font-family;
- }
-
- p {
- line-height: inherit;
- margin: 0.5em 0;
- }
-
- h1,
- h2,
- #firstHeading {
- font-family: @content-heading-font-family;
- line-height: @heading-line-height;
- margin-bottom: 0.25em;
- padding: 0;
- }
-
- h1,
- #firstHeading {
- font-size: @content-heading-font-size;
- }
-
- h2 {
- font-size: 1.5em;
- margin-top: 1em;
- }
-
- h3,
- h4,
- h5,
- h6 {
- line-height: @content-line-height;
- margin-top: 0.3em;
- margin-bottom: 0;
- padding-bottom: 0;
- }
-
- h3 {
- font-size: 1.17em;
- }
-
- h3,
- h4 {
- font-weight: bold;
- }
-
- h4,
- h5,
- h6 {
- font-size: 100%; /* (reset) */
- }
-
- #toc h2,
- .toc h2 {
- font-size: 100%; /* (reset) */
- font-family: @content-font-family;
- }
-}
-
-/* Hide empty portlets */
-div.emptyPortlet {
- display: none;
-}
-
-ul {
- list-style-type: disc;
- .list-style-image('images/bullet-icon.png');
-}
-
-pre, .mw-code {
- line-height: 1.3em;
-}
-
-/* Site Notice (includes notices from CentralNotice extension) */
-#siteNotice {
- font-size: 0.8em;
-}
-
-.redirectText {
- font-size: 140%;
-}
-
-.redirectMsg img {
- vertical-align: text-bottom;
-}
-
-#bodyContent {
- position: relative;
- width: 100%;
- line-height: @content-line-height;
- font-size: @content-font-size;
-}
-
-/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
-// FIXME: Should be part of jquery.tipsy.css
-.tipsy {
- font-size: 0.8em;
-}
diff --git a/vector/components/externalLinks.less b/vector/components/externalLinks.less
deleted file mode 100644
index 91388c6..0000000
--- a/vector/components/externalLinks.less
+++ /dev/null
@@ -1,10 +0,0 @@
-@import "mediawiki.mixins.less";
-// External links
-#content {
- .external {
- background-position: center right;
- background-repeat: no-repeat;
- .background-image-svg('images/external-link-ltr-icon.svg', 'images/external-link-ltr-icon.png');
- padding-right: 13px;
- }
-}
diff --git a/vector/components/footer.less b/vector/components/footer.less
deleted file mode 100644
index 3d61b66..0000000
--- a/vector/components/footer.less
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Footer */
-div#footer {
- margin-left: 10em;
- margin-top: 0;
- padding: 0.75em;
- direction: ltr;
-
- ul {
- list-style-type: none;
- list-style-image: none;
- margin: 0;
- padding: 0;
-
- li {
- margin: 0;
- padding: 0;
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- color: #333;
- font-size: 0.7em;
- }
- }
-
- #footer-icons {
- float: right;
-
- li {
- float: left;
- margin-left: 0.5em;
- line-height: 2em;
- text-align: right;
- }
- }
-
- #footer-info {
- li {
- line-height: 1.4em;
- }
- }
-
- #footer-places {
- li {
- float: left;
- margin-right: 1em;
- line-height: 2em;
- }
- }
-}
-
-body.ltr {
- div#footer {
- #footer-places {
- /* @noflip */
- float: left;
- }
- }
-}
diff --git a/vector/components/navigation.less b/vector/components/navigation.less
deleted file mode 100644
index f3a5a49..0000000
--- a/vector/components/navigation.less
+++ /dev/null
@@ -1,134 +0,0 @@
-@import "mediawiki.mixins";
-@import "personalMenu";
-@import "collapsibleNav";
-@import "search";
-@import "tabs";
-
-/* Hide, but keep accessible for screen-readers */
-#mw-navigation h2 {
- position: absolute;
- top: -9999px;
-}
-
-/* Head */
-#mw-page-base {
- height: 5em;
- background-position: bottom left;
- background-repeat: repeat-x;
- /* This image is only a fallback (for IE 6-9), so we do not @embed it. */
- background-image: url('images/page-fade.png');
- .vertical-gradient(@body-background-color, @menu-background-color, 50%, 100%);
- background-color: @body-background-color;
-}
-
-#mw-head-base {
- margin-top: -5em;
- margin-left: 10em;
- height: 5em;
-}
-
-div#mw-head {
- position: absolute;
- top: 0;
- right: 0;
- width: 100%;
-
- h3 {
- margin: 0;
- padding: 0;
- }
-}
-
-/* Navigation Containers */
-#left-navigation {
- float: left;
- margin-left: 10em;
- margin-top: 2.5em;
- /* When right nav would overlap left nav, it's placed below it
- (normal CSS floats behavior). This rule ensures that no empty space
- is shown between them due to right nav's margin-top. Page layout
- is still broken, but at least the nav overlaps only the page title
- instead of half the content. */
- margin-bottom: -2.5em;
- /* IE 6 double-margin bug fix */
- display: inline;
-}
-
-#right-navigation {
- float: right;
- margin-top: 2.5em;
-}
-
-/* Logo */
-#p-logo {
- position: absolute;
- top: -160px;
- left: 0;
- width: 10em;
- height: 160px;
-
- a {
- display: block;
- width: 10em;
- height: 160px;
- background-repeat: no-repeat;
- background-position: center center;
- text-decoration: none;
- }
-}
-
-/* Panel */
-div#mw-panel {
- font-size: @menu-main-font-size;
- position: absolute;
- top: 160px;
- padding-top: 1em;
- width: 10em;
- left: 0;
-
- div.portal {
- padding-bottom: 1.5em;
- direction: ltr;
-
- h3 {
- font-weight: normal;
- color: #444;
- padding: @menu-main-heading-padding;
- cursor: default;
- border: none;
- font-size: @menu-main-heading-font-size;
- }
-
- div.body {
- padding-top: 0.5em;
- margin: @menu-main-body-margin;
-
- .background-image('images/portal-break.png');
- background-repeat: no-repeat;
- background-position: top left;
-
- ul {
- list-style-type: none;
- list-style-image: none;
- padding: @menu-main-body-padding;
- margin: 0;
-
- li {
- line-height: 1.125em;
- padding: 0;
- padding-bottom: 0.5em;
- margin: 0;
- font-size: @menu-main-body-font-size;
- word-wrap: break-word;
-
- a {
- color: @menu-main-body-link-color;
- &:visited {
- color: @menu-main-body-link-visited-color;
- }
- }
- }
- }
- }
- }
-}
diff --git a/vector/components/notifications.less b/vector/components/notifications.less
deleted file mode 100644
index cadb61c..0000000
--- a/vector/components/notifications.less
+++ /dev/null
@@ -1,20 +0,0 @@
-/* mediawiki.notification */
-.skin-vector {
- .mw-notification-area {
- font-size: 0.8em;
- }
-
- .mw-notification-area-layout {
- top: 7em;
- }
-
- .mw-notification {
- background-color: #fff;
- background-color: rgba(255, 255, 255, 0.93);
- padding: 0.75em 1.5em;
- border: solid 1px @content-border-color;
- border-radius: 0.75em;
- -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
- box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125);
- }
-}
diff --git a/vector/components/personalMenu.less b/vector/components/personalMenu.less
deleted file mode 100644
index 7256929..0000000
--- a/vector/components/personalMenu.less
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Personal */
-#p-personal {
- position: absolute;
- top: 0.33em;
- right: 0.75em;
- /* Display on top of page tabs - bugs 37158, 48078 */
- z-index: 100;
-
- h3 {
- display: none;
- }
-
- ul {
- list-style-type: none;
- list-style-image: none;
- margin: 0;
- padding-left: 10em; /* Keep from overlapping logo */
- }
-
- li {
- line-height: 1.125em;
- /* @noflip */
- float: left;
- margin-left: 0.75em;
- margin-top: 0.5em;
- font-size: @menu-personal-font-size;
- white-space: nowrap;
- }
-}
-
-/* Icon for Usernames */
-#pt-userpage,
-#pt-anonuserpage,
-#pt-login {
- background-position: left top;
- background-repeat: no-repeat;
- /* SVG support using a transparent gradient to guarantee cross-browser
- * compatibility (browsers able to understand gradient syntax support also SVG) */
- .background-image-svg('images/user-icon.svg', 'images/user-icon.png');
- padding-left: 15px !important;
-}
diff --git a/vector/components/search.less b/vector/components/search.less
deleted file mode 100644
index 46c3030..0000000
--- a/vector/components/search.less
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Search */
-#p-search {
- /* @noflip */
- float: left;
- margin-right: 0.5em;
- margin-left: 0.5em;
-
- h3 {
- display: none;
- }
-
- form,
- input {
- margin: 0;
- margin-top: 0.4em;
- }
-}
-
-div#simpleSearch {
- display: block;
- width: 14em;
- height: 1.4em;
- margin-top: 0.65em;
- position: relative;
- min-height: 1px; /* Gotta trigger hasLayout for IE7 */
- border: solid 1px #aaa;
- color: black;
- background-color: white;
- .background-image('images/search-fade.png');
- background-position: top left;
- background-repeat: repeat-x;
-
- // Styles for both the search input and the button
- input {
- position: absolute;
- margin: 0;
- padding: 0;
- border: 0;
- background-color: transparent;
- color: black;
- }
-
- // The search input
- #searchInput {
- top: 0;
- left: 0;
- width: 90%;
- padding: 0.2em 0 0.2em 0.2em;
- font-size: 13px;
- direction: ltr;
-
- &:focus {
- outline: none;
- }
-
- // These rules MAY NOT be merged because of how CSS requires browsers
- // to parse unrecognized selectors!
- // Note these rules ensure that placeholder text can be distinguished from
- // standard text. In browsers which make this distinction clear these rules
- // are not necessary.
- // For inputs that use jquery.placeholder.js e.g. IE9-
- &.placeholder {
- color: #999;
- }
- // Distinguish placeholder text in IE10+
- &:-ms-input-placeholder {
- color: #999;
- }
- // Distinguish placeholder text in Firefox 18-
- &:-moz-placeholder {
- color: #999;
- }
-
- // Undo the styles Webkit browsers apply to type=search fields,
- // we provide our own
- -webkit-appearance: textfield;
-
- &::-webkit-search-decoration,
- &::-webkit-search-cancel-button,
- &::-webkit-search-results-button,
- &::-webkit-search-results-decoration {
- -webkit-appearance: textfield;
- }
- }
-
- // The buttons. They are displayed in the same position, and if both are
- // present the fulltext search one obscures the 'Go' one.
- #searchButton,
- #mw-searchButton {
- top: 0;
- right: 0;
- width: 10%;
- height: 100%;
- cursor: pointer;
- /* Hide button text and replace it with the image. */
- /* This would be 100% if not for Firefox shenanigans (bug 60900). */
- text-indent: 200%;
- /* Needed to make IE6 respect the text-indent. */
- line-height: 1;
- /* Opera 12 on RTL flips the text in a funny way without this. */
- /* @noflip */
- direction: ltr;
- white-space: nowrap;
- overflow: hidden;
- .background-image-svg('images/search-ltr.svg', 'images/search-ltr.png');
- background-position: center center;
- background-repeat: no-repeat;
- }
-
- #mw-searchButton {
- z-index: 1;
- }
-}
diff --git a/vector/components/tabs.less b/vector/components/tabs.less
deleted file mode 100644
index 7e24ae7..0000000
--- a/vector/components/tabs.less
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
-Styling for namespace tabs (page, discussion) and views (read, edit, view history, watch and other actions)
-*/
-
-/* Navigation Labels */
-div.vectorTabs h3,
-div.vectorMenu h3 span {
- display: none;
-}
-
-/* Namespaces and Views */
-div.vectorTabs {
- /* @noflip */
- float: left;
- height: 2.5em;
- .background-image('images/tab-break.png');
- background-position: bottom left;
- background-repeat: no-repeat;
- padding-left: 1px;
-
- ul {
- /* @noflip */
- float: left;
- height: 100%;
- list-style-type: none;
- list-style-image: none;
- margin: 0;
- padding: 0;
- .background-image('images/tab-break.png');
- background-position: right bottom;
- background-repeat: no-repeat;
-
- li {
- /* @noflip */
- float: left;
- line-height: 1.125em;
- /* For IE6, overridden later to display:block by modern browsers */
- display: inline-block;
- height: 100%;
- margin: 0;
- padding: 0;
- background-color: #f3f3f3;
- .background-image('images/tab-normal-fade.png');
- background-position: bottom left;
- background-repeat: repeat-x;
- white-space: nowrap;
- }
-
- /* IGNORED BY IE6 which doesn't support child selector */
- > li {
- display: block;
- }
- }
-
- li {
- &.new {
- a,
- a:visited{
- color: #a55858;
- }
- }
-
- &.selected {
- .background-image('images/tab-current-fade.png');
- a,
- a:visited{
- color: #333;
- text-decoration: none;
- }
- }
-
- &.icon {
- a {
- background-position: bottom right;
- background-repeat: no-repeat;
- }
- }
-
- a {
- /* For IE6, overridden later to display:block by modern browsers */
- display: inline-block;
- height: 1.9em;
- padding-left: 0.5em;
- padding-right: 0.5em;
- color: @menu-link-color;
- cursor: pointer;
- font-size: 0.8em;
- }
-
- /* Ignored by IE6 which doesn't support child selector */
- > a {
- display: block;
- }
- }
-
- span {
- display: inline-block;
- .background-image('images/tab-break.png');
- background-position: bottom right;
- background-repeat: no-repeat;
-
- a {
- /* For IE6, overridden later to display:block by modern browsers */
- display: inline-block;
- padding-top: 1.25em;
- }
-
- /* Ignored by IE6 which doesn't support child selector */
- > a {
- /* @noflip */
- float: left;
- display: block;
- }
- }
-}
-
-/* Variants and Actions */
-div.vectorMenu {
- /* @noflip */
- direction: ltr;
- /* @noflip */
- float: left;
- .background-image-svg('images/arrow-down-icon.svg', 'images/arrow-down-icon.png');
- /* @noflip */
- background-position: 100% 60%;
- background-repeat: no-repeat;
- cursor: pointer;
- .transition(background-position 250ms);
-}
-
-div.vectorMenu.menuForceShow {
- background-position: 100% 100%;
-}
-
-div.vectorMenuFocus {
- .background-image-svg('images/arrow-down-focus-icon.svg', 'images/arrow-down-focus-icon.png');
- background-position: 100% 60%;
-}
-
-body.rtl div.vectorMenu {
- /* @noflip */
- direction: rtl;
-}
-
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div#mw-head div.vectorMenu h3 {
- /* @noflip */
- float: left;
- .background-image('images/tab-break.png');
- background-repeat: no-repeat;
- background-position: bottom left;
- margin-left: -1px;
-}
-
-/* IGNORED BY IE6 */
-div#mw-head div.vectorMenu > h3 {
- background-image: none;
-}
-
-div#mw-head div.vectorMenu h4,
-div.vectorMenu#p-variants #mw-vector-current-variant {
- display: inline-block;
- float: left;
- font-size: 0.8em;
- padding-left: 0.5em;
- padding-top: 1.375em;
- font-weight: normal;
- border: none;
-}
-
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorMenu h3 a {
- display: inline-block;
- width: 24px;
- height: 1.9em;
- text-decoration: none;
- .background-image('images/tab-break.png');
- background-repeat: no-repeat;
- background-position: bottom right;
-}
-
-/* IGNORED BY IE6 */
-div.vectorMenu h3 > a {
- display: block;
-}
-
-div.vectorMenu div.menu {
- position: relative;
- display: none;
- clear: both;
- text-align: left;
-}
-
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-body.rtl div.vectorMenu div.menu {
- /* @noflip */
- margin-left: 24px;
-}
-
-/* IGNORED BY IE6 */
-body.rtl div.vectorMenu > div.menu {
- /* @noflip */
- margin-left: auto;
-}
-
-/* IGNORED BY IE6 */
-/* Also fixes old versions of FireFox */
-body.rtl div.vectorMenu > div.menu,
-x:-moz-any-link {
- /* @noflip */
- margin-left: 23px;
-}
-
-/* Enable forcing showing of the menu for accessibility */
-div.vectorMenu:hover div.menu,
-div.vectorMenu.menuForceShow div.menu {
- display: block;
-}
-
-div.vectorMenu ul {
- position: absolute;
- background-color: white;
- border: solid 1px silver;
- border-top-width: 0;
- list-style-type: none;
- list-style-image: none;
- padding: 0;
- margin: 0;
- margin-left: -1px;
- text-align: left;
-}
-
-/* Fixes old versions of FireFox */
-div.vectorMenu ul,
-x:-moz-any-link {
- min-width: 5em;
-}
-
-/* Returns things back to normal in modern versions of FireFox */
-div.vectorMenu ul,
-x:-moz-any-link,
-x:default {
- min-width: 0;
-}
-
-div.vectorMenu li {
- padding: 0;
- margin: 0;
- text-align: left;
- line-height: 1em;
-}
-
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorMenu li a {
- display: inline-block;
- padding: 0.5em;
- white-space: nowrap;
- color: @menu-link-color;
- cursor: pointer;
- font-size: 0.8em;
-}
-
-/* IGNORED BY IE6 */
-div.vectorMenu li > a {
- display: block;
-}
-
-div.vectorMenu li.selected a,
-div.vectorMenu li.selected a:visited {
- color: #333;
- text-decoration: none;
-}
-
-@import 'watchstar.less';
diff --git a/vector/components/watchstar.less b/vector/components/watchstar.less
deleted file mode 100644
index 1a6d1fc..0000000
--- a/vector/components/watchstar.less
+++ /dev/null
@@ -1,46 +0,0 @@
-@import "mediawiki.mixins.rotation"
-
-/* Watch/Unwatch Icon Styling */
-#ca-unwatch.icon a,
-#ca-watch.icon a {
- margin: 0;
- padding: 0;
- display: block;
- width: 26px;
- /* This hides the text but shows the background image */
- padding-top: 3.1em;
- margin-top: 0;
- /* Only applied in IE6 */
- margin-top: -0.8em !ie;
- height: 0;
- overflow: hidden;
- background-position: 5px 60%;
-}
-#ca-unwatch.icon a {
- .background-image-svg('images/unwatch-icon.svg', 'images/unwatch-icon.png');
-}
-#ca-watch.icon a {
- .background-image-svg('images/watch-icon.svg', 'images/watch-icon.png');
-}
-#ca-unwatch.icon a:hover,
-#ca-unwatch.icon a:focus {
- .background-image-svg('images/unwatch-icon-hl.svg', 'images/unwatch-icon-hl.png');
-}
-#ca-watch.icon a:hover,
-#ca-watch.icon a:focus {
- .background-image-svg('images/watch-icon-hl.svg', 'images/watch-icon-hl.png');
-}
-#ca-unwatch.icon a.loading,
-#ca-watch.icon a.loading {
- .background-image-svg('images/watch-icon-loading.svg', 'images/watch-icon-loading.png');
- .rotation(700ms);
- /* Suppress the hilarious rotating focus outline on Firefox */
- outline: none;
- background-position: 50% 60%;
- -webkit-transform-origin: 50% 57%;
- transform-origin: 50% 57%;
-}
-#ca-unwatch.icon a span,
-#ca-watch.icon a span {
- display: none;
-}
diff --git a/vector/csshover.htc b/vector/csshover.htc
deleted file mode 100644
index a13ea68..0000000
--- a/vector/csshover.htc
+++ /dev/null
@@ -1,284 +0,0 @@
-<public:attach event="ondocumentready" onevent="CSSHover()" />
-<script>
-/**
- * Whatever:hover - V3.11
- * ------------------------------------------------------------
- * Author - Peter Nederlof, http://www.xs4all.nl/~peterned
- * License - http://creativecommons.org/licenses/LGPL/2.1
- *
- * Special thanks to Sergiu Dumitriu, http://purl.org/net/sergiu,
- * for fixing the expression loop.
- *
- * Whatever:hover is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * Whatever:hover is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * howto: body { behavior:url("csshover3.htc"); }
- * ------------------------------------------------------------
- */
-
-window.CSSHover = (function(){
-
- // regular expressions, used and explained later on.
- var REG_INTERACTIVE = /(^|\s)((([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active|focus))/i;
- var REG_AFFECTED = /(.*?)\:(hover|active|focus)/i;
- var REG_PSEUDO = /[^:]+:([a-z\-]+).*/i;
- var REG_SELECT = /(\.([a-z0-9_\-]+):[a-z]+)|(:[a-z]+)/gi;
- var REG_CLASS = /\.([a-z0-9_\-]*on(hover|active|focus))/i;
- var REG_MSIE = /msie (5|6|7)/i;
- var REG_COMPAT = /backcompat/i;
-
- // property mapping, real css properties must be used in order to clear expressions later on...
- // Uses obscure css properties that no-one is likely to use. The properties are borrowed to
- // set an expression, and are then restored to the most likely correct value.
- var Properties = {
- index: 0,
- list: ['text-kashida', 'text-kashida-space', 'text-justify'],
- get: function() {
- return this.list[(this.index++)%this.list.length];
- }
- };
-
- // camelize is used to convert css properties from (eg) text-kashida to textKashida
- var camelize = function(str) {
- return str.replace(/-(.)/mg, function(result, match){
- return match.toUpperCase();
- });
- };
-
- /**
- * Local CSSHover object
- * --------------------------
- */
-
- var CSSHover = {
-
- // array of CSSHoverElements, used to unload created events
- elements: [],
-
- // buffer used for checking on duplicate expressions
- callbacks: {},
-
- // init, called once ondomcontentready via the exposed window.CSSHover function
- init:function() {
- // don't run in IE8 standards; expressions don't work in standards mode anyway,
- // and the stuff we're trying to fix should already work properly
- if(!REG_MSIE.test(navigator.userAgent) && !REG_COMPAT.test(window.document.compatMode)) {
- return;
- }
-
- // start parsing the existing stylesheets
- var sheets = window.document.styleSheets, l = sheets.length;
- for(var i=0; i<l; i++) {
- this.parseStylesheet(sheets[i]);
- }
- },
-
- // called from init, parses individual stylesheets
- parseStylesheet:function(sheet) {
- // check sheet imports and parse those recursively
- if(sheet.imports) {
- try {
- var imports = sheet.imports;
- var l = imports.length;
- for(var i=0; i<l; i++) {
- this.parseStylesheet(sheet.imports[i]);
- }
- } catch(securityException){
- // trycatch for various possible errors
- }
- }
-
- // interate the sheet's rules and send them to the parser
- try {
- var rules = sheet.rules;
- var r = rules.length;
- for(var j=0; j<r; j++) {
- this.parseCSSRule(rules[j], sheet);
- }
- } catch(someException){
- // trycatch for various errors, most likely accessing the sheet's rules.
- }
- },
-
- // magic starts here ...
- parseCSSRule:function(rule, sheet) {
-
- // The sheet is used to insert new rules into, this must be the same sheet the rule
- // came from, to ensure that relative paths keep pointing to the right location.
-
- // only parse a rule if it contains an interactive pseudo.
- var select = rule.selectorText;
- if(REG_INTERACTIVE.test(select)) {
- var style = rule.style.cssText;
-
- // affected elements are found by truncating the selector after the interactive pseudo,
- // eg: "div li:hover" >> "div li"
- var affected = REG_AFFECTED.exec(select)[1];
-
- // that pseudo is needed for a classname, and defines the type of interaction (focus, hover, active)
- // eg: "li:hover" >> "onhover"
- var pseudo = select.replace(REG_PSEUDO, 'on$1');
-
- // the new selector is going to use that classname in a new css rule,
- // since IE6 doesn't support multiple classnames, this is merged into one classname
- // eg: "li:hover" >> "li.onhover", "li.folder:hover" >> "li.folderonhover"
- var newSelect = select.replace(REG_SELECT, '.$2' + pseudo);
-
- // the classname is needed for the events that are going to be set on affected nodes
- // eg: "li.folder:hover" >> "folderonhover"
- var className = REG_CLASS.exec(newSelect)[1];
-
- // no need to set the same callback more than once when the same selector uses the same classname
- var hash = affected + className;
- if(!this.callbacks[hash]) {
-
- // affected elements are given an expression under a borrowed css property, because fake properties
- // can't have their expressions cleared. Different properties are used per pseudo, to avoid
- // expressions from overwriting eachother. The expression does a callback to CSSHover.patch,
- // rerouted via the exposed window.CSSHover function.
- var property = Properties.get();
- var atRuntime = camelize(property);
-
- // because the expression is added to the stylesheet, and styles are always applied to html that is
- // dynamically added to the dom, the expression will also trigger for those new elements (provided
- // they are selected by the affected selector).
- sheet.addRule(affected, property + ':expression(CSSHover(this, "'+pseudo+'", "'+className+'", "'+atRuntime+'"))');
-
- // hash it, so an identical selector/class combo does not duplicate the expression
- this.callbacks[hash] = true;
- }
-
- // duplicate expressions need not be set, but the style could differ
- sheet.addRule(newSelect, style);
- }
- },
-
- // called via the expression, patches individual nodes
- patch:function(node, type, className, property) {
-
- // restores the borrowed css property to the value of its immediate parent, clearing
- // the expression so that it's not repeatedly called.
- try {
- var value = node.parentNode.currentStyle[property];
- node.style[property] = value;
- } catch(e) {
- // the above reset should never fail, but just in case, clear the runtimeStyle if it does.
- // this will also stop the expression.
- node.runtimeStyle[property] = '';
- }
-
- // just to make sure, also keep track of patched classnames locally on the node
- if(!node.csshover) {
- node.csshover = [];
- }
-
- // and check for it to prevent duplicate events with the same classname from being set
- if(!node.csshover[className]) {
- node.csshover[className] = true;
-
- // create an instance for the given type and class
- var element = new CSSHoverElement(node, type, className);
-
- // and store that instance for unloading later on
- this.elements.push(element);
- }
-
- // returns a dummy value to the expression
- return type;
- },
-
- // unload stuff onbeforeunload
- unload:function() {
- try {
-
- // remove events
- var l = this.elements.length;
- for(var i=0; i<l; i++) {
- this.elements[i].unload();
- }
-
- // and set properties to null
- this.elements = [];
- this.callbacks = {};
-
- } catch (e) {
- }
- }
- };
-
- /**
- * CSSHoverElement
- * --------------------------
- */
-
- // the event types associated with the interactive pseudos
- var CSSEvents = {
- onhover: { activator: 'onmouseenter', deactivator: 'onmouseleave' },
- onactive: { activator: 'onmousedown', deactivator: 'onmouseup' },
- onfocus: { activator: 'onfocus', deactivator: 'onblur' }
- };
-
- // CSSHoverElement constructor, called via CSSHover.patch
- function CSSHoverElement(node, type, className) {
-
- // the CSSHoverElement patches individual nodes by manually applying the events that should
- // have fired by the css pseudoclasses, eg mouseenter and mouseleave for :hover.
-
- this.node = node;
- this.type = type;
- var replacer = new RegExp('(^|\\s)'+className+'(\\s|$)', 'g');
-
- // store event handlers for removal onunload
- this.activator = function(){ node.className += ' ' + className; };
- this.deactivator = function(){ node.className = node.className.replace(replacer, ' '); };
-
- // add the events
- node.attachEvent(CSSEvents[type].activator, this.activator);
- node.attachEvent(CSSEvents[type].deactivator, this.deactivator);
- }
-
- CSSHoverElement.prototype = {
- // onbeforeunload, called via CSSHover.unload
- unload:function() {
-
- // remove events
- this.node.detachEvent(CSSEvents[this.type].activator, this.activator);
- this.node.detachEvent(CSSEvents[this.type].deactivator, this.deactivator);
-
- // and set properties to null
- this.activator = null;
- this.deactivator = null;
- this.node = null;
- this.type = null;
- }
- };
-
- // add the unload to the onbeforeunload event
- window.attachEvent('onbeforeunload', function(){
- CSSHover.unload();
- });
-
- /**
- * Public hook
- * --------------------------
- */
-
- return function(node, type, className, property) {
- if(node) {
- // called via the css expression; patches individual nodes
- return CSSHover.patch(node, type, className, property);
- } else {
- // called ondomcontentready via the public:attach node
- CSSHover.init();
- }
- };
-
-})();
-</script> \ No newline at end of file
diff --git a/vector/csshover.min.htc b/vector/csshover.min.htc
deleted file mode 100644
index 7e5c57b..0000000
--- a/vector/csshover.min.htc
+++ /dev/null
@@ -1,12 +0,0 @@
-<public:attach event="ondocumentready" onevent="CSSHover()" />
-<script>
-/**
- * Whatever:hover - V3.11
- * http://www.xs4all.nl/~peterned/
- *
- * Copyright (c) 2009 Peter Nederlof
- * Licensed under the LGPL license
- * http://creativecommons.org/licenses/LGPL/2.1
- */
-window.CSSHover=(function(){var m=/(^|\s)((([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active|focus))/i;var n=/(.*?)\:(hover|active|focus)/i;var o=/[^:]+:([a-z\-]+).*/i;var p=/(\.([a-z0-9_\-]+):[a-z]+)|(:[a-z]+)/gi;var q=/\.([a-z0-9_\-]*on(hover|active|focus))/i;var s=/msie (5|6|7)/i;var t=/backcompat/i;var u={index:0,list:['text-kashida','text-kashida-space','text-justify'],get:function(){return this.list[(this.index++)%this.list.length]}};var v=function(c){return c.replace(/-(.)/mg,function(a,b){return b.toUpperCase()})};var w={elements:[],callbacks:{},init:function(){if(!s.test(navigator.userAgent)&&!t.test(window.document.compatMode)){return}var a=window.document.styleSheets,l=a.length;for(var i=0;i<l;i++){this.parseStylesheet(a[i])}},parseStylesheet:function(a){if(a.imports){try{var b=a.imports;var l=b.length;for(var i=0;i<l;i++){this.parseStylesheet(a.imports[i])}}catch(securityException){}}try{var c=a.rules;var r=c.length;for(var j=0;j<r;j++){this.parseCSSRule(c[j],a)}}catch(someException){}},parseCSSRule:function(a,b){var c=a.selectorText;if(m.test(c)){var d=a.style.cssText;var e=n.exec(c)[1];var f=c.replace(o,'on$1');var g=c.replace(p,'.$2'+f);var h=q.exec(g)[1];var i=e+h;if(!this.callbacks[i]){var j=u.get();var k=v(j);b.addRule(e,j+':expression(CSSHover(this, "'+f+'", "'+h+'", "'+k+'"))');this.callbacks[i]=true}b.addRule(g,d)}},patch:function(a,b,c,d){try{var f=a.parentNode.currentStyle[d];a.style[d]=f}catch(e){a.runtimeStyle[d]=''}if(!a.csshover){a.csshover=[]}if(!a.csshover[c]){a.csshover[c]=true;var g=new CSSHoverElement(a,b,c);this.elements.push(g)}return b},unload:function(){try{var l=this.elements.length;for(var i=0;i<l;i++){this.elements[i].unload()}this.elements=[];this.callbacks={}}catch(e){}}};var x={onhover:{activator:'onmouseenter',deactivator:'onmouseleave'},onactive:{activator:'onmousedown',deactivator:'onmouseup'},onfocus:{activator:'onfocus',deactivator:'onblur'}};function CSSHoverElement(a,b,c){this.node=a;this.type=b;var d=new RegExp('(^|\\s)'+c+'(\\s|$)','g');this.activator=function(){a.className+=' '+c};this.deactivator=function(){a.className=a.className.replace(d,' ')};a.attachEvent(x[b].activator,this.activator);a.attachEvent(x[b].deactivator,this.deactivator)}CSSHoverElement.prototype={unload:function(){this.node.detachEvent(x[this.type].activator,this.activator);this.node.detachEvent(x[this.type].deactivator,this.deactivator);this.activator=null;this.deactivator=null;this.node=null;this.type=null}};window.attachEvent('onbeforeunload',function(){w.unload()});return function(a,b,c,d){if(a){return w.patch(a,b,c,d)}else{w.init()}}})();
-</script>
diff --git a/vector/images/arrow-collapsed-ltr.png b/vector/images/arrow-collapsed-ltr.png
deleted file mode 100644
index 063ac6f..0000000
--- a/vector/images/arrow-collapsed-ltr.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/arrow-collapsed-ltr.svg b/vector/images/arrow-collapsed-ltr.svg
deleted file mode 100644
index b943caa..0000000
--- a/vector/images/arrow-collapsed-ltr.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M6.001 2.998l5.001 5-5.001 5z" fill="#797979"/></svg> \ No newline at end of file
diff --git a/vector/images/arrow-collapsed-rtl.png b/vector/images/arrow-collapsed-rtl.png
deleted file mode 100644
index c346218..0000000
--- a/vector/images/arrow-collapsed-rtl.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/arrow-collapsed-rtl.svg b/vector/images/arrow-collapsed-rtl.svg
deleted file mode 100644
index 5faf356..0000000
--- a/vector/images/arrow-collapsed-rtl.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M9.999 13.002l-5.001-5 5.001-5z" fill="#797979"/></svg> \ No newline at end of file
diff --git a/vector/images/arrow-down-focus-icon.png b/vector/images/arrow-down-focus-icon.png
deleted file mode 100644
index 7640bd1..0000000
--- a/vector/images/arrow-down-focus-icon.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/arrow-down-focus-icon.svg b/vector/images/arrow-down-focus-icon.svg
deleted file mode 100644
index 826c280..0000000
--- a/vector/images/arrow-down-focus-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="22" height="16"><path d="M15.502 6.001l-5 5.001-5-5.001z" fill="#929292"/></svg> \ No newline at end of file
diff --git a/vector/images/arrow-down-icon.png b/vector/images/arrow-down-icon.png
deleted file mode 100644
index 12e3b93..0000000
--- a/vector/images/arrow-down-icon.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/arrow-down-icon.svg b/vector/images/arrow-down-icon.svg
deleted file mode 100644
index 8e31b2f..0000000
--- a/vector/images/arrow-down-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="22" height="16"><path d="M15.502 6.001l-5 5.001-5-5.001z" fill="#797979"/></svg> \ No newline at end of file
diff --git a/vector/images/arrow-expanded.png b/vector/images/arrow-expanded.png
deleted file mode 100644
index 0221028..0000000
--- a/vector/images/arrow-expanded.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/arrow-expanded.svg b/vector/images/arrow-expanded.svg
deleted file mode 100644
index e744ec3..0000000
--- a/vector/images/arrow-expanded.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M13.002 6.001l-5 5.001-5-5.001z" fill="#797979"/></svg> \ No newline at end of file
diff --git a/vector/images/bullet-icon.png b/vector/images/bullet-icon.png
deleted file mode 100644
index 7bae98f..0000000
--- a/vector/images/bullet-icon.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/external-link-ltr-icon.png b/vector/images/external-link-ltr-icon.png
deleted file mode 100644
index 6308383..0000000
--- a/vector/images/external-link-ltr-icon.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/external-link-ltr-icon.svg b/vector/images/external-link-ltr-icon.svg
deleted file mode 100644
index 5969d03..0000000
--- a/vector/images/external-link-ltr-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10"><g transform="translate(-826.429 -698.791)"><rect width="5.982" height="5.982" x="826.929" y="702.309" fill="#fff" stroke="#06c"/><g><path d="M831.194 698.791h5.234v5.391l-1.571 1.545-1.31-1.31-2.725 2.725-2.689-2.689 2.808-2.808-1.311-1.311z" fill="#06f"/><path d="M835.424 699.795l.022 4.885-1.817-1.817-2.881 2.881-1.228-1.228 2.881-2.881-1.851-1.851z" fill="#fff"/></g></g></svg> \ No newline at end of file
diff --git a/vector/images/external-link-rtl-icon.png b/vector/images/external-link-rtl-icon.png
deleted file mode 100644
index 5313234..0000000
--- a/vector/images/external-link-rtl-icon.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/external-link-rtl-icon.svg b/vector/images/external-link-rtl-icon.svg
deleted file mode 100644
index 75a7025..0000000
--- a/vector/images/external-link-rtl-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10"><g transform="translate(-826.429 -698.791)"><rect width="5.982" height="5.982" x="-835.929" y="702.309" transform="scale(-1 1)" fill="#fff" stroke="#06c"/><g><path d="M831.663 698.791h-5.234v5.391l1.571 1.545 1.31-1.31 2.725 2.725 2.689-2.689-2.808-2.808 1.311-1.311z" fill="#06f"/><path d="M827.433 699.795l-.022 4.885 1.817-1.817 2.881 2.881 1.228-1.228-2.881-2.881 1.851-1.851z" fill="#fff"/></g></g></svg> \ No newline at end of file
diff --git a/vector/images/link-icon.png b/vector/images/link-icon.png
deleted file mode 100644
index b70efaa..0000000
--- a/vector/images/link-icon.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/magnify-clip.png b/vector/images/magnify-clip.png
deleted file mode 100644
index 00a9cee..0000000
--- a/vector/images/magnify-clip.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/page-fade.png b/vector/images/page-fade.png
deleted file mode 100644
index b4a6034..0000000
--- a/vector/images/page-fade.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/portal-break-ltr.png b/vector/images/portal-break-ltr.png
deleted file mode 100644
index 20bf366..0000000
--- a/vector/images/portal-break-ltr.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/portal-break-rtl.png b/vector/images/portal-break-rtl.png
deleted file mode 100644
index e5f6223..0000000
--- a/vector/images/portal-break-rtl.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/portal-break.png b/vector/images/portal-break.png
deleted file mode 100644
index 90c3918..0000000
--- a/vector/images/portal-break.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/preferences/break.png b/vector/images/preferences/break.png
deleted file mode 100644
index b529308..0000000
--- a/vector/images/preferences/break.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/preferences/fade.png b/vector/images/preferences/fade.png
deleted file mode 100644
index 638084d..0000000
--- a/vector/images/preferences/fade.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/search-fade.png b/vector/images/search-fade.png
deleted file mode 100644
index 6cb7d28..0000000
--- a/vector/images/search-fade.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/search-ltr.png b/vector/images/search-ltr.png
deleted file mode 100644
index 1db2eb2..0000000
--- a/vector/images/search-ltr.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/search-ltr.svg b/vector/images/search-ltr.svg
deleted file mode 100644
index 0720f20..0000000
--- a/vector/images/search-ltr.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="12" height="13"><g stroke-width="2" stroke="#6c6c6c" fill="none"><path d="M11.29 11.71l-4-4"/><circle cx="5" cy="5" r="4"/></g></svg> \ No newline at end of file
diff --git a/vector/images/search-rtl.png b/vector/images/search-rtl.png
deleted file mode 100644
index c26c8d0..0000000
--- a/vector/images/search-rtl.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/search-rtl.svg b/vector/images/search-rtl.svg
deleted file mode 100644
index 622d5f9..0000000
--- a/vector/images/search-rtl.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="12" height="13"><g stroke-width="2" stroke="#6c6c6c" fill="none"><path d="M.71 11.71l4-4"/><circle cx="7" cy="5" r="4"/></g></svg> \ No newline at end of file
diff --git a/vector/images/tab-break.png b/vector/images/tab-break.png
deleted file mode 100644
index 6d37af5..0000000
--- a/vector/images/tab-break.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/tab-current-fade.png b/vector/images/tab-current-fade.png
deleted file mode 100644
index b8f772f..0000000
--- a/vector/images/tab-current-fade.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/tab-normal-fade.png b/vector/images/tab-normal-fade.png
deleted file mode 100644
index f719a88..0000000
--- a/vector/images/tab-normal-fade.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/unwatch-icon-hl.png b/vector/images/unwatch-icon-hl.png
deleted file mode 100644
index 6b2b502..0000000
--- a/vector/images/unwatch-icon-hl.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/unwatch-icon-hl.svg b/vector/images/unwatch-icon-hl.svg
deleted file mode 100644
index d52d547..0000000
--- a/vector/images/unwatch-icon-hl.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><linearGradient id="a"><stop offset="0" stop-color="#c2edff"/><stop offset=".5" stop-color="#68bdff"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient x1="13.47" y1="14.363" x2="4.596" y2="3.397" id="b" xlink:href="#a" gradientUnits="userSpaceOnUse"/></defs><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="url(#b)" stroke="#c8b250" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/vector/images/unwatch-icon.png b/vector/images/unwatch-icon.png
deleted file mode 100644
index 9fd9436..0000000
--- a/vector/images/unwatch-icon.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/unwatch-icon.svg b/vector/images/unwatch-icon.svg
deleted file mode 100644
index cde7bc5..0000000
--- a/vector/images/unwatch-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><defs><linearGradient id="a"><stop offset="0" stop-color="#c2edff"/><stop offset=".5" stop-color="#68bdff"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient x1="13.47" y1="14.363" x2="4.596" y2="3.397" id="b" xlink:href="#a" gradientUnits="userSpaceOnUse"/></defs><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="url(#b)" stroke="#7cb5d1" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/vector/images/user-icon.png b/vector/images/user-icon.png
deleted file mode 100644
index 57f9f8d..0000000
--- a/vector/images/user-icon.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/user-icon.svg b/vector/images/user-icon.svg
deleted file mode 100644
index 4335bcf..0000000
--- a/vector/images/user-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="13.837"><defs><linearGradient id="e"><stop offset="0"/><stop offset="1" stop-opacity="0"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#3b74bc"/><stop offset="1" stop-color="#2d5990"/></linearGradient><linearGradient id="c"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#c9c9c9"/></linearGradient><linearGradient id="a"><stop offset="0"/><stop offset="1" stop-opacity="0"/></linearGradient><linearGradient id="d"><stop offset="0" stop-color="#f4d9b1"/><stop offset="1" stop-color="#df9725"/></linearGradient><radialGradient cx="31.113" cy="19.009" r="8.662" fx="31.113" fy="19.009" id="f" xlink:href="#a" gradientUnits="userSpaceOnUse"/><radialGradient cx="28.09" cy="27.203" r="13.565" fx="28.09" fy="27.203" id="g" xlink:href="#b" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.298 0 0 .885 -8.359 4.94)"/><linearGradient x1="30.936" y1="29.553" x2="30.936" y2="35.803" id="h" xlink:href="#c" gradientUnits="userSpaceOnUse"/><radialGradient cx="31.113" cy="19.009" r="8.662" fx="31.113" fy="19.009" id="i" xlink:href="#a" gradientUnits="userSpaceOnUse"/><radialGradient cx="29.345" cy="17.064" r="9.162" fx="29.345" fy="17.064" id="j" xlink:href="#d" gradientUnits="userSpaceOnUse" gradientTransform="matrix(.788 0 0 .788 6.221 3.618)"/><linearGradient x1="20.662" y1="35.818" x2="22.627" y2="36.218" id="k" xlink:href="#e" gradientUnits="userSpaceOnUse" gradientTransform="matrix(.983 .182 -.182 .983 6.232 -2.651)"/><linearGradient x1="22.687" y1="36.39" x2="21.408" y2="35.74" id="l" xlink:href="#e" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-.978 .21 .21 .978 55.11 -3.945)"/></defs><g color="#000"><path d="M39.775 19.009a8.662 8.662 0 1 1-17.324 0 8.662 8.662 0 1 1 17.324 0z" transform="matrix(.693 0 0 .374 -15.548 3.481)" fill="url(#f)" fill-rule="evenodd" overflow="visible"/><path d="M4.046 12.398h4.137c1.172 0 2.332-.43 2.758-1.655.404-1.163.069-3.378-2.551-5.171h-4.895c-2.62 1.655-2.947 3.917-2.344 5.24.614 1.347 1.655 1.586 2.896 1.586z" fill="url(#g)" fill-rule="evenodd" stroke="#204a87" stroke-linecap="round" stroke-linejoin="round" overflow="visible" stroke-width="0.39"/><path d="M4.321 6.193c1.241 1.103 1.793 5.102 1.793 5.102s.552-3.999 1.517-5.171l-3.309.069z" fill="url(#h)" fill-rule="evenodd" overflow="visible"/><path d="M5.21 6.607s-.839.648-.767 1.428c-.796-.702-.819-2.048-.819-2.048l1.586.62z" fill="#729fcf" fill-rule="evenodd" overflow="visible"/><path d="M4.018 11.992l4.092-.009c1.029 0 2.049-.377 2.422-1.453.355-1.022-.037-2.967-2.338-4.542l-4.495-.095c-2.301 1.453-2.747 3.441-2.208 4.697.538 1.256 1.324 1.393 2.526 1.401z" opacity=".215" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" overflow="visible" fill="none" stroke-width="0.39"/><path d="M6.941 6.607s.839.648.767 1.428c.796-.702.819-2.048.819-2.048l-1.586.62z" fill="#729fcf" fill-rule="evenodd" overflow="visible"/><path d="M39.775 19.009a8.662 8.662 0 1 1-17.324 0 8.662 8.662 0 1 1 17.324 0z" transform="matrix(.39 0 0 .39 -6.138 -2.475)" fill="url(#i)" fill-rule="evenodd" overflow="visible"/><path d="M39.775 19.009a8.662 8.662 0 1 1-17.324 0 8.662 8.662 0 1 1 17.324 0z" fill="url(#j)" fill-rule="evenodd" stroke="#c17d11" stroke-linecap="round" stroke-linejoin="round" overflow="visible" transform="matrix(.39 0 0 .39 -6.089 -3.84)"/><path d="M39.775 19.009a8.662 8.662 0 1 1-17.324 0 8.662 8.662 0 1 1 17.324 0z" transform="matrix(.342 0 0 .342 -4.598 -2.929)" opacity=".196" stroke="#fff" stroke-width="1.14" stroke-linecap="round" stroke-linejoin="round" overflow="visible" fill="none"/><path d="M2.433 12.062c-.487-.213-.704-.725-.704-.725.328-1.587 1.451-2.748 1.451-2.748s-.889 2.5-.746 3.473z" opacity=".228" fill="url(#k)" fill-rule="evenodd" overflow="visible"/><path d="M9.806 11.728c.48-.227.704-.781.704-.781-.374-1.577-1.551-2.669-1.551-2.669s.961 2.474.847 3.45z" opacity=".228" fill="url(#l)" fill-rule="evenodd" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/vector/images/watch-icon-hl.png b/vector/images/watch-icon-hl.png
deleted file mode 100644
index 4cb87cd..0000000
--- a/vector/images/watch-icon-hl.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/watch-icon-hl.svg b/vector/images/watch-icon-hl.svg
deleted file mode 100644
index 664c671..0000000
--- a/vector/images/watch-icon-hl.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="#fff" stroke="#c8b250" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/vector/images/watch-icon-loading.png b/vector/images/watch-icon-loading.png
deleted file mode 100644
index 5f0c490..0000000
--- a/vector/images/watch-icon-loading.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/watch-icon-loading.svg b/vector/images/watch-icon-loading.svg
deleted file mode 100644
index 751eb14..0000000
--- a/vector/images/watch-icon-loading.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="#fff" stroke="#d1d1d1" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/vector/images/watch-icon.png b/vector/images/watch-icon.png
deleted file mode 100644
index 39daff2..0000000
--- a/vector/images/watch-icon.png
+++ /dev/null
Binary files differ
diff --git a/vector/images/watch-icon.svg b/vector/images/watch-icon.svg
deleted file mode 100644
index 907b05b..0000000
--- a/vector/images/watch-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M8.103 1.146l2.175 4.408 4.864.707-3.52 3.431.831 4.845-4.351-2.287-4.351 2.287.831-4.845-3.52-3.431 4.864-.707z" fill="#fff" stroke="#7cb5d1" stroke-width="0.9999199999999999"/></svg> \ No newline at end of file
diff --git a/vector/screen-hd.less b/vector/screen-hd.less
deleted file mode 100644
index 8b286f4..0000000
--- a/vector/screen-hd.less
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Vector screen styles for high definition displays */
-
-@import "variables.less";
-
-div#content {
- margin-left: 11em;
- padding: 1.25em 1.5em 1.5em 1.5em;
-}
-#p-logo {
- left: @menu-main-logo-left;
-}
-div#footer {
- margin-left: 11em;
- padding: 1.25em;
-}
-#mw-panel {
- padding-left: 0.5em;
-}
-#p-search {
- margin-right: 1em;
-}
-#left-navigation {
- margin-left: 11em;
-}
-#p-personal {
- right: 1em;
-}
-#mw-head-base {
- margin-left: 11em;
-}
diff --git a/vector/screen.less b/vector/screen.less
deleted file mode 100644
index f7b374f..0000000
--- a/vector/screen.less
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Vector screen styles */
-
-@import "variables.less";
-
-@import "components/common.less";
-@import "components/animations.less";
-@import "components/navigation.less";
-@import "components/footer.less";
-@import 'components/notifications.less';
-@import "components/externalLinks.less";
diff --git a/vector/special.less b/vector/special.less
deleted file mode 100644
index 6af4b1e..0000000
--- a/vector/special.less
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * Adjusts for decreased margin-bottom for h2 elements inside #content div
- * introduced in March / April 2014 typography update.
- */
-table.mw-specialpages-table {
- margin-top: 0;
-}
diff --git a/vector/special.preferences.less b/vector/special.preferences.less
deleted file mode 100644
index a9b1006..0000000
--- a/vector/special.preferences.less
+++ /dev/null
@@ -1,114 +0,0 @@
-@import "mediawiki.mixins";
-@import "variables";
-
-/**
- * The following code is highly modified from monobook. It would be nice if the
- * preftoc id was more human readable like preferences-toc for instance,
- * howerver this would require backporting the other skins.
- */
-
-#preftoc {
- /* Tabs */
- width: 100%;
- float: left;
- clear: both;
- margin: 0 !important;
- padding: 0 !important;
- .background-image('images/preferences/break.png');
- background-position: bottom left;
- background-repeat: no-repeat;
-
- li {
- /* Tab */
- float: left;
- margin: 0;
- padding: 0;
- padding-right: 1px;
- height: 2.25em;
- white-space: nowrap;
- list-style-type: none;
- list-style-image: none;
- .background-image('images/preferences/break.png');
- background-position: bottom right;
- background-repeat: no-repeat;
-
- /* Sadly, IE6 won't understand this */
- &:first-child {
- margin-left: 1px;
- }
-
- &.selected {
- a {
- .background-image('images/preferences/fade.png');
- background-position: bottom;
- background-repeat: repeat-x;
- color: #333;
- text-decoration: none;
- }
- }
- }
-
- a,
- a:active {
- display: inline-block;
- position: relative;
- color: @menu-link-color;
- padding: 0.5em;
- text-decoration: none;
- background-image: none;
- font-size: 0.9em;
- }
-
- a:hover,
- a:focus {
- text-decoration: underline;
- }
-}
-
-#preferences {
- float: left;
- width: 100%;
- margin: 0;
- margin-top: -2px;
- clear: both;
- border: solid 1px #ccc;
- background-color: #fafafa;
-
- fieldset {
- border: none;
- border-top: solid 1px #ccc;
-
- &.prefsection {
- border: none;
- padding: 0;
- margin: 1em;
-
- legend.mainLegend {
- display: none;
- }
- }
- }
-
- legend {
- color: #666;
- }
-
- td {
- padding-left: 0.5em;
- padding-right: 0.5em;
- }
-
- div.mw-prefs-buttons {
- padding: 1em;
-
- input {
- margin-right: 0.25em;
- }
- }
-}
-
-.htmlform-tip {
- font-size: x-small;
- padding: .2em 2em;
- color: #666;
-}
diff --git a/vector/variables.less b/vector/variables.less
deleted file mode 100644
index f008a3a..0000000
--- a/vector/variables.less
+++ /dev/null
@@ -1,43 +0,0 @@
-@html-font-size: 1em;
-
-// Page content
-// FIXME: Use global variable since Echo and CentralNotice use this variable
-@content-border-color: #a7d7f9;
-// FIXME: Find an open font that works with this stack and is readable by Windows users
-@content-font-family: sans-serif;
-@content-font-color: #252525;
-@content-font-size: 0.875em;
-@content-line-height: 1.6;
-@content-padding: 1em;
-@content-heading-font-size: 1.8em;
-@content-heading-font-family: sans-serif;
-@body-background-color: #fff;
-@heading-line-height: 1.3;
-
-// Navigation
-@menu-background-color: #f6f6f6;
-
-// Common menu
-@menu-link-color: #0645ad;
-
-// Main menu
-@menu-main-font-size: inherit;
-@menu-main-heading-font-size: 0.75em;
-@menu-main-heading-padding: 0 1.75em 0.25em 0.25em;
-
-@menu-main-body-font-size: 0.75em;
-@menu-main-body-link-color: #0645ad;
-@menu-main-body-link-visited-color: #0b0080;
-@menu-main-body-margin: 0 0 0 1.25em;
-@menu-main-body-padding: 0;
-@menu-main-logo-left: 0.5em;
-
-// Personal menu
-@menu-personal-font-size: 0.75em;
-
-// Collapsible nav
-@collapsible-nav-heading-color: #4d4d4d;
-@collapsible-nav-heading-collapsed-color: #0645ad;
-
-@collapsible-nav-heading-padding: 4px 0 3px 1.5em;
-@collapsible-nav-body-margin: 0 0 0 1.25em;
diff --git a/vector/vector.js b/vector/vector.js
deleted file mode 100644
index 0bc114a..0000000
--- a/vector/vector.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Vector-specific scripts
- */
-jQuery( function ( $ ) {
- $( 'div.vectorMenu' ).each( function () {
- var $el = $( this );
- $el.find( '> h3 > a' ).parent()
- .attr( 'tabindex', '0' )
- // For accessibility, show the menu when the h3 is clicked (bug 24298/46486)
- .on( 'click keypress', function ( e ) {
- if ( e.type === 'click' || e.which === 13 ) {
- $el.toggleClass( 'menuForceShow' );
- e.preventDefault();
- }
- } )
- // When the heading has focus, also set a class that will change the arrow icon
- .focus( function () {
- $el.find( '> a' ).addClass( 'vectorMenuFocus' );
- } )
- .blur( function () {
- $el.find( '> a' ).removeClass( 'vectorMenuFocus' );
- } )
- .find( '> a:first' )
- // As the h3 can already be focused there's no need for the link to be focusable
- .attr( 'tabindex', '-1' );
- } );
-
- /**
- * Collapsible tabs for Vector
- */
- var $cactions = $( '#p-cactions' );
-
- // Bind callback functions to animate our drop down menu in and out
- // and then call the collapsibleTabs function on the menu
- $( '#p-views ul' )
- .bind( 'beforeTabCollapse', function () {
- // If the dropdown was hidden, show it
- if ( $cactions.hasClass( 'emptyPortlet' ) ) {
- $cactions
- .removeClass( 'emptyPortlet' )
- .find( 'h3' )
- .css( 'width', '1px' ).animate( { 'width': '24px' }, 390 );
- }
- } )
- .bind( 'beforeTabExpand', function () {
- // If we're removing the last child node right now, hide the dropdown
- if ( $cactions.find( 'li' ).length === 1 ) {
- $cactions.find( 'h3' ).animate( { 'width': '1px' }, 390, function () {
- $( this ).attr( 'style', '' )
- .parent().addClass( 'emptyPortlet' );
- });
- }
- } )
- .collapsibleTabs();
-} );